@salla.sa/twilight-components 2.14.525 → 2.14.527

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 (359) hide show
  1. package/dist/cjs/{filepond-ByG3dm7V.js → filepond-b0w4ucsY.js} +1 -1
  2. package/dist/cjs/{filepond-plugin-file-poster-HrlEnAMv.js → filepond-plugin-file-poster-DcK1l1GY.js} +1 -1
  3. package/dist/cjs/{filepond-plugin-file-validate-size-CQ3A10EP.js → filepond-plugin-file-validate-size-CkPhV0MZ.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-validate-type-Dc9po32n.js → filepond-plugin-file-validate-type-FezmfZnb.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-image-edit-CxnbovZA.js → filepond-plugin-image-edit-SjJnSovO.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-image-exif-orientation-BiZSj8QH.js → filepond-plugin-image-exif-orientation-BadaWudo.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-preview-Ca4Gfes-.js → filepond-plugin-image-preview-OycIHnPl.js} +1 -1
  8. package/dist/cjs/{functions-Eg2GfamO.js → functions-B5JSRkNf.js} +1 -1
  9. package/dist/cjs/{index-_SuY2Qj7.js → index-C8azAHop.js} +2 -2
  10. package/dist/cjs/intlTelInput-DCVpeeHH.js +4449 -0
  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 +1 -1
  14. package/dist/cjs/salla-add-product-button_5.cjs.entry.js +24 -6
  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-basket-gap.cjs.entry.js +5 -4
  21. package/dist/cjs/salla-booking-field_7.cjs.entry.js +32 -16
  22. package/dist/cjs/salla-bullet-delivery_2.cjs.entry.js +82 -7
  23. package/dist/cjs/salla-cart-coupons.cjs.entry.js +1 -1
  24. package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +1 -1
  25. package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
  28. package/dist/cjs/salla-comment-form_8.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  31. package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
  32. package/dist/cjs/salla-count-down_2.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
  37. package/dist/cjs/salla-filters.cjs.entry.js +1 -1
  38. package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
  39. package/dist/cjs/salla-gifting.cjs.entry.js +1 -1
  40. package/dist/cjs/salla-hook.cjs.entry.js +1 -1
  41. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +1 -1
  42. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  43. package/dist/cjs/salla-list-tile.cjs.entry.js +1 -1
  44. package/dist/cjs/salla-localization-modal.cjs.entry.js +1 -1
  45. package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
  46. package/dist/cjs/salla-loyalty-banner.cjs.entry.js +2 -2
  47. package/dist/cjs/salla-loyalty-exchange-product-card_5.cjs.entry.js +3 -3
  48. package/dist/cjs/salla-loyalty-hero_2.cjs.entry.js +2 -2
  49. package/dist/cjs/salla-loyalty-panel.cjs.entry.js +3 -3
  50. package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
  51. package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +1 -1
  52. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  53. package/dist/cjs/salla-loyalty-program.cjs.entry.js +3 -3
  54. package/dist/cjs/salla-loyalty-reward.cjs.entry.js +2 -2
  55. package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
  56. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +1 -1
  57. package/dist/cjs/salla-map_2.cjs.entry.js +71 -15
  58. package/dist/cjs/salla-menu.cjs.entry.js +1 -1
  59. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  60. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +1 -1
  61. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +1 -1
  62. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +1 -1
  63. package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
  64. package/dist/cjs/salla-notification-item.cjs.entry.js +1 -1
  65. package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
  66. package/dist/cjs/salla-offer-modal.cjs.entry.js +1 -1
  67. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
  69. package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
  70. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  71. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  72. package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
  73. package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
  74. package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +1 -1
  75. package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
  76. package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
  77. package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
  78. package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
  79. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  80. package/dist/cjs/salla-payments.cjs.entry.js +1 -1
  81. package/dist/cjs/salla-placeholder.cjs.entry.js +1 -1
  82. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  83. package/dist/cjs/salla-product-card-embed.cjs.entry.js +1 -1
  84. package/dist/cjs/salla-product-card_2.cjs.entry.js +1 -1
  85. package/dist/cjs/salla-product-size-guide.cjs.entry.js +1 -1
  86. package/dist/cjs/salla-products-list.cjs.entry.js +1 -1
  87. package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
  88. package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
  89. package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
  90. package/dist/cjs/salla-review-factors-tags.cjs.entry.js +1 -1
  91. package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
  92. package/dist/cjs/salla-search.cjs.entry.js +1 -1
  93. package/dist/cjs/salla-skeleton.cjs.entry.js +1 -1
  94. package/dist/cjs/salla-slider.cjs.entry.js +1 -1
  95. package/dist/cjs/salla-social-share.cjs.entry.js +1 -1
  96. package/dist/cjs/salla-social.cjs.entry.js +1 -1
  97. package/dist/cjs/salla-tab-content_3.cjs.entry.js +1 -1
  98. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  99. package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
  100. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  101. package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
  102. package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
  103. package/dist/cjs/salla-user-settings.cjs.entry.js +1 -1
  104. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  105. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  106. package/dist/cjs/salla-wishlist-actions.cjs.entry.js +1 -1
  107. package/dist/cjs/{tracked-promise-CykF7i94.js → tracked-promise-C_iMjRSx.js} +1 -1
  108. package/dist/cjs/twilight.cjs.js +2 -2
  109. package/dist/cjs/utils-BD1un9WN.js +544 -0
  110. package/dist/cjs/{vanilla-picker-CHauTUo6.js → vanilla-picker-BlVuhlOr.js} +1 -1
  111. package/dist/collection/components/salla-basket-gap/salla-basket-gap.js +4 -3
  112. package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.js +82 -6
  113. package/dist/collection/components/salla-map/salla-map.css +20 -1
  114. package/dist/collection/components/salla-map/salla-map.js +86 -13
  115. package/dist/collection/components/salla-product-options/salla-product-options.js +27 -5
  116. package/dist/collection/components/salla-tel-input/salla-tel-input.css +25 -17
  117. package/dist/collection/components/salla-tel-input/salla-tel-input.js +21 -5
  118. package/dist/components/index.js +2 -2
  119. package/dist/components/intlTelInput.js +4447 -0
  120. package/dist/components/salla-basket-gap.js +4 -3
  121. package/dist/components/salla-bullet-delivery.js +82 -6
  122. package/dist/components/salla-map2.js +71 -14
  123. package/dist/components/salla-product-options2.js +23 -5
  124. package/dist/components/salla-tel-input2.js +23 -7
  125. package/dist/components/utils.js +542 -0
  126. package/dist/esm/{filepond-Bq2A216a.js → filepond-BRxfxd7t.js} +1 -1
  127. package/dist/esm/{filepond-plugin-file-poster-D8LMLVE0.js → filepond-plugin-file-poster-5YXrzIG7.js} +1 -1
  128. package/dist/esm/{filepond-plugin-file-validate-size-O5io_aCk.js → filepond-plugin-file-validate-size-Cf8HW8zg.js} +1 -1
  129. package/dist/esm/{filepond-plugin-file-validate-type-HotESPQF.js → filepond-plugin-file-validate-type-CYKPeh3k.js} +1 -1
  130. package/dist/esm/{filepond-plugin-image-edit-Cognw-Ke.js → filepond-plugin-image-edit-B3vxnYdF.js} +1 -1
  131. package/dist/esm/{filepond-plugin-image-exif-orientation-1R6UZIzg.js → filepond-plugin-image-exif-orientation-BbzOlsEM.js} +1 -1
  132. package/dist/esm/{filepond-plugin-image-preview-BnYXfYUb.js → filepond-plugin-image-preview-BWeaWqAq.js} +1 -1
  133. package/dist/esm/{functions-lIfge5kK.js → functions-Bni-nvUA.js} +1 -1
  134. package/dist/esm/{index-jaN78U7Z.js → index-MrxrxOqi.js} +2 -2
  135. package/dist/esm/intlTelInput-DpfK9QTH.js +4447 -0
  136. package/dist/esm/loader.js +3 -3
  137. package/dist/esm/salla-accordion-body_2.entry.js +1 -1
  138. package/dist/esm/salla-accordion_6.entry.js +1 -1
  139. package/dist/esm/salla-add-product-button_5.entry.js +24 -6
  140. package/dist/esm/salla-advertisement.entry.js +1 -1
  141. package/dist/esm/salla-alert_2.entry.js +1 -1
  142. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  143. package/dist/esm/salla-apps-icons.entry.js +1 -1
  144. package/dist/esm/salla-badge.entry.js +1 -1
  145. package/dist/esm/salla-basket-gap.entry.js +5 -4
  146. package/dist/esm/salla-booking-field_7.entry.js +32 -16
  147. package/dist/esm/salla-bullet-delivery_2.entry.js +82 -7
  148. package/dist/esm/salla-cart-coupons.entry.js +1 -1
  149. package/dist/esm/salla-cart-item-offers_2.entry.js +1 -1
  150. package/dist/esm/salla-cart-summary-card.entry.js +1 -1
  151. package/dist/esm/salla-cashback-banner.entry.js +1 -1
  152. package/dist/esm/salla-comment-factors.entry.js +1 -1
  153. package/dist/esm/salla-comment-form_8.entry.js +1 -1
  154. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  155. package/dist/esm/salla-contacts.entry.js +1 -1
  156. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  157. package/dist/esm/salla-count-down_2.entry.js +1 -1
  158. package/dist/esm/salla-custom-fields.entry.js +1 -1
  159. package/dist/esm/salla-delivery-promise.entry.js +1 -1
  160. package/dist/esm/salla-edit-order-button.entry.js +1 -1
  161. package/dist/esm/salla-filters-widget.entry.js +1 -1
  162. package/dist/esm/salla-filters.entry.js +1 -1
  163. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  164. package/dist/esm/salla-gifting.entry.js +1 -1
  165. package/dist/esm/salla-hook.entry.js +1 -1
  166. package/dist/esm/salla-infinite-scroll.entry.js +1 -1
  167. package/dist/esm/salla-installment.entry.js +1 -1
  168. package/dist/esm/salla-list-tile.entry.js +1 -1
  169. package/dist/esm/salla-localization-modal.entry.js +1 -1
  170. package/dist/esm/salla-login-modal.entry.js +1 -1
  171. package/dist/esm/salla-loyalty-banner.entry.js +2 -2
  172. package/dist/esm/salla-loyalty-exchange-product-card_5.entry.js +3 -3
  173. package/dist/esm/salla-loyalty-hero_2.entry.js +2 -2
  174. package/dist/esm/salla-loyalty-panel.entry.js +3 -3
  175. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  176. package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
  177. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  178. package/dist/esm/salla-loyalty-program.entry.js +3 -3
  179. package/dist/esm/salla-loyalty-reward.entry.js +2 -2
  180. package/dist/esm/salla-loyalty.entry.js +1 -1
  181. package/dist/esm/salla-maintenance-alert.entry.js +1 -1
  182. package/dist/esm/salla-map_2.entry.js +71 -15
  183. package/dist/esm/salla-menu.entry.js +1 -1
  184. package/dist/esm/salla-metadata.entry.js +1 -1
  185. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +1 -1
  186. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +1 -1
  187. package/dist/esm/salla-multiple-bundle-product.entry.js +1 -1
  188. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  189. package/dist/esm/salla-notification-item.entry.js +1 -1
  190. package/dist/esm/salla-notifications.entry.js +1 -1
  191. package/dist/esm/salla-offer-modal.entry.js +1 -1
  192. package/dist/esm/salla-offer.entry.js +1 -1
  193. package/dist/esm/salla-order-branch.entry.js +1 -1
  194. package/dist/esm/salla-order-cancel.entry.js +1 -1
  195. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  196. package/dist/esm/salla-order-details-options.entry.js +1 -1
  197. package/dist/esm/salla-order-details.entry.js +1 -1
  198. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  199. package/dist/esm/salla-order-edit-product-card.entry.js +1 -1
  200. package/dist/esm/salla-order-edit.entry.js +1 -1
  201. package/dist/esm/salla-order-shipments.entry.js +1 -1
  202. package/dist/esm/salla-order-summary.entry.js +1 -1
  203. package/dist/esm/salla-order-totals-card.entry.js +1 -1
  204. package/dist/esm/salla-orders.entry.js +1 -1
  205. package/dist/esm/salla-payments.entry.js +1 -1
  206. package/dist/esm/salla-placeholder.entry.js +1 -1
  207. package/dist/esm/salla-price-range.entry.js +1 -1
  208. package/dist/esm/salla-product-card-embed.entry.js +1 -1
  209. package/dist/esm/salla-product-card_2.entry.js +1 -1
  210. package/dist/esm/salla-product-size-guide.entry.js +1 -1
  211. package/dist/esm/salla-products-list.entry.js +1 -1
  212. package/dist/esm/salla-quick-order.entry.js +1 -1
  213. package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
  214. package/dist/esm/salla-rating-modal.entry.js +1 -1
  215. package/dist/esm/salla-review-factors-tags.entry.js +1 -1
  216. package/dist/esm/salla-scopes.entry.js +1 -1
  217. package/dist/esm/salla-search.entry.js +1 -1
  218. package/dist/esm/salla-skeleton.entry.js +1 -1
  219. package/dist/esm/salla-slider.entry.js +1 -1
  220. package/dist/esm/salla-social-share.entry.js +1 -1
  221. package/dist/esm/salla-social.entry.js +1 -1
  222. package/dist/esm/salla-tab-content_3.entry.js +1 -1
  223. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  224. package/dist/esm/salla-tooltip.entry.js +1 -1
  225. package/dist/esm/salla-trust-badges.entry.js +1 -1
  226. package/dist/esm/salla-user-menu.entry.js +1 -1
  227. package/dist/esm/salla-user-profile.entry.js +1 -1
  228. package/dist/esm/salla-user-settings.entry.js +1 -1
  229. package/dist/esm/salla-verify.entry.js +1 -1
  230. package/dist/esm/salla-wallet.entry.js +1 -1
  231. package/dist/esm/salla-wishlist-actions.entry.js +1 -1
  232. package/dist/esm/{tracked-promise-BLCQ8tjn.js → tracked-promise-r8GfVNie.js} +1 -1
  233. package/dist/esm/twilight.js +3 -3
  234. package/dist/esm/utils-DxnArMXe.js +542 -0
  235. package/dist/esm/{vanilla-picker-bYqL5aAx.js → vanilla-picker-odqYYCwx.js} +1 -1
  236. package/dist/twilight/{p-630eb394.entry.js → p-012f1725.entry.js} +1 -1
  237. package/dist/twilight/{p-fe4fff6c.entry.js → p-01f19c8e.entry.js} +1 -1
  238. package/dist/twilight/{p-63518f52.entry.js → p-045bbe40.entry.js} +1 -1
  239. package/dist/twilight/{p-97298e68.entry.js → p-06089393.entry.js} +1 -1
  240. package/dist/twilight/{p-3f644db4.entry.js → p-08514188.entry.js} +1 -1
  241. package/dist/twilight/{p-182fe65a.entry.js → p-08bbb599.entry.js} +1 -1
  242. package/dist/twilight/{p-b1875b29.entry.js → p-0ab0dcc6.entry.js} +1 -1
  243. package/dist/twilight/{p-0d2fe58f.entry.js → p-0d1cc718.entry.js} +1 -1
  244. package/dist/twilight/{p-49538e37.entry.js → p-112dfb27.entry.js} +1 -1
  245. package/dist/twilight/{p-702bbad3.entry.js → p-14fe0051.entry.js} +1 -1
  246. package/dist/twilight/{p-050f9310.entry.js → p-1acb62f7.entry.js} +1 -1
  247. package/dist/twilight/{p-525223a4.entry.js → p-1b999b89.entry.js} +1 -1
  248. package/dist/twilight/{p-17bc9975.entry.js → p-1f049143.entry.js} +1 -1
  249. package/dist/twilight/{p-6435138d.entry.js → p-1f0fab6c.entry.js} +1 -1
  250. package/dist/twilight/{p-44e6a827.entry.js → p-1f2d4f6d.entry.js} +1 -1
  251. package/dist/twilight/{p-e51caf6a.entry.js → p-20ae6a3d.entry.js} +1 -1
  252. package/dist/twilight/{p-25f2f9b9.entry.js → p-258f5ec9.entry.js} +1 -1
  253. package/dist/twilight/{p-7fae6196.entry.js → p-27437b3c.entry.js} +1 -1
  254. package/dist/twilight/{p-33c856af.entry.js → p-29c02546.entry.js} +1 -1
  255. package/dist/twilight/{p-602fc32b.entry.js → p-30d348b3.entry.js} +1 -1
  256. package/dist/twilight/{p-e02846cf.entry.js → p-30d8f802.entry.js} +1 -1
  257. package/dist/twilight/{p-59273278.entry.js → p-31eab38b.entry.js} +1 -1
  258. package/dist/twilight/{p-1104a7a2.entry.js → p-3983347e.entry.js} +2 -2
  259. package/dist/twilight/{p-8f2d30ee.entry.js → p-39e0472d.entry.js} +1 -1
  260. package/dist/twilight/{p-69b14e60.entry.js → p-3b68796d.entry.js} +1 -1
  261. package/dist/twilight/{p-74116ebe.entry.js → p-402227e5.entry.js} +1 -1
  262. package/dist/twilight/{p-e9181449.entry.js → p-48143622.entry.js} +1 -1
  263. package/dist/twilight/{p-aa8cb72c.entry.js → p-491a8688.entry.js} +1 -1
  264. package/dist/twilight/{p-aa48682d.entry.js → p-4a71bc5b.entry.js} +1 -1
  265. package/dist/twilight/{p-9a0c466f.entry.js → p-52d2c526.entry.js} +1 -1
  266. package/dist/twilight/{p-c3b02957.entry.js → p-58641d12.entry.js} +1 -1
  267. package/dist/twilight/{p-18ebde40.entry.js → p-5b20bc08.entry.js} +1 -1
  268. package/dist/twilight/{p-95a6174b.entry.js → p-61b090d1.entry.js} +1 -1
  269. package/dist/twilight/{p-2c9b90ce.entry.js → p-644d9658.entry.js} +1 -1
  270. package/dist/twilight/{p-2945aeb2.entry.js → p-67269624.entry.js} +1 -1
  271. package/dist/twilight/{p-0609a7bd.entry.js → p-67d0ce1c.entry.js} +1 -1
  272. package/dist/twilight/{p-6a9a4bd8.entry.js → p-6d0825be.entry.js} +1 -1
  273. package/dist/twilight/{p-f5e142d7.entry.js → p-70da8cf5.entry.js} +1 -1
  274. package/dist/twilight/{p-c619267d.entry.js → p-714be207.entry.js} +1 -1
  275. package/dist/twilight/{p-d336cca5.entry.js → p-7206a775.entry.js} +1 -1
  276. package/dist/twilight/{p-97e232e5.entry.js → p-72094246.entry.js} +1 -1
  277. package/dist/twilight/{p-8c10db42.entry.js → p-7524a81a.entry.js} +1 -1
  278. package/dist/twilight/{p-7d585e3f.entry.js → p-7a32a312.entry.js} +1 -1
  279. package/dist/twilight/{p-c9e3cb79.entry.js → p-7f923cb2.entry.js} +1 -1
  280. package/dist/twilight/{p-80928bbd.entry.js → p-8105ed54.entry.js} +1 -1
  281. package/dist/twilight/{p-373fcfb8.entry.js → p-82c51ac3.entry.js} +1 -1
  282. package/dist/twilight/{p-362875df.entry.js → p-88013de3.entry.js} +1 -1
  283. package/dist/twilight/{p-977780ec.entry.js → p-8bc4dc7e.entry.js} +1 -1
  284. package/dist/twilight/{p-505874e8.entry.js → p-8cd7ff9e.entry.js} +1 -1
  285. package/dist/twilight/{p-00cc5421.entry.js → p-8e0ddbe8.entry.js} +1 -1
  286. package/dist/twilight/{p-99a2141a.entry.js → p-90836db4.entry.js} +1 -1
  287. package/dist/twilight/{p-3eccf464.entry.js → p-93af5955.entry.js} +1 -1
  288. package/dist/twilight/{p-99141839.entry.js → p-9573a650.entry.js} +1 -1
  289. package/dist/twilight/{p-fd847a8f.entry.js → p-968e2822.entry.js} +1 -1
  290. package/dist/twilight/{p-f7ab861f.entry.js → p-9b2515ab.entry.js} +1 -1
  291. package/dist/twilight/{p-f68bc653.entry.js → p-9b768009.entry.js} +1 -1
  292. package/dist/twilight/{p-b31b5264.entry.js → p-9be5a903.entry.js} +1 -1
  293. package/dist/twilight/{p-0e52a675.entry.js → p-9df6fb80.entry.js} +1 -1
  294. package/dist/twilight/{p-BRZnimZv.js → p-BGtF1_Bf.js} +1 -1
  295. package/dist/twilight/{p-DOua19fU.js → p-BZYlNbpW.js} +1 -1
  296. package/dist/twilight/{p-rkyvWRN4.js → p-C34Ycrkk.js} +1 -1
  297. package/dist/twilight/{p-BcYGWl9T.js → p-C_BV2ex7.js} +1 -1
  298. package/dist/twilight/{p-LTkkjsSH.js → p-C_lEyosA.js} +1 -1
  299. package/dist/twilight/{p-8-u5GuKq.js → p-CcPplbOM.js} +1 -1
  300. package/dist/twilight/{p-CYTQC0eE.js → p-ChCYUlik.js} +1 -1
  301. package/dist/twilight/{p-nDdDwFvo.js → p-Cr5HDKQ9.js} +1 -1
  302. package/dist/twilight/p-DBIOj_I_.js +4 -0
  303. package/dist/twilight/p-DffCiPZo.js +4 -0
  304. package/dist/twilight/p-DxnArMXe.js +4 -0
  305. package/dist/twilight/{p-Dqih45q3.js → p-J94Exn76.js} +1 -1
  306. package/dist/twilight/{p-jaN78U7Z.js → p-MrxrxOqi.js} +1 -1
  307. package/dist/twilight/{p-e1732ee5.entry.js → p-a433dd94.entry.js} +1 -1
  308. package/dist/twilight/{p-1f2aca4d.entry.js → p-a8fe909f.entry.js} +1 -1
  309. package/dist/twilight/{p-4f2994dd.entry.js → p-a9b36fde.entry.js} +1 -1
  310. package/dist/twilight/{p-c8c5daa1.entry.js → p-ab087e8d.entry.js} +1 -1
  311. package/dist/twilight/{p-ae9c2d84.entry.js → p-ab18ee85.entry.js} +1 -1
  312. package/dist/twilight/{p-c81d2dc8.entry.js → p-ab844de4.entry.js} +1 -1
  313. package/dist/twilight/{p-4fc66f6c.entry.js → p-ac0ec991.entry.js} +1 -1
  314. package/dist/twilight/{p-3d9e2493.entry.js → p-ac8da0ee.entry.js} +1 -1
  315. package/dist/twilight/{p-b17be3dc.entry.js → p-ade37269.entry.js} +1 -1
  316. package/dist/twilight/{p-e467f5b0.entry.js → p-b22b92fb.entry.js} +1 -1
  317. package/dist/twilight/p-b28588ba.entry.js +4 -0
  318. package/dist/twilight/{p-96ac5048.entry.js → p-b33582fd.entry.js} +1 -1
  319. package/dist/twilight/p-b6f4b3ec.entry.js +4 -0
  320. package/dist/twilight/{p-3c832f6f.entry.js → p-bb7bd408.entry.js} +1 -1
  321. package/dist/twilight/{p-99224703.entry.js → p-c41cb3fa.entry.js} +1 -1
  322. package/dist/twilight/{p-a0cbccd9.entry.js → p-c45528db.entry.js} +1 -1
  323. package/dist/twilight/{p-5d2ebd77.entry.js → p-cac22061.entry.js} +1 -1
  324. package/dist/twilight/p-cadadc88.entry.js +4 -0
  325. package/dist/twilight/{p-24805db6.entry.js → p-d0696872.entry.js} +1 -1
  326. package/dist/twilight/{p-9a59e00a.entry.js → p-d4d595c1.entry.js} +1 -1
  327. package/dist/twilight/{p-323402b3.entry.js → p-d5b9d505.entry.js} +1 -1
  328. package/dist/twilight/{p-abc2e86d.entry.js → p-d76ad30b.entry.js} +1 -1
  329. package/dist/twilight/{p-9b2a7211.entry.js → p-d7957d69.entry.js} +1 -1
  330. package/dist/twilight/{p-71c122ee.entry.js → p-d9f1cd81.entry.js} +1 -1
  331. package/dist/twilight/{p-ea5068ed.entry.js → p-dd41634a.entry.js} +1 -1
  332. package/dist/twilight/{p-8678f934.entry.js → p-e43f07fc.entry.js} +1 -1
  333. package/dist/twilight/{p-d58a1f61.entry.js → p-ea3264f8.entry.js} +1 -1
  334. package/dist/twilight/{p-42057f68.entry.js → p-ea7e2466.entry.js} +1 -1
  335. package/dist/twilight/p-ec08c0b1.entry.js +4 -0
  336. package/dist/twilight/{p-1fbf590d.entry.js → p-ecf01eb1.entry.js} +1 -1
  337. package/dist/twilight/{p-1eb75e5f.entry.js → p-ef7b606e.entry.js} +1 -1
  338. package/dist/twilight/{p-6c8274a2.entry.js → p-f3aba096.entry.js} +1 -1
  339. package/dist/twilight/{p-0e39350d.entry.js → p-f67ed203.entry.js} +1 -1
  340. package/dist/twilight/{p-d7dc876f.entry.js → p-f81029b5.entry.js} +1 -1
  341. package/dist/twilight/{p-75e0cd1f.entry.js → p-fa2ff605.entry.js} +1 -1
  342. package/dist/twilight/p-faf1ca68.entry.js +4 -0
  343. package/dist/twilight/{p-c08b91d6.entry.js → p-fee87019.entry.js} +1 -1
  344. package/dist/twilight/twilight.esm.js +1 -1
  345. package/dist/types/components/salla-bullet-delivery/salla-bullet-delivery.d.ts +16 -0
  346. package/dist/types/components/salla-map/salla-map.d.ts +15 -0
  347. package/dist/types/components/salla-tel-input/salla-tel-input.d.ts +3 -0
  348. package/dist/types/components.d.ts +4 -0
  349. package/package.json +6 -6
  350. package/dist/cjs/index-CE6R05qu.js +0 -1714
  351. package/dist/components/index3.js +0 -1712
  352. package/dist/esm/index-D_H00WFp.js +0 -1712
  353. package/dist/twilight/p-448c0d05.entry.js +0 -4
  354. package/dist/twilight/p-4a8d866d.entry.js +0 -4
  355. package/dist/twilight/p-5d036c83.entry.js +0 -4
  356. package/dist/twilight/p-Cp2FlnRu.js +0 -4
  357. package/dist/twilight/p-EpPIlSaQ.js +0 -4
  358. package/dist/twilight/p-e38c275d.entry.js +0 -4
  359. package/dist/twilight/p-f1977d52.entry.js +0 -4
