@salla.sa/twilight-components 1.6.15-alpha.4 → 1.6.15-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/cjs/{index-a7bec25d.js → index-69a7a6c7.js} +1 -1
  2. package/dist/cjs/loader.cjs.js +2 -2
  3. package/dist/cjs/salla-button_27.cjs.entry.js +66 -82
  4. package/dist/cjs/salla-installment.cjs.entry.js +3 -8
  5. package/dist/cjs/twilight.cjs.js +2 -2
  6. package/dist/collection/Helpers/Helper.js +9 -18
  7. package/dist/collection/components/salla-infinite-scroll/salla-infinite-scroll.js +1 -3
  8. package/dist/collection/components/salla-installment/salla-installment.css +3 -0
  9. package/dist/collection/components/salla-installment/salla-installment.js +2 -7
  10. package/dist/collection/components/salla-localization-modal/salla-localization-modal.js +2 -4
  11. package/dist/collection/components/salla-login-modal/salla-login-modal.js +2 -3
  12. package/dist/collection/components/salla-modal/salla-modal.js +15 -7
  13. package/dist/collection/components/salla-offer-modal/salla-offer-modal.js +2 -4
  14. package/dist/collection/components/salla-product-availability/salla-product-availability.js +2 -3
  15. package/dist/collection/components/salla-product-size-guide/salla-product-size-guide.js +0 -2
  16. package/dist/collection/components/salla-quantity-input/salla-quantity-input.js +1 -1
  17. package/dist/collection/components/salla-rating-modal/salla-rating-modal.js +6 -8
  18. package/dist/collection/components/salla-rating-stars/salla-rating-stars.js +1 -2
  19. package/dist/collection/components/salla-search/salla-search.js +3 -5
  20. package/dist/collection/components/salla-tel-input/salla-tel-input.js +0 -2
  21. package/dist/collection/components/salla-verify/salla-verify.js +28 -32
  22. package/dist/components/index.js +1 -1
  23. package/dist/components/salla-infinite-scroll.js +1 -3
  24. package/dist/components/salla-installment.js +3 -8
  25. package/dist/components/salla-localization-modal.js +2 -4
  26. package/dist/components/salla-login-modal.js +2 -3
  27. package/dist/components/salla-modal2.js +8 -7
  28. package/dist/components/salla-offer-modal.js +2 -4
  29. package/dist/components/salla-product-availability2.js +2 -3
  30. package/dist/components/salla-product-size-guide.js +0 -2
  31. package/dist/components/salla-quantity-input.js +14 -2
  32. package/dist/components/salla-rating-modal.js +6 -8
  33. package/dist/components/salla-rating-stars2.js +1 -2
  34. package/dist/components/salla-search.js +3 -5
  35. package/dist/components/salla-tel-input2.js +0 -2
  36. package/dist/components/salla-verify2.js +27 -30
  37. package/dist/esm/{index-3020d26f.js → index-c55c8ada.js} +1 -1
  38. package/dist/esm/loader.js +2 -2
  39. package/dist/esm/salla-button_27.entry.js +66 -82
  40. package/dist/esm/salla-installment.entry.js +3 -8
  41. package/dist/esm/twilight.js +2 -2
  42. package/dist/esm-es5/{index-3020d26f.js → index-c55c8ada.js} +1 -1
  43. package/dist/esm-es5/loader.js +1 -1
  44. package/dist/esm-es5/salla-button_27.entry.js +4 -4
  45. package/dist/esm-es5/salla-installment.entry.js +1 -1
  46. package/dist/esm-es5/twilight.js +1 -1
  47. package/dist/twilight/p-27e01463.entry.js +4 -0
  48. package/dist/twilight/{p-f6171fb9.system.js → p-5ad1bc70.system.js} +1 -1
  49. package/dist/twilight/{p-48b393ab.js → p-72f4e219.js} +1 -1
  50. package/dist/twilight/p-767eb598.system.entry.js +4 -0
  51. package/dist/twilight/{p-65c324c0.system.js → p-c2def1b6.system.js} +1 -1
  52. package/dist/twilight/{p-24e726cc.system.entry.js → p-cd5fd608.system.entry.js} +1 -1
  53. package/dist/twilight/{p-d64f3123.entry.js → p-d836f54e.entry.js} +1 -1
  54. package/dist/twilight/twilight.esm.js +1 -1
  55. package/dist/twilight/twilight.js +1 -1
  56. package/dist/types/Helpers/Helper.d.ts +3 -6
  57. package/dist/types/components/salla-installment/salla-installment.d.ts +1 -2
  58. package/dist/types/components/salla-modal/salla-modal.d.ts +1 -0
  59. package/dist/types/components/salla-verify/salla-verify.d.ts +2 -1
  60. package/package.json +3 -3
  61. package/dist/components/Helper.js +0 -26
  62. package/dist/twilight/p-0db2b810.entry.js +0 -4
  63. package/dist/twilight/p-ce3e3fa2.system.entry.js +0 -4
@@ -19145,28 +19145,6 @@ const SallaGifting = class {
19145
19145
  };
19146
19146
  SallaGifting.style = sallaGiftingCss;
19147
19147
 
19148
- class Helper extends salla.AppHelpers {
19149
- setHost(host) {
19150
- // @ts-ignore
19151
- this.host = host;
19152
- }
19153
- getElement(selector) {
19154
- // @ts-ignore
19155
- return this.host.querySelector(selector);
19156
- }
19157
- getAttribute(selector, attribute) {
19158
- var _a;
19159
- return (_a = this.getElement(selector)) === null || _a === void 0 ? void 0 : _a.getAttribute(attribute);
19160
- }
19161
- val(selector) {
19162
- return this.getAttribute(selector, 'value');
19163
- }
19164
- isUser() {
19165
- return salla.config.get('user.type') === 'user';
19166
- }
19167
- }
19168
- const Helper$1 = new Helper;
19169
-
19170
19148
  const sallaInfiniteScrollCss = "";
19171
19149
 
