@salla.sa/twilight-components 2.14.498 → 2.14.500

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 (458) hide show
  1. package/dist/cjs/{filepond-B7XPTm4d.js → filepond-B9PtMjXt.js} +1 -1
  2. package/dist/cjs/{filepond-plugin-file-poster-C5WAs5Sq.js → filepond-plugin-file-poster-CMd-UUZx.js} +1 -1
  3. package/dist/cjs/{filepond-plugin-file-validate-size-CpzjvZP9.js → filepond-plugin-file-validate-size-DpJalosf.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-validate-type-CQjym5yh.js → filepond-plugin-file-validate-type-CZjeYI0w.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-image-edit-JvWrX8H9.js → filepond-plugin-image-edit-Bl6fwgrn.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-image-exif-orientation-CaFH4vic.js → filepond-plugin-image-exif-orientation-BeQ8iCyg.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-preview-CpD30vUg.js → filepond-plugin-image-preview-BkGKXzOB.js} +1 -1
  8. package/dist/cjs/{functions-BUcHv9GL.js → functions-UaOjMOb2.js} +1 -1
  9. package/dist/cjs/{index-Dqo2RTwY.js → index-CQPk27Eg.js} +1 -1
  10. package/dist/cjs/{index-CxOIGeOr.js → index-Cd5xdrCT.js} +2 -2
  11. package/dist/cjs/loader.cjs.js +2 -2
  12. package/dist/cjs/salla-accordion-body_2.cjs.entry.js +1 -1
  13. package/dist/cjs/salla-accordion_6.cjs.entry.js +2 -2
  14. package/dist/cjs/salla-add-product-button_5.cjs.entry.js +3 -3
  15. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  16. package/dist/cjs/salla-alert_2.cjs.entry.js +1 -1
  17. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  18. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-badge.cjs.entry.js +1 -1
  20. package/dist/cjs/salla-booking-field_7.cjs.entry.js +17 -17
  21. package/dist/cjs/salla-bullet-delivery_2.cjs.entry.js +5 -5
  22. package/dist/cjs/salla-cart-coupons.cjs.entry.js +210 -31
  23. package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +2 -2
  24. package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
  25. package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-comment-form_8.cjs.entry.js +5 -5
  28. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
  31. package/dist/cjs/salla-count-down_2.cjs.entry.js +2 -2
  32. package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-filters-widget.cjs.entry.js +3 -3
  36. package/dist/cjs/salla-filters.cjs.entry.js +2 -2
  37. package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
  38. package/dist/cjs/salla-gifting.cjs.entry.js +3 -3
  39. package/dist/cjs/salla-hook.cjs.entry.js +2 -2
  40. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +1 -1
  41. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  42. package/dist/cjs/salla-list-tile.cjs.entry.js +2 -2
  43. package/dist/cjs/salla-localization-modal.cjs.entry.js +2 -2
  44. package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
  45. package/dist/cjs/salla-loyalty-banner.cjs.entry.js +2 -2
  46. package/dist/cjs/salla-loyalty-exchange-product-card_5.cjs.entry.js +10 -10
  47. package/dist/cjs/salla-loyalty-hero_2.cjs.entry.js +9 -9
  48. package/dist/cjs/salla-loyalty-panel.cjs.entry.js +3 -3
  49. package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
  50. package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +2 -2
  51. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +2 -2
  52. package/dist/cjs/salla-loyalty-program.cjs.entry.js +3 -3
  53. package/dist/cjs/salla-loyalty-reward.cjs.entry.js +4 -4
  54. package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
  55. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +2 -2
  56. package/dist/cjs/salla-map_2.cjs.entry.js +4 -4
  57. package/dist/cjs/salla-menu.cjs.entry.js +1 -1
  58. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  59. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +4 -4
  60. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +6 -6
  61. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +2 -2
  62. package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
  63. package/dist/cjs/salla-notification-item.cjs.entry.js +2 -2
  64. package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
  65. package/dist/cjs/salla-offer-modal.cjs.entry.js +2 -2
  66. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  67. package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
  69. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  70. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  71. package/dist/cjs/salla-order-details.cjs.entry.js +2 -2
  72. package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
  73. package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +2 -2
  74. package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
  75. package/dist/cjs/salla-order-summary.cjs.entry.js +2 -2
  76. package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
  77. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  78. package/dist/cjs/salla-payments.cjs.entry.js +3 -3
  79. package/dist/cjs/salla-placeholder.cjs.entry.js +2 -2
  80. package/dist/cjs/salla-price-range.cjs.entry.js +3 -3
  81. package/dist/cjs/salla-product-card-embed.cjs.entry.js +2 -2
  82. package/dist/cjs/salla-product-card_2.cjs.entry.js +6 -6
  83. package/dist/cjs/salla-product-size-guide.cjs.entry.js +3 -3
  84. package/dist/cjs/salla-products-list.cjs.entry.js +1 -1
  85. package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
  86. package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
  87. package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
  88. package/dist/cjs/salla-review-factors-tags.cjs.entry.js +2 -2
  89. package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
  90. package/dist/cjs/salla-search.cjs.entry.js +6 -6
  91. package/dist/cjs/salla-skeleton.cjs.entry.js +2 -2
  92. package/dist/cjs/salla-slider.cjs.entry.js +1 -1
  93. package/dist/cjs/salla-social-share.cjs.entry.js +2 -2
  94. package/dist/cjs/salla-social.cjs.entry.js +2 -2
  95. package/dist/cjs/salla-tab-content_3.cjs.entry.js +4 -4
  96. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  97. package/dist/cjs/salla-tooltip.cjs.entry.js +2 -2
  98. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  99. package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
  100. package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
  101. package/dist/cjs/salla-user-settings.cjs.entry.js +2 -2
  102. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  103. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  104. package/dist/cjs/salla-wishlist-actions.cjs.entry.js +2 -2
  105. package/dist/cjs/{tracked-promise-COd7urY7.js → tracked-promise-DwUVHl1m.js} +1 -1
  106. package/dist/cjs/twilight.cjs.js +2 -2
  107. package/dist/cjs/{vanilla-picker-v4qaVnjr.js → vanilla-picker-BTiOI13l.js} +1 -1
  108. package/dist/collection/collection-manifest.json +1 -1
  109. package/dist/collection/components/salla-cart-coupons/salla-cart-coupons.css +63 -0
  110. package/dist/collection/components/salla-cart-coupons/salla-cart-coupons.js +211 -30
  111. package/dist/collection/components/salla-cart-summary/salla-cart-summary.js +1 -1
  112. package/dist/collection/components/salla-color-picker/salla-color-picker.js +1 -1
  113. package/dist/collection/components/salla-comment-form/salla-comment-form.js +1 -1
  114. package/dist/collection/components/salla-conditional-fields/salla-conditional-fields.js +1 -1
  115. package/dist/collection/components/salla-count-down/salla-count-down.js +1 -1
  116. package/dist/collection/components/salla-datetime-picker/salla-datetime-picker.js +1 -1
  117. package/dist/collection/components/salla-file-upload/salla-file-upload.js +2 -2
  118. package/dist/collection/components/salla-filters/salla-filters.js +1 -1
  119. package/dist/collection/components/salla-filters-widget/salla-filters-widget.js +2 -2
  120. package/dist/collection/components/salla-gifting/salla-gifting.js +2 -2
  121. package/dist/collection/components/salla-hook/salla-hook.js +1 -1
  122. package/dist/collection/components/salla-list-tile/salla-list-tile.js +1 -1
  123. package/dist/collection/components/salla-loading/salla-loading.js +1 -1
  124. package/dist/collection/components/salla-localization-modal/salla-localization-modal.js +1 -1
  125. package/dist/collection/components/salla-loyalty/salla-loyalty-prize-item.js +1 -1
  126. package/dist/collection/components/salla-loyalty-points-history/salla-loyalty-points-history.js +1 -1
  127. package/dist/collection/components/salla-loyalty-program/salla-loyalty-exchange-product-card.js +2 -2
  128. package/dist/collection/components/salla-loyalty-program/salla-loyalty-hero.js +3 -3
  129. package/dist/collection/components/salla-loyalty-program/salla-loyalty-point.js +4 -4
  130. package/dist/collection/components/salla-loyalty-program/salla-loyalty-reward.js +2 -2
  131. package/dist/collection/components/salla-loyalty-program/salla-reward-card.js +1 -1
  132. package/dist/collection/components/salla-loyalty-program/salla-reward-details.js +3 -3
  133. package/dist/collection/components/salla-loyalty-program/salla-reward-exchange.js +1 -1
  134. package/dist/collection/components/salla-maintenance-alert/salla-maintenance-alert.js +1 -1
  135. package/dist/collection/components/salla-map/salla-map.js +3 -3
  136. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-cart.js +1 -1
  137. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-details.js +2 -2
  138. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-options-modal.js +4 -4
  139. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-slider.js +1 -1
  140. package/dist/collection/components/salla-multiple-bundle-product/salla-multiple-bundle-product.js +1 -1
  141. package/dist/collection/components/salla-notifications/salla-notification-item.js +1 -1
  142. package/dist/collection/components/salla-offer-modal/salla-offer-modal.js +1 -1
  143. package/dist/collection/components/salla-order-details/salla-order-details.js +1 -1
  144. package/dist/collection/components/salla-order-edit/salla-order-edit-product-card.js +1 -1
  145. package/dist/collection/components/salla-order-summary/salla-order-summary.js +1 -1
  146. package/dist/collection/components/salla-payments/salla-payments.js +2 -2
  147. package/dist/collection/components/salla-placeholder/salla-placeholder.js +1 -1
  148. package/dist/collection/components/salla-price-range/salla-price-range.js +2 -2
  149. package/dist/collection/components/salla-product-availability/salla-product-availability.js +1 -1
  150. package/dist/collection/components/salla-product-card/salla-product-card.js +5 -5
  151. package/dist/collection/components/salla-product-card-embed/salla-product-card-embed.js +1 -1
  152. package/dist/collection/components/salla-product-size-guide/salla-product-size-guide.js +2 -2
  153. package/dist/collection/components/salla-quantity-input/salla-quantity-input.js +1 -1
  154. package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +1 -1
  155. package/dist/collection/components/salla-review-card/salla-review-card.js +1 -1
  156. package/dist/collection/components/salla-review-factors-tags/salla-review-factors-tags.js +1 -1
  157. package/dist/collection/components/salla-reviews/salla-reviews.js +1 -1
  158. package/dist/collection/components/salla-reviews-page/salla-reviews-page.js +1 -1
  159. package/dist/collection/components/salla-search/salla-search.js +5 -5
  160. package/dist/collection/components/salla-searchable-dropdown/salla-searchable-dropdown.js +4 -4
  161. package/dist/collection/components/salla-skeleton/salla-skeleton.js +1 -1
  162. package/dist/collection/components/salla-social/salla-social.js +1 -1
  163. package/dist/collection/components/salla-social-share/salla-social-share.js +1 -1
  164. package/dist/collection/components/salla-tabs/salla-tab-content.js +1 -1
  165. package/dist/collection/components/salla-tabs/salla-tab-header.js +1 -1
  166. package/dist/collection/components/salla-tabs/salla-tabs.js +1 -1
  167. package/dist/collection/components/salla-tel-input/salla-tel-input.js +1 -1
  168. package/dist/collection/components/salla-tooltip/salla-tooltip.js +1 -1
  169. package/dist/collection/components/salla-user-settings/salla-user-settings.js +1 -1
  170. package/dist/collection/components/salla-wishlist-actions/salla-wishlist-actions.js +1 -1
  171. package/dist/components/index.js +2 -2
  172. package/dist/components/salla-cart-coupons.js +211 -30
  173. package/dist/components/salla-cart-summary.js +1 -1
  174. package/dist/components/salla-color-picker2.js +1 -1
  175. package/dist/components/salla-comment-form2.js +1 -1
  176. package/dist/components/salla-conditional-fields2.js +1 -1
  177. package/dist/components/salla-count-down2.js +1 -1
  178. package/dist/components/salla-datetime-picker2.js +1 -1
  179. package/dist/components/salla-file-upload2.js +2 -2
  180. package/dist/components/salla-filters-widget2.js +2 -2
  181. package/dist/components/salla-filters.js +1 -1
  182. package/dist/components/salla-gifting.js +2 -2
  183. package/dist/components/salla-hook.js +1 -1
  184. package/dist/components/salla-list-tile2.js +1 -1
  185. package/dist/components/salla-loading2.js +1 -1
  186. package/dist/components/salla-localization-modal.js +1 -1
  187. package/dist/components/salla-loyalty-exchange-product-card2.js +2 -2
  188. package/dist/components/salla-loyalty-hero2.js +3 -3
  189. package/dist/components/salla-loyalty-point2.js +4 -4
  190. package/dist/components/salla-loyalty-points-history.js +1 -1
  191. package/dist/components/salla-loyalty-prize-item.js +1 -1
  192. package/dist/components/salla-loyalty-reward.js +2 -2
  193. package/dist/components/salla-maintenance-alert.js +1 -1
  194. package/dist/components/salla-map2.js +3 -3
  195. package/dist/components/salla-multiple-bundle-product-cart2.js +1 -1
  196. package/dist/components/salla-multiple-bundle-product-details2.js +2 -2
  197. package/dist/components/salla-multiple-bundle-product-options-modal2.js +4 -4
  198. package/dist/components/salla-multiple-bundle-product-slider2.js +1 -1
  199. package/dist/components/salla-multiple-bundle-product.js +1 -1
  200. package/dist/components/salla-notification-item2.js +1 -1
  201. package/dist/components/salla-offer-modal.js +1 -1
  202. package/dist/components/salla-order-details.js +1 -1
  203. package/dist/components/salla-order-edit-product-card.js +1 -1
  204. package/dist/components/salla-order-summary.js +1 -1
  205. package/dist/components/salla-payments.js +2 -2
  206. package/dist/components/salla-placeholder2.js +1 -1
  207. package/dist/components/salla-price-range2.js +2 -2
  208. package/dist/components/salla-product-availability2.js +1 -1
  209. package/dist/components/salla-product-card-embed.js +1 -1
  210. package/dist/components/salla-product-card2.js +5 -5
  211. package/dist/components/salla-product-size-guide.js +2 -2
  212. package/dist/components/salla-quantity-input2.js +1 -1
  213. package/dist/components/salla-quick-buy2.js +1 -1
  214. package/dist/components/salla-review-card2.js +1 -1
  215. package/dist/components/salla-review-factors-tags.js +1 -1
  216. package/dist/components/salla-reviews-page.js +1 -1
  217. package/dist/components/salla-reviews.js +1 -1
  218. package/dist/components/salla-reward-card2.js +1 -1
  219. package/dist/components/salla-reward-details2.js +3 -3
  220. package/dist/components/salla-reward-exchange2.js +1 -1
  221. package/dist/components/salla-search.js +5 -5
  222. package/dist/components/salla-searchable-dropdown2.js +4 -4
  223. package/dist/components/salla-skeleton2.js +1 -1
  224. package/dist/components/salla-social-share2.js +1 -1
  225. package/dist/components/salla-social.js +1 -1
  226. package/dist/components/salla-tab-content2.js +1 -1
  227. package/dist/components/salla-tab-header2.js +1 -1
  228. package/dist/components/salla-tabs2.js +1 -1
  229. package/dist/components/salla-tel-input2.js +1 -1
  230. package/dist/components/salla-tooltip2.js +1 -1
  231. package/dist/components/salla-user-settings.js +1 -1
  232. package/dist/components/salla-wishlist-actions.js +1 -1
  233. package/dist/esm/{filepond-Bztq2DfJ.js → filepond-DjtqIoeD.js} +1 -1
  234. package/dist/esm/{filepond-plugin-file-poster-7n46TpPX.js → filepond-plugin-file-poster-CFxoEHLP.js} +1 -1
  235. package/dist/esm/{filepond-plugin-file-validate-size-CEaKKsXh.js → filepond-plugin-file-validate-size-BnBRYL0y.js} +1 -1
  236. package/dist/esm/{filepond-plugin-file-validate-type-G_rhCCOz.js → filepond-plugin-file-validate-type-Dr5ofT9v.js} +1 -1
  237. package/dist/esm/{filepond-plugin-image-edit-3fXrzMbo.js → filepond-plugin-image-edit-DyMeCzTZ.js} +1 -1
  238. package/dist/esm/{filepond-plugin-image-exif-orientation-BXr__tdF.js → filepond-plugin-image-exif-orientation-ngtve06j.js} +1 -1
  239. package/dist/esm/{filepond-plugin-image-preview-Deyf31fO.js → filepond-plugin-image-preview-aqxBqAYf.js} +1 -1
  240. package/dist/esm/{functions-BvcgTy23.js → functions-Drikk4uf.js} +1 -1
  241. package/dist/esm/{index-CtDVz2Sf.js → index-CaZkz-p0.js} +1 -1
  242. package/dist/esm/{index-DD7hlkaJ.js → index-DuoSRdS5.js} +2 -2
  243. package/dist/esm/loader.js +3 -3
  244. package/dist/esm/salla-accordion-body_2.entry.js +1 -1
  245. package/dist/esm/salla-accordion_6.entry.js +2 -2
  246. package/dist/esm/salla-add-product-button_5.entry.js +3 -3
  247. package/dist/esm/salla-advertisement.entry.js +1 -1
  248. package/dist/esm/salla-alert_2.entry.js +1 -1
  249. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  250. package/dist/esm/salla-apps-icons.entry.js +1 -1
  251. package/dist/esm/salla-badge.entry.js +1 -1
  252. package/dist/esm/salla-booking-field_7.entry.js +17 -17
  253. package/dist/esm/salla-bullet-delivery_2.entry.js +5 -5
  254. package/dist/esm/salla-cart-coupons.entry.js +210 -31
  255. package/dist/esm/salla-cart-item-offers_2.entry.js +2 -2
  256. package/dist/esm/salla-cart-summary-card.entry.js +1 -1
  257. package/dist/esm/salla-cashback-banner.entry.js +1 -1
  258. package/dist/esm/salla-comment-factors.entry.js +1 -1
  259. package/dist/esm/salla-comment-form_8.entry.js +5 -5
  260. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  261. package/dist/esm/salla-contacts.entry.js +1 -1
  262. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  263. package/dist/esm/salla-count-down_2.entry.js +2 -2
  264. package/dist/esm/salla-custom-fields.entry.js +1 -1
  265. package/dist/esm/salla-delivery-promise.entry.js +1 -1
  266. package/dist/esm/salla-edit-order-button.entry.js +1 -1
  267. package/dist/esm/salla-filters-widget.entry.js +3 -3
  268. package/dist/esm/salla-filters.entry.js +2 -2
  269. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  270. package/dist/esm/salla-gifting.entry.js +3 -3
  271. package/dist/esm/salla-hook.entry.js +2 -2
  272. package/dist/esm/salla-infinite-scroll.entry.js +1 -1
  273. package/dist/esm/salla-installment.entry.js +1 -1
  274. package/dist/esm/salla-list-tile.entry.js +2 -2
  275. package/dist/esm/salla-localization-modal.entry.js +2 -2
  276. package/dist/esm/salla-login-modal.entry.js +1 -1
  277. package/dist/esm/salla-loyalty-banner.entry.js +2 -2
  278. package/dist/esm/salla-loyalty-exchange-product-card_5.entry.js +10 -10
  279. package/dist/esm/salla-loyalty-hero_2.entry.js +9 -9
  280. package/dist/esm/salla-loyalty-panel.entry.js +3 -3
  281. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  282. package/dist/esm/salla-loyalty-points-history.entry.js +2 -2
  283. package/dist/esm/salla-loyalty-prize-item.entry.js +2 -2
  284. package/dist/esm/salla-loyalty-program.entry.js +3 -3
  285. package/dist/esm/salla-loyalty-reward.entry.js +4 -4
  286. package/dist/esm/salla-loyalty.entry.js +1 -1
  287. package/dist/esm/salla-maintenance-alert.entry.js +2 -2
  288. package/dist/esm/salla-map_2.entry.js +4 -4
  289. package/dist/esm/salla-menu.entry.js +1 -1
  290. package/dist/esm/salla-metadata.entry.js +1 -1
  291. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +4 -4
  292. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +6 -6
  293. package/dist/esm/salla-multiple-bundle-product.entry.js +2 -2
  294. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  295. package/dist/esm/salla-notification-item.entry.js +2 -2
  296. package/dist/esm/salla-notifications.entry.js +1 -1
  297. package/dist/esm/salla-offer-modal.entry.js +2 -2
  298. package/dist/esm/salla-offer.entry.js +1 -1
  299. package/dist/esm/salla-order-branch.entry.js +1 -1
  300. package/dist/esm/salla-order-cancel.entry.js +1 -1
  301. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  302. package/dist/esm/salla-order-details-options.entry.js +1 -1
  303. package/dist/esm/salla-order-details.entry.js +2 -2
  304. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  305. package/dist/esm/salla-order-edit-product-card.entry.js +2 -2
  306. package/dist/esm/salla-order-edit.entry.js +1 -1
  307. package/dist/esm/salla-order-summary.entry.js +2 -2
  308. package/dist/esm/salla-order-totals-card.entry.js +1 -1
  309. package/dist/esm/salla-orders.entry.js +1 -1
  310. package/dist/esm/salla-payments.entry.js +3 -3
  311. package/dist/esm/salla-placeholder.entry.js +2 -2
  312. package/dist/esm/salla-price-range.entry.js +3 -3
  313. package/dist/esm/salla-product-card-embed.entry.js +2 -2
  314. package/dist/esm/salla-product-card_2.entry.js +6 -6
  315. package/dist/esm/salla-product-size-guide.entry.js +3 -3
  316. package/dist/esm/salla-products-list.entry.js +1 -1
  317. package/dist/esm/salla-quick-order.entry.js +1 -1
  318. package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
  319. package/dist/esm/salla-rating-modal.entry.js +1 -1
  320. package/dist/esm/salla-review-factors-tags.entry.js +2 -2
  321. package/dist/esm/salla-scopes.entry.js +1 -1
  322. package/dist/esm/salla-search.entry.js +6 -6
  323. package/dist/esm/salla-skeleton.entry.js +2 -2
  324. package/dist/esm/salla-slider.entry.js +1 -1
  325. package/dist/esm/salla-social-share.entry.js +2 -2
  326. package/dist/esm/salla-social.entry.js +2 -2
  327. package/dist/esm/salla-tab-content_3.entry.js +4 -4
  328. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  329. package/dist/esm/salla-tooltip.entry.js +2 -2
  330. package/dist/esm/salla-trust-badges.entry.js +1 -1
  331. package/dist/esm/salla-user-menu.entry.js +1 -1
  332. package/dist/esm/salla-user-profile.entry.js +1 -1
  333. package/dist/esm/salla-user-settings.entry.js +2 -2
  334. package/dist/esm/salla-verify.entry.js +1 -1
  335. package/dist/esm/salla-wallet.entry.js +1 -1
  336. package/dist/esm/salla-wishlist-actions.entry.js +2 -2
  337. package/dist/esm/{tracked-promise-B5nZ0_u3.js → tracked-promise-CUM6cNiF.js} +1 -1
  338. package/dist/esm/twilight.js +3 -3
  339. package/dist/esm/{vanilla-picker-DrhPsPVG.js → vanilla-picker-kF8Cgi5q.js} +1 -1
  340. package/dist/twilight/{p-4f9905a1.entry.js → p-00d73870.entry.js} +1 -1
  341. package/dist/twilight/{p-ab56087a.entry.js → p-01636f53.entry.js} +1 -1
  342. package/dist/twilight/{p-ed745cc5.entry.js → p-022343f3.entry.js} +1 -1
  343. package/dist/twilight/{p-97a7ab54.entry.js → p-03db477f.entry.js} +1 -1
  344. package/dist/twilight/{p-789a33ab.entry.js → p-04fadfb3.entry.js} +1 -1
  345. package/dist/twilight/{p-7935b94f.entry.js → p-0604eb27.entry.js} +1 -1
  346. package/dist/twilight/{p-d5730ccd.entry.js → p-061fdc55.entry.js} +1 -1
  347. package/dist/twilight/{p-f63f2040.entry.js → p-0a1f28c9.entry.js} +1 -1
  348. package/dist/twilight/{p-3a51e372.entry.js → p-0b814320.entry.js} +1 -1
  349. package/dist/twilight/{p-044967a1.entry.js → p-0bc04e3f.entry.js} +1 -1
  350. package/dist/twilight/{p-bb1aff39.entry.js → p-0c1721e1.entry.js} +1 -1
  351. package/dist/twilight/p-0daa8221.entry.js +4 -0
  352. package/dist/twilight/{p-3240f2c3.entry.js → p-0e6a0989.entry.js} +2 -2
  353. package/dist/twilight/{p-da6a525a.entry.js → p-15c3b0cc.entry.js} +1 -1
  354. package/dist/twilight/{p-20141d72.entry.js → p-168e3ad8.entry.js} +1 -1
  355. package/dist/twilight/{p-c996ee08.entry.js → p-19c6d83a.entry.js} +1 -1
  356. package/dist/twilight/{p-6fb9221a.entry.js → p-1d75fdd9.entry.js} +1 -1
  357. package/dist/twilight/{p-07fa35ce.entry.js → p-2104f800.entry.js} +1 -1
  358. package/dist/twilight/{p-c6-stRrD.js → p-25ZR4Fc8.js} +1 -1
  359. package/dist/twilight/p-286d9ba3.entry.js +4 -0
  360. package/dist/twilight/p-2985e01e.entry.js +4 -0
  361. package/dist/twilight/{p-c3639051.entry.js → p-2c4f4539.entry.js} +1 -1
  362. package/dist/twilight/{p-0597f278.entry.js → p-2c9c0815.entry.js} +1 -1
  363. package/dist/twilight/{p-e5b1f92d.entry.js → p-39389b31.entry.js} +1 -1
  364. package/dist/twilight/{p-b344db5c.entry.js → p-3c96d5af.entry.js} +1 -1
  365. package/dist/twilight/{p-bec932de.entry.js → p-404d3645.entry.js} +1 -1
  366. package/dist/twilight/{p-8ab2b78f.entry.js → p-47c9e882.entry.js} +1 -1
  367. package/dist/twilight/{p-f28da331.entry.js → p-4fb48be8.entry.js} +1 -1
  368. package/dist/twilight/{p-5e58c1d1.entry.js → p-4fff03a8.entry.js} +1 -1
  369. package/dist/twilight/{p-5d72e09d.entry.js → p-51bc9c4d.entry.js} +1 -1
  370. package/dist/twilight/{p-57856a68.entry.js → p-54e43314.entry.js} +1 -1
  371. package/dist/twilight/{p-9965cc1b.entry.js → p-56ba7f94.entry.js} +1 -1
  372. package/dist/twilight/{p-861bf5a5.entry.js → p-5a215130.entry.js} +1 -1
  373. package/dist/twilight/{p-eca28f29.entry.js → p-5cb10852.entry.js} +1 -1
  374. package/dist/twilight/{p-031fe0b8.entry.js → p-5f47eb12.entry.js} +1 -1
  375. package/dist/twilight/{p-ed713905.entry.js → p-5fe29fcf.entry.js} +1 -1
  376. package/dist/twilight/p-67d7bd8b.entry.js +4 -0
  377. package/dist/twilight/{p-8edc1c0d.entry.js → p-6e535738.entry.js} +1 -1
  378. package/dist/twilight/{p-da132465.entry.js → p-72291ad7.entry.js} +1 -1
  379. package/dist/twilight/{p-558d69d0.entry.js → p-72c9cd44.entry.js} +1 -1
  380. package/dist/twilight/{p-6e2214d1.entry.js → p-74cac8a8.entry.js} +1 -1
  381. package/dist/twilight/{p-a306ae65.entry.js → p-74e009df.entry.js} +1 -1
  382. package/dist/twilight/{p-492fd499.entry.js → p-77d816b8.entry.js} +1 -1
  383. package/dist/twilight/{p-8e987fe7.entry.js → p-7b9ed1e4.entry.js} +1 -1
  384. package/dist/twilight/{p-6dbbe6cb.entry.js → p-7df52f7b.entry.js} +1 -1
  385. package/dist/twilight/{p-ffc6f929.entry.js → p-7e730733.entry.js} +1 -1
  386. package/dist/twilight/{p-20b4cc9c.entry.js → p-8658fefd.entry.js} +1 -1
  387. package/dist/twilight/{p-1bbe31ad.entry.js → p-90d53c9b.entry.js} +1 -1
  388. package/dist/twilight/{p-3128bebd.entry.js → p-9196b7a9.entry.js} +1 -1
  389. package/dist/twilight/{p-aa5a77fa.entry.js → p-92d37b3e.entry.js} +1 -1
  390. package/dist/twilight/{p-0e95d192.entry.js → p-92ec265b.entry.js} +1 -1
  391. package/dist/twilight/{p-377b941b.entry.js → p-930ff69a.entry.js} +1 -1
  392. package/dist/twilight/{p-ea2d6310.entry.js → p-931c44fb.entry.js} +1 -1
  393. package/dist/twilight/{p-6b600ab2.entry.js → p-953da0b5.entry.js} +1 -1
  394. package/dist/twilight/{p-f3a4c8c3.entry.js → p-95d8a11b.entry.js} +1 -1
  395. package/dist/twilight/{p-40d12093.entry.js → p-98186fb3.entry.js} +1 -1
  396. package/dist/twilight/{p-0a4a3298.entry.js → p-982ccb80.entry.js} +1 -1
  397. package/dist/twilight/{p-a9b810c4.entry.js → p-99ff235e.entry.js} +1 -1
  398. package/dist/twilight/{p-a1faadfd.entry.js → p-9a161a84.entry.js} +1 -1
  399. package/dist/twilight/{p-44ceacb7.entry.js → p-9c798a1a.entry.js} +1 -1
  400. package/dist/twilight/{p-016788c7.entry.js → p-9cc2e54c.entry.js} +1 -1
  401. package/dist/twilight/{p-a92553f2.entry.js → p-9e27778a.entry.js} +1 -1
  402. package/dist/twilight/{p-DWmThpkK.js → p-BYpv9A8D.js} +1 -1
  403. package/dist/twilight/{p-DHrUX865.js → p-CHOv1Smw.js} +1 -1
  404. package/dist/twilight/{p-en37lqSm.js → p-Ca84RIBI.js} +1 -1
  405. package/dist/twilight/{p-CfWsH_qz.js → p-DMHhYV48.js} +1 -1
  406. package/dist/twilight/{p-CaEa1mkI.js → p-DQXp-sN5.js} +1 -1
  407. package/dist/twilight/{p-Dvsk1fA0.js → p-DYcV7UW8.js} +1 -1
  408. package/dist/twilight/{p-BVVNfOQk.js → p-DYgnIxqR.js} +1 -1
  409. package/dist/twilight/{p-DD7hlkaJ.js → p-DuoSRdS5.js} +1 -1
  410. package/dist/twilight/{p-Caj9IqWn.js → p-KZ7SFw0C.js} +1 -1
  411. package/dist/twilight/{p-153044cb.entry.js → p-a1d3a45f.entry.js} +1 -1
  412. package/dist/twilight/{p-e2a37618.entry.js → p-a2e8a9d1.entry.js} +1 -1
  413. package/dist/twilight/{p-3205307f.entry.js → p-a34c031b.entry.js} +1 -1
  414. package/dist/twilight/{p-96c1a0a1.entry.js → p-a5eeb082.entry.js} +1 -1
  415. package/dist/twilight/{p-9d220aff.entry.js → p-a96e5e06.entry.js} +1 -1
  416. package/dist/twilight/{p-279e6529.entry.js → p-ae83c325.entry.js} +1 -1
  417. package/dist/twilight/{p-393ced29.entry.js → p-aed6d4eb.entry.js} +1 -1
  418. package/dist/twilight/{p-e03a5bb9.entry.js → p-b0437615.entry.js} +1 -1
  419. package/dist/twilight/{p-8b746fed.entry.js → p-bd2672ee.entry.js} +1 -1
  420. package/dist/twilight/{p-7d0bad4e.entry.js → p-bdda14f6.entry.js} +1 -1
  421. package/dist/twilight/p-be973f87.entry.js +4 -0
  422. package/dist/twilight/{p-7fa4c6ed.entry.js → p-c3530e7a.entry.js} +1 -1
  423. package/dist/twilight/{p-94b5d1c0.entry.js → p-c6b82041.entry.js} +1 -1
  424. package/dist/twilight/{p-cf75cffe.entry.js → p-c6d64b53.entry.js} +1 -1
  425. package/dist/twilight/{p-87f4f9ab.entry.js → p-ca0a62f9.entry.js} +1 -1
  426. package/dist/twilight/{p-24244ede.entry.js → p-ca52add5.entry.js} +1 -1
  427. package/dist/twilight/{p-b50b5139.entry.js → p-cd65e560.entry.js} +1 -1
  428. package/dist/twilight/{p-99537f59.entry.js → p-d39bf8b5.entry.js} +1 -1
  429. package/dist/twilight/{p-ffaa3b02.entry.js → p-d3a9573e.entry.js} +1 -1
  430. package/dist/twilight/p-d49130fc.entry.js +4 -0
  431. package/dist/twilight/p-d54b75de.entry.js +4 -0
  432. package/dist/twilight/{p-0f6cf7ae.entry.js → p-d8c9d454.entry.js} +1 -1
  433. package/dist/twilight/{p-24a6d077.entry.js → p-dc6b3dfb.entry.js} +1 -1
  434. package/dist/twilight/{p-753029a4.entry.js → p-e5c2df5a.entry.js} +1 -1
  435. package/dist/twilight/p-eb2e3e67.entry.js +4 -0
  436. package/dist/twilight/{p-a4e19dcc.entry.js → p-ecdf7027.entry.js} +1 -1
  437. package/dist/twilight/{p-f424a0a2.entry.js → p-f060a3dd.entry.js} +1 -1
  438. package/dist/twilight/{p-ed35f803.entry.js → p-f4eba1d1.entry.js} +1 -1
  439. package/dist/twilight/{p-dcfab648.entry.js → p-f5ac65b4.entry.js} +1 -1
  440. package/dist/twilight/{p-3ca34205.entry.js → p-f8d642b2.entry.js} +1 -1
  441. package/dist/twilight/{p-c72ed3d3.entry.js → p-f9912293.entry.js} +1 -1
  442. package/dist/twilight/p-f9a3f3f4.entry.js +4 -0
  443. package/dist/twilight/{p-D5YVbhSD.js → p-kflOqry6.js} +1 -1
  444. package/dist/twilight/{p-U4GQwdjm.js → p-lYj74H1f.js} +1 -1
  445. package/dist/twilight/twilight.esm.js +1 -1
  446. package/dist/types/components/salla-cart-coupons/salla-cart-coupons.d.ts +31 -3
  447. package/package.json +5 -5
  448. package/dist/collection/components/salla-conditional-offer/test/salla-conditional-offer.js +0 -12
  449. package/dist/twilight/p-365cb4e5.entry.js +0 -4
  450. package/dist/twilight/p-4c3435a8.entry.js +0 -4
  451. package/dist/twilight/p-4cf658b6.entry.js +0 -4
  452. package/dist/twilight/p-4f60cdea.entry.js +0 -4
  453. package/dist/twilight/p-8ea1c5b4.entry.js +0 -4
  454. package/dist/twilight/p-b2019ba2.entry.js +0 -4
  455. package/dist/twilight/p-da157fc7.entry.js +0 -4
  456. package/dist/twilight/p-ddfb7d95.entry.js +0 -4
  457. package/dist/twilight/p-ee18ef3e.entry.js +0 -4
  458. package/dist/types/components/salla-conditional-offer/test/salla-conditional-offer.d.ts +0 -1
