@salla.sa/twilight-components 2.12.5 → 2.12.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.
- package/dist/cjs/salla-add-product-button_40.cjs.entry.js +3 -2
- package/dist/cjs/salla-add-product-button_40.cjs.entry.js.map +1 -1
- package/dist/collection/components/salla-progress-bar/salla-progress-bar.js +2 -1
- package/dist/collection/components/salla-progress-bar/salla-progress-bar.js.map +1 -1
- package/dist/collection/components/salla-slider/salla-slider.js +1 -1
- package/dist/collection/components/salla-slider/salla-slider.js.map +1 -1
- package/dist/components/salla-progress-bar2.js +2 -1
- package/dist/components/salla-progress-bar2.js.map +1 -1
- package/dist/components/salla-slider2.js +1 -1
- package/dist/components/salla-slider2.js.map +1 -1
- package/dist/esm/salla-add-product-button_40.entry.js +3 -2
- package/dist/esm/salla-add-product-button_40.entry.js.map +1 -1
- package/dist/esm-es5/salla-add-product-button_40.entry.js +1 -1
- package/dist/esm-es5/salla-add-product-button_40.entry.js.map +1 -1
- package/dist/twilight/p-6727a00e.system.js +1 -1
- package/dist/twilight/{p-fd24efa8.system.entry.js → p-f303a498.system.entry.js} +2 -2
- package/dist/twilight/{p-fd24efa8.system.entry.js.map → p-f303a498.system.entry.js.map} +1 -1
- package/dist/twilight/{p-924df7a7.entry.js → p-f352e833.entry.js} +2 -2
- package/dist/twilight/{p-924df7a7.entry.js.map → p-f352e833.entry.js.map} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/package.json +2 -2
|
@@ -17,10 +17,11 @@ export class SallaProgressBar {
|
|
|
17
17
|
if (this.donation) {
|
|
18
18
|
let donationJson = typeof this.donation == 'string' ? JSON.parse(this.donation) : this.donation;
|
|
19
19
|
if (donationJson.can_donate && donationJson.target_amount) {
|
|
20
|
+
donationJson.target_end_date = donationJson.target_end_date == '0000-00-00' ? null : donationJson.target_end_date;
|
|
20
21
|
this.value = donationJson.collected_amount;
|
|
21
22
|
this.target = donationJson.target_amount;
|
|
22
23
|
this.header = salla.lang.get('pages.products.target');
|
|
23
|
-
this.message = donationJson.target_end_date
|
|
24
|
+
this.message = donationJson.target_end_date ? salla.lang.get('pages.products.donation_target_date') + ' ' + donationJson.target_end_date : '';
|
|
24
25
|
}
|
|
25
26
|
else {
|
|
26
27
|
//in case the product is not enabled target campaign
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salla-progress-bar.js","sourceRoot":"","sources":["../../../src/components/salla-progress-bar/salla-progress-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOnD,MAAM,OAAO,gBAAgB;EAE3B;;;;
|
|
1
|
+
{"version":3,"file":"salla-progress-bar.js","sourceRoot":"","sources":["../../../src/components/salla-progress-bar/salla-progress-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOnD,MAAM,OAAO,gBAAgB;EAE3B;;;;kBAoD0C,MAAM;;;;;;IAnD9C,IAAI;MACF,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,IAAI,YAAY,GAAG,OAAO,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChG,IAAI,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,aAAa,EAAE;UACzD,YAAY,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC;UAClH,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,gBAAgB,CAAC;UAC3C,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC;UACzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;UACtD,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/I;aAAM;UACL,oDAAoD;UACpD,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,aAAa;YACvC,CAAC,CAAC,YAAY,CAAC,cAAc;YAC7B,CAAC,CAAC,EAAE,CAAC;SACR;OACF;KACF;IAAC,OAAO,CAAC,EAAE;MACV,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;KAClC;IAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;;MACvB,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC,uBAAuB,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAA;MACpG,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,qCAAqC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAA;IACpI,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;MACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAA;MAC7E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACd,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;OAC5C;IACH,CAAC,CAAC,CAAA;GACH;EA+CO,aAAa;IACnB,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;EAC1C,CAAC;EAED,MAAM;IACJ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;MACjC,OAAO,EAAE,CAAC;KACX;IAED,OAAO,CACL,WAAK,KAAK,EAAC,0BAA0B;MAClC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAK,KAAK,EAAC,uBAAuB,IAAE,IAAI,CAAC,MAAM,CAAO,CAAC,CAAC,CAAC,EAAE;MACzE,IAAI,CAAC,cAAc,EAAE;MACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAM,KAAK,EAAC,wBAAwB,IAAE,IAAI,CAAC,OAAO,CAAQ,CAAC,CAAC,CAAC,EAAE,CAC3E,CACP,CAAC;EACJ,CAAC;EAEO,cAAc;IACpB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;MACnB,WAAK,KAAK,EAAC,+BAA+B;QACxC;UAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;UAAG,IAAI,CAAC,IAAI,CAAQ;QAC3D;UAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;UAAG,IAAI,CAAC,IAAI,CAAQ,CACxD;MACN,WAAK,KAAK,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;QAClE,WAAK,KAAK,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAChG,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAAE,GAC1E,CACF;KACP,CAAC,CAAC,CAAC,EAAE,CAAC;EACT,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\nimport { Donation } from \"../salla-product-options/interfaces\";\n\n@Component({\n tag: 'salla-progress-bar',\n styleUrl: 'salla-progress-bar.scss',\n})\nexport class SallaProgressBar {\n\n constructor() {\n try {\n if (this.donation) {\n let donationJson = typeof this.donation == 'string' ? JSON.parse(this.donation) : this.donation;\n if (donationJson.can_donate && donationJson.target_amount) {\n donationJson.target_end_date = donationJson.target_end_date == '0000-00-00' ? null : donationJson.target_end_date;\n this.value = donationJson.collected_amount;\n this.target = donationJson.target_amount;\n this.header = salla.lang.get('pages.products.target');\n this.message = donationJson.target_end_date ? salla.lang.get('pages.products.donation_target_date') + ' ' + donationJson.target_end_date : '';\n } else {\n //in case the product is not enabled target campaign\n this.message = donationJson.target_amount\n ? donationJson.target_message\n : '';\n }\n }\n } catch (e) {\n salla.log('Wrong donation json');\n }\n\n salla.lang.onLoaded(() => {\n this.header = this.header?.replace('pages.products.target', salla.lang.get('pages.products.target'))\n this.message = this.message?.replace('pages.products.donation_target_date', salla.lang.get('pages.products.donation_target_date'))\n });\n\n salla.onReady(() => {\n this.color = this.color || salla.config.get('theme.color.primary', \"#ffd5c4\")\n if (!this.unit) {\n this.unit = salla.config.currency().symbol;\n }\n })\n }\n\n /**\n * You can just pass the donation as json string ex: `{\"target_message\":null,\"target_date\":\"2023-04-18\",\"target_end_date\":\"2023-04-18\",\"target_amount\":400,\"collected_amount\":380,\"can_donate\":true}`\n */\n @Prop() donation: string | Donation;\n /**\n * The goal of the progress bar\n */\n @Prop({ mutable: true }) target: number;\n\n /**\n * The progress so far as of the goal.\n */\n @Prop({ mutable: true }) value: number;\n\n\n /**\n * Set height for the wrapper.\n */\n @Prop({ mutable: true }) height: string = \"10px\";\n\n /**\n * Big Title, before the progress bar.\n */\n @Prop({ mutable: true }) header: string;\n\n /**\n * Stripped effect for tje progress bar.\n */\n @Prop({ mutable: true }) stripped: boolean;\n\n /**\n * Subtitle under the progress bar or instead of it if the target not being set.\n */\n @Prop({ mutable: true }) message: string;\n\n /**\n * The unite to be added after the numbers, defaults to: `salla.config.currency().symbol`\n */\n @Prop({ mutable: true }) unit: string;\n\n /**\n * Progress bar color, defaults to: `salla.config.get('theme.color.primary', \"#ffd5c4\")`\n */\n @Prop({ mutable: true }) color: string;\n\n private getPercentage(): number {\n return (this.value / this.target) * 100;\n }\n\n render() {\n if (!this.target && !this.message) {\n return '';\n }\n\n return (\n <div class=\"s-progress-bar-container\">\n {this.header ? <div class=\"s-progress-bar-header\">{this.header}</div> : ''}\n {this.getProgressBar()}\n {this.message ? <span class=\"s-progress-bar-message\">{this.message}</span> : ''}\n </div>\n );\n }\n\n private getProgressBar() {\n return this.target ? [\n <div class=\"s-progress-bar-target-section\">\n <span>{salla.helpers.number(this.value)} {this.unit}</span>\n <span>{salla.helpers.number(this.target)} {this.unit}</span>\n </div>,\n <div class=\"s-progress-bar-wrapper\" style={{ 'height': this.height }}>\n <div class={{ \"s-progress-bar-progress\": true, 's-progress-bar-progress-stripped': this.stripped }}\n style={{ 'width': `${this.getPercentage()}%`, 'background-color': this.color }}>\n </div>\n </div>\n ] : '';\n }\n\n}\n"]}
|
|
@@ -234,7 +234,7 @@ export class SallaSlider {
|
|
|
234
234
|
salla.logger.warn('failed load swiper bundle', error);
|
|
235
235
|
reject(true);
|
|
236
236
|
};
|
|
237
|
-
this.swiperScript.src = 'https://cdn.
|
|
237
|
+
this.swiperScript.src = 'https://cdn.salla.network/js/swiper@8.js';
|
|
238
238
|
this.swiperScript.setAttribute('id', 'swiper-script');
|
|
239
239
|
document.body.appendChild(this.swiperScript);
|
|
240
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salla-slider.js","sourceRoot":"","sources":["../../../src/components/salla-slider/salla-slider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, Event, Host, EventEmitter, Method, Element } from '@stencil/core';\nimport { Swiper as SwiperType } from 'swiper/types';\n\nimport ArrowRightIcon from \"../../assets/svg/keyboard_arrow_right.svg\";\nimport ArrowLeftIcon from \"../../assets/svg/keyboard_arrow_left.svg\";\n\n/**\n * @slot items - Slider items.\n * @slot thumbs - Thumbs slider items.\n */\n@Component({\n tag: 'salla-slider',\n styleUrl: 'salla-slider.scss',\n})\nexport class SallaSlider {\n @Element() host: HTMLElement;\n constructor() {\n this.direction = this.direction || document.documentElement.dir\n }\n\n /**\n * Show/hide slider block title\n */\n @Prop({ reflect: true }) blockTitle: string = '';\n\n /**\n * Enable call a specific slide by index from thumbnails option in `salla-slider-options` component, works only if `data-img-id` and `data-slid-index` attributes are set on each slide\n */\n @Prop({ reflect: true }) listenToThumbnailsOption: boolean = false;\n\n /**\n * Show/hide slider block sub title\n */\n @Prop({ reflect: true }) blockSubtitle: string = '';\n\n /**\n * Show/hide display all button beside arrows\n */\n @Prop({ reflect: true }) displayAllUrl: string = '';\n\n /**\n * Show/hide display all button beside arrows\n */\n @Prop({ reflect: true }) arrowsCentered: boolean = false;\n\n /**\n * Vertical or Horizontal thumbs slider\n */\n @Prop({ reflect: true }) verticalThumbs: boolean = false;\n\n /**\n * Disable thumbs slider and show it as a grid\n */\n @Prop({ reflect: true }) gridThumbs: boolean = false;\n\n /**\n * Vertical or Horizontal main slider\n */\n @Prop({ reflect: true }) vertical: boolean = false;\n\n /**\n * Auto Height slider\n */\n @Prop({ reflect: true }) autoHeight: boolean = false;\n\n /**\n * Show/hide arrows\n */\n @Prop({ reflect: true }) showControls: boolean = true;\n\n /**\n * Show/hide arrows\n */\n @Prop({ reflect: true }) controlsOuter: boolean = false;\n\n /**\n * Show/hide thumbs slider arrows\n */\n @Prop() showThumbsControls: boolean = true;\n\n /**\n * Enable autoplay - working with `type=\"carousel\" only`\n */\n @Prop() autoPlay: boolean = false;\n\n /**\n * slidesPerView\n */\n @Prop() slidesPerView: string = \"auto\";\n\n /**\n * Enable pagination\n */\n @Prop() pagination: boolean = false;\n\n /**\n * Enable center mode - working with `type=\"carousel\" only`\n */\n @Prop() centered: boolean = false;\n\n /**\n * Run slider in loop, Don't use it for slides with custom components inside it, because it may cause re-render issue\n */\n @Prop() loop: boolean = false;\n\n /**\n * Slider direction. Default: document.documentElement.dir\n */\n @Prop({ mutable: true, reflect: true }) direction: string;\n\n /**\n * Set the type of the slider\n * Default: ''\n */\n @Prop() type: 'carousel' | 'fullscreen' | 'thumbs' | 'default' | 'hero' | 'testimonials' | 'blog' | 'fullwidth' | '' = '';\n /**\n * Slider Configs refer to https://swiperjs.com/swiper-api#parameters and pass the entire config object\n * @example\n * let slider = document.querySelector('salla-slider');\n * slider.sliderConfig = {\n * slidesPerView: 1,\n * spaceBetween : 30,\n * lazy: true,\n * }\n *\n */\n @Prop({ reflect: true }) sliderConfig: any;\n /**\n * Thumbs Slider Configs refer to https://swiperjs.com/swiper-api#parameters and pass the entire config object\n * @example\n * let slider = document.querySelector('salla-slider');\n * slider.thumbsConfig = {\n * slidesPerView: 1,\n * spaceBetween : 30,\n * lazy: true,\n * }\n *\n */\n @Prop({ reflect: true }) thumbsConfig: any = {};\n\n // Events\n /**\n * Event will fired right after initialization.\n */\n @Event() afterInit: EventEmitter<any>;\n /**\n * Event will be fired when currently active slide is changed\n */\n @Event() slideChange: EventEmitter<any>;\n\n /**\n * Event will be fired when Swiper reach its beginning (initial position)\n */\n @Event() reachBeginning: EventEmitter<any>;\n\n /**\n * Event will be fired when Swiper reach last slide\n */\n @Event() reachEnd: EventEmitter<any>;\n\n /**\n * Event will be fired after animation to other slide (next or previous).\n */\n @Event() slideChangeTransitionEnd: EventEmitter<any>;\n\n /**\n * Event will be fired in the beginning of animation to other slide (next or previous).\n */\n @Event() slideChangeTransitionStart: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionEnd\" but for \"forward\" direction only\n */\n @Event() slideNextTransitionEnd: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionStart\" but for \"forward\" direction only\n */\n @Event() slideNextTransitionStart: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionEnd\" but for \"backward\" direction only\n */\n @Event() slidePrevTransitionEnd: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionStart\" but for \"backward\" direction only\n */\n @Event() slidePrevTransitionStart: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch and move finger over Swiper and move it.\n * Receives touchmove event as an arguments.\n */\n @Event() sliderMove: EventEmitter<any>;\n\n /**\n * Event will be fired when user release Swiper. Receives touchend event as an arguments.\n */\n @Event() touchSliderEnd: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch and move finger over Swiper.\n * Receives touchmove event as an arguments.\n */\n @Event() touchSliderMove: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch Swiper. Receives touchstart event as an arguments.\n */\n @Event() touchSliderStart: EventEmitter<any>;\n\n /**\n * Event will be fired after transition.\n */\n @Event() sliderTransitionEnd: EventEmitter<any>;\n\n /**\n * Event will be fired in the beginning of transition.\n */\n @Event() sliderTransitionStart: EventEmitter<any>;\n\n\n // Methods\n\n /**\n * Run transition to the slide with index number equal to 'index' parameter for the duration equal to 'speed' parameter.\n *\n * @param {number} index - Index number of slide.\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideTo(index: number, speed?: number, runCallbacks?: boolean) {\n\n return this.slider.slideTo(index, speed, runCallbacks);\n }\n\n /**\n * Run transition to the next slide.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideNext(speed?: number, runCallbacks?: boolean) {\n this.slider?.slideNext(speed, runCallbacks);\n }\n\n /**\n * Run transition to the previous slide.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slidePrev(speed?: number, runCallbacks?: boolean) {\n this.slider?.slidePrev(speed, runCallbacks);\n }\n\n /**\n * Does the same as .slideTo but for the case when used with enabled loop. So this method will slide to slides with realIndex matching to passed index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideToLoop(index: number, speed?: number, runCallbacks?: boolean) {\n this.slider.slideToLoop(index, speed, runCallbacks);\n }\n\n /**\n * Does the same as .slideNext but for the case when used with enabled loop. So this method will slide to next slide with realIndex matching to next index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideNextLoop(speed?: number, runCallbacks?: boolean) {\n this.slider.slideNextLoop(speed, runCallbacks);\n }\n\n /**\n * Does the same as .slidePrev but for the case when used with enabled loop. So this method will slide to previous slide with realIndex matching to previous index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slidePrevLoop(speed?: number, runCallbacks?: boolean) {\n this.slider.slidePrevLoop(speed, runCallbacks);\n }\n\n /**\n * Reset slider position to currently active slide for the duration equal to 'speed' parameter.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideReset(speed?: number, runCallbacks?: boolean) {\n this.slider.slideReset(speed, runCallbacks);\n }\n\n /**\n * Reset slider position to closest slide/snap point for the duration equal to 'speed' parameter.\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideToClosest(speed?: number, runCallbacks?: boolean) {\n this.slider.slideToClosest(speed, runCallbacks);\n }\n\n /**\n * You should call it after you add/remove slides manually, or after you hide/show it, or do any custom DOM modifications with Swiper This method also includes subcall of the following methods which you can use separately:\n * **/\n @Method()\n async update() {\n this.slider.update();\n }\n\n /**\n * Force slider to update its height (when autoHeight enabled) for the duration equal to 'speed' parameter\n * @param {number} speed - Transition duration (in ms).\n * **/\n @Method()\n async updateAutoHeight(speed?: number) {\n this.slider.updateAutoHeight(speed);\n }\n\n /**\n * recalculate number of slides and their offsets. Useful after you add/remove slides with JavaScript\n * **/\n @Method()\n async updateSlides() {\n this.slider.updateSlides();\n }\n\n /**\n * recalculate slider progress\n * **/\n @Method()\n async updateProgress() {\n this.slider.updateProgress();\n }\n\n /**\n * update active/prev/next classes on slides and bullets\n * **/\n @Method()\n async updateSlidesClasses() {\n this.slider.updateSlidesClasses();\n }\n\n\n /**\n * Get slider slides\n * **/\n @Method()\n async getSlides() {\n return await this.slider?.slides;\n }\n\n\n // States\n @State() currentIndex: number | undefined = undefined;\n @State() isEnd: boolean = false;\n @State() isBeginning: boolean = true;\n @State() swiperScript: any;\n @State() displayAllTitle: string;\n\n private sliderContainer?: HTMLDivElement;\n private sliderWrapper?: HTMLDivElement;\n private thumbsSliderContainer?: HTMLDivElement;\n private thumbsSliderWrapper?: HTMLDivElement;\n private slider: any;\n private thumbsSlider: any;\n private hasThumbSlot: boolean = false;\n\n private pre_defined_config = {\n carousel: {\n speed: 300,\n slidesPerView: 'auto',\n spaceBetween: 0,\n },\n fullwidth: {\n speed: 750,\n parallax: true,\n },\n fullscreen: {\n speed: 1000,\n parallax: true,\n direction: \"vertical\",\n followFinger: false,\n touchReleaseOnEdges: true,\n lazy: true,\n mousewheel: {}\n },\n testimonials: {\n draggable: true,\n slidesPerView: 1,\n breakpoints: { 1024: { slidesPerView: 2 } }\n },\n blog: {\n parallax: true,\n speed: 800,\n loop: true,\n slidesPerView: 1,\n centeredSlides: true,\n spaceBetween: 30,\n breakpoints: {\n 320: { spaceBetween: 10 },\n 768: { spaceBetween: 15 },\n 980: { paceBetween: 30 },\n }\n },\n thumbs: {\n slidesPerView: 1,\n spaceBetween: 30\n }\n }\n\n componentWillLoad() {\n salla.lang.onLoaded(() => {\n this.displayAllTitle = salla.lang.get('blocks.home.display_all');\n })\n this.hasThumbSlot = !!this.host.querySelector('[slot=\"thumbs\"]');\n if (this.listenToThumbnailsOption) {\n salla.event.on('product-options::change', data => {\n if (data.option.type == 'thumbnail') {\n const slideIndex = this.sliderWrapper.querySelector(`[data-img-id=\"${data.detail.option_value}\"]`)?.getAttribute('data-slid-index');\n slideIndex ? this.slideTo(parseInt(slideIndex), 300, false) : '';\n }\n });\n }\n return new Promise((resolve, reject) => {\n // @ts-ignore\n if (typeof Swiper !== 'undefined') {\n return resolve(true);\n }\n\n if (document.getElementById('swiper-script')) {\n let interval = setInterval(() => {\n // @ts-ignore\n if (typeof Swiper !== 'undefined') {\n clearInterval(interval);\n resolve(true);\n }\n }, 5);\n } else {\n // ? There is an issue with stencil bundling it breaks the swiper import, so we need to import it manually by swiperjs rerendered file\n // ! IT'S NOT A GOOD SOLUTION, BUT IT WORKS, WE NEED TO FIND A BETTER SOLUTION\n this.swiperScript = document.createElement('script');\n this.swiperScript.onload = () => {\n resolve(true)\n salla.event.emit('swiper::loaded');\n }\n this.swiperScript.onerror = (error) => {\n salla.logger.warn('failed load swiper bundle', error);\n reject(true)\n }\n this.swiperScript.src = 'https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js';\n this.swiperScript.setAttribute('id', 'swiper-script');\n document.body.appendChild(this.swiperScript);\n }\n });\n }\n\n getSwiperConfig() {\n let pre_defined_config = {\n loop: this.loop,\n autoplay: this.type == 'fullwidth' && !!this.autoPlay ? { delay: 5000 } : this.autoPlay,\n centeredSlides: this.centered,\n slidesPerView: this.slidesPerView,\n autoHeight: this.autoHeight,\n lazy: true,\n on: {\n // todo:: find better way for this workaround to show lazyLoad for duplicated slides, because it clones the slide after it's already rendered,\n // then it re appended it as is,in this case the image is loaded but class not added.\n afterInit: (slider: SwiperType) => {\n this.afterInit.emit(slider);\n document.lazyLoadInstance?.update();\n this.loop && slider.slides.map(slide => {\n if (!slide.classList.contains('swiper-slide-duplicate')) {\n return;\n }\n slide.querySelectorAll('img.lazy:not(.loaded)').forEach(img => img.classList.add('loaded'));\n })\n },\n },\n pagination: this.pagination ? {\n el: this.host.id ? `#${this.host.id} .swiper-pagination` : '',\n clickable: true,\n } : false,\n navigation: this.showControls ? {\n nextEl: this.host.id ? `#${this.host.id} .s-slider-next` : '',\n prevEl: this.host.id ? `#${this.host.id} .s-slider-prev` : ''\n } : false,\n breakpoints: {\n 768: {\n direction: this.vertical ? \"vertical\" : \"horizontal\",\n },\n },\n };\n let pre_defined_thumbs_config = {\n freeMode: false,\n watchSlidesProgress: true,\n slidesPerView: 4,\n spaceBetween: 10,\n watchOverflow: true,\n watchSlidesVisibility: true,\n breakpoints: {\n 768: {\n direction: this.verticalThumbs ? \"vertical\" : \"horizontal\",\n spaceBetween: 16,\n },\n },\n navigation: this.showThumbsControls ? {\n nextEl: this.host.id ? `#${this.host.id} .s-slider-thumbs-next` : '',\n prevEl: this.host.id ? `#${this.host.id} .s-slider-thumbs-prev` : ''\n } : false,\n }\n this.pre_defined_config.fullscreen.mousewheel = {\n releaseOnEdges: this.host.querySelectorAll('.swiper-slide').length > 1 ? false : true\n },\n pre_defined_config = {\n ...pre_defined_config,\n ...(this.pre_defined_config[this.type] || {})\n };\n\n if (this.type == 'thumbs' && this.thumbsSliderWrapper) {\n for (const slide of this.thumbsSliderWrapper.children as any) {\n //todo:: use `s-slider-slide`\n slide.classList.add('swiper-slide')\n }\n\n if (this.hasThumbSlot && this.thumbsConfig) {\n try {\n pre_defined_thumbs_config = {\n ...pre_defined_thumbs_config,\n ...JSON.parse(this.thumbsConfig)\n }\n } catch (error) {\n salla.logger.warn('failed to parse thumbs slider config', error);\n }\n }\n // @ts-ignore\n this.thumbsSlider = new Swiper(this.thumbsSliderContainer, pre_defined_thumbs_config);\n \n // @ts-ignore\n pre_defined_config.thumbs = {\n swiper: this.thumbsSlider,\n };\n }\n\n pre_defined_config = {\n ...pre_defined_config,\n };\n if (this.sliderConfig) {\n try {\n pre_defined_config = {\n ...pre_defined_config,\n ...JSON.parse(this.sliderConfig)\n };\n } catch (error) {\n salla.logger.warn('failed to parse slider config', error);\n }\n }\n return pre_defined_config\n }\n\n initSlider() {\n for (const slide of this.sliderWrapper.children as any) {\n slide.classList.add('swiper-slide')\n }\n\n // @ts-ignore\n this.slider = new Swiper(this.sliderContainer, this.getSwiperConfig())\n\n // Expose slider events\n this.slider.on('slideChange', (slider: SwiperType) => {\n //todo:: it doesn't change when loop is active, always will be false\n this.isBeginning = slider.isBeginning;\n this.isEnd = slider.isEnd;\n this.slideChange.emit(slider);\n });\n this.slider.on('reachBeginning', (slider: SwiperType) => this.reachBeginning.emit(slider));\n this.slider.on('reachEnd', (slider: SwiperType) => this.reachEnd.emit(slider));\n this.slider.on('slideChangeTransitionEnd', (slider: SwiperType) => {\n if (this.type == \"fullscreen\") {\n const activeIndex = slider.activeIndex;\n (slider.params.mousewheel as any).releaseOnEdges = activeIndex === 0 || (activeIndex === slider.slides.length - 1);\n }\n this.slideChangeTransitionEnd.emit(slider)\n });\n this.slider.on('slideChangeTransitionStart', (slider: SwiperType) => this.slideChangeTransitionStart.emit(slider));\n this.slider.on('slideNextTransitionEnd', (slider: SwiperType) => this.slideNextTransitionEnd.emit(slider));\n this.slider.on('slideNextTransitionStart', (slider: SwiperType) => this.slideNextTransitionStart.emit(slider));\n this.slider.on('slidePrevTransitionEnd', (slider: SwiperType) => this.slidePrevTransitionEnd.emit(slider));\n this.slider.on('slidePrevTransitionStart', (slider: SwiperType) => this.slidePrevTransitionStart.emit(slider));\n this.slider.on('sliderMove', (slider: SwiperType) => this.sliderMove.emit(slider));\n this.slider.on('touchEnd', (slider: SwiperType) => this.touchSliderEnd.emit(slider));\n this.slider.on('touchMove', (slider: SwiperType) => this.touchSliderMove.emit(slider));\n this.slider.on('touchStart', (slider: SwiperType) => this.touchSliderStart.emit(slider));\n this.slider.on('transitionEnd', (slider: SwiperType) => this.sliderTransitionEnd.emit(slider));\n this.slider.on('transitionStart', (slider: SwiperType) => this.sliderTransitionStart.emit(slider));\n }\n\n render() {\n let classes = this.type ? this.type + '-slider ' : '';\n classes += this.controlsOuter ? ' s-slider-controls-outer ' : '';\n classes += this.blockTitle == '' ? ' s-slider-has-notitle s-slider-v-centered ' : '';\n classes += this.verticalThumbs ? ' s-slider-vertical ' : ' s-slider-horizontal ';\n classes += this.arrowsCentered ? ' s-slider-v-centered ' : '';\n classes += this.gridThumbs ? ' s-slider-with-grid-thumbs ' : '';\n return (\n <Host class={'s-slider-wrapper ' + classes}>\n\n {/* Slider block Title */}\n {this.blockTitle || this.showControls ?\n <div class=\"s-slider-block__title\">\n {this.blockTitle ?\n <div class=\"s-slider-block__title-right\">\n <h2>{this.blockTitle}</h2>\n {this.blockSubtitle ? <p innerHTML={this.blockSubtitle} /> : ''}\n </div>\n : ''}\n\n <div class=\"s-slider-block__title-left\">\n {this.displayAllUrl ?\n <a href={this.displayAllUrl} class=\"s-slider-block__display-all\">{this.displayAllTitle}</a>\n : ''}\n {this.showControls ?\n <div class=\"s-slider-block__title-nav\" dir=\"rtl\">\n <button aria-label=\"Previous Slide\" class=\"s-slider-prev s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon} />\n </button>\n <button aria-label=\"Next Slide\" class=\"s-slider-next s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon} />\n </button>\n </div>\n : ''}\n </div>\n </div>\n : ''}\n\n <div class=\"swiper s-slider-container\" ref={el => this.sliderContainer = el as HTMLDivElement} dir={this.vertical ? \"ltr\" : this.direction}>\n <slot />\n <div class=\"swiper-wrapper s-slider-swiper-wrapper\" ref={el => this.sliderWrapper = el as HTMLDivElement}>\n <slot name='items' />\n </div>\n {this.pagination ? <div class=\"swiper-pagination\"></div> : ''}\n </div>\n\n {this.type == 'thumbs' && this.hasThumbSlot ? <div class=\"s-slider-thumbs\">\n <div class=\"swiper s-slider-thumbs-container\" dir={this.verticalThumbs ? \"ltr\" : this.direction} ref={el => this.thumbsSliderContainer = el as HTMLDivElement}>\n <div class={{ \"s-slider-swiper-wrapper swiper-wrapper\": true, \"s-slider-grid-thumbs\": this.gridThumbs }} ref={el => this.thumbsSliderWrapper = el as HTMLDivElement}>\n <slot name=\"thumbs\" />\n </div>\n {this.showThumbsControls ?\n <div class=\"s-slider-thumbs-nav\" dir=\"rtl\">\n <button aria-label=\"Previous Slide\" class=\"s-slider-thumbs-prev s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon} />\n </button>\n <button aria-label=\"Next Slide\" class=\"s-slider-thumbs-next s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon} />\n </button>\n </div>\n : null}\n </div>\n </div>\n : null}\n </Host>\n );\n }\n\n componentDidLoad() {\n let itemsSlot = this.sliderWrapper.querySelector('div[slot=\"items\"]');\n !!itemsSlot ? itemsSlot.replaceWith(...itemsSlot.children as any) : null;\n if (this.type == 'thumbs' && this.hasThumbSlot) {\n let thumbsSlot = this.thumbsSliderWrapper.querySelector('div[slot=\"thumbs\"]');\n !!thumbsSlot ? thumbsSlot.replaceWith(...thumbsSlot.children as any) : null;\n }\n\n // if swiper is not loaded, lets relay on event\n // @ts-ignore\n if (typeof Swiper === 'undefined') {\n salla.event.once('swiper::loaded', () => this.initSlider())\n } else { // if swiper is loaded lets init our slider\n this.initSlider();\n }\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"salla-slider.js","sourceRoot":"","sources":["../../../src/components/salla-slider/salla-slider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, Prop, h, Event, Host, EventEmitter, Method, Element } from '@stencil/core';\nimport { Swiper as SwiperType } from 'swiper/types';\n\nimport ArrowRightIcon from \"../../assets/svg/keyboard_arrow_right.svg\";\nimport ArrowLeftIcon from \"../../assets/svg/keyboard_arrow_left.svg\";\n\n/**\n * @slot items - Slider items.\n * @slot thumbs - Thumbs slider items.\n */\n@Component({\n tag: 'salla-slider',\n styleUrl: 'salla-slider.scss',\n})\nexport class SallaSlider {\n @Element() host: HTMLElement;\n constructor() {\n this.direction = this.direction || document.documentElement.dir\n }\n\n /**\n * Show/hide slider block title\n */\n @Prop({ reflect: true }) blockTitle: string = '';\n\n /**\n * Enable call a specific slide by index from thumbnails option in `salla-slider-options` component, works only if `data-img-id` and `data-slid-index` attributes are set on each slide\n */\n @Prop({ reflect: true }) listenToThumbnailsOption: boolean = false;\n\n /**\n * Show/hide slider block sub title\n */\n @Prop({ reflect: true }) blockSubtitle: string = '';\n\n /**\n * Show/hide display all button beside arrows\n */\n @Prop({ reflect: true }) displayAllUrl: string = '';\n\n /**\n * Show/hide display all button beside arrows\n */\n @Prop({ reflect: true }) arrowsCentered: boolean = false;\n\n /**\n * Vertical or Horizontal thumbs slider\n */\n @Prop({ reflect: true }) verticalThumbs: boolean = false;\n\n /**\n * Disable thumbs slider and show it as a grid\n */\n @Prop({ reflect: true }) gridThumbs: boolean = false;\n\n /**\n * Vertical or Horizontal main slider\n */\n @Prop({ reflect: true }) vertical: boolean = false;\n\n /**\n * Auto Height slider\n */\n @Prop({ reflect: true }) autoHeight: boolean = false;\n\n /**\n * Show/hide arrows\n */\n @Prop({ reflect: true }) showControls: boolean = true;\n\n /**\n * Show/hide arrows\n */\n @Prop({ reflect: true }) controlsOuter: boolean = false;\n\n /**\n * Show/hide thumbs slider arrows\n */\n @Prop() showThumbsControls: boolean = true;\n\n /**\n * Enable autoplay - working with `type=\"carousel\" only`\n */\n @Prop() autoPlay: boolean = false;\n\n /**\n * slidesPerView\n */\n @Prop() slidesPerView: string = \"auto\";\n\n /**\n * Enable pagination\n */\n @Prop() pagination: boolean = false;\n\n /**\n * Enable center mode - working with `type=\"carousel\" only`\n */\n @Prop() centered: boolean = false;\n\n /**\n * Run slider in loop, Don't use it for slides with custom components inside it, because it may cause re-render issue\n */\n @Prop() loop: boolean = false;\n\n /**\n * Slider direction. Default: document.documentElement.dir\n */\n @Prop({ mutable: true, reflect: true }) direction: string;\n\n /**\n * Set the type of the slider\n * Default: ''\n */\n @Prop() type: 'carousel' | 'fullscreen' | 'thumbs' | 'default' | 'hero' | 'testimonials' | 'blog' | 'fullwidth' | '' = '';\n /**\n * Slider Configs refer to https://swiperjs.com/swiper-api#parameters and pass the entire config object\n * @example\n * let slider = document.querySelector('salla-slider');\n * slider.sliderConfig = {\n * slidesPerView: 1,\n * spaceBetween : 30,\n * lazy: true,\n * }\n *\n */\n @Prop({ reflect: true }) sliderConfig: any;\n /**\n * Thumbs Slider Configs refer to https://swiperjs.com/swiper-api#parameters and pass the entire config object\n * @example\n * let slider = document.querySelector('salla-slider');\n * slider.thumbsConfig = {\n * slidesPerView: 1,\n * spaceBetween : 30,\n * lazy: true,\n * }\n *\n */\n @Prop({ reflect: true }) thumbsConfig: any = {};\n\n // Events\n /**\n * Event will fired right after initialization.\n */\n @Event() afterInit: EventEmitter<any>;\n /**\n * Event will be fired when currently active slide is changed\n */\n @Event() slideChange: EventEmitter<any>;\n\n /**\n * Event will be fired when Swiper reach its beginning (initial position)\n */\n @Event() reachBeginning: EventEmitter<any>;\n\n /**\n * Event will be fired when Swiper reach last slide\n */\n @Event() reachEnd: EventEmitter<any>;\n\n /**\n * Event will be fired after animation to other slide (next or previous).\n */\n @Event() slideChangeTransitionEnd: EventEmitter<any>;\n\n /**\n * Event will be fired in the beginning of animation to other slide (next or previous).\n */\n @Event() slideChangeTransitionStart: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionEnd\" but for \"forward\" direction only\n */\n @Event() slideNextTransitionEnd: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionStart\" but for \"forward\" direction only\n */\n @Event() slideNextTransitionStart: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionEnd\" but for \"backward\" direction only\n */\n @Event() slidePrevTransitionEnd: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionStart\" but for \"backward\" direction only\n */\n @Event() slidePrevTransitionStart: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch and move finger over Swiper and move it.\n * Receives touchmove event as an arguments.\n */\n @Event() sliderMove: EventEmitter<any>;\n\n /**\n * Event will be fired when user release Swiper. Receives touchend event as an arguments.\n */\n @Event() touchSliderEnd: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch and move finger over Swiper.\n * Receives touchmove event as an arguments.\n */\n @Event() touchSliderMove: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch Swiper. Receives touchstart event as an arguments.\n */\n @Event() touchSliderStart: EventEmitter<any>;\n\n /**\n * Event will be fired after transition.\n */\n @Event() sliderTransitionEnd: EventEmitter<any>;\n\n /**\n * Event will be fired in the beginning of transition.\n */\n @Event() sliderTransitionStart: EventEmitter<any>;\n\n\n // Methods\n\n /**\n * Run transition to the slide with index number equal to 'index' parameter for the duration equal to 'speed' parameter.\n *\n * @param {number} index - Index number of slide.\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideTo(index: number, speed?: number, runCallbacks?: boolean) {\n\n return this.slider.slideTo(index, speed, runCallbacks);\n }\n\n /**\n * Run transition to the next slide.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideNext(speed?: number, runCallbacks?: boolean) {\n this.slider?.slideNext(speed, runCallbacks);\n }\n\n /**\n * Run transition to the previous slide.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slidePrev(speed?: number, runCallbacks?: boolean) {\n this.slider?.slidePrev(speed, runCallbacks);\n }\n\n /**\n * Does the same as .slideTo but for the case when used with enabled loop. So this method will slide to slides with realIndex matching to passed index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideToLoop(index: number, speed?: number, runCallbacks?: boolean) {\n this.slider.slideToLoop(index, speed, runCallbacks);\n }\n\n /**\n * Does the same as .slideNext but for the case when used with enabled loop. So this method will slide to next slide with realIndex matching to next index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideNextLoop(speed?: number, runCallbacks?: boolean) {\n this.slider.slideNextLoop(speed, runCallbacks);\n }\n\n /**\n * Does the same as .slidePrev but for the case when used with enabled loop. So this method will slide to previous slide with realIndex matching to previous index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slidePrevLoop(speed?: number, runCallbacks?: boolean) {\n this.slider.slidePrevLoop(speed, runCallbacks);\n }\n\n /**\n * Reset slider position to currently active slide for the duration equal to 'speed' parameter.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideReset(speed?: number, runCallbacks?: boolean) {\n this.slider.slideReset(speed, runCallbacks);\n }\n\n /**\n * Reset slider position to closest slide/snap point for the duration equal to 'speed' parameter.\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideToClosest(speed?: number, runCallbacks?: boolean) {\n this.slider.slideToClosest(speed, runCallbacks);\n }\n\n /**\n * You should call it after you add/remove slides manually, or after you hide/show it, or do any custom DOM modifications with Swiper This method also includes subcall of the following methods which you can use separately:\n * **/\n @Method()\n async update() {\n this.slider.update();\n }\n\n /**\n * Force slider to update its height (when autoHeight enabled) for the duration equal to 'speed' parameter\n * @param {number} speed - Transition duration (in ms).\n * **/\n @Method()\n async updateAutoHeight(speed?: number) {\n this.slider.updateAutoHeight(speed);\n }\n\n /**\n * recalculate number of slides and their offsets. Useful after you add/remove slides with JavaScript\n * **/\n @Method()\n async updateSlides() {\n this.slider.updateSlides();\n }\n\n /**\n * recalculate slider progress\n * **/\n @Method()\n async updateProgress() {\n this.slider.updateProgress();\n }\n\n /**\n * update active/prev/next classes on slides and bullets\n * **/\n @Method()\n async updateSlidesClasses() {\n this.slider.updateSlidesClasses();\n }\n\n\n /**\n * Get slider slides\n * **/\n @Method()\n async getSlides() {\n return await this.slider?.slides;\n }\n\n\n // States\n @State() currentIndex: number | undefined = undefined;\n @State() isEnd: boolean = false;\n @State() isBeginning: boolean = true;\n @State() swiperScript: any;\n @State() displayAllTitle: string;\n\n private sliderContainer?: HTMLDivElement;\n private sliderWrapper?: HTMLDivElement;\n private thumbsSliderContainer?: HTMLDivElement;\n private thumbsSliderWrapper?: HTMLDivElement;\n private slider: any;\n private thumbsSlider: any;\n private hasThumbSlot: boolean = false;\n\n private pre_defined_config = {\n carousel: {\n speed: 300,\n slidesPerView: 'auto',\n spaceBetween: 0,\n },\n fullwidth: {\n speed: 750,\n parallax: true,\n },\n fullscreen: {\n speed: 1000,\n parallax: true,\n direction: \"vertical\",\n followFinger: false,\n touchReleaseOnEdges: true,\n lazy: true,\n mousewheel: {}\n },\n testimonials: {\n draggable: true,\n slidesPerView: 1,\n breakpoints: { 1024: { slidesPerView: 2 } }\n },\n blog: {\n parallax: true,\n speed: 800,\n loop: true,\n slidesPerView: 1,\n centeredSlides: true,\n spaceBetween: 30,\n breakpoints: {\n 320: { spaceBetween: 10 },\n 768: { spaceBetween: 15 },\n 980: { paceBetween: 30 },\n }\n },\n thumbs: {\n slidesPerView: 1,\n spaceBetween: 30\n }\n }\n\n componentWillLoad() {\n salla.lang.onLoaded(() => {\n this.displayAllTitle = salla.lang.get('blocks.home.display_all');\n })\n this.hasThumbSlot = !!this.host.querySelector('[slot=\"thumbs\"]');\n if (this.listenToThumbnailsOption) {\n salla.event.on('product-options::change', data => {\n if (data.option.type == 'thumbnail') {\n const slideIndex = this.sliderWrapper.querySelector(`[data-img-id=\"${data.detail.option_value}\"]`)?.getAttribute('data-slid-index');\n slideIndex ? this.slideTo(parseInt(slideIndex), 300, false) : '';\n }\n });\n }\n return new Promise((resolve, reject) => {\n // @ts-ignore\n if (typeof Swiper !== 'undefined') {\n return resolve(true);\n }\n\n if (document.getElementById('swiper-script')) {\n let interval = setInterval(() => {\n // @ts-ignore\n if (typeof Swiper !== 'undefined') {\n clearInterval(interval);\n resolve(true);\n }\n }, 5);\n } else {\n // ? There is an issue with stencil bundling it breaks the swiper import, so we need to import it manually by swiperjs rerendered file\n // ! IT'S NOT A GOOD SOLUTION, BUT IT WORKS, WE NEED TO FIND A BETTER SOLUTION\n this.swiperScript = document.createElement('script');\n this.swiperScript.onload = () => {\n resolve(true)\n salla.event.emit('swiper::loaded');\n }\n this.swiperScript.onerror = (error) => {\n salla.logger.warn('failed load swiper bundle', error);\n reject(true)\n }\n this.swiperScript.src = 'https://cdn.salla.network/js/swiper@8.js';\n this.swiperScript.setAttribute('id', 'swiper-script');\n document.body.appendChild(this.swiperScript);\n }\n });\n }\n\n getSwiperConfig() {\n let pre_defined_config = {\n loop: this.loop,\n autoplay: this.type == 'fullwidth' && !!this.autoPlay ? { delay: 5000 } : this.autoPlay,\n centeredSlides: this.centered,\n slidesPerView: this.slidesPerView,\n autoHeight: this.autoHeight,\n lazy: true,\n on: {\n // todo:: find better way for this workaround to show lazyLoad for duplicated slides, because it clones the slide after it's already rendered,\n // then it re appended it as is,in this case the image is loaded but class not added.\n afterInit: (slider: SwiperType) => {\n this.afterInit.emit(slider);\n document.lazyLoadInstance?.update();\n this.loop && slider.slides.map(slide => {\n if (!slide.classList.contains('swiper-slide-duplicate')) {\n return;\n }\n slide.querySelectorAll('img.lazy:not(.loaded)').forEach(img => img.classList.add('loaded'));\n })\n },\n },\n pagination: this.pagination ? {\n el: this.host.id ? `#${this.host.id} .swiper-pagination` : '',\n clickable: true,\n } : false,\n navigation: this.showControls ? {\n nextEl: this.host.id ? `#${this.host.id} .s-slider-next` : '',\n prevEl: this.host.id ? `#${this.host.id} .s-slider-prev` : ''\n } : false,\n breakpoints: {\n 768: {\n direction: this.vertical ? \"vertical\" : \"horizontal\",\n },\n },\n };\n let pre_defined_thumbs_config = {\n freeMode: false,\n watchSlidesProgress: true,\n slidesPerView: 4,\n spaceBetween: 10,\n watchOverflow: true,\n watchSlidesVisibility: true,\n breakpoints: {\n 768: {\n direction: this.verticalThumbs ? \"vertical\" : \"horizontal\",\n spaceBetween: 16,\n },\n },\n navigation: this.showThumbsControls ? {\n nextEl: this.host.id ? `#${this.host.id} .s-slider-thumbs-next` : '',\n prevEl: this.host.id ? `#${this.host.id} .s-slider-thumbs-prev` : ''\n } : false,\n }\n this.pre_defined_config.fullscreen.mousewheel = {\n releaseOnEdges: this.host.querySelectorAll('.swiper-slide').length > 1 ? false : true\n },\n pre_defined_config = {\n ...pre_defined_config,\n ...(this.pre_defined_config[this.type] || {})\n };\n\n if (this.type == 'thumbs' && this.thumbsSliderWrapper) {\n for (const slide of this.thumbsSliderWrapper.children as any) {\n //todo:: use `s-slider-slide`\n slide.classList.add('swiper-slide')\n }\n\n if (this.hasThumbSlot && this.thumbsConfig) {\n try {\n pre_defined_thumbs_config = {\n ...pre_defined_thumbs_config,\n ...JSON.parse(this.thumbsConfig)\n }\n } catch (error) {\n salla.logger.warn('failed to parse thumbs slider config', error);\n }\n }\n // @ts-ignore\n this.thumbsSlider = new Swiper(this.thumbsSliderContainer, pre_defined_thumbs_config);\n \n // @ts-ignore\n pre_defined_config.thumbs = {\n swiper: this.thumbsSlider,\n };\n }\n\n pre_defined_config = {\n ...pre_defined_config,\n };\n if (this.sliderConfig) {\n try {\n pre_defined_config = {\n ...pre_defined_config,\n ...JSON.parse(this.sliderConfig)\n };\n } catch (error) {\n salla.logger.warn('failed to parse slider config', error);\n }\n }\n return pre_defined_config\n }\n\n initSlider() {\n for (const slide of this.sliderWrapper.children as any) {\n slide.classList.add('swiper-slide')\n }\n\n // @ts-ignore\n this.slider = new Swiper(this.sliderContainer, this.getSwiperConfig())\n\n // Expose slider events\n this.slider.on('slideChange', (slider: SwiperType) => {\n //todo:: it doesn't change when loop is active, always will be false\n this.isBeginning = slider.isBeginning;\n this.isEnd = slider.isEnd;\n this.slideChange.emit(slider);\n });\n this.slider.on('reachBeginning', (slider: SwiperType) => this.reachBeginning.emit(slider));\n this.slider.on('reachEnd', (slider: SwiperType) => this.reachEnd.emit(slider));\n this.slider.on('slideChangeTransitionEnd', (slider: SwiperType) => {\n if (this.type == \"fullscreen\") {\n const activeIndex = slider.activeIndex;\n (slider.params.mousewheel as any).releaseOnEdges = activeIndex === 0 || (activeIndex === slider.slides.length - 1);\n }\n this.slideChangeTransitionEnd.emit(slider)\n });\n this.slider.on('slideChangeTransitionStart', (slider: SwiperType) => this.slideChangeTransitionStart.emit(slider));\n this.slider.on('slideNextTransitionEnd', (slider: SwiperType) => this.slideNextTransitionEnd.emit(slider));\n this.slider.on('slideNextTransitionStart', (slider: SwiperType) => this.slideNextTransitionStart.emit(slider));\n this.slider.on('slidePrevTransitionEnd', (slider: SwiperType) => this.slidePrevTransitionEnd.emit(slider));\n this.slider.on('slidePrevTransitionStart', (slider: SwiperType) => this.slidePrevTransitionStart.emit(slider));\n this.slider.on('sliderMove', (slider: SwiperType) => this.sliderMove.emit(slider));\n this.slider.on('touchEnd', (slider: SwiperType) => this.touchSliderEnd.emit(slider));\n this.slider.on('touchMove', (slider: SwiperType) => this.touchSliderMove.emit(slider));\n this.slider.on('touchStart', (slider: SwiperType) => this.touchSliderStart.emit(slider));\n this.slider.on('transitionEnd', (slider: SwiperType) => this.sliderTransitionEnd.emit(slider));\n this.slider.on('transitionStart', (slider: SwiperType) => this.sliderTransitionStart.emit(slider));\n }\n\n render() {\n let classes = this.type ? this.type + '-slider ' : '';\n classes += this.controlsOuter ? ' s-slider-controls-outer ' : '';\n classes += this.blockTitle == '' ? ' s-slider-has-notitle s-slider-v-centered ' : '';\n classes += this.verticalThumbs ? ' s-slider-vertical ' : ' s-slider-horizontal ';\n classes += this.arrowsCentered ? ' s-slider-v-centered ' : '';\n classes += this.gridThumbs ? ' s-slider-with-grid-thumbs ' : '';\n return (\n <Host class={'s-slider-wrapper ' + classes}>\n\n {/* Slider block Title */}\n {this.blockTitle || this.showControls ?\n <div class=\"s-slider-block__title\">\n {this.blockTitle ?\n <div class=\"s-slider-block__title-right\">\n <h2>{this.blockTitle}</h2>\n {this.blockSubtitle ? <p innerHTML={this.blockSubtitle} /> : ''}\n </div>\n : ''}\n\n <div class=\"s-slider-block__title-left\">\n {this.displayAllUrl ?\n <a href={this.displayAllUrl} class=\"s-slider-block__display-all\">{this.displayAllTitle}</a>\n : ''}\n {this.showControls ?\n <div class=\"s-slider-block__title-nav\" dir=\"rtl\">\n <button aria-label=\"Previous Slide\" class=\"s-slider-prev s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon} />\n </button>\n <button aria-label=\"Next Slide\" class=\"s-slider-next s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon} />\n </button>\n </div>\n : ''}\n </div>\n </div>\n : ''}\n\n <div class=\"swiper s-slider-container\" ref={el => this.sliderContainer = el as HTMLDivElement} dir={this.vertical ? \"ltr\" : this.direction}>\n <slot />\n <div class=\"swiper-wrapper s-slider-swiper-wrapper\" ref={el => this.sliderWrapper = el as HTMLDivElement}>\n <slot name='items' />\n </div>\n {this.pagination ? <div class=\"swiper-pagination\"></div> : ''}\n </div>\n\n {this.type == 'thumbs' && this.hasThumbSlot ? <div class=\"s-slider-thumbs\">\n <div class=\"swiper s-slider-thumbs-container\" dir={this.verticalThumbs ? \"ltr\" : this.direction} ref={el => this.thumbsSliderContainer = el as HTMLDivElement}>\n <div class={{ \"s-slider-swiper-wrapper swiper-wrapper\": true, \"s-slider-grid-thumbs\": this.gridThumbs }} ref={el => this.thumbsSliderWrapper = el as HTMLDivElement}>\n <slot name=\"thumbs\" />\n </div>\n {this.showThumbsControls ?\n <div class=\"s-slider-thumbs-nav\" dir=\"rtl\">\n <button aria-label=\"Previous Slide\" class=\"s-slider-thumbs-prev s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon} />\n </button>\n <button aria-label=\"Next Slide\" class=\"s-slider-thumbs-next s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon} />\n </button>\n </div>\n : null}\n </div>\n </div>\n : null}\n </Host>\n );\n }\n\n componentDidLoad() {\n let itemsSlot = this.sliderWrapper.querySelector('div[slot=\"items\"]');\n !!itemsSlot ? itemsSlot.replaceWith(...itemsSlot.children as any) : null;\n if (this.type == 'thumbs' && this.hasThumbSlot) {\n let thumbsSlot = this.thumbsSliderWrapper.querySelector('div[slot=\"thumbs\"]');\n !!thumbsSlot ? thumbsSlot.replaceWith(...thumbsSlot.children as any) : null;\n }\n\n // if swiper is not loaded, lets relay on event\n // @ts-ignore\n if (typeof Swiper === 'undefined') {\n salla.event.once('swiper::loaded', () => this.initSlider())\n } else { // if swiper is loaded lets init our slider\n this.initSlider();\n }\n }\n}\n\n"]}
|
|
@@ -22,10 +22,11 @@ const SallaProgressBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
|
|
|
22
22
|
if (this.donation) {
|
|
23
23
|
let donationJson = typeof this.donation == 'string' ? JSON.parse(this.donation) : this.donation;
|
|
24
24
|
if (donationJson.can_donate && donationJson.target_amount) {
|
|
25
|
+
donationJson.target_end_date = donationJson.target_end_date == '0000-00-00' ? null : donationJson.target_end_date;
|
|
25
26
|
this.value = donationJson.collected_amount;
|
|
26
27
|
this.target = donationJson.target_amount;
|
|
27
28
|
this.header = salla.lang.get('pages.products.target');
|
|
28
|
-
this.message = donationJson.target_end_date
|
|
29
|
+
this.message = donationJson.target_end_date ? salla.lang.get('pages.products.donation_target_date') + ' ' + donationJson.target_end_date : '';
|
|
29
30
|
}
|
|
30
31
|
else {
|
|
31
32
|
//in case the product is not enabled target campaign
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"salla-progress-bar2.js","mappings":";;;;;AAAA,MAAM,mBAAmB,GAAG,EAAE;;MCOjB,gBAAgB;EAE3B;;;;;;
|
|
1
|
+
{"file":"salla-progress-bar2.js","mappings":"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","names":[],"sources":["./src/components/salla-progress-bar/salla-progress-bar.scss?tag=salla-progress-bar","./src/components/salla-progress-bar/salla-progress-bar.tsx"],"sourcesContent":[".s-progress-bar{\n &-header{\n }\n &-target-section {\n }\n\n &-container {\n }\n\n &-wrapper {\n }\n\n &-progress {\n }\n\n &-message {\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { Donation } from \"../salla-product-options/interfaces\";\n\n@Component({\n tag: 'salla-progress-bar',\n styleUrl: 'salla-progress-bar.scss',\n})\nexport class SallaProgressBar {\n\n constructor() {\n try {\n if (this.donation) {\n let donationJson = typeof this.donation == 'string' ? JSON.parse(this.donation) : this.donation;\n if (donationJson.can_donate && donationJson.target_amount) {\n donationJson.target_end_date = donationJson.target_end_date == '0000-00-00' ? null : donationJson.target_end_date;\n this.value = donationJson.collected_amount;\n this.target = donationJson.target_amount;\n this.header = salla.lang.get('pages.products.target');\n this.message = donationJson.target_end_date ? salla.lang.get('pages.products.donation_target_date') + ' ' + donationJson.target_end_date : '';\n } else {\n //in case the product is not enabled target campaign\n this.message = donationJson.target_amount\n ? donationJson.target_message\n : '';\n }\n }\n } catch (e) {\n salla.log('Wrong donation json');\n }\n\n salla.lang.onLoaded(() => {\n this.header = this.header?.replace('pages.products.target', salla.lang.get('pages.products.target'))\n this.message = this.message?.replace('pages.products.donation_target_date', salla.lang.get('pages.products.donation_target_date'))\n });\n\n salla.onReady(() => {\n this.color = this.color || salla.config.get('theme.color.primary', \"#ffd5c4\")\n if (!this.unit) {\n this.unit = salla.config.currency().symbol;\n }\n })\n }\n\n /**\n * You can just pass the donation as json string ex: `{\"target_message\":null,\"target_date\":\"2023-04-18\",\"target_end_date\":\"2023-04-18\",\"target_amount\":400,\"collected_amount\":380,\"can_donate\":true}`\n */\n @Prop() donation: string | Donation;\n /**\n * The goal of the progress bar\n */\n @Prop({ mutable: true }) target: number;\n\n /**\n * The progress so far as of the goal.\n */\n @Prop({ mutable: true }) value: number;\n\n\n /**\n * Set height for the wrapper.\n */\n @Prop({ mutable: true }) height: string = \"10px\";\n\n /**\n * Big Title, before the progress bar.\n */\n @Prop({ mutable: true }) header: string;\n\n /**\n * Stripped effect for tje progress bar.\n */\n @Prop({ mutable: true }) stripped: boolean;\n\n /**\n * Subtitle under the progress bar or instead of it if the target not being set.\n */\n @Prop({ mutable: true }) message: string;\n\n /**\n * The unite to be added after the numbers, defaults to: `salla.config.currency().symbol`\n */\n @Prop({ mutable: true }) unit: string;\n\n /**\n * Progress bar color, defaults to: `salla.config.get('theme.color.primary', \"#ffd5c4\")`\n */\n @Prop({ mutable: true }) color: string;\n\n private getPercentage(): number {\n return (this.value / this.target) * 100;\n }\n\n render() {\n if (!this.target && !this.message) {\n return '';\n }\n\n return (\n <div class=\"s-progress-bar-container\">\n {this.header ? <div class=\"s-progress-bar-header\">{this.header}</div> : ''}\n {this.getProgressBar()}\n {this.message ? <span class=\"s-progress-bar-message\">{this.message}</span> : ''}\n </div>\n );\n }\n\n private getProgressBar() {\n return this.target ? [\n <div class=\"s-progress-bar-target-section\">\n <span>{salla.helpers.number(this.value)} {this.unit}</span>\n <span>{salla.helpers.number(this.target)} {this.unit}</span>\n </div>,\n <div class=\"s-progress-bar-wrapper\" style={{ 'height': this.height }}>\n <div class={{ \"s-progress-bar-progress\": true, 's-progress-bar-progress-stripped': this.stripped }}\n style={{ 'width': `${this.getPercentage()}%`, 'background-color': this.color }}>\n </div>\n </div>\n ] : '';\n }\n\n}\n"],"version":3}
|
|
@@ -257,7 +257,7 @@ const SallaSlider = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
257
257
|
salla.logger.warn('failed load swiper bundle', error);
|
|
258
258
|
reject(true);
|
|
259
259
|
};
|
|
260
|
-
this.swiperScript.src = 'https://cdn.
|
|
260
|
+
this.swiperScript.src = 'https://cdn.salla.network/js/swiper@8.js';
|
|
261
261
|
this.swiperScript.setAttribute('id', 'swiper-script');
|
|
262
262
|
document.body.appendChild(this.swiperScript);
|
|
263
263
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"salla-slider2.js","mappings":";;;;;;;;;;;;;AAAA,MAAM,cAAc,GAAG,60bAA60b;;MCcv1b,WAAW;EAEtB;;;;;;;;;;;;;;;;;;;IA0WQ,iBAAY,GAAY,KAAK,CAAC;IAE9B,uBAAkB,GAAG;MAC3B,QAAQ,EAAE;QACR,KAAK,EAAE,GAAG;QACV,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,CAAC;OAChB;MACD,SAAS,EAAE;QACT,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,IAAI;OACf;MACD,UAAU,EAAE;QACV,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,UAAU;QACrB,YAAY,EAAE,KAAK;QACnB,mBAAmB,EAAE,IAAI;QACzB,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,EAAE;OACf;MACD,YAAY,EAAE;QACZ,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE;OAC5C;MACD,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE;UACX,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;UACzB,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;UACzB,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;SACzB;OACF;MACD,MAAM,EAAE;QACN,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,EAAE;OACjB;KACF,CAAA;sBA9Y6C,EAAE;oCAKa,KAAK;yBAKjB,EAAE;yBAKF,EAAE;0BAKA,KAAK;0BAKL,KAAK;sBAKT,KAAK;oBAKP,KAAK;sBAKH,KAAK;wBAKH,IAAI;yBAKH,KAAK;8BAKjB,IAAI;oBAKd,KAAK;yBAKD,MAAM;sBAKR,KAAK;oBAKP,KAAK;gBAKT,KAAK;;gBAW0F,EAAE;;wBAwB5E,EAAE;wBAoOH,SAAS;iBAC3B,KAAK;uBACC,IAAI;;;IA/VlC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAA;GAChE;;;;;;;;;EAuND,MAAM,OAAO,CAAC,KAAa,EAAE,KAAc,EAAE,YAAsB;IAEjE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;GACxD;;;;;;;EASD,MAAM,SAAS,CAAC,KAAc,EAAE,YAAsB;;IACpD,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;GAC7C;;;;;;;EASD,MAAM,SAAS,CAAC,KAAc,EAAE,YAAsB;;IACpD,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;GAC7C;;;;;;;EASD,MAAM,WAAW,CAAC,KAAa,EAAE,KAAc,EAAE,YAAsB;IACrE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;GACrD;;;;;;;EASD,MAAM,aAAa,CAAC,KAAc,EAAE,YAAsB;IACxD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;GAChD;;;;;;;EASD,MAAM,aAAa,CAAC,KAAc,EAAE,YAAsB;IACxD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;GAChD;;;;;;;EASD,MAAM,UAAU,CAAC,KAAc,EAAE,YAAsB;IACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;GAC7C;;;;;;EAQD,MAAM,cAAc,CAAC,KAAc,EAAE,YAAsB;IACzD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;GACjD;;;;EAMD,MAAM,MAAM;IACV,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;GACtB;;;;;EAOD,MAAM,gBAAgB,CAAC,KAAc;IACnC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;GACrC;;;;EAMD,MAAM,YAAY;IAChB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;GAC5B;;;;EAMD,MAAM,cAAc;IAClB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;GAC9B;;;;EAMD,MAAM,mBAAmB;IACvB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;GACnC;;;;EAOD,MAAM,SAAS;;IACb,OAAO,OAAM,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAA,CAAC;GAClC;EA6DD,iBAAiB;IACf,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;MAClB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;KAClE,CAAC,CAAA;IACF,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,wBAAwB,EAAE;MACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,yBAAyB,EAAE,IAAI;;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE;UACnC,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,0CAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;UACpI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;SAClE;OACF,CAAC,CAAC;KACJ;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;;MAEjC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;OACtB;MAED,IAAI,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;QAC5C,IAAI,QAAQ,GAAG,WAAW,CAAC;;UAEzB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,CAAC;WACf;SACF,EAAE,CAAC,CAAC,CAAC;OACP;WAAM;;;QAGL,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG;UACzB,OAAO,CAAC,IAAI,CAAC,CAAA;UACb,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACpC,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,KAAK;UAChC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;UACtD,MAAM,CAAC,IAAI,CAAC,CAAA;SACb,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,4DAA4D,CAAC;QACrF,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;OAC9C;KACF,CAAC,CAAC;GACJ;EAED,eAAe;IACb,IAAI,kBAAkB,GAAG;MACvB,IAAI,EAAE,IAAI,CAAC,IAAI;MACf,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ;MACvF,cAAc,EAAE,IAAI,CAAC,QAAQ;MAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;MACjC,UAAU,EAAE,IAAI,CAAC,UAAU;MAC3B,IAAI,EAAE,IAAI;MACV,EAAE,EAAE;;;QAGF,SAAS,EAAE,CAAC,MAAkB;;UAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;UAC5B,MAAA,QAAQ,CAAC,gBAAgB,0CAAE,MAAM,EAAE,CAAC;UACpC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;YAClC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;cACvD,OAAO;aACR;YACD,KAAK,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;WAC7F,CAAC,CAAA;SACH;OACF;MACD,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG;QAC5B,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,EAAE;QAC7D,SAAS,EAAE,IAAI;OAChB,GAAG,KAAK;MACT,UAAU,EAAE,IAAI,CAAC,YAAY,GAAG;QAC9B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,EAAE;QAC7D,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,EAAE;OAC9D,GAAG,KAAK;MACT,WAAW,EAAE;QACX,GAAG,EAAE;UACH,SAAS,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,YAAY;SACrD;OACF;KACF,CAAC;IACF,IAAI,yBAAyB,GAAG;MAC9B,QAAQ,EAAE,KAAK;MACf,mBAAmB,EAAE,IAAI;MACzB,aAAa,EAAE,CAAC;MAChB,YAAY,EAAE,EAAE;MAChB,aAAa,EAAE,IAAI;MACnB,qBAAqB,EAAE,IAAI;MAC3B,WAAW,EAAE;QACX,GAAG,EAAE;UACH,SAAS,EAAE,IAAI,CAAC,cAAc,GAAG,UAAU,GAAG,YAAY;UAC1D,YAAY,EAAE,EAAE;SACjB;OACF;MACD,UAAU,EAAE,IAAI,CAAC,kBAAkB,GAAG;QACpC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,wBAAwB,GAAG,EAAE;QACpE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,wBAAwB,GAAG,EAAE;OACrE,GAAG,KAAK;KACV,CAAA;IACD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,GAAG;MAC9C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI;KACtF;MACC,kBAAkB,mCACb,kBAAkB,IACjB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAC7C,CAAC;IAEJ,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;MACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAe,EAAE;;QAE5D,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;OACpC;MAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;QAC1C,IAAI;UACJ,yBAAyB,mCACpB,yBAAyB,GACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CACjC,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;UACd,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;SAClE;OACF;;MAEC,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;;MAGtF,kBAAkB,CAAC,MAAM,GAAG;QAC1B,MAAM,EAAE,IAAI,CAAC,YAAY;OAC1B,CAAC;KACH;IAED,kBAAkB,qBACb,kBAAkB,CACtB,CAAC;IACF,IAAI,IAAI,CAAC,YAAY,EAAE;MACrB,IAAI;QACF,kBAAkB,mCACb,kBAAkB,GAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CACjC,CAAC;OACH;MAAC,OAAO,KAAK,EAAE;QACd,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;OAC3D;KACF;IACD,OAAO,kBAAkB,CAAA;GAC1B;EAED,UAAU;IACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAe,EAAE;MACtD,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;KACpC;;IAGD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;;IAGtE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,MAAkB;;MAE/C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;MACtC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;MAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAAC,MAAkB;MAC5D,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,UAAkB,CAAC,cAAc,GAAG,WAAW,KAAK,CAAC,KAAK,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;OACpH;MACD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAC3C,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3G,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/G,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3G,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/G,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAkB,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;GACpG;EAED,MAAM;IACJ,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE,CAAC;IACtD,OAAO,IAAI,IAAI,CAAC,aAAa,GAAG,2BAA2B,GAAG,EAAE,CAAC;IACjE,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,GAAG,4CAA4C,GAAG,EAAE,CAAC;IACrF,OAAO,IAAI,IAAI,CAAC,cAAc,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;IACjF,OAAO,IAAI,IAAI,CAAC,cAAc,GAAG,uBAAuB,GAAG,EAAE,CAAC;IAC9D,OAAO,IAAI,IAAI,CAAC,UAAU,GAAG,6BAA6B,GAAG,EAAE,CAAC;IAChE,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,IAGvC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY;MACnC,WAAK,KAAK,EAAC,uBAAuB,IAC/B,IAAI,CAAC,UAAU;QACd,WAAK,KAAK,EAAC,6BAA6B,IACtC,cAAK,IAAI,CAAC,UAAU,CAAM,EACzB,IAAI,CAAC,aAAa,GAAG,SAAG,SAAS,EAAE,IAAI,CAAC,aAAa,GAAI,GAAG,EAAE,CAC3D;UACJ,EAAE,EAEN,WAAK,KAAK,EAAC,4BAA4B,IACpC,IAAI,CAAC,aAAa;QACjB,SAAG,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAC,6BAA6B,IAAE,IAAI,CAAC,eAAe,CAAK;UACzF,EAAE,EACL,IAAI,CAAC,YAAY;QAChB,WAAK,KAAK,EAAC,2BAA2B,EAAC,GAAG,EAAC,KAAK,IAC9C,4BAAmB,gBAAgB,EAAC,KAAK,EAAC,kCAAkC,IAC1E,YAAM,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,GAAGA,sBAAc,GAAG,aAAa,GAAI,CACnG,EACT,4BAAmB,YAAY,EAAC,KAAK,EAAC,kCAAkC,IACtE,YAAM,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,aAAa,GAAGA,sBAAc,GAAI,CACnG,CACL;UACJ,EAAE,CACF,CACF;QACJ,EAAE,EAEN,WAAK,KAAK,EAAC,2BAA2B,EAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,eAAe,GAAG,EAAoB,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,IACxI,eAAQ,EACR,WAAK,KAAK,EAAC,wCAAwC,EAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,EAAoB,IACtG,YAAM,IAAI,EAAC,OAAO,GAAG,CACjB,EACL,IAAI,CAAC,UAAU,GAAG,WAAK,KAAK,EAAC,mBAAmB,GAAO,GAAG,EAAE,CACzD,EAEL,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,YAAY,GAAG,WAAK,KAAK,EAAC,iBAAiB,IACxE,WAAK,KAAK,EAAC,kCAAkC,EAAC,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,qBAAqB,GAAG,EAAoB,IAC3J,WAAK,KAAK,EAAE,EAAE,wCAAwC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,mBAAmB,GAAG,EAAoB,IACjK,YAAM,IAAI,EAAC,QAAQ,GAAG,CAClB,EACL,IAAI,CAAC,kBAAkB;MACtB,WAAK,KAAK,EAAC,qBAAqB,EAAC,GAAG,EAAC,KAAK,IACxC,4BAAmB,gBAAgB,EAAC,KAAK,EAAC,yCAAyC,IACjF,YAAM,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,GAAGA,sBAAc,GAAG,aAAa,GAAI,CACnG,EACT,4BAAmB,YAAY,EAAC,KAAK,EAAC,yCAAyC,IAC7E,YAAM,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,aAAa,GAAGA,sBAAc,GAAI,CACnG,CACL;QACJ,IAAI,CACJ,CACF;QACF,IAAI,CACH,EACP;GACH;EAED,gBAAgB;IACd,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACtE,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,QAAe,CAAC,GAAG,IAAI,CAAC;IACzE,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;MAC9C,IAAI,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;MAC9E,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,QAAe,CAAC,GAAG,IAAI,CAAC;KAC7E;;;IAID,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;MACjC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;KAC5D;SAAM;MACL,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["ArrowRightIcon"],"sources":["./src/components/salla-slider/salla-slider.scss?tag=salla-slider","./src/components/salla-slider/salla-slider.tsx"],"sourcesContent":["//🚨🚨todo:: find a better way, it loads it to the dom\n@import \"~swiper/swiper\";\n@import \"~swiper/modules/pagination/pagination\";\n@import \"~swiper/modules/navigation/navigation\";\n\n.s-slider-wrapper {\n &-container{\n\n }\n &-thumbs{\n &-container{\n\n }\n }\n &-button-next{\n svg{\n\n }\n }\n &-button-prev{\n svg{\n\n }\n }\n}\n","import { Component, State, Prop, h, Event, Host, EventEmitter, Method, Element } from '@stencil/core';\nimport { Swiper as SwiperType } from 'swiper/types';\n\nimport ArrowRightIcon from \"../../assets/svg/keyboard_arrow_right.svg\";\nimport ArrowLeftIcon from \"../../assets/svg/keyboard_arrow_left.svg\";\n\n/**\n * @slot items - Slider items.\n * @slot thumbs - Thumbs slider items.\n */\n@Component({\n tag: 'salla-slider',\n styleUrl: 'salla-slider.scss',\n})\nexport class SallaSlider {\n @Element() host: HTMLElement;\n constructor() {\n this.direction = this.direction || document.documentElement.dir\n }\n\n /**\n * Show/hide slider block title\n */\n @Prop({ reflect: true }) blockTitle: string = '';\n\n /**\n * Enable call a specific slide by index from thumbnails option in `salla-slider-options` component, works only if `data-img-id` and `data-slid-index` attributes are set on each slide\n */\n @Prop({ reflect: true }) listenToThumbnailsOption: boolean = false;\n\n /**\n * Show/hide slider block sub title\n */\n @Prop({ reflect: true }) blockSubtitle: string = '';\n\n /**\n * Show/hide display all button beside arrows\n */\n @Prop({ reflect: true }) displayAllUrl: string = '';\n\n /**\n * Show/hide display all button beside arrows\n */\n @Prop({ reflect: true }) arrowsCentered: boolean = false;\n\n /**\n * Vertical or Horizontal thumbs slider\n */\n @Prop({ reflect: true }) verticalThumbs: boolean = false;\n\n /**\n * Disable thumbs slider and show it as a grid\n */\n @Prop({ reflect: true }) gridThumbs: boolean = false;\n\n /**\n * Vertical or Horizontal main slider\n */\n @Prop({ reflect: true }) vertical: boolean = false;\n\n /**\n * Auto Height slider\n */\n @Prop({ reflect: true }) autoHeight: boolean = false;\n\n /**\n * Show/hide arrows\n */\n @Prop({ reflect: true }) showControls: boolean = true;\n\n /**\n * Show/hide arrows\n */\n @Prop({ reflect: true }) controlsOuter: boolean = false;\n\n /**\n * Show/hide thumbs slider arrows\n */\n @Prop() showThumbsControls: boolean = true;\n\n /**\n * Enable autoplay - working with `type=\"carousel\" only`\n */\n @Prop() autoPlay: boolean = false;\n\n /**\n * slidesPerView\n */\n @Prop() slidesPerView: string = \"auto\";\n\n /**\n * Enable pagination\n */\n @Prop() pagination: boolean = false;\n\n /**\n * Enable center mode - working with `type=\"carousel\" only`\n */\n @Prop() centered: boolean = false;\n\n /**\n * Run slider in loop, Don't use it for slides with custom components inside it, because it may cause re-render issue\n */\n @Prop() loop: boolean = false;\n\n /**\n * Slider direction. Default: document.documentElement.dir\n */\n @Prop({ mutable: true, reflect: true }) direction: string;\n\n /**\n * Set the type of the slider\n * Default: ''\n */\n @Prop() type: 'carousel' | 'fullscreen' | 'thumbs' | 'default' | 'hero' | 'testimonials' | 'blog' | 'fullwidth' | '' = '';\n /**\n * Slider Configs refer to https://swiperjs.com/swiper-api#parameters and pass the entire config object\n * @example\n * let slider = document.querySelector('salla-slider');\n * slider.sliderConfig = {\n * slidesPerView: 1,\n * spaceBetween : 30,\n * lazy: true,\n * }\n *\n */\n @Prop({ reflect: true }) sliderConfig: any;\n /**\n * Thumbs Slider Configs refer to https://swiperjs.com/swiper-api#parameters and pass the entire config object\n * @example\n * let slider = document.querySelector('salla-slider');\n * slider.thumbsConfig = {\n * slidesPerView: 1,\n * spaceBetween : 30,\n * lazy: true,\n * }\n *\n */\n @Prop({ reflect: true }) thumbsConfig: any = {};\n\n // Events\n /**\n * Event will fired right after initialization.\n */\n @Event() afterInit: EventEmitter<any>;\n /**\n * Event will be fired when currently active slide is changed\n */\n @Event() slideChange: EventEmitter<any>;\n\n /**\n * Event will be fired when Swiper reach its beginning (initial position)\n */\n @Event() reachBeginning: EventEmitter<any>;\n\n /**\n * Event will be fired when Swiper reach last slide\n */\n @Event() reachEnd: EventEmitter<any>;\n\n /**\n * Event will be fired after animation to other slide (next or previous).\n */\n @Event() slideChangeTransitionEnd: EventEmitter<any>;\n\n /**\n * Event will be fired in the beginning of animation to other slide (next or previous).\n */\n @Event() slideChangeTransitionStart: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionEnd\" but for \"forward\" direction only\n */\n @Event() slideNextTransitionEnd: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionStart\" but for \"forward\" direction only\n */\n @Event() slideNextTransitionStart: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionEnd\" but for \"backward\" direction only\n */\n @Event() slidePrevTransitionEnd: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionStart\" but for \"backward\" direction only\n */\n @Event() slidePrevTransitionStart: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch and move finger over Swiper and move it.\n * Receives touchmove event as an arguments.\n */\n @Event() sliderMove: EventEmitter<any>;\n\n /**\n * Event will be fired when user release Swiper. Receives touchend event as an arguments.\n */\n @Event() touchSliderEnd: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch and move finger over Swiper.\n * Receives touchmove event as an arguments.\n */\n @Event() touchSliderMove: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch Swiper. Receives touchstart event as an arguments.\n */\n @Event() touchSliderStart: EventEmitter<any>;\n\n /**\n * Event will be fired after transition.\n */\n @Event() sliderTransitionEnd: EventEmitter<any>;\n\n /**\n * Event will be fired in the beginning of transition.\n */\n @Event() sliderTransitionStart: EventEmitter<any>;\n\n\n // Methods\n\n /**\n * Run transition to the slide with index number equal to 'index' parameter for the duration equal to 'speed' parameter.\n *\n * @param {number} index - Index number of slide.\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideTo(index: number, speed?: number, runCallbacks?: boolean) {\n\n return this.slider.slideTo(index, speed, runCallbacks);\n }\n\n /**\n * Run transition to the next slide.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideNext(speed?: number, runCallbacks?: boolean) {\n this.slider?.slideNext(speed, runCallbacks);\n }\n\n /**\n * Run transition to the previous slide.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slidePrev(speed?: number, runCallbacks?: boolean) {\n this.slider?.slidePrev(speed, runCallbacks);\n }\n\n /**\n * Does the same as .slideTo but for the case when used with enabled loop. So this method will slide to slides with realIndex matching to passed index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideToLoop(index: number, speed?: number, runCallbacks?: boolean) {\n this.slider.slideToLoop(index, speed, runCallbacks);\n }\n\n /**\n * Does the same as .slideNext but for the case when used with enabled loop. So this method will slide to next slide with realIndex matching to next index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideNextLoop(speed?: number, runCallbacks?: boolean) {\n this.slider.slideNextLoop(speed, runCallbacks);\n }\n\n /**\n * Does the same as .slidePrev but for the case when used with enabled loop. So this method will slide to previous slide with realIndex matching to previous index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slidePrevLoop(speed?: number, runCallbacks?: boolean) {\n this.slider.slidePrevLoop(speed, runCallbacks);\n }\n\n /**\n * Reset slider position to currently active slide for the duration equal to 'speed' parameter.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideReset(speed?: number, runCallbacks?: boolean) {\n this.slider.slideReset(speed, runCallbacks);\n }\n\n /**\n * Reset slider position to closest slide/snap point for the duration equal to 'speed' parameter.\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideToClosest(speed?: number, runCallbacks?: boolean) {\n this.slider.slideToClosest(speed, runCallbacks);\n }\n\n /**\n * You should call it after you add/remove slides manually, or after you hide/show it, or do any custom DOM modifications with Swiper This method also includes subcall of the following methods which you can use separately:\n * **/\n @Method()\n async update() {\n this.slider.update();\n }\n\n /**\n * Force slider to update its height (when autoHeight enabled) for the duration equal to 'speed' parameter\n * @param {number} speed - Transition duration (in ms).\n * **/\n @Method()\n async updateAutoHeight(speed?: number) {\n this.slider.updateAutoHeight(speed);\n }\n\n /**\n * recalculate number of slides and their offsets. Useful after you add/remove slides with JavaScript\n * **/\n @Method()\n async updateSlides() {\n this.slider.updateSlides();\n }\n\n /**\n * recalculate slider progress\n * **/\n @Method()\n async updateProgress() {\n this.slider.updateProgress();\n }\n\n /**\n * update active/prev/next classes on slides and bullets\n * **/\n @Method()\n async updateSlidesClasses() {\n this.slider.updateSlidesClasses();\n }\n\n\n /**\n * Get slider slides\n * **/\n @Method()\n async getSlides() {\n return await this.slider?.slides;\n }\n\n\n // States\n @State() currentIndex: number | undefined = undefined;\n @State() isEnd: boolean = false;\n @State() isBeginning: boolean = true;\n @State() swiperScript: any;\n @State() displayAllTitle: string;\n\n private sliderContainer?: HTMLDivElement;\n private sliderWrapper?: HTMLDivElement;\n private thumbsSliderContainer?: HTMLDivElement;\n private thumbsSliderWrapper?: HTMLDivElement;\n private slider: any;\n private thumbsSlider: any;\n private hasThumbSlot: boolean = false;\n\n private pre_defined_config = {\n carousel: {\n speed: 300,\n slidesPerView: 'auto',\n spaceBetween: 0,\n },\n fullwidth: {\n speed: 750,\n parallax: true,\n },\n fullscreen: {\n speed: 1000,\n parallax: true,\n direction: \"vertical\",\n followFinger: false,\n touchReleaseOnEdges: true,\n lazy: true,\n mousewheel: {}\n },\n testimonials: {\n draggable: true,\n slidesPerView: 1,\n breakpoints: { 1024: { slidesPerView: 2 } }\n },\n blog: {\n parallax: true,\n speed: 800,\n loop: true,\n slidesPerView: 1,\n centeredSlides: true,\n spaceBetween: 30,\n breakpoints: {\n 320: { spaceBetween: 10 },\n 768: { spaceBetween: 15 },\n 980: { paceBetween: 30 },\n }\n },\n thumbs: {\n slidesPerView: 1,\n spaceBetween: 30\n }\n }\n\n componentWillLoad() {\n salla.lang.onLoaded(() => {\n this.displayAllTitle = salla.lang.get('blocks.home.display_all');\n })\n this.hasThumbSlot = !!this.host.querySelector('[slot=\"thumbs\"]');\n if (this.listenToThumbnailsOption) {\n salla.event.on('product-options::change', data => {\n if (data.option.type == 'thumbnail') {\n const slideIndex = this.sliderWrapper.querySelector(`[data-img-id=\"${data.detail.option_value}\"]`)?.getAttribute('data-slid-index');\n slideIndex ? this.slideTo(parseInt(slideIndex), 300, false) : '';\n }\n });\n }\n return new Promise((resolve, reject) => {\n // @ts-ignore\n if (typeof Swiper !== 'undefined') {\n return resolve(true);\n }\n\n if (document.getElementById('swiper-script')) {\n let interval = setInterval(() => {\n // @ts-ignore\n if (typeof Swiper !== 'undefined') {\n clearInterval(interval);\n resolve(true);\n }\n }, 5);\n } else {\n // ? There is an issue with stencil bundling it breaks the swiper import, so we need to import it manually by swiperjs rerendered file\n // ! IT'S NOT A GOOD SOLUTION, BUT IT WORKS, WE NEED TO FIND A BETTER SOLUTION\n this.swiperScript = document.createElement('script');\n this.swiperScript.onload = () => {\n resolve(true)\n salla.event.emit('swiper::loaded');\n }\n this.swiperScript.onerror = (error) => {\n salla.logger.warn('failed load swiper bundle', error);\n reject(true)\n }\n this.swiperScript.src = 'https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js';\n this.swiperScript.setAttribute('id', 'swiper-script');\n document.body.appendChild(this.swiperScript);\n }\n });\n }\n\n getSwiperConfig() {\n let pre_defined_config = {\n loop: this.loop,\n autoplay: this.type == 'fullwidth' && !!this.autoPlay ? { delay: 5000 } : this.autoPlay,\n centeredSlides: this.centered,\n slidesPerView: this.slidesPerView,\n autoHeight: this.autoHeight,\n lazy: true,\n on: {\n // todo:: find better way for this workaround to show lazyLoad for duplicated slides, because it clones the slide after it's already rendered,\n // then it re appended it as is,in this case the image is loaded but class not added.\n afterInit: (slider: SwiperType) => {\n this.afterInit.emit(slider);\n document.lazyLoadInstance?.update();\n this.loop && slider.slides.map(slide => {\n if (!slide.classList.contains('swiper-slide-duplicate')) {\n return;\n }\n slide.querySelectorAll('img.lazy:not(.loaded)').forEach(img => img.classList.add('loaded'));\n })\n },\n },\n pagination: this.pagination ? {\n el: this.host.id ? `#${this.host.id} .swiper-pagination` : '',\n clickable: true,\n } : false,\n navigation: this.showControls ? {\n nextEl: this.host.id ? `#${this.host.id} .s-slider-next` : '',\n prevEl: this.host.id ? `#${this.host.id} .s-slider-prev` : ''\n } : false,\n breakpoints: {\n 768: {\n direction: this.vertical ? \"vertical\" : \"horizontal\",\n },\n },\n };\n let pre_defined_thumbs_config = {\n freeMode: false,\n watchSlidesProgress: true,\n slidesPerView: 4,\n spaceBetween: 10,\n watchOverflow: true,\n watchSlidesVisibility: true,\n breakpoints: {\n 768: {\n direction: this.verticalThumbs ? \"vertical\" : \"horizontal\",\n spaceBetween: 16,\n },\n },\n navigation: this.showThumbsControls ? {\n nextEl: this.host.id ? `#${this.host.id} .s-slider-thumbs-next` : '',\n prevEl: this.host.id ? `#${this.host.id} .s-slider-thumbs-prev` : ''\n } : false,\n }\n this.pre_defined_config.fullscreen.mousewheel = {\n releaseOnEdges: this.host.querySelectorAll('.swiper-slide').length > 1 ? false : true\n },\n pre_defined_config = {\n ...pre_defined_config,\n ...(this.pre_defined_config[this.type] || {})\n };\n\n if (this.type == 'thumbs' && this.thumbsSliderWrapper) {\n for (const slide of this.thumbsSliderWrapper.children as any) {\n //todo:: use `s-slider-slide`\n slide.classList.add('swiper-slide')\n }\n\n if (this.hasThumbSlot && this.thumbsConfig) {\n try {\n pre_defined_thumbs_config = {\n ...pre_defined_thumbs_config,\n ...JSON.parse(this.thumbsConfig)\n }\n } catch (error) {\n salla.logger.warn('failed to parse thumbs slider config', error);\n }\n }\n // @ts-ignore\n this.thumbsSlider = new Swiper(this.thumbsSliderContainer, pre_defined_thumbs_config);\n \n // @ts-ignore\n pre_defined_config.thumbs = {\n swiper: this.thumbsSlider,\n };\n }\n\n pre_defined_config = {\n ...pre_defined_config,\n };\n if (this.sliderConfig) {\n try {\n pre_defined_config = {\n ...pre_defined_config,\n ...JSON.parse(this.sliderConfig)\n };\n } catch (error) {\n salla.logger.warn('failed to parse slider config', error);\n }\n }\n return pre_defined_config\n }\n\n initSlider() {\n for (const slide of this.sliderWrapper.children as any) {\n slide.classList.add('swiper-slide')\n }\n\n // @ts-ignore\n this.slider = new Swiper(this.sliderContainer, this.getSwiperConfig())\n\n // Expose slider events\n this.slider.on('slideChange', (slider: SwiperType) => {\n //todo:: it doesn't change when loop is active, always will be false\n this.isBeginning = slider.isBeginning;\n this.isEnd = slider.isEnd;\n this.slideChange.emit(slider);\n });\n this.slider.on('reachBeginning', (slider: SwiperType) => this.reachBeginning.emit(slider));\n this.slider.on('reachEnd', (slider: SwiperType) => this.reachEnd.emit(slider));\n this.slider.on('slideChangeTransitionEnd', (slider: SwiperType) => {\n if (this.type == \"fullscreen\") {\n const activeIndex = slider.activeIndex;\n (slider.params.mousewheel as any).releaseOnEdges = activeIndex === 0 || (activeIndex === slider.slides.length - 1);\n }\n this.slideChangeTransitionEnd.emit(slider)\n });\n this.slider.on('slideChangeTransitionStart', (slider: SwiperType) => this.slideChangeTransitionStart.emit(slider));\n this.slider.on('slideNextTransitionEnd', (slider: SwiperType) => this.slideNextTransitionEnd.emit(slider));\n this.slider.on('slideNextTransitionStart', (slider: SwiperType) => this.slideNextTransitionStart.emit(slider));\n this.slider.on('slidePrevTransitionEnd', (slider: SwiperType) => this.slidePrevTransitionEnd.emit(slider));\n this.slider.on('slidePrevTransitionStart', (slider: SwiperType) => this.slidePrevTransitionStart.emit(slider));\n this.slider.on('sliderMove', (slider: SwiperType) => this.sliderMove.emit(slider));\n this.slider.on('touchEnd', (slider: SwiperType) => this.touchSliderEnd.emit(slider));\n this.slider.on('touchMove', (slider: SwiperType) => this.touchSliderMove.emit(slider));\n this.slider.on('touchStart', (slider: SwiperType) => this.touchSliderStart.emit(slider));\n this.slider.on('transitionEnd', (slider: SwiperType) => this.sliderTransitionEnd.emit(slider));\n this.slider.on('transitionStart', (slider: SwiperType) => this.sliderTransitionStart.emit(slider));\n }\n\n render() {\n let classes = this.type ? this.type + '-slider ' : '';\n classes += this.controlsOuter ? ' s-slider-controls-outer ' : '';\n classes += this.blockTitle == '' ? ' s-slider-has-notitle s-slider-v-centered ' : '';\n classes += this.verticalThumbs ? ' s-slider-vertical ' : ' s-slider-horizontal ';\n classes += this.arrowsCentered ? ' s-slider-v-centered ' : '';\n classes += this.gridThumbs ? ' s-slider-with-grid-thumbs ' : '';\n return (\n <Host class={'s-slider-wrapper ' + classes}>\n\n {/* Slider block Title */}\n {this.blockTitle || this.showControls ?\n <div class=\"s-slider-block__title\">\n {this.blockTitle ?\n <div class=\"s-slider-block__title-right\">\n <h2>{this.blockTitle}</h2>\n {this.blockSubtitle ? <p innerHTML={this.blockSubtitle} /> : ''}\n </div>\n : ''}\n\n <div class=\"s-slider-block__title-left\">\n {this.displayAllUrl ?\n <a href={this.displayAllUrl} class=\"s-slider-block__display-all\">{this.displayAllTitle}</a>\n : ''}\n {this.showControls ?\n <div class=\"s-slider-block__title-nav\" dir=\"rtl\">\n <button aria-label=\"Previous Slide\" class=\"s-slider-prev s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon} />\n </button>\n <button aria-label=\"Next Slide\" class=\"s-slider-next s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon} />\n </button>\n </div>\n : ''}\n </div>\n </div>\n : ''}\n\n <div class=\"swiper s-slider-container\" ref={el => this.sliderContainer = el as HTMLDivElement} dir={this.vertical ? \"ltr\" : this.direction}>\n <slot />\n <div class=\"swiper-wrapper s-slider-swiper-wrapper\" ref={el => this.sliderWrapper = el as HTMLDivElement}>\n <slot name='items' />\n </div>\n {this.pagination ? <div class=\"swiper-pagination\"></div> : ''}\n </div>\n\n {this.type == 'thumbs' && this.hasThumbSlot ? <div class=\"s-slider-thumbs\">\n <div class=\"swiper s-slider-thumbs-container\" dir={this.verticalThumbs ? \"ltr\" : this.direction} ref={el => this.thumbsSliderContainer = el as HTMLDivElement}>\n <div class={{ \"s-slider-swiper-wrapper swiper-wrapper\": true, \"s-slider-grid-thumbs\": this.gridThumbs }} ref={el => this.thumbsSliderWrapper = el as HTMLDivElement}>\n <slot name=\"thumbs\" />\n </div>\n {this.showThumbsControls ?\n <div class=\"s-slider-thumbs-nav\" dir=\"rtl\">\n <button aria-label=\"Previous Slide\" class=\"s-slider-thumbs-prev s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon} />\n </button>\n <button aria-label=\"Next Slide\" class=\"s-slider-thumbs-next s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon} />\n </button>\n </div>\n : null}\n </div>\n </div>\n : null}\n </Host>\n );\n }\n\n componentDidLoad() {\n let itemsSlot = this.sliderWrapper.querySelector('div[slot=\"items\"]');\n !!itemsSlot ? itemsSlot.replaceWith(...itemsSlot.children as any) : null;\n if (this.type == 'thumbs' && this.hasThumbSlot) {\n let thumbsSlot = this.thumbsSliderWrapper.querySelector('div[slot=\"thumbs\"]');\n !!thumbsSlot ? thumbsSlot.replaceWith(...thumbsSlot.children as any) : null;\n }\n\n // if swiper is not loaded, lets relay on event\n // @ts-ignore\n if (typeof Swiper === 'undefined') {\n salla.event.once('swiper::loaded', () => this.initSlider())\n } else { // if swiper is loaded lets init our slider\n this.initSlider();\n }\n }\n}\n\n"],"version":3}
|
|
1
|
+
{"file":"salla-slider2.js","mappings":"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","names":["ArrowRightIcon"],"sources":["./src/components/salla-slider/salla-slider.scss?tag=salla-slider","./src/components/salla-slider/salla-slider.tsx"],"sourcesContent":["//🚨🚨todo:: find a better way, it loads it to the dom\n@import \"~swiper/swiper\";\n@import \"~swiper/modules/pagination/pagination\";\n@import \"~swiper/modules/navigation/navigation\";\n\n.s-slider-wrapper {\n &-container{\n\n }\n &-thumbs{\n &-container{\n\n }\n }\n &-button-next{\n svg{\n\n }\n }\n &-button-prev{\n svg{\n\n }\n }\n}\n","import { Component, State, Prop, h, Event, Host, EventEmitter, Method, Element } from '@stencil/core';\nimport { Swiper as SwiperType } from 'swiper/types';\n\nimport ArrowRightIcon from \"../../assets/svg/keyboard_arrow_right.svg\";\nimport ArrowLeftIcon from \"../../assets/svg/keyboard_arrow_left.svg\";\n\n/**\n * @slot items - Slider items.\n * @slot thumbs - Thumbs slider items.\n */\n@Component({\n tag: 'salla-slider',\n styleUrl: 'salla-slider.scss',\n})\nexport class SallaSlider {\n @Element() host: HTMLElement;\n constructor() {\n this.direction = this.direction || document.documentElement.dir\n }\n\n /**\n * Show/hide slider block title\n */\n @Prop({ reflect: true }) blockTitle: string = '';\n\n /**\n * Enable call a specific slide by index from thumbnails option in `salla-slider-options` component, works only if `data-img-id` and `data-slid-index` attributes are set on each slide\n */\n @Prop({ reflect: true }) listenToThumbnailsOption: boolean = false;\n\n /**\n * Show/hide slider block sub title\n */\n @Prop({ reflect: true }) blockSubtitle: string = '';\n\n /**\n * Show/hide display all button beside arrows\n */\n @Prop({ reflect: true }) displayAllUrl: string = '';\n\n /**\n * Show/hide display all button beside arrows\n */\n @Prop({ reflect: true }) arrowsCentered: boolean = false;\n\n /**\n * Vertical or Horizontal thumbs slider\n */\n @Prop({ reflect: true }) verticalThumbs: boolean = false;\n\n /**\n * Disable thumbs slider and show it as a grid\n */\n @Prop({ reflect: true }) gridThumbs: boolean = false;\n\n /**\n * Vertical or Horizontal main slider\n */\n @Prop({ reflect: true }) vertical: boolean = false;\n\n /**\n * Auto Height slider\n */\n @Prop({ reflect: true }) autoHeight: boolean = false;\n\n /**\n * Show/hide arrows\n */\n @Prop({ reflect: true }) showControls: boolean = true;\n\n /**\n * Show/hide arrows\n */\n @Prop({ reflect: true }) controlsOuter: boolean = false;\n\n /**\n * Show/hide thumbs slider arrows\n */\n @Prop() showThumbsControls: boolean = true;\n\n /**\n * Enable autoplay - working with `type=\"carousel\" only`\n */\n @Prop() autoPlay: boolean = false;\n\n /**\n * slidesPerView\n */\n @Prop() slidesPerView: string = \"auto\";\n\n /**\n * Enable pagination\n */\n @Prop() pagination: boolean = false;\n\n /**\n * Enable center mode - working with `type=\"carousel\" only`\n */\n @Prop() centered: boolean = false;\n\n /**\n * Run slider in loop, Don't use it for slides with custom components inside it, because it may cause re-render issue\n */\n @Prop() loop: boolean = false;\n\n /**\n * Slider direction. Default: document.documentElement.dir\n */\n @Prop({ mutable: true, reflect: true }) direction: string;\n\n /**\n * Set the type of the slider\n * Default: ''\n */\n @Prop() type: 'carousel' | 'fullscreen' | 'thumbs' | 'default' | 'hero' | 'testimonials' | 'blog' | 'fullwidth' | '' = '';\n /**\n * Slider Configs refer to https://swiperjs.com/swiper-api#parameters and pass the entire config object\n * @example\n * let slider = document.querySelector('salla-slider');\n * slider.sliderConfig = {\n * slidesPerView: 1,\n * spaceBetween : 30,\n * lazy: true,\n * }\n *\n */\n @Prop({ reflect: true }) sliderConfig: any;\n /**\n * Thumbs Slider Configs refer to https://swiperjs.com/swiper-api#parameters and pass the entire config object\n * @example\n * let slider = document.querySelector('salla-slider');\n * slider.thumbsConfig = {\n * slidesPerView: 1,\n * spaceBetween : 30,\n * lazy: true,\n * }\n *\n */\n @Prop({ reflect: true }) thumbsConfig: any = {};\n\n // Events\n /**\n * Event will fired right after initialization.\n */\n @Event() afterInit: EventEmitter<any>;\n /**\n * Event will be fired when currently active slide is changed\n */\n @Event() slideChange: EventEmitter<any>;\n\n /**\n * Event will be fired when Swiper reach its beginning (initial position)\n */\n @Event() reachBeginning: EventEmitter<any>;\n\n /**\n * Event will be fired when Swiper reach last slide\n */\n @Event() reachEnd: EventEmitter<any>;\n\n /**\n * Event will be fired after animation to other slide (next or previous).\n */\n @Event() slideChangeTransitionEnd: EventEmitter<any>;\n\n /**\n * Event will be fired in the beginning of animation to other slide (next or previous).\n */\n @Event() slideChangeTransitionStart: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionEnd\" but for \"forward\" direction only\n */\n @Event() slideNextTransitionEnd: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionStart\" but for \"forward\" direction only\n */\n @Event() slideNextTransitionStart: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionEnd\" but for \"backward\" direction only\n */\n @Event() slidePrevTransitionEnd: EventEmitter<any>;\n\n /**\n * Same as \"slideChangeTransitionStart\" but for \"backward\" direction only\n */\n @Event() slidePrevTransitionStart: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch and move finger over Swiper and move it.\n * Receives touchmove event as an arguments.\n */\n @Event() sliderMove: EventEmitter<any>;\n\n /**\n * Event will be fired when user release Swiper. Receives touchend event as an arguments.\n */\n @Event() touchSliderEnd: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch and move finger over Swiper.\n * Receives touchmove event as an arguments.\n */\n @Event() touchSliderMove: EventEmitter<any>;\n\n /**\n * Event will be fired when user touch Swiper. Receives touchstart event as an arguments.\n */\n @Event() touchSliderStart: EventEmitter<any>;\n\n /**\n * Event will be fired after transition.\n */\n @Event() sliderTransitionEnd: EventEmitter<any>;\n\n /**\n * Event will be fired in the beginning of transition.\n */\n @Event() sliderTransitionStart: EventEmitter<any>;\n\n\n // Methods\n\n /**\n * Run transition to the slide with index number equal to 'index' parameter for the duration equal to 'speed' parameter.\n *\n * @param {number} index - Index number of slide.\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideTo(index: number, speed?: number, runCallbacks?: boolean) {\n\n return this.slider.slideTo(index, speed, runCallbacks);\n }\n\n /**\n * Run transition to the next slide.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideNext(speed?: number, runCallbacks?: boolean) {\n this.slider?.slideNext(speed, runCallbacks);\n }\n\n /**\n * Run transition to the previous slide.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slidePrev(speed?: number, runCallbacks?: boolean) {\n this.slider?.slidePrev(speed, runCallbacks);\n }\n\n /**\n * Does the same as .slideTo but for the case when used with enabled loop. So this method will slide to slides with realIndex matching to passed index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideToLoop(index: number, speed?: number, runCallbacks?: boolean) {\n this.slider.slideToLoop(index, speed, runCallbacks);\n }\n\n /**\n * Does the same as .slideNext but for the case when used with enabled loop. So this method will slide to next slide with realIndex matching to next index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideNextLoop(speed?: number, runCallbacks?: boolean) {\n this.slider.slideNextLoop(speed, runCallbacks);\n }\n\n /**\n * Does the same as .slidePrev but for the case when used with enabled loop. So this method will slide to previous slide with realIndex matching to previous index\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slidePrevLoop(speed?: number, runCallbacks?: boolean) {\n this.slider.slidePrevLoop(speed, runCallbacks);\n }\n\n /**\n * Reset slider position to currently active slide for the duration equal to 'speed' parameter.\n *\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideReset(speed?: number, runCallbacks?: boolean) {\n this.slider.slideReset(speed, runCallbacks);\n }\n\n /**\n * Reset slider position to closest slide/snap point for the duration equal to 'speed' parameter.\n * @param {number} speed - Transition duration (in ms).\n * @param {boolean} runCallbacks - Set it to false (by default it is true) and transition will not produce transition events.\n * **/\n @Method()\n async slideToClosest(speed?: number, runCallbacks?: boolean) {\n this.slider.slideToClosest(speed, runCallbacks);\n }\n\n /**\n * You should call it after you add/remove slides manually, or after you hide/show it, or do any custom DOM modifications with Swiper This method also includes subcall of the following methods which you can use separately:\n * **/\n @Method()\n async update() {\n this.slider.update();\n }\n\n /**\n * Force slider to update its height (when autoHeight enabled) for the duration equal to 'speed' parameter\n * @param {number} speed - Transition duration (in ms).\n * **/\n @Method()\n async updateAutoHeight(speed?: number) {\n this.slider.updateAutoHeight(speed);\n }\n\n /**\n * recalculate number of slides and their offsets. Useful after you add/remove slides with JavaScript\n * **/\n @Method()\n async updateSlides() {\n this.slider.updateSlides();\n }\n\n /**\n * recalculate slider progress\n * **/\n @Method()\n async updateProgress() {\n this.slider.updateProgress();\n }\n\n /**\n * update active/prev/next classes on slides and bullets\n * **/\n @Method()\n async updateSlidesClasses() {\n this.slider.updateSlidesClasses();\n }\n\n\n /**\n * Get slider slides\n * **/\n @Method()\n async getSlides() {\n return await this.slider?.slides;\n }\n\n\n // States\n @State() currentIndex: number | undefined = undefined;\n @State() isEnd: boolean = false;\n @State() isBeginning: boolean = true;\n @State() swiperScript: any;\n @State() displayAllTitle: string;\n\n private sliderContainer?: HTMLDivElement;\n private sliderWrapper?: HTMLDivElement;\n private thumbsSliderContainer?: HTMLDivElement;\n private thumbsSliderWrapper?: HTMLDivElement;\n private slider: any;\n private thumbsSlider: any;\n private hasThumbSlot: boolean = false;\n\n private pre_defined_config = {\n carousel: {\n speed: 300,\n slidesPerView: 'auto',\n spaceBetween: 0,\n },\n fullwidth: {\n speed: 750,\n parallax: true,\n },\n fullscreen: {\n speed: 1000,\n parallax: true,\n direction: \"vertical\",\n followFinger: false,\n touchReleaseOnEdges: true,\n lazy: true,\n mousewheel: {}\n },\n testimonials: {\n draggable: true,\n slidesPerView: 1,\n breakpoints: { 1024: { slidesPerView: 2 } }\n },\n blog: {\n parallax: true,\n speed: 800,\n loop: true,\n slidesPerView: 1,\n centeredSlides: true,\n spaceBetween: 30,\n breakpoints: {\n 320: { spaceBetween: 10 },\n 768: { spaceBetween: 15 },\n 980: { paceBetween: 30 },\n }\n },\n thumbs: {\n slidesPerView: 1,\n spaceBetween: 30\n }\n }\n\n componentWillLoad() {\n salla.lang.onLoaded(() => {\n this.displayAllTitle = salla.lang.get('blocks.home.display_all');\n })\n this.hasThumbSlot = !!this.host.querySelector('[slot=\"thumbs\"]');\n if (this.listenToThumbnailsOption) {\n salla.event.on('product-options::change', data => {\n if (data.option.type == 'thumbnail') {\n const slideIndex = this.sliderWrapper.querySelector(`[data-img-id=\"${data.detail.option_value}\"]`)?.getAttribute('data-slid-index');\n slideIndex ? this.slideTo(parseInt(slideIndex), 300, false) : '';\n }\n });\n }\n return new Promise((resolve, reject) => {\n // @ts-ignore\n if (typeof Swiper !== 'undefined') {\n return resolve(true);\n }\n\n if (document.getElementById('swiper-script')) {\n let interval = setInterval(() => {\n // @ts-ignore\n if (typeof Swiper !== 'undefined') {\n clearInterval(interval);\n resolve(true);\n }\n }, 5);\n } else {\n // ? There is an issue with stencil bundling it breaks the swiper import, so we need to import it manually by swiperjs rerendered file\n // ! IT'S NOT A GOOD SOLUTION, BUT IT WORKS, WE NEED TO FIND A BETTER SOLUTION\n this.swiperScript = document.createElement('script');\n this.swiperScript.onload = () => {\n resolve(true)\n salla.event.emit('swiper::loaded');\n }\n this.swiperScript.onerror = (error) => {\n salla.logger.warn('failed load swiper bundle', error);\n reject(true)\n }\n this.swiperScript.src = 'https://cdn.salla.network/js/swiper@8.js';\n this.swiperScript.setAttribute('id', 'swiper-script');\n document.body.appendChild(this.swiperScript);\n }\n });\n }\n\n getSwiperConfig() {\n let pre_defined_config = {\n loop: this.loop,\n autoplay: this.type == 'fullwidth' && !!this.autoPlay ? { delay: 5000 } : this.autoPlay,\n centeredSlides: this.centered,\n slidesPerView: this.slidesPerView,\n autoHeight: this.autoHeight,\n lazy: true,\n on: {\n // todo:: find better way for this workaround to show lazyLoad for duplicated slides, because it clones the slide after it's already rendered,\n // then it re appended it as is,in this case the image is loaded but class not added.\n afterInit: (slider: SwiperType) => {\n this.afterInit.emit(slider);\n document.lazyLoadInstance?.update();\n this.loop && slider.slides.map(slide => {\n if (!slide.classList.contains('swiper-slide-duplicate')) {\n return;\n }\n slide.querySelectorAll('img.lazy:not(.loaded)').forEach(img => img.classList.add('loaded'));\n })\n },\n },\n pagination: this.pagination ? {\n el: this.host.id ? `#${this.host.id} .swiper-pagination` : '',\n clickable: true,\n } : false,\n navigation: this.showControls ? {\n nextEl: this.host.id ? `#${this.host.id} .s-slider-next` : '',\n prevEl: this.host.id ? `#${this.host.id} .s-slider-prev` : ''\n } : false,\n breakpoints: {\n 768: {\n direction: this.vertical ? \"vertical\" : \"horizontal\",\n },\n },\n };\n let pre_defined_thumbs_config = {\n freeMode: false,\n watchSlidesProgress: true,\n slidesPerView: 4,\n spaceBetween: 10,\n watchOverflow: true,\n watchSlidesVisibility: true,\n breakpoints: {\n 768: {\n direction: this.verticalThumbs ? \"vertical\" : \"horizontal\",\n spaceBetween: 16,\n },\n },\n navigation: this.showThumbsControls ? {\n nextEl: this.host.id ? `#${this.host.id} .s-slider-thumbs-next` : '',\n prevEl: this.host.id ? `#${this.host.id} .s-slider-thumbs-prev` : ''\n } : false,\n }\n this.pre_defined_config.fullscreen.mousewheel = {\n releaseOnEdges: this.host.querySelectorAll('.swiper-slide').length > 1 ? false : true\n },\n pre_defined_config = {\n ...pre_defined_config,\n ...(this.pre_defined_config[this.type] || {})\n };\n\n if (this.type == 'thumbs' && this.thumbsSliderWrapper) {\n for (const slide of this.thumbsSliderWrapper.children as any) {\n //todo:: use `s-slider-slide`\n slide.classList.add('swiper-slide')\n }\n\n if (this.hasThumbSlot && this.thumbsConfig) {\n try {\n pre_defined_thumbs_config = {\n ...pre_defined_thumbs_config,\n ...JSON.parse(this.thumbsConfig)\n }\n } catch (error) {\n salla.logger.warn('failed to parse thumbs slider config', error);\n }\n }\n // @ts-ignore\n this.thumbsSlider = new Swiper(this.thumbsSliderContainer, pre_defined_thumbs_config);\n \n // @ts-ignore\n pre_defined_config.thumbs = {\n swiper: this.thumbsSlider,\n };\n }\n\n pre_defined_config = {\n ...pre_defined_config,\n };\n if (this.sliderConfig) {\n try {\n pre_defined_config = {\n ...pre_defined_config,\n ...JSON.parse(this.sliderConfig)\n };\n } catch (error) {\n salla.logger.warn('failed to parse slider config', error);\n }\n }\n return pre_defined_config\n }\n\n initSlider() {\n for (const slide of this.sliderWrapper.children as any) {\n slide.classList.add('swiper-slide')\n }\n\n // @ts-ignore\n this.slider = new Swiper(this.sliderContainer, this.getSwiperConfig())\n\n // Expose slider events\n this.slider.on('slideChange', (slider: SwiperType) => {\n //todo:: it doesn't change when loop is active, always will be false\n this.isBeginning = slider.isBeginning;\n this.isEnd = slider.isEnd;\n this.slideChange.emit(slider);\n });\n this.slider.on('reachBeginning', (slider: SwiperType) => this.reachBeginning.emit(slider));\n this.slider.on('reachEnd', (slider: SwiperType) => this.reachEnd.emit(slider));\n this.slider.on('slideChangeTransitionEnd', (slider: SwiperType) => {\n if (this.type == \"fullscreen\") {\n const activeIndex = slider.activeIndex;\n (slider.params.mousewheel as any).releaseOnEdges = activeIndex === 0 || (activeIndex === slider.slides.length - 1);\n }\n this.slideChangeTransitionEnd.emit(slider)\n });\n this.slider.on('slideChangeTransitionStart', (slider: SwiperType) => this.slideChangeTransitionStart.emit(slider));\n this.slider.on('slideNextTransitionEnd', (slider: SwiperType) => this.slideNextTransitionEnd.emit(slider));\n this.slider.on('slideNextTransitionStart', (slider: SwiperType) => this.slideNextTransitionStart.emit(slider));\n this.slider.on('slidePrevTransitionEnd', (slider: SwiperType) => this.slidePrevTransitionEnd.emit(slider));\n this.slider.on('slidePrevTransitionStart', (slider: SwiperType) => this.slidePrevTransitionStart.emit(slider));\n this.slider.on('sliderMove', (slider: SwiperType) => this.sliderMove.emit(slider));\n this.slider.on('touchEnd', (slider: SwiperType) => this.touchSliderEnd.emit(slider));\n this.slider.on('touchMove', (slider: SwiperType) => this.touchSliderMove.emit(slider));\n this.slider.on('touchStart', (slider: SwiperType) => this.touchSliderStart.emit(slider));\n this.slider.on('transitionEnd', (slider: SwiperType) => this.sliderTransitionEnd.emit(slider));\n this.slider.on('transitionStart', (slider: SwiperType) => this.sliderTransitionStart.emit(slider));\n }\n\n render() {\n let classes = this.type ? this.type + '-slider ' : '';\n classes += this.controlsOuter ? ' s-slider-controls-outer ' : '';\n classes += this.blockTitle == '' ? ' s-slider-has-notitle s-slider-v-centered ' : '';\n classes += this.verticalThumbs ? ' s-slider-vertical ' : ' s-slider-horizontal ';\n classes += this.arrowsCentered ? ' s-slider-v-centered ' : '';\n classes += this.gridThumbs ? ' s-slider-with-grid-thumbs ' : '';\n return (\n <Host class={'s-slider-wrapper ' + classes}>\n\n {/* Slider block Title */}\n {this.blockTitle || this.showControls ?\n <div class=\"s-slider-block__title\">\n {this.blockTitle ?\n <div class=\"s-slider-block__title-right\">\n <h2>{this.blockTitle}</h2>\n {this.blockSubtitle ? <p innerHTML={this.blockSubtitle} /> : ''}\n </div>\n : ''}\n\n <div class=\"s-slider-block__title-left\">\n {this.displayAllUrl ?\n <a href={this.displayAllUrl} class=\"s-slider-block__display-all\">{this.displayAllTitle}</a>\n : ''}\n {this.showControls ?\n <div class=\"s-slider-block__title-nav\" dir=\"rtl\">\n <button aria-label=\"Previous Slide\" class=\"s-slider-prev s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon} />\n </button>\n <button aria-label=\"Next Slide\" class=\"s-slider-next s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon} />\n </button>\n </div>\n : ''}\n </div>\n </div>\n : ''}\n\n <div class=\"swiper s-slider-container\" ref={el => this.sliderContainer = el as HTMLDivElement} dir={this.vertical ? \"ltr\" : this.direction}>\n <slot />\n <div class=\"swiper-wrapper s-slider-swiper-wrapper\" ref={el => this.sliderWrapper = el as HTMLDivElement}>\n <slot name='items' />\n </div>\n {this.pagination ? <div class=\"swiper-pagination\"></div> : ''}\n </div>\n\n {this.type == 'thumbs' && this.hasThumbSlot ? <div class=\"s-slider-thumbs\">\n <div class=\"swiper s-slider-thumbs-container\" dir={this.verticalThumbs ? \"ltr\" : this.direction} ref={el => this.thumbsSliderContainer = el as HTMLDivElement}>\n <div class={{ \"s-slider-swiper-wrapper swiper-wrapper\": true, \"s-slider-grid-thumbs\": this.gridThumbs }} ref={el => this.thumbsSliderWrapper = el as HTMLDivElement}>\n <slot name=\"thumbs\" />\n </div>\n {this.showThumbsControls ?\n <div class=\"s-slider-thumbs-nav\" dir=\"rtl\">\n <button aria-label=\"Previous Slide\" class=\"s-slider-thumbs-prev s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowRightIcon : ArrowLeftIcon} />\n </button>\n <button aria-label=\"Next Slide\" class=\"s-slider-thumbs-next s-slider-nav-arrow\">\n <span class=\"s-slider-button-icon\" innerHTML={this.direction == 'rtl' ? ArrowLeftIcon : ArrowRightIcon} />\n </button>\n </div>\n : null}\n </div>\n </div>\n : null}\n </Host>\n );\n }\n\n componentDidLoad() {\n let itemsSlot = this.sliderWrapper.querySelector('div[slot=\"items\"]');\n !!itemsSlot ? itemsSlot.replaceWith(...itemsSlot.children as any) : null;\n if (this.type == 'thumbs' && this.hasThumbSlot) {\n let thumbsSlot = this.thumbsSliderWrapper.querySelector('div[slot=\"thumbs\"]');\n !!thumbsSlot ? thumbsSlot.replaceWith(...thumbsSlot.children as any) : null;\n }\n\n // if swiper is not loaded, lets relay on event\n // @ts-ignore\n if (typeof Swiper === 'undefined') {\n salla.event.once('swiper::loaded', () => this.initSlider())\n } else { // if swiper is loaded lets init our slider\n this.initSlider();\n }\n }\n}\n\n"],"version":3}
|
|
@@ -22264,10 +22264,11 @@ const SallaProgressBar = class {
|
|
|
22264
22264
|
if (this.donation) {
|
|
22265
22265
|
let donationJson = typeof this.donation == 'string' ? JSON.parse(this.donation) : this.donation;
|
|
22266
22266
|
if (donationJson.can_donate && donationJson.target_amount) {
|
|
22267
|
+
donationJson.target_end_date = donationJson.target_end_date == '0000-00-00' ? null : donationJson.target_end_date;
|
|
22267
22268
|
this.value = donationJson.collected_amount;
|
|
22268
22269
|
this.target = donationJson.target_amount;
|
|
22269
22270
|
this.header = salla.lang.get('pages.products.target');
|
|
22270
|
-
this.message = donationJson.target_end_date
|
|
22271
|
+
this.message = donationJson.target_end_date ? salla.lang.get('pages.products.donation_target_date') + ' ' + donationJson.target_end_date : '';
|
|
22271
22272
|
}
|
|
22272
22273
|
else {
|
|
22273
22274
|
//in case the product is not enabled target campaign
|
|
@@ -26002,7 +26003,7 @@ const SallaSlider = class {
|
|
|
26002
26003
|
salla.logger.warn('failed load swiper bundle', error);
|
|
26003
26004
|
reject(true);
|
|
26004
26005
|
};
|
|
26005
|
-
this.swiperScript.src = 'https://cdn.
|
|
26006
|
+
this.swiperScript.src = 'https://cdn.salla.network/js/swiper@8.js';
|
|
26006
26007
|
this.swiperScript.setAttribute('id', 'swiper-script');
|
|
26007
26008
|
document.body.appendChild(this.swiperScript);
|
|
26008
26009
|
}
|