@salla.sa/twilight-components 2.13.96 → 2.13.97

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 (26) hide show
  1. package/dist/cjs/app-globals-c5340b59.js.map +1 -1
  2. package/dist/cjs/salla-add-product-button_48.cjs.entry.js +2 -2
  3. package/dist/cjs/salla-add-product-button_48.cjs.entry.js.map +1 -1
  4. package/dist/collection/components/salla-add-product-button/salla-add-product-button.js +2 -2
  5. package/dist/collection/components/salla-add-product-button/salla-add-product-button.js.map +1 -1
  6. package/dist/components/index.js.map +1 -1
  7. package/dist/components/salla-add-product-button2.js +2 -2
  8. package/dist/components/salla-add-product-button2.js.map +1 -1
  9. package/dist/components/salla-quick-buy2.js.map +1 -1
  10. package/dist/esm/app-globals-0280e1d0.js.map +1 -1
  11. package/dist/esm/salla-add-product-button_48.entry.js +2 -2
  12. package/dist/esm/salla-add-product-button_48.entry.js.map +1 -1
  13. package/dist/esm-es5/app-globals-0280e1d0.js.map +1 -1
  14. package/dist/esm-es5/salla-add-product-button_48.entry.js +1 -1
  15. package/dist/esm-es5/salla-add-product-button_48.entry.js.map +1 -1
  16. package/dist/twilight/p-4a9df09e.js.map +1 -1
  17. package/dist/twilight/p-4c2194e3.system.js.map +1 -1
  18. package/dist/twilight/{p-c612fde8.entry.js → p-4cae1c1f.entry.js} +2 -2
  19. package/dist/twilight/p-4cae1c1f.entry.js.map +1 -0
  20. package/dist/twilight/p-54e1a882.system.js +1 -1
  21. package/dist/twilight/{p-903962d6.system.entry.js → p-cd6e56bb.system.entry.js} +2 -2
  22. package/dist/twilight/p-cd6e56bb.system.entry.js.map +1 -0
  23. package/dist/twilight/twilight.esm.js +1 -1
  24. package/package.json +5 -5
  25. package/dist/twilight/p-903962d6.system.entry.js.map +0 -1
  26. package/dist/twilight/p-c612fde8.entry.js.map +0 -1
@@ -142,8 +142,8 @@ export class SallaAddProductButton {
142
142
  's-add-product-button-with-apple-pay': this.showQuickBuy && this.isApplePayActive
143
143
  } }, h("div", { class: {
144
144
  's-add-product-button-main': this.showQuickBuy,
145
- 'w-full': !document.getElementById('fast-checkout-js'), // This is a temporary fix until all themes fully support the fast checkout -- To be removed later
146
- } }, h("salla-button", Object.assign({ color: this.productStatus === 'sale' ? 'primary' : 'light', type: "button", fill: this.productStatus === 'sale' ? 'solid' : 'outline', ref: el => this.btn = el, onClick: event => this.addProductToCart(event), disabled: this.productStatus !== 'sale' }, this.getBtnAttributes(), { "loader-position": "center" }), h("slot", null)), this.showQuickBuy && !!document.getElementById('fast-checkout-js') ? this.miniCheckoutWidget() : ''), this.showQuickBuy && this.isApplePayActive ? h("salla-quick-buy", Object.assign({}, this.getQuickBuyBtnAttributes())) : '');
145
+ 'w-full': !document.getElementById('fast-checkout-js') || this.productType == 'donating', // This is a temporary fix until all themes fully support the fast checkout -- To be removed later
146
+ } }, h("salla-button", Object.assign({ color: this.productStatus === 'sale' ? 'primary' : 'light', type: "button", fill: this.productStatus === 'sale' ? 'solid' : 'outline', ref: el => this.btn = el, onClick: event => this.addProductToCart(event), disabled: this.productStatus !== 'sale' }, this.getBtnAttributes(), { "loader-position": "center" }), h("slot", null)), this.showQuickBuy && !!document.getElementById('fast-checkout-js') && this.productType !== 'donating' ? this.miniCheckoutWidget() : ''), this.showQuickBuy && this.isApplePayActive ? h("salla-quick-buy", Object.assign({}, this.getQuickBuyBtnAttributes())) : '');
147
147
  }
