@salla.sa/twilight-components
Version:
Salla Web Component
4 lines • 14.2 kB
JavaScript
/*!
* Crafted with ❤ by Salla
*/
import{r as a,c as e,h as s,H as r}from"./p-BHYtfMwX.js";import{c as l,b as t,f as o}from"./p-Dvaa0hYf.js";import{S as c}from"./p-CXRKXFgT.js";import{S as d}from"./p-cgSL_BIo.js";import{S as i}from"./p-BZp0rKEO.js";import{S as n}from"./p-8Tsmrwno.js";import{T as y}from"./p-D8Vw7Lrc.js";const p=class{constructor(s){a(this,s),this.actionClick=e(this,"actionClick"),this.isShopNow=a=>!!(salla.config.get("store.features")||[]).includes("loyalty-system-v2")&&"free_product"===a.key?.toLowerCase(),this.handleClick=a=>{salla.config.isGuest()?l((()=>salla.event.dispatch("login::open"))):this.actionClick.emit(a)}}render(){return s("div",{key:"95d6e753d49c7cb69e6f5e25ef6ccf3f916f4022",class:"s-loyalty-program-rewards-modal-action"},this.isShopNow(this.prize)?s("a",{href:this.prize.prize_url||salla.url.get(""),class:{"s-loyalty-program-rewards-action-base":!0,"s-loyalty-program-rewards-action-on":!0}},salla.lang.get("pages.loyalty_program.shop_now")):s("button",{onClick:this.handleClick,class:{"s-loyalty-program-rewards-action-base":!0,"s-loyalty-program-rewards-action-on":!0}},salla.lang.get("pages.loyalty_program.redeem_reward")))}};p.style="";const f=class{constructor(s){a(this,s),this.areaClick=e(this,"areaClick"),this.actionClick=e(this,"actionClick")}render(){return s(r,{key:"900a20618e1b3ce82778aa99715baf61689f3eee",class:"s-loyalty-program-reward-host"},s("div",{key:"95b326008c2799ee7d38b48bc57e0860a9386184",class:"s-loyalty-program-reward-container"},s("div",{key:"d846dc36fa4494ed9ac6152a982f18598936969f",onClick:a=>this.areaClick.emit(a),role:"button"},s("div",{key:"b8d23796827e4b07f6c271c50fa0e4aeb59f82fc",class:"s-loyalty-program-reward-img"},s("img",{key:"04a52401941d8a731e8d310397b1ad735bfe44db",alt:"",src:this.prize.image||salla.url.cdn("images/s-empty.png"),class:"s-loyalty-program-rewards-img"})),s("div",{key:"64fa967c98d615d7b16859c9d14b60e0c53fc5aa",class:"s-loyalty-program-reward-content"},s("div",{key:"bb8c34ce8f3bcec9599c87b56bea6abd793187df",class:"s-loyalty-program-reward-points"},s("salla-badge",{key:"f7d0a396cf754d1e8f9e8fddee53a7d545311148",size:"xs"},s("span",{key:"36f4e1ed873f1a231e2d5e51a2a8cc36bdcedfee",innerHTML:c}),s("span",{key:"638b3ecefbfcb424869987ab33478e67d9b5d9b8",class:"s-loyalty-program-rewards-points"},this.prize.cost_points," ",salla.lang.get("pages.loyalty_program.points")))),s("div",{key:"6f8386fccf201836d76a86e7fe5e6d3461bb5540",class:"s-loyalty-program-reward-title"},s("span",{key:"6d6692c44d6bac35da40108514471a3c56884d81"},this.prize.group_title)),s("div",{key:"6ad9ad90728ac7f882ff8db9cfadb5a6e12f3e25",class:"s-loyalty-program-reward-name"},s("div",{key:"ef4344c7cb67785a4cd66d36e303e40a610a5375",class:"s-loyalty-program-rewards-name",id:`prize-${this.prize.id}`},this.prize.name,this.prize.description?`: ${this.prize.description}`:"")))),s("div",{key:"5eee5a4f8b10cd790ce41e4a99d94f86bd26dd3b",class:"p-4"},s("slot",{key:"359d50033cdd3cce41901401bf0b75ba9c5aea1f",name:"action"},s("button",{key:"ea7aa1c5cd50937a27cef7580e508a1e3f8f852d",onClick:a=>this.actionClick.emit(a.detail),class:"s-loyalty-program-rewards-action-base s-loyalty-program-rewards-action-on"},salla.lang.get("pages.loyalty_program.show_reward"))))))}};f.style="";var m=function(a,e,s,r){var l,t=arguments.length,o=t<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,s):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(a,e,s,r);else for(var c=a.length-1;c>=0;c--)(l=a[c])&&(o=(t<3?l(o):t>3?l(e,s,o):l(e,s))||o);return t>3&&o&&Object.defineProperty(e,s,o),o};const g=(...a)=>a.map((a=>"s-loyalty-program-"+a)).join(" "),b=class{constructor(s){a(this,s),this.actionClick=e(this,"actionClick"),this.refreshKey=Date.now()}handlePrizeChange(){this.refreshKey=Date.now()}componentWillLoad(){"idle"===this.category.status&&this.category(),"idle"===this.brand.status&&this.brand()}getTermsAndConditions(){const a=Number((this.prize.order_minimum_amount||"0").split(".")[0])||0,e=Number((this.prize.coupon_maximum_amount||"0").split(".")[0])||0,s=[];return a&&s.push([salla.lang.get("pages.loyalty_program.order_minimum_amount"),`${a} ${salla.lang.get(`currency.${(salla.config.get("user.currency_code")||"").toLowerCase()}`)}`]),e&&s.push([salla.lang.get("pages.loyalty_program.coupon_maximum_amount"),`${e} ${salla.lang.get(`currency.${(salla.config.get("user.currency_code")||"").toLowerCase()}`)}`]),s}findItems(a){return a?.length?this.brand.data.concat(this.category.data).filter((e=>a.includes(e.id_))):[]}getIncludedItems(a,e){return a?.length?a:e?.length?this.findItems(e):[]}getProductIds(a){return a||[]}getItemsMarkers(a){return"both"===a?this.getItemsMarkers("included")+this.getItemsMarkers("excluded"):[this.prize[`${a}_product_ids`]?.length||0,this.prize[`${a}_brand_ids`]?.length||0,this.prize[`${a}_category_ids`]?.length||0].map(Boolean).map(Number).join("")}getItemsMarkersText(){if("FREE_SHIPPING"===this.prize.key)return salla.lang.get("pages.loyalty_program.redeem_for_free_shipping");switch(this.getItemsMarkers("included")){case"001":default:return salla.lang.get("pages.loyalty_program.redeem_on_specific_products");case"010":return salla.lang.get("pages.loyalty_program.redeem_on_specific_brands");case"100":return salla.lang.get("pages.loyalty_program.redeem_on_specific_categories");case"000":return salla.lang.get("pages.loyalty_program.redeem_on_all_products")}}getCategoriesJsx(a,e){return a.length?s("div",{class:g("reward-details-categories-wrapper")},s("div",{class:g("reward-details-categories")},s("h2",{class:g("reward-details-categories-heading")},e),s("ul",{class:g("reward-details-categories-list")},a.map((a=>s("li",null,s("a",{href:a.urls?.customer||a.url||a.lingual_urls?.[0],class:g("reward-details-categories-item")},s("span",{innerHTML:d}),s("span",{class:g("reward-details-categories-item-content")},a.name)))))))):""}getBrandsJsx(a,e){return a.length?s("div",{class:g("reward-details-items-brands","slider-arrows-edges")},s("div",null,s("h2",null,e),s("salla-slider",{id:`brands-${a.map((({id:a})=>a)).join("-")}`,"slider-config":'{"loop":false,"slidesPerView":"auto","spaceBetween":10}'},s("div",{slot:"items"},a.map((a=>s("a",{href:salla.url.get(t(a)),class:g("reward-brand-item")},s("img",{src:a.logo||salla.url.cdn("images/s-empty.png"),alt:""})))))))):""}getProductsJsx(a,e){return a?.length?s("div",{class:"s-loyalty-program-reward-details-items-products s-loyalty-program-slider-arrows-edges"},s("h2",null,e),s("salla-products-slider",{source:"selected",sourceValue:JSON.stringify(a),"slider-config":'{"loop":false,"slidesPerView":"auto","freeMode":true,"spaceBetween":0,"breakpoints":{"768":{"slidesPerView":3,"freeMode":false,"speed":300}}}'})):""}render(){const a=this.getTermsAndConditions();return s("div",{key:"280d646eff094c16596ca31ee57f4bd104958f8c",class:"s-loyalty-program-reward-modal"},s("div",{key:"a39d376f170684f754c4357dc64d02b5ffbb1ed2",class:"s-loyalty-program-points-modal-header"},s("h1",{key:"654e061c8852461a5248248ed2d95ef02a8a4711",class:"s-loyalty-program-points-modal-info"},salla.url.is_page("cart")?s("button",{class:"s-loyalty-program-back-btn",onClick:()=>l((()=>salla.event.dispatch("modal::open","loyalty-rewards-modal")))},s("span",{class:{"sicon-arrow-right":"rtl"===document.documentElement.getAttribute("dir"),"sicon-arrow-left":"ltr"===document.documentElement.getAttribute("dir")}})):"",this.prize.name)),s("div",{key:"8dce07ce81b0d6879efc0cba88523b6d3daf42bb",class:"s-loyalty-program-modal-scrollable-content"},s("div",{key:"f288d7483911af0bbc17a824ee4397ad0b3ef367",class:"s-loyalty-program-reward-details-header"},s("div",{key:"87686174a3a8c17558d0a97180cb4756a1edbefe",class:"s-loyalty-program-aspect-container"},s("img",{key:"31461e1503c50715f160e75cf7ffad59939fb93c",src:this.prize.image,alt:this.prize.name})),s("salla-badge",{key:"ed1fc08260885fa865279a9d2fc6af35c01e2bdc",size:"sm",bg:"light"},s("span",{key:"26eec953f9c5f3fa5aa118828faec50a4477e013",innerHTML:c}),s("span",{key:"db3bf908be0f28534e121da9e692d801d2ee6cf9",class:"s-loyalty-program-points-badge-points"},o(this.prize.cost_points)))),a.length?s("div",{class:"s-loyalty-program-terms-and-conditions"},s("h1",{class:"s-loyalty-program-terms-and-conditions-heading"},salla.lang.get("pages.loyalty_program.terms_and_conditions")),s("ul",{class:"s-loyalty-program-terms-and-conditions-list"},a.map((([a,e])=>s("li",{class:"s-loyalty-program-terms-and-conditions-item"},s("span",{class:"s-loyalty-program-terms-and-conditions-content"},a),s("span",{class:"s-loyalty-program-terms-and-conditions-content"},e)))))):"",s("div",{key:"bfdc4d22117ae86f3bb2140546b4b5a8ecd35f8e",class:"s-loyalty-program-reward-info-message"},s("h1",{key:"f03b30c0372fd83e4fa7815bbd76d307c6fbe3c1",class:"s-loyalty-program-reward-info-message-heading"},salla.lang.get("pages.loyalty_program.how_to_benefit_from_this_reward")),s("p",{key:"245acd0b8438230ff5d503e5819abb581f0ba14a",class:"s-loyalty-program-reward-info-message-content"},this.getItemsMarkersText())),"FREE_SHIPPING"===this.prize.key||"000000"===this.getItemsMarkers("both")?"":s("div",{class:"s-loyalty-program-reward-details"},s("salla-tabs",{key:this.refreshKey},"000"===this.getItemsMarkers("included")?"":[s("salla-tab-header",{slot:"header",name:"included",style:{display:"000"===this.getItemsMarkers("excluded")?"none":"block"}},s("span",{class:"s-loyalty-program-reward-details-tab-icon",innerHTML:i}),s("span",null,salla.lang.get("pages.loyalty_program.included"))),s("salla-tab-content",{slot:"content",name:"included"},s("div",{class:"s-loyalty-program-reward-details-items-wrapper"},this.getCategoriesJsx(this.getIncludedItems(this.prize.categories,this.prize.included_category_ids),salla.lang.get("pages.loyalty_program.included_categories")),this.getBrandsJsx(this.getIncludedItems(this.prize.brands,this.prize.included_brand_ids),salla.lang.get("pages.loyalty_program.included_brands")),this.getProductsJsx(this.getProductIds(this.prize.included_product_ids),salla.lang.get("pages.loyalty_program.included_products"))))],"000"===this.getItemsMarkers("excluded")?"":[s("salla-tab-header",{slot:"header",name:"excluded",style:{display:"000"===this.getItemsMarkers("included")?"none":"block"}},s("span",{class:"s-loyalty-program-reward-details-tab-icon",innerHTML:n}),s("span",null,salla.lang.get("pages.loyalty_program.excluded"))),s("salla-tab-content",{slot:"content",name:"excluded"},s("div",{class:"s-loyalty-program-reward-details-items-wrapper"},this.getCategoriesJsx(this.getIncludedItems(this.prize.excludedCategories,this.prize.excluded_category_ids),salla.lang.get("pages.loyalty_program.excluded_categories")),this.getBrandsJsx(this.getIncludedItems(this.prize.excludedBrands,this.prize.excluded_brand_ids),salla.lang.get("pages.loyalty_program.excluded_brands")),this.getProductsJsx(this.getProductIds(this.prize.excluded_product_ids),salla.lang.get("pages.loyalty_program.excluded_products"))))]))),s("salla-reward-action",{key:"e129546afde7da7fe66e250ce4de67d4523727be",onActionClick:a=>this.actionClick.emit(a.detail),prize:this.prize}))}static get watchers(){return{prize:["handlePrizeChange"]}}};m([y((async()=>(await salla.product.api.categories()).data),{initialData:[]})],b.prototype,"category",void 0),m([y((async()=>(await salla.api.request("/brands")).data),{initialData:[]})],b.prototype,"brand",void 0),b.style="";const h=class{constructor(e){a(this,e),this.productId=null}reset(a=0){setTimeout((()=>{l()}),a)}getApiErrorMessage(a){return a?.response?.data?.error?.message||a?.response?.data?.message||("string"==typeof a?a:null)||salla.lang.get("common.errors.error_occurred")}async handleConfirm(){try{await this.exchange(this.prize.id,null,this.productId),this.reset(300)}catch(a){salla.notify.error(this.getApiErrorMessage(a))}}handleCancel(){this.reset(0)}render(){return s(r,{key:"ceecba37884a11443b52b76dad69bd164b52b788"},s("div",{key:"598f185363b917969b9de0fb6a536884d6578c95",class:"s-loyalty-program-exchange-heading"},s("div",{key:"a2aa6b15d97533a973f7f2fb6a2cf517c147367d",class:"s-loyalty-program-circle-base s-loyalty-program-circle-size-xl s-loyalty-program-circle-variant-fill"},s("span",{key:"9745001d514643add62fe9a64df7fc2c0a694513",innerHTML:c})),s("h2",{key:"4819327aacc1307c0f75014d9faef50f55115289"},salla.lang.get("pages.loyalty_program.redeem_reward")),s("p",{key:"b39c99abcefb0f3baf609cd21049b083a115cdef"},salla.lang.get("pages.loyalty_program.redeem_confirmation")," ",s("span",{key:"50852d87c9686f66beddc7b0a0a3062f0ced1a61"},"(",this.prize.cost_points," ",salla.lang.get("pages.loyalty_program.point"),")")," ",salla.lang.get("pages.loyalty_program.for")," ",s("span",{key:"5a4baa0f02859ced6fdcf7ce77c31bf9b27c45e6"},"(",this.prize.name,")"))),s("div",{key:"b1f1067bd0f3a84231ac017f4b66a71277a5d209",class:"s-loyalty-program-exchange-btns"},s("button",{key:"7d4ce6c08fcac58290b364a0df55f8acb715d362",class:"s-loyalty-program-rewards-action-base s-loyalty-program-rewards-action-confirm",onClick:()=>this.handleConfirm()},s("span",{key:"ef1deb96c4bbb2843ae088b539848c15aacdb244",style:{opacity:"pending"!==this.exchange.status?"1":"0"}},salla.lang.get("common.elements.confirm")),s("span",{key:"0f949386c85d7544f7098e2bdc8c7ce4390c4383",class:"s-loyalty-program-exchange-loading",style:{opacity:"pending"===this.exchange.status?"1":"0"}},s("salla-loading",{key:"9cdfbfdc7ebfb2e1874f1956560dc464e4aa2a9f",color:"primary",size:24}))),s("button",{key:"79a2e8b44be5eb4b3ec5f1a285a8f4eba5324814",class:"s-loyalty-program-rewards-action-base s-loyalty-program-rewards-action-cancel",onClick:()=>this.handleCancel()},salla.lang.get("common.elements.cancel"))))}};(function(a,e,s,r){var l,t=arguments.length,o=t<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,s):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(a,e,s,r);else for(var c=a.length-1;c>=0;c--)(l=a[c])&&(o=(t<3?l(o):t>3?l(e,s,o):l(e,s))||o);t>3&&o&&Object.defineProperty(e,s,o)})([y((async(...a)=>await salla.loyalty.exchange(...a)))],h.prototype,"exchange",void 0),h.style="";export{p as salla_reward_action,f as salla_reward_card,b as salla_reward_details,h as salla_reward_exchange}