@@ -265,10 +265,11 @@ const SallaBasketGap$1 = /*@__PURE__*/ proxyCustomElement(class SallaBasketGap e
265
265
  const discountLabel = this.getDiscountLabel(product);
266
266
  return (h("div", { key: product.id, class: "s-basket-gap-card" }, h("a", { href: product.url, class: "s-basket-gap-card-image" }, h("img", { class: "lazy", src: this.placeholder, "data-src": product.image?.url, alt: product.image?.alt || product.name })), h("div", { class: "s-basket-gap-card-info" }, h("h3", { class: "s-basket-gap-card-name" }, h("a", { href: product.url }, product.name)), product.is_on_sale
267
267
  ? h("div", { class: "s-basket-gap-card-sale-price" }, h("span", { innerHTML: salla.money(product.sale_price) }), h("del", { innerHTML: salla.money(product.regular_price) }))
268
- : h("span", { class: "s-basket-gap-card-price", innerHTML: salla.money(product.price) }), product.weight_label && (h("span", { class: "s-basket-gap-card-weight" }, this.weightLabel, " ", product.weight_label))), (product.promotion_title || product.discount_ends || product.is_on_sale) && (h("div", { class: "s-basket-gap-card-offer" }, h("i", { class: "sicon-gift" }), discountLabel && h("span", null, discountLabel), product.discount_ends && [
269
- h("salla-count-down", { date: this.formatDate(product.discount_ends), "end-of-day": true, digits: "en" }),
268
+ : h("span", { class: "s-basket-gap-card-price", innerHTML: salla.money(product.price) }), product.weight_label && (h("span", { class: "s-basket-gap-card-weight" }, this.weightLabel, " ", product.weight_label))), h("div", { class: "s-basket-gap-card-actions" }, (product.promotion_title || product.discount_ends || product.is_on_sale) && (h("div", { class: "s-basket-gap-card-offer" }, h("i", { class: "sicon-gift" }), discountLabel && h("span", null, discountLabel), product.discount_ends && [
269
+ // auto-segments drops the days box under 24h left, and the hours box under 1h.
270
+ h("salla-count-down", { date: this.formatDate(product.discount_ends), "end-of-day": true, digits: "en", "auto-segments": true }),
270
271
  h("i", { class: "sicon-alarm" }),
271
- ])), h("salla-add-product-button", { class: "s-basket-gap-card-btn", "product-id": product.id, "product-status": product.status, "product-type": product.type }, this.addToCartLabel)));
272
+ ])), h("salla-add-product-button", { class: "s-basket-gap-card-btn", "product-id": product.id, "product-status": product.status, "product-type": product.type }, this.addToCartLabel))));
272
273
  }