148
148
  componentDidLoad() {
149
149
  if (!this.notifyOptionsAvailability) {
@@ -1 +1 @@
1
- {"version":3,"file":"salla-add-product-button.js","sourceRoot":"","sources":["../../../src/components/salla-add-product-button/salla-add-product-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, State, Event, EventEmitter, Host, Prop, h } from '@stencil/core';\nimport Cart from '../../assets/svg/cart.svg';\n// import SallaIcon from '../../assets/svg/salla.svg';\nimport WalletIcon from '../../assets/svg/full-wallet.svg';\n\n@Component({\n tag: 'salla-add-product-button',\n styleUrl: 'salla-add-product-button.css'\n})\nexport class SallaAddProductButton {\n constructor() {\n salla.lang.onLoaded(() => {\n this.buyNowText = salla.lang.get('pages.products.buy_now');\n });\n }\n\n private hostAttributes: any = {};\n private btn?: HTMLSallaButtonElement;\n private passedLabel: string;\n\n /**\n * Channels.\n */\n @Prop({ reflect: true }) channels: string;\n\n /**\n * Subscribed Options ex: \"[[139487,2394739],[1212,1544]]\"\n */\n @Prop() subscribedOptions: string;\n\n /**\n * Support Quick Pay Button\n */\n @Prop({ reflect: true, mutable: true }) quickBuy: boolean;\n\n /**\n * Product Quantity\n */\n @Prop({ reflect: true }) quantity: number;\n\n /**\n * Donating amount.\n */\n @Prop({ reflect: true }) donatingAmount: number;\n\n /**\n * Listen to product options availability.\n */\n @Prop({ reflect: true }) notifyOptionsAvailability: boolean;\n\n /**\n * Product id\n */\n @Prop({ reflect: true }) productId;\n\n /**\n * Support themes that have a sticky bar\n */\n @Prop({ reflect: true }) supportStickyBar: boolean;\n /**\n * Product Status.Defaults to `sale`\n */\n @Prop({ reflect: true }) productStatus: 'sale' | 'out' | 'out-and-notify' = 'sale';\n\n /**\n * Product type. Defaults to `product`\n */\n @Prop({ reflect: true }) productType: 'product' | 'service' | 'codes' | 'digital' | 'food' | 'donating' | 'group_products' | 'booking' = 'product';\n\n /**\n * Custome DOM event emitter when product gets added to cart successfully.\n */\n @Event() success: EventEmitter;\n\n @State() hasOutOfStockOption: boolean;\n\n @State() hasSubscribedOptions: boolean;\n\n @State() selectedOptions: Array<any> = [];\n @State() showQuickBuy: boolean;\n @State() isApplePayActive: boolean;\n @State() buyNowText: string = salla.lang.get('pages.products.buy_now');\n\n /**\n * Custome DOM event emitter when product addition to cart fails.\n */\n @Event() failed: EventEmitter;\n\n @Element() host: HTMLElement;\n\n private getLabel() {\n if (this.productStatus === 'sale' && this.supportStickyBar && window.innerWidth <= 768 && this.showQuickBuy && this.isApplePayActive) {\n return Cart;\n }\n\n if (this.productStatus === 'sale' && this.productType === 'booking') {\n return salla.lang.get('pages.cart.book_now');\n }\n\n if (this.productStatus === 'sale') {\n return salla.lang.get('pages.cart.add_to_cart');\n }\n\n if (this.productType !== 'donating') {\n return salla.lang.get('pages.products.out_of_stock');\n }\n\n // donating\n return salla.lang.get('pages.products.donation_exceed');\n }\n\n private addProductToCart(event) {\n\n if (this.productType === 'booking') {\n event.preventDefault();\n return this.addBookingProduct();\n }\n\n // we want to ignore the click action when the type of button is submit a form\n if (this.hostAttributes.type === 'submit') {\n return false;\n }\n event.preventDefault();\n\n this.btn?.disable();\n /**\n * by default the quick add is just an alias for add item function\n * but its work only when the id is the only value is passed via the object\n * so we will filter the object entities to remove null and zero values in case we don't want the normal add item action\n */\n const data: any = Object.entries({\n id: this.productId,\n donation_amount: this.donatingAmount,\n quantity: this.quantity,\n endpoint: 'quickAdd'\n }).reduce((a, [k, v]) => (v ? (a[k] = v, a) : a), {})\n return salla.cart.addItem(data)\n .then(response => {\n this.selectedOptions = [];\n this.btn?.enable();\n this.success.emit(response);\n })\n .catch(error => { this.failed.emit(error); this.btn?.enable(); });\n }\n\n private addBookingProduct() {\n if (salla.config.isGuest()) {\n salla.auth.api.setAfterLoginEvent('booking::add', this.productId);\n salla.event.dispatch('login::open');\n return;\n }\n return salla.booking.add(this.productId)\n .then(resp => this.success.emit(resp))\n .catch(error => this.failed.emit(error))\n }\n\n private getBtnAttributes() {\n for (let i = 0; i < this.host.attributes.length; i++) {\n if (!['id', 'class'].includes(this.host.attributes[i].name)) {\n this.hostAttributes[this.host.attributes[i].name] = this.host.attributes[i].value;\n }\n }\n\n return this.hostAttributes;\n }\n\n private getQuickBuyBtnAttributes() {\n return {\n ...this.getBtnAttributes(),\n type: this.supportStickyBar && window.innerWidth <= 768 ? 'plain' : this.productType == 'donating' ? 'donate' : 'buy'\n }\n }\n private miniCheckoutWidget() {\n let storeId = salla.config.get('store.id');\n if (!storeId) {\n return;\n }\n return <salla-mini-checkout-widget\n language={salla.lang.locale}\n store-id={storeId}\n config={{user:salla.config.get('user')}}\n products={[this.productId]}\n api={salla.config.get('store.api')}\n outline\n form-selector=\"form.product-form\"\n class=\"s-add-product-button-mini-checkout\"\n >\n {/* {window.innerWidth <= 768 && this.isApplePayActive && this.supportStickyBar ? <div slot=\"widget-label\">\n <span innerHTML={SallaIcon}></span>\n </div> : ''} */} \n\n <div slot=\"widget-label\" class=\"s-add-product-button-mini-checkout-content\">\n <span innerHTML={WalletIcon}></span>\n {this.buyNowText}\n </div>\n </salla-mini-checkout-widget>\n }\n\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => {\n this.showQuickBuy = this.quickBuy\n && salla.config.get('store.settings.buy_now')\n && this.productStatus == 'sale'\n && this.productType !== 'booking';\n\n this.isApplePayActive = window.ApplePaySession?.canMakePayments()\n && salla.config.get('store.settings.payments')?.includes('apple_pay')\n && salla.config.get('store.settings.is_salla_gateway', false);\n\n this.passedLabel = this.host.innerHTML.replace('<!---->', '').trim();\n if (!!this.passedLabel && window.innerWidth >= 768) {\n return this.btn?.setText(this.passedLabel);\n }\n \n if (this.host.getAttribute('type') === 'submit' && this.supportStickyBar) {\n window.addEventListener('resize', () => this.btn?.setText((window.innerWidth >= 768 && !!this.passedLabel) ? this.passedLabel : this.getLabel()));\n }\n })\n }\n\n\n render() {\n //TODO:: find a better fix, this is a patch for issue that duplicates the buttons more than twice @see the screenshot inside this folder\n if (this.host.closest('.swiper-slide')?.classList.contains('swiper-slide-duplicate')) {\n return ''\n }\n if (this.hasSubscribedOptions) {\n return <Host>\n <salla-product-availability {...this.getBtnAttributes()} is-subscribed={true}>\n <span class=\"s-hidden\"><slot /></span>\n </salla-product-availability>\n </Host>;\n }\n\n if ((this.productStatus === 'out-and-notify' && this.channels) || this.hasOutOfStockOption) {\n return <Host>\n <salla-product-availability {...this.getBtnAttributes()}>\n <span class=\"s-hidden\"><slot /></span>\n </salla-product-availability>\n </Host>;\n }\n\n return <Host class={{\n 's-add-product-button-with-quick-buy': this.showQuickBuy,\n 's-add-product-button-with-sticky-bar': this.supportStickyBar,\n 's-add-product-button-with-apple-pay': this.showQuickBuy && this.isApplePayActive\n }}>\n <div class={{\n 's-add-product-button-main': this.showQuickBuy,\n 'w-full': !document.getElementById('fast-checkout-js'), // This is a temporary fix until all themes fully support the fast checkout -- To be removed later\n }}>\n <salla-button color={this.productStatus === 'sale' ? 'primary' : 'light'}\n type=\"button\"\n fill={this.productStatus === 'sale' ? 'solid' : 'outline'}\n ref={el => this.btn = el as HTMLSallaButtonElement}\n onClick={event => this.addProductToCart(event)}\n disabled={this.productStatus !== 'sale'}\n {...this.getBtnAttributes()}\n loader-position=\"center\"\n >\n <slot />\n </salla-button>\n {this.showQuickBuy && !!document.getElementById('fast-checkout-js') ? this.miniCheckoutWidget() : ''}\n </div>\n {this.showQuickBuy && this.isApplePayActive ? <salla-quick-buy {...this.getQuickBuyBtnAttributes()} /> : ''}\n </Host>;\n }\n\n componentDidLoad() {\n if (!this.notifyOptionsAvailability) {\n return;\n }\n\n salla.event.on('product-options::change', async data => {\n if (!['thumbnail', 'color', 'single-option'].includes(data.option.type)) {\n return;\n }\n this.hasSubscribedOptions = false;\n this.selectedOptions = await (document.querySelector(`salla-product-options[product-id=\"${this.productId}\"]`) as any)?.getSelectedOptions();\n this.hasOutOfStockOption = await (document.querySelector(`salla-product-options[product-id=\"${this.productId}\"]`) as any)?.hasOutOfStockOption();\n let subscribedDetails = salla.storage.get(`product-${this.productId}-subscribed-options`);\n\n if (!subscribedDetails && !this.subscribedOptions || !this.hasOutOfStockOption) {\n return;\n }\n\n if (salla.config.isGuest()) {\n const parsedSubscribedDetails = subscribedDetails ? subscribedDetails.map(ids => ids.split(',').map(id => parseInt(id))) : [];\n\n this.hasSubscribedOptions = parsedSubscribedDetails.length > 0 && parsedSubscribedDetails.some(ids =>\n ids.every(id => this.selectedOptions.some(option => option.id === id))\n );\n } else {\n this.hasSubscribedOptions = this.subscribedOptions && this.subscribedOptions !== 'null' && this.subscribedOptions !== '[]' ? JSON.parse(this.subscribedOptions).some(ids =>\n ids.every(id => this.selectedOptions.some(option => option.id === id))\n ) : false;\n }\n });\n\n\n }\n\n componentDidRender(): void {\n //if label not passed, get label\n if (!!this.passedLabel && (!this.supportStickyBar || window.innerWidth >= 768)) {\n // if passed label, set it\n this.btn?.setText(this.passedLabel)\n return;\n }\n this.btn?.setText(this.getLabel())\n\n salla.lang.onLoaded(() => this.btn?.setText(this.getLabel()));\n }\n}\n"]}
1
+ {"version":3,"file":"salla-add-product-button.js","sourceRoot":"","sources":["../../../src/components/salla-add-product-button/salla-add-product-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, State, Event, EventEmitter, Host, Prop, h } from '@stencil/core';\nimport Cart from '../../assets/svg/cart.svg';\n// import SallaIcon from '../../assets/svg/salla.svg';\nimport WalletIcon from '../../assets/svg/full-wallet.svg';\n\n@Component({\n tag: 'salla-add-product-button',\n styleUrl: 'salla-add-product-button.css'\n})\nexport class SallaAddProductButton {\n constructor() {\n salla.lang.onLoaded(() => {\n this.buyNowText = salla.lang.get('pages.products.buy_now');\n });\n }\n\n private hostAttributes: any = {};\n private btn?: HTMLSallaButtonElement;\n private passedLabel: string;\n\n /**\n * Channels.\n */\n @Prop({ reflect: true }) channels: string;\n\n /**\n * Subscribed Options ex: \"[[139487,2394739],[1212,1544]]\"\n */\n @Prop() subscribedOptions: string;\n\n /**\n * Support Quick Pay Button\n */\n @Prop({ reflect: true, mutable: true }) quickBuy: boolean;\n\n /**\n * Product Quantity\n */\n @Prop({ reflect: true }) quantity: number;\n\n /**\n * Donating amount.\n */\n @Prop({ reflect: true }) donatingAmount: number;\n\n /**\n * Listen to product options availability.\n */\n @Prop({ reflect: true }) notifyOptionsAvailability: boolean;\n\n /**\n * Product id\n */\n @Prop({ reflect: true }) productId;\n\n /**\n * Support themes that have a sticky bar\n */\n @Prop({ reflect: true }) supportStickyBar: boolean;\n /**\n * Product Status.Defaults to `sale`\n */\n @Prop({ reflect: true }) productStatus: 'sale' | 'out' | 'out-and-notify' = 'sale';\n\n /**\n * Product type. Defaults to `product`\n */\n @Prop({ reflect: true }) productType: 'product' | 'service' | 'codes' | 'digital' | 'food' | 'donating' | 'group_products' | 'booking' = 'product';\n\n /**\n * Custome DOM event emitter when product gets added to cart successfully.\n */\n @Event() success: EventEmitter;\n\n @State() hasOutOfStockOption: boolean;\n\n @State() hasSubscribedOptions: boolean;\n\n @State() selectedOptions: Array<any> = [];\n @State() showQuickBuy: boolean;\n @State() isApplePayActive: boolean;\n @State() buyNowText: string = salla.lang.get('pages.products.buy_now');\n\n /**\n * Custome DOM event emitter when product addition to cart fails.\n */\n @Event() failed: EventEmitter;\n\n @Element() host: HTMLElement;\n\n private getLabel() {\n if (this.productStatus === 'sale' && this.supportStickyBar && window.innerWidth <= 768 && this.showQuickBuy && this.isApplePayActive) {\n return Cart;\n }\n\n if (this.productStatus === 'sale' && this.productType === 'booking') {\n return salla.lang.get('pages.cart.book_now');\n }\n\n if (this.productStatus === 'sale') {\n return salla.lang.get('pages.cart.add_to_cart');\n }\n\n if (this.productType !== 'donating') {\n return salla.lang.get('pages.products.out_of_stock');\n }\n\n // donating\n return salla.lang.get('pages.products.donation_exceed');\n }\n\n private addProductToCart(event) {\n\n if (this.productType === 'booking') {\n event.preventDefault();\n return this.addBookingProduct();\n }\n\n // we want to ignore the click action when the type of button is submit a form\n if (this.hostAttributes.type === 'submit') {\n return false;\n }\n event.preventDefault();\n\n this.btn?.disable();\n /**\n * by default the quick add is just an alias for add item function\n * but its work only when the id is the only value is passed via the object\n * so we will filter the object entities to remove null and zero values in case we don't want the normal add item action\n */\n const data: any = Object.entries({\n id: this.productId,\n donation_amount: this.donatingAmount,\n quantity: this.quantity,\n endpoint: 'quickAdd'\n }).reduce((a, [k, v]) => (v ? (a[k] = v, a) : a), {})\n return salla.cart.addItem(data)\n .then(response => {\n this.selectedOptions = [];\n this.btn?.enable();\n this.success.emit(response);\n })\n .catch(error => { this.failed.emit(error); this.btn?.enable(); });\n }\n\n private addBookingProduct() {\n if (salla.config.isGuest()) {\n salla.auth.api.setAfterLoginEvent('booking::add', this.productId);\n salla.event.dispatch('login::open');\n return;\n }\n return salla.booking.add(this.productId)\n .then(resp => this.success.emit(resp))\n .catch(error => this.failed.emit(error))\n }\n\n private getBtnAttributes() {\n for (let i = 0; i < this.host.attributes.length; i++) {\n if (!['id', 'class'].includes(this.host.attributes[i].name)) {\n this.hostAttributes[this.host.attributes[i].name] = this.host.attributes[i].value;\n }\n }\n\n return this.hostAttributes;\n }\n\n private getQuickBuyBtnAttributes() {\n return {\n ...this.getBtnAttributes(),\n type: this.supportStickyBar && window.innerWidth <= 768 ? 'plain' : this.productType == 'donating' ? 'donate' : 'buy'\n }\n }\n private miniCheckoutWidget() {\n let storeId = salla.config.get('store.id');\n if (!storeId) {\n return;\n }\n return <salla-mini-checkout-widget\n language={salla.lang.locale}\n store-id={storeId}\n config={{user:salla.config.get('user')}}\n products={[this.productId]}\n api={salla.config.get('store.api')}\n outline\n form-selector=\"form.product-form\"\n class=\"s-add-product-button-mini-checkout\"\n >\n {/* {window.innerWidth <= 768 && this.isApplePayActive && this.supportStickyBar ? <div slot=\"widget-label\">\n <span innerHTML={SallaIcon}></span>\n </div> : ''} */} \n\n <div slot=\"widget-label\" class=\"s-add-product-button-mini-checkout-content\">\n <span innerHTML={WalletIcon}></span>\n {this.buyNowText}\n </div>\n </salla-mini-checkout-widget>\n }\n\n\n componentWillLoad() {\n return salla.onReady()\n .then(() => {\n this.showQuickBuy = this.quickBuy\n && salla.config.get('store.settings.buy_now')\n && this.productStatus == 'sale'\n && this.productType !== 'booking';\n\n this.isApplePayActive = window.ApplePaySession?.canMakePayments()\n && salla.config.get('store.settings.payments')?.includes('apple_pay')\n && salla.config.get('store.settings.is_salla_gateway', false);\n\n this.passedLabel = this.host.innerHTML.replace('<!---->', '').trim();\n if (!!this.passedLabel && window.innerWidth >= 768) {\n return this.btn?.setText(this.passedLabel);\n }\n \n if (this.host.getAttribute('type') === 'submit' && this.supportStickyBar) {\n window.addEventListener('resize', () => this.btn?.setText((window.innerWidth >= 768 && !!this.passedLabel) ? this.passedLabel : this.getLabel()));\n }\n })\n }\n\n\n render() {\n //TODO:: find a better fix, this is a patch for issue that duplicates the buttons more than twice @see the screenshot inside this folder\n if (this.host.closest('.swiper-slide')?.classList.contains('swiper-slide-duplicate')) {\n return ''\n }\n if (this.hasSubscribedOptions) {\n return <Host>\n <salla-product-availability {...this.getBtnAttributes()} is-subscribed={true}>\n <span class=\"s-hidden\"><slot /></span>\n </salla-product-availability>\n </Host>;\n }\n\n if ((this.productStatus === 'out-and-notify' && this.channels) || this.hasOutOfStockOption) {\n return <Host>\n <salla-product-availability {...this.getBtnAttributes()}>\n <span class=\"s-hidden\"><slot /></span>\n </salla-product-availability>\n </Host>;\n }\n\n return <Host class={{\n 's-add-product-button-with-quick-buy': this.showQuickBuy,\n 's-add-product-button-with-sticky-bar': this.supportStickyBar,\n 's-add-product-button-with-apple-pay': this.showQuickBuy && this.isApplePayActive\n }}>\n <div class={{\n 's-add-product-button-main': this.showQuickBuy,\n 'w-full': !document.getElementById('fast-checkout-js') || this.productType == 'donating', // This is a temporary fix until all themes fully support the fast checkout -- To be removed later\n }}>\n <salla-button color={this.productStatus === 'sale' ? 'primary' : 'light'}\n type=\"button\"\n fill={this.productStatus === 'sale' ? 'solid' : 'outline'}\n ref={el => this.btn = el as HTMLSallaButtonElement}\n onClick={event => this.addProductToCart(event)}\n disabled={this.productStatus !== 'sale'}\n {...this.getBtnAttributes()}\n loader-position=\"center\"\n >\n <slot />\n </salla-button>\n {this.showQuickBuy && !!document.getElementById('fast-checkout-js') && this.productType !== 'donating' ? this.miniCheckoutWidget() : ''}\n </div>\n {this.showQuickBuy && this.isApplePayActive ? <salla-quick-buy {...this.getQuickBuyBtnAttributes()} /> : ''}\n </Host>;\n }\n\n componentDidLoad() {\n if (!this.notifyOptionsAvailability) {\n return;\n }\n\n salla.event.on('product-options::change', async data => {\n if (!['thumbnail', 'color', 'single-option'].includes(data.option.type)) {\n return;\n }\n this.hasSubscribedOptions = false;\n this.selectedOptions = await (document.querySelector(`salla-product-options[product-id=\"${this.productId}\"]`) as any)?.getSelectedOptions();\n this.hasOutOfStockOption = await (document.querySelector(`salla-product-options[product-id=\"${this.productId}\"]`) as any)?.hasOutOfStockOption();\n let subscribedDetails = salla.storage.get(`product-${this.productId}-subscribed-options`);\n\n if (!subscribedDetails && !this.subscribedOptions || !this.hasOutOfStockOption) {\n return;\n }\n\n if (salla.config.isGuest()) {\n const parsedSubscribedDetails = subscribedDetails ? subscribedDetails.map(ids => ids.split(',').map(id => parseInt(id))) : [];\n\n this.hasSubscribedOptions = parsedSubscribedDetails.length > 0 && parsedSubscribedDetails.some(ids =>\n ids.every(id => this.selectedOptions.some(option => option.id === id))\n );\n } else {\n this.hasSubscribedOptions = this.subscribedOptions && this.subscribedOptions !== 'null' && this.subscribedOptions !== '[]' ? JSON.parse(this.subscribedOptions).some(ids =>\n ids.every(id => this.selectedOptions.some(option => option.id === id))\n ) : false;\n }\n });\n\n\n }\n\n componentDidRender(): void {\n //if label not passed, get label\n if (!!this.passedLabel && (!this.supportStickyBar || window.innerWidth >= 768)) {\n // if passed label, set it\n this.btn?.setText(this.passedLabel)\n return;\n }\n this.btn?.setText(this.getLabel())\n\n salla.lang.onLoaded(() => this.btn?.setText(this.getLabel()));\n }\n}\n"]}