UNPKG

@salla.sa/twilight-components

Version:
5 lines 12.2 kB
var __awaiter=this&&this.__awaiter||function(e,r,t,s){function n(e){return e instanceof t?e:new t((function(r){r(e)}))}return new(t||(t=Promise))((function(t,a){function i(e){try{l(s.next(e))}catch(e){a(e)}}function o(e){try{l(s["throw"](e))}catch(e){a(e)}}function l(e){e.done?t(e.value):n(e.value).then(i,o)}l((s=s.apply(e,r||[])).next())}))};var __generator=this&&this.__generator||function(e,r){var t={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},s,n,a,i;return i={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(i[Symbol.iterator]=function(){return this}),i;function o(e){return function(r){return l([e,r])}}function l(o){if(s)throw new TypeError("Generator is already executing.");while(i&&(i=0,o[0]&&(t=0)),t)try{if(s=1,n&&(a=o[0]&2?n["return"]:o[0]?n["throw"]||((a=n["return"])&&a.call(n),0):n.next)&&!(a=a.call(n,o[1])).done)return a;if(n=0,a)o=[o[0]&2,a.value];switch(o[0]){case 0:case 1:a=o;break;case 4:t.label++;return{value:o[1],done:false};case 5:t.label++;n=o[1];o=[0];continue;case 7:o=t.ops.pop();t.trys.pop();continue;default:if(!(a=t.trys,a=a.length>0&&a[a.length-1])&&(o[0]===6||o[0]===2)){t=0;continue}if(o[0]===3&&(!a||o[1]>a[0]&&o[1]<a[3])){t.label=o[1];break}if(o[0]===6&&t.label<a[1]){t.label=a[1];a=o;break}if(a&&t.label<a[2]){t.label=a[2];t.ops.push(o);break}if(a[2])t.ops.pop();t.trys.pop();continue}o=r.call(e,t)}catch(e){o=[6,e];n=0}finally{s=a=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}}; /*! * Crafted with ❤ by Salla */System.register(["./p-BpZusWo-.system.js"],(function(e){"use strict";var r,t,s;return{setters:[function(e){r=e.r;t=e.h;s=e.g}],execute:function(){var n;(function(e){e["ProductDetail"]="product.single";e["Cart"]="cart"})(n||(n={}));var a;(function(e){e["Conditional"]="conditional";e["PercentageOrFixed"]="fixed";e["DiscountsTable"]="discounts_table";e["Bank"]="bank";e["BuyXGetY"]="buy_x_get_y";e["SpecialPrice"]="special_price"})(a||(a={}));var i='.s-offer-wrapper .s-slider-block__title h2{font-size:1.125rem;line-height:1.75rem;color:#f87171}.s-offer-wrapper .s-slider-block__title h2::before{font-family:"sallaicons";content:"\\ee30" !important;position:absolute;top:1rem;font-size:3rem;font-weight:400;line-height:1;color:#fef2f2}.s-offer-bank-wrapper-sinlge-item{display:-ms-flexbox;display:flex;-ms-flex-align:center !important;align-items:center !important;gap:14px}.s-offer-bank-wrapper{display:-ms-flexbox !important;display:flex !important;width:100% !important}';var o=e("salla_offer",function(){function e(e){var t=this;r(this,e);var s;this.productCardComponent="custom-salla-product-card";this.offersList=[];this.isMultipleBank=false;this.isBankOffer=false;this.canRender=false;this.showOffer=salla.config.get("store.settings.product.show_special_offers");this.offer_with_price_text=salla.lang.get("pages.offer.with_price",{price:""});this.with_discount_text=salla.lang.get("pages.products.with_a_discount");this.product_discount_text=salla.lang.get("pages.products.discount");this.special_offer_text=salla.lang.get("pages.products.special_offer");this.multipleBankOfferTitleText=salla.lang.get("pages.offer.multiple_bank_offers_title");this.multipleBankOfferTitleDescription=salla.lang.get("pages.offer.multiple_bank_offers_message");this.buy_quantity_text=function(e){return salla.lang.get("pages.offer.buy_quantity",{quantity:e})};salla.lang.onLoaded((function(){t.offer_with_price_text=salla.lang.get("pages.offer.with_price");t.with_discount_text=salla.lang.get("pages.products.with_a_discount");t.product_discount_text=salla.lang.get("pages.products.discount");t.special_offer_text=salla.lang.get("pages.products.special_offer");t.multipleBankOfferTitleText=salla.lang.get("pages.offer.multiple_bank_offers_title");t.multipleBankOfferTitleDescription=salla.lang.get("pages.offer.multiple_bank_offers_message");t.buy_quantity_text(0)}));salla.onReady((function(){t.currentPage=salla.config.get("page.slug");t.userCurrency=salla.config.get("currencies")[salla.config.get("user.currency_code")].symbol}));this.categorySlot=((s=this.host.querySelector('[slot="category"]'))===null||s===void 0?void 0:s.innerHTML)||'<a href={url} class="s-offer-slide-cat-entry"><i class={icon}></i><h4>{name}</h4></a>'}e.prototype.getEndpointByPageName=function(){return __awaiter(this,void 0,void 0,(function(){var e;return __generator(this,(function(r){switch(r.label){case 0:if(!(this.currentPage==n.Cart))return[3,2];return[4,Salla.cart.getCurrentCartId()];case 1:e=r.sent();return[2,"offers/cart/".concat(e)];case 2:if(this.currentPage==n.ProductDetail){return[2,"offers/product/".concat(salla.config.get("page.id"))]}return[2,"offers"]}}))}))};e.prototype.componentWillLoad=function(){var e=this;this.hasCustomComponent=!!customElements.get(this.productCardComponent);return new Promise((function(e){return salla.onReady(e)})).then((function(){e.showOffer=!salla.url.is_page("product.single")||salla.config.get("store.settings.product.show_special_offers");if(e.showOffer){return}throw new Error("Merchant disabled showing the offers on product page")})).then((function(){return __awaiter(e,void 0,void 0,(function(){var e,r;return __generator(this,(function(t){switch(t.label){case 0:r=(e=salla.api).request;return[4,this.getEndpointByPageName()];case 1:return[2,r.apply(e,[t.sent()])]}}))}))})).then((function(r){if(!(e.offersList=r.data).length){throw new Error("salla-offers:: There is no offers!")}var t=e.offersList.find((function(e){return[a.SpecialPrice,a.Bank,a.BuyXGetY,a.DiscountsTable].includes(e.type)}));if(!t){throw new Error("salla-offers:: Offer type not supported yet!")}if(t.type===a.DiscountsTable){return e.offersList=[t]}if(e.isBankOffer=t.type===a.Bank){e.offersList=e.offersList.filter((function(e){return e.type===a.Bank}));e.isMultipleBank=e.offersList.length>1;return e.offersList}if(t.type===a.SpecialPrice){var s=t.details;return s.apply_to==="product"?salla.product.api.fetch({source:"selected",source_value:s.targets}).then((function(r){t.details.products=r.data;return e.offersList=[t]})):salla.product.api.categories().then((function(r){var n=e.findCategories(r.data,s.targets);t.details.categories=n;return e.offersList=[t]}))}var n=t.details.get;return n.source==="products"?salla.product.api.fetch({source:"selected",source_value:n.source_value}).then((function(r){n.products=r.data;t.details.get=n;return e.offersList=[t]})):salla.product.api.categories().then((function(r){n.categories=e.findCategories(r.data,n.source_value);t.details.get=n;return e.offersList=[t]}))})).then((function(r){salla.storage.set(e.getStorageKey(),{offers:r,stored_at:(new Date).getTime()});e.canRender=true})).catch((function(e){salla.logger.warn(e)}))};e.prototype.componentDidLoad=function(){var e=this.host.querySelector(".s-slider-block__title-nav");e===null||e===void 0?void 0:e.classList.add("s-offer-bank-payment-nav")};e.prototype.findCategories=function(e,r){var t;var s=[];for(var n=0,a=e;n<a.length;n++){var i=a[n];if(r.includes(i.id_||i.id)){s.push(i)}if(((t=i.sub_categories)===null||t===void 0?void 0:t.length)>0){s=s.concat(this.findCategories(i.sub_categories,r))}}return s};e.prototype.getStorageKey=function(){try{var e=salla.config.get("page.slug").replace(".","_");var r=salla.lang.getLocale();var t=salla.config.currency().code;if(!e||!r||!t){throw new Error("Unable to get the storage key.")}return"s-offers-".concat(e,"-").concat(salla.config.get("page.id"),"-").concat(r,"-").concat(t)}catch(e){return""}};e.prototype.getOffersFromStorage=function(){var e=salla.storage.get(this.getStorageKey());if(!e||e.stored_at<(new Date).getTime()-10*60*1e3){salla.storage.remove(this.getStorageKey());return null}this.canRender=true;return Promise.resolve(e.offers)};e.prototype.render=function(){if(!this.offersList.length||!this.canRender||!this.showOffer)return null;var e=this.offersList[0];var r=this.isBankOffer?this.isMultipleBank?this.multipleBankOfferTitleText:null:e.title;var s=this.isBankOffer?this.isMultipleBank?this.multipleBankOfferTitleDescription:null:e.description;var n={"block-title":r,"block-subTitle":s,"show-controls":this.isMultipleBank};return t("div",{class:"s-offer-wrapper"},t("p",{class:"s-offer-corner-badge"},this.special_offer_text),t("salla-slider",Object.assign({type:"carousel",id:"offer-slider"},n),t("div",{slot:"items"},this.renderSectionForOfferType(e.type))))};e.prototype.renderSectionForOfferType=function(e){if(this.isBankOffer){return this.renderBankSection()}if(e==a.SpecialPrice){return this.renderSpecialPriceSection()}if(e==a.BuyXGetY){return this.renderBuyXGetYSection()}return this.renderDiscountTableSection()};e.prototype.getCategoriesSection=function(e){return t("div",{class:"s-offer-slide-one-sixth swiper-slide",innerHTML:this.categorySlot.replace(/\{url\}/g,e.url).replace(/\{icon\}/g,e.icon||"sicon-store").replace(/\{name\}/g,e.name)})};e.prototype.renderBuyXGetYSection=function(){var e=this;var r,s;var n=this.offersList[0].details;return[(r=n.get.products)===null||r===void 0?void 0:r.map((function(r){return t("div",{class:"s-offer-slide-one-fourth"},e.hasCustomComponent?t(e.productCardComponent,{product:r}):t("salla-product-card",{"shadow-on-hover":true,product:r}))})),(s=n.get.categories)===null||s===void 0?void 0:s.map((function(r){return e.getCategoriesSection(r)}))]};e.prototype.renderBankSection=function(){var e=this;return this.offersList.map((function(r){return t("div",{class:{"s-offer-slide-one-sixth":e.isMultipleBank,"s-offer-bank-wrapper-sinlge-item":!e.isMultipleBank}},t("div",{class:{"s-offer-bank-wrapper":true,"s-offer-slide-one-sixth":!e.isMultipleBank,"s-offer-bank-wrapper-multi-spacer":e.isMultipleBank}},t("div",{class:"s-offer-bank-logo"},t("img",{src:r.details.logo||salla.url.cdn("images/s-empty.png"),"data-src":r.details.logo,alt:r.title+" offer"})),t("ul",{class:"s-offer-bank-payment-wrapper"},r.details.payments.map((function(e){return t("li",{class:"s-offer-bank-payment-single"},t("img",{src:salla.url.cdn("images/payment/"+e+".png")||salla.url.cdn("images/s-empty.png"),"data-src":salla.url.cdn("images/payment/"+e+".png"),alt:"payment"}))}))),e.isMultipleBank?t("p",{class:"s-offer-bank-payment-discount-percent"},"".concat(e.product_discount_text," ").concat(r.details.discount_value).concat(r.details.discount_type==="percentage"&&"%")):""),!e.isMultipleBank?t("div",{class:"s-offer-bank-message s-offer-slide-one-fourth"},t("h2",null,e.offersList[0].title),t("p",{innerHTML:e.generateBankDescription(e.offersList[0].description,r.details.discount_value)})):"")}))};e.prototype.generateBankDescription=function(e,r){return e.replace(new RegExp("".concat(r," %")),'<span class="s-offer-bank-message-amount">'.concat(r," %</span>"))};e.prototype.renderDiscountTableSection=function(){var e=this;var r;var s=this.offersList[0];var n=s.details.show_price_after_discount;return(r=this.offersList[0].details.discounts)===null||r===void 0?void 0:r.map((function(r){return t("div",{class:"s-offer-slide-one-fourth"},t("div",{class:"s-offer-slide-offer-entry"},t("div",{class:"s-offer-slide-offer-entry-price-quantity-container"},t("p",{class:"s-offer-slide-offer-entry-quantity"},e.buy_quantity_text(r.quantity)),n?t("div",{class:"s-offer-slide-offer-entry-price"},t("span",null,e.offer_with_price_text),t("span",{class:"s-offer-slide-offer-entry-price-amount"},r.discounted_amount)," ",t("span",null,e.userCurrency)):""),t("p",{class:"s-offer-slide-offer-entry-price-amount-percent"},e.with_discount_text,"(",t("span",null,r.percentage,!!r.percentage&&"%"),")")))}))};e.prototype.renderSpecialPriceSection=function(){var e=this;var r,s;var n=this.offersList[0].details;return[n.apply_to==="product"&&((r=n.products)===null||r===void 0?void 0:r.map((function(r){return t("div",{class:"s-offer-slide-one-fourth"},e.hasCustomComponent?t(e.productCardComponent,{product:r}):t("salla-product-card",{"shadow-on-hover":true,product:r}))}))),n.apply_to==="category"&&((s=n.categories)===null||s===void 0?void 0:s.map((function(r){return e.getCategoriesSection(r)})))]};Object.defineProperty(e.prototype,"host",{get:function(){return s(this)},enumerable:false,configurable:true});return e}());o.style=i}}})); //# sourceMappingURL=p-9eb471f6.system.entry.js.map