273
274
  render() {
274
275
  if (!this.canRender)
@@ -4866,6 +4866,9 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
4866
4866
  this.gmapRef = null;
4867
4867
  /** Guards against re-prompting for geolocation each time the map (re)initializes within one flow. */
4868
4868
  this.autoGeolocationTriggered = false;
4869
+ /** Identifies the latest reverse-geocode call so a resolved-but-superseded callback (same
4870
+ * coordinates re-picked, or the map left) can be told apart from the current one. */
4871
+ this.geocodeRequestId = 0;
4869
4872
  // Core state
4870
4873
  this.activeTab = "address";
4871
4874
  this.isLoggedIn = false;
@@ -4923,6 +4926,8 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
4923
4926
  this.mapReady = false;
4924
4927
  this.mapStep = 'map';
4925
4928
  this.addressDescription = '';
4929
+ /** True while reverse-geocoding a map-click/geolocation pick (no place from the map component itself). */
4930
+ this.reverseGeocoding = false;
4926
4931
  this.newAddressForm = {
4927
4932
  ...SallaBulletDelivery.INITIAL_ADDRESS_FORM,
4928
4933
  };
@@ -5001,9 +5006,10 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
5001
5006
  const detail = event.detail;
5002
5007
  if (!detail?.position?.lat || !detail?.position?.lng)
5003
5008
  return;
5009
+ const { lat, lng } = detail.position;
5004
5010
  this.mapLocationData = {
5005
- lat: detail.position.lat,
5006
- lng: detail.position.lng,
5011
+ lat,
5012
+ lng,
5007
5013
  shortAddress: detail.place?.placeId ?? detail.place?.place_id ?? undefined,
5008
5014
  formattedAddress: detail.place?.formattedAddress ?? detail.place?.formatted_address ?? undefined,
5009
5015
  };
@@ -5014,6 +5020,16 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
5014
5020
  if (marker)
5015
5021
  marker.gmpDraggable = false;
5016
5022
  }, 100);
5023
+ // Map click / geolocation / programmatic moves don't resolve a `place` (unlike search-select),
5024
+ // so fall back to reverse geocoding — otherwise the confirmation card renders with a blank address.
5025
+ if (!this.mapLocationData.formattedAddress) {
5026
+ this.reverseGeocodeLocation(lat, lng);
5027
+ }
5028
+ else {
5029
+ // A place was already resolved (search/autocomplete select) — invalidate any reverse-geocode
5030
+ // still in flight for a previous map-click pick so its callback can't later overwrite this.
5031
+ this.invalidatePendingGeocode();
5032
+ }
5017
5033
  };
5018
5034
  this.handleMapReady = () => {
5019
5035
  this.mapReady = true;
@@ -5069,6 +5085,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
5069
5085
  this.viewMode = "main";
5070
5086
  this.districtName = "";
5071
5087
  this.mapLocationData = null;
5088
+ this.invalidatePendingGeocode();
5072
5089
  this.mapStep = 'map';
5073
5090
  this.addressDescription = '';
5074
5091
  }
@@ -5283,6 +5300,8 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
5283
5300
  }