@@ -10,22 +10,46 @@ export class SallaCartCoupons {
10
10
  this.couponInputValue = '';
11
11
  this.couponError = '';
12
12
  this.isApplying = false;
13
+ // Applied coupon codes rendered as removable chips below the input.
14
+ // - Single-coupon (default): holds at most the one cart coupon.
15
+ // - Multi-coupon (features::multi_coupon on): holds every applied code,
16
+ // sourced from the cart's `coupons` array so it survives a page refresh.
17
+ this.appliedCoupons = [];
18
+ // Whether the store has multi-coupon enabled. Read ONCE from the store config
19
+ // (Salla.config.get('store.settings.cart.multi_coupon')) — a stable store-level setting,
20
+ // exactly like cart.apply_coupon_enabled — not from the per-cart payload or localStorage.
21
+ this.multiCoupon = false;
13
22
  this.isHandlingInternalError = false;
14
23
  // Store cart event listener references for cleanup
15
24
  this.cartUpdatedHandler = (cartData) => {
16
- this.cartTotal = cartData.sub_total ?? cartData.total ?? 0;
17
- // Update current coupon state
18
- const couponCode = cartData.coupon || '';
19
- // Only overwrite the user's typed value when the cart-level coupon itself changes
20
- if (couponCode !== this.currentCoupon) {
21
- this.currentCoupon = couponCode;
22
- this.couponInputValue = couponCode;
25
+ // cart::updated carries the server-side cart. The multi-coupon flag comes from store
26
+ // config (set once in componentWillLoad), so only refresh total + chips here.
27
+ this.cartTotal = cartData?.summary?.sub_total ?? cartData?.sub_total ?? cartData?.total ?? this.cartTotal;
28
+ // Re-sync applied coupon state from the payload mirroring refreshFromServer's guard:
29
+ // - Multi-coupon: only a real `coupons` array re-seeds the chips, so a summary-only
30
+ // cart::updated can't shrink them (add/remove refreshes the chips from the server).
31
+ // - Single-coupon (flag off): any payload carrying `coupon` re-syncs the input, so a
32
+ // server-side invalidation (e.g. cart drops below the coupon minimum) that emits
33
+ // `coupon: ''` clears the stale code instead of leaving it stuck until a reload.
34
+ const carriesCoupons = this.multiCoupon
35
+ ? Array.isArray(cartData?.coupons)
36
+ : (cartData && 'coupon' in cartData);
37
+ if (carriesCoupons) {
38
+ this.syncAppliedFromCart(cartData);
23
39
  }
24
40
  // Clear error when cart updates
25
41
  this.couponError = '';
26
42
  };
27
43
  this.couponAddedHandler = () => {
28
- // Coupon was successfully added - state is managed by cartUpdatedHandler
44
+ // Skip while an internal apply/remove is in flight — handleApplyClick/removeCoupon already
45
+ // refresh from the server, so this handler only needs to cover EXTERNAL coupon changes
46
+ // (e.g. the checkout page). Prevents a duplicate salla.cart.details() call per action.
47
+ if (this.isApplying || this.isHandlingInternalError) {
48
+ return;
49
+ }
50
+ // Re-read the applied set + flag from the SERVER (not storage), so the chips reflect
51
+ // the real cart — a stale storage cache (e.g. after a checkout-page removal) never shows.
52
+ this.refreshFromServer();
29
53
  };
30
54
  this.couponAdditionFailedHandler = (error) => {
31
55
  // Only handle external coupon failures when no internal operation is handling errors
@@ -35,7 +59,12 @@ export class SallaCartCoupons {
35
59
  // Internal operations handle their own errors to prevent double display
36
60
  };
37
61
  this.couponDeletedHandler = () => {
38
- // Coupon was removed - state is managed by cartUpdatedHandler
62
+ // Same guard as couponAddedHandler: internal removeCoupon already refreshes; only cover
63
+ // EXTERNAL deletions here, so an internal remove doesn't fire two salla.cart.details() calls.
64
+ if (this.isApplying || this.isHandlingInternalError) {
65
+ return;
66
+ }
67
+ this.refreshFromServer();
39
68
  };
40
69
  // Arrow functions to maintain context for event listeners
41
70
  this.onKeyUp = (event) => {
@@ -51,15 +80,20 @@ export class SallaCartCoupons {
51
80
  async componentWillLoad() {
52
81
  await Salla.onReady();
53
82
  await Salla.lang.onLoaded();
83
+ // Multi-coupon is a store-level setting — read it ONCE from config here (like
84
+ // apply_coupon_enabled), so it never depends on the per-cart payload or localStorage.
85
+ this.multiCoupon = !!salla.config.get('store.settings.cart.multi_coupon');
54
86
  //then set your logic here to avoid any race condition
55
87
  this.loadCouponsData(); // Load async without blocking render - shows empty until loaded
88
+ // Synchronous first-paint seed from the storage cart so an applied coupon shows on the very
89
+ // first render instead of flashing empty → applied while the async server fetch is in flight
90
+ // (the old loadCartTotal read storage synchronously). loadCartTotal() then reconciles with the
91
+ // authoritative server payload, which also corrects a storage coupon that was stale.
92
+ this.seedFromStorage();
56
93
  this.loadCartTotal();
57
94
  this.setupCartEventListeners();
58
95
  // Note: No store feature gate needed - coupon availability controlled by backend API response
59
96
  }
60
- componentDidLoad() {
61
- this.setupCouponInputEvents();
62
- }
63
97
  setupCartEventListeners() {
64
98
  // Listen for cart updates to refresh cart total
65
99
  salla.event.on('cart::updated', this.cartUpdatedHandler);
@@ -69,10 +103,8 @@ export class SallaCartCoupons {
69
103
  salla.event.on('cart::coupon.deleted', this.couponDeletedHandler);
70
104
  }
71
105
  disconnectedCallback() {
72
- // Clean up DOM event listeners
73
- this.couponInputRef?.removeEventListener('keyup', this.onKeyUp);
74
- this.couponInputRef?.removeEventListener('input', this.onInput);
75
- // Clean up cart event listeners using reliable global event system
106
+ // Input events are bound via JSX (onInput/onKeyUp) — Stencil cleans those up. Only the
107
+ // global cart event listeners need explicit teardown here.
76
108
  salla.event.off('cart::updated', this.cartUpdatedHandler);
77
109
  salla.event.off('cart::coupon.added', this.couponAddedHandler);
78
110
  salla.event.off('cart::coupon.addition.failed', this.couponAdditionFailedHandler);
@@ -118,21 +150,118 @@ export class SallaCartCoupons {
118
150
  this.availableCoupons = [];
119
151
  }
120
152
  }
121
- loadCartTotal() {
122
- // Get cart total and current coupon from Salla storage
123
- const cart = salla.storage.get('cart');
124
- // Check summary first (more accurate), then cart level, fallback to 0
125
- this.cartTotal = cart?.summary?.sub_total ?? cart?.sub_total ?? 0;
153
+ async loadCartTotal() {
154
+ // Multi-coupon needs the SERVER-authoritative applied list (localStorage can be stale, e.g.
155
+ // coupons removed on the checkout page). Single-coupon (flag off — the default, and the hot
156
+ // path at billions req/day) is fully seeded synchronously by seedFromStorage() with NO network
157
+ // call, exactly as the original implementation read from storage — so skip the
158
+ // salla.cart.details() round-trip for it.
159
+ if (!this.multiCoupon) {
160
+ return;
161
+ }
162
+ await this.refreshFromServer();
163
+ }
164
+ /**
165
+ * Synchronous first-paint seed from the storage cart — SINGLE-COUPON (flag-off) ONLY.
166
+ *
167
+ * It restores the old synchronous first paint Greptile flagged for the default single-coupon
168
+ * stores (the input shows the applied code immediately instead of flashing empty).
169
+ *
170
+ * With multi-coupon ON the applied coupons are SERVER-authoritative: storage can still list a
171
+ * coupon that was invalidated or removed server-side (e.g. dropped below the cart minimum, or
172
+ * removed on another surface), so seeding the chips from it would render a STALE list — e.g.
173
+ * two chips when the server holds one — until the refresh lands. In that mode we skip the seed
174
+ * entirely and let refreshFromServer/cart::updated populate the chips from the server.
175
+ */
176
+ seedFromStorage() {
177
+ if (this.multiCoupon) {
178
+ return;
179
+ }
180
+ const stored = salla.storage.get('cart');
181
+ if (stored && typeof stored === 'object' && 'coupon' in stored) {
182
+ this.applyCart(stored);
183
+ }
184
+ }
185
+ /**
186
+ * Fetch the cart fresh from the server (salla.cart.details -> CartPresenter::forApi) and
187
+ * seed the applied codes + total from its authoritative payload (cart.coupons). Falls back
188
+ * to the storage cart ONLY if the request fails, and never wipes the chips on an odd shape.
189
+ */
190
+ async refreshFromServer() {
191
+ try {
192
+ const response = await salla.cart.details();
193
+ // cart-details nests the cart under data.cart (same shape addCoupon/deleteCoupon read).
194
+ const cart = response?.data?.cart ?? response?.data ?? response;
195
+ if (cart && typeof cart === 'object' &&
196
+ (Array.isArray(cart.coupons) || 'coupon' in cart)) {
197
+ this.applyCart(cart);
198
+ return;
199
+ }
200
+ }
201
+ catch (e) {
202
+ // ignore — fall back to storage below
203
+ }
204
+ const stored = salla.storage.get('cart');
205
+ if (stored) {
206
+ this.applyCart(stored);
207
+ }
208
+ }
209
+ /** Apply an authoritative cart object: total + applied chips (flag comes from store config). */
210
+ applyCart(cart) {
211
+ this.cartTotal = cart?.summary?.sub_total ?? cart?.sub_total ?? this.cartTotal;
212
+ this.syncAppliedFromCart(cart);
213
+ }
214
+ /**
215
+ * Seed the chip list and the active coupon from a cart object.
216
+ * Multi-coupon: use the cart's `coupons` array (survives refresh).
217
+ * Single-coupon (default): use the single `coupon` code.
218
+ */
219
+ syncAppliedFromCart(cart) {
126
220
  this.currentCoupon = cart?.coupon || '';
127
- this.couponInputValue = cart?.coupon || '';
221
+ if (this.multiCoupon) {
222
+ this.appliedCoupons = Array.isArray(cart?.coupons)
223
+ ? cart.coupons.filter(Boolean)
224
+ : (this.currentCoupon ? [this.currentCoupon] : []);
225
+ return;
226
+ }
227
+ // Single-coupon (flag off): mirror the applied code into the (disabled) input, matching the
228
+ // original production UX. Only set at sync points (load / after apply-remove), never on a
229
+ // keystroke, so it won't clobber what the user is typing.
230
+ this.couponInputValue = this.currentCoupon;
231
+ this.appliedCoupons = this.currentCoupon ? [this.currentCoupon] : [];
128
232
  }
129
- setupCouponInputEvents() {
130
- if (!this.couponInputRef || !this.couponButtonRef) {
233
+ async handleApplyClick() {
234
+ if (this.isApplying) {
235
+ return;
236
+ }
237
+ const code = this.couponInputValue.trim();
238
+ if (!code) {
239
+ this.showCouponError(salla.lang.get('pages.cart.enter_coupon_code'));
131
240
  return;
132
241
  }
133
- this.couponInputRef.addEventListener('keyup', this.onKeyUp);
134
- this.couponInputRef.addEventListener('input', this.onInput);
242
+ this.isApplying = true;
243
+ this.isHandlingInternalError = true;
244
+ try {
245
+ // Apply the coupon. Multi-coupon: the backend appends it; single-coupon:
246
+ // it replaces the existing one. Re-read the applied set from the SERVER (not storage)
247
+ // for the chip list, and clear the input for the next code.
248
+ await salla.cart.addCoupon(code);
249
+ await this.refreshFromServer();
250
+ this.couponInputValue = '';
251
+ }
252
+ catch (error) {
253
+ this.showCouponError(error.response?.data?.error?.message || salla.lang.get('pages.cart.coupon_application_error'));
254
+ }
255
+ finally {
256
+ this.isApplying = false;
257
+ // Keep internal error flag active briefly to prevent race condition with SDK event
258
+ setTimeout(() => {
259
+ this.isHandlingInternalError = false;
260
+ }, 100);
261
+ }
135
262
  }
263
+ // Single-coupon (flag off) toggle button: apply the typed code, or remove the applied one.
264
+ // Mirrors the original production behavior; the SDK coupon.added/deleted events then refresh.
136
265
  async handleCouponButtonClick() {
137
266
  if (this.isApplying) {
138
267
  return;
@@ -146,13 +275,42 @@ export class SallaCartCoupons {
146
275
  this.isHandlingInternalError = true;
147
276
  try {
148
277
  if (hasCoupon) {
149
- // Remove existing coupon
150
278
  await salla.cart.deleteCoupon();
151
279
  }
152
280
  else {
153
- // Apply new coupon
154
281
  await salla.cart.addCoupon(this.couponInputValue.trim());
155
282
  }
283
+ // Refresh the UI directly for the single-coupon toggle. The coupon.added/deleted event
284
+ // handlers skip internal actions (isApplying guard), and cartUpdatedHandler doesn't
285
+ // re-seed from a summary-only payload — so without this refresh the input/button would
286
+ // stay stuck after a successful apply/remove on the default (flag-off) path.
287
+ await this.refreshFromServer();
288
+ }
289
+ catch (error) {
290
+ this.showCouponError(error.response?.data?.error?.message || salla.lang.get('pages.cart.coupon_application_error'));
291
+ }
292
+ finally {
293
+ this.isApplying = false;
294
+ setTimeout(() => {
295
+ this.isHandlingInternalError = false;
296
+ }, 100);
297
+ }
298
+ }
299
+ async removeCoupon(code) {
300
+ if (this.isApplying) {
301
+ return;
302
+ }
303
+ this.isApplying = true;
304
+ this.isHandlingInternalError = true;
305
+ try {
306
+ // Multi-coupon: remove just this code. Single-coupon: reset the cart coupon.
307
+ if (this.multiCoupon) {
308
+ await salla.cart.deleteCoupon(code);
309
+ }
310
+ else {
311
+ await salla.cart.deleteCoupon();
312
+ }
313
+ await this.refreshFromServer();
156
314
  }
157
315
  catch (error) {
158
316
  this.showCouponError(error.response?.data?.error?.message || salla.lang.get('pages.cart.coupon_application_error'));
@@ -191,6 +349,16 @@ export class SallaCartCoupons {
191
349
  try {
192
350
  // Apply the coupon directly without checking for existing coupon
193
351
  await salla.cart.addCoupon(couponCode.trim());
352
+ // Refresh the chips/input directly — the guarded coupon.added handler skips internal
353
+ // actions, so the coupon-card / selectCoupon path must refresh here or the chip list
354
+ // stays stale in multi-coupon mode until the next cart::updated with a coupons[] array.
355
+ await this.refreshFromServer();
356
+ // Multi-coupon: clear the input for the next code. Single-coupon: refreshFromServer
357
+ // already set the input to the applied code (shown disabled), so keep it — clearing
358
+ // here would blank the disabled field on the default flag-off path.
359
+ if (this.multiCoupon) {
360
+ this.couponInputValue = '';
361
+ }
194
362
  }
195
363
  catch (error) {
196
364
  this.showCouponError(error.response?.data?.error?.message || salla.lang.get('pages.cart.coupon_application_error'));
@@ -236,7 +404,18 @@ export class SallaCartCoupons {
236
404
  : `${salla.lang.get('pages.cart.expires_after')} ${coupon.remaining_days} ${salla.lang.get('pages.cart.day')}`)), coupon.minimum_amount && parseFloat(coupon.minimum_amount.amount) > 0 && (h("div", { class: "s-cart-coupons-minimum" }, salla.lang.get('pages.cart.minimum'), " ", h("span", { innerHTML: salla.money(coupon.minimum_amount.amount, coupon.minimum_amount.currency) })))), h("div", { class: "s-cart-coupons-action" }, isEligible ? salla.lang.get('pages.cart.save_coupon') : salla.lang.get('pages.cart.coupon_not_compatible'))))));
237
405
  }
238
406
  render() {
239
- return (h(Host, { key: '09c964ef1b706cd623f5b99b9606ecf93486e8b5' }, h("div", { key: 'a3b3313ecbc23821cca29115f1189ca2dfbcbb48', class: "s-cart-coupons-wrapper" }, h("div", { key: '27bc855b95d252a4feffc256fdef70b7d83aa4b3', class: "s-cart-coupons-input-section" }, h("label", { key: 'd17fff32352bc8e0535986519d5e22dda7879754', htmlFor: "coupon-input", class: "s-cart-coupons-coupon-label" }, salla.lang.get('pages.cart.have_coupon')), h("div", { key: '4e9acdb76110fffbd6984fa522fa91440d8c3bc6', class: "s-cart-coupons-coupon-input-container" }, h("input", { key: '2f0e3ee9a44db390caeeb4e85f40aab825c91182', type: "text", id: "coupon-input", name: "coupon", class: `form-input ${this.couponError ? 's-coupon-input-error' : ''}`, placeholder: salla.lang.get('pages.cart.coupon_placeholder'), value: this.couponInputValue, disabled: !!this.currentCoupon || this.isApplying, ref: el => this.couponInputRef = el, "aria-label": salla.lang.get('pages.cart.apply_coupon') }), h("salla-button", { key: 'a7356872f2eaae51bf77207c0fcfd10ea3c25313', ref: el => this.couponButtonRef = el, class: `s-cart-coupons-coupon-button ${this.currentCoupon ? 's-cart-coupons-coupon-button-remove' : 's-cart-coupons-coupon-button-apply'}`, color: this.currentCoupon ? 'danger' : 'primary', loading: this.isApplying, "loader-position": "center", onClick: () => this.handleCouponButtonClick() }, this.currentCoupon ? (h("i", { class: "sicon-cancel" })) : (h("span", null, salla.lang.get('pages.cart.save_coupon'))))), this.couponError && (h("span", { key: '4d0b025d425e2fbba8f313b92c1e257042c549b0', class: "s-cart-coupons-coupon-error" }, this.couponError))), this.availableCoupons && this.availableCoupons.length > 0 && (h("salla-slider", { key: 'ac6a96179ec2990f8fedfd3cbb63404e7fe60edf', type: "carousel", showControls: false, class: "s-cart-coupons-slider" }, h("div", { key: '7c4f2641aa87a91d55d88d5fc0a375a5d3114a99', slot: "items" }, this.availableCoupons.map(coupon => this.renderCouponCard(coupon))))))));
407
+ return (h(Host, { key: '30a1ee00e7ec27d12012823347cbcf3c477834e5' }, h("div", { key: '6f84298e9ebd6c50c84fb9a3736d734996e39c33', class: "s-cart-coupons-wrapper" }, h("div", { key: 'b95a1c2b29d2fed54fdf143eac8e37add062668b', class: "s-cart-coupons-input-section" }, h("label", { key: 'e6711fae70db31f8a5987cb58f0488e974394e1c', htmlFor: "coupon-input", class: "s-cart-coupons-coupon-label" }, salla.lang.get('pages.cart.have_coupon')), h("div", { key: '824b806c6aa40fb039f659fe81f6cb7686f46b10', class: "s-cart-coupons-coupon-input-container" }, this.multiCoupon ? [
408
+ // Multi-coupon: input stays active to append more codes; applied coupons render
409
+ // as removable chips below.
410
+ h("input", { type: "text", id: "coupon-input", name: "coupon", class: `form-input ${this.couponError ? 's-coupon-input-error' : ''}`, placeholder: salla.lang.get('pages.cart.coupon_placeholder'), value: this.couponInputValue, disabled: this.isApplying, onInput: this.onInput, onKeyUp: this.onKeyUp, "aria-label": salla.lang.get('pages.cart.apply_coupon'), key: "coupon-input" }),
411
+ h("salla-button", { ref: el => this.couponButtonRef = el, class: "s-cart-coupons-coupon-button s-cart-coupons-coupon-button-apply", color: "primary", loading: this.isApplying, "loader-position": "center", onClick: () => this.handleApplyClick(), key: "apply-button" }, h("span", null, salla.lang.get('pages.cart.save_coupon'))),
412
+ ] : [
413
+ // Single-coupon (flag off): the ORIGINAL production UX — the field is disabled and
414
+ // shows the applied code, and the button toggles to a red X (danger) to remove it;
415
+ // a new code can only be entered after removing. Reuses the existing master classes.
416
+ h("input", { type: "text", id: "coupon-input", name: "coupon", class: `form-input ${this.couponError ? 's-coupon-input-error' : ''}`, placeholder: salla.lang.get('pages.cart.coupon_placeholder'), value: this.couponInputValue, disabled: !!this.currentCoupon || this.isApplying, onInput: this.onInput, onKeyUp: this.onKeyUp, "aria-label": salla.lang.get('pages.cart.apply_coupon'), key: "coupon-input" }),
417
+ h("salla-button", { ref: el => this.couponButtonRef = el, class: `s-cart-coupons-coupon-button ${this.currentCoupon ? 's-cart-coupons-coupon-button-remove' : 's-cart-coupons-coupon-button-apply'}`, color: this.currentCoupon ? 'danger' : 'primary', loading: this.isApplying, "loader-position": "center", onClick: () => this.handleCouponButtonClick(), key: "apply-button" }, this.currentCoupon ? (h("i", { class: "sicon-cancel" })) : (h("span", null, salla.lang.get('pages.cart.save_coupon')))),
418
+ ]), this.couponError && (h("span", { key: '0f3b36e8192777fb7e7d0a065fe720c009065f9d', class: "s-cart-coupons-coupon-error" }, this.couponError)), this.multiCoupon && this.appliedCoupons.length > 0 && (h("div", { key: 'b680e30bd1ae49db5e304440431cdc89c6e5d051', class: "s-cart-coupons-applied-list" }, this.appliedCoupons.map(code => (h("div", { class: "s-cart-coupons-applied-item", key: code }, h("span", { class: "s-cart-coupons-applied-code" }, code), h("button", { type: "button", class: "s-cart-coupons-applied-remove", "aria-label": `${salla.lang.get('pages.cart.delete')} ${code}`, disabled: this.isApplying, onClick: () => this.removeCoupon(code) }, h("i", { class: "sicon-cancel" })))))))), this.availableCoupons && this.availableCoupons.length > 0 && (h("salla-slider", { key: 'a2d312dbf6e997939f54c7867ef0d98091bbde4a', type: "carousel", showControls: false, class: "s-cart-coupons-slider" }, h("div", { key: 'b474dcbdeabc26bef5ecba94dd78ef72a60950df', slot: "items" }, this.availableCoupons.map(coupon => this.renderCouponCard(coupon))))))));
240
419
  }
241
420
  static get is() { return "salla-cart-coupons"; }
242
421
  static get originalStyleUrls() {
@@ -256,7 +435,9 @@ export class SallaCartCoupons {
256
435
  "currentCoupon": {},
257
436
  "couponInputValue": {},
258
437
  "couponError": {},
259
- "isApplying": {}
438
+ "isApplying": {},
439
+ "appliedCoupons": {},
440
+ "multiCoupon": {}
260
441
  };
261
442
  }
262
443
  static get methods() {
@@ -118,7 +118,7 @@ export class SallaCartSummary {
118
118
  return cartUrl;
119
119
  }
120
120
  render() {
121
- return (h(Host, { key: '96a4c4fc3942df69e884ba44559adbec55743658' }, h("a", { key: 'e28c48fef8ade7f46c1dc1747baeeb16b70f8732', class: "s-cart-summary-wrapper", href: this.getCartLink(), onClick: this.handleCheckoutClick }, h("div", { key: '4fed123336b4aa1892da9d83250321d837d684aa', id: "s-cart-icon" }, h("slot", { key: '365962ccc1d83f4437718f93ca15358fcce7113d', name: "icon" }, h("i", { key: '88870c2a2c4c21476d96e2253ea8b0c911bd493c', class: "s-cart-summary-icon", innerHTML: CartIcon }))), h("span", { key: '29a8d5436bd72355bc639cbd827a1c223bfe6f9b', class: "s-cart-summary-count" }, salla.helpers.number(this.cartSummaryCount)), h("p", { key: '630577903ec4a57177101cdc88b3f8e7d68ec676', class: "s-cart-summary-content" }, this.showCartLabel && h("span", { key: '5f61a936210a79ead537d6339a23dc73c7c91a88', class: "s-cart-summary-label" }, this.cartLabel), h("b", { key: 'b23c5f1cec4c520e2e789daa8e3af993ec1b5e49', class: "s-cart-summary-total", innerHTML: salla.money(this.cartSummaryTotal) })))));
121
+ return (h(Host, { key: '27e472fb912afff849c94a8a93a9a71778c6819d' }, h("a", { key: 'f9ef99f2a7205fcfdc0bdd799b1b751ab40bcb35', class: "s-cart-summary-wrapper", href: this.getCartLink(), onClick: this.handleCheckoutClick }, h("div", { key: '1b0d26d3e17b0fb5d6b2cbdc1cd14c079a5fb47b', id: "s-cart-icon" }, h("slot", { key: '3c64b2afa8782a4018dd086e657f16373a91f997', name: "icon" }, h("i", { key: '46f1cebfa346e20d27f8ffed1206c05828be004a', class: "s-cart-summary-icon", innerHTML: CartIcon }))), h("span", { key: '72bd9fc2d2949b74109b9e57e823c4c4cc99d287', class: "s-cart-summary-count" }, salla.helpers.number(this.cartSummaryCount)), h("p", { key: 'd65efd069e4f5968c8f592bf341b35853b000bda', class: "s-cart-summary-content" }, this.showCartLabel && h("span", { key: 'ecbd5350d56131aee746913bb7c6e662431f7001', class: "s-cart-summary-label" }, this.cartLabel), h("b", { key: 'aeebd5d52966dc183111e49289061c3649087a8f', class: "s-cart-summary-total", innerHTML: salla.money(this.cartSummaryTotal) })))));
122
122
  }
123
123
  static get is() { return "salla-cart-summary"; }
124
124
  static get originalStyleUrls() {
@@ -198,7 +198,7 @@ export class SallaColorPicker {
198
198
  });
199
199
  }
200
200
  render() {
201
- return (h(Host, { key: '4b648b7685b1d6601cb8b6e826d5eb716cbf4bba', class: "s-color-picker-main" }, h("slot", { key: '59afd795f1f5cce7d33b9e5c5e0e65be5db485f1', name: "widget" }, h("div", { key: '312878f910fc6c94b47bcd24319291f9db7e1d13', class: "s-color-picker-widget" }, h("div", { key: '1865cf384e4c6ecaef1ab2b35f8a6653304f6b9d', class: "s-color-picker-widget-canvas", ref: dv => (this.canvas = dv) }), h("span", { key: 'd92e8fbe87685abc27224d08e71f06ad216d6593', innerHTML: ArrowDown }))), h("input", { key: 'df66b2b623c71acba891a3c02e7a02905d78861b', class: "s-hidden", name: this.name, required: this.required, value: this.color, ref: color => (this.colorInput = color) })));
201
+ return (h(Host, { key: '516a09b2d219b7c12dd251c68e6e55a9a9f7624b', class: "s-color-picker-main" }, h("slot", { key: 'ce684e4b8a8a80710688e3f0c0e43271069fc920', name: "widget" }, h("div", { key: 'f95ff1d709d58e22a4a74ccc35f8db2e17be7e38', class: "s-color-picker-widget" }, h("div", { key: 'fd2347378990972269557593a7182f2bf4cd9f98', class: "s-color-picker-widget-canvas", ref: dv => (this.canvas = dv) }), h("span", { key: 'e22a7ed6738b5fcbc22453e5b091eeeb7720719a', innerHTML: ArrowDown }))), h("input", { key: 'b3f55c713a626808c6f36e4c1454abc26c97cb6e', class: "s-hidden", name: this.name, required: this.required, value: this.color, ref: color => (this.colorInput = color) })));
202
202
  }
203
203
  componentDidLoad() {
204
204
  if (this.canvas)
@@ -38,7 +38,7 @@ export class SallaCommentForm {
38
38
  .finally(() => this.submitBtn.stop());
39
39
  }
40
40
  render() {
41
- return (h(Host, { key: 'c3c4acb833a93d11b2c71eb77742319c8085968c' }, !!this.canComment ? h("form", { ref: frm => this.commentForm = frm }, h("div", { class: "s-comment-form-wrapper" }, this.showAvatar ?
41
+ return (h(Host, { key: '0e3a24dcfe8922106b9479aa559cf0e126bc3fcf' }, !!this.canComment ? h("form", { ref: frm => this.commentForm = frm }, h("div", { class: "s-comment-form-wrapper" }, this.showAvatar ?
42
42
  h("img", { class: "s-comment-form-avatar", src: salla.config.get('user.avatar'), alt: "user avatar" }) : '', h("div", { class: "s-comment-form-content" }, h("textarea", { cols: 30, rows: 5, minlength: "4", maxlength: "500", ref: field => this.commentField = field, placeholder: this.placeholder, class: "s-comment-form-input", required: true }), h("br", null), h("div", { class: "s-comment-form-action" }, h("salla-button", { ref: btn => this.submitBtn = btn, "loader-position": 'center', onClick: () => this.submit() }, this.submitText))))) : ''));
43
43
  }
44
44
  static get is() { return "salla-comment-form"; }
@@ -129,7 +129,7 @@ export class SallaConditionalFields {
129
129
  });
130
130
  }
131
131
  render() {
132
- return (h(Host, { key: '65ddceb3d0fc1eff329762b0c9d1784f223dc1ee' }, h("slot", { key: 'ee65b749c141f8288b288705ba7750676bb68408' })));
132
+ return (h(Host, { key: 'badbb24a38a68127a6880ab4dbe0b0ae4730b11d' }, h("slot", { key: 'a9bdc41d3ded750f0ac5b0e4b5dea3618e02286a' })));
133
133
  }
134
134
  static get is() { return "salla-conditional-fields"; }
135
135
  static get elementRef() { return "host"; }
@@ -228,7 +228,7 @@ export class SallaCountDown {
228
228
  return this.renderCountDown();
229
229
  }
230
230
  render() {
231
- return (h(Host, { key: '7055acd8fb89549ceff1f1b23f36c2dcf5f8dde0', class: `s-count-down-wrapper ${this.preOrder && this.isValidDate(this.date) ? 's-count-down-pre-order' : ''} ${this.horizontal ? 's-count-down-horizontal' : ''} ${this.withButton ? 's-count-down-with-button' : ''} ${this.offerEnded ? 's-count-down-ended' : ''}` }, this.renderPrefixText(), this.renderContent(), this.offerEnded && this.renderOfferEnded(), this.renderButton()));
231
+ return (h(Host, { key: '966a6ce961c0cc07b937d9b8e328211377084d44', class: `s-count-down-wrapper ${this.preOrder && this.isValidDate(this.date) ? 's-count-down-pre-order' : ''} ${this.horizontal ? 's-count-down-horizontal' : ''} ${this.withButton ? 's-count-down-with-button' : ''} ${this.offerEnded ? 's-count-down-ended' : ''}` }, this.renderPrefixText(), this.renderContent(), this.offerEnded && this.renderOfferEnded(), this.renderButton()));
232
232
  }
233
233
  static get is() { return "salla-count-down"; }
234
234
  static get originalStyleUrls() {
@@ -204,7 +204,7 @@ export class SallaDatetimePicker {
204
204
  }
205
205
  }
206
206
  render() {
207
- return h("div", { key: '32645810d31bcc76582da3910ccaeac5b4490719', class: "s-datetime-picker" }, h("input", { key: 'ec579ffb806ff75829b6d0b5e6cb6da24a4b1bb3', type: "datetime", name: this.name, value: this.value, required: this.required, disabled: this.disabled, placeholder: this.placeholder, class: "s-datetime-picker-input", ref: (el) => this.dateInput = el }));
207
+ return h("div", { key: '10ac16506ca2b2b2a94227887a8d0b6593d7ac17', class: "s-datetime-picker" }, h("input", { key: 'fad4a5677edf21d9bd9a977392ebaf4ae2ad3b7b', type: "datetime", name: this.name, value: this.value, required: this.required, disabled: this.disabled, placeholder: this.placeholder, class: "s-datetime-picker-input", ref: (el) => this.dateInput = el }));
208
208
  }
209
209
  async componentDidLoad() {
210
210
  // Load flatpickr before initializing
@@ -307,11 +307,11 @@ export class SallaFileUpload {
307
307
  }
308
308
  }
309
309
  render() {
310
- return (h(Host, { key: 'af77cb11bf5ae4a857e9a099ce6438fb29aa8736', class: {
310
+ return (h(Host, { key: '518fef1a108d79f9aeb9efdbce74e4e721a145dc', class: {
311
311
  "s-file-upload": true,
312
312
  "s-file-upload-profile-image": this.profileImage,
313
313
  "s-file-upload-multiple": this.allowMultiple,
314
- } }, h("input", { key: 'da600278c346ef3554bfc6f8b22cb07dce1fc1ea', type: "file", name: this.name, value: this.value, ref: ele => this.fileUploader = ele, required: this.required, class: "s-file-upload-wrapper s-file-upload-input", accept: this.accept }), this.allowMultiple && this.showMaxCountHint ? h("div", { class: "s-file-upload-hint s-hidden" }, this.max_count_hint(this.maxFilesCount)) : '', h("input", { key: '4c605d3d983a86fca5667641d38592daf30f20b2', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.value, ref: input => this.hiddenInput = input })));
314
+ } }, h("input", { key: '0c01117f1e59577833b106d5825a08dd2ca51bd0', type: "file", name: this.name, value: this.value, ref: ele => this.fileUploader = ele, required: this.required, class: "s-file-upload-wrapper s-file-upload-input", accept: this.accept }), this.allowMultiple && this.showMaxCountHint ? h("div", { class: "s-file-upload-hint s-hidden" }, this.max_count_hint(this.maxFilesCount)) : '', h("input", { key: '69276b5e95c8bc35f42c3f1f307abea8c1761621', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.value, ref: input => this.hiddenInput = input })));
315
315
  }
316
316
  async componentDidLoad() {
317
317
  await Salla.onReady();
@@ -275,7 +275,7 @@ export class SallaFilters {
275
275
  render() {
276
276
  const appliedFilters = this.getAppliedFilters();
277
277
  const removeText = salla.lang.getWithDefault('common.elements.delete', 'Remove');
278
- return h(Host, { key: 'd6dacbf458eadefda7ec2b2c6845c54f553abea8' }, appliedFilters.length ? h("div", { class: "s-filters-applied s-filters-widget-container" }, h("h3", { class: "s-filters-widget-title", onClick: () => this.appliedOpen = !this.appliedOpen }, h("span", null, this.selectedTitle), h("span", { class: `s-filters-widget-plusminus ${this.appliedOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { class: `s-filters-widget-content ${this.appliedOpen ? 's-filters-widget-opened' : 's-filters-widget-closed'}` }, h("div", { class: "s-filters-widget-values" }, appliedFilters.map(chip => h("div", { class: "s-filters-label s-filters-applied-item" }, h("span", { class: "s-filters-option-name" }, chip.groupLabel, ": ", chip.optionLabel), h("button", { type: "button", class: "s-filters-applied-remove", "aria-label": `${removeText} ${chip.groupLabel}: ${chip.optionLabel}`, onClick: () => this.removeFilter(chip) }, h("i", { class: "sicon-cancel", "aria-hidden": "true" }))))), h("div", { class: "s-filters-footer" }, h("salla-button", { color: 'gray', fill: 'outline', onClick: () => this.resetFilters() }, this.reset)))) : '', this.filters?.map(option => h("salla-filters-widget", { option: option, filtersData: this.filtersData, onChanged: ({ detail: { event, option, value } }) => {
278
+ return h(Host, { key: 'f0493d0e85ebb9e6612a1edc6cd7f45e7473017e' }, appliedFilters.length ? h("div", { class: "s-filters-applied s-filters-widget-container" }, h("h3", { class: "s-filters-widget-title", onClick: () => this.appliedOpen = !this.appliedOpen }, h("span", null, this.selectedTitle), h("span", { class: `s-filters-widget-plusminus ${this.appliedOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { class: `s-filters-widget-content ${this.appliedOpen ? 's-filters-widget-opened' : 's-filters-widget-closed'}` }, h("div", { class: "s-filters-widget-values" }, appliedFilters.map(chip => h("div", { class: "s-filters-label s-filters-applied-item" }, h("span", { class: "s-filters-option-name" }, chip.groupLabel, ": ", chip.optionLabel), h("button", { type: "button", class: "s-filters-applied-remove", "aria-label": `${removeText} ${chip.groupLabel}: ${chip.optionLabel}`, onClick: () => this.removeFilter(chip) }, h("i", { class: "sicon-cancel", "aria-hidden": "true" }))))), h("div", { class: "s-filters-footer" }, h("salla-button", { color: 'gray', fill: 'outline', onClick: () => this.resetFilters() }, this.reset)))) : '', this.filters?.map(option => h("salla-filters-widget", { option: option, filtersData: this.filtersData, onChanged: ({ detail: { event, option, value } }) => {
279
279
  this.handleOptionChange(event, option, value);
280
280
  } })));
281
281
  }
@@ -170,12 +170,12 @@ export class SallaFiltersWidget {
170
170
  return h("span", { class: "s-filters-option-name" }, label);
171
171
  }
172
172
  render() {
173
- return (h(Host, { key: '3ea32331738365fc422b500b3e70fa590d4dbdb5', class: "s-filters-widget-container" }, h("h3", { key: 'c5cb7a27841bf85e4c108e15d606c1c45059e5ca', class: "s-filters-widget-title", onClick: () => this.toggleWidget() }, h("span", { key: '641164d403dd4c9b79a540f4da5829f5238cded4' }, this.option.label), h("span", { key: '5cf687d80ff627f306f5876f69b799b6b7a3813d', class: `s-filters-widget-plusminus ${this.isOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { key: 'd9b753223b4fb1c468ed6c4c3a269b861bc5b34b', class: "s-filters-widget-content", ref: (el) => this.widgetContent = el }, Array.isArray(this.option.values) && this.option.values.length > 5 && (h("div", { key: '0ca4f8c598e5965e23ef56610df7afc31799f168', class: "s-filters-widget-search-wrapper", style: { padding: '8px 0', marginBottom: '8px' } }, h("input", { key: '7b43ec84dcbeb5b7f9cbe9335133e32c278c00fd', type: "text", class: "s-filters-widget-search-input", placeholder: salla.lang.get('blocks.header.search_placeholder') || 'بحث...', value: this.searchQuery, onInput: (e) => this.searchQuery = e.target.value }))), h("div", { key: '5bf79fc5f51389d087fed93acee51a097a46af65', class: "s-filters-widget-values", ref: (el) => this.widgetValues = el }, h("slot", { key: '8dacd49ba003562d347a6c1b62e85ac447a62fcb' }), this.option.type !== FilterOptionTypes.RANGE
173
+ return (h(Host, { key: '831f7655b903634e0eb3abc7338ea3296883cbbf', class: "s-filters-widget-container" }, h("h3", { key: '72a31fb2c9adab3df37550e930d5be981aafd8f6', class: "s-filters-widget-title", onClick: () => this.toggleWidget() }, h("span", { key: '7512914e8a7348d146384d67f117c8b06507def0' }, this.option.label), h("span", { key: '50d62723255618a2a51512722388ff686c92bdab', class: `s-filters-widget-plusminus ${this.isOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { key: '76792390d33c2051082541e18e9b354b2b63c644', class: "s-filters-widget-content", ref: (el) => this.widgetContent = el }, Array.isArray(this.option.values) && this.option.values.length > 5 && (h("div", { key: 'b39462721ff4572b3572c0ed6171c07fa53b57a9', class: "s-filters-widget-search-wrapper", style: { padding: '8px 0', marginBottom: '8px' } }, h("input", { key: '759b2ab6b80d0fd0bb03fcd3746414d9e4b80c7d', type: "text", class: "s-filters-widget-search-input", placeholder: salla.lang.get('blocks.header.search_placeholder') || 'بحث...', value: this.searchQuery, onInput: (e) => this.searchQuery = e.target.value }))), h("div", { key: 'db918c4a43bebc35c23810dc97736584504d0e47', class: "s-filters-widget-values", ref: (el) => this.widgetValues = el }, h("slot", { key: '92dc440b79ed0929a39db7a4a96a1981f3b49974' }), this.option.type !== FilterOptionTypes.RANGE
174
174
  ? this.renderFilterOption(this.option)
175
175
  : h("salla-price-range", { onChanged: (event) => {
176
176
  this.changed.emit(event.detail);
177
177
  }, ref: price => this.priceRange = price, filtersData: this.filtersData, option: this.option })), this.withLoadMore && (!this.searchQuery || this.filteredCount > this.initialItemCount) &&
178
- h("a", { key: '85ca188ff9f0db7c0a23b94e4705ae2ca5c38d55', class: "s-filters-widget-more", onClick: () => this.showMore() }, !this.isShowMore ? this.showMoreLabel : this.showLessLabel))));
178
+ h("a", { key: '885668e717441581cd1b92494ebc3927cd70daf1', class: "s-filters-widget-more", onClick: () => this.showMore() }, !this.isShowMore ? this.showMoreLabel : this.showLessLabel))));
179
179
  }
180
180
  static get is() { return "salla-filters-widget"; }
181
181
  static get originalStyleUrls() {
@@ -746,7 +746,7 @@ export class SallaGifting {
746
746
  }
747
747
  render() {
748
748
  return [
749
- h("div", { key: '416981417bec78c8c3fda43e6f80745f4d735154' }, h("salla-list-tile", { key: '495255205e1c226669a14a94e50442aabd9818da', class: this.generateClass() }, h("div", { key: 'f2dbdc4ea0dc76d806f18563739a116e15cbbe08', slot: "title" }, this.vertical ? h("span", { innerHTML: GiftSharing }) : '', h("h3", { key: '9ed4f1d995eaf2341a9ec237ebfb486ed3db988e' }, !!this.widgetTitle ? this.widgetTitle : this.sectionTitle)), h("div", { key: 'b5d5512fcb2513177eaa1e25eacce9092f7d845f', slot: "subtitle" }, h("div", { key: '0a8223b41973b72d942ce91c5f478a3edaa5dfd3' }, !!this.widgetSubtitle ? this.widgetSubtitle : this.sectionSubtitle)), h("div", { key: 'a6d5a077131117c6854ffc2b39e506be7953051e', slot: "action" }, h("salla-button", { key: '99b14364789884b0010e50941c27cbcfe7445785', color: "primary", fill: "outline", width: "wide", class: "s-gifting-widget-action", onClick: () => this.handleGiftButtonClick() }, h("slot", { key: '27f6be7b07084f48da83af6240933d619407307f', name: "widget-btn-content" }, h("div", { key: 'ee5d04e96dd1e3849a33813b3737b476b5470497', class: "s-gifting-widget-action-content" }, h("span", { key: 'd02bb1f6cd4dff335eeca1341da2c86d2976b4fc', innerHTML: GiftSharing }), " \u00A0", h("span", { key: '98a3594e6d01133c4f448d8e5df22ba2984cf09e' }, this.sectionBtnText)))))), h("salla-modal", { key: '0be87b9d369e92a71b68f570b9bf19a0ddb7dd6b', id: this.hostId, isLoading: true, class: "s-gifting-modal", width: "sm", ref: modal => this.modal = modal }, h("div", { key: '978995d399506ff82ac0f2385a1f85a808c7da3e', slot: "loading" }, h("div", { key: '7d1f141fd9131d35edb81326062e8f7cadfa2cab', class: "s-gifting-skeleton" }, h("div", { key: 'b33cfd58381c7c1b545ffedf6739e42fdb75c8de', class: "s-gifting-modal-header" }, h("salla-skeleton", { key: 'e03a505ad3720c25077ca91c7eec2843cdaee225', type: 'circle', height: '5rem', width: '5rem' }), h("h2", { key: '6f630d2582c96fc71406ef4557143c6e9dbd4a88', class: "s-gifting-modal-title" }, h("div", { key: '8d1a3540993c9b40e705f2145bf0514754c36dab', class: "s-gifting-modal-badge-wrapper" }, h("salla-skeleton", { key: 'd965c353f19cf785a13eba6332b715eed9748836', height: '15px', width: '150px' })))), h("div", { key: 'abacc03d1e30075d3d24dfd577dc9a60f7b52810', class: "s-gifting-skeleton-content" }, h("salla-skeleton", { key: '03db84cfccc546602a6f521b015d0c12b93caa6f', height: '10px', width: '150px' }), h("salla-skeleton", { key: 'e8e2d4e70d208055baaae44a8d7da8aa5c6a33da', height: '230px' }), h("salla-skeleton", { key: '2c90d91fb63551685b2041f2bc51fdb5219cbbb7', height: '10px', width: '150px' }), h("salla-skeleton", { key: '8962bc17f43cb04563caa02db3df585189579f8f', height: '30px' }), h("salla-skeleton", { key: '73730453aa6f8d0ec2a653b4711b80b32a18b916', height: '40px' })))), h("slot", { key: '4bcf5a6d53485c461c35f53ce7e265bcf770989e', name: "header" }), !!this.hasError ?
749
+ h("div", { key: 'b4d479166a0a7a8b7bf4d66fd39399eef0bbe1d8' }, h("salla-list-tile", { key: 'a526748e500753bc4e132b6d8cc5fe56d276378c', class: this.generateClass() }, h("div", { key: '3756943a7292552172dfe5fe112a987f9dff2128', slot: "title" }, this.vertical ? h("span", { innerHTML: GiftSharing }) : '', h("h3", { key: '769df65a33828cdb51270438885bd7554a93b18b' }, !!this.widgetTitle ? this.widgetTitle : this.sectionTitle)), h("div", { key: '69c51851715c12002d0d70f936852bf6b6a064a4', slot: "subtitle" }, h("div", { key: 'ee7979030a5756a4ad74c87cebdb595decc12d48' }, !!this.widgetSubtitle ? this.widgetSubtitle : this.sectionSubtitle)), h("div", { key: '374d33078ca9e9f4d26bc801abcb50d8271887bf', slot: "action" }, h("salla-button", { key: 'f5c53ce21a6e058e484f941d356e1c74bf337b5f', color: "primary", fill: "outline", width: "wide", class: "s-gifting-widget-action", onClick: () => this.handleGiftButtonClick() }, h("slot", { key: '2b57632750b91dc720605c181e19a0329c8db3e9', name: "widget-btn-content" }, h("div", { key: '1d43f1351bc3323118c8eace681f382b753d009b', class: "s-gifting-widget-action-content" }, h("span", { key: 'f62808df38d07bf5db9d54f24a64c103dbcca3c2', innerHTML: GiftSharing }), " \u00A0", h("span", { key: 'd22429956200e68c8d588d0daddae201963ba47a' }, this.sectionBtnText)))))), h("salla-modal", { key: '0e1614ad210647ac77bbeb7e19104f5b9ce3b6b3', id: this.hostId, isLoading: true, class: "s-gifting-modal", width: "sm", ref: modal => this.modal = modal }, h("div", { key: '230c00dd750aa31d20e450086b26c11094305e0f', slot: "loading" }, h("div", { key: 'cb48aec5cf71db50ba003cb3607c27e7a629e9be', class: "s-gifting-skeleton" }, h("div", { key: 'e7aa596896cb841628bf35b4b5d8c9d22ed84dae', class: "s-gifting-modal-header" }, h("salla-skeleton", { key: '8e6dff5462dc1644bd89e56d51b3a353341b1741', type: 'circle', height: '5rem', width: '5rem' }), h("h2", { key: '5bdf4f1266938b319a5d4642773cb0e8fa772f88', class: "s-gifting-modal-title" }, h("div", { key: '2e3ea0e2589152059ec71f0e0a0b6537b0d32d8f', class: "s-gifting-modal-badge-wrapper" }, h("salla-skeleton", { key: '7cf08110d0535ec7b719251cf54f3a83d940772f', height: '15px', width: '150px' })))), h("div", { key: '3e341993dd31be4bfbcc272877c8167f50233dd0', class: "s-gifting-skeleton-content" }, h("salla-skeleton", { key: '74b584687ed715146e84a7107fb69f18ea78f31d', height: '10px', width: '150px' }), h("salla-skeleton", { key: '8acfdd240b397ea8e0d6c93c745786c68eb34f25', height: '230px' }), h("salla-skeleton", { key: 'c92cef763f9d2857429919434a56bbc9686d6a3a', height: '10px', width: '150px' }), h("salla-skeleton", { key: '22e6c56dbabf3f90fa608dcd42d11b463ae86a1c', height: '30px' }), h("salla-skeleton", { key: '8093fcbc09362879ac5afb38f1910bdddfd41390', height: '40px' })))), h("slot", { key: '10842023d5a5861fa1562784c77f718c8e257d80', name: "header" }), !!this.hasError ?
750
750
  h("salla-placeholder", { alignment: "center" }, h("span", { slot: "title" }, this.errorMessage || salla.lang.get('common.errors.empty_results')), h("span", { slot: "description" }, " "))
751
751
  :
752
752
  [
@@ -769,7 +769,7 @@ export class SallaGifting {
769
769
  h("div", { class: this.step2ItemClass(this.errors?.['receiver.city_id'] ? 's-form-group s-form-has-error' : 's-form-group') }, h("label", { class: "s-form-label", htmlFor: `${this.hostId}-city` }, this.receiverCityFieldLabel), h("salla-searchable-dropdown", { placeholder: this.selectCity, items: this.displayedCities, selectedItem: this.selectedCity, loading: this.loadingCities, searching: this.searchingCities, disabled: this.loadingCities || (this.isKSA && !this.selectedRegionId), required: true, inputId: `${this.hostId}-city`, searchQuery: this.citySearchQuery, clientSearch: !this.enableCityAjaxSearch, dropUp: true, keepParentScroll: true, onItemSelected: (e) => this.handleCitySelected(e.detail), onSearchInput: (e) => this.handleCitySearch(e.detail), onDropdownClosed: () => this.handleCityDropdownClosed() }), this.errors && this.errors['receiver.city_id'] ?
770
770
  h("span", { class: "s-gifting-error" }, this.errors['receiver.city_id']) : ''), this.isPhysical() && this.cityNoticeText() &&
771
771
  h("div", { class: this.step2ItemClass('s-gifting-info') }, h("span", { innerHTML: Alert }), h("span", null, this.cityNoticeText())), !this.isPhysical() && h("div", { class: this.step2ItemClass() }, h("label", { class: "s-gifting-schedule s-gifting-clickable", htmlFor: `schedule-${this.hostId}` }, h("input", { type: "checkbox", name: 'schedule', id: `schedule-${this.hostId}`, onChange: () => this.toggleCalendar(), class: "s-checkbox" }), h("span", { class: "s-form-label" }, " ", this.sendLater, " "))), h("div", { class: this.getCalendarClasses(), ref: (el) => this.calendarFormGroup = el }, h("label", { class: "s-form-label" }, this.selectSendDateAndTime), h("salla-datetime-picker", { value: this.deliveryDate, placeholder: this.selectSendDateAndTime, "enable-time": true, "date-format": "Y-m-d h:i K", onPicked: (event) => this.handleDateTimePicker(event) }), h("span", { class: "s-gifting-calendar-hint" }, this.canNotEditOrderAfterSelectDate)), h("div", { class: this.step2ItemClass('s-gifting-step-two-footer') }, !this.skipStep1() && h("a", { href: "#!", innerHTML: LeftArrow, onClick: (e) => this.goToStep1(e) }), h("salla-button", { onClick: () => this.submitForm(), color: "primary", width: 'wide' }, h("span", null, this.sendGift)))))
772
- ], h("slot", { key: 'a4d37b893e4a0867c044817434ade65b16fbe89a', name: "footer" })))
772
+ ], h("slot", { key: 'ba5b5cc6e2b20d756ed5149757b23239455939f7', name: "footer" })))
773
773
  ];
774
774
  }
775
775
  static get is() { return "salla-gifting"; }
@@ -11,7 +11,7 @@ export class SallaHook {
11
11
  this.host.before(element);
12
12
  }
13
13
  render() {
14
- return h(Host, { key: '7438711b185e3159e7a4792ef86f795c25d857a1' });
14
+ return h(Host, { key: '1acc6e7c4e3e9695576a820cbc68c539e81fa36e' });
15
15
  }
16
16
  async componentDidLoad() {
17
17
  // Register this component for hooks system, already on it logic to run componentDidLoad trigger
@@ -26,7 +26,7 @@ export class SallaListTile {
26
26
  };
27
27
  }
28
28
  render() {
29
- return (h(Host, { key: '2b73681383da172ed01bb199b117d2063228e01e' }, h("a", { key: 'af5913df51093694667751d16b5ec686103791a4', class: this.generateClass(), href: this.href || "#", target: this.target, "aria-label": "List Tile Link" }, h("div", { key: '49fdb468a67f0a015762a1539d2333ad694628ec', class: "s-list-tile-item-icon" }, h("slot", { key: '97417d4c9bf63e498510549d08dbf5df55050526', name: 'icon' })), h("div", { key: '53544687a14f2c992ad17d0194a10fba0ad40631', class: "s-list-tile-item-content" }, h("div", { key: 'a8803d707ccd88df74d425a004e5c180d0106c50', class: "s-list-tile-item-title" }, h("slot", { key: '27b091e8cf03dc9253baf135bdc6a8166eac566c', name: 'title' })), h("div", { key: 'c2ab48314fe243e6cea9dd7e8f0be4104a0b89e3', class: "s-list-tile-item-subtitle" }, h("slot", { key: '31c7e05be4026e990704926f6b29c8b1e570a548', name: "subtitle" }))), h("div", { key: '4fb89eaad3693b3b49e6d4ac72f09dca7c52eeeb', class: "s-list-tile-item-action" }, h("slot", { key: '7e587373e0282a22387028aaa6a801b9909f707a', name: 'action' })))));
29
+ return (h(Host, { key: 'b1b2a6bf65c40643d59f392e91cc76acaea5e89e' }, h("a", { key: '4b2026fd739b243a41bfc37fcb55bc07a1a54636', class: this.generateClass(), href: this.href || "#", target: this.target, "aria-label": "List Tile Link" }, h("div", { key: 'bbc7a7133da0e471ad92a5466e9ec0481d74cdd7', class: "s-list-tile-item-icon" }, h("slot", { key: 'e4e338854bfc7e6843c4b87f419c9aa59970c77b', name: 'icon' })), h("div", { key: '1b7b2e0a65193be521cdf6cccc314c83f853216d', class: "s-list-tile-item-content" }, h("div", { key: '4e6a178d219827b1feef394ea5564769bf11ded2', class: "s-list-tile-item-title" }, h("slot", { key: '75b036812aca3e00162fc8c40459b67d4db2cc6f', name: 'title' })), h("div", { key: 'ab0959a43214ae0eb4cf092ea3738c71ed987709', class: "s-list-tile-item-subtitle" }, h("slot", { key: 'e13f66fb2a0e1c5ab2a9081c808973c9f9ecca45', name: "subtitle" }))), h("div", { key: '78c7542367a41a1f8bc74bca73d2581f5c0b7bfd', class: "s-list-tile-item-action" }, h("slot", { key: '14c8c0f31d29855d743b52f82d52a3bed300b25f', name: 'action' })))));
30
30
  }
31
31
  static get is() { return "salla-list-tile"; }
32
32
  static get originalStyleUrls() {
@@ -22,7 +22,7 @@ export class SallaLoading {
22
22
  this.bgColor = "#e5e7eb";
23
23
  }
24
24
  render() {
25
- return (h(Host, { key: 'a3ab1e66f7b26628e7bfb1f5560127d042203cf3', class: "s-loading-container" }, h("svg", { key: 'e33089cee347160eaea4ded8ab8a5543a91f5ea1', "aria-hidden": "true", style: { width: `${this.size}px`, height: `${this.size}px`, fill: this.color, color: this.bgColor }, class: "s-loading", viewBox: "0 0 100 101", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '8163f98231203552ea3f514ac3b8cd16a8d9426c', d: "M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z", fill: "currentColor" }), h("path", { key: '959ea259b039d16be8b9dc39a2fb2e409bfffe0e', d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z", fill: "currentFill" }))));
25
+ return (h(Host, { key: '0f3796a2a8f9610f40e20eb01e4d60fb56e11a03', class: "s-loading-container" }, h("svg", { key: 'd9d98cfa05e5c7d188237a0a4833c4cd13c2855c', "aria-hidden": "true", style: { width: `${this.size}px`, height: `${this.size}px`, fill: this.color, color: this.bgColor }, class: "s-loading", viewBox: "0 0 100 101", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '75ea4d6f86456c86249dab53f3e18d21cc0380ef', d: "M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z", fill: "currentColor" }), h("path", { key: '8bfd0b7ea965749ed9456742f36d2ffa28cff9f3', d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z", fill: "currentFill" }))));
26
26
  }
27
27
  static get is() { return "salla-loading"; }
28
28
  static get originalStyleUrls() {
@@ -244,7 +244,7 @@ export class SallaLocalizationModal {
244
244
  this.showTrigger
245
245
  ? h("button", { type: "button", onClick: () => this.open(), class: "s-localization-modal-trigger-btn" }, h("span", null, this.getLanguageName()), h("span", { class: "s-localization-modal-trigger-separator" }, "|"), " ", h("span", { innerHTML: this.getCurrencySymbol() }))
246
246
  : '',
247
- h("salla-modal", { key: 'f8c4089089cc05dcc26628ca92dff99a1604d5ee', isLoading: true, class: "s-hidden", ref: modal => this.modal = modal, width: "xs" }, h("div", { key: '61d4450ea6277a3848512c4a91bbe823dd8d2813', slot: 'loading' }, h("div", { key: 'e2416822d2f660bb75284e17cb0d4408b25073b3', class: "s-localization-modal-skeleton" }, h("salla-skeleton", { key: '529ac08f5fdd3442e63d3272e43075d30dc67bb3', width: '25%', height: '15px' }), h("div", { key: '9b87c3ff232922c2bb27f9064afe6e203532e624', class: "s-localization-modal-skeleton-content" }, [...Array(4)].map(() => h("div", { class: "s-localization-modal-skeleton-item" }, h("div", { class: "s-localization-modal-skeleton-item-flex" }, h("salla-skeleton", { type: 'circle', height: '16px', width: '16px' }), h("salla-skeleton", { height: '10px', width: '100px' })), h("salla-skeleton", { height: '15px', width: '20px' })))), h("salla-skeleton", { key: 'ff35e7d5ccdb6fafc599bdaefb5390d3cba7a8a6', width: '25%', height: '15px' }), h("div", { key: 'abef2a071f3818fd980023522d118e64466d77e8', class: "s-localization-modal-skeleton-content" }, [...Array(4)].map(() => h("div", { class: "s-localization-modal-skeleton-item" }, h("div", { class: "s-localization-modal-skeleton-item-flex" }, h("salla-skeleton", { type: 'circle', height: '16px', width: '16px' }), h("salla-skeleton", { height: '10px', width: '100px' })), h("salla-skeleton", { height: '15px', width: '20px' })))), h("salla-skeleton", { key: '15611b13fb120fc02b79c4d341aa8ecd7a4265fc', height: '40px', width: '100%' }))), !!this.hasError ?
247
+ h("salla-modal", { key: 'ef56534e6aadef517af7e5af725cd3b27afe8827', isLoading: true, class: "s-hidden", ref: modal => this.modal = modal, width: "xs" }, h("div", { key: '47072c8447350fb18a5bd960335f9a907ffcdae5', slot: 'loading' }, h("div", { key: '96cf1ac3b2dc9f67ae831393285f20935d0312fd', class: "s-localization-modal-skeleton" }, h("salla-skeleton", { key: '7c2ca11ecb4d3fd62ad4c74e5187acfa313d7dbf', width: '25%', height: '15px' }), h("div", { key: '96e7d7eadf414867716fd513b1daa3417b1a02c4', class: "s-localization-modal-skeleton-content" }, [...Array(4)].map(() => h("div", { class: "s-localization-modal-skeleton-item" }, h("div", { class: "s-localization-modal-skeleton-item-flex" }, h("salla-skeleton", { type: 'circle', height: '16px', width: '16px' }), h("salla-skeleton", { height: '10px', width: '100px' })), h("salla-skeleton", { height: '15px', width: '20px' })))), h("salla-skeleton", { key: '3e02caddbc6de924dc902516f74e93f488556545', width: '25%', height: '15px' }), h("div", { key: 'fd93fce5cd7ce64dfd356ea9f105f53368d7faf6', class: "s-localization-modal-skeleton-content" }, [...Array(4)].map(() => h("div", { class: "s-localization-modal-skeleton-item" }, h("div", { class: "s-localization-modal-skeleton-item-flex" }, h("salla-skeleton", { type: 'circle', height: '16px', width: '16px' }), h("salla-skeleton", { height: '10px', width: '100px' })), h("salla-skeleton", { height: '15px', width: '20px' })))), h("salla-skeleton", { key: '0a8a92e3a2d99c2188767f5065e4efdae26d21c1', height: '40px', width: '100%' }))), !!this.hasError ?
248
248
  h("salla-placeholder", { alignment: "center" }, h("span", { slot: "description" }, this.errorMessage)) :
249
249
  h("div", { class: "s-localization-modal-inner" }, this.languages.length > 1 ?
250
250
  h("div", { class: "s-localization-modal-section" }, h("label", { class: "s-localization-modal-title" }, Salla.lang.get('common.titles.language')), h("div", { class: "s-localization-modal-section-inner" }, this.languages.length < 6 ?
@@ -7,7 +7,7 @@ export class SallaLoyaltyPrizeItem {
7
7
  this.prizeItemSelected.emit(this.item);
8
8
  }
9
9
  render() {
10
- return (h(Host, { key: '9b3837b35a38a39bde86ada09bbe7d1a43f669f4' }, h("div", { key: 'd3c4e77c5dea2060b2dc0f88dba36d08a3234779', onClick: this.onPrizeItemClick.bind(this) }, h("img", { key: '1219be8bbc9212da5b0392a6ac35c0c502cb1564', class: "s-loyalty-prize-item-image", src: this.item.image, alt: this.item.name }), h("div", { key: '61ac2fcbcd5ae3038b3a09ee81555f31ebd4c073', class: "s-loyalty-prize-item-title" }, this.item.name), h("div", { key: 'aa504c58b738528d1545cccd2ca1c2a3f4af0f32', class: "s-loyalty-prize-item-subtitle" }, this.item.description), h("div", { key: '01763afbcbfd305186adabd75bd2798306a446f6', class: "s-loyalty-prize-item-points" }, this.item.cost_points, " ", salla.lang.get('pages.loyalty_program.point')))));
10
+ return (h(Host, { key: '1a3463c51bf3e3e250f62b65d3a81815ec465923' }, h("div", { key: '03bf4d3e35b10d17a325ca4ef280cb384f3a76f4', onClick: this.onPrizeItemClick.bind(this) }, h("img", { key: 'a4d319b2daec5cdfec1c85910edea10bc1d1ab6c', class: "s-loyalty-prize-item-image", src: this.item.image, alt: this.item.name }), h("div", { key: '52059fafc318c1f5a6b0289669083476650f8761', class: "s-loyalty-prize-item-title" }, this.item.name), h("div", { key: 'a3e14e2d1bd86dc3e7dbd2e6c5115e119af965e5', class: "s-loyalty-prize-item-subtitle" }, this.item.description), h("div", { key: '55df95c028748c0387dc75dc4ad35c7285c907af', class: "s-loyalty-prize-item-points" }, this.item.cost_points, " ", salla.lang.get('pages.loyalty_program.point')))));
11
11
  }
12
12
  static get is() { return "salla-loyalty-prize-item"; }
13
13
  static get originalStyleUrls() {
@@ -79,7 +79,7 @@ export class SallaLoyaltyPointsHistory {
79
79
  }
80
80
  }
81
81
  render() {
82
- return (h(Host, { key: '598233120adaed6885eff5d25c2e3142ed25b4f1' }, h("div", { key: 'eefd51a5c81eb491252eff180c57f6cb172425f5' }, this.isLoadingLoyalty ? (h("salla-loading", null)) : (h("div", null, h("table", { class: "s-loyalty-points-history-table" }, h("tbody", null, h("tr", null, h("td", null, h("div", { class: "s-loyalty-points-history-balance-container" }, h("i", { class: "s-loyalty-points-history-balance-icon sicon-gift" }), h("div", null, h("div", { class: "s-loyalty-points-history-balance-value" }, this.balance, " ", salla.lang.get('pages.loyalty_program.point')), h("div", { class: "s-loyalty-points-history-balance-label" }, salla.lang.get('pages.loyalty_program.your_points')))))))), this.loyaltyPointsArray.length > 0 ? (h("div", null, h("table", { class: "s-loyalty-points-history-table" }, h("thead", { class: "s-loyalty-points-history-table-head" }, h("tr", null, h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('pages.wallet.points')), h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('pages.wallet.date')), h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('pages.wallet.expiry_date')), h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('common.elements.note')), h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('common.elements.status')))), h("tbody", null, this.loyaltyPointsArray.map(point => (h("tr", { class: "s-loyalty-points-history-table-tbody-tr" }, h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('pages.wallet.points'), ":"), h("span", null, point?.type === 'plus' ? '+' : '', point?.amount || '', " ", salla.lang.get('pages.loyalty_program.point')))), h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('pages.wallet.date'), ":"), h("span", null, formatDate(point?.created_at ? Number(point.created_at) * 1000 : undefined)))), h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('pages.wallet.expiry_date'), ":"), h("span", null, formatDate(point?.expires_at ? Number(point.expires_at) * 1000 : undefined)))), h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('common.elements.note'), ":"), h("span", null, translateKey(point?.key)))), h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('common.elements.status'), ":"), h("div", { class: {
82
+ return (h(Host, { key: '2d1ecb37f0cc74c3d6c3c29bc95d6043b373155f' }, h("div", { key: '2c1a3e6af83fde1f55f6d5b5bed246a3206673c4' }, this.isLoadingLoyalty ? (h("salla-loading", null)) : (h("div", null, h("table", { class: "s-loyalty-points-history-table" }, h("tbody", null, h("tr", null, h("td", null, h("div", { class: "s-loyalty-points-history-balance-container" }, h("i", { class: "s-loyalty-points-history-balance-icon sicon-gift" }), h("div", null, h("div", { class: "s-loyalty-points-history-balance-value" }, this.balance, " ", salla.lang.get('pages.loyalty_program.point')), h("div", { class: "s-loyalty-points-history-balance-label" }, salla.lang.get('pages.loyalty_program.your_points')))))))), this.loyaltyPointsArray.length > 0 ? (h("div", null, h("table", { class: "s-loyalty-points-history-table" }, h("thead", { class: "s-loyalty-points-history-table-head" }, h("tr", null, h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('pages.wallet.points')), h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('pages.wallet.date')), h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('pages.wallet.expiry_date')), h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('common.elements.note')), h("th", { scope: "col", class: "s-loyalty-points-history-table-head-tr-th" }, salla.lang.get('common.elements.status')))), h("tbody", null, this.loyaltyPointsArray.map(point => (h("tr", { class: "s-loyalty-points-history-table-tbody-tr" }, h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('pages.wallet.points'), ":"), h("span", null, point?.type === 'plus' ? '+' : '', point?.amount || '', " ", salla.lang.get('pages.loyalty_program.point')))), h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('pages.wallet.date'), ":"), h("span", null, formatDate(point?.created_at ? Number(point.created_at) * 1000 : undefined)))), h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('pages.wallet.expiry_date'), ":"), h("span", null, formatDate(point?.expires_at ? Number(point.expires_at) * 1000 : undefined)))), h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('common.elements.note'), ":"), h("span", null, translateKey(point?.key)))), h("td", { class: "s-loyalty-points-history-table-tbody-tr-td" }, h("div", { class: "s-loyalty-points-history-table-tbody-tr-td-content" }, h("span", { class: "s-loyalty-points-history-mobile-title" }, salla.lang.get('common.elements.status'), ":"), h("div", { class: {
83
83
  's-loyalty-points-history-table-transaction-status': true,
84
84
  's-loyalty-points-history-table-transaction-status-pending': point?.status_key === 'pending',
85
85
  's-loyalty-points-history-table-transaction-status-revoked': point?.status_key === 'revoked',