@salla.sa/twilight-components 2.12.37 → 2.12.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/cjs/salla-add-product-button_41.cjs.entry.js +1 -1
  2. package/dist/cjs/salla-add-product-button_41.cjs.entry.js.map +1 -1
  3. package/dist/cjs/salla-products-list.cjs.entry.js +6 -2
  4. package/dist/cjs/salla-products-list.cjs.entry.js.map +1 -1
  5. package/dist/collection/components/salla-products-list/salla-products-list.js +6 -2
  6. package/dist/collection/components/salla-products-list/salla-products-list.js.map +1 -1
  7. package/dist/collection/components/salla-tel-input/salla-tel-input.js +1 -1
  8. package/dist/collection/components/salla-tel-input/salla-tel-input.js.map +1 -1
  9. package/dist/components/salla-products-list.js +6 -2
  10. package/dist/components/salla-products-list.js.map +1 -1
  11. package/dist/components/salla-tel-input2.js +1 -1
  12. package/dist/components/salla-tel-input2.js.map +1 -1
  13. package/dist/esm/salla-add-product-button_41.entry.js +1 -1
  14. package/dist/esm/salla-add-product-button_41.entry.js.map +1 -1
  15. package/dist/esm/salla-products-list.entry.js +6 -2
  16. package/dist/esm/salla-products-list.entry.js.map +1 -1
  17. package/dist/esm-es5/salla-add-product-button_41.entry.js +1 -1
  18. package/dist/esm-es5/salla-add-product-button_41.entry.js.map +1 -1
  19. package/dist/esm-es5/salla-products-list.entry.js +1 -1
  20. package/dist/esm-es5/salla-products-list.entry.js.map +1 -1
  21. package/dist/twilight/{p-5f51f7e6.entry.js → p-330c0988.entry.js} +2 -2
  22. package/dist/twilight/p-330c0988.entry.js.map +1 -0
  23. package/dist/twilight/p-a04e6e5e.system.js +1 -1
  24. package/dist/twilight/{p-695467d5.entry.js → p-c53f2b8f.entry.js} +2 -2
  25. package/dist/twilight/{p-695467d5.entry.js.map → p-c53f2b8f.entry.js.map} +1 -1
  26. package/dist/twilight/{p-09f2c48c.system.entry.js → p-e5c8f9dc.system.entry.js} +2 -2
  27. package/dist/twilight/{p-09f2c48c.system.entry.js.map → p-e5c8f9dc.system.entry.js.map} +1 -1
  28. package/dist/twilight/{p-9f249e3c.system.entry.js → p-fe946afd.system.entry.js} +2 -2
  29. package/dist/twilight/p-fe946afd.system.entry.js.map +1 -0
  30. package/dist/twilight/twilight.esm.js +1 -1
  31. package/package.json +3 -3
  32. package/dist/twilight/p-5f51f7e6.entry.js.map +0 -1
  33. package/dist/twilight/p-9f249e3c.system.entry.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  var __awaiter=this&&this.__awaiter||function(e,t,n,i){function r(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i["throw"](e))}catch(e){o(e)}}function l(e){e.done?n(e.value):r(e.value).then(s,a)}l((i=i.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,r,o,s;return s={next:a(0),throw:a(1),return:a(2)},typeof Symbol==="function"&&(s[Symbol.iterator]=function(){return this}),s;function a(e){return function(t){return l([e,t])}}function l(a){if(i)throw new TypeError("Generator is already executing.");while(s&&(s=0,a[0]&&(n=0)),n)try{if(i=1,r&&(o=a[0]&2?r["return"]:a[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;if(r=0,o)a=[a[0]&2,o.value];switch(a[0]){case 0:case 1:o=a;break;case 4:n.label++;return{value:a[1],done:false};case 5:n.label++;r=a[1];a=[0];continue;case 7:a=n.ops.pop();n.trys.pop();continue;default:if(!(o=n.trys,o=o.length>0&&o[o.length-1])&&(a[0]===6||a[0]===2)){n=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]<o[3])){n.label=a[1];break}if(a[0]===6&&n.label<o[1]){n.label=o[1];o=a;break}if(o&&n.label<o[2]){n.label=o[2];n.ops.push(a);break}if(o[2])n.ops.pop();n.trys.pop();continue}a=t.call(e,n)}catch(e){a=[6,e];r=0}finally{i=o=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};
2
2
  /*!
3
3
  * Crafted with ❤ by Salla
4
- */System.register(["./p-f0c68bf7.system.js","./p-8f7b9e36.system.js","./p-641358eb.system.js"],(function(e){"use strict";var t,n,i,r,o,s,a;return{setters:[function(e){t=e.r;n=e.c;i=e.h;r=e.H;o=e.g},function(e){s=e.a},function(e){a=e.H}],execute:function(){var l='\x3c!-- Generated by IcoMoon.io --\x3e\n<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">\n<title>shopping-bag</title>\n<path d="M28 10.667h-4v-2.667c0-4.412-3.588-8-8-8s-8 3.588-8 8v2.667h-4c-0.736 0-1.333 0.596-1.333 1.333v13.333c0 3.676 2.991 6.667 6.667 6.667h13.333c3.676 0 6.667-2.991 6.667-6.667v-13.333c0-0.737-0.597-1.333-1.333-1.333zM10.667 8c0-2.941 2.392-5.333 5.333-5.333s5.333 2.392 5.333 5.333v2.667h-10.667zM26.667 25.333c0 2.205-1.795 4-4 4h-13.333c-2.205 0-4-1.795-4-4v-12h2.667v2.667c0 0.737 0.597 1.333 1.333 1.333s1.333-0.596 1.333-1.333v-2.667h10.667v2.667c0 0.737 0.597 1.333 1.333 1.333s1.333-0.596 1.333-1.333v-2.667h2.667z"></path>\n</svg>\n';var c="";var u=e("salla_products_list",function(){function e(e){t(this,e);this.productsFetched=n(this,"productsFetched",7);this.source=undefined;this.sourceValue=undefined;this.limit=undefined;this.sortBy=undefined;this.filtersResults=undefined;this.horizontalCards=undefined;this.page=1;this.nextPage=undefined;this.hasInfiniteScroll=undefined;this.hasCustomComponent=undefined;this.sourceValueIsValid=undefined;this.placeholderText=undefined;this.isReady=undefined;this.showPlaceholder=undefined;this.parsedFilters=undefined}e.prototype.connectedCallback=function(){var e=this;salla.event.on("salla-filters::changed",(function(t){return e.setFilters(t)}))};e.prototype.setFilters=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(!!e&&JSON.stringify(this.parsedFilters)===JSON.stringify(e)){return[2]}window.scrollTo({top:0,behavior:"smooth"});this.parsedFilters=e;return[2,this.reload()]}))}))};e.prototype.reload=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){salla.infiniteScroll.destroy(this.infiniteScroll);this.buildNextPageUrl();this.wrapper.innerHTML="";this.init();return[2]}))}))};e.prototype.isFilterable=function(){return salla.config.get("store.settings.product.filters")&&this.filtersResults};e.prototype.isSourceWithoutValue=function(){return["offers","latest","sales"].includes(this.getSource())};e.prototype.animateItems=function(){s({targets:"salla-products-list salla-product-card",opacity:[0,1],duration:1200,translateY:[20,0],delay:function(e,t){return t*100}})};e.prototype.createStatusDom=function(){var e=this;this.status=document.createElement("div");this.status.className="s-infinite-scroll-wrapper";this.status.innerHTML='<div class="s-infinite-scroll-status">\n <p class="s-infinite-scroll-last infinite-scroll-last s-hidden" >'.concat(salla.lang.get("common.elements.end_of_content"),'</p>\n <p class="s-infinite-scroll-error infinite-scroll-error s-hidden">').concat(salla.lang.get("common.elements.failed_to_load_more"),'</p>\n </div>\n <a href="#" class="s-infinite-scroll-btn s-button-btn">\n <span class="s-button-loader s-button-loader-center s-infinite-scroll-btn-loader" style="display: none"></span>\n </a>');this.btnLoader=this.status.querySelector(".s-button-loader");salla.lang.onLoaded((function(){e.status.querySelector(".s-infinite-scroll-last").innerHTML=salla.lang.get("common.elements.end_of_content");e.status.querySelector(".s-infinite-scroll-error").innerHTML=salla.lang.get("common.elements.failed_to_load_more");e.placeholderText=salla.lang.get("pages.categories.no_products")}))};e.prototype.initBaseNextPageUrl=function(e){var t=this;this.nextPage=salla.url.api("products?source=".concat(e));if(this.limit){this.nextPage+="&per_page=".concat(this.limit>32?32:this.limit)}if(this.sortBy){this.nextPage+="&sort=".concat(this.sortBy)}this.nextPage+="&filterable=1";var n=function(e,n){if(["string","number"].includes(typeof n)){i.nextPage+="&filters[".concat(encodeURIComponent(e),"]=").concat(encodeURIComponent(n))}else if(Array.isArray(n)){n.forEach((function(n){return t.nextPage+="&filters[".concat(encodeURIComponent(e),"][]=").concat(encodeURIComponent(n))}))}else if(typeof n==="object"){for(var r=0,o=Object.entries(n);r<o.length;r++){var s=o[r],a=s[0],l=s[1];i.nextPage+="&filters[".concat(encodeURIComponent(e),"][").concat(encodeURIComponent(a),"]=").concat(encodeURIComponent(l))}}};var i=this;for(var r=0,o=Object.entries(this.parsedFilters||{});r<o.length;r++){var s=o[r],a=s[0],l=s[1];n(a,l)}};e.prototype.buildNextPageUrl=function(){var e=this.getSource();if(e==="json"){return}this.initBaseNextPageUrl(e);if(this.isSourceWithoutValue()){return}if(["search","related","landing-page"].includes(e)){this.nextPage+="&source_value=".concat(this.getSourceValue());return}try{this.nextPage+="&source_value[]=".concat(this.getSourceValue().join("&source_value[]="))}catch(t){salla.logger.warn('source-value prop should be array of ids ex source-value="[1,2,3]" for the source ['.concat(e,"]"));this.sourceValueIsValid=false}};e.prototype.loading=function(e){if(e===void 0){e=true}this.btnLoader.style.display=e?"inherit":"none"};e.prototype.getItemHTML=function(e){var t=this.hasCustomComponent?"custom-salla-product-card":"salla-product-card";var n=document.createElement(t);n.product=e;this.applyLandingPageStyles(n);this.applyHorizontalCardStyles(n);return n};e.prototype.applyLandingPageStyles=function(e){if(this.getSource()==="landing-page"&&!this.hasCustomComponent){e.toggleAttribute("hide-add-btn",true);e.classList.add("s-product-card-fit-height")}};e.prototype.applyHorizontalCardStyles=function(e){if(!this.horizontalCards){return}e.setAttribute("horizontal",true);if(!this.hasCustomComponent){e.setAttribute("shadow-on-hover",true)}};e.prototype.getSource=function(){return a.getProductsSource(this.source)};e.prototype.getSourceValue=function(){return a.getProductsSourceValue(this.source,this.sourceValue)};e.prototype.initiateInfiniteScroll=function(){var e=this;var t,n,i;if(!this.hasInfiniteScroll){return}this.host.insertAdjacentElement("beforeend",this.status);this.infiniteScroll=salla.infiniteScroll.initiate(this.wrapper,this.wrapper,{path:function(){return e.nextPage},history:false,nextPage:this.nextPage,scrollThreshold:100},true);(t=this.infiniteScroll)===null||t===void 0?void 0:t.on("request",(function(){return e.loading()}));(n=this.infiniteScroll)===null||n===void 0?void 0:n.on("load",(function(t){var n;if(!((n=t.data)===null||n===void 0?void 0:n.length)&&e.infiniteScroll.pageIndex==2){e.showPlaceholder=true;salla.infiniteScroll.destroy(e.infiniteScroll);e.loading(false);return}else{e.showPlaceholder=false}e.infiniteScroll.appendItems(e.handleResponse(t));if(e.infiniteScroll.pageIndex==2){e.animateItems()}}));(i=this.infiniteScroll)===null||i===void 0?void 0:i.on("error",(function(){e.status.querySelector(".s-infinite-scroll-error").classList.remove("s-hidden");e.loading(false)}));salla.onReady((function(){return salla.infiniteScroll.loadNextPage(e.infiniteScroll)}))};e.prototype.componentWillLoad=function(){var e=this;return a.onSallaReadyPromise((function(){e.hasCustomComponent=!!customElements.get("custom-salla-product-card");e.sourceValueIsValid=!!(e.getSourceValue()||e.isSourceWithoutValue());e.hasInfiniteScroll=!["json","selected","related","landing-page"].includes(e.getSource())&&!e.limit;try{var t=new URLSearchParams(window.location.search);e.sortBy=e.sortBy||t.get("sort")||t.get("by");var n=t.get("filters");e.parsedFilters=n?JSON.parse(decodeURIComponent(n)):{}}catch(e){salla.logger.warn("failed to get filters from url",e.message)}e.buildNextPageUrl();e.createStatusDom();e.isReady=true;if(!e.sourceValueIsValid){salla.logger.warn("source-value prop is required for source [".concat(e.getSource(),"]"));return}if(e.hasInfiniteScroll){return}if(e.getSource()==="json"){if(!e.getSourceValue().length){e.showPlaceholder=true;return}e.getSourceValue().map((function(t){return e.wrapper.append(e.getItemHTML(t))}));return}if(e.getSource()==="selected"&&!e.getSourceValue().length){e.showPlaceholder=true;return}return a.fetchProducts(e.getSource(),e.getSourceValue(),e.limit).then((function(t){if(!t.data.length){e.showPlaceholder=true;e.loading(false);return}e.handleResponse(t).forEach((function(t){return e.wrapper.append(t)}))}))}))};e.prototype.canRender=function(){return this.sourceValueIsValid&&this.isReady};e.prototype.render=function(){var e=this;if(!this.canRender()){return""}if(this.showPlaceholder){return i("div",{class:"s-products-list-placeholder"},i("span",{innerHTML:l}),i("p",null,this.placeholderText))}return i(r,{class:"s-products-list"},i("div",{class:{"s-products-list-wrapper":true,"s-products-list-horizontal-cards":this.horizontalCards&&!this.filtersResults,"s-products-list-vertical-cards":!this.horizontalCards&&!this.filtersResults,"s-products-list-filters-results":this.filtersResults},ref:function(t){return e.wrapper=t}}))};e.prototype.componentDidLoad=function(){this.hasInfiniteScroll&&this.init()};e.prototype.init=function(){this.initiateInfiniteScroll();this.loading()};e.prototype.handleResponse=function(e){var t=this;var n,i,r,o,s,l;var c=this.getSource();var u="";if(((n=e.cursor)===null||n===void 0?void 0:n.current)===1){u=a.getPageTitleForSource(c);try{if(this.getSource()==="search"){u=salla.lang.get("common.elements.search_about",{word:this.getSourceValue()})}else if(!u){var d=this.parsedFilters.category_id||this.getSourceValue()[0];u=((o=(r=(i=e.filters.find((function(e){return e.key=="category_id"})))===null||i===void 0?void 0:i.values)===null||r===void 0?void 0:r.find((function(e){return e.key==d})))===null||o===void 0?void 0:o.value)||""}u+=(u?" - ":"")+salla.lang.choice("blocks.header.products_count",(s=e.data)===null||s===void 0?void 0:s.length);if(e.data.length===20){u=u.replace(e.data.length,salla.lang.get("common.elements.more_than")+" "+e.data.length)}e.title=u}catch(e){}}salla.event.emit("salla-products-list::products.fetched",e);this.productsFetched.emit(e);if(e.filters&&this.isFilterable()){this.filtersResults=true;salla.event.emit("filters::fetched",{filters:e.filters})}else if(this.isFilterable()){salla.event.emit("filters::hidden")}this.nextPage=e.cursor?e.cursor.next:this.nextPage;this.loading(false);if(this.hasInfiniteScroll&&!this.nextPage){this.infiniteScroll.option({scrollThreshold:false,loadOnScroll:false});this.status.querySelector(".s-infinite-scroll-last").classList.remove("s-hidden")}return((l=e.data)===null||l===void 0?void 0:l.map((function(e){return t.getItemHTML(e)})))||[]};Object.defineProperty(e.prototype,"host",{get:function(){return o(this)},enumerable:false,configurable:true});return e}());u.style=c}}}));
5
- //# sourceMappingURL=p-9f249e3c.system.entry.js.map
4
+ */System.register(["./p-f0c68bf7.system.js","./p-8f7b9e36.system.js","./p-641358eb.system.js"],(function(e){"use strict";var t,n,i,r,o,s,a;return{setters:[function(e){t=e.r;n=e.c;i=e.h;r=e.H;o=e.g},function(e){s=e.a},function(e){a=e.H}],execute:function(){var l='\x3c!-- Generated by IcoMoon.io --\x3e\n<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">\n<title>shopping-bag</title>\n<path d="M28 10.667h-4v-2.667c0-4.412-3.588-8-8-8s-8 3.588-8 8v2.667h-4c-0.736 0-1.333 0.596-1.333 1.333v13.333c0 3.676 2.991 6.667 6.667 6.667h13.333c3.676 0 6.667-2.991 6.667-6.667v-13.333c0-0.737-0.597-1.333-1.333-1.333zM10.667 8c0-2.941 2.392-5.333 5.333-5.333s5.333 2.392 5.333 5.333v2.667h-10.667zM26.667 25.333c0 2.205-1.795 4-4 4h-13.333c-2.205 0-4-1.795-4-4v-12h2.667v2.667c0 0.737 0.597 1.333 1.333 1.333s1.333-0.596 1.333-1.333v-2.667h10.667v2.667c0 0.737 0.597 1.333 1.333 1.333s1.333-0.596 1.333-1.333v-2.667h2.667z"></path>\n</svg>\n';var c="";var u=e("salla_products_list",function(){function e(e){t(this,e);this.productsFetched=n(this,"productsFetched",7);this.source=undefined;this.sourceValue=undefined;this.limit=undefined;this.sortBy=undefined;this.filtersResults=undefined;this.horizontalCards=undefined;this.page=1;this.nextPage=undefined;this.hasInfiniteScroll=undefined;this.hasCustomComponent=undefined;this.sourceValueIsValid=undefined;this.placeholderText=undefined;this.isReady=undefined;this.showPlaceholder=undefined;this.parsedFilters=undefined}e.prototype.connectedCallback=function(){var e=this;salla.event.on("salla-filters::changed",(function(t){return e.setFilters(t)}))};e.prototype.setFilters=function(e){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(!!e&&JSON.stringify(this.parsedFilters)===JSON.stringify(e)){return[2]}window.scrollTo({top:0,behavior:"smooth"});this.parsedFilters=e;return[2,this.reload()]}))}))};e.prototype.reload=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){salla.infiniteScroll.destroy(this.infiniteScroll);this.buildNextPageUrl();this.wrapper.innerHTML="";this.init();return[2]}))}))};e.prototype.isFilterable=function(){return salla.config.get("store.settings.product.filters")&&this.filtersResults};e.prototype.isSourceWithoutValue=function(){return["offers","latest","sales"].includes(this.getSource())};e.prototype.animateItems=function(){s({targets:"salla-products-list salla-product-card",opacity:[0,1],duration:1200,translateY:[20,0],delay:function(e,t){return t*100}})};e.prototype.createStatusDom=function(){var e=this;this.status=document.createElement("div");this.status.className="s-infinite-scroll-wrapper";this.status.innerHTML='<div class="s-infinite-scroll-status">\n <p class="s-infinite-scroll-last infinite-scroll-last s-hidden" >'.concat(salla.lang.get("common.elements.end_of_content"),'</p>\n <p class="s-infinite-scroll-error infinite-scroll-error s-hidden">').concat(salla.lang.get("common.elements.failed_to_load_more"),'</p>\n </div>\n <a href="#" class="s-infinite-scroll-btn s-button-btn">\n <span class="s-button-loader s-button-loader-center s-infinite-scroll-btn-loader" style="display: none"></span>\n </a>');this.btnLoader=this.status.querySelector(".s-button-loader");salla.lang.onLoaded((function(){e.status.querySelector(".s-infinite-scroll-last").innerHTML=salla.lang.get("common.elements.end_of_content");e.status.querySelector(".s-infinite-scroll-error").innerHTML=salla.lang.get("common.elements.failed_to_load_more");e.placeholderText=salla.lang.get("pages.categories.no_products")}))};e.prototype.initBaseNextPageUrl=function(e){var t=this;this.nextPage=salla.url.api("products?source=".concat(e));if(this.limit){this.nextPage+="&per_page=".concat(this.limit>32?32:this.limit)}if(this.sortBy){this.nextPage+="&sort=".concat(this.sortBy)}this.nextPage+="&filterable=1";var n=function(e,n){if(["string","number"].includes(typeof n)){i.nextPage+="&filters[".concat(encodeURIComponent(e),"]=").concat(encodeURIComponent(n))}else if(Array.isArray(n)){n.forEach((function(n){return t.nextPage+="&filters[".concat(encodeURIComponent(e),"][]=").concat(encodeURIComponent(n))}))}else if(typeof n==="object"){for(var r=0,o=Object.entries(n);r<o.length;r++){var s=o[r],a=s[0],l=s[1];i.nextPage+="&filters[".concat(encodeURIComponent(e),"][").concat(encodeURIComponent(a),"]=").concat(encodeURIComponent(l))}}};var i=this;for(var r=0,o=Object.entries(this.parsedFilters||{});r<o.length;r++){var s=o[r],a=s[0],l=s[1];n(a,l)}};e.prototype.buildNextPageUrl=function(){var e=this.getSource();if(e==="json"){return}this.initBaseNextPageUrl(e);if(this.isSourceWithoutValue()){return}if(["search","related","landing-page"].includes(e)){this.nextPage+="&source_value=".concat(this.getSourceValue());return}try{this.nextPage+="&source_value[]=".concat(this.getSourceValue().join("&source_value[]="))}catch(t){salla.logger.warn('source-value prop should be array of ids ex source-value="[1,2,3]" for the source ['.concat(e,"]"));this.sourceValueIsValid=false}};e.prototype.loading=function(e){if(e===void 0){e=true}this.btnLoader.style.display=e?"inherit":"none"};e.prototype.getItemHTML=function(e){var t=this.hasCustomComponent?"custom-salla-product-card":"salla-product-card";var n=document.createElement(t);n.product=e;this.applyLandingPageStyles(n);this.applyHorizontalCardStyles(n);return n};e.prototype.applyLandingPageStyles=function(e){if(this.getSource()==="landing-page"&&!this.hasCustomComponent){e.toggleAttribute("hide-add-btn",true);e.classList.add("s-product-card-fit-height")}};e.prototype.applyHorizontalCardStyles=function(e){if(!this.horizontalCards){return}e.setAttribute("horizontal",true);if(!this.hasCustomComponent){e.setAttribute("shadow-on-hover",true)}};e.prototype.getSource=function(){return a.getProductsSource(this.source)};e.prototype.getSourceValue=function(){return a.getProductsSourceValue(this.source,this.sourceValue)};e.prototype.initiateInfiniteScroll=function(){var e=this;var t,n,i;if(!this.hasInfiniteScroll){return}this.host.insertAdjacentElement("beforeend",this.status);this.infiniteScroll=salla.infiniteScroll.initiate(this.wrapper,this.wrapper,{path:function(){return e.nextPage},history:false,nextPage:this.nextPage,scrollThreshold:100},true);(t=this.infiniteScroll)===null||t===void 0?void 0:t.on("request",(function(){return e.loading()}));(n=this.infiniteScroll)===null||n===void 0?void 0:n.on("load",(function(t){var n;if(!((n=t.data)===null||n===void 0?void 0:n.length)&&e.infiniteScroll.pageIndex==2){e.showPlaceholder=true;salla.infiniteScroll.destroy(e.infiniteScroll);e.loading(false);return}else{e.showPlaceholder=false}e.infiniteScroll.appendItems(e.handleResponse(t));if(e.infiniteScroll.pageIndex==2){e.animateItems()}}));(i=this.infiniteScroll)===null||i===void 0?void 0:i.on("error",(function(){e.status.querySelector(".s-infinite-scroll-error").classList.remove("s-hidden");e.loading(false)}));salla.onReady((function(){return salla.infiniteScroll.loadNextPage(e.infiniteScroll)}))};e.prototype.componentWillLoad=function(){var e=this;return a.onSallaReadyPromise((function(){e.hasCustomComponent=!!customElements.get("custom-salla-product-card");e.sourceValueIsValid=!!(e.getSourceValue()||e.isSourceWithoutValue());e.hasInfiniteScroll=!["json","selected","related","landing-page"].includes(e.getSource())&&!e.limit;try{var t=new URLSearchParams(window.location.search);e.sortBy=e.sortBy||t.get("sort")||t.get("by");var n=t.get("filters");e.parsedFilters=n?JSON.parse(decodeURIComponent(n)):{}}catch(e){salla.logger.warn("failed to get filters from url",e.message)}e.buildNextPageUrl();e.createStatusDom();e.isReady=true;if(!e.sourceValueIsValid){salla.logger.warn("source-value prop is required for source [".concat(e.getSource(),"]"));return}if(e.hasInfiniteScroll){return}if(e.getSource()==="json"){if(!e.getSourceValue().length){e.showPlaceholder=true;return}setTimeout((function(){e.getSourceValue().map((function(t){return e.wrapper.append(e.getItemHTML(t))}))}));return}if(e.getSource()==="selected"&&!e.getSourceValue().length){e.showPlaceholder=true;return}return a.fetchProducts(e.getSource(),e.getSourceValue(),e.limit).then((function(t){if(!t.data.length){e.showPlaceholder=true;e.loading(false);return}setTimeout((function(){e.handleResponse(t).forEach((function(t){return e.wrapper.append(t)}))}),100)}))}))};e.prototype.canRender=function(){return this.sourceValueIsValid&&this.isReady};e.prototype.render=function(){var e=this;if(!this.canRender()){return""}if(this.showPlaceholder){return i("div",{class:"s-products-list-placeholder"},i("span",{innerHTML:l}),i("p",null,this.placeholderText))}return i(r,{class:"s-products-list"},i("div",{class:{"s-products-list-wrapper":true,"s-products-list-horizontal-cards":this.horizontalCards&&!this.filtersResults,"s-products-list-vertical-cards":!this.horizontalCards&&!this.filtersResults,"s-products-list-filters-results":this.filtersResults},ref:function(t){return e.wrapper=t}}))};e.prototype.componentDidLoad=function(){this.hasInfiniteScroll&&this.init()};e.prototype.init=function(){this.initiateInfiniteScroll();this.loading()};e.prototype.handleResponse=function(e){var t=this;var n,i,r,o,s,l;var c=this.getSource();var u="";if(((n=e.cursor)===null||n===void 0?void 0:n.current)===1){u=a.getPageTitleForSource(c);try{if(this.getSource()==="search"){u=salla.lang.get("common.elements.search_about",{word:this.getSourceValue()})}else if(!u){var d=this.parsedFilters.category_id||this.getSourceValue()[0];u=((o=(r=(i=e.filters.find((function(e){return e.key=="category_id"})))===null||i===void 0?void 0:i.values)===null||r===void 0?void 0:r.find((function(e){return e.key==d})))===null||o===void 0?void 0:o.value)||""}u+=(u?" - ":"")+salla.lang.choice("blocks.header.products_count",(s=e.data)===null||s===void 0?void 0:s.length);if(e.data.length===20){u=u.replace(e.data.length,salla.lang.get("common.elements.more_than")+" "+e.data.length)}e.title=u}catch(e){}}salla.event.emit("salla-products-list::products.fetched",e);this.productsFetched.emit(e);if(e.filters&&this.isFilterable()){this.filtersResults=true;salla.event.emit("filters::fetched",{filters:e.filters})}else if(this.isFilterable()){salla.event.emit("filters::hidden")}this.nextPage=e.cursor?e.cursor.next:this.nextPage;this.loading(false);if(this.hasInfiniteScroll&&!this.nextPage){this.infiniteScroll.option({scrollThreshold:false,loadOnScroll:false});this.status.querySelector(".s-infinite-scroll-last").classList.remove("s-hidden")}return((l=e.data)===null||l===void 0?void 0:l.map((function(e){return t.getItemHTML(e)})))||[]};Object.defineProperty(e.prototype,"host",{get:function(){return o(this)},enumerable:false,configurable:true});return e}());u.style=c}}}));
5
+ //# sourceMappingURL=p-fe946afd.system.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sallaProductsListCss","SallaProductsList","exports","class_1","prototype","connectedCallback","_this","this","salla","event","on","filters","setFilters","JSON","stringify","parsedFilters","window","scrollTo","top","behavior","reload","infiniteScroll","destroy","buildNextPageUrl","wrapper","innerHTML","init","isFilterable","config","get","filtersResults","isSourceWithoutValue","includes","getSource","animateItems","anime","targets","opacity","duration","translateY","delay","_el","i","createStatusDom","status","document","createElement","className","concat","lang","btnLoader","querySelector","onLoaded","placeholderText","initBaseNextPageUrl","source","nextPage","url","api","limit","sortBy","key","value","this_1","encodeURIComponent","Array","isArray","forEach","item","_j","_k","Object","entries","length","_l","k","v","_i","_g","_h","getSourceValue","join","e","logger","warn","sourceValueIsValid","loading","isLoading","style","display","getItemHTML","product","customComponentTag","hasCustomComponent","productCard","applyLandingPageStyles","applyHorizontalCardStyles","toggleAttribute","classList","add","horizontalCards","setAttribute","Helper","getProductsSource","getProductsSourceValue","sourceValue","initiateInfiniteScroll","hasInfiniteScroll","host","insertAdjacentElement","initiate","path","history","scrollThreshold","_a","_b","response","data","pageIndex","showPlaceholder","appendItems","handleResponse","_c","remove","onReady","loadNextPage","componentWillLoad","onSallaReadyPromise","customElements","searchParams","URLSearchParams","location","search","parse","decodeURIComponent","message","isReady","setTimeout","map","append","fetchProducts","then","res","card","canRender","render","h","class","ShoppingBag","Host","ref","componentDidLoad","title","cursor","current","getPageTitleForSource","word","catId_1","category_id","_d","find","filter","values","cat","choice","_e","replace","emit","productsFetched","next","option","loadOnScroll","_f"],"sources":["src/components/salla-products-list/salla-products-list.scss?tag=salla-products-list","src/components/salla-products-list/salla-products-list.tsx"],"sourcesContent":["\n","import { Component, Host, h, Prop, State, Element, Method, Event, EventEmitter } from '@stencil/core';\nimport anime from 'animejs';\nimport ShoppingBag from '../../assets/svg/shopping-bag.svg';\nimport Helper from '../../Helpers/Helper';\n@Component({\n tag: 'salla-products-list',\n styleUrl: 'salla-products-list.scss'\n})\nexport class SallaProductsList {\n connectedCallback() {\n salla.event.on('salla-filters::changed', filters => this.setFilters(filters))\n }\n\n /**\n * Set parsed filters data from URI\n * @param filters\n */\n @Method()\n async setFilters(filters) {\n if (!!filters && JSON.stringify(this.parsedFilters) === JSON.stringify(filters)) {\n return;\n }\n window.scrollTo({ top: 0, behavior: 'smooth' });\n this.parsedFilters = filters;\n return this.reload();\n }\n\n /**\n * Reload the list of products (entire content of the component).\n */\n @Method()\n async reload() {\n salla.infiniteScroll.destroy(this.infiniteScroll);\n this.buildNextPageUrl();\n // TODO: this is problematic in testing, for the time being it's been resolved like this\n this.wrapper.innerHTML = '';\n this.init();\n }\n\n\n private status: HTMLDivElement;\n private btnLoader: HTMLAnchorElement;\n @Element() host: HTMLElement;\n private wrapper: any;\n private infiniteScroll: any;\n /**\n * The source of the products list\n * @type {string}\n * */\n @Prop({\n reflect: true,\n mutable: true\n }) source: 'categories' | 'latest' | 'related' | 'brands' | 'json' | 'search' | 'tags' | 'selected' | 'offers' | 'landing-page' | 'sales';\n\n /**\n * The source value, cloud be different values as following:\n * - array of ids when `source` in ['categories', 'brands', 'tags', 'selected']\n * - keyword when `source` = 'search'\n * - products payload when `source` = 'json'\n * - product_id when `source` = 'related'\n *\n * @type {string}\n * */\n @Prop({ mutable: true }) sourceValue: any;\n\n /**\n * Limit for number of products in the list.\n */\n @Prop({ mutable: true }) limit: number;\n\n /**\n * Sorting the list of products\n */\n @Prop({ mutable: true }) sortBy?: string | 'ourSuggest' | 'bestSell' | 'topRated' | 'priceFromTopToLow' | 'priceFromLowToTop';\n\n /**\n * should listen to filters events `salla-filters::changed` and re-render\n */\n @Prop({ reflect: true, mutable: true }) filtersResults: boolean;\n\n /**\n * Horizontal cards\n */\n @Prop({ reflect: true }) horizontalCards: boolean\n\n // State\n @State() page: number = 1;\n @State() nextPage: string;\n @State() hasInfiniteScroll: boolean;\n @State() hasCustomComponent: boolean;\n @State() sourceValueIsValid: boolean;\n @State() placeholderText: string;\n @State() isReady: boolean;\n @State() showPlaceholder: boolean;\n @State() parsedFilters: any;\n\n /**\n * Custom event fired when the the products fetched.\n */\n @Event() productsFetched: EventEmitter;\n\n private isFilterable() {\n return salla.config.get('store.settings.product.filters') && this.filtersResults;\n }\n\n private isSourceWithoutValue() {\n return ['offers', 'latest', 'sales'].includes(this.getSource());\n }\n\n private animateItems() {\n anime({\n targets: 'salla-products-list salla-product-card',\n opacity: [0, 1],\n duration: 1200,\n translateY: [20, 0],\n delay: function (_el, i) {\n return i * 100;\n },\n })\n }\n\n private createStatusDom() {\n this.status = document.createElement('div');\n this.status.className = 's-infinite-scroll-wrapper';\n this.status.innerHTML = `<div class=\"s-infinite-scroll-status\">\n <p class=\"s-infinite-scroll-last infinite-scroll-last s-hidden\" >${salla.lang.get('common.elements.end_of_content')}</p>\n <p class=\"s-infinite-scroll-error infinite-scroll-error s-hidden\">${salla.lang.get('common.elements.failed_to_load_more')}</p>\n </div>\n <a href=\"#\" class=\"s-infinite-scroll-btn s-button-btn\">\n <span class=\"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader\" style=\"display: none\"></span>\n </a>`;\n this.btnLoader = this.status.querySelector('.s-button-loader');\n salla.lang.onLoaded(() => {\n this.status.querySelector('.s-infinite-scroll-last').innerHTML = salla.lang.get('common.elements.end_of_content');\n this.status.querySelector('.s-infinite-scroll-error').innerHTML = salla.lang.get('common.elements.failed_to_load_more');\n this.placeholderText = salla.lang.get('pages.categories.no_products');\n });\n }\n\n private initBaseNextPageUrl(source: string) {\n\n this.nextPage = salla.url.api(`products?source=${source}`);\n\n if (this.limit) {\n this.nextPage += `&per_page=${this.limit > 32 ? 32 : this.limit}`;\n }\n if (this.sortBy) {\n this.nextPage += `&sort=${this.sortBy}`;\n }\n // if (!this.isFilterable()) {\n // return this.nextPage;\n // }\n this.nextPage += '&filterable=1';\n for (const [key, value] of Object.entries(this.parsedFilters || {})) {\n if ([\"string\", \"number\"].includes(typeof value)) {\n // @ts-ignore\n this.nextPage += `&filters[${encodeURIComponent(key)}]=${encodeURIComponent(value)}`;\n } else if (Array.isArray(value)) {\n value.forEach(item => this.nextPage += `&filters[${encodeURIComponent(key)}][]=${encodeURIComponent(item)}`);\n } else if (typeof value === 'object') {\n for (const [k, v] of Object.entries(value)) {\n this.nextPage += `&filters[${encodeURIComponent(key)}][${encodeURIComponent(k)}]=${encodeURIComponent(v)}`;\n }\n }\n }\n }\n\n private buildNextPageUrl() {\n let source = this.getSource();\n if (source === 'json') {\n return;\n }\n this.initBaseNextPageUrl(source);\n if (this.isSourceWithoutValue()) {\n return;\n }\n\n if (['search', 'related', 'landing-page'].includes(source)) {\n this.nextPage += `&source_value=${this.getSourceValue()}`;\n return;\n }\n\n try {\n this.nextPage += `&source_value[]=${this.getSourceValue().join('&source_value[]=')}`;\n } catch (e) {\n salla.logger.warn(`source-value prop should be array of ids ex source-value=\"[1,2,3]\" for the source [${source}]`);\n this.sourceValueIsValid = false;\n }\n }\n\n\n private loading(isLoading = true) {\n this.btnLoader.style.display = isLoading ? 'inherit' : 'none';\n }\n\n private getItemHTML(product) {\n const customComponentTag = this.hasCustomComponent ? 'custom-salla-product-card' : 'salla-product-card';\n const productCard = document.createElement(customComponentTag) as HTMLSallaProductCardElement;\n productCard.product = product;\n\n this.applyLandingPageStyles(productCard);\n this.applyHorizontalCardStyles(productCard);\n\n return productCard;\n }\n\n private applyLandingPageStyles(productCard) {\n if (this.getSource() === 'landing-page' && !this.hasCustomComponent) {\n productCard.toggleAttribute('hide-add-btn', true);\n productCard.classList.add('s-product-card-fit-height');\n }\n }\n\n private applyHorizontalCardStyles(productCard) {\n if (!this.horizontalCards) {\n return;\n }\n productCard.setAttribute('horizontal', true);\n if (!this.hasCustomComponent) {\n productCard.setAttribute('shadow-on-hover', true);\n }\n\n }\n\n private getSource() {\n return Helper.getProductsSource(this.source);\n }\n\n private getSourceValue() {\n return Helper.getProductsSourceValue(this.source, this.sourceValue);\n }\n\n private initiateInfiniteScroll() {\n if (!this.hasInfiniteScroll) {\n return;\n }\n\n this.host.insertAdjacentElement('beforeend', this.status);\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.nextPage,\n history: false,\n nextPage: this.nextPage,\n scrollThreshold: 100,\n }, /* infinite via api*/true);\n this.infiniteScroll?.on('request', () => this.loading())\n this.infiniteScroll?.on('load', response => {\n if (!response.data?.length && this.infiniteScroll.pageIndex == 2) {\n this.showPlaceholder = true;\n salla.infiniteScroll.destroy(this.infiniteScroll);\n this.loading(false);\n return;\n } else {\n this.showPlaceholder = false;\n\n }\n this.infiniteScroll.appendItems(this.handleResponse(response))\n if (this.infiniteScroll.pageIndex == 2) {\n this.animateItems();\n }\n })\n this.infiniteScroll?.on('error', () => {\n this.status.querySelector('.s-infinite-scroll-error').classList.remove('s-hidden')\n this.loading(false);\n });\n salla.onReady(() => salla.infiniteScroll.loadNextPage(this.infiniteScroll))\n }\n\n componentWillLoad() {\n return Helper.onSallaReadyPromise( () => {\n this.hasCustomComponent = !!customElements.get('custom-salla-product-card');\n this.sourceValueIsValid = !!(this.getSourceValue() || this.isSourceWithoutValue());\n this.hasInfiniteScroll = !['json', 'selected', 'related', 'landing-page'].includes(this.getSource()) && !this.limit;\n try {\n let searchParams = new URLSearchParams(window.location.search);\n this.sortBy = this.sortBy || searchParams.get('sort') || searchParams.get('by');\n let filters = searchParams.get('filters')\n this.parsedFilters = filters ? JSON.parse(decodeURIComponent(filters)) : {};\n } catch (e) {\n salla.logger.warn('failed to get filters from url', e.message);\n }\n this.buildNextPageUrl();\n this.createStatusDom();\n \n this.isReady = true;\n \n if (!this.sourceValueIsValid) {\n salla.logger.warn(`source-value prop is required for source [${this.getSource()}]`);\n return;\n }\n if (this.hasInfiniteScroll) {\n return;\n }\n\n // Handle json source\n if (this.getSource() === 'json') {\n if (!this.getSourceValue().length) {\n this.showPlaceholder = true;\n return;\n }\n setTimeout(() => {\n this.getSourceValue().map(product => this.wrapper.append(this.getItemHTML(product)));\n });\n return;\n }\n\n // Handle selected source\n if (this.getSource() === 'selected' && !this.getSourceValue().length) {\n this.showPlaceholder = true;\n return;\n }\n\n return Helper.fetchProducts(this.getSource(), this.getSourceValue(), this.limit).then(res => {\n if (!res.data.length) {\n this.showPlaceholder = true;\n this.loading(false);\n return;\n }\n setTimeout(() => {\n this.handleResponse(res).forEach(card => this.wrapper.append(card));\n }, 100);\n });\n });\n }\n\n\n\n private canRender() {\n return this.sourceValueIsValid && this.isReady;\n }\n\n render() {\n if (!this.canRender()) {\n return '';\n }\n\n if (this.showPlaceholder) {\n return <div class=\"s-products-list-placeholder\">\n <span innerHTML={ShoppingBag} />\n <p>{this.placeholderText}</p>\n </div>;\n }\n return (\n <Host class=\"s-products-list\">\n <div class={{\n \"s-products-list-wrapper\": true,\n 's-products-list-horizontal-cards': this.horizontalCards && !this.filtersResults,\n 's-products-list-vertical-cards': !this.horizontalCards && !this.filtersResults,\n 's-products-list-filters-results': this.filtersResults,\n }}\n ref={wrapper => this.wrapper = wrapper} />\n </Host>\n );\n }\n\n componentDidLoad() {\n this.hasInfiniteScroll && this.init();\n }\n\n private init() {\n this.initiateInfiniteScroll();\n this.loading();\n }\n\n private handleResponse(response): Array<HTMLElement> {\n let source=this.getSource();\n let title = '';\n //help the developer to know the current page title\n if (response.cursor?.current === 1) {\n title = Helper.getPageTitleForSource(source);\n try {\n if (this.getSource() === 'search') {\n title = salla.lang.get('common.elements.search_about', {'word': this.getSourceValue()});\n } else if (!title) {\n let catId = this.parsedFilters.category_id || this.getSourceValue()[0];\n // get the first filter that its key is category_id, then get the value when filter.value.*.key==catId\n title = response.filters.find(filter => filter.key == 'category_id') ?. values ?. find(cat => cat.key == catId) ?. value || '';\n }\n title += (title ? ' - ' : '') + salla.lang.choice('blocks.header.products_count', response.data ?. length);\n if (response.data.length === 20) {\n title = title.replace(response.data.length, salla.lang.get('common.elements.more_than') + ' ' + response.data.length)\n }\n response.title = title;\n } catch (e) {}\n }\n\n salla.event.emit('salla-products-list::products.fetched', response);\n this.productsFetched.emit(response);\n //💡 when source is related, cursor will not be existed\n if (response.filters && this.isFilterable()) {\n this.filtersResults = true;\n salla.event.emit('filters::fetched', { filters: response.filters });\n } else if (this.isFilterable()) {\n salla.event.emit('filters::hidden');\n }\n this.nextPage = response.cursor ? response.cursor.next : this.nextPage;\n this.loading(false);\n if (this.hasInfiniteScroll && !this.nextPage) {\n this.infiniteScroll.option({ scrollThreshold: false, loadOnScroll: false });\n this.status.querySelector('.s-infinite-scroll-last').classList.remove('s-hidden');\n }\n return response.data?.map(product => this.getItemHTML(product)) || [];\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import{p as e,b as a}from"./p-a3d07260.js";export{s as setNonce}from"./p-a3d07260.js";import{g as t}from"./p-ab4c6cc3.js";import"./p-f84bae34.js";const l=()=>{const a=import.meta.url;const t={};if(a!==""){t.resourcesUrl=new URL(".",a).href}return e(t)};l().then((e=>{t();return a(JSON.parse('[["p-695467d5",[[4,"salla-gifting",{"productId":[2,"product-id"],"widgetTitle":[1,"widget-title"],"widgetSubtitle":[1,"widget-subtitle"],"sectionTitle":[32],"sectionSubtitle":[32],"sectionBtnText":[32],"giftDetails":[32],"selectImageForYourGift":[32],"selectImageOrUpload":[32],"selectGiftMessage":[32],"giftCustomText":[32],"textId":[32],"incorrectGiftText":[32],"nextStep":[32],"senderNameLabel":[32],"receiverNameFieldLabel":[32],"receiverMobileFieldLabel":[32],"receiverEmailFieldLabel":[32],"emailPlaceholder":[32],"sendLater":[32],"selectSendDateAndTime":[32],"canNotEditOrderAfterSelectDate":[32],"sendGift":[32],"donationRequired":[32],"currentStep":[32],"showCalendar":[32],"showGiftText":[32],"currentLang":[32],"parentClass":[32],"errors":[32],"gift":[32],"selectedGiftTextOption":[32],"showTextArea":[32],"selectedImage":[32],"uploadedImage":[32],"selectedText":[32],"senderName":[32],"errorMessage":[32],"hasError":[32],"quantity":[32],"deliveryDate":[32],"timeZone":[32],"receiverName":[32],"receiverMobile":[32],"receiverCountryCode":[32],"receiverEmail":[32],"open":[64],"close":[64],"goToStep2":[64]}],[4,"salla-loyalty",{"prizePoints":[1544,"prize-points"],"customerPoints":[1538,"customer-points"],"prizeTitle":[1537,"prize-title"],"allowEmail":[4,"allow-email"],"allowMobile":[4,"allow-mobile"],"requireEmail":[4,"require-email"],"guestMessage":[1025,"guest-message"],"loyaltyProgram":[32],"buttonLoading":[32],"selectedItem":[32],"askConfirmation":[32],"is_loggedin":[32],"hasError":[32],"errorMessage":[32],"translationLoaded":[32],"open":[64],"close":[64],"resetExchange":[64],"exchangeLoyaltyPoint":[64]}],[4,"salla-product-size-guide",{"guides":[32],"productId":[32],"placeholder_title":[32],"placeholder_description":[32],"modal_title":[32],"hasError":[32],"open":[64],"close":[64]}],[4,"salla-login-modal",{"isEmailAllowed":[1028,"is-email-allowed"],"isMobileAllowed":[1028,"is-mobile-allowed"],"isEmailRequired":[1028,"is-email-required"],"supportWebAuth":[516,"support-web-auth"],"currentTabName":[32],"regType":[32],"translationLoaded":[32],"currentPhone":[32],"currentEmail":[32],"title":[32],"emailErrorMsg":[32],"firstNameErrorMsg":[32],"lastNameErrorMsg":[32],"dragAndDrop":[32],"browseFromFiles":[32],"customFields":[32],"uploadedImage":[32],"open":[64]},[[8,"verified","onVerified"]]],[0,"salla-offer-modal",{"offer":[32],"offer_name":[32],"offer_message":[32],"hasError":[32],"errorMessage":[32],"productID":[32],"offer_type":[32],"translationLoaded":[32],"addToCartLabel":[32],"open":[64],"showOffer":[64]}],[0,"salla-rating-modal",{"orderId":[2,"order-id"],"order":[32],"hasError":[32],"errorMessage":[32],"translationLoaded":[32],"open":[64],"close":[64]}],[4,"salla-scopes",{"selection":[1],"searchDisplayLimit":[2,"search-display-limit"],"translationLoaded":[32],"mode":[32],"current_scope":[32],"scopes":[32],"originalScopesList":[32],"selected_scope":[32],"isOpenedBefore":[32],"hasError":[32],"loading":[32],"close":[64],"open":[64],"handleSubmit":[64]}],[0,"salla-localization-modal",{"language":[1537],"currency":[1537],"translationLoaded":[32],"languages":[32],"currencies":[32],"hasError":[32],"errorMessage":[32],"open":[64],"close":[64],"submit":[64]}],[0,"salla-bottom-alert",{"type":[513],"icon":[513],"message":[513],"actionUrl":[513,"action-url"],"actionLabel":[513,"action-label"],"storeId":[32],"loading":[32],"templateData":[32],"defaultMessage":[32],"defaultActionLabel":[32],"storeFeatures":[32],"storeDetails":[32],"templateInformation":[32],"buyTheTemplate":[32]}],[0,"salla-quick-order",{"quickOrderTitle":[1025,"quick-order-title"],"subTitle":[1025,"sub-title"],"payButtonTitle":[1025,"pay-button-title"],"confirmPayButtonTitle":[1025,"confirm-pay-button-title"],"agreementText":[1025,"agreement-text"],"isEmailRequired":[1028,"is-email-required"],"productId":[1025,"product-id"],"thanksMessage":[1025,"thanks-message"],"quickOrderStyle":[1025,"quick-order-style"],"user":[32],"isAvailable":[32],"oneClick":[32],"expanded":[32],"isTermsRequired":[32],"countryCode":[32],"submitSucess":[32],"placeHolderEmail":[32],"emailOptional":[32],"agreementShowText":[32],"agreementModalHead":[32],"userNameLabel":[32],"termsChecked":[32]}],[0,"salla-user-settings",{"isNotifiable":[516,"is-notifiable"],"deactivateAccount":[32],"promotionalMsgs":[32],"deactivateDesc":[32],"promotionalMsgsDesc":[32],"sorryForLeavingText":[32],"warningText":[32],"keepAccount":[32],"buttonLoading":[32]}],[0,"salla-search",{"inline":[4],"oval":[4],"height":[2],"translationLoaded":[32],"results":[32],"loading":[32],"typing":[32],"debounce":[32],"search_term":[32]},[[0,"keydown","handleKeyDown"]]],[4,"salla-social-share",{"url":[513],"urlName":[513,"url-name"],"platforms":[513],"opened":[32],"allPlatforms":[32],"platformIcons":[32],"convertedPlatforms":[32],"open":[64],"refresh":[64]}],[4,"salla-cart-summary",{"showCartLabel":[4,"show-cart-label"],"cartSummaryCount":[32],"cartSummaryTotal":[32],"cartLabel":[32],"animateToCart":[64]}],[4,"salla-infinite-scroll",{"nextPage":[1,"next-page"],"autoload":[1028],"container":[1],"loadMoreText":[1,"load-more-text"],"item":[1],"loadMore":[32],"noMore":[32],"failedToLoad":[32]}],[0,"salla-maintenance-alert",{"title":[32],"message":[32],"buttonTitle":[32]}],[4,"salla-quantity-input",{"cartItemId":[8,"cart-item-id"],"quantity":[32],"fireChangeEvent":[32],"decrease":[64],"increase":[64],"setValue":[64]}],[4,"salla-user-menu",{"inline":[516],"avatarOnly":[516,"avatar-only"],"showHeader":[516,"show-header"],"relativeDropdown":[516,"relative-dropdown"],"accountLoading":[32],"opened":[32],"notifications":[32],"orders":[32],"pending_orders":[32],"wishlist":[32],"profile":[32],"rating":[32],"logout":[32],"hello":[32],"first_name":[32],"last_name":[32],"avatar":[32],"is_loggedIn":[32],"badges":[32],"hasBadges":[32],"OrderUpdate":[32]}],[4,"salla-product-card",{"product":[1],"horizontal":[4],"shadowOnHover":[4,"shadow-on-hover"],"hideAddBtn":[4,"hide-add-btn"],"fullImage":[4,"full-image"],"minimal":[4],"isSpecial":[4,"is-special"],"showQuantity":[4,"show-quantity"],"productData":[32],"fitImageHeight":[32],"remained":[32],"outOfStock":[32],"donationAmount":[32],"startingPrice":[32],"addToCart":[32],"placeholder":[32]}],[4,"salla-map",{"name":[1],"required":[4],"readonly":[4],"searchable":[1028],"lat":[1026],"lng":[1026],"apiKey":[1025,"api-key"],"modalTitle":[1,"modal-title"],"zoom":[1026],"theme":[1025],"modalActivityTitle":[32],"confirmButtonTitle":[32],"locateButtonTitle":[32],"locateButtonEdit":[32],"searchPlaceholder":[32],"searchInputValue":[32],"formattedAddress":[32],"geolocationError":[32],"searchInput":[32],"mapInput":[32],"mapElement":[32],"selectedLat":[32],"selectedLng":[32],"open":[64]}],[4,"salla-verify",{"display":[1],"type":[1025],"autoReload":[4,"auto-reload"],"supportWebAuth":[4,"support-web-auth"],"translationLoaded":[32],"title":[32],"resendAfter":[32],"isProfileVerify":[32],"getCode":[64],"open":[64]}],[4,"salla-color-picker",{"name":[1],"required":[4],"color":[1537],"format":[1],"showCancelButton":[4,"show-cancel-button"],"showTextField":[4,"show-text-field"],"enableAlpha":[4,"enable-alpha"],"widgetColor":[32],"setPickerOption":[64],"movePopUp":[64],"setColorValue":[64],"openPicker":[64],"closePicker":[64],"destroyPicker":[64]}],[4,"salla-add-product-button",{"channels":[513],"subscribedOptions":[1,"subscribed-options"],"quickBuy":[1540,"quick-buy"],"quantity":[514],"donatingAmount":[514,"donating-amount"],"notifyOptionsAvailability":[516,"notify-options-availability"],"productId":[520,"product-id"],"supportStickyBar":[516,"support-sticky-bar"],"productStatus":[513,"product-status"],"productType":[513,"product-type"],"hasOutOfStockOption":[32],"hasSubscribedOptions":[32],"selectedOptions":[32],"showQuickBuy":[32]}],[0,"salla-count-down",{"date":[1],"boxed":[4],"size":[1],"color":[1],"labeled":[4],"endText":[1,"end-text"],"digits":[1],"endOfDay":[4,"end-of-day"],"daysLabel":[32],"hoursLabel":[32],"minutesLabel":[32],"secondsLabel":[32],"endLabel":[32],"invalidDate":[32],"offerEnded":[32],"countInterval":[32],"days":[32],"hours":[32],"minutes":[32],"seconds":[32],"endCountDown":[64]}],[0,"salla-datetime-picker",{"value":[1537],"required":[4],"name":[513],"placeholder":[1],"allowInput":[4,"allow-input"],"allowInvalidPreload":[4,"allow-invalid-preload"],"altFormat":[1,"alt-format"],"altInput":[4,"alt-input"],"altInputClass":[1,"alt-input-class"],"appendTo":[16],"ariaDateFormat":[1,"aria-date-format"],"autoFillDefaultTime":[4,"auto-fill-default-time"],"clickOpens":[4,"click-opens"],"closeOnSelect":[4,"close-on-select"],"conjunction":[1],"dateFormat":[1,"date-format"],"defaultDate":[8,"default-date"],"defaultHour":[2,"default-hour"],"defaultMinute":[2,"default-minute"],"defaultSeconds":[2,"default-seconds"],"disable":[16],"disableMobile":[4,"disable-mobile"],"enable":[16],"enableSeconds":[4,"enable-seconds"],"enableTime":[4,"enable-time"],"formatDate":[16],"hourIncrement":[2,"hour-increment"],"inline":[4],"locale":[1],"maxDate":[8,"max-date"],"maxTime":[8,"max-time"],"minDate":[8,"min-date"],"minTime":[8,"min-time"],"minuteIncrement":[2,"minute-increment"],"mode":[1],"monthSelectorType":[1,"month-selector-type"],"nextArrow":[1,"next-arrow"],"noCalendar":[4,"no-calendar"],"dateParser":[16],"position":[1],"positionElement":[16],"prevArrow":[1,"prev-arrow"],"shorthandCurrentMonth":[4,"shorthand-current-month"],"static":[4],"showMonths":[2,"show-months"],"time_24hr":[4,"time_-2-4hr"],"weekNumbers":[4,"week-numbers"],"wrap":[4]}],[4,"salla-tab-content",{"name":[1],"isSelected":[32],"getChild":[64]}],[4,"salla-tab-header",{"name":[1],"activeClass":[1,"active-class"],"height":[8],"centered":[4],"isSelected":[32],"getChild":[64]}],[4,"salla-tabs",{"backgroundColor":[1,"background-color"],"vertical":[4]},[[0,"tabSelected","onSelectedTab"]]],[0,"salla-product-availability",{"channels":[1],"notifyOptionsAvailability":[4,"notify-options-availability"],"productId":[2,"product-id"],"isSubscribed":[1028,"is-subscribed"],"translationLoaded":[32],"title_":[32],"isVisitorSubscribed":[32]}],[0,"salla-quick-buy",{"type":[1025],"productId":[1025,"product-id"],"amount":[1538],"currency":[1025],"options":[16],"isRequireShipping":[1028,"is-require-shipping"],"isApplePayActive":[32],"quickBuy":[32]}],[0,"salla-file-upload",{"value":[1537],"files":[513],"height":[513],"cartItemId":[1,"cart-item-id"],"profileImage":[516,"profile-image"],"name":[1537],"payloadName":[1,"payload-name"],"accept":[1537],"fileId":[2,"file-id"],"url":[1025],"method":[1],"formData":[1,"form-data"],"required":[4],"maxFileSize":[1,"max-file-size"],"disabled":[4],"allowDrop":[4,"allow-drop"],"allowBrowse":[4,"allow-browse"],"allowPaste":[4,"allow-paste"],"allowMultiple":[4,"allow-multiple"],"allowReplace":[4,"allow-replace"],"allowRevert":[4,"allow-revert"],"allowRemove":[4,"allow-remove"],"allowProcess":[4,"allow-process"],"allowReorder":[4,"allow-reorder"],"storeAsFile":[4,"store-as-file"],"forceRevert":[4,"force-revert"],"maxFilesCount":[2,"max-files-count"],"maxParallelUploads":[2,"max-parallel-uploads"],"checkValidity":[4,"check-validity"],"itemInsertLocation":[1,"item-insert-location"],"itemInsertInterval":[2,"item-insert-interval"],"credits":[4],"dropOnPage":[4,"drop-on-page"],"dropOnElement":[4,"drop-on-element"],"dropValidation":[4,"drop-validation"],"ignoredFiles":[16],"instantUpload":[1028,"instant-upload"],"chunkUploads":[4,"chunk-uploads"],"chunkForce":[4,"chunk-force"],"chunkSize":[2,"chunk-size"],"chunkRetryDelays":[16],"labelDecimalSeparator":[1,"label-decimal-separator"],"labelThousandsSeparator":[1,"label-thousands-separator"],"labelIdle":[1025,"label-idle"],"iconRemove":[1,"icon-remove"],"iconProcess":[1,"icon-process"],"iconRetry":[1,"icon-retry"],"iconUndo":[1,"icon-undo"],"setOption":[64]}],[0,"salla-progress-bar",{"donation":[1],"target":[1026],"value":[1026],"height":[1025],"header":[1025],"stripped":[1028],"message":[1025],"unit":[1025],"color":[1025]}],[0,"salla-rating-stars",{"name":[1],"size":[1],"value":[2],"reviews":[2]}],[4,"salla-list-tile",{"href":[1],"target":[1]}],[4,"salla-slider",{"blockTitle":[513,"block-title"],"listenToThumbnailsOption":[516,"listen-to-thumbnails-option"],"blockSubtitle":[513,"block-subtitle"],"displayAllUrl":[513,"display-all-url"],"arrowsCentered":[516,"arrows-centered"],"verticalThumbs":[516,"vertical-thumbs"],"gridThumbs":[516,"grid-thumbs"],"vertical":[516],"autoHeight":[516,"auto-height"],"showControls":[516,"show-controls"],"controlsOuter":[516,"controls-outer"],"showThumbsControls":[4,"show-thumbs-controls"],"autoPlay":[4,"auto-play"],"slidesPerView":[1,"slides-per-view"],"pagination":[4],"centered":[4],"loop":[4],"direction":[1537],"type":[1],"sliderConfig":[520,"slider-config"],"thumbsConfig":[520,"thumbs-config"],"currentIndex":[32],"isEnd":[32],"isBeginning":[32],"swiperScript":[32],"displayAllTitle":[32],"windowWidth":[32],"slideTo":[64],"slideNext":[64],"slidePrev":[64],"slideToLoop":[64],"slideNextLoop":[64],"slidePrevLoop":[64],"slideReset":[64],"slideToClosest":[64],"update":[64],"updateAutoHeight":[64],"updateSlides":[64],"updateProgress":[64],"updateSlidesClasses":[64],"getSlides":[64]}],[4,"salla-placeholder",{"icon":[1],"alignment":[1],"iconSize":[1,"icon-size"],"translationLoaded":[32]}],[0,"salla-skeleton",{"type":[1],"width":[1],"height":[1]}],[0,"salla-tel-input",{"phone":[1025],"name":[1],"countryCode":[1025,"country-code"],"mobileRequired":[32],"countryCodeLabel":[32],"mobileLabel":[32],"tooShort":[32],"tooLong":[32],"invalidCountryCode":[32],"invalidNumber":[32],"errorMap":[32],"getValues":[64],"isValid":[64]}],[4,"salla-modal",{"isClosable":[1028,"is-closable"],"width":[513],"position":[513],"visible":[516],"hasSkeleton":[516,"has-skeleton"],"isLoading":[1540,"is-loading"],"subTitleFirst":[4,"sub-title-first"],"noPadding":[4,"no-padding"],"subTitle":[1,"sub-title"],"centered":[4],"iconStyle":[1,"icon-style"],"modalTitle":[32],"open":[64],"close":[64],"setTitle":[64],"loading":[64],"stopLoading":[64]},[[0,"keyup","handleKeyUp"]]],[0,"salla-loading",{"size":[8],"width":[8],"color":[1],"bgColor":[1,"bg-color"]}],[4,"salla-button",{"shape":[513],"color":[513],"fill":[513],"size":[513],"width":[513],"loading":[516],"disabled":[516],"loaderPosition":[1,"loader-position"],"href":[1],"load":[64],"stop":[64],"setText":[64],"disable":[64],"enable":[64]}]]],["p-d7b6c544",[[0,"salla-products-slider",{"blockTitle":[1,"block-title"],"subTitle":[1,"sub-title"],"sliderId":[1,"slider-id"],"displayAllUrl":[1,"display-all-url"],"autoplay":[1028],"source":[1537],"sourceValue":[1,"source-value"],"limit":[1026],"productsData":[32],"isReady":[32],"sourceValueIsValid":[32],"hasCustomComponent":[32],"apiUrl":[32],"parsedSourceValue":[32]}]]],["p-233b2fbc",[[0,"salla-product-options",{"productId":[2,"product-id"],"options":[1],"optionsData":[32],"outOfStockText":[32],"donationAmount":[32],"selectDonationAmount":[32],"selectAmount":[32],"isCustomDonation":[32],"selectedOptions":[32],"canDisabled":[32],"selectedSkus":[32],"selectedOutSkus":[32],"getSelectedOptionsData":[64],"reportValidity":[64],"hasOutOfStockOption":[64],"getSelectedOptions":[64],"getOption":[64]}]]],["p-5e0dac74",[[0,"salla-filters",{"filters":[1040],"isSidebarOpen":[32],"filtersData":[32],"apply":[32],"reset":[32],"getFilters":[64],"applyFilters":[64],"resetFilters":[64]}]]],["p-abf49bc4",[[0,"salla-comment-form",{"type":[1537],"showAvatar":[4,"show-avatar"],"itemId":[1544,"item-id"],"placeholder":[32],"submitText":[32],"canComment":[32]}]]],["p-c310da0c",[[0,"salla-installment",{"price":[1],"language":[1],"currency":[1],"tamaraIsActive":[32],"tabbyIsActive":[32],"spotiiIsActive":[32]}]]],["p-ea762a26",[[0,"salla-loyalty-prize-item",{"item":[16]}]]],["p-5f51f7e6",[[0,"salla-products-list",{"source":[1537],"sourceValue":[1032,"source-value"],"limit":[1026],"sortBy":[1025,"sort-by"],"filtersResults":[1540,"filters-results"],"horizontalCards":[516,"horizontal-cards"],"page":[32],"nextPage":[32],"hasInfiniteScroll":[32],"hasCustomComponent":[32],"sourceValueIsValid":[32],"placeholderText":[32],"isReady":[32],"showPlaceholder":[32],"parsedFilters":[32],"setFilters":[64],"reload":[64]}]]],["p-9a169208",[[0,"salla-price-range",{"minPrice":[1032,"min-price"],"maxPrice":[1032,"max-price"],"option":[16],"filtersData":[520,"filters-data"],"min":[32],"max":[32],"priceOptions":[32],"moreThanLabel":[32],"lessThanLabel":[32],"toLabel":[32],"fromLabel":[32],"reset":[64]}]]],["p-24103953",[[4,"salla-filters-widget",{"withLoadMore":[1028,"with-load-more"],"filtersData":[16],"option":[16],"isOpen":[32],"isShowMore":[32],"showMoreLabel":[32],"showLessLabel":[32],"setWidgetHeight":[64],"reset":[64],"showMore":[64],"toggleWidget":[64]}]]],["p-f5f83aa3",[[4,"salla-conditional-fields",null,[[0,"change","changeHandler"]]]]]]'),e)}));
4
+ import{p as e,b as a}from"./p-a3d07260.js";export{s as setNonce}from"./p-a3d07260.js";import{g as t}from"./p-ab4c6cc3.js";import"./p-f84bae34.js";const l=()=>{const a=import.meta.url;const t={};if(a!==""){t.resourcesUrl=new URL(".",a).href}return e(t)};l().then((e=>{t();return a(JSON.parse('[["p-c53f2b8f",[[4,"salla-gifting",{"productId":[2,"product-id"],"widgetTitle":[1,"widget-title"],"widgetSubtitle":[1,"widget-subtitle"],"sectionTitle":[32],"sectionSubtitle":[32],"sectionBtnText":[32],"giftDetails":[32],"selectImageForYourGift":[32],"selectImageOrUpload":[32],"selectGiftMessage":[32],"giftCustomText":[32],"textId":[32],"incorrectGiftText":[32],"nextStep":[32],"senderNameLabel":[32],"receiverNameFieldLabel":[32],"receiverMobileFieldLabel":[32],"receiverEmailFieldLabel":[32],"emailPlaceholder":[32],"sendLater":[32],"selectSendDateAndTime":[32],"canNotEditOrderAfterSelectDate":[32],"sendGift":[32],"donationRequired":[32],"currentStep":[32],"showCalendar":[32],"showGiftText":[32],"currentLang":[32],"parentClass":[32],"errors":[32],"gift":[32],"selectedGiftTextOption":[32],"showTextArea":[32],"selectedImage":[32],"uploadedImage":[32],"selectedText":[32],"senderName":[32],"errorMessage":[32],"hasError":[32],"quantity":[32],"deliveryDate":[32],"timeZone":[32],"receiverName":[32],"receiverMobile":[32],"receiverCountryCode":[32],"receiverEmail":[32],"open":[64],"close":[64],"goToStep2":[64]}],[4,"salla-loyalty",{"prizePoints":[1544,"prize-points"],"customerPoints":[1538,"customer-points"],"prizeTitle":[1537,"prize-title"],"allowEmail":[4,"allow-email"],"allowMobile":[4,"allow-mobile"],"requireEmail":[4,"require-email"],"guestMessage":[1025,"guest-message"],"loyaltyProgram":[32],"buttonLoading":[32],"selectedItem":[32],"askConfirmation":[32],"is_loggedin":[32],"hasError":[32],"errorMessage":[32],"translationLoaded":[32],"open":[64],"close":[64],"resetExchange":[64],"exchangeLoyaltyPoint":[64]}],[4,"salla-product-size-guide",{"guides":[32],"productId":[32],"placeholder_title":[32],"placeholder_description":[32],"modal_title":[32],"hasError":[32],"open":[64],"close":[64]}],[4,"salla-login-modal",{"isEmailAllowed":[1028,"is-email-allowed"],"isMobileAllowed":[1028,"is-mobile-allowed"],"isEmailRequired":[1028,"is-email-required"],"supportWebAuth":[516,"support-web-auth"],"currentTabName":[32],"regType":[32],"translationLoaded":[32],"currentPhone":[32],"currentEmail":[32],"title":[32],"emailErrorMsg":[32],"firstNameErrorMsg":[32],"lastNameErrorMsg":[32],"dragAndDrop":[32],"browseFromFiles":[32],"customFields":[32],"uploadedImage":[32],"open":[64]},[[8,"verified","onVerified"]]],[0,"salla-offer-modal",{"offer":[32],"offer_name":[32],"offer_message":[32],"hasError":[32],"errorMessage":[32],"productID":[32],"offer_type":[32],"translationLoaded":[32],"addToCartLabel":[32],"open":[64],"showOffer":[64]}],[0,"salla-rating-modal",{"orderId":[2,"order-id"],"order":[32],"hasError":[32],"errorMessage":[32],"translationLoaded":[32],"open":[64],"close":[64]}],[4,"salla-scopes",{"selection":[1],"searchDisplayLimit":[2,"search-display-limit"],"translationLoaded":[32],"mode":[32],"current_scope":[32],"scopes":[32],"originalScopesList":[32],"selected_scope":[32],"isOpenedBefore":[32],"hasError":[32],"loading":[32],"close":[64],"open":[64],"handleSubmit":[64]}],[0,"salla-localization-modal",{"language":[1537],"currency":[1537],"translationLoaded":[32],"languages":[32],"currencies":[32],"hasError":[32],"errorMessage":[32],"open":[64],"close":[64],"submit":[64]}],[0,"salla-bottom-alert",{"type":[513],"icon":[513],"message":[513],"actionUrl":[513,"action-url"],"actionLabel":[513,"action-label"],"storeId":[32],"loading":[32],"templateData":[32],"defaultMessage":[32],"defaultActionLabel":[32],"storeFeatures":[32],"storeDetails":[32],"templateInformation":[32],"buyTheTemplate":[32]}],[0,"salla-quick-order",{"quickOrderTitle":[1025,"quick-order-title"],"subTitle":[1025,"sub-title"],"payButtonTitle":[1025,"pay-button-title"],"confirmPayButtonTitle":[1025,"confirm-pay-button-title"],"agreementText":[1025,"agreement-text"],"isEmailRequired":[1028,"is-email-required"],"productId":[1025,"product-id"],"thanksMessage":[1025,"thanks-message"],"quickOrderStyle":[1025,"quick-order-style"],"user":[32],"isAvailable":[32],"oneClick":[32],"expanded":[32],"isTermsRequired":[32],"countryCode":[32],"submitSucess":[32],"placeHolderEmail":[32],"emailOptional":[32],"agreementShowText":[32],"agreementModalHead":[32],"userNameLabel":[32],"termsChecked":[32]}],[0,"salla-user-settings",{"isNotifiable":[516,"is-notifiable"],"deactivateAccount":[32],"promotionalMsgs":[32],"deactivateDesc":[32],"promotionalMsgsDesc":[32],"sorryForLeavingText":[32],"warningText":[32],"keepAccount":[32],"buttonLoading":[32]}],[0,"salla-search",{"inline":[4],"oval":[4],"height":[2],"translationLoaded":[32],"results":[32],"loading":[32],"typing":[32],"debounce":[32],"search_term":[32]},[[0,"keydown","handleKeyDown"]]],[4,"salla-social-share",{"url":[513],"urlName":[513,"url-name"],"platforms":[513],"opened":[32],"allPlatforms":[32],"platformIcons":[32],"convertedPlatforms":[32],"open":[64],"refresh":[64]}],[4,"salla-cart-summary",{"showCartLabel":[4,"show-cart-label"],"cartSummaryCount":[32],"cartSummaryTotal":[32],"cartLabel":[32],"animateToCart":[64]}],[4,"salla-infinite-scroll",{"nextPage":[1,"next-page"],"autoload":[1028],"container":[1],"loadMoreText":[1,"load-more-text"],"item":[1],"loadMore":[32],"noMore":[32],"failedToLoad":[32]}],[0,"salla-maintenance-alert",{"title":[32],"message":[32],"buttonTitle":[32]}],[4,"salla-quantity-input",{"cartItemId":[8,"cart-item-id"],"quantity":[32],"fireChangeEvent":[32],"decrease":[64],"increase":[64],"setValue":[64]}],[4,"salla-user-menu",{"inline":[516],"avatarOnly":[516,"avatar-only"],"showHeader":[516,"show-header"],"relativeDropdown":[516,"relative-dropdown"],"accountLoading":[32],"opened":[32],"notifications":[32],"orders":[32],"pending_orders":[32],"wishlist":[32],"profile":[32],"rating":[32],"logout":[32],"hello":[32],"first_name":[32],"last_name":[32],"avatar":[32],"is_loggedIn":[32],"badges":[32],"hasBadges":[32],"OrderUpdate":[32]}],[4,"salla-product-card",{"product":[1],"horizontal":[4],"shadowOnHover":[4,"shadow-on-hover"],"hideAddBtn":[4,"hide-add-btn"],"fullImage":[4,"full-image"],"minimal":[4],"isSpecial":[4,"is-special"],"showQuantity":[4,"show-quantity"],"productData":[32],"fitImageHeight":[32],"remained":[32],"outOfStock":[32],"donationAmount":[32],"startingPrice":[32],"addToCart":[32],"placeholder":[32]}],[4,"salla-map",{"name":[1],"required":[4],"readonly":[4],"searchable":[1028],"lat":[1026],"lng":[1026],"apiKey":[1025,"api-key"],"modalTitle":[1,"modal-title"],"zoom":[1026],"theme":[1025],"modalActivityTitle":[32],"confirmButtonTitle":[32],"locateButtonTitle":[32],"locateButtonEdit":[32],"searchPlaceholder":[32],"searchInputValue":[32],"formattedAddress":[32],"geolocationError":[32],"searchInput":[32],"mapInput":[32],"mapElement":[32],"selectedLat":[32],"selectedLng":[32],"open":[64]}],[4,"salla-verify",{"display":[1],"type":[1025],"autoReload":[4,"auto-reload"],"supportWebAuth":[4,"support-web-auth"],"translationLoaded":[32],"title":[32],"resendAfter":[32],"isProfileVerify":[32],"getCode":[64],"open":[64]}],[4,"salla-color-picker",{"name":[1],"required":[4],"color":[1537],"format":[1],"showCancelButton":[4,"show-cancel-button"],"showTextField":[4,"show-text-field"],"enableAlpha":[4,"enable-alpha"],"widgetColor":[32],"setPickerOption":[64],"movePopUp":[64],"setColorValue":[64],"openPicker":[64],"closePicker":[64],"destroyPicker":[64]}],[4,"salla-add-product-button",{"channels":[513],"subscribedOptions":[1,"subscribed-options"],"quickBuy":[1540,"quick-buy"],"quantity":[514],"donatingAmount":[514,"donating-amount"],"notifyOptionsAvailability":[516,"notify-options-availability"],"productId":[520,"product-id"],"supportStickyBar":[516,"support-sticky-bar"],"productStatus":[513,"product-status"],"productType":[513,"product-type"],"hasOutOfStockOption":[32],"hasSubscribedOptions":[32],"selectedOptions":[32],"showQuickBuy":[32]}],[0,"salla-count-down",{"date":[1],"boxed":[4],"size":[1],"color":[1],"labeled":[4],"endText":[1,"end-text"],"digits":[1],"endOfDay":[4,"end-of-day"],"daysLabel":[32],"hoursLabel":[32],"minutesLabel":[32],"secondsLabel":[32],"endLabel":[32],"invalidDate":[32],"offerEnded":[32],"countInterval":[32],"days":[32],"hours":[32],"minutes":[32],"seconds":[32],"endCountDown":[64]}],[0,"salla-datetime-picker",{"value":[1537],"required":[4],"name":[513],"placeholder":[1],"allowInput":[4,"allow-input"],"allowInvalidPreload":[4,"allow-invalid-preload"],"altFormat":[1,"alt-format"],"altInput":[4,"alt-input"],"altInputClass":[1,"alt-input-class"],"appendTo":[16],"ariaDateFormat":[1,"aria-date-format"],"autoFillDefaultTime":[4,"auto-fill-default-time"],"clickOpens":[4,"click-opens"],"closeOnSelect":[4,"close-on-select"],"conjunction":[1],"dateFormat":[1,"date-format"],"defaultDate":[8,"default-date"],"defaultHour":[2,"default-hour"],"defaultMinute":[2,"default-minute"],"defaultSeconds":[2,"default-seconds"],"disable":[16],"disableMobile":[4,"disable-mobile"],"enable":[16],"enableSeconds":[4,"enable-seconds"],"enableTime":[4,"enable-time"],"formatDate":[16],"hourIncrement":[2,"hour-increment"],"inline":[4],"locale":[1],"maxDate":[8,"max-date"],"maxTime":[8,"max-time"],"minDate":[8,"min-date"],"minTime":[8,"min-time"],"minuteIncrement":[2,"minute-increment"],"mode":[1],"monthSelectorType":[1,"month-selector-type"],"nextArrow":[1,"next-arrow"],"noCalendar":[4,"no-calendar"],"dateParser":[16],"position":[1],"positionElement":[16],"prevArrow":[1,"prev-arrow"],"shorthandCurrentMonth":[4,"shorthand-current-month"],"static":[4],"showMonths":[2,"show-months"],"time_24hr":[4,"time_-2-4hr"],"weekNumbers":[4,"week-numbers"],"wrap":[4]}],[4,"salla-tab-content",{"name":[1],"isSelected":[32],"getChild":[64]}],[4,"salla-tab-header",{"name":[1],"activeClass":[1,"active-class"],"height":[8],"centered":[4],"isSelected":[32],"getChild":[64]}],[4,"salla-tabs",{"backgroundColor":[1,"background-color"],"vertical":[4]},[[0,"tabSelected","onSelectedTab"]]],[0,"salla-product-availability",{"channels":[1],"notifyOptionsAvailability":[4,"notify-options-availability"],"productId":[2,"product-id"],"isSubscribed":[1028,"is-subscribed"],"translationLoaded":[32],"title_":[32],"isVisitorSubscribed":[32]}],[0,"salla-quick-buy",{"type":[1025],"productId":[1025,"product-id"],"amount":[1538],"currency":[1025],"options":[16],"isRequireShipping":[1028,"is-require-shipping"],"isApplePayActive":[32],"quickBuy":[32]}],[0,"salla-file-upload",{"value":[1537],"files":[513],"height":[513],"cartItemId":[1,"cart-item-id"],"profileImage":[516,"profile-image"],"name":[1537],"payloadName":[1,"payload-name"],"accept":[1537],"fileId":[2,"file-id"],"url":[1025],"method":[1],"formData":[1,"form-data"],"required":[4],"maxFileSize":[1,"max-file-size"],"disabled":[4],"allowDrop":[4,"allow-drop"],"allowBrowse":[4,"allow-browse"],"allowPaste":[4,"allow-paste"],"allowMultiple":[4,"allow-multiple"],"allowReplace":[4,"allow-replace"],"allowRevert":[4,"allow-revert"],"allowRemove":[4,"allow-remove"],"allowProcess":[4,"allow-process"],"allowReorder":[4,"allow-reorder"],"storeAsFile":[4,"store-as-file"],"forceRevert":[4,"force-revert"],"maxFilesCount":[2,"max-files-count"],"maxParallelUploads":[2,"max-parallel-uploads"],"checkValidity":[4,"check-validity"],"itemInsertLocation":[1,"item-insert-location"],"itemInsertInterval":[2,"item-insert-interval"],"credits":[4],"dropOnPage":[4,"drop-on-page"],"dropOnElement":[4,"drop-on-element"],"dropValidation":[4,"drop-validation"],"ignoredFiles":[16],"instantUpload":[1028,"instant-upload"],"chunkUploads":[4,"chunk-uploads"],"chunkForce":[4,"chunk-force"],"chunkSize":[2,"chunk-size"],"chunkRetryDelays":[16],"labelDecimalSeparator":[1,"label-decimal-separator"],"labelThousandsSeparator":[1,"label-thousands-separator"],"labelIdle":[1025,"label-idle"],"iconRemove":[1,"icon-remove"],"iconProcess":[1,"icon-process"],"iconRetry":[1,"icon-retry"],"iconUndo":[1,"icon-undo"],"setOption":[64]}],[0,"salla-progress-bar",{"donation":[1],"target":[1026],"value":[1026],"height":[1025],"header":[1025],"stripped":[1028],"message":[1025],"unit":[1025],"color":[1025]}],[0,"salla-rating-stars",{"name":[1],"size":[1],"value":[2],"reviews":[2]}],[4,"salla-list-tile",{"href":[1],"target":[1]}],[4,"salla-slider",{"blockTitle":[513,"block-title"],"listenToThumbnailsOption":[516,"listen-to-thumbnails-option"],"blockSubtitle":[513,"block-subtitle"],"displayAllUrl":[513,"display-all-url"],"arrowsCentered":[516,"arrows-centered"],"verticalThumbs":[516,"vertical-thumbs"],"gridThumbs":[516,"grid-thumbs"],"vertical":[516],"autoHeight":[516,"auto-height"],"showControls":[516,"show-controls"],"controlsOuter":[516,"controls-outer"],"showThumbsControls":[4,"show-thumbs-controls"],"autoPlay":[4,"auto-play"],"slidesPerView":[1,"slides-per-view"],"pagination":[4],"centered":[4],"loop":[4],"direction":[1537],"type":[1],"sliderConfig":[520,"slider-config"],"thumbsConfig":[520,"thumbs-config"],"currentIndex":[32],"isEnd":[32],"isBeginning":[32],"swiperScript":[32],"displayAllTitle":[32],"windowWidth":[32],"slideTo":[64],"slideNext":[64],"slidePrev":[64],"slideToLoop":[64],"slideNextLoop":[64],"slidePrevLoop":[64],"slideReset":[64],"slideToClosest":[64],"update":[64],"updateAutoHeight":[64],"updateSlides":[64],"updateProgress":[64],"updateSlidesClasses":[64],"getSlides":[64]}],[4,"salla-placeholder",{"icon":[1],"alignment":[1],"iconSize":[1,"icon-size"],"translationLoaded":[32]}],[0,"salla-skeleton",{"type":[1],"width":[1],"height":[1]}],[0,"salla-tel-input",{"phone":[1025],"name":[1],"countryCode":[1025,"country-code"],"mobileRequired":[32],"countryCodeLabel":[32],"mobileLabel":[32],"tooShort":[32],"tooLong":[32],"invalidCountryCode":[32],"invalidNumber":[32],"errorMap":[32],"getValues":[64],"isValid":[64]}],[4,"salla-modal",{"isClosable":[1028,"is-closable"],"width":[513],"position":[513],"visible":[516],"hasSkeleton":[516,"has-skeleton"],"isLoading":[1540,"is-loading"],"subTitleFirst":[4,"sub-title-first"],"noPadding":[4,"no-padding"],"subTitle":[1,"sub-title"],"centered":[4],"iconStyle":[1,"icon-style"],"modalTitle":[32],"open":[64],"close":[64],"setTitle":[64],"loading":[64],"stopLoading":[64]},[[0,"keyup","handleKeyUp"]]],[0,"salla-loading",{"size":[8],"width":[8],"color":[1],"bgColor":[1,"bg-color"]}],[4,"salla-button",{"shape":[513],"color":[513],"fill":[513],"size":[513],"width":[513],"loading":[516],"disabled":[516],"loaderPosition":[1,"loader-position"],"href":[1],"load":[64],"stop":[64],"setText":[64],"disable":[64],"enable":[64]}]]],["p-d7b6c544",[[0,"salla-products-slider",{"blockTitle":[1,"block-title"],"subTitle":[1,"sub-title"],"sliderId":[1,"slider-id"],"displayAllUrl":[1,"display-all-url"],"autoplay":[1028],"source":[1537],"sourceValue":[1,"source-value"],"limit":[1026],"productsData":[32],"isReady":[32],"sourceValueIsValid":[32],"hasCustomComponent":[32],"apiUrl":[32],"parsedSourceValue":[32]}]]],["p-233b2fbc",[[0,"salla-product-options",{"productId":[2,"product-id"],"options":[1],"optionsData":[32],"outOfStockText":[32],"donationAmount":[32],"selectDonationAmount":[32],"selectAmount":[32],"isCustomDonation":[32],"selectedOptions":[32],"canDisabled":[32],"selectedSkus":[32],"selectedOutSkus":[32],"getSelectedOptionsData":[64],"reportValidity":[64],"hasOutOfStockOption":[64],"getSelectedOptions":[64],"getOption":[64]}]]],["p-5e0dac74",[[0,"salla-filters",{"filters":[1040],"isSidebarOpen":[32],"filtersData":[32],"apply":[32],"reset":[32],"getFilters":[64],"applyFilters":[64],"resetFilters":[64]}]]],["p-abf49bc4",[[0,"salla-comment-form",{"type":[1537],"showAvatar":[4,"show-avatar"],"itemId":[1544,"item-id"],"placeholder":[32],"submitText":[32],"canComment":[32]}]]],["p-c310da0c",[[0,"salla-installment",{"price":[1],"language":[1],"currency":[1],"tamaraIsActive":[32],"tabbyIsActive":[32],"spotiiIsActive":[32]}]]],["p-ea762a26",[[0,"salla-loyalty-prize-item",{"item":[16]}]]],["p-330c0988",[[0,"salla-products-list",{"source":[1537],"sourceValue":[1032,"source-value"],"limit":[1026],"sortBy":[1025,"sort-by"],"filtersResults":[1540,"filters-results"],"horizontalCards":[516,"horizontal-cards"],"page":[32],"nextPage":[32],"hasInfiniteScroll":[32],"hasCustomComponent":[32],"sourceValueIsValid":[32],"placeholderText":[32],"isReady":[32],"showPlaceholder":[32],"parsedFilters":[32],"setFilters":[64],"reload":[64]}]]],["p-9a169208",[[0,"salla-price-range",{"minPrice":[1032,"min-price"],"maxPrice":[1032,"max-price"],"option":[16],"filtersData":[520,"filters-data"],"min":[32],"max":[32],"priceOptions":[32],"moreThanLabel":[32],"lessThanLabel":[32],"toLabel":[32],"fromLabel":[32],"reset":[64]}]]],["p-24103953",[[4,"salla-filters-widget",{"withLoadMore":[1028,"with-load-more"],"filtersData":[16],"option":[16],"isOpen":[32],"isShowMore":[32],"showMoreLabel":[32],"showLessLabel":[32],"setWidgetHeight":[64],"reset":[64],"showMore":[64],"toggleWidget":[64]}]]],["p-f5f83aa3",[[4,"salla-conditional-fields",null,[[0,"change","changeHandler"]]]]]]'),e)}));
5
5
  //# sourceMappingURL=twilight.esm.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salla.sa/twilight-components",
