@ikas/storefront 1.0.21 → 2.0.0-alpha.1

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 (701) hide show
  1. package/build/ikas +12055 -0
  2. package/package.json +22 -21
  3. package/src/.DS_Store +0 -0
  4. package/src/__generated__/global-types.ts +753 -0
  5. package/src/analytics/analytics.ts +497 -0
  6. package/src/analytics/events.ts +115 -0
  7. package/src/analytics/facebookPixel.ts +226 -0
  8. package/src/analytics/googleTagManager.ts +334 -0
  9. package/src/analytics/head/index.tsx +81 -0
  10. package/src/analytics/ikas.ts +545 -0
  11. package/{build/analytics/index.d.ts → src/analytics/index.ts} +2 -2
  12. package/src/api/.DS_Store +0 -0
  13. package/src/api/apollo.ts +91 -0
  14. package/src/api/back-in-stock-reminder/__generated__/listProductBackInStockRemind.ts +36 -0
  15. package/src/api/back-in-stock-reminder/__generated__/saveProductBackInStockRemind.ts +31 -0
  16. package/src/api/back-in-stock-reminder/index.ts +131 -0
  17. package/src/api/blog/__generated__/getBlog.ts +101 -0
  18. package/src/api/blog/__generated__/listBlog.ts +104 -0
  19. package/src/api/blog/__generated__/listBlogCategory.ts +52 -0
  20. package/src/api/blog/__generated__/listBlogMetaData.ts +42 -0
  21. package/src/api/blog/index.ts +415 -0
  22. package/src/api/brand/__generated__/listProductBrand.ts +63 -0
  23. package/src/api/brand/index.ts +127 -0
  24. package/src/api/cart/__generated__/getCart.ts +104 -0
  25. package/src/api/cart/__generated__/saveItemToCart.ts +91 -0
  26. package/src/api/cart/index.ts +213 -0
  27. package/src/api/category/__generated__/listCategory.ts +68 -0
  28. package/src/api/category/__generated__/listCategoryPaths.ts +37 -0
  29. package/src/api/category/index.ts +223 -0
  30. package/src/api/checkout/__generated__/addCouponCodeToCheckout.ts +22 -0
  31. package/src/api/checkout/__generated__/checkStocks.ts +31 -0
  32. package/src/api/checkout/__generated__/createSaleTransactionWithCheckout.ts +35 -0
  33. package/src/api/checkout/__generated__/getCheckoutByCartId.ts +21 -0
  34. package/src/api/checkout/__generated__/getCheckoutById.ts +270 -0
  35. package/src/api/checkout/__generated__/getOrder.ts +248 -0
  36. package/src/api/checkout/__generated__/listCheckoutSettings.ts +48 -0
  37. package/src/api/checkout/__generated__/listPaymentGateway.ts +57 -0
  38. package/src/api/checkout/__generated__/retrieveInstallmentInfo.ts +36 -0
  39. package/src/api/checkout/__generated__/saveCheckout.ts +23 -0
  40. package/src/api/checkout/index.ts +884 -0
  41. package/src/api/city/__generated__/listCity.ts +26 -0
  42. package/src/api/city/index.ts +56 -0
  43. package/src/api/contact-form/__generated__/sendContactFormToMerchant.ts +19 -0
  44. package/src/api/contact-form/index.ts +54 -0
  45. package/src/api/country/__generated__/getAvailableShippingCountries.ts +16 -0
  46. package/src/api/country/__generated__/getMyCountry.ts +12 -0
  47. package/src/api/country/__generated__/listCountry.ts +36 -0
  48. package/src/api/country/index.ts +129 -0
  49. package/src/api/customer/__generated__/checkCustomerEmail.ts +21 -0
  50. package/src/api/customer/__generated__/createCustomerEmailSubscription.ts +23 -0
  51. package/src/api/customer/__generated__/createOrderRefundRequest.ts +248 -0
  52. package/src/api/customer/__generated__/customerForgotPassword.ts +17 -0
  53. package/src/api/customer/__generated__/customerLogin.ts +88 -0
  54. package/src/api/customer/__generated__/customerRecoverPassword.ts +18 -0
  55. package/src/api/customer/__generated__/customerRefreshToken.ts +22 -0
  56. package/src/api/customer/__generated__/getCustomerOrders.ts +248 -0
  57. package/src/api/customer/__generated__/getLastViewedProducts.ts +27 -0
  58. package/src/api/customer/__generated__/getMyCustomer.ts +75 -0
  59. package/src/api/customer/__generated__/listOrderRefundSettings.ts +25 -0
  60. package/src/api/customer/__generated__/listOrderTransactions.ts +68 -0
  61. package/src/api/customer/__generated__/registerCustomer.ts +90 -0
  62. package/src/api/customer/__generated__/saveLastViewedProducts.ts +23 -0
  63. package/src/api/customer/__generated__/saveMyCustomer.ts +80 -0
  64. package/src/api/customer/index.ts +1147 -0
  65. package/src/api/customer-review/__generated__/createCustomerReview.ts +23 -0
  66. package/src/api/customer-review/__generated__/listCustomerReviews.ts +38 -0
  67. package/src/api/customer-review/index.ts +122 -0
  68. package/src/api/district/__generated__/listDistrict.ts +25 -0
  69. package/src/api/district/index.ts +59 -0
  70. package/src/api/favorite-product/__generated__/isFavoriteProduct.ts +16 -0
  71. package/src/api/favorite-product/__generated__/listFavoriteProducts.ts +22 -0
  72. package/src/api/favorite-product/__generated__/saveFavoriteProduct.ts +17 -0
  73. package/src/api/favorite-product/index.ts +100 -0
  74. package/src/api/html-meta-data/__generated__/listHTMLMetaData.ts +30 -0
  75. package/src/api/html-meta-data/index.ts +72 -0
  76. package/src/api/index.ts +23 -0
  77. package/src/api/merchant/__generated__/listMerchantSettings.ts +19 -0
  78. package/src/api/merchant/index.ts +43 -0
  79. package/src/api/product-attribute/__generated__/listProductAttribute.ts +54 -0
  80. package/src/api/product-attribute/index.ts +69 -0
  81. package/src/api/product-option-set/__generated__/ListProductOptionSet.ts +111 -0
  82. package/src/api/product-option-set/index.ts +114 -0
  83. package/src/api/product-search/__generated__/getProductFilterData.ts +69 -0
  84. package/src/api/product-search/__generated__/searchProducts.ts +40 -0
  85. package/src/api/product-search/index.ts +329 -0
  86. package/src/api/raffle/__generated__/getRafflesByCustomerId.ts +55 -0
  87. package/src/api/raffle/__generated__/listRaffle.ts +74 -0
  88. package/src/api/raffle/__generated__/listRaffleMetaData.ts +33 -0
  89. package/src/api/raffle/__generated__/saveRaffleParticipant.ts +43 -0
  90. package/src/api/raffle/index.ts +369 -0
  91. package/src/api/state/__generated__/listState.ts +25 -0
  92. package/src/api/state/index.ts +45 -0
  93. package/src/api/stock-location/__generated__/listStockLocation.ts +17 -0
  94. package/src/api/stock-location/index.ts +30 -0
  95. package/src/api/storefront/__generated__/getStorefront.ts +67 -0
  96. package/src/api/storefront/index.ts +76 -0
  97. package/src/api/variant-type/__generated__/listVariantType.ts +54 -0
  98. package/src/api/variant-type/index.ts +86 -0
  99. package/{build → src}/assets/translations/checkout/en.js +0 -0
  100. package/{build → src}/assets/translations/checkout/tr.js +0 -0
  101. package/src/components/.DS_Store +0 -0
  102. package/src/components/checkout/components/address-form/index.tsx +360 -0
  103. package/src/components/checkout/components/address-form/model.ts +366 -0
  104. package/src/components/checkout/components/button/index.tsx +34 -0
  105. package/src/components/checkout/components/button/style.module.scss +103 -0
  106. package/src/components/checkout/components/cart-summary/cart-item/index.tsx +146 -0
  107. package/src/components/checkout/components/cart-summary/cart-item/style.module.scss +107 -0
  108. package/src/components/checkout/components/cart-summary/index.tsx +458 -0
  109. package/src/components/checkout/components/cart-summary/style.module.scss +237 -0
  110. package/src/components/checkout/components/checkbox/check.tsx +23 -0
  111. package/src/components/checkout/components/checkbox/index.tsx +50 -0
  112. package/src/components/checkout/components/checkbox/style.module.scss +72 -0
  113. package/src/components/checkout/components/credit-card-form/index.tsx +121 -0
  114. package/src/components/checkout/components/credit-card-form/model.ts +56 -0
  115. package/src/components/checkout/components/credit-card-form/style.module.scss +6 -0
  116. package/src/components/checkout/components/credit-card-form/svg/amex.tsx +30 -0
  117. package/src/components/checkout/components/credit-card-form/svg/master-card.tsx +38 -0
  118. package/src/components/checkout/components/credit-card-form/svg/troy.tsx +54 -0
  119. package/src/components/checkout/components/credit-card-form/svg/visa.tsx +46 -0
  120. package/src/components/checkout/components/customer-addresses/index.tsx +167 -0
  121. package/src/components/checkout/components/customer-addresses/model.ts +126 -0
  122. package/src/components/checkout/components/customer-addresses/style.module.scss +20 -0
  123. package/src/components/checkout/components/error/customer-login-required-error/index.tsx +23 -0
  124. package/src/components/checkout/components/error/index.tsx +54 -0
  125. package/src/components/checkout/components/error/no-shipping-error/index.tsx +19 -0
  126. package/src/components/checkout/components/error/payment-error/index.tsx +21 -0
  127. package/src/components/checkout/components/error/stock-error/index.tsx +72 -0
  128. package/src/components/checkout/components/error/stock-error/style.module.scss +11 -0
  129. package/src/components/checkout/components/error/unknown-error/index.tsx +19 -0
  130. package/src/components/checkout/components/expandable-section/index.tsx +37 -0
  131. package/src/components/checkout/components/expandable-section/style.module.scss +29 -0
  132. package/src/components/checkout/components/form-item/caret-down.tsx +20 -0
  133. package/src/components/checkout/components/form-item/index.tsx +205 -0
  134. package/src/components/checkout/components/form-item/model.ts +131 -0
  135. package/src/components/checkout/components/form-item/style.module.scss +213 -0
  136. package/src/components/checkout/components/fullscreen-loading/index.tsx +10 -0
  137. package/src/components/checkout/components/fullscreen-loading/style.module.scss +56 -0
  138. package/src/components/checkout/components/input-with-button/index.tsx +53 -0
  139. package/src/components/checkout/components/input-with-button/style.module.scss +104 -0
  140. package/src/components/checkout/components/modal/index.tsx +50 -0
  141. package/src/components/checkout/components/modal/style.module.scss +68 -0
  142. package/src/components/checkout/components/notification-box/index.tsx +70 -0
  143. package/src/components/checkout/components/notification-box/style.module.scss +69 -0
  144. package/src/components/checkout/components/select-box/index.tsx +60 -0
  145. package/src/components/checkout/components/select-box/style.module.scss +55 -0
  146. package/src/components/checkout/components/step-container/index.tsx +107 -0
  147. package/src/components/checkout/components/step-container/style.module.scss +86 -0
  148. package/src/components/checkout/components/svg/arrow-down.tsx +23 -0
  149. package/src/components/checkout/components/svg/arrow-left.tsx +23 -0
  150. package/src/components/checkout/components/svg/arrow-right.tsx +23 -0
  151. package/src/components/checkout/components/svg/cross.tsx +23 -0
  152. package/src/components/checkout/components/svg/discount.tsx +34 -0
  153. package/src/components/checkout/components/svg/external.tsx +101 -0
  154. package/src/components/checkout/components/svg/gift.tsx +40 -0
  155. package/src/components/checkout/components/svg/ikas.tsx +39 -0
  156. package/src/components/checkout/components/svg/lock.tsx +23 -0
  157. package/src/components/checkout/components/svg/shopping-cart.tsx +23 -0
  158. package/src/components/checkout/components/svg/success-circle.tsx +26 -0
  159. package/src/components/checkout/components/svg/tag.tsx +23 -0
  160. package/src/components/checkout/components/svg/warning.tsx +30 -0
  161. package/src/components/checkout/components/toggle/index.tsx +51 -0
  162. package/src/components/checkout/components/toggle/style.module.scss +75 -0
  163. package/src/components/checkout/components/tooltip/index.tsx +27 -0
  164. package/src/components/checkout/components/tooltip/style.module.scss +86 -0
  165. package/src/components/checkout/index.tsx +476 -0
  166. package/src/components/checkout/model.ts +1007 -0
  167. package/src/components/checkout/steps/step-info/index.tsx +84 -0
  168. package/src/components/checkout/steps/step-payment/billing-address/index.tsx +40 -0
  169. package/src/components/checkout/steps/step-payment/index.tsx +105 -0
  170. package/src/components/checkout/steps/step-payment/payment-gateways/index.tsx +116 -0
  171. package/src/components/checkout/steps/step-payment/payment-gateways/installments/index.tsx +51 -0
  172. package/src/components/checkout/steps/step-payment/payment-gateways/installments/style.module.scss +50 -0
  173. package/src/components/checkout/steps/step-payment/payment-gateways/style.module.scss +15 -0
  174. package/src/components/checkout/steps/step-payment/style.module.scss +32 -0
  175. package/src/components/checkout/steps/step-shipping/index.tsx +127 -0
  176. package/src/components/checkout/steps/step-shipping/style.module.scss +44 -0
  177. package/src/components/checkout/steps/step-success/index.tsx +437 -0
  178. package/src/components/checkout/steps/step-success/style.module.scss +160 -0
  179. package/src/components/checkout/style.module.scss +358 -0
  180. package/src/components/checkout/styles/common.module.scss +59 -0
  181. package/src/components/checkout/styles/variables.scss +40 -0
  182. package/src/components/image/index.tsx +79 -0
  183. package/src/components/index.ts +4 -0
  184. package/src/components/page/ThemeComponent.tsx +89 -0
  185. package/src/components/page/head.tsx +294 -0
  186. package/src/components/page/index.tsx +216 -0
  187. package/src/components/page-editor/ThemeComponentEditor.tsx +236 -0
  188. package/src/components/page-editor/error/index.tsx +18 -0
  189. package/src/components/page-editor/index.tsx +70 -0
  190. package/src/components/page-editor/loader/index.tsx +10 -0
  191. package/src/components/page-editor/loader/style.module.scss +55 -0
  192. package/src/components/page-editor/model.ts +505 -0
  193. package/src/index.ts +8 -0
  194. package/src/models/.DS_Store +0 -0
  195. package/src/models/data/blog/index.ts +154 -0
  196. package/src/models/data/brand/index.ts +58 -0
  197. package/src/models/data/cart/index.ts +82 -0
  198. package/src/models/data/category/index.ts +130 -0
  199. package/src/models/data/checkout/index.ts +222 -0
  200. package/src/models/data/checkout-settings/index.ts +48 -0
  201. package/src/models/data/city/index.ts +4 -0
  202. package/src/models/data/contact-form/index.ts +17 -0
  203. package/src/models/data/country/index.ts +8 -0
  204. package/src/models/data/customer/address/index.tsx +135 -0
  205. package/src/models/data/customer/index.ts +65 -0
  206. package/src/models/data/customer-review/index.ts +43 -0
  207. package/src/models/data/customer-review-settings/index.ts +4 -0
  208. package/src/models/data/district/index.ts +4 -0
  209. package/src/models/data/favorite-product/index.ts +15 -0
  210. package/src/models/data/html-meta-data/index.ts +56 -0
  211. package/src/models/data/image/index.ts +34 -0
  212. package/src/models/data/index.ts +55 -0
  213. package/src/models/data/installment-info/index.ts +34 -0
  214. package/src/models/data/merchant-settings/index.ts +14 -0
  215. package/src/models/data/order/address/index.ts +138 -0
  216. package/src/models/data/order/adjustment/index.ts +17 -0
  217. package/src/models/data/order/gift-line/index.ts +4 -0
  218. package/src/models/data/order/index.ts +289 -0
  219. package/src/models/data/order/line-item/discount/index.ts +15 -0
  220. package/src/models/data/order/line-item/index.ts +123 -0
  221. package/src/models/data/order/line-item/options/index.ts +18 -0
  222. package/src/models/data/order/line-item/options/options-value/index.ts +11 -0
  223. package/src/models/data/order/line-item/variant/index.ts +75 -0
  224. package/src/models/data/order/refund/index.ts +18 -0
  225. package/src/models/data/order/refund/refund-line-item/index.ts +13 -0
  226. package/src/models/data/order/refund/settings.ts +15 -0
  227. package/src/models/data/order/shipping-line/index.ts +7 -0
  228. package/src/models/data/order-transaction/index.ts +105 -0
  229. package/src/models/data/payment-gateway/index.ts +150 -0
  230. package/src/models/data/product/attribute-value/index.ts +42 -0
  231. package/src/models/data/product/index.ts +95 -0
  232. package/src/models/data/product/variant/index.ts +93 -0
  233. package/src/models/data/product/variant/price/index.ts +38 -0
  234. package/src/models/data/product/variant-type/index.ts +24 -0
  235. package/src/models/data/product-attribute/index.ts +75 -0
  236. package/src/models/data/product-attribute/product-attribute-option/index.ts +13 -0
  237. package/src/models/data/product-attribute/product-attribute-table-cell/index.ts +13 -0
  238. package/src/models/data/product-attribute/product-attribute-table-template/index.ts +18 -0
  239. package/src/models/data/product-back-in-stock-settings/index.ts +3 -0
  240. package/src/models/data/product-cart-item-options/index.ts +15 -0
  241. package/src/models/data/product-filter/index.ts +412 -0
  242. package/src/models/data/product-option-set/index.ts +392 -0
  243. package/src/models/data/product-tag/index.ts +13 -0
  244. package/src/models/data/raffle/index.ts +159 -0
  245. package/src/models/data/sales-channel/index.ts +41 -0
  246. package/src/models/data/simple-product/index.ts +154 -0
  247. package/src/models/data/state/index.ts +5 -0
  248. package/src/models/data/storefront/domain/index.ts +19 -0
  249. package/src/models/data/storefront/index.ts +56 -0
  250. package/src/models/data/storefront/localization/index.tsx +13 -0
  251. package/src/models/data/storefront/routing/index.tsx +17 -0
  252. package/src/models/data/storefront/theme/index.tsx +22 -0
  253. package/src/models/data/storefront/theme-localization/index.tsx +26 -0
  254. package/src/models/data/variant-type/index.ts +77 -0
  255. package/src/models/data/variant-type/variant-value/index.ts +29 -0
  256. package/src/models/index.ts +3 -0
  257. package/src/models/theme/component/index.ts +24 -0
  258. package/src/models/theme/component/prop/index.ts +56 -0
  259. package/src/models/theme/custom-data/index.ts +71 -0
  260. package/{build/models/theme/index.d.ts → src/models/theme/index.ts} +26 -18
  261. package/src/models/theme/page/component/index.ts +21 -0
  262. package/src/models/theme/page/component/prop-value/attribute-list.ts +18 -0
  263. package/src/models/theme/page/component/prop-value/attribute.ts +18 -0
  264. package/src/models/theme/page/component/prop-value/blog-category-list.ts +19 -0
  265. package/src/models/theme/page/component/prop-value/blog-category.ts +15 -0
  266. package/src/models/theme/page/component/prop-value/blog-list.ts +25 -0
  267. package/src/models/theme/page/component/prop-value/blog.ts +15 -0
  268. package/src/models/theme/page/component/prop-value/brand-list.ts +26 -0
  269. package/src/models/theme/page/component/prop-value/brand.ts +15 -0
  270. package/src/models/theme/page/component/prop-value/category-list.ts +26 -0
  271. package/src/models/theme/page/component/prop-value/category.ts +15 -0
  272. package/src/models/theme/page/component/prop-value/link.ts +38 -0
  273. package/src/models/theme/page/component/prop-value/product-detail.ts +17 -0
  274. package/src/models/theme/page/component/prop-value/product-list.ts +41 -0
  275. package/src/models/theme/page/component/prop-value/raffle-list.ts +16 -0
  276. package/src/models/theme/page/component/prop-value/raffle.ts +15 -0
  277. package/src/models/theme/page/index.ts +71 -0
  278. package/src/models/theme/settings/.DS_Store +0 -0
  279. package/src/models/theme/settings/index.ts +27 -0
  280. package/src/models/theme/settings/prop/color/index.ts +18 -0
  281. package/src/models/theme/settings/prop/favicon/index.ts +11 -0
  282. package/src/models/theme/theme.ts +202 -0
  283. package/src/models/ui/blog-category-list/index.ts +199 -0
  284. package/src/models/ui/blog-list/index.ts +202 -0
  285. package/src/models/ui/brand-list/index.ts +239 -0
  286. package/src/models/ui/category-list/index.ts +239 -0
  287. package/src/models/ui/component-renderer/index.ts +9 -0
  288. package/src/models/ui/customer-review-list/index.ts +171 -0
  289. package/src/models/ui/index.ts +41 -0
  290. package/src/models/ui/navigation-link/index.ts +22 -0
  291. package/src/models/ui/product-attribute-detail/index.ts +29 -0
  292. package/src/models/ui/product-attribute-list/index.ts +53 -0
  293. package/src/models/ui/product-detail/index.ts +269 -0
  294. package/src/models/ui/product-list/index.ts +959 -0
  295. package/src/models/ui/raffle-list/index.ts +208 -0
  296. package/src/models/ui/validator/form/account-info.ts +155 -0
  297. package/src/models/ui/validator/form/address.ts +436 -0
  298. package/src/models/ui/validator/form/contact-form.ts +180 -0
  299. package/src/models/ui/validator/form/customer-review.ts +134 -0
  300. package/src/models/ui/validator/form/forgot-password.ts +98 -0
  301. package/src/models/ui/validator/form/login.ts +130 -0
  302. package/src/models/ui/validator/form/raffle-form.ts +271 -0
  303. package/src/models/ui/validator/form/recover-password.ts +150 -0
  304. package/src/models/ui/validator/form/register.ts +200 -0
  305. package/src/models/ui/validator/index.ts +121 -0
  306. package/src/models/ui/validator/rules/index.ts +309 -0
  307. package/src/pages/.DS_Store +0 -0
  308. package/src/pages/404.tsx +29 -0
  309. package/src/pages/[slug]/index.tsx +28 -0
  310. package/src/pages/account/addresses.tsx +20 -0
  311. package/src/pages/account/favorite-products.tsx +20 -0
  312. package/src/pages/account/forgot-password.tsx +20 -0
  313. package/src/pages/account/index.tsx +20 -0
  314. package/src/pages/account/login.tsx +20 -0
  315. package/src/pages/account/orders/[id].tsx +20 -0
  316. package/src/pages/account/orders/index.tsx +20 -0
  317. package/src/pages/account/raffles.tsx +20 -0
  318. package/src/pages/account/recover-password.tsx +20 -0
  319. package/src/pages/account/register.tsx +20 -0
  320. package/src/pages/api/getComponentDirs.ts +39 -0
  321. package/src/pages/api/getTheme.ts +22 -0
  322. package/src/pages/api/index.ts +14 -0
  323. package/src/pages/api/middleware.ts +24 -0
  324. package/src/pages/api/updateTheme.ts +31 -0
  325. package/src/pages/api/uploadTheme.ts +276 -0
  326. package/src/pages/blog/[slug].tsx +27 -0
  327. package/src/pages/blog/index.tsx +20 -0
  328. package/src/pages/cart.tsx +20 -0
  329. package/src/pages/checkout.tsx +172 -0
  330. package/src/pages/editor.tsx +40 -0
  331. package/src/pages/home.tsx +20 -0
  332. package/src/pages/index.ts +22 -0
  333. package/src/pages/pages/[slug].tsx +82 -0
  334. package/src/pages/raffle/[slug].tsx +27 -0
  335. package/src/pages/raffle/index.tsx +20 -0
  336. package/src/pages/search.tsx +20 -0
  337. package/src/providers/helpers/raffles.ts +68 -0
  338. package/src/providers/page-data-get.ts +569 -0
  339. package/src/providers/page-data-init.ts +956 -0
  340. package/src/providers/page-data-next.ts +422 -0
  341. package/src/providers/placeholders.ts +39 -0
  342. package/src/providers/prop-value/attribute-list.ts +73 -0
  343. package/src/providers/prop-value/attribute.ts +73 -0
  344. package/src/providers/prop-value/blog-category-list.ts +25 -0
  345. package/src/providers/prop-value/blog-category.ts +40 -0
  346. package/src/providers/prop-value/blog-list.ts +56 -0
  347. package/src/providers/prop-value/blog.ts +37 -0
  348. package/src/providers/prop-value/boolean.ts +14 -0
  349. package/src/providers/prop-value/brand-list.ts +21 -0
  350. package/src/providers/prop-value/brand.ts +47 -0
  351. package/src/providers/prop-value/category-list.ts +21 -0
  352. package/src/providers/prop-value/category.ts +47 -0
  353. package/src/providers/prop-value/color.ts +14 -0
  354. package/src/providers/prop-value/custom.ts +548 -0
  355. package/src/providers/prop-value/image-list.ts +15 -0
  356. package/src/providers/prop-value/image.ts +15 -0
  357. package/{build/providers/prop-value/index.d.ts → src/providers/prop-value/index.ts} +3 -3
  358. package/src/providers/prop-value/link.ts +214 -0
  359. package/src/providers/prop-value/product-detail.ts +87 -0
  360. package/src/providers/prop-value/product-list.ts +69 -0
  361. package/src/providers/prop-value/raffle-list.ts +14 -0
  362. package/src/providers/prop-value/raffle.ts +43 -0
  363. package/src/providers/prop-value/rich-text.ts +14 -0
  364. package/src/providers/prop-value/text.ts +14 -0
  365. package/src/scripts/generators/api/index.ts +24 -0
  366. package/src/scripts/generators/api/info.ts +47 -0
  367. package/src/scripts/generators/components/index.ts +235 -0
  368. package/src/scripts/generators/config/content.ts +125 -0
  369. package/src/scripts/generators/config/index.ts +93 -0
  370. package/src/scripts/generators/pages/index.ts +95 -0
  371. package/src/scripts/generators/pages/info.ts +156 -0
  372. package/src/scripts/generators/store/content.ts +14 -0
  373. package/src/scripts/generators/store/index.ts +22 -0
  374. package/src/scripts/generators/theme/index.ts +37 -0
  375. package/src/scripts/ikas.ts +47 -0
  376. package/src/store/base.ts +143 -0
  377. package/src/store/cart.ts +311 -0
  378. package/src/store/customer.ts +510 -0
  379. package/{build/store/index.d.ts → src/store/index.ts} +1 -1
  380. package/src/storefront/index.ts +96 -0
  381. package/src/typings/global.d.ts +7 -0
  382. package/src/utils/currency.ts +229 -0
  383. package/src/utils/fs.ts +84 -0
  384. package/src/utils/helper.ts +133 -0
  385. package/src/utils/i18n.ts +204 -0
  386. package/{build/utils/index.d.ts → src/utils/index.ts} +3 -3
  387. package/build/__generated__/global-types.d.ts +0 -632
  388. package/build/analytics/analytics.d.ts +0 -37
  389. package/build/analytics/events.d.ts +0 -36
  390. package/build/analytics/facebookPixel.d.ts +0 -15
  391. package/build/analytics/googleTagManager.d.ts +0 -201
  392. package/build/analytics/head/index.d.ts +0 -7
  393. package/build/analytics/ikas.d.ts +0 -133
  394. package/build/api/apollo.d.ts +0 -10
  395. package/build/api/back-in-stock-reminder/__generated__/listProductBackInStockRemind.d.ts +0 -24
  396. package/build/api/back-in-stock-reminder/__generated__/saveProductBackInStockRemind.d.ts +0 -19
  397. package/build/api/back-in-stock-reminder/index.d.ts +0 -23
  398. package/build/api/blog/__generated__/getBlog.d.ts +0 -106
  399. package/build/api/blog/__generated__/listBlog.d.ts +0 -109
  400. package/build/api/blog/__generated__/listBlogCategory.d.ts +0 -61
  401. package/build/api/blog/__generated__/listBlogMetaData.d.ts +0 -53
  402. package/build/api/blog/index.d.ts +0 -32
  403. package/build/api/brand/__generated__/listProductBrand.d.ts +0 -88
  404. package/build/api/brand/index.d.ts +0 -16
  405. package/build/api/cart/__generated__/getCart.d.ts +0 -176
  406. package/build/api/cart/__generated__/saveItemToCart.d.ts +0 -185
  407. package/build/api/cart/index.d.ts +0 -5
  408. package/build/api/category/__generated__/listCategory.d.ts +0 -99
  409. package/build/api/category/__generated__/listCategoryPaths.d.ts +0 -32
  410. package/build/api/category/index.d.ts +0 -18
  411. package/build/api/checkout/__generated__/addCouponCodeToCheckout.d.ts +0 -11
  412. package/build/api/checkout/__generated__/checkStocks.d.ts +0 -18
  413. package/build/api/checkout/__generated__/createSaleTransactionWithCheckout.d.ts +0 -22
  414. package/build/api/checkout/__generated__/getCheckoutByCartId.d.ts +0 -10
  415. package/build/api/checkout/__generated__/getCheckoutById.d.ts +0 -572
  416. package/build/api/checkout/__generated__/getOrder.d.ts +0 -614
  417. package/build/api/checkout/__generated__/listCheckoutSettings.d.ts +0 -34
  418. package/build/api/checkout/__generated__/listPaymentGateway.d.ts +0 -42
  419. package/build/api/checkout/__generated__/retrieveInstallmentInfo.d.ts +0 -23
  420. package/build/api/checkout/__generated__/saveCheckout.d.ts +0 -11
  421. package/build/api/checkout/index.d.ts +0 -29
  422. package/build/api/city/__generated__/listCity.d.ts +0 -20
  423. package/build/api/city/index.d.ts +0 -4
  424. package/build/api/contact-form/__generated__/sendContactFormToMerchant.d.ts +0 -9
  425. package/build/api/contact-form/index.d.ts +0 -10
  426. package/build/api/country/__generated__/getAvailableShippingCountries.d.ts +0 -6
  427. package/build/api/country/__generated__/getMyCountry.d.ts +0 -3
  428. package/build/api/country/__generated__/listCountry.d.ts +0 -41
  429. package/build/api/country/index.d.ts +0 -6
  430. package/build/api/customer/__generated__/checkCustomerEmail.d.ts +0 -10
  431. package/build/api/customer/__generated__/createCustomerEmailSubscription.d.ts +0 -11
  432. package/build/api/customer/__generated__/createOrderRefundRequest.d.ts +0 -584
  433. package/build/api/customer/__generated__/customerForgotPassword.d.ts +0 -7
  434. package/build/api/customer/__generated__/customerLogin.d.ts +0 -162
  435. package/build/api/customer/__generated__/customerRecoverPassword.d.ts +0 -8
  436. package/build/api/customer/__generated__/customerRefreshToken.d.ts +0 -11
  437. package/build/api/customer/__generated__/customerSocialLogin.d.ts +0 -161
  438. package/build/api/customer/__generated__/getCustomerOrders.d.ts +0 -614
  439. package/build/api/customer/__generated__/getLastViewedProducts.d.ts +0 -15
  440. package/build/api/customer/__generated__/getMyCustomer.d.ts +0 -140
  441. package/build/api/customer/__generated__/listOrderRefundSettings.d.ts +0 -13
  442. package/build/api/customer/__generated__/listOrderTransactions.d.ts +0 -53
  443. package/build/api/customer/__generated__/registerCustomer.d.ts +0 -158
  444. package/build/api/customer/__generated__/saveLastViewedProducts.d.ts +0 -11
  445. package/build/api/customer/__generated__/saveMyCustomer.d.ts +0 -155
  446. package/build/api/customer/index.d.ts +0 -49
  447. package/build/api/customer-review/__generated__/createCustomerReview.d.ts +0 -11
  448. package/build/api/customer-review/__generated__/listCustomerReviews.d.ts +0 -48
  449. package/build/api/customer-review/index.d.ts +0 -24
  450. package/build/api/district/__generated__/listDistrict.d.ts +0 -16
  451. package/build/api/district/index.d.ts +0 -4
  452. package/build/api/favorite-product/__generated__/isFavoriteProduct.d.ts +0 -6
  453. package/build/api/favorite-product/__generated__/listFavoriteProducts.d.ts +0 -12
  454. package/build/api/favorite-product/__generated__/saveFavoriteProduct.d.ts +0 -7
  455. package/build/api/favorite-product/index.d.ts +0 -6
  456. package/build/api/html-meta-data/__generated__/listHTMLMetaData.d.ts +0 -28
  457. package/build/api/html-meta-data/index.d.ts +0 -4
  458. package/build/api/index.d.ts +0 -21
  459. package/build/api/merchant/__generated__/listMerchantSettings.d.ts +0 -9
  460. package/build/api/merchant/index.d.ts +0 -4
  461. package/build/api/product-attribute/__generated__/listProductAttribute.d.ts +0 -72
  462. package/build/api/product-attribute/index.d.ts +0 -4
  463. package/build/api/product-option-set/__generated__/ListProductOptionSet.d.ts +0 -90
  464. package/build/api/product-option-set/index.d.ts +0 -6
  465. package/build/api/product-search/__generated__/getProductFilterData.d.ts +0 -61
  466. package/build/api/product-search/__generated__/searchProducts.d.ts +0 -26
  467. package/build/api/product-search/index.d.ts +0 -20
  468. package/build/api/state/__generated__/listState.d.ts +0 -19
  469. package/build/api/state/index.d.ts +0 -4
  470. package/build/api/stock-location/__generated__/listStockLocation.d.ts +0 -7
  471. package/build/api/stock-location/index.d.ts +0 -4
  472. package/build/api/storefront/__generated__/getStorefront.d.ts +0 -52
  473. package/build/api/storefront/index.d.ts +0 -4
  474. package/build/api/variant-type/__generated__/listVariantType.d.ts +0 -72
  475. package/build/api/variant-type/index.d.ts +0 -4
  476. package/build/components/checkout/components/address-form/index.d.ts +0 -3
  477. package/build/components/checkout/components/address-form/model.d.ts +0 -131
  478. package/build/components/checkout/components/button/index.d.ts +0 -12
  479. package/build/components/checkout/components/cart-summary/cart-item/index.d.ts +0 -10
  480. package/build/components/checkout/components/cart-summary/index.d.ts +0 -8
  481. package/build/components/checkout/components/checkbox/check.d.ts +0 -6
  482. package/build/components/checkout/components/checkbox/index.d.ts +0 -10
  483. package/build/components/checkout/components/credit-card-form/index.d.ts +0 -7
  484. package/build/components/checkout/components/credit-card-form/model.d.ts +0 -26
  485. package/build/components/checkout/components/credit-card-form/svg/amex.d.ts +0 -6
  486. package/build/components/checkout/components/credit-card-form/svg/master-card.d.ts +0 -6
  487. package/build/components/checkout/components/credit-card-form/svg/troy.d.ts +0 -6
  488. package/build/components/checkout/components/credit-card-form/svg/visa.d.ts +0 -6
  489. package/build/components/checkout/components/customer-addresses/index.d.ts +0 -15
  490. package/build/components/checkout/components/customer-addresses/model.d.ts +0 -21
  491. package/build/components/checkout/components/error/customer-login-required-error/index.d.ts +0 -8
  492. package/build/components/checkout/components/error/index.d.ts +0 -7
  493. package/build/components/checkout/components/error/no-shipping-error/index.d.ts +0 -6
  494. package/build/components/checkout/components/error/payment-error/index.d.ts +0 -8
  495. package/build/components/checkout/components/error/stock-error/index.d.ts +0 -8
  496. package/build/components/checkout/components/error/unknown-error/index.d.ts +0 -6
  497. package/build/components/checkout/components/expandable-section/index.d.ts +0 -6
  498. package/build/components/checkout/components/form-item/caret-down.d.ts +0 -6
  499. package/build/components/checkout/components/form-item/index.d.ts +0 -3
  500. package/build/components/checkout/components/form-item/model.d.ts +0 -59
  501. package/build/components/checkout/components/fullscreen-loading/index.d.ts +0 -2
  502. package/build/components/checkout/components/input-with-button/index.d.ts +0 -11
  503. package/build/components/checkout/components/modal/index.d.ts +0 -8
  504. package/build/components/checkout/components/notification-box/index.d.ts +0 -9
  505. package/build/components/checkout/components/select-box/index.d.ts +0 -13
  506. package/build/components/checkout/components/step-container/index.d.ts +0 -15
  507. package/build/components/checkout/components/svg/arrow-down.d.ts +0 -6
  508. package/build/components/checkout/components/svg/arrow-left.d.ts +0 -6
  509. package/build/components/checkout/components/svg/arrow-right.d.ts +0 -6
  510. package/build/components/checkout/components/svg/cross.d.ts +0 -6
  511. package/build/components/checkout/components/svg/discount.d.ts +0 -6
  512. package/build/components/checkout/components/svg/external.d.ts +0 -6
  513. package/build/components/checkout/components/svg/gift.d.ts +0 -7
  514. package/build/components/checkout/components/svg/ikas.d.ts +0 -6
  515. package/build/components/checkout/components/svg/lock.d.ts +0 -6
  516. package/build/components/checkout/components/svg/shopping-cart.d.ts +0 -6
  517. package/build/components/checkout/components/svg/success-circle.d.ts +0 -6
  518. package/build/components/checkout/components/svg/tag.d.ts +0 -6
  519. package/build/components/checkout/components/svg/warning.d.ts +0 -6
  520. package/build/components/checkout/components/toggle/index.d.ts +0 -10
  521. package/build/components/checkout/components/tooltip/index.d.ts +0 -8
  522. package/build/components/checkout/index.d.ts +0 -32
  523. package/build/components/checkout/model.d.ts +0 -122
  524. package/build/components/checkout/steps/step-info/index.d.ts +0 -7
  525. package/build/components/checkout/steps/step-payment/billing-address/index.d.ts +0 -7
  526. package/build/components/checkout/steps/step-payment/index.d.ts +0 -7
  527. package/build/components/checkout/steps/step-payment/payment-gateways/index.d.ts +0 -7
  528. package/build/components/checkout/steps/step-payment/payment-gateways/installments/index.d.ts +0 -7
  529. package/build/components/checkout/steps/step-shipping/index.d.ts +0 -7
  530. package/build/components/checkout/steps/step-success/index.d.ts +0 -7
  531. package/build/components/error/index.d.ts +0 -5
  532. package/build/components/image/index.d.ts +0 -36
  533. package/build/components/index.d.ts +0 -4
  534. package/build/components/page/ThemeComponent.d.ts +0 -10
  535. package/build/components/page/head.d.ts +0 -12
  536. package/build/components/page/index.d.ts +0 -17
  537. package/build/components/page-editor/ThemeComponentEditor.d.ts +0 -9
  538. package/build/components/page-editor/index.d.ts +0 -2
  539. package/build/components/page-editor/model.d.ts +0 -65
  540. package/build/index.css +0 -1521
  541. package/build/index.d.ts +0 -8
  542. package/build/index.es.css +0 -1521
  543. package/build/index.es.js +0 -74627
  544. package/build/index.js +0 -74756
  545. package/build/models/data/blog/index.d.ts +0 -67
  546. package/build/models/data/brand/index.d.ts +0 -21
  547. package/build/models/data/cart/index.d.ts +0 -47
  548. package/build/models/data/category/index.d.ts +0 -52
  549. package/build/models/data/checkout/index.d.ts +0 -103
  550. package/build/models/data/checkout-settings/index.d.ts +0 -25
  551. package/build/models/data/city/index.d.ts +0 -4
  552. package/build/models/data/contact-form/index.d.ts +0 -7
  553. package/build/models/data/country/index.d.ts +0 -8
  554. package/build/models/data/customer/address/index.d.ts +0 -52
  555. package/build/models/data/customer/index.d.ts +0 -33
  556. package/build/models/data/customer-review/index.d.ts +0 -23
  557. package/build/models/data/customer-review-settings/index.d.ts +0 -4
  558. package/build/models/data/district/index.d.ts +0 -4
  559. package/build/models/data/favorite-product/index.d.ts +0 -6
  560. package/build/models/data/html-meta-data/index.d.ts +0 -23
  561. package/build/models/data/image/index.d.ts +0 -8
  562. package/build/models/data/index.d.ts +0 -33
  563. package/build/models/data/installment-info/index.d.ts +0 -30
  564. package/build/models/data/merchant-settings/index.d.ts +0 -8
  565. package/build/models/data/order/address/index.d.ts +0 -51
  566. package/build/models/data/order/adjustment/index.d.ts +0 -16
  567. package/build/models/data/order/gift-line/index.d.ts +0 -4
  568. package/build/models/data/order/index.d.ts +0 -146
  569. package/build/models/data/order/line-item/discount/index.d.ts +0 -11
  570. package/build/models/data/order/line-item/index.d.ts +0 -43
  571. package/build/models/data/order/line-item/options/index.d.ts +0 -10
  572. package/build/models/data/order/line-item/options/options-value/index.d.ts +0 -6
  573. package/build/models/data/order/line-item/variant/index.d.ts +0 -25
  574. package/build/models/data/order/refund/index.d.ts +0 -6
  575. package/build/models/data/order/refund/refund-line-item/index.d.ts +0 -5
  576. package/build/models/data/order/refund/settings.d.ts +0 -6
  577. package/build/models/data/order/shipping-line/index.d.ts +0 -7
  578. package/build/models/data/order-transaction/index.d.ts +0 -74
  579. package/build/models/data/payment-gateway/index.d.ts +0 -61
  580. package/build/models/data/product/attribute-value/index.d.ts +0 -20
  581. package/build/models/data/product/index.d.ts +0 -35
  582. package/build/models/data/product/variant/index.d.ts +0 -24
  583. package/build/models/data/product/variant/price/index.d.ts +0 -11
  584. package/build/models/data/product/variant-type/index.d.ts +0 -6
  585. package/build/models/data/product-attribute/index.d.ts +0 -34
  586. package/build/models/data/product-attribute/product-attribute-option/index.d.ts +0 -5
  587. package/build/models/data/product-attribute/product-attribute-table-cell/index.d.ts +0 -5
  588. package/build/models/data/product-attribute/product-attribute-table-template/index.d.ts +0 -6
  589. package/build/models/data/product-back-in-stock-settings/index.d.ts +0 -3
  590. package/build/models/data/product-cart-item-options/index.d.ts +0 -6
  591. package/build/models/data/product-filter/index.d.ts +0 -109
  592. package/build/models/data/product-option-set/index.d.ts +0 -104
  593. package/build/models/data/product-tag/index.d.ts +0 -5
  594. package/build/models/data/sales-channel/index.d.ts +0 -18
  595. package/build/models/data/simple-product/index.d.ts +0 -136
  596. package/build/models/data/state/index.d.ts +0 -5
  597. package/build/models/data/storefront/domain/index.d.ts +0 -8
  598. package/build/models/data/storefront/index.d.ts +0 -23
  599. package/build/models/data/storefront/localization/index.d.ts +0 -7
  600. package/build/models/data/storefront/routing/index.d.ts +0 -9
  601. package/build/models/data/storefront/theme/index.d.ts +0 -13
  602. package/build/models/data/storefront/theme-localization/index.d.ts +0 -12
  603. package/build/models/data/variant-type/index.d.ts +0 -26
  604. package/build/models/data/variant-type/variant-value/index.d.ts +0 -11
  605. package/build/models/index.d.ts +0 -3
  606. package/build/models/theme/component/index.d.ts +0 -10
  607. package/build/models/theme/component/prop/index.d.ts +0 -40
  608. package/build/models/theme/custom-data/index.d.ts +0 -24
  609. package/build/models/theme/page/component/index.d.ts +0 -6
  610. package/build/models/theme/page/component/prop-value/attribute-list.d.ts +0 -7
  611. package/build/models/theme/page/component/prop-value/attribute.d.ts +0 -7
  612. package/build/models/theme/page/component/prop-value/blog-category-list.d.ts +0 -7
  613. package/build/models/theme/page/component/prop-value/blog-category.d.ts +0 -5
  614. package/build/models/theme/page/component/prop-value/blog-list.d.ts +0 -9
  615. package/build/models/theme/page/component/prop-value/blog.d.ts +0 -5
  616. package/build/models/theme/page/component/prop-value/brand-list.d.ts +0 -9
  617. package/build/models/theme/page/component/prop-value/brand.d.ts +0 -5
  618. package/build/models/theme/page/component/prop-value/category-list.d.ts +0 -9
  619. package/build/models/theme/page/component/prop-value/category.d.ts +0 -5
  620. package/build/models/theme/page/component/prop-value/link.d.ts +0 -19
  621. package/build/models/theme/page/component/prop-value/product-detail.d.ts +0 -6
  622. package/build/models/theme/page/component/prop-value/product-list.d.ts +0 -17
  623. package/build/models/theme/page/index.d.ts +0 -40
  624. package/build/models/theme/settings/index.d.ts +0 -13
  625. package/build/models/theme/settings/prop/color/index.d.ts +0 -7
  626. package/build/models/theme/settings/prop/favicon/index.d.ts +0 -4
  627. package/build/models/theme/theme.d.ts +0 -16
  628. package/build/models/ui/blog-category-list/index.d.ts +0 -52
  629. package/build/models/ui/blog-list/index.d.ts +0 -56
  630. package/build/models/ui/brand-list/index.d.ts +0 -61
  631. package/build/models/ui/category-list/index.d.ts +0 -61
  632. package/build/models/ui/component-renderer/index.d.ts +0 -7
  633. package/build/models/ui/customer-review-list/index.d.ts +0 -43
  634. package/build/models/ui/index.d.ts +0 -22
  635. package/build/models/ui/navigation-link/index.d.ts +0 -8
  636. package/build/models/ui/product-attribute-detail/index.d.ts +0 -8
  637. package/build/models/ui/product-attribute-list/index.d.ts +0 -9
  638. package/build/models/ui/product-detail/index.d.ts +0 -28
  639. package/build/models/ui/product-list/index.d.ts +0 -132
  640. package/build/models/ui/validator/form/account-info.d.ts +0 -40
  641. package/build/models/ui/validator/form/address.d.ts +0 -75
  642. package/build/models/ui/validator/form/contact-form.d.ts +0 -45
  643. package/build/models/ui/validator/form/customer-review.d.ts +0 -37
  644. package/build/models/ui/validator/form/forgot-password.d.ts +0 -29
  645. package/build/models/ui/validator/form/login.d.ts +0 -35
  646. package/build/models/ui/validator/form/recover-password.d.ts +0 -36
  647. package/build/models/ui/validator/form/register.d.ts +0 -48
  648. package/build/models/ui/validator/index.d.ts +0 -27
  649. package/build/models/ui/validator/rules/index.d.ts +0 -87
  650. package/build/pages/404.d.ts +0 -6
  651. package/build/pages/[slug]/index.d.ts +0 -7
  652. package/build/pages/account/addresses.d.ts +0 -6
  653. package/build/pages/account/favorite-products.d.ts +0 -6
  654. package/build/pages/account/forgot-password.d.ts +0 -6
  655. package/build/pages/account/index.d.ts +0 -6
  656. package/build/pages/account/login.d.ts +0 -6
  657. package/build/pages/account/orders/[id].d.ts +0 -6
  658. package/build/pages/account/orders/index.d.ts +0 -6
  659. package/build/pages/account/recover-password.d.ts +0 -6
  660. package/build/pages/account/register.d.ts +0 -6
  661. package/build/pages/blog/[slug].d.ts +0 -7
  662. package/build/pages/blog/index.d.ts +0 -6
  663. package/build/pages/cart.d.ts +0 -6
  664. package/build/pages/checkout.d.ts +0 -18
  665. package/build/pages/editor.d.ts +0 -8
  666. package/build/pages/home.d.ts +0 -6
  667. package/build/pages/index.d.ts +0 -20
  668. package/build/pages/pages/[slug].d.ts +0 -7
  669. package/build/pages/search.d.ts +0 -6
  670. package/build/providers/page-data-get.d.ts +0 -61
  671. package/build/providers/page-data-init.d.ts +0 -58
  672. package/build/providers/page-data-next.d.ts +0 -243
  673. package/build/providers/placeholders.d.ts +0 -6
  674. package/build/providers/prop-value/attribute-list.d.ts +0 -12
  675. package/build/providers/prop-value/attribute.d.ts +0 -12
  676. package/build/providers/prop-value/blog-category-list.d.ts +0 -7
  677. package/build/providers/prop-value/blog-category.d.ts +0 -11
  678. package/build/providers/prop-value/blog-list.d.ts +0 -9
  679. package/build/providers/prop-value/blog.d.ts +0 -11
  680. package/build/providers/prop-value/boolean.d.ts +0 -6
  681. package/build/providers/prop-value/brand-list.d.ts +0 -7
  682. package/build/providers/prop-value/brand.d.ts +0 -11
  683. package/build/providers/prop-value/category-list.d.ts +0 -7
  684. package/build/providers/prop-value/category.d.ts +0 -11
  685. package/build/providers/prop-value/checkout.d.ts +0 -4
  686. package/build/providers/prop-value/color.d.ts +0 -6
  687. package/build/providers/prop-value/custom.d.ts +0 -42
  688. package/build/providers/prop-value/image-list.d.ts +0 -7
  689. package/build/providers/prop-value/image.d.ts +0 -7
  690. package/build/providers/prop-value/link.d.ts +0 -16
  691. package/build/providers/prop-value/product-detail.d.ts +0 -11
  692. package/build/providers/prop-value/product-list.d.ts +0 -9
  693. package/build/providers/prop-value/rich-text.d.ts +0 -6
  694. package/build/providers/prop-value/text.d.ts +0 -6
  695. package/build/store/base.d.ts +0 -25
  696. package/build/store/cart.d.ts +0 -30
  697. package/build/store/customer.d.ts +0 -91
  698. package/build/storefront/index.d.ts +0 -55
  699. package/build/utils/currency.d.ts +0 -7
  700. package/build/utils/helper.d.ts +0 -8
  701. package/build/utils/i18n.d.ts +0 -20