19172
19150
  const SallaInfiniteScroll = class {
@@ -19188,7 +19166,6 @@ const SallaInfiniteScroll = class {
19188
19166
  * Class selector to know list items
19189
19167
  */
19190
19168
  this.item = 'salla-infinite-scroll > *';
19191
- Helper$1.setHost(this.host);
19192
19169
  this.status = document.createElement('div');
19193
19170
  this.status.className = 's-infinite-scroll-wrapper';
19194
19171
  this.status.innerHTML = `<div class="s-infinite-scroll-status" style="display:none">
@@ -19208,7 +19185,7 @@ const SallaInfiniteScroll = class {
19208
19185
  }
19209
19186
  loading(isLoading = true) {
19210
19187
  let btnText = this.status.querySelector('.s-button-text');
19211
- Helper$1.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);
19188
+ salla.helpers.app.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);
19212
19189
  this.btnLoader.style.display = isLoading ? 'inherit' : 'none';
19213
19190
  }
19214
19191
  render() {
@@ -19321,7 +19298,6 @@ const SallaLocalizationModal = class {
19321
19298
  * Current currency (existing or newly selected)
19322
19299
  */
19323
19300
  this.currency = salla.config.get('user.currency_code');
19324
- Helper$1.setHost(this.host);
19325
19301
  salla.event.on('localization::open', () => this.open());
19326
19302
  salla.lang.onLoaded(() => {
19327
19303
  this.translationLoaded = true;
@@ -19335,8 +19311,8 @@ const SallaLocalizationModal = class {
19335
19311
  * Because scoped templates not supported in stencil );
19336
19312
  * we made a workaround to pass language & currency attributes, then replace names in rendering
19337
19313
  */
19338
- this.languageSlot = ((_a = Helper$1.getElement('[slot="language"]')) === null || _a === void 0 ? void 0 : _a.innerHTML) || '<label class="s-localization-modal-label" for="lang-{code}"><span>{name}</span><div class="s-localization-modal-flag flag iti__flag iti__{country_code}"></div></label>';
19339
- this.currencySlot = ((_b = Helper$1.getElement('[slot="currency"]')) === null || _b === void 0 ? void 0 : _b.innerHTML) || '<label class="s-localization-modal-label" for="currency-{code}"><span>{name}</span><small class="s-localization-modal-currency">{code}</small></label>';
19314
+ this.languageSlot = ((_a = this.host.querySelector('[slot="language"]')) === null || _a === void 0 ? void 0 : _a.innerHTML) || '<label class="s-localization-modal-label" for="lang-{code}"><span>{name}</span><div class="s-localization-modal-flag flag iti__flag iti__{country_code}"></div></label>';
19315
+ this.currencySlot = ((_b = this.host.querySelector('[slot="currency"]')) === null || _b === void 0 ? void 0 : _b.innerHTML) || '<label class="s-localization-modal-label" for="currency-{code}"><span>{name}</span><small class="s-localization-modal-currency">{code}</small></label>';
19340
19316
  }
19341
19317
  /**
19342
19318
  * open the component
@@ -19495,7 +19471,7 @@ const SallaLoginModal = class {
19495
19471
  };
19496
19472
  this.loginByEmail = (event = null) => {
19497
19473
  event === null || event === void 0 ? void 0 : event.preventDefault();
19498
- if (!Helper$1.isValidEmail(this.loginEmail.value)) {
19474
+ if (!salla.helpers.app.isValidEmail(this.loginEmail.value)) {
19499
19475
  this.validateField(this.loginEmail, this.emailErrorMsg);
19500
19476
  return;
19501
19477
  }
@@ -19629,7 +19605,7 @@ const SallaLoginModal = class {
19629
19605
  .finally(() => btn.stop() && btn.enable());
19630
19606
  }
19631
19607
  async newUserValidation() {
19632
- const isLogByPhone = this.regType == "phone", isLogByEmail = this.regType == "email", emailValue = this.regEmail.value || (isLogByEmail && this.loginEmail.value), isEmailValid = Helper$1.isValidEmail(emailValue), isFirstNameValid = this.firstName.value.length > 0, isLastNameValid = this.lastName.value.length > 0, isPhoneValid = await this.regTelInput.isValid() || isLogByPhone && await this.loginTelInput.isValid(), emailValidation = (emailValue && isEmailValid) || (!emailValue && !this.isEmailRequired);
19608
+ const isLogByPhone = this.regType == "phone", isLogByEmail = this.regType == "email", emailValue = this.regEmail.value || (isLogByEmail && this.loginEmail.value), isEmailValid = salla.helpers.app.isValidEmail(emailValue), isFirstNameValid = this.firstName.value.length > 0, isLastNameValid = this.lastName.value.length > 0, isPhoneValid = await this.regTelInput.isValid() || isLogByPhone && await this.loginTelInput.isValid(), emailValidation = (emailValue && isEmailValid) || (!emailValue && !this.isEmailRequired);
19633
19609
  if (emailValidation && isPhoneValid && isFirstNameValid && isLastNameValid)
19634
19610
  return;
19635
19611
  !isEmailValid && this.validateField(this.regEmail, this.emailErrorMsg);
@@ -19970,12 +19946,9 @@ const SallaModal = class {
19970
19946
  * Set the style of the header icon.
19971
19947
  */
19972
19948
  this.iconStyle = undefined;
19973
- Helper$1.setHost(this.host);
19974
19949
  salla.event.on('modal::open', target => target == this.host.id && this.open());
19975
19950
  salla.event.on('modal::close', target => target == this.host.id && this.close());
19976
19951
  this.modalTitle = this.host.getAttribute('modal-title');
19977
- // close modal on Escape button clicked
19978
- Helper$1.onKeyUp(document.body, e => e.keyCode === 27 && this.closeModal());
19979
19952
  }
19980
19953
  handleVisible(newValue) {
19981
19954
  if (!newValue) {
@@ -19987,6 +19960,11 @@ const SallaModal = class {
19987
19960
  this.host.classList.remove('s-hidden');
19988
19961
  setTimeout(() => this.toggleModal(true)); //small amont of time to running toggle After adding hidden
19989
19962
  }
19963
+ handleKeyUp(ev) {
19964
+ if (ev.key === "KeyUp") {
19965
+ this.closeModal();
19966
+ }
19967
+ }
19990
19968
  /**
19991
19969
  * Open the modal
19992
19970
  */
@@ -20025,7 +20003,7 @@ const SallaModal = class {
20025
20003
  }
20026
20004
  toggleModal(isOpen) {
20027
20005
  const body = this.host.querySelector('.s-modal-body');
20028
- Helper$1.toggleElementClassIf(body, 's-modal-entering', 's-modal-leaving', () => isOpen)
20006
+ salla.helpers.app.toggleElementClassIf(body, 's-modal-entering', 's-modal-leaving', () => isOpen)
20029
20007
  .toggleElementClassIf(this.overlay, 's-modal-entering', 's-modal-overlay-leaving', () => isOpen)
20030
20008
  .toggleElementClassIf(document.body, 'modal-is-open', 'modal-is-closed', () => isOpen);
20031
20009
  if (!isOpen) {
@@ -20054,7 +20032,7 @@ const SallaModal = class {
20054
20032
  render() {
20055
20033
  this.host.id = this.host.id || 'salla-modal';
20056
20034
  if (this.isLoading) {
20057
- return (index$1.h(index$1.Host, { class: 'salla-modal s-modal s-modal-container s-hidden', "aria-modal": "true", role: "dialog" }, index$1.h("div", { class: "s-modal-overlay", ref: el => this.overlay = el, onClick: () => this.closeModal() }), index$1.h("div", { class: "s-modal-wrapper" }, index$1.h("span", { class: 's-modal-spacer s-modal-align-' + this.position }, "\u200B"), index$1.h("div", { class: 's-modal-body ' + 's-modal-align-' + this.position + ' s-modal-' + this.getWidth() + (this.noPadding ? ' s-modal-nopadding' : ' s-modal-padding') }, index$1.h("slot", { name: "loading" }, index$1.h("salla-loading", null)), index$1.h("div", { class: "s-hidden" }, index$1.h("slot", null))))));
20035
+ return (index$1.h(index$1.Host, { class: 'salla-modal s-modal s-modal-container s-hidden', "aria-modal": "true", role: "dialog", onKeyUp: e => this.handleKeyUp(e) }, index$1.h("div", { class: "s-modal-overlay", ref: el => this.overlay = el, onClick: () => this.closeModal() }), index$1.h("div", { class: "s-modal-wrapper" }, index$1.h("span", { class: 's-modal-spacer s-modal-align-' + this.position }, "\u200B"), index$1.h("div", { class: 's-modal-body ' + 's-modal-align-' + this.position + ' s-modal-' + this.getWidth() + (this.noPadding ? ' s-modal-nopadding' : ' s-modal-padding') }, index$1.h("slot", { name: "loading" }, index$1.h("salla-loading", null)), index$1.h("div", { class: "s-hidden" }, index$1.h("slot", null))))));
20058
20036
  }
20059
20037
  return (index$1.h(index$1.Host, { class: 'salla-modal s-modal s-modal-container s-hidden', "aria-modal": "true", role: "dialog" }, index$1.h("div", { class: "s-modal-overlay", ref: el => this.overlay = el, onClick: () => this.closeModal() }), index$1.h("div", { class: "s-modal-wrapper" }, index$1.h("span", { class: 's-modal-spacer s-modal-align-' + this.position }, "\u200B"), index$1.h("div", { class: 's-modal-body ' + 's-modal-align-' + this.position + ' s-modal-' + this.getWidth() + (this.noPadding ? ' s-modal-nopadding' : ' s-modal-padding') }, index$1.h("div", { class: { 's-modal-header': true, 's-modal-is-center': this.centered } }, this.isClosable ?
20060
20038
  index$1.h("button", { class: "s-modal-close", onClick: () => this.closeModal(), type: "button" }, index$1.h("span", { innerHTML: Cancel }))
@@ -20111,13 +20089,12 @@ const SallaOfferModal = class {
20111
20089
  this.offer = null;
20112
20090
  this.hasError = false;
20113
20091
  this.translationLoaded = false;
20114
- Helper$1.setHost(this.host);
20115
20092
  salla.event.on('offer-modal::open', (product_id) => this.open(product_id));
20116
20093
  salla.lang.onLoaded(() => {
20117
20094
  this.translationLoaded = true;
20118
20095
  });
20119
- this.categorySlot = ((_a = Helper$1.getElement('[slot="category"]')) === null || _a === void 0 ? void 0 : _a.innerHTML) || `<span class="s-offer-modal-badge-icon">{tagIcon}</span><span class="s-offer-modal-badge-text">{name}</span>`;
20120
- this.productSlot = ((_b = Helper$1.getElement('[slot="product"]')) === null || _b === void 0 ? void 0 : _b.innerHTML) || this.defaultProductSlot();
20096
+ this.categorySlot = ((_a = this.host.querySelector('[slot="category"]')) === null || _a === void 0 ? void 0 : _a.innerHTML) || `<span class="s-offer-modal-badge-icon">{tagIcon}</span><span class="s-offer-modal-badge-text">{name}</span>`;
20097
+ this.productSlot = ((_b = this.host.querySelector('[slot="product"]')) === null || _b === void 0 ? void 0 : _b.innerHTML) || this.defaultProductSlot();
20121
20098
  salla.product.event.onOfferExisted(offer => {
20122
20099
  if (salla.storage.get('remember-offer-' + offer.id)) {
20123
20100
  salla.log('User selected to don\'t show this offer again.');
@@ -20294,7 +20271,7 @@ const sallaProductAvailabilityCss = "";
20294
20271
  const SallaProductAvailability = class {
20295
20272
  constructor(hostRef) {
20296
20273
  index$1.registerInstance(this, hostRef);
20297
- this.isUser = Helper$1.isUser();
20274
+ this.isUser = salla.config.isUser();
20298
20275
  this.translationLoaded = false;
20299
20276
  /**
20300
20277
  * product id that can visitor subscribe to its availability notification
@@ -20357,7 +20334,7 @@ const SallaProductAvailability = class {
20357
20334
  async validateform() {
20358
20335
  try {
20359
20336
  if (this.channels_.includes('email')) {
20360
- const isEmailValid = Helper$1.isValidEmail(this.email.value);
20337
+ const isEmailValid = salla.helpers.app.isValidEmail(this.email.value);
20361
20338
  if (isEmailValid)
20362
20339
  return;
20363
20340
  !isEmailValid && this.validateField(this.email, salla.lang.get('common.elements.email_is_valid'));
@@ -20405,7 +20382,6 @@ const SallaProductSizeGuide = class {
20405
20382
  constructor(hostRef) {
20406
20383
  index$1.registerInstance(this, hostRef);
20407
20384
  this.hasError = false;
20408
- Helper$1.setHost(document);
20409
20385
  salla.event.on('size-guide::open', (product_id) => this.open(product_id));
20410
20386
  salla.lang.onLoaded(() => {
20411
20387
  this.placeholder_title = salla.lang.get('pages.products.size_guide_placeholder');
@@ -20465,6 +20441,19 @@ const Minus = `<!-- Generated by IcoMoon.io -->
20465
20441
  </svg>
20466
20442
  `;
20467
20443
 
20444
+ //TODO::check why there are too much listeners for languages::translations.loaded
20445
+ salla.event.setMaxListeners(20);
20446
+ class Helper {
20447
+ debounce(fn, ...data) {
20448
+ if (!this.debounce_) {
20449
+ this.debounce_ = Salla.helpers.debounce((callback, ...innerData) => callback(...innerData), 500);
20450
+ }
20451
+ //@ts-ignore
20452
+ return this.debounce_(fn, ...data);
20453
+ }
20454
+ }
20455
+ const Helper$1 = new Helper;
20456
+
20468
20457
  const sallaQuantityInputCss = "";
20469
20458
 
20470
20459
  const SallaQuantityInput = class {
@@ -20569,7 +20558,6 @@ const SallaRatingModal = class {
20569
20558
  */
20570
20559
  this.orderId = salla.config.get('page.id');
20571
20560
  this.translationLoaded = false;
20572
- Helper$1.setHost(document);
20573
20561
  salla.event.on('rating::open', () => this.open());
20574
20562
  salla.lang.onLoaded(() => {
20575
20563
  this.translationLoaded = true;
@@ -20612,12 +20600,12 @@ const SallaRatingModal = class {
20612
20600
  showActiveStep(current = null) {
20613
20601
  var _a, _b;
20614
20602
  this.currentTab = current || this.steps[this.currentIndex];
20615
- Helper$1.toggleClassIf('.s-rating-modal-step-dot', 's-rating-modal-bg-gray', 's-rating-modal-bg-primary', dot => dot != this.dots[this.currentIndex])
20603
+ salla.helpers.app.toggleClassIf('.s-rating-modal-step-dot', 's-rating-modal-bg-gray', 's-rating-modal-bg-primary', dot => dot != this.dots[this.currentIndex])
20616
20604
  .toggleClassIf('.s-rating-modal-step', 's-rating-modal-active', 's-rating-modal-hidden', tab => tab == this.currentTab);
20617
20605
  if (this.currentIndex != 0) {
20618
20606
  // the animation
20619
- Helper$1.toggleElementClassIf(this.currentTab, 's-rating-modal-unactive', 's-rating-modal-hidden', () => true);
20620
- setTimeout(() => Helper$1.toggleElementClassIf(this.currentTab, 's-rating-modal-active', 's-rating-modal-unactive', () => true), 300);
20607
+ salla.helpers.app.toggleElementClassIf(this.currentTab, 's-rating-modal-unactive', 's-rating-modal-hidden', () => true);
20608
+ setTimeout(() => salla.helpers.app.toggleElementClassIf(this.currentTab, 's-rating-modal-active', 's-rating-modal-unactive', () => true), 300);
20621
20609
  }
20622
20610
  // Btn text
20623
20611
  let nextType = (_a = this.steps[this.currentIndex + 1]) === null || _a === void 0 ? void 0 : _a.dataset.type;
@@ -20627,7 +20615,7 @@ const SallaRatingModal = class {
20627
20615
  }
20628
20616
  previousTab() {
20629
20617
  this.currentIndex > 0 && this.currentIndex--;
20630
- Helper$1.toggleElementClassIf(this.backBtn, 's-rating-modal-unvisiable', 'block', () => this.currentIndex == 0);
20618
+ salla.helpers.app.toggleElementClassIf(this.backBtn, 's-rating-modal-unvisiable', 'block', () => this.currentIndex == 0);
20631
20619
  this.showActiveStep();
20632
20620
  }
20633
20621
  submit() {
@@ -20638,7 +20626,7 @@ const SallaRatingModal = class {
20638
20626
  .then(() => this.currentTab.querySelectorAll('[name],.s-rating-modal-btn-star').forEach(el => el.setAttribute('disabled', '')))
20639
20627
  .then(() => this.currentIndex < this.stepsCount && this.currentIndex++)
20640
20628
  .then(() => this.showActiveStep())
20641
- .then(() => Helper$1.toggleClassIf('#prev-btn', 'block', 's-rating-modal-unvisiable', () => true))
20629
+ .then(() => salla.helpers.app.toggleClassIf('#prev-btn', 'block', 's-rating-modal-unvisiable', () => true))
20642
20630
  .finally(() => {
20643
20631
  this.nextBtn.stop();
20644
20632
  salla.config.canLeave = true;
@@ -20663,7 +20651,7 @@ const SallaRatingModal = class {
20663
20651
  return;
20664
20652
  }
20665
20653
  type = type || rating['dataset'].type;
20666
- Helper$1.toggleElementClassIf(comment, 'save', 's-has-error', el => el.value.length > 3);
20654
+ salla.helpers.app.toggleElementClassIf(comment, 'save', 's-has-error', el => el.value.length > 3);
20667
20655
  throw validationMessage.innerHTML = stars
20668
20656
  ? (salla.lang.get('common.errors.not_less_than_chars', { chars: 4 }) + ' ' + comment.getAttribute('placeholder'))
20669
20657
  : salla.lang.get(`pages.rating.rate_${type}_stars`).replace(' (:item)', '');
@@ -20745,7 +20733,7 @@ const SallaRatingStars = class {
20745
20733
  this.startsElem.querySelector('.rating_hidden_input').value = selectedIndex;
20746
20734
  // Loop through each star, and add or remove the `.selected` class to toggle highlighting
20747
20735
  this.startsElem.querySelectorAll('.s-rating-stars-btn-star')
20748
- .forEach((star, index) => Helper$1.toggleElementClassIf(star, 's-rating-stars-selected', 's-rating-stars-unselected', () => index < parseInt(selectedIndex)));
20736
+ .forEach((star, index) => salla.helpers.app.toggleElementClassIf(star, 's-rating-stars-selected', 's-rating-stars-unselected', () => index < parseInt(selectedIndex)));
20749
20737
  // update aria-pressed attr status
20750
20738
  this.startsElem.querySelectorAll('[aria-pressed]').forEach(star => star.removeAttribute('aria-pressed'));
20751
20739
  selected.setAttribute('aria-pressed', 'true');
@@ -20812,8 +20800,7 @@ const SallaSearch = class {
20812
20800
  * Sets the height of the input
20813
20801
  */
20814
20802
  this.height = 60;
20815
- Helper$1.setHost(this.host);
20816
- this.productSlot = ((_a = Helper$1.getElement('[slot="product"]')) === null || _a === void 0 ? void 0 : _a.innerHTML) || this.getDefaultProductSlot();
20803
+ this.productSlot = ((_a = this.host.querySelector('[slot="product"]')) === null || _a === void 0 ? void 0 : _a.innerHTML) || this.getDefaultProductSlot();
20817
20804
  salla.event.on('search::open', () => this.open());
20818
20805
  salla.lang.onLoaded(() => {
20819
20806
  this.translationLoaded = true;
@@ -20863,7 +20850,7 @@ const SallaSearch = class {
20863
20850
  }
20864
20851
  }
20865
20852
  search(val) {
20866
- Helper$1.hideElement(this.noResults);
20853
+ salla.helpers.app.hideElement(this.noResults);
20867
20854
  //run loading spinner or stop it
20868
20855
  this.loading = true;
20869
20856
  salla.product.search(val)
@@ -20874,7 +20861,7 @@ const SallaSearch = class {
20874
20861
  afterSearching(isEmpty = true) {
20875
20862
  var _a;
20876
20863
  this.noResults.style.display = isEmpty || ((_a = this.results) === null || _a === void 0 ? void 0 : _a.data.length) > 0 ? 'none' : 'block';
20877
- Helper$1.toggleElementClassIf(this.container, 's-search-container-open', 's-search-no-results', () => { var _a; return (_a = this.results) === null || _a === void 0 ? void 0 : _a.data.length; });
20864
+ salla.helpers.app.toggleElementClassIf(this.container, 's-search-container-open', 's-search-no-results', () => { var _a; return (_a = this.results) === null || _a === void 0 ? void 0 : _a.data.length; });
20878
20865
  this.loading = false;
20879
20866
  salla.product.api.previousQuery = ''; //avoid having error 'Query is same as previous one!' after reopen modal;
20880
20867
  this.inputValue.length < 3 ? this.container.classList.remove('s-search-no-results') : '';
@@ -27591,7 +27578,6 @@ const SallaTelInput = class {
27591
27578
  this.invalidCountryCode = salla.lang.get('common.errors.invalid_value', { attribute: this.countryCodeLabel });
27592
27579
  this.invalidNumber = salla.lang.get('common.errors.invalid_value', { attribute: this.mobileLabel });
27593
27580
  this.errorMap = [this.invalidNumber, this.invalidCountryCode, this.tooShort, this.tooLong, this.invalidNumber];
27594
- Helper$1.setHost(this.host);
27595
27581
  salla.lang.onLoaded(() => {
27596
27582
  this.mobileLabel = salla.lang.get('common.elements.mobile');
27597
27583
  this.countryCodeLabel = salla.lang.get('common.elements.country_code');
@@ -27691,7 +27677,6 @@ const SallaVerify = class {
27691
27677
  constructor(hostRef) {
27692
27678
  index$1.registerInstance(this, hostRef);
27693
27679
  this.verified = index$1.createEvent(this, "verified", 7);
27694
- this.initiated = false;
27695
27680
  this.translationLoaded = false;
27696
27681
  /**
27697
27682
  * Should render component without modal
@@ -27714,7 +27699,6 @@ const SallaVerify = class {
27714
27699
  * to use: `salla.api.auth.verify` or `salla.profile.verify`
27715
27700
  */
27716
27701
  this.isProfileVerify = false;
27717
- // Helper.setHost(this.host);
27718
27702
  salla.lang.onLoaded(() => {
27719
27703
  var _a;
27720
27704
  this.translationLoaded = true;
@@ -27737,6 +27721,30 @@ const SallaVerify = class {
27737
27721
  this.timer.innerHTML = '30 : 00';
27738
27722
  });
27739
27723
  }
27724
+ handleKeyUp(ev) {
27725
+ var _a, _b, _c, _d;
27726
+ if (['Alt', 'Shift', 'Control', 'AltGraph', 'Ctrl'].includes(ev.key)) {
27727
+ return;
27728
+ }
27729
+ let key = ev.keyCode || ev.charCode;
27730
+ if (ev.target.value) {
27731
+ (_a = ev.target.nextElementSibling) === null || _a === void 0 ? void 0 : _a.focus();
27732
+ (_b = ev.target.nextElementSibling) === null || _b === void 0 ? void 0 : _b.select();
27733
+ }
27734
+ else if ([8, 46].includes(key)) {
27735
+ (_c = ev.target.previousElementSibling) === null || _c === void 0 ? void 0 : _c.focus();
27736
+ (_d = ev.target.previousElementSibling) === null || _d === void 0 ? void 0 : _d.select();
27737
+ }
27738
+ this.toggleOTPSubmit();
27739
+ }
27740
+ handlePaste(ev) {
27741
+ let text = salla.helpers.number(ev.clipboardData.getData('text'))
27742
+ .replace(/[^0-9.]/g, '')
27743
+ .replace('..', '.');
27744
+ this.otpInputs.forEach((input, i) => input.value = text[i] || '');
27745
+ this.toggleOTPSubmit();
27746
+ setTimeout(() => this.otpInputs[3].focus(), 100);
27747
+ }
27740
27748
  /**
27741
27749
  * Get current code
27742
27750
  * @return {string}
@@ -27755,30 +27763,6 @@ const SallaVerify = class {
27755
27763
  this.type = this.data.type;
27756
27764
  this.resendTimer();
27757
27765
  this.otpInputs = this.body.querySelectorAll('.s-verify-input');
27758
- if (!this.initiated) {
27759
- Helper$1.on('input', '.s-verify-input', e => salla.helpers.inputDigitsOnly(e.target));
27760
- Helper$1.onKeyUp('.s-verify-input', event => {
27761
- var _a, _b, _c, _d;
27762
- let key = event.keyCode || event.charCode;
27763
- if (event.target.value) {
27764
- (_a = event.target.nextElementSibling) === null || _a === void 0 ? void 0 : _a.focus();
27765
- (_b = event.target.nextElementSibling) === null || _b === void 0 ? void 0 : _b.select();
27766
- }
27767
- else if ([8, 46].includes(key)) {
27768
- (_c = event.target.previousElementSibling) === null || _c === void 0 ? void 0 : _c.focus();
27769
- (_d = event.target.previousElementSibling) === null || _d === void 0 ? void 0 : _d.select();
27770
- }
27771
- this.toggleOTPSubmit();
27772
- });
27773
- Helper$1.on('paste', '.s-verify-input', event => {
27774
- let text = salla.helpers.number(event.clipboardData.getData('text')).replace(/[^0-9.]/g, '').replace('..', '.');
27775
- this.otpInputs.forEach((input, i) => input.value = text[i] || '');
27776
- this.toggleOTPSubmit();
27777
- setTimeout(() => this.otpInputs[3].focus(), 100);
27778
- });
27779
- // return this.modal.open();
27780
- this.initiated = true;
27781
- }
27782
27766
  this.reset();
27783
27767
  this.display == 'modal' && ((_a = this.modal) === null || _a === void 0 ? void 0 : _a.setTitle(this.title));
27784
27768
  this.modal.open();
@@ -27802,12 +27786,12 @@ const SallaVerify = class {
27802
27786
  this.otpInputs[0].focus();
27803
27787
  }
27804
27788
  resendTimer() {
27805
- Helper$1.showElement(this.resendMessage).hideElement(this.resend);
27789
+ salla.helpers.app.showElement(this.resendMessage).hideElement(this.resend);
27806
27790
  this.resendAfter = 30;
27807
27791
  let timerId = setInterval(() => {
27808
27792
  if (this.resendAfter <= 0) {
27809
27793
  clearInterval(timerId);
27810
- Helper$1.hideElement(this.resendMessage).showElement(this.resend);
27794
+ salla.helpers.app.hideElement(this.resendMessage).showElement(this.resend);
27811
27795
  }
27812
27796
  else {
27813
27797
  this.timer.innerHTML = `${this.resendAfter >= 10 ? this.resendAfter : '0' + this.resendAfter} : 00`;
@@ -27844,7 +27828,7 @@ const SallaVerify = class {
27844
27828
  index$1.h("salla-modal", { width: "xs", class: "s-verify", ref: modal => this.modal = modal, "modal-title": this.title }, index$1.h("span", { slot: 'icon', innerHTML: AndroidPhoneIcon }), this.myBody());
27845
27829
  }
27846
27830
  myBody() {
27847
- return (index$1.h("div", { class: "s-verify-body", ref: body => this.body = body }, index$1.h("div", { class: "s-verify-message", innerHTML: salla.lang.get('pages.profile.verify_message') }), index$1.h("input", { type: "hidden", name: "code", maxlength: "4", required: true, ref: code => this.code = code }), index$1.h("div", { class: "s-verify-codes", dir: "ltr" }, [1, 2, 3, 4].map(() => index$1.h("input", { type: "tel", autocomplete: "one-time-code", pattern: "[0-9]*", inputmode: "numeric", maxlength: "1", class: "s-verify-input", required: true }))), index$1.h("div", { slot: "footer", class: "s-verify-footer" }, index$1.h("salla-button", { class: "s-verify-submit", "loader-position": 'center', disabled: true, onClick: () => this.submit(), ref: b => this.btn = b }, salla.lang.get('pages.profile.verify')), index$1.h("p", { class: "s-verify-resend-message", ref: el => this.resendMessage = el }, salla.lang.get('blocks.header.resend_after'), index$1.h("b", { class: "s-verify-timer", ref: el => this.timer = el }), " "), index$1.h("a", { href: "#", class: "s-verify-resend", onClick: () => this.resendCode(), ref: el => this.resend = el }, salla.lang.get('blocks.comments.submit'))), index$1.h("slot", { name: "after-footer" })));
27831
+ return (index$1.h("div", { class: "s-verify-body", ref: body => this.body = body }, index$1.h("div", { class: "s-verify-message", innerHTML: salla.lang.get('pages.profile.verify_message') }), index$1.h("input", { type: "hidden", name: "code", maxlength: "4", required: true, ref: code => this.code = code }), index$1.h("div", { class: "s-verify-codes", dir: "ltr" }, [1, 2, 3, 4].map(() => index$1.h("input", { type: "tel", autocomplete: "one-time-code", pattern: "[0-9]*", inputmode: "numeric", maxlength: "1", class: "s-verify-input", onInput: e => salla.helpers.inputDigitsOnly(e.target), onPaste: e => this.handlePaste(e), onKeyUp: e => this.handleKeyUp(e), required: true }))), index$1.h("div", { slot: "footer", class: "s-verify-footer" }, index$1.h("salla-button", { class: "s-verify-submit", "loader-position": 'center', disabled: true, onClick: () => this.submit(), ref: b => this.btn = b }, salla.lang.get('pages.profile.verify')), index$1.h("p", { class: "s-verify-resend-message", ref: el => this.resendMessage = el }, salla.lang.get('blocks.header.resend_after'), index$1.h("b", { class: "s-verify-timer", ref: el => this.timer = el })), index$1.h("a", { href: "#", class: "s-verify-resend", onClick: () => this.resendCode(), ref: el => this.resend = el }, salla.lang.get('blocks.comments.submit'))), index$1.h("slot", { name: "after-footer" })));
27848
27832
  }
27849
27833
  get host() { return index$1.getElement(this); }
27850
27834
  };
@@ -7,15 +7,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-cac2fd59.js');
9
9
 
10
- const sallaInstallmentCss = "#tabbyPromoWrapper{background:white;border-radius:0.375rem;-webkit-transition:-webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);margin-bottom:20px}.salla-y #tabbyPromoWrapper{border:1px solid var(--color-grey-dark);border-radius:12px}#tabbyPromoWrapper:hover{-webkit-box-shadow:0 0 #0000, 0 0 #0000, 5px 10px 30px #2B2D340D;box-shadow:0 0 #0000, 0 0 #0000, 5px 10px 30px #2B2D340D}#tabbyPromoWrapper #tabbyPromo *{font-family:var(--font-main)}#tabbyPromoWrapper #tabbyPromo>div>div{max-width:none;-webkit-box-shadow:none;box-shadow:none;border:none}#tabbyPromoWrapper #tabbyPromo .tabby-promo-snippet{max-width:100%;min-height:100px;padding:18px 20px;border:none !important}#tabbyPromoWrapper #tabbyPromo .tabby-promo-snippet__text,#tabbyPromoWrapper #tabbyPromo .tabby-promo-snippet__link{font-size:var(--font-sm);color:var(--color-text) !important}#tabbyPromoWrapper #tabbyPromo .tabby-promo-snippet__link{font-weight:bold}.tabby-promo-wrapper #tabby-promo{font-family:var(--font-main) !important}.tabby-promo-wrapper #tabby-promo .tabby-promo__feature-title{font-size:var(--font-md)}.tabby-promo-wrapper #tabby-promo .tabby-promo__feature-desc{font-size:var(--font-sm);line-height:20px}.tamara-product-widget{margin-bottom:20px}.tamara-product-widget,.spotii-wrapper{min-height:100px;position:relative;color:var(--color-text);font-size:var(--font-sm);line-height:1.25;padding:18px 20px 18px 100px !important;background:white;border-radius:0.375rem;-webkit-transition:-webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1)}.salla-y .tamara-product-widget,.salla-y .spotii-wrapper{border-radius:12px;border:1px solid var(--color-grey-dark)}.tamara-product-widget:hover,.spotii-wrapper:hover{-webkit-box-shadow:0 0 #0000, 0 0 #0000, 5px 10px 30px #2B2D340D;box-shadow:0 0 #0000, 0 0 #0000, 5px 10px 30px #2B2D340D}.tamara-product-widget .spotii-logo,.spotii-wrapper .spotii-logo{float:left;margin:0 0 0 -75px}.ltr .tamara-product-widget,.ltr .spotii-wrapper{text-align:left;padding:18px 100px 18px 20px !important}.ltr .tamara-product-widget .spotii-logo,.ltr .spotii-wrapper .spotii-logo{float:right;margin:0 -75px 0 0}.ltr .tamara-product-widget .spotii-product-widget,.ltr .spotii-wrapper .spotii-product-widget{text-align:left !important}.spotii-wrapper .spotii-promo{font-size:var(--font-md)}.spotii-wrapper .spotii-product-widget{font-size:var(--font-sm) !important;margin-top:10px}.tamara-product-widget .tamara-logo{position:absolute;left:20px;top:18px;margin:0 !important}.ltr .tamara-product-widget .tamara-logo{right:20px;left:auto}.tamara-product-widget span{font-family:var(--font-main);font-size:var(--font-sm);color:var(--color-text)}.tamara-product-widget span:last-child{display:block;position:relative;margin-top:8px}.tamara-popup__wrap{overflow:auto !important}";
10
+ const sallaInstallmentCss = "#tabbyPromoWrapper{background:white;border-radius:0.375rem;-webkit-transition:-webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);margin-bottom:20px}.salla-y #tabbyPromoWrapper{border:1px solid var(--color-grey-dark);border-radius:12px}#tabbyPromoWrapper:hover{-webkit-box-shadow:0 0 #0000, 0 0 #0000, 5px 10px 30px #2B2D340D;box-shadow:0 0 #0000, 0 0 #0000, 5px 10px 30px #2B2D340D}#tabbyPromoWrapper #tabbyPromo *{font-family:var(--font-main)}#tabbyPromoWrapper #tabbyPromo>div>div{max-width:none;-webkit-box-shadow:none;box-shadow:none;border:none}#tabbyPromoWrapper #tabbyPromo .tabby-promo-snippet{max-width:100%;min-height:100px;padding:18px 20px;border:none !important}#tabbyPromoWrapper #tabbyPromo .tabby-promo-snippet__text,#tabbyPromoWrapper #tabbyPromo .tabby-promo-snippet__link{font-size:var(--font-sm);color:var(--color-text) !important}#tabbyPromoWrapper #tabbyPromo .tabby-promo-snippet__link{font-weight:bold}.tabby-promo-wrapper #tabby-promo{font-family:var(--font-main) !important}.tabby-promo-wrapper #tabby-promo .tabby-promo__feature-title{font-size:var(--font-md)}.tabby-promo-wrapper #tabby-promo .tabby-promo__feature-desc{font-size:var(--font-sm);line-height:20px}.tamara-product-widget{margin-bottom:20px}.tamara-product-widget,.spotii-wrapper{min-height:100px;position:relative;color:var(--color-text);font-size:var(--font-sm);line-height:1.25;padding:18px 20px 18px 100px !important;background:white;border-radius:0.375rem;-webkit-transition:-webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1)}.salla-y .tamara-product-widget,.salla-y .spotii-wrapper{border-radius:12px;border:1px solid var(--color-grey-dark)}.tamara-product-widget:hover,.spotii-wrapper:hover{-webkit-box-shadow:0 0 #0000, 0 0 #0000, 5px 10px 30px #2B2D340D;box-shadow:0 0 #0000, 0 0 #0000, 5px 10px 30px #2B2D340D}.tamara-product-widget .spotii-logo,.spotii-wrapper .spotii-logo{float:left;margin:0 0 0 -75px}.ltr .tamara-product-widget,.ltr .spotii-wrapper{text-align:left;padding:18px 100px 18px 20px !important}.ltr .tamara-product-widget .spotii-logo,.ltr .spotii-wrapper .spotii-logo{float:right;margin:0 -75px 0 0}.ltr .tamara-product-widget .spotii-product-widget,.ltr .spotii-wrapper .spotii-product-widget{text-align:left !important}.spotii-wrapper{margin-bottom:20px}.spotii-wrapper .spotii-promo{font-size:var(--font-md)}.spotii-wrapper .spotii-product-widget{font-size:var(--font-sm) !important;margin-top:10px}.tamara-product-widget .tamara-logo{position:absolute;left:20px;top:18px;margin:0 !important}.ltr .tamara-product-widget .tamara-logo{right:20px;left:auto}.tamara-product-widget span{font-family:var(--font-main);font-size:var(--font-sm);color:var(--color-text)}.tamara-product-widget span:last-child{display:block;position:relative;margin-top:8px}.tamara-popup__wrap{overflow:auto !important}";
11
11
 
12
12
  const SallaInstallment = class {
13
13
  constructor(hostRef) {
14
14
  index.registerInstance(this, hostRef);
15
15
  this.tabbyBorderRemoved = false;
16
16
  this.tabbyRemoveBorderTries = 0;
17
- //todo:: this is patch, use better way😜
18
- this.readyToRender = false;
19
17
  /**
20
18
  * Language code
21
19
  */
@@ -34,7 +32,7 @@ const SallaInstallment = class {
34
32
  this.tabbyIsActive = installment.includes('tabby_installment');
35
33
  this.spotiiIsActive = installment.includes('spotii_pay');
36
34
  }
37
- this.readyToRender = true;
35
+ this.renderInstallments();
38
36
  });
39
37
  }
40
38
  render() {
@@ -46,10 +44,7 @@ const SallaInstallment = class {
46
44
  index.h("div", { class: "spotii-wrapper" }, index.h("div", { class: "spotii-promo" }))
47
45
  : ''));
48
46
  }
49
- componentDidRender() {
50
- if (!this.readyToRender) {
51
- return;
52
- }
47
+ renderInstallments() {
53
48
  // Tamara
54
49
  if (this.tamaraIsActive) {
55
50
  var script = document.createElement('script');
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-cac2fd59.js');
7
- require('./index-a7bec25d.js');
7
+ require('./index-69a7a6c7.js');
8
8
  require('./_commonjsHelpers-691dd63b.js');
9
9
 
10
10
  /*
@@ -77,5 +77,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
77
77
  };
78
78
 
79
79
  patchBrowser().then(options => {
80
- return index.bootstrapLazy(JSON.parse("[[\"salla-button_27.cjs\",[[4,\"salla-gifting\",{\"productId\":[2,\"product-id\"],\"sectionTitle\":[32],\"sectionSubtitle\":[32],\"sectionBtnText\":[32],\"giftDetails\":[32],\"selectImageForYourGift\":[32],\"selectImageOrUpload\":[32],\"selectGiftMessage\":[32],\"giftCustomText\":[32],\"textId\":[32],\"incorrectGiftText\":[32],\"nextStep\":[32],\"senderNameLabel\":[32],\"receiverNameFieldLabel\":[32],\"receiverMobileFieldLabel\":[32],\"receiverEmailFieldLabel\":[32],\"emailPlaceholder\":[32],\"sendLater\":[32],\"selectSendDateAndTime\":[32],\"canNotEditOrderAfterSelectDate\":[32],\"sendGift\":[32],\"donationRequired\":[32],\"step1Elems\":[32],\"step2Elems\":[32],\"stepsWrapper\":[32],\"textArea\":[32],\"imageCover\":[32],\"textSelect\":[32],\"customTextArea\":[32],\"calendarFormGroup\":[32],\"currentStep\":[32],\"showCalendar\":[32],\"showGiftText\":[32],\"currentLang\":[32],\"parentClass\":[32],\"errors\":[32],\"gift\":[32],\"selectedGiftTextOption\":[32],\"showTextArea\":[32],\"selectedImage\":[32],\"uploadedImage\":[32],\"selectedText\":[32],\"senderName\":[32],\"errorMessage\":[32],\"hasError\":[32],\"quantity\":[32],\"deliveryDate\":[32],\"timeZone\":[32],\"receiverName\":[32],\"receiverMobile\":[32],\"receiverCountryCode\":[32],\"receiverEmail\":[32],\"open\":[64],\"close\":[64],\"goToStep2\":[64]}],[4,\"salla-loyalty\",{\"prizePoints\":[8,\"prize-points\"],\"customerPoints\":[2,\"customer-points\"],\"prizeTitle\":[1,\"prize-title\"],\"allowEmail\":[4,\"allow-email\"],\"allowMobile\":[4,\"allow-mobile\"],\"requireEmail\":[4,\"require-email\"],\"guestMessage\":[1,\"guest-message\"],\"loyaltyProgram\":[32],\"buttonLoading\":[32],\"selectedItem\":[32],\"askConfirmation\":[32],\"is_loggedin\":[32],\"hasError\":[32],\"errorMessage\":[32],\"translationLoaded\":[32],\"open\":[64],\"close\":[64],\"resetExchange\":[64],\"exchangeLoyaltyPoint\":[64]}],[4,\"salla-product-size-guide\",{\"guides\":[32],\"productId\":[32],\"placeholder_title\":[32],\"placeholder_description\":[32],\"modal_title\":[32],\"hasError\":[32],\"open\":[64],\"close\":[64]}],[0,\"salla-localization-modal\",{\"language\":[1537],\"currency\":[1537],\"translationLoaded\":[32],\"languages\":[32],\"currencies\":[32],\"hasError\":[32],\"errorMessage\":[32],\"open\":[64],\"close\":[64],\"submit\":[64]}],[4,\"salla-login-modal\",{\"isEmailAllowed\":[1028,\"is-email-allowed\"],\"isMobileAllowed\":[1028,\"is-mobile-allowed\"],\"isEmailRequired\":[1028,\"is-email-required\"],\"supportWebAuth\":[516,\"support-web-auth\"],\"currentTabName\":[32],\"regType\":[32],\"translationLoaded\":[32],\"title\":[32],\"emailErrorMsg\":[32],\"firstNameErrorMsg\":[32],\"lastNameErrorMsg\":[32],\"open\":[64]},[[8,\"verified\",\"onVerified\"]]],[0,\"salla-offer-modal\",{\"offer\":[32],\"offer_name\":[32],\"offer_message\":[32],\"hasError\":[32],\"errorMessage\":[32],\"translationLoaded\":[32],\"open\":[64],\"showOffer\":[64]}],[0,\"salla-rating-modal\",{\"orderId\":[2,\"order-id\"],\"order\":[32],\"hasError\":[32],\"errorMessage\":[32],\"translationLoaded\":[32],\"open\":[64],\"close\":[64]}],[0,\"salla-search\",{\"inline\":[4],\"oval\":[4],\"height\":[2],\"translationLoaded\":[32],\"results\":[32],\"loading\":[32],\"typing\":[32],\"debounce\":[32],\"search_term\":[32]},[[0,\"keydown\",\"handleKeyDown\"]]],[4,\"salla-social-share\",{\"url\":[513],\"urlName\":[513,\"url-name\"],\"platforms\":[16],\"opened\":[32],\"allPlatforms\":[32],\"platformIcons\":[32],\"open\":[64]}],[4,\"salla-infinite-scroll\",{\"nextPage\":[1,\"next-page\"],\"autoload\":[1028],\"container\":[1],\"item\":[1],\"loadMore\":[32],\"noMore\":[32],\"failedToLoad\":[32]}],[4,\"salla-quantity-input\",{\"quantity\":[32],\"decrease\":[64],\"increase\":[64],\"setValue\":[64]}],[0,\"salla-product-availability\",{\"channels\":[1],\"productId\":[2,\"product-id\"],\"isSubscribed\":[1028,\"is-subscribed\"],\"translationLoaded\":[32],\"title_\":[32],\"isVisitorSubscribed\":[32]}],[4,\"salla-verify\",{\"display\":[1],\"type\":[1025],\"autoReload\":[4,\"auto-reload\"],\"supportWebAuth\":[4,\"support-web-auth\"],\"translationLoaded\":[32],\"title\":[32],\"resendAfter\":[32],\"isProfileVerify\":[32],\"getCode\":[64],\"open\":[64]}],[0,\"salla-datetime-picker\",{\"value\":[1025],\"placeholder\":[1],\"allowInput\":[4,\"allow-input\"],\"allowInvalidPreload\":[4,\"allow-invalid-preload\"],\"altFormat\":[1,\"alt-format\"],\"altInput\":[4,\"alt-input\"],\"altInputClass\":[1,\"alt-input-class\"],\"appendTo\":[16],\"ariaDateFormat\":[1,\"aria-date-format\"],\"autoFillDefaultTime\":[4,\"auto-fill-default-time\"],\"clickOpens\":[4,\"click-opens\"],\"closeOnSelect\":[4,\"close-on-select\"],\"conjunction\":[1],\"dateFormat\":[1,\"date-format\"],\"defaultDate\":[8,\"default-date\"],\"defaultHour\":[2,\"default-hour\"],\"defaultMinute\":[2,\"default-minute\"],\"defaultSeconds\":[2,\"default-seconds\"],\"disable\":[16],\"disableMobile\":[4,\"disable-mobile\"],\"enable\":[16],\"enableSeconds\":[4,\"enable-seconds\"],\"enableTime\":[4,\"enable-time\"],\"formatDate\":[16],\"hourIncrement\":[2,\"hour-increment\"],\"inline\":[4],\"locale\":[1],\"maxDate\":[8,\"max-date\"],\"maxTime\":[8,\"max-time\"],\"minDate\":[8,\"min-date\"],\"minTime\":[8,\"min-time\"],\"minuteIncrement\":[2,\"minute-increment\"],\"mode\":[1],\"monthSelectorType\":[1,\"month-selector-type\"],\"nextArrow\":[1,\"next-arrow\"],\"noCalendar\":[4,\"no-calendar\"],\"onChange\":[16],\"onClose\":[16],\"onDayCreate\":[16],\"onDestroy\":[16],\"onKeyDown\":[16],\"onMonthChange\":[16],\"onOpen\":[16],\"onParseConfig\":[16],\"onReady\":[16],\"onValueUpdate\":[16],\"onYearChange\":[16],\"dateParser\":[16],\"position\":[1],\"positionElement\":[16],\"prevArrow\":[1,\"prev-arrow\"],\"shorthandCurrentMonth\":[4,\"shorthand-current-month\"],\"static\":[4],\"showMonths\":[2,\"show-months\"],\"time_24hr\":[4,\"time_-2-4hr\"],\"weekNumbers\":[4,\"week-numbers\"],\"wrap\":[4]}],[0,\"salla-file-upload\",{\"required\":[4],\"disabled\":[4],\"allowDrop\":[4,\"allow-drop\"],\"allowBrowse\":[4,\"allow-browse\"],\"allowPaste\":[4,\"allow-paste\"],\"allowMultiple\":[4,\"allow-multiple\"],\"allowReplace\":[4,\"allow-replace\"],\"allowRevert\":[4,\"allow-revert\"],\"allowRemove\":[4,\"allow-remove\"],\"allowProcess\":[4,\"allow-process\"],\"allowReorder\":[4,\"allow-reorder\"],\"storeAsFile\":[4,\"store-as-file\"],\"forceRevert\":[4,\"force-revert\"],\"maxFilesCount\":[2,\"max-files-count\"],\"maxParallelUploads\":[2,\"max-parallel-uploads\"],\"checkValidity\":[4,\"check-validity\"],\"itemInsertLocation\":[1,\"item-insert-location\"],\"itemInsertInterval\":[2,\"item-insert-interval\"],\"credits\":[4],\"dropOnPage\":[4,\"drop-on-page\"],\"dropOnElement\":[4,\"drop-on-element\"],\"dropValidation\":[4,\"drop-validation\"],\"ignoredFiles\":[16],\"serverConfig\":[1,\"server-config\"],\"instantUpload\":[4,\"instant-upload\"],\"chunkUploads\":[4,\"chunk-uploads\"],\"chunkForce\":[4,\"chunk-force\"],\"chunkSize\":[2,\"chunk-size\"],\"chunkRetryDelays\":[16],\"labelDecimalSeparator\":[1,\"label-decimal-separator\"],\"labelThousandsSeparator\":[1,\"label-thousands-separator\"],\"labelIdle\":[1,\"label-idle\"],\"labelInvalidField\":[1,\"label-invalid-field\"],\"labelFileWaitingForSize\":[1,\"label-file-waiting-for-size\"],\"labelFileSizeNotAvailable\":[1,\"label-file-size-not-available\"],\"labelFileLoading\":[1,\"label-file-loading\"],\"labelFileLoadError\":[1,\"label-file-load-error\"],\"labelFileProcessing\":[1,\"label-file-processing\"],\"labelFileProcessingComplete\":[1,\"label-file-processing-complete\"],\"labelFileProcessingAborted\":[1,\"label-file-processing-aborted\"],\"labelFileProcessingError\":[1,\"label-file-processing-error\"],\"labelFileProcessingRevertError\":[1,\"label-file-processing-revert-error\"],\"labelFileRemoveError\":[1,\"label-file-remove-error\"],\"labelTapToCancel\":[1,\"label-tap-to-cancel\"],\"labelTapToRetry\":[1,\"label-tap-to-retry\"],\"labelTapToUndo\":[1,\"label-tap-to-undo\"],\"labelButtonRemoveItem\":[1,\"label-button-remove-item\"],\"labelButtonAbortItemLoad\":[1,\"label-button-abort-item-load\"],\"labelButtonRetryItemLoad\":[1,\"label-button-retry-item-load\"],\"labelButtonAbortItemProcessing\":[1,\"label-button-abort-item-processing\"],\"labelButtonUndoItemProcessing\":[1,\"label-button-undo-item-processing\"],\"labelButtonRetryItemProcessing\":[1,\"label-button-retry-item-processing\"],\"labelButtonProcessItem\":[1,\"label-button-process-item\"],\"iconRemove\":[1,\"icon-remove\"],\"iconProcess\":[1,\"icon-process\"],\"iconRetry\":[1,\"icon-retry\"],\"iconUndo\":[1,\"icon-undo\"],\"pond\":[32],\"files\":[32],\"appendFile\":[64]}],[0,\"salla-rating-stars\",{\"name\":[1],\"size\":[1],\"value\":[2]}],[4,\"salla-swiper\",{\"loop\":[4],\"speed\":[2],\"itemPerView\":[8,\"item-per-view\"],\"spaceBetweenItems\":[2,\"space-between-items\"],\"currentIndex\":[32],\"isLastSlideItem\":[32],\"isFirstSlideItem\":[32]}],[4,\"salla-tab-content\",{\"name\":[1],\"isSelected\":[32],\"getChild\":[64]}],[4,\"salla-tab-header\",{\"name\":[1],\"activeClass\":[1,\"active-class\"],\"height\":[8],\"centered\":[4],\"isSelected\":[32],\"getChild\":[64]}],[4,\"salla-tabs\",{\"backgroundColor\":[1,\"background-color\"],\"vertical\":[4]},[[0,\"tabSelected\",\"onSelectedTab\"]]],[4,\"salla-list-tile\",{\"href\":[1],\"target\":[1]}],[0,\"salla-tel-input\",{\"phone\":[1025],\"name\":[1],\"countryCode\":[1025,\"country-code\"],\"mobileRequired\":[32],\"countryCodeLabel\":[32],\"mobileLabel\":[32],\"tooShort\":[32],\"tooLong\":[32],\"invalidCountryCode\":[32],\"invalidNumber\":[32],\"errorMap\":[32],\"getValues\":[64],\"isValid\":[64]}],[4,\"salla-placeholder\",{\"icon\":[1],\"alignment\":[1],\"iconSize\":[1,\"icon-size\"],\"translationLoaded\":[32]}],[0,\"salla-skeleton\",{\"type\":[1],\"width\":[1],\"height\":[1]}],[4,\"salla-modal\",{\"isClosable\":[1028,\"is-closable\"],\"width\":[513],\"position\":[513],\"visible\":[516],\"hasSkeleton\":[516,\"has-skeleton\"],\"isLoading\":[1540,\"is-loading\"],\"subTitleFirst\":[4,\"sub-title-first\"],\"noPadding\":[4,\"no-padding\"],\"subTitle\":[1,\"sub-title\"],\"centered\":[4],\"iconStyle\":[1,\"icon-style\"],\"modalTitle\":[32],\"open\":[64],\"close\":[64],\"setTitle\":[64],\"loading\":[64],\"stopLoading\":[64]}],[4,\"salla-button\",{\"shape\":[513],\"color\":[513],\"fill\":[513],\"size\":[513],\"width\":[513],\"loading\":[516],\"disabled\":[516],\"loaderPosition\":[1,\"loader-position\"],\"href\":[1],\"load\":[64],\"stop\":[64],\"setText\":[64],\"disable\":[64],\"enable\":[64]}],[0,\"salla-loading\",{\"size\":[8],\"width\":[8],\"color\":[1],\"bgColor\":[1,\"bg-color\"]}]]],[\"salla-scopes.cjs\",[[4,\"salla-scopes\",{\"selection\":[1],\"searchDisplayLimit\":[2,\"search-display-limit\"],\"translationLoaded\":[32],\"mode\":[32],\"current_scope\":[32],\"scopes\":[32],\"originalScopesList\":[32],\"selected_scope\":[32],\"isOpenedBefore\":[32],\"hasError\":[32],\"close\":[64],\"open\":[64],\"handleSubmit\":[64]}]]],[\"salla-add-product-button.cjs\",[[4,\"salla-add-product-button\",{\"channels\":[513],\"quantity\":[514],\"donatingAmount\":[514,\"donating-amount\"],\"productId\":[520,\"product-id\"],\"productStatus\":[513,\"product-status\"],\"productType\":[513,\"product-type\"]}]]],[\"salla-conditional-fields.cjs\",[[4,\"salla-conditional-fields\",null,[[0,\"change\",\"changeHandler\"]]]]],[\"salla-installment.cjs\",[[0,\"salla-installment\",{\"price\":[1],\"language\":[1],\"currency\":[1],\"tamaraIsActive\":[32],\"tabbyIsActive\":[32],\"spotiiIsActive\":[32]}]]],[\"salla-loyalty-prize-item.cjs\",[[0,\"salla-loyalty-prize-item\",{\"item\":[16]}]]],[\"salla-select.cjs\",[[0,\"salla-select\",{\"label\":[1],\"items\":[16],\"itemText\":[1,\"item-text\"],\"itemValue\":[1,\"item-value\"],\"itemDisabled\":[1,\"item-disabled\"],\"size\":[1],\"value\":[1032],\"autofocus\":[4],\"clearable\":[4],\"clearIcon\":[1,\"clear-icon\"],\"color\":[1],\"flat\":[4],\"disabled\":[4],\"loading\":[4],\"loadingColor\":[1,\"loading-color\"],\"hint\":[1],\"persistHint\":[4,\"persist-hint\"],\"placeholder\":[1],\"multiple\":[4],\"autocomplete\":[4],\"required\":[4],\"chips\":[4],\"shape\":[1],\"returnObject\":[4,\"return-object\"],\"hideDetail\":[4,\"hide-detail\"]}]]]]"), options);
80
+ return index.bootstrapLazy(JSON.parse("[[\"salla-button_27.cjs\",[[4,\"salla-gifting\",{\"productId\":[2,\"product-id\"],\"sectionTitle\":[32],\"sectionSubtitle\":[32],\"sectionBtnText\":[32],\"giftDetails\":[32],\"selectImageForYourGift\":[32],\"selectImageOrUpload\":[32],\"selectGiftMessage\":[32],\"giftCustomText\":[32],\"textId\":[32],\"incorrectGiftText\":[32],\"nextStep\":[32],\"senderNameLabel\":[32],\"receiverNameFieldLabel\":[32],\"receiverMobileFieldLabel\":[32],\"receiverEmailFieldLabel\":[32],\"emailPlaceholder\":[32],\"sendLater\":[32],\"selectSendDateAndTime\":[32],\"canNotEditOrderAfterSelectDate\":[32],\"sendGift\":[32],\"donationRequired\":[32],\"step1Elems\":[32],\"step2Elems\":[32],\"stepsWrapper\":[32],\"textArea\":[32],\"imageCover\":[32],\"textSelect\":[32],\"customTextArea\":[32],\"calendarFormGroup\":[32],\"currentStep\":[32],\"showCalendar\":[32],\"showGiftText\":[32],\"currentLang\":[32],\"parentClass\":[32],\"errors\":[32],\"gift\":[32],\"selectedGiftTextOption\":[32],\"showTextArea\":[32],\"selectedImage\":[32],\"uploadedImage\":[32],\"selectedText\":[32],\"senderName\":[32],\"errorMessage\":[32],\"hasError\":[32],\"quantity\":[32],\"deliveryDate\":[32],\"timeZone\":[32],\"receiverName\":[32],\"receiverMobile\":[32],\"receiverCountryCode\":[32],\"receiverEmail\":[32],\"open\":[64],\"close\":[64],\"goToStep2\":[64]}],[4,\"salla-loyalty\",{\"prizePoints\":[8,\"prize-points\"],\"customerPoints\":[2,\"customer-points\"],\"prizeTitle\":[1,\"prize-title\"],\"allowEmail\":[4,\"allow-email\"],\"allowMobile\":[4,\"allow-mobile\"],\"requireEmail\":[4,\"require-email\"],\"guestMessage\":[1,\"guest-message\"],\"loyaltyProgram\":[32],\"buttonLoading\":[32],\"selectedItem\":[32],\"askConfirmation\":[32],\"is_loggedin\":[32],\"hasError\":[32],\"errorMessage\":[32],\"translationLoaded\":[32],\"open\":[64],\"close\":[64],\"resetExchange\":[64],\"exchangeLoyaltyPoint\":[64]}],[4,\"salla-product-size-guide\",{\"guides\":[32],\"productId\":[32],\"placeholder_title\":[32],\"placeholder_description\":[32],\"modal_title\":[32],\"hasError\":[32],\"open\":[64],\"close\":[64]}],[0,\"salla-localization-modal\",{\"language\":[1537],\"currency\":[1537],\"translationLoaded\":[32],\"languages\":[32],\"currencies\":[32],\"hasError\":[32],\"errorMessage\":[32],\"open\":[64],\"close\":[64],\"submit\":[64]}],[4,\"salla-login-modal\",{\"isEmailAllowed\":[1028,\"is-email-allowed\"],\"isMobileAllowed\":[1028,\"is-mobile-allowed\"],\"isEmailRequired\":[1028,\"is-email-required\"],\"supportWebAuth\":[516,\"support-web-auth\"],\"currentTabName\":[32],\"regType\":[32],\"translationLoaded\":[32],\"title\":[32],\"emailErrorMsg\":[32],\"firstNameErrorMsg\":[32],\"lastNameErrorMsg\":[32],\"open\":[64]},[[8,\"verified\",\"onVerified\"]]],[0,\"salla-offer-modal\",{\"offer\":[32],\"offer_name\":[32],\"offer_message\":[32],\"hasError\":[32],\"errorMessage\":[32],\"translationLoaded\":[32],\"open\":[64],\"showOffer\":[64]}],[0,\"salla-rating-modal\",{\"orderId\":[2,\"order-id\"],\"order\":[32],\"hasError\":[32],\"errorMessage\":[32],\"translationLoaded\":[32],\"open\":[64],\"close\":[64]}],[0,\"salla-search\",{\"inline\":[4],\"oval\":[4],\"height\":[2],\"translationLoaded\":[32],\"results\":[32],\"loading\":[32],\"typing\":[32],\"debounce\":[32],\"search_term\":[32]},[[0,\"keydown\",\"handleKeyDown\"]]],[4,\"salla-social-share\",{\"url\":[513],\"urlName\":[513,\"url-name\"],\"platforms\":[16],\"opened\":[32],\"allPlatforms\":[32],\"platformIcons\":[32],\"open\":[64]}],[4,\"salla-infinite-scroll\",{\"nextPage\":[1,\"next-page\"],\"autoload\":[1028],\"container\":[1],\"item\":[1],\"loadMore\":[32],\"noMore\":[32],\"failedToLoad\":[32]}],[4,\"salla-quantity-input\",{\"quantity\":[32],\"decrease\":[64],\"increase\":[64],\"setValue\":[64]}],[0,\"salla-product-availability\",{\"channels\":[1],\"productId\":[2,\"product-id\"],\"isSubscribed\":[1028,\"is-subscribed\"],\"translationLoaded\":[32],\"title_\":[32],\"isVisitorSubscribed\":[32]}],[4,\"salla-verify\",{\"display\":[1],\"type\":[1025],\"autoReload\":[4,\"auto-reload\"],\"supportWebAuth\":[4,\"support-web-auth\"],\"translationLoaded\":[32],\"title\":[32],\"resendAfter\":[32],\"isProfileVerify\":[32],\"getCode\":[64],\"open\":[64]}],[0,\"salla-datetime-picker\",{\"value\":[1025],\"placeholder\":[1],\"allowInput\":[4,\"allow-input\"],\"allowInvalidPreload\":[4,\"allow-invalid-preload\"],\"altFormat\":[1,\"alt-format\"],\"altInput\":[4,\"alt-input\"],\"altInputClass\":[1,\"alt-input-class\"],\"appendTo\":[16],\"ariaDateFormat\":[1,\"aria-date-format\"],\"autoFillDefaultTime\":[4,\"auto-fill-default-time\"],\"clickOpens\":[4,\"click-opens\"],\"closeOnSelect\":[4,\"close-on-select\"],\"conjunction\":[1],\"dateFormat\":[1,\"date-format\"],\"defaultDate\":[8,\"default-date\"],\"defaultHour\":[2,\"default-hour\"],\"defaultMinute\":[2,\"default-minute\"],\"defaultSeconds\":[2,\"default-seconds\"],\"disable\":[16],\"disableMobile\":[4,\"disable-mobile\"],\"enable\":[16],\"enableSeconds\":[4,\"enable-seconds\"],\"enableTime\":[4,\"enable-time\"],\"formatDate\":[16],\"hourIncrement\":[2,\"hour-increment\"],\"inline\":[4],\"locale\":[1],\"maxDate\":[8,\"max-date\"],\"maxTime\":[8,\"max-time\"],\"minDate\":[8,\"min-date\"],\"minTime\":[8,\"min-time\"],\"minuteIncrement\":[2,\"minute-increment\"],\"mode\":[1],\"monthSelectorType\":[1,\"month-selector-type\"],\"nextArrow\":[1,\"next-arrow\"],\"noCalendar\":[4,\"no-calendar\"],\"onChange\":[16],\"onClose\":[16],\"onDayCreate\":[16],\"onDestroy\":[16],\"onKeyDown\":[16],\"onMonthChange\":[16],\"onOpen\":[16],\"onParseConfig\":[16],\"onReady\":[16],\"onValueUpdate\":[16],\"onYearChange\":[16],\"dateParser\":[16],\"position\":[1],\"positionElement\":[16],\"prevArrow\":[1,\"prev-arrow\"],\"shorthandCurrentMonth\":[4,\"shorthand-current-month\"],\"static\":[4],\"showMonths\":[2,\"show-months\"],\"time_24hr\":[4,\"time_-2-4hr\"],\"weekNumbers\":[4,\"week-numbers\"],\"wrap\":[4]}],[0,\"salla-file-upload\",{\"required\":[4],\"disabled\":[4],\"allowDrop\":[4,\"allow-drop\"],\"allowBrowse\":[4,\"allow-browse\"],\"allowPaste\":[4,\"allow-paste\"],\"allowMultiple\":[4,\"allow-multiple\"],\"allowReplace\":[4,\"allow-replace\"],\"allowRevert\":[4,\"allow-revert\"],\"allowRemove\":[4,\"allow-remove\"],\"allowProcess\":[4,\"allow-process\"],\"allowReorder\":[4,\"allow-reorder\"],\"storeAsFile\":[4,\"store-as-file\"],\"forceRevert\":[4,\"force-revert\"],\"maxFilesCount\":[2,\"max-files-count\"],\"maxParallelUploads\":[2,\"max-parallel-uploads\"],\"checkValidity\":[4,\"check-validity\"],\"itemInsertLocation\":[1,\"item-insert-location\"],\"itemInsertInterval\":[2,\"item-insert-interval\"],\"credits\":[4],\"dropOnPage\":[4,\"drop-on-page\"],\"dropOnElement\":[4,\"drop-on-element\"],\"dropValidation\":[4,\"drop-validation\"],\"ignoredFiles\":[16],\"serverConfig\":[1,\"server-config\"],\"instantUpload\":[4,\"instant-upload\"],\"chunkUploads\":[4,\"chunk-uploads\"],\"chunkForce\":[4,\"chunk-force\"],\"chunkSize\":[2,\"chunk-size\"],\"chunkRetryDelays\":[16],\"labelDecimalSeparator\":[1,\"label-decimal-separator\"],\"labelThousandsSeparator\":[1,\"label-thousands-separator\"],\"labelIdle\":[1,\"label-idle\"],\"labelInvalidField\":[1,\"label-invalid-field\"],\"labelFileWaitingForSize\":[1,\"label-file-waiting-for-size\"],\"labelFileSizeNotAvailable\":[1,\"label-file-size-not-available\"],\"labelFileLoading\":[1,\"label-file-loading\"],\"labelFileLoadError\":[1,\"label-file-load-error\"],\"labelFileProcessing\":[1,\"label-file-processing\"],\"labelFileProcessingComplete\":[1,\"label-file-processing-complete\"],\"labelFileProcessingAborted\":[1,\"label-file-processing-aborted\"],\"labelFileProcessingError\":[1,\"label-file-processing-error\"],\"labelFileProcessingRevertError\":[1,\"label-file-processing-revert-error\"],\"labelFileRemoveError\":[1,\"label-file-remove-error\"],\"labelTapToCancel\":[1,\"label-tap-to-cancel\"],\"labelTapToRetry\":[1,\"label-tap-to-retry\"],\"labelTapToUndo\":[1,\"label-tap-to-undo\"],\"labelButtonRemoveItem\":[1,\"label-button-remove-item\"],\"labelButtonAbortItemLoad\":[1,\"label-button-abort-item-load\"],\"labelButtonRetryItemLoad\":[1,\"label-button-retry-item-load\"],\"labelButtonAbortItemProcessing\":[1,\"label-button-abort-item-processing\"],\"labelButtonUndoItemProcessing\":[1,\"label-button-undo-item-processing\"],\"labelButtonRetryItemProcessing\":[1,\"label-button-retry-item-processing\"],\"labelButtonProcessItem\":[1,\"label-button-process-item\"],\"iconRemove\":[1,\"icon-remove\"],\"iconProcess\":[1,\"icon-process\"],\"iconRetry\":[1,\"icon-retry\"],\"iconUndo\":[1,\"icon-undo\"],\"pond\":[32],\"files\":[32],\"appendFile\":[64]}],[0,\"salla-rating-stars\",{\"name\":[1],\"size\":[1],\"value\":[2]}],[4,\"salla-swiper\",{\"loop\":[4],\"speed\":[2],\"itemPerView\":[8,\"item-per-view\"],\"spaceBetweenItems\":[2,\"space-between-items\"],\"currentIndex\":[32],\"isLastSlideItem\":[32],\"isFirstSlideItem\":[32]}],[4,\"salla-tab-content\",{\"name\":[1],\"isSelected\":[32],\"getChild\":[64]}],[4,\"salla-tab-header\",{\"name\":[1],\"activeClass\":[1,\"active-class\"],\"height\":[8],\"centered\":[4],\"isSelected\":[32],\"getChild\":[64]}],[4,\"salla-tabs\",{\"backgroundColor\":[1,\"background-color\"],\"vertical\":[4]},[[0,\"tabSelected\",\"onSelectedTab\"]]],[4,\"salla-list-tile\",{\"href\":[1],\"target\":[1]}],[0,\"salla-tel-input\",{\"phone\":[1025],\"name\":[1],\"countryCode\":[1025,\"country-code\"],\"mobileRequired\":[32],\"countryCodeLabel\":[32],\"mobileLabel\":[32],\"tooShort\":[32],\"tooLong\":[32],\"invalidCountryCode\":[32],\"invalidNumber\":[32],\"errorMap\":[32],\"getValues\":[64],\"isValid\":[64]}],[4,\"salla-placeholder\",{\"icon\":[1],\"alignment\":[1],\"iconSize\":[1,\"icon-size\"],\"translationLoaded\":[32]}],[0,\"salla-skeleton\",{\"type\":[1],\"width\":[1],\"height\":[1]}],[4,\"salla-modal\",{\"isClosable\":[1028,\"is-closable\"],\"width\":[513],\"position\":[513],\"visible\":[516],\"hasSkeleton\":[516,\"has-skeleton\"],\"isLoading\":[1540,\"is-loading\"],\"subTitleFirst\":[4,\"sub-title-first\"],\"noPadding\":[4,\"no-padding\"],\"subTitle\":[1,\"sub-title\"],\"centered\":[4],\"iconStyle\":[1,\"icon-style\"],\"modalTitle\":[32],\"open\":[64],\"close\":[64],\"setTitle\":[64],\"loading\":[64],\"stopLoading\":[64]},[[0,\"keyup\",\"handleKeyUp\"]]],[4,\"salla-button\",{\"shape\":[513],\"color\":[513],\"fill\":[513],\"size\":[513],\"width\":[513],\"loading\":[516],\"disabled\":[516],\"loaderPosition\":[1,\"loader-position\"],\"href\":[1],\"load\":[64],\"stop\":[64],\"setText\":[64],\"disable\":[64],\"enable\":[64]}],[0,\"salla-loading\",{\"size\":[8],\"width\":[8],\"color\":[1],\"bgColor\":[1,\"bg-color\"]}]]],[\"salla-scopes.cjs\",[[4,\"salla-scopes\",{\"selection\":[1],\"searchDisplayLimit\":[2,\"search-display-limit\"],\"translationLoaded\":[32],\"mode\":[32],\"current_scope\":[32],\"scopes\":[32],\"originalScopesList\":[32],\"selected_scope\":[32],\"isOpenedBefore\":[32],\"hasError\":[32],\"close\":[64],\"open\":[64],\"handleSubmit\":[64]}]]],[\"salla-add-product-button.cjs\",[[4,\"salla-add-product-button\",{\"channels\":[513],\"quantity\":[514],\"donatingAmount\":[514,\"donating-amount\"],\"productId\":[520,\"product-id\"],\"productStatus\":[513,\"product-status\"],\"productType\":[513,\"product-type\"]}]]],[\"salla-conditional-fields.cjs\",[[4,\"salla-conditional-fields\",null,[[0,\"change\",\"changeHandler\"]]]]],[\"salla-installment.cjs\",[[0,\"salla-installment\",{\"price\":[1],\"language\":[1],\"currency\":[1],\"tamaraIsActive\":[32],\"tabbyIsActive\":[32],\"spotiiIsActive\":[32]}]]],[\"salla-loyalty-prize-item.cjs\",[[0,\"salla-loyalty-prize-item\",{\"item\":[16]}]]],[\"salla-select.cjs\",[[0,\"salla-select\",{\"label\":[1],\"items\":[16],\"itemText\":[1,\"item-text\"],\"itemValue\":[1,\"item-value\"],\"itemDisabled\":[1,\"item-disabled\"],\"size\":[1],\"value\":[1032],\"autofocus\":[4],\"clearable\":[4],\"clearIcon\":[1,\"clear-icon\"],\"color\":[1],\"flat\":[4],\"disabled\":[4],\"loading\":[4],\"loadingColor\":[1,\"loading-color\"],\"hint\":[1],\"persistHint\":[4,\"persist-hint\"],\"placeholder\":[1],\"multiple\":[4],\"autocomplete\":[4],\"required\":[4],\"chips\":[4],\"shape\":[1],\"returnObject\":[4,\"return-object\"],\"hideDetail\":[4,\"hide-detail\"]}]]]]"), options);
81
81
  });
@@ -1,24 +1,15 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- class Helper extends salla.AppHelpers {
5
- setHost(host) {
6
- // @ts-ignore
7
- this.host = host;
8
- }
9
- getElement(selector) {
10
- // @ts-ignore
11
- return this.host.querySelector(selector);
12
- }
13
- getAttribute(selector, attribute) {
14
- var _a;
15
- return (_a = this.getElement(selector)) === null || _a === void 0 ? void 0 : _a.getAttribute(attribute);
16
- }
17
- val(selector) {
18
- return this.getAttribute(selector, 'value');
19
- }
20
- isUser() {
21
- return salla.config.get('user.type') === 'user';
4
+ //TODO::check why there are too much listeners for languages::translations.loaded
5
+ salla.event.setMaxListeners(20);
6
+ class Helper {
7
+ debounce(fn, ...data) {
8
+ if (!this.debounce_) {
9
+ this.debounce_ = Salla.helpers.debounce((callback, ...innerData) => callback(...innerData), 500);
10
+ }
11
+ //@ts-ignore
12
+ return this.debounce_(fn, ...data);
22
13
  }
23
14
  }
24
15
  export default new Helper;
@@ -2,7 +2,6 @@
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
4
  import { Component, Element, h, Host, Prop, State } from '@stencil/core';
5
- import Helper from "../../Helpers/Helper";
6
5
  /**
7
6
  */
8
7
  export class SallaInfiniteScroll {
@@ -23,7 +22,6 @@ export class SallaInfiniteScroll {
23
22
  * Class selector to know list items
24
23
  */
25
24
  this.item = 'salla-infinite-scroll > *';
26
- Helper.setHost(this.host);
27
25
  this.status = document.createElement('div');
28
26
  this.status.className = 's-infinite-scroll-wrapper';
29
27
  this.status.innerHTML = `<div class="s-infinite-scroll-status" style="display:none">
@@ -43,7 +41,7 @@ export class SallaInfiniteScroll {
43
41
  }
44
42
  loading(isLoading = true) {
45
43
  let btnText = this.status.querySelector('.s-button-text');
46
- Helper.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);
44
+ salla.helpers.app.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);
47
45
  this.btnLoader.style.display = isLoading ? 'inherit' : 'none';
48
46
  }