3
- "version": "2.12.37",
3
+ "version": "2.12.39",
4
4
  "license": "GPL-3.0",
5
5
  "author": "Salla Team <support@salla.dev> (https://salla.dev)",
6
6
  "bugs": {
@@ -93,10 +93,10 @@
93
93
  "filepond-plugin-image-preview": "^4.6.11",
94
94
  "flatpickr": "^4.6.13",
95
95
  "google-maps": "^4.3.3",
96
- "intl-tel-input": "^17.0.13",
96
+ "intl-tel-input": "^18.2.1",
97
97
  "swiper": "^8.3.1",
98
98
  "vanilla-lazyload": "^17.8.3",
99
99
  "vanilla-picker": "^2.12.1"
100
100
  },
101
- "gitHead": "cd7fa47990efca1cf00891d0ab1c7d6bf80d12ee"
101
+ "gitHead": "06c0a726c9f8ee56b53a8cb522eb46271bbc35ee"
102
102
  }
@@ -1 +0,0 @@
1
- {"version":3,"names":["sallaProductsListCss","SallaProductsList","connectedCallback","salla","event","on","filters","this","setFilters","async","JSON","stringify","parsedFilters","window","scrollTo","top","behavior","reload","infiniteScroll","destroy","buildNextPageUrl","wrapper","innerHTML","init","isFilterable","config","get","filtersResults","isSourceWithoutValue","includes","getSource","animateItems","anime","targets","opacity","duration","translateY","delay","_el","i","createStatusDom","status","document","createElement","className","lang","btnLoader","querySelector","onLoaded","placeholderText","initBaseNextPageUrl","source","nextPage","url","api","limit","sortBy","key","value","Object","entries","encodeURIComponent","Array","isArray","forEach","item","k","v","getSourceValue","join","e","logger","warn","sourceValueIsValid","loading","isLoading","style","display","getItemHTML","product","customComponentTag","hasCustomComponent","productCard","applyLandingPageStyles","applyHorizontalCardStyles","toggleAttribute","classList","add","horizontalCards","setAttribute","Helper","getProductsSource","getProductsSourceValue","sourceValue","initiateInfiniteScroll","hasInfiniteScroll","host","insertAdjacentElement","initiate","path","history","scrollThreshold","_a","_b","response","data","length","pageIndex","showPlaceholder","appendItems","handleResponse","_c","remove","onReady","loadNextPage","componentWillLoad","onSallaReadyPromise","customElements","searchParams","URLSearchParams","location","search","parse","decodeURIComponent","message","isReady","map","append","fetchProducts","then","res","card","canRender","render","h","class","ShoppingBag","Host","ref","componentDidLoad","title","cursor","current","getPageTitleForSource","word","catId","category_id","_d","find","filter","values","cat","choice","_e","replace","emit","productsFetched","next","option","loadOnScroll","_f"],"sources":["./src/components/salla-products-list/salla-products-list.scss?tag=salla-products-list","./src/components/salla-products-list/salla-products-list.tsx"],"sourcesContent":["\n","import { Component, Host, h, Prop, State, Element, Method, Event, EventEmitter } from '@stencil/core';\nimport anime from 'animejs';\nimport ShoppingBag from '../../assets/svg/shopping-bag.svg';\nimport Helper from '../../Helpers/Helper';\n@Component({\n tag: 'salla-products-list',\n styleUrl: 'salla-products-list.scss'\n})\nexport class SallaProductsList {\n connectedCallback() {\n salla.event.on('salla-filters::changed', filters => this.setFilters(filters))\n }\n\n /**\n * Set parsed filters data from URI\n * @param filters\n */\n @Method()\n async setFilters(filters) {\n if (!!filters && JSON.stringify(this.parsedFilters) === JSON.stringify(filters)) {\n return;\n }\n window.scrollTo({ top: 0, behavior: 'smooth' });\n this.parsedFilters = filters;\n return this.reload();\n }\n\n /**\n * Reload the list of products (entire content of the component).\n */\n @Method()\n async reload() {\n salla.infiniteScroll.destroy(this.infiniteScroll);\n this.buildNextPageUrl();\n // TODO: this is problematic in testing, for the time being it's been resolved like this\n this.wrapper.innerHTML = '';\n this.init();\n }\n\n\n private status: HTMLDivElement;\n private btnLoader: HTMLAnchorElement;\n @Element() host: HTMLElement;\n private wrapper: any;\n private infiniteScroll: any;\n /**\n * The source of the products list\n * @type {string}\n * */\n @Prop({\n reflect: true,\n mutable: true\n }) source: 'categories' | 'latest' | 'related' | 'brands' | 'json' | 'search' | 'tags' | 'selected' | 'offers' | 'landing-page' | 'sales';\n\n /**\n * The source value, cloud be different values as following:\n * - array of ids when `source` in ['categories', 'brands', 'tags', 'selected']\n * - keyword when `source` = 'search'\n * - products payload when `source` = 'json'\n * - product_id when `source` = 'related'\n *\n * @type {string}\n * */\n @Prop({ mutable: true }) sourceValue: any;\n\n /**\n * Limit for number of products in the list.\n */\n @Prop({ mutable: true }) limit: number;\n\n /**\n * Sorting the list of products\n */\n @Prop({ mutable: true }) sortBy?: string | 'ourSuggest' | 'bestSell' | 'topRated' | 'priceFromTopToLow' | 'priceFromLowToTop';\n\n /**\n * should listen to filters events `salla-filters::changed` and re-render\n */\n @Prop({ reflect: true, mutable: true }) filtersResults: boolean;\n\n /**\n * Horizontal cards\n */\n @Prop({ reflect: true }) horizontalCards: boolean\n\n // State\n @State() page: number = 1;\n @State() nextPage: string;\n @State() hasInfiniteScroll: boolean;\n @State() hasCustomComponent: boolean;\n @State() sourceValueIsValid: boolean;\n @State() placeholderText: string;\n @State() isReady: boolean;\n @State() showPlaceholder: boolean;\n @State() parsedFilters: any;\n\n /**\n * Custom event fired when the the products fetched.\n */\n @Event() productsFetched: EventEmitter;\n\n private isFilterable() {\n return salla.config.get('store.settings.product.filters') && this.filtersResults;\n }\n\n private isSourceWithoutValue() {\n return ['offers', 'latest', 'sales'].includes(this.getSource());\n }\n\n private animateItems() {\n anime({\n targets: 'salla-products-list salla-product-card',\n opacity: [0, 1],\n duration: 1200,\n translateY: [20, 0],\n delay: function (_el, i) {\n return i * 100;\n },\n })\n }\n\n private createStatusDom() {\n this.status = document.createElement('div');\n this.status.className = 's-infinite-scroll-wrapper';\n this.status.innerHTML = `<div class=\"s-infinite-scroll-status\">\n <p class=\"s-infinite-scroll-last infinite-scroll-last s-hidden\" >${salla.lang.get('common.elements.end_of_content')}</p>\n <p class=\"s-infinite-scroll-error infinite-scroll-error s-hidden\">${salla.lang.get('common.elements.failed_to_load_more')}</p>\n </div>\n <a href=\"#\" class=\"s-infinite-scroll-btn s-button-btn\">\n <span class=\"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader\" style=\"display: none\"></span>\n </a>`;\n this.btnLoader = this.status.querySelector('.s-button-loader');\n salla.lang.onLoaded(() => {\n this.status.querySelector('.s-infinite-scroll-last').innerHTML = salla.lang.get('common.elements.end_of_content');\n this.status.querySelector('.s-infinite-scroll-error').innerHTML = salla.lang.get('common.elements.failed_to_load_more');\n this.placeholderText = salla.lang.get('pages.categories.no_products');\n });\n }\n\n private initBaseNextPageUrl(source: string) {\n\n this.nextPage = salla.url.api(`products?source=${source}`);\n\n if (this.limit) {\n this.nextPage += `&per_page=${this.limit > 32 ? 32 : this.limit}`;\n }\n if (this.sortBy) {\n this.nextPage += `&sort=${this.sortBy}`;\n }\n // if (!this.isFilterable()) {\n // return this.nextPage;\n // }\n this.nextPage += '&filterable=1';\n for (const [key, value] of Object.entries(this.parsedFilters || {})) {\n if ([\"string\", \"number\"].includes(typeof value)) {\n // @ts-ignore\n this.nextPage += `&filters[${encodeURIComponent(key)}]=${encodeURIComponent(value)}`;\n } else if (Array.isArray(value)) {\n value.forEach(item => this.nextPage += `&filters[${encodeURIComponent(key)}][]=${encodeURIComponent(item)}`);\n } else if (typeof value === 'object') {\n for (const [k, v] of Object.entries(value)) {\n this.nextPage += `&filters[${encodeURIComponent(key)}][${encodeURIComponent(k)}]=${encodeURIComponent(v)}`;\n }\n }\n }\n }\n\n private buildNextPageUrl() {\n let source = this.getSource();\n if (source === 'json') {\n return;\n }\n this.initBaseNextPageUrl(source);\n if (this.isSourceWithoutValue()) {\n return;\n }\n\n if (['search', 'related', 'landing-page'].includes(source)) {\n this.nextPage += `&source_value=${this.getSourceValue()}`;\n return;\n }\n\n try {\n this.nextPage += `&source_value[]=${this.getSourceValue().join('&source_value[]=')}`;\n } catch (e) {\n salla.logger.warn(`source-value prop should be array of ids ex source-value=\"[1,2,3]\" for the source [${source}]`);\n this.sourceValueIsValid = false;\n }\n }\n\n\n private loading(isLoading = true) {\n this.btnLoader.style.display = isLoading ? 'inherit' : 'none';\n }\n\n private getItemHTML(product) {\n const customComponentTag = this.hasCustomComponent ? 'custom-salla-product-card' : 'salla-product-card';\n const productCard = document.createElement(customComponentTag) as HTMLSallaProductCardElement;\n productCard.product = product;\n\n this.applyLandingPageStyles(productCard);\n this.applyHorizontalCardStyles(productCard);\n\n return productCard;\n }\n\n private applyLandingPageStyles(productCard) {\n if (this.getSource() === 'landing-page' && !this.hasCustomComponent) {\n productCard.toggleAttribute('hide-add-btn', true);\n productCard.classList.add('s-product-card-fit-height');\n }\n }\n\n private applyHorizontalCardStyles(productCard) {\n if (!this.horizontalCards) {\n return;\n }\n productCard.setAttribute('horizontal', true);\n if (!this.hasCustomComponent) {\n productCard.setAttribute('shadow-on-hover', true);\n }\n\n }\n\n private getSource() {\n return Helper.getProductsSource(this.source);\n }\n\n private getSourceValue() {\n return Helper.getProductsSourceValue(this.source, this.sourceValue);\n }\n\n private initiateInfiniteScroll() {\n if (!this.hasInfiniteScroll) {\n return;\n }\n\n this.host.insertAdjacentElement('beforeend', this.status);\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.nextPage,\n history: false,\n nextPage: this.nextPage,\n scrollThreshold: 100,\n }, /* infinite via api*/true);\n this.infiniteScroll?.on('request', () => this.loading())\n this.infiniteScroll?.on('load', response => {\n if (!response.data?.length && this.infiniteScroll.pageIndex == 2) {\n this.showPlaceholder = true;\n salla.infiniteScroll.destroy(this.infiniteScroll);\n this.loading(false);\n return;\n } else {\n this.showPlaceholder = false;\n\n }\n this.infiniteScroll.appendItems(this.handleResponse(response))\n if (this.infiniteScroll.pageIndex == 2) {\n this.animateItems();\n }\n })\n this.infiniteScroll?.on('error', () => {\n this.status.querySelector('.s-infinite-scroll-error').classList.remove('s-hidden')\n this.loading(false);\n });\n salla.onReady(() => salla.infiniteScroll.loadNextPage(this.infiniteScroll))\n }\n\n componentWillLoad() {\n return Helper.onSallaReadyPromise( () => {\n this.hasCustomComponent = !!customElements.get('custom-salla-product-card');\n this.sourceValueIsValid = !!(this.getSourceValue() || this.isSourceWithoutValue());\n this.hasInfiniteScroll = !['json', 'selected', 'related', 'landing-page'].includes(this.getSource()) && !this.limit;\n try {\n let searchParams = new URLSearchParams(window.location.search);\n this.sortBy = this.sortBy || searchParams.get('sort') || searchParams.get('by');\n let filters = searchParams.get('filters')\n this.parsedFilters = filters ? JSON.parse(decodeURIComponent(filters)) : {};\n } catch (e) {\n salla.logger.warn('failed to get filters from url', e.message);\n }\n this.buildNextPageUrl();\n this.createStatusDom();\n \n this.isReady = true;\n \n if (!this.sourceValueIsValid) {\n salla.logger.warn(`source-value prop is required for source [${this.getSource()}]`);\n return;\n }\n if (this.hasInfiniteScroll) {\n return;\n }\n\n // Handle json source\n if (this.getSource() === 'json') {\n if (!this.getSourceValue().length) {\n this.showPlaceholder = true;\n return;\n }\n this.getSourceValue().map(product => this.wrapper.append(this.getItemHTML(product)));\n return;\n }\n\n // Handle selected source\n if (this.getSource() === 'selected' && !this.getSourceValue().length) {\n this.showPlaceholder = true;\n return;\n }\n\n return Helper.fetchProducts(this.getSource(), this.getSourceValue(), this.limit).then(res => {\n if (!res.data.length) {\n this.showPlaceholder = true;\n this.loading(false);\n return;\n }\n this.handleResponse(res).forEach(card => this.wrapper.append(card));\n });\n });\n }\n\n\n\n private canRender() {\n return this.sourceValueIsValid && this.isReady;\n }\n\n render() {\n if (!this.canRender()) {\n return '';\n }\n\n if (this.showPlaceholder) {\n return <div class=\"s-products-list-placeholder\">\n <span innerHTML={ShoppingBag} />\n <p>{this.placeholderText}</p>\n </div>;\n }\n return (\n <Host class=\"s-products-list\">\n <div class={{\n \"s-products-list-wrapper\": true,\n 's-products-list-horizontal-cards': this.horizontalCards && !this.filtersResults,\n 's-products-list-vertical-cards': !this.horizontalCards && !this.filtersResults,\n 's-products-list-filters-results': this.filtersResults,\n }}\n ref={wrapper => this.wrapper = wrapper} />\n </Host>\n );\n }\n\n componentDidLoad() {\n this.hasInfiniteScroll && this.init();\n }\n\n private init() {\n this.initiateInfiniteScroll();\n this.loading();\n }\n\n private handleResponse(response): Array<HTMLElement> {\n let source=this.getSource();\n let title = '';\n //help the developer to know the current page title\n if (response.cursor?.current === 1) {\n title = Helper.getPageTitleForSource(source);\n try {\n if (this.getSource() === 'search') {\n title = salla.lang.get('common.elements.search_about', {'word': this.getSourceValue()});\n } else if (!title) {\n let catId = this.parsedFilters.category_id || this.getSourceValue()[0];\n // get the first filter that its key is category_id, then get the value when filter.value.*.key==catId\n title = response.filters.find(filter => filter.key == 'category_id') ?. values ?. find(cat => cat.key == catId) ?. value || '';\n }\n title += (title ? ' - ' : '') + salla.lang.choice('blocks.header.products_count', response.data ?. length);\n if (response.data.length === 20) {\n title = title.replace(response.data.length, salla.lang.get('common.elements.more_than') + ' ' + response.data.length)\n }\n response.title = title;\n } catch (e) {}\n }\n\n salla.event.emit('salla-products-list::products.fetched', response);\n this.productsFetched.emit(response);\n //💡 when source is related, cursor will not be existed\n if (response.filters && this.isFilterable()) {\n this.filtersResults = true;\n salla.event.emit('filters::fetched', { filters: response.filters });\n } else if (this.isFilterable()) {\n salla.event.emit('filters::hidden');\n }\n this.nextPage = response.cursor ? response.cursor.next : this.nextPage;\n this.loading(false);\n if (this.hasInfiniteScroll && !this.nextPage) {\n this.infiniteScroll.option({ scrollThreshold: false, loadOnScroll: false });\n this.status.querySelector('.s-infinite-scroll-last').classList.remove('s-hidden');\n }\n return response.data?.map(product => this.getItemHTML(product)) || [];\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["sallaProductsListCss","SallaProductsList","exports","class_1","prototype","connectedCallback","_this","this","salla","event","on","filters","setFilters","JSON","stringify","parsedFilters","window","scrollTo","top","behavior","reload","infiniteScroll","destroy","buildNextPageUrl","wrapper","innerHTML","init","isFilterable","config","get","filtersResults","isSourceWithoutValue","includes","getSource","animateItems","anime","targets","opacity","duration","translateY","delay","_el","i","createStatusDom","status","document","createElement","className","concat","lang","btnLoader","querySelector","onLoaded","placeholderText","initBaseNextPageUrl","source","nextPage","url","api","limit","sortBy","key","value","this_1","encodeURIComponent","Array","isArray","forEach","item","_j","_k","Object","entries","length","_l","k","v","_i","_g","_h","getSourceValue","join","e","logger","warn","sourceValueIsValid","loading","isLoading","style","display","getItemHTML","product","customComponentTag","hasCustomComponent","productCard","applyLandingPageStyles","applyHorizontalCardStyles","toggleAttribute","classList","add","horizontalCards","setAttribute","Helper","getProductsSource","getProductsSourceValue","sourceValue","initiateInfiniteScroll","hasInfiniteScroll","host","insertAdjacentElement","initiate","path","history","scrollThreshold","_a","_b","response","data","pageIndex","showPlaceholder","appendItems","handleResponse","_c","remove","onReady","loadNextPage","componentWillLoad","onSallaReadyPromise","customElements","searchParams","URLSearchParams","location","search","parse","decodeURIComponent","message","isReady","map","append","fetchProducts","then","res","card","canRender","render","h","class","ShoppingBag","Host","ref","componentDidLoad","title","cursor","current","getPageTitleForSource","word","catId_1","category_id","_d","find","filter","values","cat","choice","_e","replace","emit","productsFetched","next","option","loadOnScroll","_f"],"sources":["src/components/salla-products-list/salla-products-list.scss?tag=salla-products-list","src/components/salla-products-list/salla-products-list.tsx"],"sourcesContent":["\n","import { Component, Host, h, Prop, State, Element, Method, Event, EventEmitter } from '@stencil/core';\nimport anime from 'animejs';\nimport ShoppingBag from '../../assets/svg/shopping-bag.svg';\nimport Helper from '../../Helpers/Helper';\n@Component({\n tag: 'salla-products-list',\n styleUrl: 'salla-products-list.scss'\n})\nexport class SallaProductsList {\n connectedCallback() {\n salla.event.on('salla-filters::changed', filters => this.setFilters(filters))\n }\n\n /**\n * Set parsed filters data from URI\n * @param filters\n */\n @Method()\n async setFilters(filters) {\n if (!!filters && JSON.stringify(this.parsedFilters) === JSON.stringify(filters)) {\n return;\n }\n window.scrollTo({ top: 0, behavior: 'smooth' });\n this.parsedFilters = filters;\n return this.reload();\n }\n\n /**\n * Reload the list of products (entire content of the component).\n */\n @Method()\n async reload() {\n salla.infiniteScroll.destroy(this.infiniteScroll);\n this.buildNextPageUrl();\n // TODO: this is problematic in testing, for the time being it's been resolved like this\n this.wrapper.innerHTML = '';\n this.init();\n }\n\n\n private status: HTMLDivElement;\n private btnLoader: HTMLAnchorElement;\n @Element() host: HTMLElement;\n private wrapper: any;\n private infiniteScroll: any;\n /**\n * The source of the products list\n * @type {string}\n * */\n @Prop({\n reflect: true,\n mutable: true\n }) source: 'categories' | 'latest' | 'related' | 'brands' | 'json' | 'search' | 'tags' | 'selected' | 'offers' | 'landing-page' | 'sales';\n\n /**\n * The source value, cloud be different values as following:\n * - array of ids when `source` in ['categories', 'brands', 'tags', 'selected']\n * - keyword when `source` = 'search'\n * - products payload when `source` = 'json'\n * - product_id when `source` = 'related'\n *\n * @type {string}\n * */\n @Prop({ mutable: true }) sourceValue: any;\n\n /**\n * Limit for number of products in the list.\n */\n @Prop({ mutable: true }) limit: number;\n\n /**\n * Sorting the list of products\n */\n @Prop({ mutable: true }) sortBy?: string | 'ourSuggest' | 'bestSell' | 'topRated' | 'priceFromTopToLow' | 'priceFromLowToTop';\n\n /**\n * should listen to filters events `salla-filters::changed` and re-render\n */\n @Prop({ reflect: true, mutable: true }) filtersResults: boolean;\n\n /**\n * Horizontal cards\n */\n @Prop({ reflect: true }) horizontalCards: boolean\n\n // State\n @State() page: number = 1;\n @State() nextPage: string;\n @State() hasInfiniteScroll: boolean;\n @State() hasCustomComponent: boolean;\n @State() sourceValueIsValid: boolean;\n @State() placeholderText: string;\n @State() isReady: boolean;\n @State() showPlaceholder: boolean;\n @State() parsedFilters: any;\n\n /**\n * Custom event fired when the the products fetched.\n */\n @Event() productsFetched: EventEmitter;\n\n private isFilterable() {\n return salla.config.get('store.settings.product.filters') && this.filtersResults;\n }\n\n private isSourceWithoutValue() {\n return ['offers', 'latest', 'sales'].includes(this.getSource());\n }\n\n private animateItems() {\n anime({\n targets: 'salla-products-list salla-product-card',\n opacity: [0, 1],\n duration: 1200,\n translateY: [20, 0],\n delay: function (_el, i) {\n return i * 100;\n },\n })\n }\n\n private createStatusDom() {\n this.status = document.createElement('div');\n this.status.className = 's-infinite-scroll-wrapper';\n this.status.innerHTML = `<div class=\"s-infinite-scroll-status\">\n <p class=\"s-infinite-scroll-last infinite-scroll-last s-hidden\" >${salla.lang.get('common.elements.end_of_content')}</p>\n <p class=\"s-infinite-scroll-error infinite-scroll-error s-hidden\">${salla.lang.get('common.elements.failed_to_load_more')}</p>\n </div>\n <a href=\"#\" class=\"s-infinite-scroll-btn s-button-btn\">\n <span class=\"s-button-loader s-button-loader-center s-infinite-scroll-btn-loader\" style=\"display: none\"></span>\n </a>`;\n this.btnLoader = this.status.querySelector('.s-button-loader');\n salla.lang.onLoaded(() => {\n this.status.querySelector('.s-infinite-scroll-last').innerHTML = salla.lang.get('common.elements.end_of_content');\n this.status.querySelector('.s-infinite-scroll-error').innerHTML = salla.lang.get('common.elements.failed_to_load_more');\n this.placeholderText = salla.lang.get('pages.categories.no_products');\n });\n }\n\n private initBaseNextPageUrl(source: string) {\n\n this.nextPage = salla.url.api(`products?source=${source}`);\n\n if (this.limit) {\n this.nextPage += `&per_page=${this.limit > 32 ? 32 : this.limit}`;\n }\n if (this.sortBy) {\n this.nextPage += `&sort=${this.sortBy}`;\n }\n // if (!this.isFilterable()) {\n // return this.nextPage;\n // }\n this.nextPage += '&filterable=1';\n for (const [key, value] of Object.entries(this.parsedFilters || {})) {\n if ([\"string\", \"number\"].includes(typeof value)) {\n // @ts-ignore\n this.nextPage += `&filters[${encodeURIComponent(key)}]=${encodeURIComponent(value)}`;\n } else if (Array.isArray(value)) {\n value.forEach(item => this.nextPage += `&filters[${encodeURIComponent(key)}][]=${encodeURIComponent(item)}`);\n } else if (typeof value === 'object') {\n for (const [k, v] of Object.entries(value)) {\n this.nextPage += `&filters[${encodeURIComponent(key)}][${encodeURIComponent(k)}]=${encodeURIComponent(v)}`;\n }\n }\n }\n }\n\n private buildNextPageUrl() {\n let source = this.getSource();\n if (source === 'json') {\n return;\n }\n this.initBaseNextPageUrl(source);\n if (this.isSourceWithoutValue()) {\n return;\n }\n\n if (['search', 'related', 'landing-page'].includes(source)) {\n this.nextPage += `&source_value=${this.getSourceValue()}`;\n return;\n }\n\n try {\n this.nextPage += `&source_value[]=${this.getSourceValue().join('&source_value[]=')}`;\n } catch (e) {\n salla.logger.warn(`source-value prop should be array of ids ex source-value=\"[1,2,3]\" for the source [${source}]`);\n this.sourceValueIsValid = false;\n }\n }\n\n\n private loading(isLoading = true) {\n this.btnLoader.style.display = isLoading ? 'inherit' : 'none';\n }\n\n private getItemHTML(product) {\n const customComponentTag = this.hasCustomComponent ? 'custom-salla-product-card' : 'salla-product-card';\n const productCard = document.createElement(customComponentTag) as HTMLSallaProductCardElement;\n productCard.product = product;\n\n this.applyLandingPageStyles(productCard);\n this.applyHorizontalCardStyles(productCard);\n\n return productCard;\n }\n\n private applyLandingPageStyles(productCard) {\n if (this.getSource() === 'landing-page' && !this.hasCustomComponent) {\n productCard.toggleAttribute('hide-add-btn', true);\n productCard.classList.add('s-product-card-fit-height');\n }\n }\n\n private applyHorizontalCardStyles(productCard) {\n if (!this.horizontalCards) {\n return;\n }\n productCard.setAttribute('horizontal', true);\n if (!this.hasCustomComponent) {\n productCard.setAttribute('shadow-on-hover', true);\n }\n\n }\n\n private getSource() {\n return Helper.getProductsSource(this.source);\n }\n\n private getSourceValue() {\n return Helper.getProductsSourceValue(this.source, this.sourceValue);\n }\n\n private initiateInfiniteScroll() {\n if (!this.hasInfiniteScroll) {\n return;\n }\n\n this.host.insertAdjacentElement('beforeend', this.status);\n this.infiniteScroll = salla.infiniteScroll.initiate(this.wrapper, this.wrapper, {\n path: () => this.nextPage,\n history: false,\n nextPage: this.nextPage,\n scrollThreshold: 100,\n }, /* infinite via api*/true);\n this.infiniteScroll?.on('request', () => this.loading())\n this.infiniteScroll?.on('load', response => {\n if (!response.data?.length && this.infiniteScroll.pageIndex == 2) {\n this.showPlaceholder = true;\n salla.infiniteScroll.destroy(this.infiniteScroll);\n this.loading(false);\n return;\n } else {\n this.showPlaceholder = false;\n\n }\n this.infiniteScroll.appendItems(this.handleResponse(response))\n if (this.infiniteScroll.pageIndex == 2) {\n this.animateItems();\n }\n })\n this.infiniteScroll?.on('error', () => {\n this.status.querySelector('.s-infinite-scroll-error').classList.remove('s-hidden')\n this.loading(false);\n });\n salla.onReady(() => salla.infiniteScroll.loadNextPage(this.infiniteScroll))\n }\n\n componentWillLoad() {\n return Helper.onSallaReadyPromise( () => {\n this.hasCustomComponent = !!customElements.get('custom-salla-product-card');\n this.sourceValueIsValid = !!(this.getSourceValue() || this.isSourceWithoutValue());\n this.hasInfiniteScroll = !['json', 'selected', 'related', 'landing-page'].includes(this.getSource()) && !this.limit;\n try {\n let searchParams = new URLSearchParams(window.location.search);\n this.sortBy = this.sortBy || searchParams.get('sort') || searchParams.get('by');\n let filters = searchParams.get('filters')\n this.parsedFilters = filters ? JSON.parse(decodeURIComponent(filters)) : {};\n } catch (e) {\n salla.logger.warn('failed to get filters from url', e.message);\n }\n this.buildNextPageUrl();\n this.createStatusDom();\n \n this.isReady = true;\n \n if (!this.sourceValueIsValid) {\n salla.logger.warn(`source-value prop is required for source [${this.getSource()}]`);\n return;\n }\n if (this.hasInfiniteScroll) {\n return;\n }\n\n // Handle json source\n if (this.getSource() === 'json') {\n if (!this.getSourceValue().length) {\n this.showPlaceholder = true;\n return;\n }\n this.getSourceValue().map(product => this.wrapper.append(this.getItemHTML(product)));\n return;\n }\n\n // Handle selected source\n if (this.getSource() === 'selected' && !this.getSourceValue().length) {\n this.showPlaceholder = true;\n return;\n }\n\n return Helper.fetchProducts(this.getSource(), this.getSourceValue(), this.limit).then(res => {\n if (!res.data.length) {\n this.showPlaceholder = true;\n this.loading(false);\n return;\n }\n this.handleResponse(res).forEach(card => this.wrapper.append(card));\n });\n });\n }\n\n\n\n private canRender() {\n return this.sourceValueIsValid && this.isReady;\n }\n\n render() {\n if (!this.canRender()) {\n return '';\n }\n\n if (this.showPlaceholder) {\n return <div class=\"s-products-list-placeholder\">\n <span innerHTML={ShoppingBag} />\n <p>{this.placeholderText}</p>\n </div>;\n }\n return (\n <Host class=\"s-products-list\">\n <div class={{\n \"s-products-list-wrapper\": true,\n 's-products-list-horizontal-cards': this.horizontalCards && !this.filtersResults,\n 's-products-list-vertical-cards': !this.horizontalCards && !this.filtersResults,\n 's-products-list-filters-results': this.filtersResults,\n }}\n ref={wrapper => this.wrapper = wrapper} />\n </Host>\n );\n }\n\n componentDidLoad() {\n this.hasInfiniteScroll && this.init();\n }\n\n private init() {\n this.initiateInfiniteScroll();\n this.loading();\n }\n\n private handleResponse(response): Array<HTMLElement> {\n let source=this.getSource();\n let title = '';\n //help the developer to know the current page title\n if (response.cursor?.current === 1) {\n title = Helper.getPageTitleForSource(source);\n try {\n if (this.getSource() === 'search') {\n title = salla.lang.get('common.elements.search_about', {'word': this.getSourceValue()});\n } else if (!title) {\n let catId = this.parsedFilters.category_id || this.getSourceValue()[0];\n // get the first filter that its key is category_id, then get the value when filter.value.*.key==catId\n title = response.filters.find(filter => filter.key == 'category_id') ?. values ?. find(cat => cat.key == catId) ?. value || '';\n }\n title += (title ? ' - ' : '') + salla.lang.choice('blocks.header.products_count', response.data ?. length);\n if (response.data.length === 20) {\n title = title.replace(response.data.length, salla.lang.get('common.elements.more_than') + ' ' + response.data.length)\n }\n response.title = title;\n } catch (e) {}\n }\n\n salla.event.emit('salla-products-list::products.fetched', response);\n this.productsFetched.emit(response);\n //💡 when source is related, cursor will not be existed\n if (response.filters && this.isFilterable()) {\n this.filtersResults = true;\n salla.event.emit('filters::fetched', { filters: response.filters });\n } else if (this.isFilterable()) {\n salla.event.emit('filters::hidden');\n }\n this.nextPage = response.cursor ? response.cursor.next : this.nextPage;\n this.loading(false);\n if (this.hasInfiniteScroll && !this.nextPage) {\n this.infiniteScroll.option({ scrollThreshold: false, loadOnScroll: false });\n this.status.querySelector('.s-infinite-scroll-last').classList.remove('s-hidden');\n }\n return response.data?.map(product => this.getItemHTML(product)) || [];\n }\n}\n"],"mappings":"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"}