@@ -0,0 +1,956 @@
1
+ import { renderComponent } from "../components/page";
2
+ import { IkasThemePageType } from "../models";
3
+ import { IkasCategoryListParams } from "../models/ui/category-list";
4
+ import { IkasAttributeList } from "../models/ui/product-attribute-list";
5
+ import { IkasProductListParams } from "../models/ui/product-list";
6
+ import { IkasRaffleListParams } from "../models/ui/raffle-list";
7
+ import { observable } from "mobx";
8
+ import { NextRouter } from "next/router";
9
+
10
+ const LZUTF8 = require("lzutf8");
11
+
12
+ import {
13
+ IkasThemeSettings,
14
+ IkasThemePageComponent,
15
+ IkasThemeComponent,
16
+ IkasThemeComponentPropType,
17
+ IkasThemeComponentProp,
18
+ IkasBrand,
19
+ IkasBrandListParams,
20
+ IkasBrandList,
21
+ IkasCategory,
22
+ IkasCategoryList,
23
+ IkasProductList,
24
+ IkasProductDetail,
25
+ IkasVariantValue,
26
+ IkasAttributeDetail,
27
+ IkasNavigationLink,
28
+ IkasImage,
29
+ IkasThemeCustomData,
30
+ IkasComponentRenderer,
31
+ IkasBlog,
32
+ IkasBlogListParams,
33
+ IkasBlogList,
34
+ IkasBlogCategory,
35
+ IkasBlogCategoryListParams,
36
+ IkasBlogCategoryList,
37
+ IkasRaffle,
38
+ IkasRaffleList,
39
+ } from "../models";
40
+ import { IkasPageComponentPropValue } from "./page-data-get";
41
+ import {
42
+ getPlaceholderBlog,
43
+ getPlaceholderBlogCategory,
44
+ getPlaceholderBrand,
45
+ getPlaceholderCategory,
46
+ getPlaceholderProduct,
47
+ getPlaceholderRaffle,
48
+ } from "./placeholders";
49
+ import { IkasAttributePropValueData } from "./prop-value/attribute";
50
+ import { IkasAttributeListPropValueData } from "./prop-value/attribute-list";
51
+ import { IkasBlogPropValueData } from "./prop-value/blog";
52
+ import { IkasBlogCategoryPropValueData } from "./prop-value/blog-category";
53
+ import { IkasBrandPropValueData } from "./prop-value/brand";
54
+ import { IkasCategoryPropValueData } from "./prop-value/category";
55
+ import { CustomDataValue } from "./prop-value/custom";
56
+ import { IkasProductDetailData } from "./prop-value/product-detail";
57
+ import { IkasRafflePropValueData } from "./prop-value/raffle";
58
+
59
+ export class IkasPageDataInit {
60
+ static pageSpecificData: any = observable({});
61
+
62
+ static setPageSpecificData(
63
+ pageSpecficicDataStr: string,
64
+ pageType: IkasThemePageType,
65
+ isBrowser: boolean // Will be sent from reinit on IkasPage
66
+ ) {
67
+ if (!pageSpecficicDataStr) return;
68
+ const parsed = JSON.parse(pageSpecficicDataStr);
69
+
70
+ switch (pageType) {
71
+ case IkasThemePageType.PRODUCT:
72
+ const productDetail = parsed as IkasProductDetail;
73
+ IkasPageDataInit.pageSpecificData = new IkasProductDetail(
74
+ productDetail.product,
75
+ productDetail.selectedVariantValues
76
+ );
77
+ if (isBrowser) {
78
+ this._initProductDetailOnBrowser(IkasPageDataInit.pageSpecificData);
79
+ }
80
+ break;
81
+
82
+ case IkasThemePageType.CATEGORY:
83
+ const category = parsed as IkasCategory;
84
+ IkasPageDataInit.pageSpecificData = new IkasCategory(category);
85
+ break;
86
+
87
+ case IkasThemePageType.BRAND:
88
+ const brand = parsed as IkasCategory;
89
+ IkasPageDataInit.pageSpecificData = new IkasCategory(brand);
90
+ break;
91
+
92
+ case IkasThemePageType.BLOG:
93
+ const blog = parsed as IkasBlog;
94
+ IkasPageDataInit.pageSpecificData = new IkasBlog(blog);
95
+ break;
96
+
97
+ case IkasThemePageType.BLOG_CATEGORY:
98
+ const blogCategory = parsed as IkasBlogCategory;
99
+ IkasPageDataInit.pageSpecificData = new IkasBlogCategory(blogCategory);
100
+ break;
101
+
102
+ case IkasThemePageType.RAFFLE_DETAIL:
103
+ const raffle_detail = parsed as IkasRaffle;
104
+ IkasPageDataInit.pageSpecificData = new IkasRaffle(raffle_detail);
105
+ break;
106
+
107
+ default:
108
+ break;
109
+ }
110
+ }
111
+
112
+ static isServer() {
113
+ return typeof window === "undefined";
114
+ }
115
+
116
+ static initPropValues(
117
+ propValuesStr: string,
118
+ router: NextRouter,
119
+ settingsStr: string,
120
+ isCompressed: boolean,
121
+ isBrowser?: boolean
122
+ ) {
123
+ const settings = new IkasThemeSettings(JSON.parse(settingsStr));
124
+ const decompressed = !isCompressed
125
+ ? propValuesStr
126
+ : LZUTF8.decompress(propValuesStr, {
127
+ inputEncoding: "Base64",
128
+ });
129
+
130
+ const pageComponentPropValues: IkasPageComponentPropValue[] = JSON.parse(
131
+ decompressed
132
+ ).map((v: IkasPageComponentPropValue) => ({
133
+ pageComponent: new IkasThemePageComponent(v.pageComponent),
134
+ component: new IkasThemeComponent(v.component),
135
+ propValues: v.propValues,
136
+ }));
137
+
138
+ pageComponentPropValues.forEach((pageComponentPropValue) => {
139
+ const props = pageComponentPropValue.component.props;
140
+
141
+ props.forEach((prop) => {
142
+ const propValue = pageComponentPropValue.propValues[prop.name];
143
+ if (propValue === null || propValue === undefined) return;
144
+
145
+ switch (prop.type) {
146
+ case IkasThemeComponentPropType.IMAGE:
147
+ IkasPageDataInit.initImagePropValue(
148
+ prop,
149
+ propValue,
150
+ pageComponentPropValue
151
+ );
152
+ break;
153
+
154
+ case IkasThemeComponentPropType.IMAGE_LIST:
155
+ IkasPageDataInit.initImageListPropValue(
156
+ prop,
157
+ propValue,
158
+ pageComponentPropValue
159
+ );
160
+ break;
161
+
162
+ case IkasThemeComponentPropType.BRAND:
163
+ IkasPageDataInit.initBrandPropValue(
164
+ prop,
165
+ propValue,
166
+ pageComponentPropValue
167
+ );
168
+ break;
169
+
170
+ case IkasThemeComponentPropType.BRAND_LIST:
171
+ IkasPageDataInit.initBrandListPropValue(
172
+ prop,
173
+ propValue,
174
+ pageComponentPropValue
175
+ );
176
+ break;
177
+
178
+ case IkasThemeComponentPropType.CATEGORY:
179
+ IkasPageDataInit.initCategoryPropValue(
180
+ prop,
181
+ propValue,
182
+ pageComponentPropValue
183
+ );
184
+ break;
185
+
186
+ case IkasThemeComponentPropType.CATEGORY_LIST:
187
+ IkasPageDataInit.initCategoryListPropValue(
188
+ prop,
189
+ propValue,
190
+ pageComponentPropValue
191
+ );
192
+ break;
193
+
194
+ case IkasThemeComponentPropType.PRODUCT_LIST:
195
+ IkasPageDataInit.initProductListPropValue(
196
+ prop,
197
+ propValue,
198
+ pageComponentPropValue,
199
+ router
200
+ );
201
+ break;
202
+
203
+ case IkasThemeComponentPropType.PRODUCT_DETAIL:
204
+ IkasPageDataInit.initProductDetailPropValue(
205
+ prop,
206
+ propValue,
207
+ pageComponentPropValue,
208
+ router
209
+ );
210
+ break;
211
+
212
+ case IkasThemeComponentPropType.PRODUCT_ATTRIBUTE:
213
+ IkasPageDataInit.initAttributePropValue(
214
+ prop,
215
+ propValue,
216
+ pageComponentPropValue
217
+ );
218
+ break;
219
+
220
+ case IkasThemeComponentPropType.PRODUCT_ATTRIBUTE_LIST:
221
+ IkasPageDataInit.initAttributeListPropValue(
222
+ prop,
223
+ propValue,
224
+ pageComponentPropValue
225
+ );
226
+ break;
227
+
228
+ case IkasThemeComponentPropType.LINK:
229
+ case IkasThemeComponentPropType.LIST_OF_LINK:
230
+ IkasPageDataInit.initLinkPropValue(
231
+ prop,
232
+ propValue,
233
+ pageComponentPropValue
234
+ );
235
+ break;
236
+
237
+ case IkasThemeComponentPropType.COMPONENT:
238
+ IkasPageDataInit.initComponentPropValue(
239
+ prop,
240
+ propValue,
241
+ pageComponentPropValue,
242
+ router,
243
+ settings,
244
+ isBrowser
245
+ );
246
+ break;
247
+
248
+ case IkasThemeComponentPropType.COMPONENT_LIST:
249
+ IkasPageDataInit.initComponentListPropValue(
250
+ prop,
251
+ propValue,
252
+ pageComponentPropValue,
253
+ router,
254
+ settings,
255
+ isBrowser
256
+ );
257
+ break;
258
+
259
+ case IkasThemeComponentPropType.CUSTOM:
260
+ IkasPageDataInit.initCustomDataPropValue(
261
+ prop,
262
+ propValue,
263
+ pageComponentPropValue,
264
+ router,
265
+ settings,
266
+ isBrowser
267
+ );
268
+ break;
269
+
270
+ case IkasThemeComponentPropType.BLOG:
271
+ IkasPageDataInit.initBlogPropValue(
272
+ prop,
273
+ propValue,
274
+ pageComponentPropValue
275
+ );
276
+ break;
277
+
278
+ case IkasThemeComponentPropType.BLOG_LIST:
279
+ IkasPageDataInit.initBlogListPropValue(
280
+ prop,
281
+ propValue,
282
+ pageComponentPropValue
283
+ );
284
+ break;
285
+
286
+ case IkasThemeComponentPropType.BLOG_CATEGORY:
287
+ IkasPageDataInit.initBlogCategoryPropValue(
288
+ prop,
289
+ propValue,
290
+ pageComponentPropValue
291
+ );
292
+ break;
293
+
294
+ case IkasThemeComponentPropType.BLOG_LIST:
295
+ IkasPageDataInit.initBlogCategoryListPropValue(
296
+ prop,
297
+ propValue,
298
+ pageComponentPropValue
299
+ );
300
+ break;
301
+
302
+ case IkasThemeComponentPropType.RAFFLE:
303
+ IkasPageDataInit.initRafflePropValue(
304
+ prop,
305
+ propValue,
306
+ pageComponentPropValue
307
+ );
308
+ break;
309
+
310
+ case IkasThemeComponentPropType.RAFFLE_LIST:
311
+ IkasPageDataInit.initRaffleListPropValue(
312
+ prop,
313
+ propValue,
314
+ pageComponentPropValue
315
+ );
316
+ break;
317
+
318
+ default:
319
+ break;
320
+ }
321
+ });
322
+ });
323
+
324
+ return pageComponentPropValues;
325
+ }
326
+
327
+ static initBrandPropValue(
328
+ prop: IkasThemeComponentProp,
329
+ propValue: IkasBrandPropValueData,
330
+ pageComponentPropValue: IkasPageComponentPropValue
331
+ ) {
332
+ pageComponentPropValue.propValues[
333
+ prop.name
334
+ ] = IkasPageDataInit._initBrandPropValue(propValue);
335
+ }
336
+
337
+ static _initBrandPropValue(propValue: IkasBrandPropValueData) {
338
+ if (propValue.brandPropValue.usePageData) {
339
+ return this.pageSpecificData;
340
+ }
341
+
342
+ if (propValue.brand) {
343
+ return new IkasBrand(propValue.brand);
344
+ }
345
+
346
+ return getPlaceholderBrand();
347
+ }
348
+
349
+ static initBrandListPropValue(
350
+ prop: IkasThemeComponentProp,
351
+ propValue: any,
352
+ pageComponentPropValue: IkasPageComponentPropValue
353
+ ) {
354
+ pageComponentPropValue.propValues[
355
+ prop.name
356
+ ] = IkasPageDataInit._initBrandListPropValue(propValue);
357
+ }
358
+
359
+ static _initBrandListPropValue(propValue: IkasBrandListParams) {
360
+ return new IkasBrandList(propValue);
361
+ }
362
+
363
+ static initCategoryPropValue(
364
+ prop: IkasThemeComponentProp,
365
+ propValue: IkasCategoryPropValueData,
366
+ pageComponentPropValue: IkasPageComponentPropValue
367
+ ) {
368
+ pageComponentPropValue.propValues[
369
+ prop.name
370
+ ] = IkasPageDataInit._initCategoryPropValue(propValue);
371
+ }
372
+
373
+ static _initCategoryPropValue(propValue: IkasCategoryPropValueData) {
374
+ if (propValue.categoryPropValue.usePageData) {
375
+ return this.pageSpecificData;
376
+ }
377
+
378
+ if (propValue.category) {
379
+ return new IkasCategory(propValue.category);
380
+ }
381
+
382
+ return getPlaceholderCategory();
383
+ }
384
+
385
+ static initCategoryListPropValue(
386
+ prop: IkasThemeComponentProp,
387
+ propValue: any,
388
+ pageComponentPropValue: IkasPageComponentPropValue
389
+ ) {
390
+ const categoryList = new IkasCategoryList(
391
+ propValue as IkasCategoryListParams
392
+ );
393
+ pageComponentPropValue.propValues[prop.name] = categoryList;
394
+ }
395
+
396
+ static _initCategoryListPropValue(propValue: IkasCategoryListParams) {
397
+ return new IkasCategoryList(propValue);
398
+ }
399
+
400
+ static initProductListPropValue(
401
+ prop: IkasThemeComponentProp,
402
+ propValue: any,
403
+ pageComponentPropValue: IkasPageComponentPropValue,
404
+ router: NextRouter
405
+ ) {
406
+ pageComponentPropValue.propValues[
407
+ prop.name
408
+ ] = this._initProductListPropValue(propValue, router);
409
+ }
410
+
411
+ static _initProductListPropValue(
412
+ propValue: IkasProductListParams,
413
+ router: NextRouter
414
+ ) {
415
+ return new IkasProductList(propValue, router);
416
+ }
417
+
418
+ static initProductDetailPropValue(
419
+ prop: IkasThemeComponentProp,
420
+ propValue: IkasProductDetailData,
421
+ pageComponentPropValue: IkasPageComponentPropValue,
422
+ router: NextRouter
423
+ ) {
424
+ pageComponentPropValue.propValues[
425
+ prop.name
426
+ ] = this._initProductDetailPropValue(propValue, router);
427
+ }
428
+
429
+ static _initProductDetailPropValue(
430
+ propValue: IkasProductDetailData,
431
+ router: NextRouter
432
+ ) {
433
+ let productDetail: IkasProductDetail = getPlaceholderProduct();
434
+
435
+ if (propValue.productDetailPropValue.usePageData) {
436
+ productDetail = this.pageSpecificData;
437
+ } else if (propValue.productDetail) {
438
+ productDetail = new IkasProductDetail(
439
+ propValue.productDetail.product,
440
+ propValue.productDetail.selectedVariantValues
441
+ );
442
+ }
443
+
444
+ //@ts-ignore
445
+ productDetail.router = router;
446
+
447
+ return productDetail;
448
+ }
449
+
450
+ static _initProductDetailOnBrowser(productDetail: IkasProductDetail) {
451
+ // Do not re-create a new IkasProductDetail instance in this function
452
+ // Only modify the provided one!
453
+
454
+ const urlParams = new URLSearchParams(window.location.search);
455
+ const vid = urlParams.get("vid");
456
+
457
+ if (vid) {
458
+ const variant = productDetail.product.variants.find((v) => v.id === vid);
459
+ if (variant) {
460
+ productDetail.selectedVariantValues = variant.variantValues;
461
+ }
462
+ } else {
463
+ const productVariantTypeSlugs = productDetail.product.variantTypes.map(
464
+ (vt) => vt.variantType.slug
465
+ );
466
+
467
+ const selectedVariantValues: IkasVariantValue[] = [];
468
+
469
+ productVariantTypeSlugs.forEach((slug, vtIndex) => {
470
+ const productVariantType = productDetail.product.variantTypes[vtIndex];
471
+ const variantValueSlug = urlParams.get(slug);
472
+
473
+ if (variantValueSlug) {
474
+ const variantValue = productVariantType.variantType.values.find(
475
+ (v) => v.slug === variantValueSlug
476
+ );
477
+ if (variantValue) selectedVariantValues.push(variantValue);
478
+ }
479
+ });
480
+
481
+ if (
482
+ selectedVariantValues.length ===
483
+ productDetail.selectedVariantValues.length
484
+ ) {
485
+ productDetail.selectedVariantValues = selectedVariantValues;
486
+ }
487
+ }
488
+ }
489
+
490
+ static initAttributePropValue(
491
+ prop: IkasThemeComponentProp,
492
+ propValue: IkasAttributePropValueData,
493
+ pageComponentPropValue: IkasPageComponentPropValue
494
+ ) {
495
+ pageComponentPropValue.propValues[
496
+ prop.name
497
+ ] = IkasPageDataInit._initAttributePropValue(propValue);
498
+ }
499
+
500
+ static _initAttributePropValue(propValue: IkasAttributePropValueData) {
501
+ let productDetail: IkasProductDetail | null = null;
502
+
503
+ if (propValue.attributePropValue.usePageData) {
504
+ productDetail = this.pageSpecificData;
505
+ } else if (propValue.productDetail) {
506
+ productDetail = new IkasProductDetail(
507
+ propValue.productDetail.product,
508
+ propValue.productDetail.selectedVariantValues
509
+ );
510
+ }
511
+
512
+ return new IkasAttributeDetail(productDetail, propValue.attributePropValue);
513
+ }
514
+
515
+ static initAttributeListPropValue(
516
+ prop: IkasThemeComponentProp,
517
+ propValue: IkasAttributeListPropValueData,
518
+ pageComponentPropValue: IkasPageComponentPropValue
519
+ ) {
520
+ pageComponentPropValue.propValues[
521
+ prop.name
522
+ ] = IkasPageDataInit._initAttributeListPropValue(propValue);
523
+ }
524
+
525
+ static _initAttributeListPropValue(
526
+ propValue: IkasAttributeListPropValueData
527
+ ) {
528
+ let productDetail: IkasProductDetail | null = null;
529
+
530
+ if (propValue.attributeListPropValue.usePageData) {
531
+ productDetail = this.pageSpecificData;
532
+ } else if (propValue.productDetail) {
533
+ productDetail = new IkasProductDetail(
534
+ propValue.productDetail.product,
535
+ propValue.productDetail.selectedVariantValues
536
+ );
537
+ }
538
+
539
+ return new IkasAttributeList(
540
+ productDetail,
541
+ propValue.attributeListPropValue
542
+ );
543
+ }
544
+
545
+ static initLinkPropValue(
546
+ prop: IkasThemeComponentProp,
547
+ propValue: any,
548
+ pageComponentPropValue: IkasPageComponentPropValue
549
+ ) {
550
+ pageComponentPropValue.propValues[prop.name] = this._initLinkPropValue(
551
+ propValue
552
+ );
553
+ }
554
+
555
+ static _initLinkPropValue(propValue: any) {
556
+ if (Array.isArray(propValue)) {
557
+ return (propValue as IkasNavigationLink[]).map(
558
+ (p) =>
559
+ new IkasNavigationLink(
560
+ p.href,
561
+ p.label,
562
+ p.subLinks,
563
+ p.isExternal || undefined
564
+ )
565
+ );
566
+ } else if (propValue) {
567
+ return new IkasNavigationLink(
568
+ propValue.href,
569
+ propValue.label,
570
+ propValue.subLinks,
571
+ propValue.isExternal
572
+ );
573
+ }
574
+ }
575
+
576
+ static initImagePropValue(
577
+ prop: IkasThemeComponentProp,
578
+ propValue: any,
579
+ pageComponentPropValue: IkasPageComponentPropValue
580
+ ) {
581
+ pageComponentPropValue.propValues[prop.name] = this._initImagePropValue(
582
+ propValue
583
+ );
584
+ }
585
+
586
+ static _initImagePropValue(propValue: any) {
587
+ return new IkasImage(propValue.id);
588
+ }
589
+
590
+ static initImageListPropValue(
591
+ prop: IkasThemeComponentProp,
592
+ propValue: any,
593
+ pageComponentPropValue: IkasPageComponentPropValue
594
+ ) {
595
+ pageComponentPropValue.propValues[prop.name] = this._initImageListPropValue(
596
+ propValue
597
+ );
598
+ }
599
+
600
+ static _initImageListPropValue(propValue: any) {
601
+ return (propValue as IkasImage[]).map((i) => new IkasImage(i.id));
602
+ }
603
+
604
+ static initCustomDataPropValue(
605
+ prop: IkasThemeComponentProp,
606
+ customDataValue: CustomDataValue | undefined,
607
+ pageComponentPropValue: IkasPageComponentPropValue,
608
+ router: NextRouter,
609
+ settings: IkasThemeSettings,
610
+ isBrowser?: boolean
611
+ ) {
612
+ if (
613
+ !customDataValue ||
614
+ !customDataValue.value ||
615
+ !customDataValue.customData
616
+ )
617
+ return;
618
+
619
+ pageComponentPropValue.propValues[
620
+ prop.name
621
+ ] = this._initCustomDataPropValue(
622
+ customDataValue,
623
+ customDataValue.customData,
624
+ router,
625
+ settings,
626
+ isBrowser
627
+ );
628
+ }
629
+
630
+ static _initCustomDataPropValue(
631
+ customDataValue: CustomDataValue | undefined,
632
+ customData: IkasThemeCustomData,
633
+ router: NextRouter,
634
+ settings: IkasThemeSettings,
635
+ isBrowser?: boolean
636
+ ) {
637
+ if (!customDataValue) return null;
638
+
639
+ const propValue = customDataValue.value;
640
+ if (propValue === null || propValue === undefined) return null;
641
+
642
+ switch (customData.type) {
643
+ case IkasThemeComponentPropType.BRAND:
644
+ return this._initBrandPropValue(propValue);
645
+
646
+ case IkasThemeComponentPropType.BRAND_LIST:
647
+ return this._initBrandListPropValue(propValue);
648
+
649
+ case IkasThemeComponentPropType.CATEGORY_LIST:
650
+ return this._initCategoryListPropValue(propValue);
651
+
652
+ case IkasThemeComponentPropType.CATEGORY:
653
+ return this._initCategoryPropValue(propValue);
654
+
655
+ case IkasThemeComponentPropType.IMAGE_LIST:
656
+ return this._initImageListPropValue(propValue);
657
+
658
+ case IkasThemeComponentPropType.IMAGE:
659
+ return this._initImagePropValue(propValue);
660
+
661
+ case IkasThemeComponentPropType.LINK:
662
+ return this._initLinkPropValue(propValue);
663
+
664
+ case IkasThemeComponentPropType.PRODUCT_DETAIL:
665
+ return this._initProductDetailPropValue(propValue, router);
666
+
667
+ case IkasThemeComponentPropType.PRODUCT_LIST:
668
+ return this._initProductListPropValue(propValue, router);
669
+
670
+ case IkasThemeComponentPropType.PRODUCT_ATTRIBUTE:
671
+ return this._initAttributePropValue(propValue);
672
+
673
+ case IkasThemeComponentPropType.PRODUCT_ATTRIBUTE_LIST:
674
+ return this._initAttributeListPropValue(propValue);
675
+
676
+ case IkasThemeComponentPropType.BLOG:
677
+ return this._initBlogPropValue(propValue);
678
+
679
+ case IkasThemeComponentPropType.BLOG_LIST:
680
+ return this._initBlogListPropValue(propValue);
681
+
682
+ case IkasThemeComponentPropType.BLOG_CATEGORY:
683
+ return this._initBlogCategoryPropValue(propValue);
684
+
685
+ case IkasThemeComponentPropType.BLOG_CATEGORY_LIST:
686
+ return this._initBlogCategoryListPropValue(propValue);
687
+
688
+ case IkasThemeComponentPropType.RAFFLE:
689
+ return this._initRafflePropValue(propValue);
690
+
691
+ case IkasThemeComponentPropType.RAFFLE_LIST:
692
+ return this._initRaffleListPropValue(propValue);
693
+
694
+ case IkasThemeComponentPropType.OBJECT:
695
+ const objectValue: Record<string, any> = {};
696
+
697
+ for (const nestedCustomData of customData.nestedData || []) {
698
+ const value = propValue[nestedCustomData.key!];
699
+
700
+ let selectedCustomData: IkasThemeCustomData | undefined;
701
+ if (nestedCustomData.customDataId) {
702
+ selectedCustomData = value.customData;
703
+ }
704
+
705
+ objectValue[nestedCustomData.key!] = this._initCustomDataPropValue(
706
+ value,
707
+ selectedCustomData || nestedCustomData,
708
+ router,
709
+ settings,
710
+ isBrowser
711
+ );
712
+ }
713
+
714
+ return objectValue;
715
+
716
+ case IkasThemeComponentPropType.DYNAMIC_LIST:
717
+ case IkasThemeComponentPropType.STATIC_LIST:
718
+ try {
719
+ if (!propValue || !propValue.length) return null;
720
+
721
+ const listValue: any[] = [];
722
+ const nestedCustomData = customData.nestedData![0];
723
+
724
+ propValue.forEach((itemValue: any) => {
725
+ let selectedCustomData: IkasThemeCustomData | undefined;
726
+ if (nestedCustomData.customDataId) {
727
+ selectedCustomData = itemValue.customData;
728
+ }
729
+ listValue.push(
730
+ this._initCustomDataPropValue(
731
+ itemValue,
732
+ selectedCustomData || nestedCustomData,
733
+ router,
734
+ settings,
735
+ isBrowser
736
+ )
737
+ );
738
+ });
739
+
740
+ return listValue;
741
+ } catch (err) {
742
+ return [];
743
+ }
744
+
745
+ case IkasThemeComponentPropType.COMPONENT:
746
+ return this._initComponentPropValue(
747
+ propValue,
748
+ router,
749
+ settings,
750
+ isBrowser
751
+ );
752
+
753
+ case IkasThemeComponentPropType.COMPONENT_LIST:
754
+ return this._initComponentListPropValue(
755
+ propValue,
756
+ router,
757
+ settings,
758
+ isBrowser
759
+ );
760
+
761
+ default:
762
+ return propValue;
763
+ }
764
+ }
765
+
766
+ static initComponentPropValue(
767
+ prop: IkasThemeComponentProp,
768
+ propValue: IkasPageComponentPropValue[],
769
+ pageComponentPropValue: IkasPageComponentPropValue,
770
+ router: NextRouter,
771
+ settings: IkasThemeSettings,
772
+ isBrowser?: boolean
773
+ ) {
774
+ pageComponentPropValue.propValues[prop.name] = this._initComponentPropValue(
775
+ propValue,
776
+ router,
777
+ settings,
778
+ isBrowser
779
+ );
780
+ }
781
+
782
+ static _initComponentPropValue(
783
+ propValue: IkasPageComponentPropValue[],
784
+ router: NextRouter,
785
+ settings: IkasThemeSettings,
786
+ isBrowser?: boolean
787
+ ) {
788
+ const pValue = propValue.length ? propValue[0] : undefined;
789
+ if (!pValue) return;
790
+
791
+ const pageComponentPropValue = new IkasPageComponentPropValue(pValue);
792
+ const initializedPageComponentPropValues = this.initPropValues(
793
+ JSON.stringify([pageComponentPropValue]),
794
+ router,
795
+ JSON.stringify(settings),
796
+ false,
797
+ isBrowser
798
+ );
799
+
800
+ if (!initializedPageComponentPropValues.length) return;
801
+
802
+ return new IkasComponentRenderer(() =>
803
+ renderComponent(initializedPageComponentPropValues[0], settings, -10)
804
+ );
805
+ }
806
+
807
+ static initComponentListPropValue(
808
+ prop: IkasThemeComponentProp,
809
+ propValue: IkasPageComponentPropValue[],
810
+ pageComponentPropValue: IkasPageComponentPropValue,
811
+ router: NextRouter,
812
+ settings: IkasThemeSettings,
813
+ isBrowser?: boolean
814
+ ) {
815
+ pageComponentPropValue.propValues[
816
+ prop.name
817
+ ] = this._initComponentListPropValue(
818
+ propValue,
819
+ router,
820
+ settings,
821
+ isBrowser
822
+ );
823
+ }
824
+
825
+ static _initComponentListPropValue(
826
+ propValue: IkasPageComponentPropValue[],
827
+ router: NextRouter,
828
+ settings: IkasThemeSettings,
829
+ isBrowser?: boolean
830
+ ) {
831
+ if (propValue && propValue.length)
832
+ return propValue.map((p: IkasPageComponentPropValue) => {
833
+ const pageComponentPropValue = new IkasPageComponentPropValue(p);
834
+ const initializedPageComponentPropValues = this.initPropValues(
835
+ JSON.stringify([pageComponentPropValue]),
836
+ router,
837
+ JSON.stringify(settings),
838
+ false,
839
+ isBrowser
840
+ );
841
+
842
+ return new IkasComponentRenderer(() =>
843
+ renderComponent(initializedPageComponentPropValues[0], settings, -1)
844
+ );
845
+ });
846
+ return [];
847
+ }
848
+
849
+ static initBlogPropValue(
850
+ prop: IkasThemeComponentProp,
851
+ propValue: IkasBlogPropValueData,
852
+ pageComponentPropValue: IkasPageComponentPropValue
853
+ ) {
854
+ pageComponentPropValue.propValues[
855
+ prop.name
856
+ ] = IkasPageDataInit._initBlogPropValue(propValue);
857
+ }
858
+
859
+ static _initBlogPropValue(propValue: IkasBlogPropValueData) {
860
+ if (propValue.blogPropValue.usePageData) {
861
+ return this.pageSpecificData;
862
+ }
863
+
864
+ if (propValue.blog) {
865
+ return new IkasBlog(propValue.blog);
866
+ }
867
+
868
+ return getPlaceholderBlog();
869
+ }
870
+
871
+ static initBlogListPropValue(
872
+ prop: IkasThemeComponentProp,
873
+ propValue: any,
874
+ pageComponentPropValue: IkasPageComponentPropValue
875
+ ) {
876
+ pageComponentPropValue.propValues[prop.name] = this._initBlogListPropValue(
877
+ propValue
878
+ );
879
+ }
880
+
881
+ static _initBlogListPropValue(propValue: IkasBlogListParams) {
882
+ return new IkasBlogList(propValue);
883
+ }
884
+
885
+ static initBlogCategoryPropValue(
886
+ prop: IkasThemeComponentProp,
887
+ propValue: IkasBlogCategoryPropValueData,
888
+ pageComponentPropValue: IkasPageComponentPropValue
889
+ ) {
890
+ pageComponentPropValue.propValues[
891
+ prop.name
892
+ ] = IkasPageDataInit._initBlogCategoryPropValue(propValue);
893
+ }
894
+
895
+ static _initBlogCategoryPropValue(propValue: IkasBlogCategoryPropValueData) {
896
+ if (propValue.blogCategoryPropValue.usePageData) {
897
+ return this.pageSpecificData;
898
+ }
899
+
900
+ if (propValue.blogCategory) {
901
+ return new IkasBlogCategory(propValue.blogCategory);
902
+ }
903
+
904
+ return getPlaceholderBlogCategory();
905
+ }
906
+
907
+ static initBlogCategoryListPropValue(
908
+ prop: IkasThemeComponentProp,
909
+ propValue: any,
910
+ pageComponentPropValue: IkasPageComponentPropValue
911
+ ) {
912
+ pageComponentPropValue.propValues[
913
+ prop.name
914
+ ] = this._initBlogCategoryListPropValue(propValue);
915
+ }
916
+
917
+ static _initBlogCategoryListPropValue(propValue: IkasBlogCategoryListParams) {
918
+ return new IkasBlogCategoryList(propValue);
919
+ }
920
+
921
+ static initRafflePropValue(
922
+ prop: IkasThemeComponentProp,
923
+ propValue: IkasRafflePropValueData,
924
+ pageComponentPropValue: IkasPageComponentPropValue
925
+ ) {
926
+ pageComponentPropValue.propValues[
927
+ prop.name
928
+ ] = IkasPageDataInit._initRafflePropValue(propValue);
929
+ }
930
+
931
+ static _initRafflePropValue(propValue: IkasRafflePropValueData) {
932
+ if (propValue.rafflePropValue.usePageData) {
933
+ return this.pageSpecificData;
934
+ }
935
+
936
+ if (propValue.raffle) {
937
+ return new IkasRaffle(propValue.raffle);
938
+ }
939
+
940
+ return getPlaceholderRaffle();
941
+ }
942
+
943
+ static initRaffleListPropValue(
944
+ prop: IkasThemeComponentProp,
945
+ propValue: any,
946
+ pageComponentPropValue: IkasPageComponentPropValue
947
+ ) {
948
+ pageComponentPropValue.propValues[
949
+ prop.name
950
+ ] = this._initRaffleListPropValue(propValue);
951
+ }
952
+
953
+ static _initRaffleListPropValue(propValue: IkasRaffleListParams) {
954
+ return new IkasRaffleList(propValue);
955
+ }
956
+ }