5284
5301
  resetState() {
5285
5302
  this.viewMode = "main";
5303
+ this.mapLocationData = null;
5304
+ this.invalidatePendingGeocode();
5286
5305
  this.autoGeolocationTriggered = false;
5287
5306
  this.selectedCountry = null;
5288
5307
  this.selectedRegion = null;
@@ -5967,6 +5986,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
5967
5986
  async handleAddNewAddress() {
5968
5987
  this.viewMode = "add-address";
5969
5988
  this.mapLocationData = null;
5989
+ this.invalidatePendingGeocode();
5970
5990
  this.autoGeolocationTriggered = false;
5971
5991
  this.fetchAddressToken();
5972
5992
  const intent = this.getStoredIntent();
@@ -5988,6 +6008,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
5988
6008
  handleBackToAddressList() {
5989
6009
  this.viewMode = "main";
5990
6010
  this.mapLocationData = null;
6011
+ this.invalidatePendingGeocode();
5991
6012
  this.mapStep = 'map';
5992
6013
  this.addressDescription = '';
5993
6014
  this.autoGeolocationTriggered = false;
@@ -6015,6 +6036,51 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
6015
6036
  this.loadingToken = false;
6016
6037
  }
6017
6038
  }
6039
+ /** Invalidate any reverse-geocode currently in flight — call whenever the map pick is abandoned
6040
+ * (tab switch, modal close/reopen) so a stale callback can't resurrect old location state later. */
6041
+ invalidatePendingGeocode() {
6042
+ this.reverseGeocoding = false;
6043
+ this.geocodeRequestId++;
6044
+ }
6045
+ /** Falls back to a "lat, lng" label when no address text is available — keeps the customer able
6046
+ * to confirm the pin they placed instead of being stuck with a blank address and no recovery path. */
6047
+ applyCoordsFallback(lat, lng) {
6048
+ this.mapLocationData = {
6049
+ ...this.mapLocationData,
6050
+ formattedAddress: this.mapLocationData?.formattedAddress ?? `${lat.toFixed(6)}, ${lng.toFixed(6)}`,
6051
+ };
6052
+ }
6053
+ /** Reverse-geocode a lat/lng into a display address — mirrors salla-map.tsx's getPositionAddress. */
6054
+ reverseGeocodeLocation(lat, lng) {
6055
+ const Geocoder = window.google?.maps?.Geocoder;
6056
+ if (!Geocoder) {
6057
+ // No Geocoder available at all — nothing pending to invalidate, but bump the id anyway in
6058
+ // case an earlier request (started while the SDK was still available) is still in flight.
6059
+ this.geocodeRequestId++;
6060
+ this.applyCoordsFallback(lat, lng);
6061
+ return;
6062
+ }
6063
+ this.reverseGeocoding = true;
6064
+ const requestId = ++this.geocodeRequestId;
6065
+ new Geocoder().geocode({ location: { lat, lng } }, (results, status) => {
6066
+ // Ignore stale responses — a newer pick (even at the same coordinates) started since,
6067
+ // or the map was left and `geocodeRequestId` was bumped to invalidate this call.
6068
+ if (requestId !== this.geocodeRequestId)
6069
+ return;
6070
+ this.reverseGeocoding = false;
6071
+ if (status === window.google.maps.GeocoderStatus.OK && results?.[0]) {
6072
+ this.mapLocationData = {
6073
+ ...this.mapLocationData,
6074
+ formattedAddress: results[0].formatted_address,
6075
+ shortAddress: this.mapLocationData?.shortAddress ?? results[0].place_id,
6076
+ };
6077
+ }
6078
+ else {
6079
+ log('Reverse geocoding failed for map location', status);
6080
+ this.applyCoordsFallback(lat, lng);
6081
+ }
6082
+ });
6083
+ }
6018
6084
  /** Bias autocomplete toward the current selection (or the initial center) — mirrors checkout's map-page. */
6019
6085
  updateLocationBias() {
6020
6086
  if (!this.gmapRef)
@@ -6027,6 +6093,11 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
6027
6093
  hasMapLocation() {
6028
6094
  return this.mapLocationData?.lat != null && this.mapLocationData?.lng != null;
6029
6095
  }
6096
+ /** Only let the user advance past the map step once a real address resolved — otherwise a failed
6097
+ * reverse-geocode (bad status, no results) would silently admit a blank confirmation card. */
6098
+ canConfirmMapLocation() {
6099
+ return this.hasMapLocation() && !this.reverseGeocoding && !!this.mapLocationData?.formattedAddress;
6100
+ }
6030
6101
  // TODO: replace with actual setting key once dashboard setting is built
6031
6102
  get isMapSettingEnabled() {
6032
6103
  return Salla.config.get('store.settings.bullet_delivery.settings.map_enabled');
@@ -6089,6 +6160,9 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
6089
6160
  this.activeTab = tab;
6090
6161
  if (this.viewMode === 'add-address') {
6091
6162
  this.viewMode = 'main';
6163
+ // Leaving the add-address map flow abandons any reverse-geocode still in flight —
6164
+ // otherwise its callback could resurrect stale location state if the customer returns.
6165
+ this.invalidatePendingGeocode();
6092
6166
  }
6093
6167
  this.showCartWillBeClearedBanner = false;
6094
6168
  this.allocationOutOfCoverageMessage = null;
@@ -6880,6 +6954,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
6880
6954
  }
6881
6955
  const hasMapLoc = this.hasMapLocation();
6882
6956
  const isConfirmStep = this.mapStep === 'confirm' && hasMapLoc;
6957
+ const canAdvanceToConfirm = this.canConfirmMapLocation();
6883
6958
  const submitLabel = isConfirmStep
6884
6959
  ? (this.savingAddress
6885
6960
  ? Salla.lang.get("pages.checkout.loading")
@@ -6887,13 +6962,13 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
6887
6962
  : Salla.lang.get('pages.checkout.confirm_location');
6888
6963
  const handleSubmit = (e) => {
6889
6964
  e.preventDefault();
6890
- if (!isConfirmStep && hasMapLoc) {
6965
+ if (!isConfirmStep && canAdvanceToConfirm) {
6891
6966
  this.mapStep = 'confirm';
6892
6967
  return;
6893
6968
  }
6894
6969
  this.handleSubmitAddAddress(e);
6895
6970
  };
6896
- return (h$4("form", { onSubmit: handleSubmit }, this.renderGuestDeliveryForm(), h$4("div", { class: "s-bullet-delivery-form-actions s-bullet-delivery-form-actions--single", style: { padding: '24px' } }, h$4("salla-button", { type: "submit", loading: this.savingAddress, disabled: !hasMapLoc || this.savingAddress, width: "wide" }, submitLabel), !this.isLoggedIn && (h$4("button", { type: "button", class: "s-bullet-delivery-login-prompt", onClick: () => this.handleLogin() }, Salla.lang.get('pages.checkout.login_to_use_saved_addresses'))))));
6971
+ return (h$4("form", { onSubmit: handleSubmit }, this.renderGuestDeliveryForm(), h$4("div", { class: "s-bullet-delivery-form-actions s-bullet-delivery-form-actions--single", style: { padding: '24px' } }, h$4("salla-button", { type: "submit", loading: this.savingAddress, disabled: isConfirmStep ? this.savingAddress : !canAdvanceToConfirm, width: "wide" }, submitLabel), !this.isLoggedIn && (h$4("button", { type: "button", class: "s-bullet-delivery-login-prompt", onClick: () => this.handleLogin() }, Salla.lang.get('pages.checkout.login_to_use_saved_addresses'))))));
6897
6972
  }
6898
6973
  renderBranchSearch() {
6899
6974
  return (h$4("div", { class: "s-bullet-delivery-branch-search" }, h$4("div", { class: "s-bullet-delivery-search-row" }, h$4("div", { class: "s-bullet-delivery-search s-bullet-delivery-branch-search-wrap" }, h$4("span", { class: "s-bullet-delivery-search-icon s-bullet-delivery-branch-search-icon", innerHTML: Search, "aria-hidden": "true" }), h$4("input", { type: "text", class: "s-bullet-delivery-branch-search-input form-input", placeholder: Salla.lang.get("pages.checkout.search_for_city_or_branch"), value: this.branchSearchQuery, onInput: (e) => this.handleBranchSearch(e), autocomplete: "off" })), h$4("button", { type: "button", class: {
@@ -6945,7 +7020,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
6945
7020
  let submitLabel;
6946
7021
  if (mapMode) {
6947
7022
  if (this.mapStep === 'map') {
6948
- canSubmit = hasMapLoc;
7023
+ canSubmit = this.canConfirmMapLocation();
6949
7024
  submitLabel = Salla.lang.get('pages.checkout.confirm_location');
6950
7025
  }
6951
7026
  else {
@@ -6970,7 +7045,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
6970
7045
  this.savedAddresses.length > 0 || hasSessionAddressIntent(this.getStoredIntent());
6971
7046
  const handleFormSubmit = (e) => {
6972
7047
  e.preventDefault();
6973
- if (mapMode && this.mapStep === 'map' && hasMapLoc) {
7048
+ if (mapMode && this.mapStep === 'map' && canSubmit) {
6974
7049
  this.mapStep = 'confirm';
6975
7050
  return;
6976
7051
  }
@@ -7294,6 +7369,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
7294
7369
  "mapReady": [32],
7295
7370
  "mapStep": [32],
7296
7371
  "addressDescription": [32],
7372
+ "reverseGeocoding": [32],
7297
7373
  "newAddressForm": [32],
7298
7374
  "open": [64],
7299
7375
  "close": [64]
@@ -432,7 +432,7 @@ class Loader {
432
432
  }
433
433
  Loader.CALLBACK_NAME = '_dk_google_maps_loader_cb';
434
434
 
435
- const sallaMapCss = "";
435
+ const sallaMapCss = ".s-map-wrapper{position:relative}.s-map-value-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;white-space:nowrap;border:0;opacity:0;pointer-events:none}.s-map-wrapper.s-has-error .s-map-location-button{outline:2px solid rgb(248, 113, 113);outline-offset:2px}";
436
436
 
437
437
  const SallaMap = /*@__PURE__*/ proxyCustomElement(class SallaMap extends HTMLElement {
438
438
  constructor() {
@@ -491,8 +491,45 @@ const SallaMap = /*@__PURE__*/ proxyCustomElement(class SallaMap extends HTMLEle
491
491
  formatAddress(address) {
492
492
  return address.length > 25 ? address.substring(0, 25) + '...' : address;
493
493
  }
494
+ /** Treat numeric `0` as valid; reject null/undefined/blank/NaN (incl. whitespace). */
495
+ hasCoordinate(value) {
496
+ if (value === null || value === undefined) {
497
+ return false;
498
+ }
499
+ if (typeof value === 'number') {
500
+ return Number.isFinite(value);
501
+ }
502
+ const trimmed = String(value).trim();
503
+ if (trimmed === '') {
504
+ return false;
505
+ }
506
+ return Number.isFinite(Number(trimmed));
507
+ }
508
+ /**
509
+ * Prefer confirmed selection; fall back to lat/lng props so cart/order-form
510
+ * options with an existing location keep a valid form value before geocode finishes.
511
+ */
494
512
  getLatLng() {
495
- return this.selectedLat && this.selectedLng ? `${this.selectedLat}, ${this.selectedLng}` : null;
513
+ const lat = this.hasCoordinate(this.selectedLat) ? this.selectedLat : this.lat;
514
+ const lng = this.hasCoordinate(this.selectedLng) ? this.selectedLng : this.lng;
515
+ return this.hasCoordinate(lat) && this.hasCoordinate(lng) ? `${lat}, ${lng}` : '';
516
+ }
517
+ syncMapInputValue() {
518
+ if (!this.mapInput) {
519
+ return;
520
+ }
521
+ this.mapInput.value = this.getLatLng();
522
+ this.mapInput.setCustomValidity('');
523
+ }
524
+ focusLocateControl() {
525
+ const locateButton = this.host.querySelector('.s-map-location-button');
526
+ locateButton?.focus?.();
527
+ }
528
+ componentWillLoad() {
529
+ if (this.hasCoordinate(this.lat) && this.hasCoordinate(this.lng)) {
530
+ this.selectedLat = this.lat;
531
+ this.selectedLng = this.lng;
532
+ }
496
533
  }
497
534
  getPositionAddress(location, submit = false) {
498
535
  // get address and set it to search input
@@ -631,8 +668,9 @@ const SallaMap = /*@__PURE__*/ proxyCustomElement(class SallaMap extends HTMLEle
631
668
  }
632
669
  }
633
670
  componentDidLoad() {
671
+ this.syncMapInputValue();
634
672
  // if lat and lng provided then get the formatted address
635
- if (this.lat && this.lng) {
673
+ if (this.hasCoordinate(this.lat) && this.hasCoordinate(this.lng)) {
636
674
  // get address
637
675
  fetch(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${this.lat},${this.lng}&key=${this.apiKey}&language=${salla.config.get('user.language_code') ||
638
676
  document.documentElement.lang ||
@@ -642,20 +680,42 @@ const SallaMap = /*@__PURE__*/ proxyCustomElement(class SallaMap extends HTMLEle
642
680
  if (res.status === 'OK') {
643
681
  this.formattedAddress = res.results[0].formatted_address;
644
682
  this.searchInputValue = res.results[0].formatted_address;
645
- this.searchInput.value = res.results[0].formatted_address;
683
+ if (this.searchInput) {
684
+ this.searchInput.value = res.results[0].formatted_address;
685
+ }
646
686
  this.selectedLng = this.lng;
647
687
  this.selectedLat = this.lat;
688
+ this.syncMapInputValue();
648
689
  }
649
690
  });
650
691
  }
651
692
  this.mapInput.addEventListener('invalid', e => {
693
+ // Keep native constraint validation, but move focus to the visible control
694
+ // so Chromium does not throw "An invalid form control is not focusable".
695
+ e.preventDefault();
696
+ this.host.classList.add('s-has-error');
697
+ this.focusLocateControl();
652
698
  this.invalidInput.emit(e);
653
699
  });
654
700
  this.mapInput.addEventListener('input', () => {
655
701
  this.mapInput.setCustomValidity('');
656
- this.mapInput.reportValidity();
702
+ this.host.classList.remove('s-has-error');
657
703
  });
658
704
  }
705
+ /**
706
+ * Validate the selected location when the field is required.
707
+ * Native required still applies on a focusable visually-hidden input; this method
708
+ * syncs value first and routes focus to the visible locate control via `invalid`.
709
+ */
710
+ async reportValidity() {
711
+ this.syncMapInputValue();
712
+ if (!this.mapInput || !this.required || this.readonly || this.getLatLng()) {
713
+ this.mapInput?.setCustomValidity('');
714
+ this.host.classList.remove('s-has-error');
715
+ return true;
716
+ }
717
+ return this.mapInput.reportValidity();
718
+ }
659
719
  /**
660
720
  * Open location component
661
721
  */
@@ -689,12 +749,8 @@ const SallaMap = /*@__PURE__*/ proxyCustomElement(class SallaMap extends HTMLEle
689
749
  this.selectedLat = points.lat;
690
750
  this.selectedLng = points.lng;
691
751
  this.getPositionAddress(new google.maps.LatLng(points.lat, points.lng), true);
692
- if (!this.selectedLat || !this.selectedLng) {
693
- this.mapInput.value = null;
694
- }
695
- else {
696
- this.mapInput.value = `${this.selectedLat}, ${this.selectedLng}`;
697
- }
752
+ this.syncMapInputValue();
753
+ this.host.classList.remove('s-has-error');
698
754
  this.mapInput.dispatchEvent(new window.Event('change', { bubbles: true }));
699
755
  this.locationModal.close();
700
756
  } }, this.confirmButtonTitle)
@@ -702,11 +758,11 @@ const SallaMap = /*@__PURE__*/ proxyCustomElement(class SallaMap extends HTMLEle
702
758
  }
703
759
  // render
704
760
  render() {
705
- return (h(Host, { key: '47e8a611d43d82613c87b8fce6742f318add9b74', class: "s-map-wrapper" }, h("salla-modal", { key: 'f21d703131da061ba0d5a991a9d73a42062e293b', class: "s-map-modal-wrapper", noPadding: true, ref: modal => {
761
+ return (h(Host, { key: '20ed1a1d4099e817164c3764341d473c1b735add', class: "s-map-wrapper" }, h("salla-modal", { key: '77309d82d11bbae677a935aef0e02588c5f9fbfa', class: "s-map-modal-wrapper", noPadding: true, ref: modal => {
706
762
  this.locationModal = modal;
707
- } }, this.getLocationModal()), h("slot", { key: '21754ee3e232c0ea2a0b0d89fd43fe136eca19dd', name: "button" }, h("salla-button", { key: 'dffc15443da0a75f9cc216edb86b58e0f661bef9', onClick: () => {
763
+ } }, this.getLocationModal()), h("slot", { key: '57e6d352f42a3321a98925dd4136eaf0fdbb06b0', name: "button" }, h("salla-button", { key: 'a0c39395b18ca41f2ea31c5c5729b2ba20c17a16', onClick: () => {
708
764
  this.open();
709
- }, color: "primary", class: "s-map-location-button" }, h("span", { key: '868ac864b392c39cf1314ecfd3d1e45365daad30', class: "s-map-location-icon", innerHTML: this.formattedAddress ? Edit : SILocation }), this.formattedAddress ? (h("div", null, this.locateButtonEdit, " | ", this.formatAddress(this.formattedAddress))) : (this.locateButtonTitle))), h("input", { key: 'db8f6bbbe9a89debc626402983a98efc34b2130c', class: "s-hidden", name: this.name, required: this.required, value: this.getLatLng(), ref: color => this.mapInput = color })));
765
+ }, color: "primary", class: "s-map-location-button" }, h("span", { key: 'b9478a06c198812edeacab794fb63699ea72fd6b', class: "s-map-location-icon", innerHTML: this.formattedAddress ? Edit : SILocation }), this.formattedAddress ? (h("div", null, this.locateButtonEdit, " | ", this.formatAddress(this.formattedAddress))) : (this.locateButtonTitle))), h("input", { key: 'd1619a934c72218d4d00b651e95743ad8d14a7a2', class: "s-map-value-input", name: this.name, required: this.required, value: this.getLatLng(), tabIndex: -1, "aria-hidden": "true", ref: input => (this.mapInput = input) })));
710
766
  }
711
767
  get host() { return this; }
712
768
  static get style() { return sallaMapCss; }
@@ -734,6 +790,7 @@ const SallaMap = /*@__PURE__*/ proxyCustomElement(class SallaMap extends HTMLEle
734
790
  "mapElement": [32],
735
791
  "selectedLat": [32],
736
792
  "selectedLng": [32],
793
+ "reportValidity": [64],
737
794
  "open": [64]
738
795
  }]);
739
796
  function defineCustomElement() {
@@ -363,6 +363,14 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
363
363
  if (el.disabled || el.closest('.hidden')) {
364
364
  continue;
365
365
  }
366
+ // Prefer map component validation so focus lands on the locate button.
367
+ const map = el.closest('salla-map');
368
+ if (map && typeof map.reportValidity === 'function') {
369
+ if (!(await map.reportValidity())) {
370
+ pass = false;
371
+ }
372
+ continue;
373
+ }
366
374
  //if there is only one invalid option, return false
367
375
  if ('reportValidity' in el && !el.reportValidity()) {
368
376
  pass = false;
@@ -425,7 +433,7 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
425
433
  const optionElement = event.target.closest('.s-product-options-option');
426
434
  if (event.target.value ||
427
435
  ((option.type === DisplayType.FILE || option.type === DisplayType.IMAGE) && event.type === 'added') ||
428
- (option.type === DisplayType.MAP && event.type === 'selected' && (event.target.lat && event.target.lng))) {
436
+ (option.type === DisplayType.MAP && event.type === 'selected' && Number.isFinite(Number(event.target.lat)) && Number.isFinite(Number(event.target.lng)))) {
429
437
  setTimeout(() => {
430
438
  optionElement.classList.remove('s-product-options-option-error');
431
439
  }, 200);
@@ -569,9 +577,19 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
569
577
  return true;
570
578
  }
571
579
  getLatLng(value, type) {
572
- return value
573
- ? value.split(',')[type === 'lat' ? 0 : 1]
574
- : '';
580
+ if (typeof value !== 'string' || !value.trim()) {
581
+ return undefined;
582
+ }
583
+ const segment = value.split(',')[type === 'lat' ? 0 : 1];
584
+ if (segment == null) {
585
+ return undefined;
586
+ }
587
+ const trimmed = segment.trim();
588
+ if (trimmed === '') {
589
+ return undefined;
590
+ }
591
+ const parsed = Number(trimmed);
592
+ return Number.isFinite(parsed) ? parsed : undefined;
575
593
  }
576
594
  getDisplayForType(option) {
577
595
  if (this[`${option.type}Option`]) {
@@ -936,7 +954,7 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
936
954
  }
937
955
  //@ts-ignore
938
956
  mapOption(option) {
939
- return h("salla-map", { zoom: 15, lat: this.getLatLng(option.value, 'lat'), lng: this.getLatLng(option.value, 'lng'), name: this.generateInputName(option.id), searchable: true, required: option.required, onInvalidInput: (e) => this.invalidHandler(e, option), onSelected: e => this.changedHandler(e, option) });
957
+ return h("salla-map", { zoom: 15, lat: this.getLatLng(option.value, 'lat'), lng: this.getLatLng(option.value, 'lng'), name: this.generateInputName(option.id), searchable: true, required: !option.visibility_condition && option.required, onInvalidInput: (e) => this.invalidHandler(e, option), onSelected: e => this.changedHandler(e, option) });
940
958
  }
941
959
  colorPickerOption(option) {
942
960
  return h("salla-color-picker", { onSubmitted: e => this.changedHandler(e, option), name: this.generateInputName(option.id), required: !option.visibility_condition && option.required, onInvalidInput: (e) => this.invalidHandler(e, option), color: option.value });
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
5
 
6
- const sallaTelInputCss = ".iti{width:100%;position:relative;display:inline-block}.iti *{box-sizing:border-box;-moz-box-sizing:border-box}.iti__hide{display:none}.iti__v-hide{visibility:hidden}.iti input,.iti input[type=text],.iti input[type=tel]{position:relative;z-index:0;direction:ltr !important;margin-top:0 !important;margin-bottom:0 !important;padding-left:95px !important;padding-right:15px !important;margin-left:0 !important}.iti__flag-container{width:100%;position:absolute;top:0;bottom:0;left:0;padding:1px}.iti__selected-flag{width:80px;z-index:1;position:relative;display:flex;align-items:center;height:100%;float:left;padding:0 15px;box-shadow:none !important;outline:none !important}.ltr .iti__selected-flag{justify-content:flex-end}.iti__selected-flag:before{content:\"\";display:block;width:1px;height:70%;background:#eee;position:absolute;top:15%;right:0}.iti__selected-flag .iti__flag{display:none}.iti__arrow{width:15px;height:15px;line-height:15px;position:absolute;left:10px;top:50%;transform:translateY(-50%)}.iti__arrow:after{content:url(\"data:image/svg+xml,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><title>keyboard_arrow_down</title><path d='M9.875 11.104l6.125 6.125 6.125-6.125 1.875 1.875-8 8-8-8z'></path></svg>\");font-size:16px;color:#999;opacity:0.65}.iti__arrow--up:after{transform:rotate(180deg)}.iti__country-list{width:100%;max-height:160px;position:absolute;top:100%;left:0;z-index:2;list-style:none;margin:0;padding:0;margin:5px 0 0 0;border-radius:5px;box-shadow:0px 2px 4px 2px rgba(0, 0, 0, 0.05);border:1px solid #f5f7f9;background-color:white;white-space:nowrap;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.iti__country-list::-webkit-scrollbar{width:4px}.dark .iti__country-list{background-color:rgb(82, 82, 91);border-color:rgb(82, 82, 91)}.iti__country-list li{display:flex;align-items:center;justify-content:flex-start;flex-direction:row;padding:8px 10px;transition:background-color 0.3s}.iti__country-list li span{font-size:12px}.iti__country-list li:hover,.iti__country-list li.highlighted{background-color:rgba(0, 0, 0, 0.05)}.iti__country-list--dropup{bottom:100%;top:unset;margin:0 0 5px 0}@media (max-width: 500px){.iti__country-list{white-space:normal}}.iti__flag-box{display:inline-block;width:20px;margin:0 0 0 5px}.iti__divider{padding-bottom:5px;margin-bottom:5px;border-bottom:1px solid #eee}.iti__country{padding:5px 10px;outline:none}.iti__dial-code{font-family:Arial;color:#999;unicode-bidi:plaintext;letter-spacing:1px}.iti__country.iti__highlight{background-color:rgba(0, 0, 0, 0.05)}.iti__flag-box,.iti__country-name,.iti__dial-code{vertical-align:middle}.iti__country-name{flex:auto;margin:0;padding:0 10px;white-space:normal;line-height:1.3}.iti--allow-dropdown .iti__flag-container,.iti--separate-dial-code .iti__flag-container{left:0}.iti--allow-dropdown .iti__flag-container:hover{cursor:pointer}.iti--allow-dropdown input[disabled]+.iti__flag-container:hover,.iti--allow-dropdown input[readonly]+.iti__flag-container:hover{cursor:default}.iti--allow-dropdown input[disabled]+.iti__flag-container:hover .iti__selected-flag,.iti--allow-dropdown input[readonly]+.iti__flag-container:hover .iti__selected-flag{background-color:transparent}.iti--separate-dial-code .iti__selected-dial-code{unicode-bidi:plaintext;direction:ltr;letter-spacing:1px;font-family:\"Arial\", serif;font-size:13px}.iti--container{top:-18px !important;left:0 !important;padding:1px}.iti--container:hover{cursor:pointer}.iti-mobile .iti--container{inset:0;margin:20px;width:calc(100% - 40px);position:fixed;z-index:9999}.iti-mobile .iti__country-list{max-height:100%;width:100%;inset:0}.iti-mobile .iti__country{padding:10px 10px;line-height:1.5em}.iti__flag{width:20px}.iti__flag.iti__be{width:18px}.iti__flag.iti__ch{width:15px}.iti__flag.iti__mc{width:19px}.iti__flag.iti__ne{width:18px}.iti__flag.iti__np{width:13px}.iti__flag.iti__va{width:15px}@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){.iti__flag{background-size:5652px 15px}}.iti__flag.iti__ac{height:10px;background-position:0px 0px}.iti__flag.iti__ad{height:14px;background-position:-22px 0px}.iti__flag.iti__ae{height:10px;background-position:-44px 0px}.iti__flag.iti__af{height:14px;background-position:-66px 0px}.iti__flag.iti__ag{height:14px;background-position:-88px 0px}.iti__flag.iti__ai{height:10px;background-position:-110px 0px}.iti__flag.iti__al{height:15px;background-position:-132px 0px}.iti__flag.iti__am{height:10px;background-position:-154px 0px}.iti__flag.iti__ao{height:14px;background-position:-176px 0px}.iti__flag.iti__aq{height:14px;background-position:-198px 0px}.iti__flag.iti__ar{height:13px;background-position:-220px 0px}.iti__flag.iti__as{height:10px;background-position:-242px 0px}.iti__flag.iti__at{height:14px;background-position:-264px 0px}.iti__flag.iti__au{height:10px;background-position:-286px 0px}.iti__flag.iti__aw{height:14px;background-position:-308px 0px}.iti__flag.iti__ax{height:13px;background-position:-330px 0px}.iti__flag.iti__az{height:10px;background-position:-352px 0px}.iti__flag.iti__ba{height:10px;background-position:-374px 0px}.iti__flag.iti__bb{height:14px;background-position:-396px 0px}.iti__flag.iti__bd{height:12px;background-position:-418px 0px}.iti__flag.iti__be{height:15px;background-position:-440px 0px}.iti__flag.iti__bf{height:14px;background-position:-460px 0px}.iti__flag.iti__bg{height:12px;background-position:-482px 0px}.iti__flag.iti__bh{height:12px;background-position:-504px 0px}.iti__flag.iti__bi{height:12px;background-position:-526px 0px}.iti__flag.iti__bj{height:14px;background-position:-548px 0px}.iti__flag.iti__bl{height:14px;background-position:-570px 0px}.iti__flag.iti__bm{height:10px;background-position:-592px 0px}.iti__flag.iti__bn{height:10px;background-position:-614px 0px}.iti__flag.iti__bo{height:14px;background-position:-636px 0px}.iti__flag.iti__bq{height:14px;background-position:-658px 0px}.iti__flag.iti__br{height:14px;background-position:-680px 0px}.iti__flag.iti__bs{height:10px;background-position:-702px 0px}.iti__flag.iti__bt{height:14px;background-position:-724px 0px}.iti__flag.iti__bv{height:15px;background-position:-746px 0px}.iti__flag.iti__bw{height:14px;background-position:-768px 0px}.iti__flag.iti__by{height:10px;background-position:-790px 0px}.iti__flag.iti__bz{height:14px;background-position:-812px 0px}.iti__flag.iti__ca{height:10px;background-position:-834px 0px}.iti__flag.iti__cc{height:10px;background-position:-856px 0px}.iti__flag.iti__cd{height:15px;background-position:-878px 0px}.iti__flag.iti__cf{height:14px;background-position:-900px 0px}.iti__flag.iti__cg{height:14px;background-position:-922px 0px}.iti__flag.iti__ch{height:15px;background-position:-944px 0px}.iti__flag.iti__ci{height:14px;background-position:-961px 0px}.iti__flag.iti__ck{height:10px;background-position:-983px 0px}.iti__flag.iti__cl{height:14px;background-position:-1005px 0px}.iti__flag.iti__cm{height:14px;background-position:-1027px 0px}.iti__flag.iti__cn{height:14px;background-position:-1049px 0px}.iti__flag.iti__co{height:14px;background-position:-1071px 0px}.iti__flag.iti__cp{height:14px;background-position:-1093px 0px}.iti__flag.iti__cr{height:12px;background-position:-1115px 0px}.iti__flag.iti__cu{height:10px;background-position:-1137px 0px}.iti__flag.iti__cv{height:12px;background-position:-1159px 0px}.iti__flag.iti__cw{height:14px;background-position:-1181px 0px}.iti__flag.iti__cx{height:10px;background-position:-1203px 0px}.iti__flag.iti__cy{height:14px;background-position:-1225px 0px}.iti__flag.iti__cz{height:14px;background-position:-1247px 0px}.iti__flag.iti__de{height:12px;background-position:-1269px 0px}.iti__flag.iti__dg{height:10px;background-position:-1291px 0px}.iti__flag.iti__dj{height:14px;background-position:-1313px 0px}.iti__flag.iti__dk{height:15px;background-position:-1335px 0px}.iti__flag.iti__dm{height:10px;background-position:-1357px 0px}.iti__flag.iti__do{height:14px;background-position:-1379px 0px}.iti__flag.iti__dz{height:14px;background-position:-1401px 0px}.iti__flag.iti__ea{height:14px;background-position:-1423px 0px}.iti__flag.iti__ec{height:14px;background-position:-1445px 0px}.iti__flag.iti__ee{height:13px;background-position:-1467px 0px}.iti__flag.iti__eg{height:14px;background-position:-1489px 0px}.iti__flag.iti__eh{height:10px;background-position:-1511px 0px}.iti__flag.iti__er{height:10px;background-position:-1533px 0px}.iti__flag.iti__es{height:14px;background-position:-1555px 0px}.iti__flag.iti__et{height:10px;background-position:-1577px 0px}.iti__flag.iti__eu{height:14px;background-position:-1599px 0px}.iti__flag.iti__fi{height:12px;background-position:-1621px 0px}.iti__flag.iti__fj{height:10px;background-position:-1643px 0px}.iti__flag.iti__fk{height:10px;background-position:-1665px 0px}.iti__flag.iti__fm{height:11px;background-position:-1687px 0px}.iti__flag.iti__fo{height:15px;background-position:-1709px 0px}.iti__flag.iti__fr{height:14px;background-position:-1731px 0px}.iti__flag.iti__ga{height:15px;background-position:-1753px 0px}.iti__flag.iti__gb{height:10px;background-position:-1775px 0px}.iti__flag.iti__gd{height:12px;background-position:-1797px 0px}.iti__flag.iti__ge{height:14px;background-position:-1819px 0px}.iti__flag.iti__gf{height:14px;background-position:-1841px 0px}.iti__flag.iti__gg{height:14px;background-position:-1863px 0px}.iti__flag.iti__gh{height:14px;background-position:-1885px 0px}.iti__flag.iti__gi{height:10px;background-position:-1907px 0px}.iti__flag.iti__gl{height:14px;background-position:-1929px 0px}.iti__flag.iti__gm{height:14px;background-position:-1951px 0px}.iti__flag.iti__gn{height:14px;background-position:-1973px 0px}.iti__flag.iti__gp{height:14px;background-position:-1995px 0px}.iti__flag.iti__gq{height:14px;background-position:-2017px 0px}.iti__flag.iti__gr{height:14px;background-position:-2039px 0px}.iti__flag.iti__gs{height:10px;background-position:-2061px 0px}.iti__flag.iti__gt{height:13px;background-position:-2083px 0px}.iti__flag.iti__gu{height:11px;background-position:-2105px 0px}.iti__flag.iti__gw{height:10px;background-position:-2127px 0px}.iti__flag.iti__gy{height:12px;background-position:-2149px 0px}.iti__flag.iti__hk{height:14px;background-position:-2171px 0px}.iti__flag.iti__hm{height:10px;background-position:-2193px 0px}.iti__flag.iti__hn{height:10px;background-position:-2215px 0px}.iti__flag.iti__hr{height:10px;background-position:-2237px 0px}.iti__flag.iti__ht{height:12px;background-position:-2259px 0px}.iti__flag.iti__hu{height:10px;background-position:-2281px 0px}.iti__flag.iti__ic{height:14px;background-position:-2303px 0px}.iti__flag.iti__id{height:14px;background-position:-2325px 0px}.iti__flag.iti__ie{height:10px;background-position:-2347px 0px}.iti__flag.iti__il{height:15px;background-position:-2369px 0px}.iti__flag.iti__im{height:10px;background-position:-2391px 0px}.iti__flag.iti__in{height:14px;background-position:-2413px 0px}.iti__flag.iti__io{height:10px;background-position:-2435px 0px}.iti__flag.iti__iq{height:14px;background-position:-2457px 0px}.iti__flag.iti__ir{height:12px;background-position:-2479px 0px}.iti__flag.iti__is{height:15px;background-position:-2501px 0px}.iti__flag.iti__it{height:14px;background-position:-2523px 0px}.iti__flag.iti__je{height:12px;background-position:-2545px 0px}.iti__flag.iti__jm{height:10px;background-position:-2567px 0px}.iti__flag.iti__jo{height:10px;background-position:-2589px 0px}.iti__flag.iti__jp{height:14px;background-position:-2611px 0px}.iti__flag.iti__ke{height:14px;background-position:-2633px 0px}.iti__flag.iti__kg{height:12px;background-position:-2655px 0px}.iti__flag.iti__kh{height:13px;background-position:-2677px 0px}.iti__flag.iti__ki{height:10px;background-position:-2699px 0px}.iti__flag.iti__km{height:12px;background-position:-2721px 0px}.iti__flag.iti__kn{height:14px;background-position:-2743px 0px}.iti__flag.iti__kp{height:10px;background-position:-2765px 0px}.iti__flag.iti__kr{height:14px;background-position:-2787px 0px}.iti__flag.iti__kw{height:10px;background-position:-2809px 0px}.iti__flag.iti__ky{height:10px;background-position:-2831px 0px}.iti__flag.iti__kz{height:10px;background-position:-2853px 0px}.iti__flag.iti__la{height:14px;background-position:-2875px 0px}.iti__flag.iti__lb{height:14px;background-position:-2897px 0px}.iti__flag.iti__lc{height:10px;background-position:-2919px 0px}.iti__flag.iti__li{height:12px;background-position:-2941px 0px}.iti__flag.iti__lk{height:10px;background-position:-2963px 0px}.iti__flag.iti__lr{height:11px;background-position:-2985px 0px}.iti__flag.iti__ls{height:14px;background-position:-3007px 0px}.iti__flag.iti__lt{height:12px;background-position:-3029px 0px}.iti__flag.iti__lu{height:12px;background-position:-3051px 0px}.iti__flag.iti__lv{height:10px;background-position:-3073px 0px}.iti__flag.iti__ly{height:10px;background-position:-3095px 0px}.iti__flag.iti__ma{height:14px;background-position:-3117px 0px}.iti__flag.iti__mc{height:15px;background-position:-3139px 0px}.iti__flag.iti__md{height:10px;background-position:-3160px 0px}.iti__flag.iti__me{height:10px;background-position:-3182px 0px}.iti__flag.iti__mf{height:14px;background-position:-3204px 0px}.iti__flag.iti__mg{height:14px;background-position:-3226px 0px}.iti__flag.iti__mh{height:11px;background-position:-3248px 0px}.iti__flag.iti__mk{height:10px;background-position:-3270px 0px}.iti__flag.iti__ml{height:14px;background-position:-3292px 0px}.iti__flag.iti__mm{height:14px;background-position:-3314px 0px}.iti__flag.iti__mn{height:10px;background-position:-3336px 0px}.iti__flag.iti__mo{height:14px;background-position:-3358px 0px}.iti__flag.iti__mp{height:10px;background-position:-3380px 0px}.iti__flag.iti__mq{height:14px;background-position:-3402px 0px}.iti__flag.iti__mr{height:14px;background-position:-3424px 0px}.iti__flag.iti__ms{height:10px;background-position:-3446px 0px}.iti__flag.iti__mt{height:14px;background-position:-3468px 0px}.iti__flag.iti__mu{height:14px;background-position:-3490px 0px}.iti__flag.iti__mv{height:14px;background-position:-3512px 0px}.iti__flag.iti__mw{height:14px;background-position:-3534px 0px}.iti__flag.iti__mx{height:12px;background-position:-3556px 0px}.iti__flag.iti__my{height:10px;background-position:-3578px 0px}.iti__flag.iti__mz{height:14px;background-position:-3600px 0px}.iti__flag.iti__na{height:14px;background-position:-3622px 0px}.iti__flag.iti__nc{height:10px;background-position:-3644px 0px}.iti__flag.iti__ne{height:15px;background-position:-3666px 0px}.iti__flag.iti__nf{height:10px;background-position:-3686px 0px}.iti__flag.iti__ng{height:10px;background-position:-3708px 0px}.iti__flag.iti__ni{height:12px;background-position:-3730px 0px}.iti__flag.iti__nl{height:14px;background-position:-3752px 0px}.iti__flag.iti__no{height:15px;background-position:-3774px 0px}.iti__flag.iti__np{height:15px;background-position:-3796px 0px}.iti__flag.iti__nr{height:10px;background-position:-3811px 0px}.iti__flag.iti__nu{height:10px;background-position:-3833px 0px}.iti__flag.iti__nz{height:10px;background-position:-3855px 0px}.iti__flag.iti__om{height:10px;background-position:-3877px 0px}.iti__flag.iti__pa{height:14px;background-position:-3899px 0px}.iti__flag.iti__pe{height:14px;background-position:-3921px 0px}.iti__flag.iti__pf{height:14px;background-position:-3943px 0px}.iti__flag.iti__pg{height:15px;background-position:-3965px 0px}.iti__flag.iti__ph{height:10px;background-position:-3987px 0px}.iti__flag.iti__pk{height:14px;background-position:-4009px 0px}.iti__flag.iti__pl{height:13px;background-position:-4031px 0px}.iti__flag.iti__pm{height:14px;background-position:-4053px 0px}.iti__flag.iti__pn{height:10px;background-position:-4075px 0px}.iti__flag.iti__pr{height:14px;background-position:-4097px 0px}.iti__flag.iti__ps{height:10px;background-position:-4119px 0px}.iti__flag.iti__pt{height:14px;background-position:-4141px 0px}.iti__flag.iti__pw{height:13px;background-position:-4163px 0px}.iti__flag.iti__py{height:11px;background-position:-4185px 0px}.iti__flag.iti__qa{height:8px;background-position:-4207px 0px}.iti__flag.iti__re{height:14px;background-position:-4229px 0px}.iti__flag.iti__ro{height:14px;background-position:-4251px 0px}.iti__flag.iti__rs{height:14px;background-position:-4273px 0px}.iti__flag.iti__ru{height:14px;background-position:-4295px 0px}.iti__flag.iti__rw{height:14px;background-position:-4317px 0px}.iti__flag.iti__sa{height:14px;background-position:-4339px 0px}.iti__flag.iti__sb{height:10px;background-position:-4361px 0px}.iti__flag.iti__sc{height:10px;background-position:-4383px 0px}.iti__flag.iti__sd{height:10px;background-position:-4405px 0px}.iti__flag.iti__se{height:13px;background-position:-4427px 0px}.iti__flag.iti__sg{height:14px;background-position:-4449px 0px}.iti__flag.iti__sh{height:10px;background-position:-4471px 0px}.iti__flag.iti__si{height:10px;background-position:-4493px 0px}.iti__flag.iti__sj{height:15px;background-position:-4515px 0px}.iti__flag.iti__sk{height:14px;background-position:-4537px 0px}.iti__flag.iti__sl{height:14px;background-position:-4559px 0px}.iti__flag.iti__sm{height:15px;background-position:-4581px 0px}.iti__flag.iti__sn{height:14px;background-position:-4603px 0px}.iti__flag.iti__so{height:14px;background-position:-4625px 0px}.iti__flag.iti__sr{height:14px;background-position:-4647px 0px}.iti__flag.iti__ss{height:10px;background-position:-4669px 0px}.iti__flag.iti__st{height:10px;background-position:-4691px 0px}.iti__flag.iti__sv{height:12px;background-position:-4713px 0px}.iti__flag.iti__sx{height:14px;background-position:-4735px 0px}.iti__flag.iti__sy{height:14px;background-position:-4757px 0px}.iti__flag.iti__sz{height:14px;background-position:-4779px 0px}.iti__flag.iti__ta{height:10px;background-position:-4801px 0px}.iti__flag.iti__tc{height:10px;background-position:-4823px 0px}.iti__flag.iti__td{height:14px;background-position:-4845px 0px}.iti__flag.iti__tf{height:14px;background-position:-4867px 0px}.iti__flag.iti__tg{height:13px;background-position:-4889px 0px}.iti__flag.iti__th{height:14px;background-position:-4911px 0px}.iti__flag.iti__tj{height:10px;background-position:-4933px 0px}.iti__flag.iti__tk{height:10px;background-position:-4955px 0px}.iti__flag.iti__tl{height:10px;background-position:-4977px 0px}.iti__flag.iti__tm{height:14px;background-position:-4999px 0px}.iti__flag.iti__tn{height:14px;background-position:-5021px 0px}.iti__flag.iti__to{height:10px;background-position:-5043px 0px}.iti__flag.iti__tr{height:14px;background-position:-5065px 0px}.iti__flag.iti__tt{height:12px;background-position:-5087px 0px}.iti__flag.iti__tv{height:10px;background-position:-5109px 0px}.iti__flag.iti__tw{height:14px;background-position:-5131px 0px}.iti__flag.iti__tz{height:14px;background-position:-5153px 0px}.iti__flag.iti__ua{height:14px;background-position:-5175px 0px}.iti__flag.iti__ug{height:14px;background-position:-5197px 0px}.iti__flag.iti__um{height:11px;background-position:-5219px 0px}.iti__flag.iti__un{height:14px;background-position:-5241px 0px}.iti__flag.iti__us{height:11px;background-position:-5263px 0px}.iti__flag.iti__uy{height:14px;background-position:-5285px 0px}.iti__flag.iti__uz{height:10px;background-position:-5307px 0px}.iti__flag.iti__va{height:15px;background-position:-5329px 0px}.iti__flag.iti__vc{height:14px;background-position:-5346px 0px}.iti__flag.iti__ve{height:14px;background-position:-5368px 0px}.iti__flag.iti__vg{height:10px;background-position:-5390px 0px}.iti__flag.iti__vi{height:14px;background-position:-5412px 0px}.iti__flag.iti__vn{height:14px;background-position:-5434px 0px}.iti__flag.iti__vu{height:12px;background-position:-5456px 0px}.iti__flag.iti__wf{height:14px;background-position:-5478px 0px}.iti__flag.iti__ws{height:10px;background-position:-5500px 0px}.iti__flag.iti__xk{height:15px;background-position:-5522px 0px}.iti__flag.iti__ye{height:14px;background-position:-5544px 0px}.iti__flag.iti__yt{height:14px;background-position:-5566px 0px}.iti__flag.iti__za{height:14px;background-position:-5588px 0px}.iti__flag.iti__zm{height:14px;background-position:-5610px 0px}.iti__flag.iti__zw{height:10px;background-position:-5632px 0px}.iti__flag{height:15px;box-shadow:0px 0px 1px 0px #888;background-image:url(\"https://cdn.salla.network/images/flags.png\");background-repeat:no-repeat;background-color:#f5f7f9;background-position:20px 0}@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){.iti__flag{background-image:url(\"https://cdn.salla.network/images/flags@2x.png\")}}.iti__flag.iti__np{background-color:transparent}";
6
+ const sallaTelInputCss = ".iti{width:100%;position:relative;display:inline-block}.iti *{box-sizing:border-box;-moz-box-sizing:border-box}.iti__hide{display:none}.iti__v-hide{visibility:hidden}.iti input,.iti input[type=text],.iti input[type=tel]{position:relative;z-index:0;direction:ltr !important;margin-top:0 !important;margin-bottom:0 !important;padding-left:95px !important;padding-right:15px !important;margin-left:0 !important}.iti__country-container{width:100%;position:absolute;top:0;bottom:0;left:0;padding:1px}.iti__selected-country{width:80px;z-index:1;position:relative;display:flex;align-items:center;height:100%;float:left;padding:0 15px;box-shadow:none !important;outline:none !important;background:transparent;border:0}.ltr .iti__selected-country,[dir=ltr] .iti__selected-country{justify-content:flex-end}.iti__selected-country:before{content:\"\";display:block;width:1px;height:70%;background:#eee;position:absolute;top:15%;right:0}.iti__selected-country .iti__flag{display:none}.iti__selected-country-primary{display:flex;align-items:center;height:100%}.iti__arrow{width:15px;height:15px;line-height:15px;position:absolute;left:10px;top:50%;transform:translateY(-50%)}.iti__arrow:after{content:url(\"data:image/svg+xml,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><title>keyboard_arrow_down</title><path d='M9.875 11.104l6.125 6.125 6.125-6.125 1.875 1.875-8 8-8-8z'></path></svg>\");font-size:16px;color:#999;opacity:0.65}.iti__arrow--up:after{transform:rotate(180deg)}.iti__country-list{width:100%;max-height:160px;position:absolute;top:100%;left:0;z-index:2;list-style:none;margin:0;padding:0;margin:5px 0 0 0;border-radius:5px;box-shadow:0px 2px 4px 2px rgba(0, 0, 0, 0.05);border:1px solid #f5f7f9;background-color:white;white-space:nowrap;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.iti__country-list::-webkit-scrollbar{width:4px}.dark .iti__country-list{background-color:rgb(82, 82, 91);border-color:rgb(82, 82, 91)}.iti__country-list li{display:flex;align-items:center;justify-content:flex-start;flex-direction:row;padding:8px 10px;transition:background-color 0.3s}.iti__country-list li span{font-size:12px}.iti__country-list li:hover,.iti__country-list li.highlighted{background-color:rgba(0, 0, 0, 0.05)}.iti__country-list--dropup{bottom:100%;top:unset;margin:0 0 5px 0}@media (max-width: 500px){.iti__country-list{white-space:normal}}.iti__country .iti__flag{display:inline-block;width:20px;margin:0 0 0 5px;flex-shrink:0}.iti__divider{padding-bottom:5px;margin-bottom:5px;border-bottom:1px solid #eee}.iti__country{padding:5px 10px;outline:none}.iti__dial-code{font-family:Arial;color:#999;unicode-bidi:plaintext;letter-spacing:1px}.iti__country.iti__highlight{background-color:rgba(0, 0, 0, 0.05)}.iti__country .iti__flag,.iti__country-name,.iti__dial-code{vertical-align:middle}.iti__country-name{flex:auto;margin:0;padding:0 10px;white-space:normal;line-height:1.3}.iti--allow-dropdown .iti__country-container{left:0}.iti--allow-dropdown .iti__country-container:hover{cursor:pointer}.iti--allow-dropdown input[disabled]+.iti__country-container:hover,.iti--allow-dropdown input[readonly]+.iti__country-container:hover{cursor:default}.iti--allow-dropdown input[disabled]+.iti__country-container:hover .iti__selected-country,.iti--allow-dropdown input[readonly]+.iti__country-container:hover .iti__selected-country{background-color:transparent}.iti__selected-dial-code{unicode-bidi:plaintext;direction:ltr;letter-spacing:1px;font-family:\"Arial\", serif;font-size:13px}.iti--container{top:-18px !important;left:0 !important;padding:1px}.iti--container:hover{cursor:pointer}.iti--container.iti--fullscreen-popup{inset:0;margin:20px;width:calc(100% - 40px);position:fixed;z-index:9999}.iti--container.iti--fullscreen-popup .iti__country-list{max-height:100%;width:100%;inset:0}.iti--container.iti--fullscreen-popup .iti__country{padding:10px 10px;line-height:1.5em}.iti__flag{width:20px}.iti__flag.iti__be{width:18px}.iti__flag.iti__ch{width:15px}.iti__flag.iti__mc{width:19px}.iti__flag.iti__ne{width:18px}.iti__flag.iti__np{width:13px}.iti__flag.iti__va{width:15px}@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){.iti__flag{background-size:5652px 15px}}.iti__flag.iti__ac{height:10px;background-position:0px 0px}.iti__flag.iti__ad{height:14px;background-position:-22px 0px}.iti__flag.iti__ae{height:10px;background-position:-44px 0px}.iti__flag.iti__af{height:14px;background-position:-66px 0px}.iti__flag.iti__ag{height:14px;background-position:-88px 0px}.iti__flag.iti__ai{height:10px;background-position:-110px 0px}.iti__flag.iti__al{height:15px;background-position:-132px 0px}.iti__flag.iti__am{height:10px;background-position:-154px 0px}.iti__flag.iti__ao{height:14px;background-position:-176px 0px}.iti__flag.iti__aq{height:14px;background-position:-198px 0px}.iti__flag.iti__ar{height:13px;background-position:-220px 0px}.iti__flag.iti__as{height:10px;background-position:-242px 0px}.iti__flag.iti__at{height:14px;background-position:-264px 0px}.iti__flag.iti__au{height:10px;background-position:-286px 0px}.iti__flag.iti__aw{height:14px;background-position:-308px 0px}.iti__flag.iti__ax{height:13px;background-position:-330px 0px}.iti__flag.iti__az{height:10px;background-position:-352px 0px}.iti__flag.iti__ba{height:10px;background-position:-374px 0px}.iti__flag.iti__bb{height:14px;background-position:-396px 0px}.iti__flag.iti__bd{height:12px;background-position:-418px 0px}.iti__flag.iti__be{height:15px;background-position:-440px 0px}.iti__flag.iti__bf{height:14px;background-position:-460px 0px}.iti__flag.iti__bg{height:12px;background-position:-482px 0px}.iti__flag.iti__bh{height:12px;background-position:-504px 0px}.iti__flag.iti__bi{height:12px;background-position:-526px 0px}.iti__flag.iti__bj{height:14px;background-position:-548px 0px}.iti__flag.iti__bl{height:14px;background-position:-570px 0px}.iti__flag.iti__bm{height:10px;background-position:-592px 0px}.iti__flag.iti__bn{height:10px;background-position:-614px 0px}.iti__flag.iti__bo{height:14px;background-position:-636px 0px}.iti__flag.iti__bq{height:14px;background-position:-658px 0px}.iti__flag.iti__br{height:14px;background-position:-680px 0px}.iti__flag.iti__bs{height:10px;background-position:-702px 0px}.iti__flag.iti__bt{height:14px;background-position:-724px 0px}.iti__flag.iti__bv{height:15px;background-position:-746px 0px}.iti__flag.iti__bw{height:14px;background-position:-768px 0px}.iti__flag.iti__by{height:10px;background-position:-790px 0px}.iti__flag.iti__bz{height:14px;background-position:-812px 0px}.iti__flag.iti__ca{height:10px;background-position:-834px 0px}.iti__flag.iti__cc{height:10px;background-position:-856px 0px}.iti__flag.iti__cd{height:15px;background-position:-878px 0px}.iti__flag.iti__cf{height:14px;background-position:-900px 0px}.iti__flag.iti__cg{height:14px;background-position:-922px 0px}.iti__flag.iti__ch{height:15px;background-position:-944px 0px}.iti__flag.iti__ci{height:14px;background-position:-961px 0px}.iti__flag.iti__ck{height:10px;background-position:-983px 0px}.iti__flag.iti__cl{height:14px;background-position:-1005px 0px}.iti__flag.iti__cm{height:14px;background-position:-1027px 0px}.iti__flag.iti__cn{height:14px;background-position:-1049px 0px}.iti__flag.iti__co{height:14px;background-position:-1071px 0px}.iti__flag.iti__cp{height:14px;background-position:-1093px 0px}.iti__flag.iti__cr{height:12px;background-position:-1115px 0px}.iti__flag.iti__cu{height:10px;background-position:-1137px 0px}.iti__flag.iti__cv{height:12px;background-position:-1159px 0px}.iti__flag.iti__cw{height:14px;background-position:-1181px 0px}.iti__flag.iti__cx{height:10px;background-position:-1203px 0px}.iti__flag.iti__cy{height:14px;background-position:-1225px 0px}.iti__flag.iti__cz{height:14px;background-position:-1247px 0px}.iti__flag.iti__de{height:12px;background-position:-1269px 0px}.iti__flag.iti__dg{height:10px;background-position:-1291px 0px}.iti__flag.iti__dj{height:14px;background-position:-1313px 0px}.iti__flag.iti__dk{height:15px;background-position:-1335px 0px}.iti__flag.iti__dm{height:10px;background-position:-1357px 0px}.iti__flag.iti__do{height:14px;background-position:-1379px 0px}.iti__flag.iti__dz{height:14px;background-position:-1401px 0px}.iti__flag.iti__ea{height:14px;background-position:-1423px 0px}.iti__flag.iti__ec{height:14px;background-position:-1445px 0px}.iti__flag.iti__ee{height:13px;background-position:-1467px 0px}.iti__flag.iti__eg{height:14px;background-position:-1489px 0px}.iti__flag.iti__eh{height:10px;background-position:-1511px 0px}.iti__flag.iti__er{height:10px;background-position:-1533px 0px}.iti__flag.iti__es{height:14px;background-position:-1555px 0px}.iti__flag.iti__et{height:10px;background-position:-1577px 0px}.iti__flag.iti__eu{height:14px;background-position:-1599px 0px}.iti__flag.iti__fi{height:12px;background-position:-1621px 0px}.iti__flag.iti__fj{height:10px;background-position:-1643px 0px}.iti__flag.iti__fk{height:10px;background-position:-1665px 0px}.iti__flag.iti__fm{height:11px;background-position:-1687px 0px}.iti__flag.iti__fo{height:15px;background-position:-1709px 0px}.iti__flag.iti__fr{height:14px;background-position:-1731px 0px}.iti__flag.iti__ga{height:15px;background-position:-1753px 0px}.iti__flag.iti__gb{height:10px;background-position:-1775px 0px}.iti__flag.iti__gd{height:12px;background-position:-1797px 0px}.iti__flag.iti__ge{height:14px;background-position:-1819px 0px}.iti__flag.iti__gf{height:14px;background-position:-1841px 0px}.iti__flag.iti__gg{height:14px;background-position:-1863px 0px}.iti__flag.iti__gh{height:14px;background-position:-1885px 0px}.iti__flag.iti__gi{height:10px;background-position:-1907px 0px}.iti__flag.iti__gl{height:14px;background-position:-1929px 0px}.iti__flag.iti__gm{height:14px;background-position:-1951px 0px}.iti__flag.iti__gn{height:14px;background-position:-1973px 0px}.iti__flag.iti__gp{height:14px;background-position:-1995px 0px}.iti__flag.iti__gq{height:14px;background-position:-2017px 0px}.iti__flag.iti__gr{height:14px;background-position:-2039px 0px}.iti__flag.iti__gs{height:10px;background-position:-2061px 0px}.iti__flag.iti__gt{height:13px;background-position:-2083px 0px}.iti__flag.iti__gu{height:11px;background-position:-2105px 0px}.iti__flag.iti__gw{height:10px;background-position:-2127px 0px}.iti__flag.iti__gy{height:12px;background-position:-2149px 0px}.iti__flag.iti__hk{height:14px;background-position:-2171px 0px}.iti__flag.iti__hm{height:10px;background-position:-2193px 0px}.iti__flag.iti__hn{height:10px;background-position:-2215px 0px}.iti__flag.iti__hr{height:10px;background-position:-2237px 0px}.iti__flag.iti__ht{height:12px;background-position:-2259px 0px}.iti__flag.iti__hu{height:10px;background-position:-2281px 0px}.iti__flag.iti__ic{height:14px;background-position:-2303px 0px}.iti__flag.iti__id{height:14px;background-position:-2325px 0px}.iti__flag.iti__ie{height:10px;background-position:-2347px 0px}.iti__flag.iti__il{height:15px;background-position:-2369px 0px}.iti__flag.iti__im{height:10px;background-position:-2391px 0px}.iti__flag.iti__in{height:14px;background-position:-2413px 0px}.iti__flag.iti__io{height:10px;background-position:-2435px 0px}.iti__flag.iti__iq{height:14px;background-position:-2457px 0px}.iti__flag.iti__ir{height:12px;background-position:-2479px 0px}.iti__flag.iti__is{height:15px;background-position:-2501px 0px}.iti__flag.iti__it{height:14px;background-position:-2523px 0px}.iti__flag.iti__je{height:12px;background-position:-2545px 0px}.iti__flag.iti__jm{height:10px;background-position:-2567px 0px}.iti__flag.iti__jo{height:10px;background-position:-2589px 0px}.iti__flag.iti__jp{height:14px;background-position:-2611px 0px}.iti__flag.iti__ke{height:14px;background-position:-2633px 0px}.iti__flag.iti__kg{height:12px;background-position:-2655px 0px}.iti__flag.iti__kh{height:13px;background-position:-2677px 0px}.iti__flag.iti__ki{height:10px;background-position:-2699px 0px}.iti__flag.iti__km{height:12px;background-position:-2721px 0px}.iti__flag.iti__kn{height:14px;background-position:-2743px 0px}.iti__flag.iti__kp{height:10px;background-position:-2765px 0px}.iti__flag.iti__kr{height:14px;background-position:-2787px 0px}.iti__flag.iti__kw{height:10px;background-position:-2809px 0px}.iti__flag.iti__ky{height:10px;background-position:-2831px 0px}.iti__flag.iti__kz{height:10px;background-position:-2853px 0px}.iti__flag.iti__la{height:14px;background-position:-2875px 0px}.iti__flag.iti__lb{height:14px;background-position:-2897px 0px}.iti__flag.iti__lc{height:10px;background-position:-2919px 0px}.iti__flag.iti__li{height:12px;background-position:-2941px 0px}.iti__flag.iti__lk{height:10px;background-position:-2963px 0px}.iti__flag.iti__lr{height:11px;background-position:-2985px 0px}.iti__flag.iti__ls{height:14px;background-position:-3007px 0px}.iti__flag.iti__lt{height:12px;background-position:-3029px 0px}.iti__flag.iti__lu{height:12px;background-position:-3051px 0px}.iti__flag.iti__lv{height:10px;background-position:-3073px 0px}.iti__flag.iti__ly{height:10px;background-position:-3095px 0px}.iti__flag.iti__ma{height:14px;background-position:-3117px 0px}.iti__flag.iti__mc{height:15px;background-position:-3139px 0px}.iti__flag.iti__md{height:10px;background-position:-3160px 0px}.iti__flag.iti__me{height:10px;background-position:-3182px 0px}.iti__flag.iti__mf{height:14px;background-position:-3204px 0px}.iti__flag.iti__mg{height:14px;background-position:-3226px 0px}.iti__flag.iti__mh{height:11px;background-position:-3248px 0px}.iti__flag.iti__mk{height:10px;background-position:-3270px 0px}.iti__flag.iti__ml{height:14px;background-position:-3292px 0px}.iti__flag.iti__mm{height:14px;background-position:-3314px 0px}.iti__flag.iti__mn{height:10px;background-position:-3336px 0px}.iti__flag.iti__mo{height:14px;background-position:-3358px 0px}.iti__flag.iti__mp{height:10px;background-position:-3380px 0px}.iti__flag.iti__mq{height:14px;background-position:-3402px 0px}.iti__flag.iti__mr{height:14px;background-position:-3424px 0px}.iti__flag.iti__ms{height:10px;background-position:-3446px 0px}.iti__flag.iti__mt{height:14px;background-position:-3468px 0px}.iti__flag.iti__mu{height:14px;background-position:-3490px 0px}.iti__flag.iti__mv{height:14px;background-position:-3512px 0px}.iti__flag.iti__mw{height:14px;background-position:-3534px 0px}.iti__flag.iti__mx{height:12px;background-position:-3556px 0px}.iti__flag.iti__my{height:10px;background-position:-3578px 0px}.iti__flag.iti__mz{height:14px;background-position:-3600px 0px}.iti__flag.iti__na{height:14px;background-position:-3622px 0px}.iti__flag.iti__nc{height:10px;background-position:-3644px 0px}.iti__flag.iti__ne{height:15px;background-position:-3666px 0px}.iti__flag.iti__nf{height:10px;background-position:-3686px 0px}.iti__flag.iti__ng{height:10px;background-position:-3708px 0px}.iti__flag.iti__ni{height:12px;background-position:-3730px 0px}.iti__flag.iti__nl{height:14px;background-position:-3752px 0px}.iti__flag.iti__no{height:15px;background-position:-3774px 0px}.iti__flag.iti__np{height:15px;background-position:-3796px 0px}.iti__flag.iti__nr{height:10px;background-position:-3811px 0px}.iti__flag.iti__nu{height:10px;background-position:-3833px 0px}.iti__flag.iti__nz{height:10px;background-position:-3855px 0px}.iti__flag.iti__om{height:10px;background-position:-3877px 0px}.iti__flag.iti__pa{height:14px;background-position:-3899px 0px}.iti__flag.iti__pe{height:14px;background-position:-3921px 0px}.iti__flag.iti__pf{height:14px;background-position:-3943px 0px}.iti__flag.iti__pg{height:15px;background-position:-3965px 0px}.iti__flag.iti__ph{height:10px;background-position:-3987px 0px}.iti__flag.iti__pk{height:14px;background-position:-4009px 0px}.iti__flag.iti__pl{height:13px;background-position:-4031px 0px}.iti__flag.iti__pm{height:14px;background-position:-4053px 0px}.iti__flag.iti__pn{height:10px;background-position:-4075px 0px}.iti__flag.iti__pr{height:14px;background-position:-4097px 0px}.iti__flag.iti__ps{height:10px;background-position:-4119px 0px}.iti__flag.iti__pt{height:14px;background-position:-4141px 0px}.iti__flag.iti__pw{height:13px;background-position:-4163px 0px}.iti__flag.iti__py{height:11px;background-position:-4185px 0px}.iti__flag.iti__qa{height:8px;background-position:-4207px 0px}.iti__flag.iti__re{height:14px;background-position:-4229px 0px}.iti__flag.iti__ro{height:14px;background-position:-4251px 0px}.iti__flag.iti__rs{height:14px;background-position:-4273px 0px}.iti__flag.iti__ru{height:14px;background-position:-4295px 0px}.iti__flag.iti__rw{height:14px;background-position:-4317px 0px}.iti__flag.iti__sa{height:14px;background-position:-4339px 0px}.iti__flag.iti__sb{height:10px;background-position:-4361px 0px}.iti__flag.iti__sc{height:10px;background-position:-4383px 0px}.iti__flag.iti__sd{height:10px;background-position:-4405px 0px}.iti__flag.iti__se{height:13px;background-position:-4427px 0px}.iti__flag.iti__sg{height:14px;background-position:-4449px 0px}.iti__flag.iti__sh{height:10px;background-position:-4471px 0px}.iti__flag.iti__si{height:10px;background-position:-4493px 0px}.iti__flag.iti__sj{height:15px;background-position:-4515px 0px}.iti__flag.iti__sk{height:14px;background-position:-4537px 0px}.iti__flag.iti__sl{height:14px;background-position:-4559px 0px}.iti__flag.iti__sm{height:15px;background-position:-4581px 0px}.iti__flag.iti__sn{height:14px;background-position:-4603px 0px}.iti__flag.iti__so{height:14px;background-position:-4625px 0px}.iti__flag.iti__sr{height:14px;background-position:-4647px 0px}.iti__flag.iti__ss{height:10px;background-position:-4669px 0px}.iti__flag.iti__st{height:10px;background-position:-4691px 0px}.iti__flag.iti__sv{height:12px;background-position:-4713px 0px}.iti__flag.iti__sx{height:14px;background-position:-4735px 0px}.iti__flag.iti__sy{height:14px;background-position:-4757px 0px}.iti__flag.iti__sz{height:14px;background-position:-4779px 0px}.iti__flag.iti__ta{height:10px;background-position:-4801px 0px}.iti__flag.iti__tc{height:10px;background-position:-4823px 0px}.iti__flag.iti__td{height:14px;background-position:-4845px 0px}.iti__flag.iti__tf{height:14px;background-position:-4867px 0px}.iti__flag.iti__tg{height:13px;background-position:-4889px 0px}.iti__flag.iti__th{height:14px;background-position:-4911px 0px}.iti__flag.iti__tj{height:10px;background-position:-4933px 0px}.iti__flag.iti__tk{height:10px;background-position:-4955px 0px}.iti__flag.iti__tl{height:10px;background-position:-4977px 0px}.iti__flag.iti__tm{height:14px;background-position:-4999px 0px}.iti__flag.iti__tn{height:14px;background-position:-5021px 0px}.iti__flag.iti__to{height:10px;background-position:-5043px 0px}.iti__flag.iti__tr{height:14px;background-position:-5065px 0px}.iti__flag.iti__tt{height:12px;background-position:-5087px 0px}.iti__flag.iti__tv{height:10px;background-position:-5109px 0px}.iti__flag.iti__tw{height:14px;background-position:-5131px 0px}.iti__flag.iti__tz{height:14px;background-position:-5153px 0px}.iti__flag.iti__ua{height:14px;background-position:-5175px 0px}.iti__flag.iti__ug{height:14px;background-position:-5197px 0px}.iti__flag.iti__um{height:11px;background-position:-5219px 0px}.iti__flag.iti__un{height:14px;background-position:-5241px 0px}.iti__flag.iti__us{height:11px;background-position:-5263px 0px}.iti__flag.iti__uy{height:14px;background-position:-5285px 0px}.iti__flag.iti__uz{height:10px;background-position:-5307px 0px}.iti__flag.iti__va{height:15px;background-position:-5329px 0px}.iti__flag.iti__vc{height:14px;background-position:-5346px 0px}.iti__flag.iti__ve{height:14px;background-position:-5368px 0px}.iti__flag.iti__vg{height:10px;background-position:-5390px 0px}.iti__flag.iti__vi{height:14px;background-position:-5412px 0px}.iti__flag.iti__vn{height:14px;background-position:-5434px 0px}.iti__flag.iti__vu{height:12px;background-position:-5456px 0px}.iti__flag.iti__wf{height:14px;background-position:-5478px 0px}.iti__flag.iti__ws{height:10px;background-position:-5500px 0px}.iti__flag.iti__xk{height:15px;background-position:-5522px 0px}.iti__flag.iti__ye{height:14px;background-position:-5544px 0px}.iti__flag.iti__yt{height:14px;background-position:-5566px 0px}.iti__flag.iti__za{height:14px;background-position:-5588px 0px}.iti__flag.iti__zm{height:14px;background-position:-5610px 0px}.iti__flag.iti__zw{height:10px;background-position:-5632px 0px}.iti__flag{height:15px;box-shadow:0px 0px 1px 0px #888;background-image:url(\"https://cdn.salla.network/images/flags.png\");background-repeat:no-repeat;background-color:#f5f7f9;background-position:20px 0}@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){.iti__flag{background-image:url(\"https://cdn.salla.network/images/flags@2x.png\")}}.iti__flag.iti__np{background-color:transparent}";
7
7
 
8
8
  const SallaTelInput = /*@__PURE__*/ proxyCustomElement(class SallaTelInput extends HTMLElement {
9
9
  /**
@@ -14,7 +14,7 @@ const SallaTelInput = /*@__PURE__*/ proxyCustomElement(class SallaTelInput exten
14
14
  if (this.TelInput)
15
15
  return;
16
16
  try {
17
- const telInputModule = await import('./index3.js').then(function (n) { return n.i; });
17
+ const telInputModule = await import('./intlTelInput.js').then(function (n) { return n.i; });
18
18
  this.TelInput = telInputModule.default;
19
19
  }
20
20
  catch (error) {
@@ -57,11 +57,17 @@ const SallaTelInput = /*@__PURE__*/ proxyCustomElement(class SallaTelInput exten
57
57
  this.errorMap = [this.invalidNumber, this.invalidCountryCode, this.tooShort, this.tooLong, this.invalidNumber];
58
58
  });
59
59
  }
60
+ // Init is async and v26 loads the validation utils lazily; both must settle.
61
+ async whenReady() {
62
+ await this.initPromise;
63
+ await this.utilsReady;
64
+ }
60
65
  /**
61
66
  * Get current values
62
67
  * @return {{mobile:number,countryCode:'SA'|string}}
63
68
  */
64
69
  async getValues() {
70
+ await this.initPromise;
65
71
  return {
66
72
  [this.name]: this.phone = this.phoneInput.value,
67
73
  countryCode: this.countryCode = this.countryCodeInput.value,
@@ -73,6 +79,7 @@ const SallaTelInput = /*@__PURE__*/ proxyCustomElement(class SallaTelInput exten
73
79
  * @return {boolean}
74
80
  */
75
81
  async isValid() {
82
+ await this.whenReady();
76
83
  this.reset();
77
84
  if (this.iti.isValidNumber())
78
85
  return true;
@@ -83,7 +90,7 @@ const SallaTelInput = /*@__PURE__*/ proxyCustomElement(class SallaTelInput exten
83
90
  }
84
91
  this.phoneInput.classList.add("s-has-error");
85
92
  let errorCode = this.iti.getValidationError();
86
- this.errorMsg.innerText = this.errorMap[errorCode] || '';
93
+ this.errorMsg.innerText = this.errorMap[errorCode] || this.invalidNumber || '';
87
94
  salla.logger.info('Phone number (' + this.countryCode + ' - ' + this.phone + ') is not valid, error code ' + errorCode);
88
95
  return false;
89
96
  }
@@ -93,14 +100,22 @@ const SallaTelInput = /*@__PURE__*/ proxyCustomElement(class SallaTelInput exten
93
100
  salla.helpers.inputDigitsOnly(this.phoneInput);
94
101
  this.iti = this.TelInput(this.phoneInput, {
95
102
  initialCountry: this.countryCode?.toLowerCase() || 'sa',
96
- preferredCountries: ['sa', 'ae', 'kw', 'bh', 'qa', 'iq', 'om', 'ye', 'eg', 'jo', 'ps', 'sd', 'lb', 'dz', 'tn', 'ma', 'ly'],
103
+ countryOrder: ['sa', 'ae', 'kw', 'bh', 'qa', 'iq', 'om', 'ye', 'eg', 'jo', 'ps', 'sd', 'lb', 'dz', 'tn', 'ma', 'ly'],
97
104
  excludeCountries: ['sy', 'ir', 'cu', 'kp'],
98
105
  formatOnDisplay: false,
99
106
  separateDialCode: true,
100
107
  autoPlaceholder: 'aggressive',
101
- utilsScript: 'https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/21.2.7/js/utils.min.js',
108
+ // v26 adds a country-search box to the dropdown by default. Keep it off to
109
+ // preserve the previous (v18) dropdown UX and avoid shipping an unstyled input.
110
+ countrySearch: false,
111
+ // v26 dropped the `utilsScript` URL option in favour of `loadUtils`. We load the
112
+ // utils bundled with the installed package as a lazy chunk (no CDN, version-locked),
113
+ // which carries the up-to-date libphonenumber metadata (e.g. Oman 7[3-5] mobiles).
114
+ loadUtils: () => import('./utils.js'),
102
115
  dropdownContainer: this.host
103
116
  });
117
+ // Rejects if the lazy utils chunk fails; swallow so validation still runs.
118
+ this.utilsReady = this.iti.promise.catch(() => { });
104
119
  this.autofocus && this.phoneInput.focus();
105
120
  this.phoneInput.addEventListener("countrychange", () => {
106
121
  let data = this.iti.getSelectedCountryData();
@@ -129,10 +144,11 @@ const SallaTelInput = /*@__PURE__*/ proxyCustomElement(class SallaTelInput exten
129
144
  }
130
145
  }
131
146
  render() {
132
- return (h(Host, { key: '727fa47d71bd8fd98f76c66b3bafb2348a586303', class: "s-tel-input" }, h("input", { key: '19f5d3e2ff8902733e21f39038f716b18ae065ae', type: "tel", disabled: this.disabled, name: this.name, value: this.phone, onChange: (event) => this.handleCountryInput(event), ref: el => this.phoneInput = el, enterkeyhint: "next", autocomplete: "tel", class: "s-tel-input-control tel-input s-ltr" }), h("span", { key: 'ad6b735fa4d5574b8717f460171c13a56a031451', class: "s-tel-input-error-msg", ref: el => this.errorMsg = el }), h("input", { key: '07c8732dc276613fc5ed2928a2d47af51c49d942', type: "hidden", name: "country_code", value: this.countryCode, ref: el => this.countryCodeInput = el, class: "country_code" })));
147
+ return (h(Host, { key: '1b928e13a8d7784cba93a8a9295d5e2da59380ec', class: "s-tel-input" }, h("input", { key: '351a4e2ba8865b613a7c52127ef312f834116a59', type: "tel", disabled: this.disabled, name: this.name, value: this.phone, onChange: (event) => this.handleCountryInput(event), ref: el => this.phoneInput = el, enterkeyhint: "next", autocomplete: "tel", class: "s-tel-input-control tel-input s-ltr" }), h("span", { key: 'cac78f5eede19008d46a126c8c96cd963947de1f', class: "s-tel-input-error-msg", ref: el => this.errorMsg = el }), h("input", { key: '7aedcb3f86d491f4789226f12812c7023d749eba', type: "hidden", name: "country_code", value: this.countryCode, ref: el => this.countryCodeInput = el, class: "country_code" })));
133
148
  }
134
149
  componentDidLoad() {
135
- this.initTelInput();
150
+ this.initPromise = this.initTelInput();
151
+ this.initPromise.catch(() => { });
136
152
  }
137
153
  get host() { return this; }
138
154
  static get style() { return sallaTelInputCss; }