49
47
  render() {
@@ -100,6 +100,9 @@
100
100
  text-align: left !important;
101
101
  }
102
102
 
103
+ .spotii-wrapper {
104
+ margin-bottom: 20px;
105
+ }
103
106
  .spotii-wrapper .spotii-promo {
104
107
  font-size: var(--font-md);
105
108
  }
@@ -6,8 +6,6 @@ export class SallaInstallment {
6
6
  constructor() {
7
7
  this.tabbyBorderRemoved = false;
8
8
  this.tabbyRemoveBorderTries = 0;
9
- //todo:: this is patch, use better way😜
10
- this.readyToRender = false;
11
9
  /**
12
10
  * Language code
13
11
  */
@@ -26,7 +24,7 @@ export class SallaInstallment {
26
24
  this.tabbyIsActive = installment.includes('tabby_installment');
27
25
  this.spotiiIsActive = installment.includes('spotii_pay');
28
26
  }
29
- this.readyToRender = true;
27
+ this.renderInstallments();
30
28
  });
31
29
  }
32
30
  render() {
@@ -43,10 +41,7 @@ export class SallaInstallment {
43
41
  h("div", { class: "spotii-promo" }))
44
42
  : ''));
45
43
  }
46
- componentDidRender() {
47
- if (!this.readyToRender) {
48
- return;
49
- }
44
+ renderInstallments() {
50
45
  // Tamara
51
46
  if (this.tamaraIsActive) {
52
47
  var script = document.createElement('script');