@ikas/loyalty-widget-renderer 1.0.0-alpha.84 → 1.0.0-alpha.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/models/index.js +1 -1
- package/build/models/mini-mode/index.d.ts +1 -0
- package/build/models/mini-mode/index.js +1 -1
- package/build/renderer/components/product-filter-card/index.js +1 -1
- package/build/renderer/index.js +1 -1
- package/build/renderer/screens/gift-product-selection-screen/index.js +1 -1
- package/build/renderer/screens/loyalty-level-screen/index.js +1 -1
- package/build/renderer/screens/main-screen/earning-methods-section/index.js +1 -1
- package/build/renderer/screens/main-screen/program-info-section/index.js +1 -1
- package/build/renderer/screens/main-screen/spending-methods-section/index.js +1 -1
- package/build/renderer/utils/loyalty-details.d.ts +7 -0
- package/build/renderer/utils/loyalty-details.js +1 -1
- package/build/storefront-widget-script-injector.iife.js +1 -1
- package/build/storefront-widget-script-injector.iife.js.map +1 -1
- package/build/utils.d.ts +9 -0
- package/build/utils.js +1 -1
- package/package.json +1 -1
package/build/models/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__assign as t}from'./../ext/tslib/tslib.es6.mjs.js';import{makeObservable as
|
|
1
|
+
import{__assign as t}from'./../ext/tslib/tslib.es6.mjs.js';import{makeObservable as i,observable as e,computed as o,action as n}from"mobx";import{markDescriptionClosedForSession as r,markDescriptionPermanentlyClosed as s,isDescriptionClosedForCurrentSession as d,isDescriptionPermanentlyClosed as a}from"../utils.js";import{LoyaltyCustomerInfo as c}from"./loyalty-customer-info/index.js";import{LoyaltyProgramEarningMethod as h}from"./loyalty-program-earning-method/index.js";import{LoyaltyProgramSpendingMethod as u}from"./loyalty-program-spending-method/index.js";import{LoyaltyWidget as p}from"./loyalty-widget/index.js";import{LoyaltyWidgetScreenTypeEnum as g,WidgetMode as l}from"./types/index.js";var y=function(){function y(r,s,y,M,f,m,v){void 0===r&&(r={}),this.userRefreshTrigger=0,this.cartRefreshTrigger=0,this.navigationStack=[g.MAIN_SCREEN],this.currentWidgetMode=m?l.WIDGET_MODE:l.MINI_MODE,this.isMiniModeDescriptionClosed=d()||a(),this.isLoading=r.isLoading||!1,this.isActionLoading=r.isActionLoading||!1,this.loyaltyWidget=new p(r.loyaltyWidget),this.cdnURL=s,this.merchantId=y,this.storeUrl=f||r.storeUrl||"",this.currency=M,this.isPreviewMode=m||!1,this.cartId=r.cartId||null,this.ikasEventUser=r.ikasEventUser||null,this.user=r.user?new c(r.user):null,this.earningMethods=r.earningMethods?r.earningMethods.map(function(t){return new h(t)}):[],this.spendingMethods=r.spendingMethods?r.spendingMethods.map(function(t){return new u(t)}):[],this.tiers=r.tiers?r.tiers:[],this.categories=r.categories?r.categories:[],this.products=r.products?r.products:[],this.brands=r.brands?r.brands:[],this.tags=r.tags?r.tags:[],this.pointHistory=r.pointHistory?r.pointHistory:[],this.callbacks=v||void 0,i(this,t(t({cartId:e},m?{}:{loyaltyWidget:e}),{isLoading:e,isActionLoading:e,cdnURL:e,merchantId:e,storeUrl:e,currency:e,navigationStack:e,currentScreen:o,isMainScreen:o,pushScreen:n.bound,popScreen:n.bound,resetNavigation:n.bound,setWidgetMode:n.bound,closeMiniModeDescription:n.bound,formatCurrency:n.bound,currentWidgetMode:e,isMiniModeDescriptionClosed:e,user:e,earningMethods:e,spendingMethods:e,tiers:e,categories:e,products:e,brands:e,tags:e,pointHistory:e,ikasEventUser:e,userRefreshTrigger:e,cartRefreshTrigger:e,shouldShowSpendingMethods:o}))}return Object.defineProperty(y.prototype,"currentScreen",{get:function(){return this.navigationStack[this.navigationStack.length-1]},enumerable:!1,configurable:!0}),Object.defineProperty(y.prototype,"isMainScreen",{get:function(){return this.currentScreen===g.MAIN_SCREEN},enumerable:!1,configurable:!0}),y.prototype.pushScreen=function(t){this.currentScreen!==t&&this.navigationStack.push(t)},y.prototype.popScreen=function(){this.navigationStack.length>1&&this.navigationStack.pop()},y.prototype.resetNavigation=function(){this.navigationStack=[g.MAIN_SCREEN]},Object.defineProperty(y.prototype,"shouldShowSpendingMethods",{get:function(){return!!this.user&&(!(this.user.totalPoint<=0)&&0!==this.spendingMethods.length)},enumerable:!1,configurable:!0}),y.prototype.setWidgetMode=function(t){var i,e;this.currentWidgetMode=t,t!==l.WIDGET_MODE||this.isPreviewMode||(this.isMiniModeDescriptionClosed=!0,r(),(null===(e=null===(i=this.loyaltyWidget)||void 0===i?void 0:i.miniMode)||void 0===e?void 0:e.hideDescriptionAfterClose)&&s())},y.prototype.closeMiniModeDescription=function(){var t,i;this.isMiniModeDescriptionClosed=!0,r(),(null===(i=null===(t=this.loyaltyWidget)||void 0===t?void 0:t.miniMode)||void 0===i?void 0:i.hideDescriptionAfterClose)&&s()},y.prototype.formatCurrency=function(t){var i;return(null===(i=this.callbacks)||void 0===i?void 0:i.formatCurrency)?this.callbacks.formatCurrency(t):"".concat(t.toFixed(2)," ").concat(this.currency)},y}();export{y as LoyaltyWidgetViewModel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{makeObservable as o,observable as i}from"mobx";import{LoyaltyWidgetImage as
|
|
1
|
+
import{makeObservable as o,observable as i}from"mobx";import{LoyaltyWidgetImage as e}from"../image/index.js";var r=function(r){var t;this.logo=r.logo?new e(r.logo):new e({}),this.emoji=r.emoji||"🚀",this.bgColor=r.bgColor||"#FFF",this.hideDescriptionAfterClose=null!==(t=r.hideDescriptionAfterClose)&&void 0!==t&&t,o(this,{logo:i,emoji:i,bgColor:i,hideDescriptionAfterClose:i})};export{r as MiniMode};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__spreadArray as t}from'./../../../ext/tslib/tslib.es6.mjs.js';import e from"react";import'./../../../ext/react-i18next/dist/es/context.js';import{useTranslation as n}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import{
|
|
1
|
+
import{__spreadArray as t}from'./../../../ext/tslib/tslib.es6.mjs.js';import e from"react";import'./../../../ext/react-i18next/dist/es/context.js';import{useTranslation as n}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import{Scenery as r}from"../../../assets/widget-icons/illustraions/scenery.js";import{Album02 as l}from"../../../assets/widget-icons/normal/album02.js";import{WidgetIconTypeEnum as o}from"../../../models/loyalty-widget/types/index.js";import i from"../button/index.js";import{FilterListContainer as a,FilterHeader as u,ProductCard as s,ProductCardContent as c,ProductImageContainer as m,ProductImage as d,ProductInfo as f,ProductName as p,VariantText as v,ButtonWrapper as g}from"./style.js";var y=function(t,e){return e?t?"".concat(t.replace(/\/$/,""),"/").concat(e):"/".concat(e):null},E=function(t){var a=t.resolved,u=t.iconType,E=t.storeUrl,h=t.button,j=n().t,b=a.product,w=a.variants,x=(w.length>0?w[0].mainImageSrc:null)||b.mainImageSrc,T=w.length>0?w.map(function(t){return t.variantText}).filter(Boolean).join(", "):null,S=u===o.ILLUSTRATION?r:l,I=y(E,b.url);return e.createElement(s,null,e.createElement(c,null,e.createElement(m,null,x?e.createElement(d,{src:x,alt:b.name}):e.createElement(S,null)),e.createElement(f,null,e.createElement(p,null,b.name),T&&e.createElement(v,null,T)),I&&e.createElement(g,null,e.createElement(i,{button:h,paddingSize:"small",fontSize:"textXSMedium",onClick:function(){I&&window.open(I,"_self")}},j("common.goToProduct")))))},h=function(n){var r=n.filters,l=n.viewModel,o=n.header,i=l.loyaltyWidget.settings.widgetIconType,s=l.storeUrl,c=l.loyaltyWidget.button,m=r.map(function(t){return function(t,e){if(!e||0===e.length)return null;var n=e.find(function(t){return t.startsWith("p:")});if(!n)return null;var r=n.slice(2),l=t.products.find(function(t){return t.id===r});if(!l)return null;var o=e.find(function(t){return t.startsWith("v:")}),i=[];if(o&&l.variants){var a=o.slice(2),u=l.variants.find(function(t){return t.id===a});u&&i.push(u)}return{product:l,variants:i}}(l,t.idList)}).filter(Boolean),d=function(e){for(var n=new Map,r=0,l=e;r<l.length;r++){var o=l[r],i=n.get(o.product.id);if(i)for(var a=function(t){i.variants.some(function(e){return e.id===t.id})||i.variants.push(t)},u=0,s=o.variants;u<s.length;u++)a(s[u]);else n.set(o.product.id,{product:o.product,variants:t([],o.variants,!0)})}return Array.from(n.values())}(m);return 0===d.length?null:e.createElement(a,null,o&&e.createElement(u,null,o),d.map(function(t){return e.createElement(E,{key:t.product.id,resolved:t,iconType:i,storeUrl:s,button:c})}))};export{h as ProductFilterList,y as getProductFullUrl};
|
package/build/renderer/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e,__generator as t,__spreadArray as n}from'./../ext/tslib/tslib.es6.mjs.js';import{toJS as r}from"mobx";import{observer as i}from"mobx-react";import o,{useState as s,useEffect as a}from"react";import'./../ext/react-i18next/dist/es/context.js';import{I18nextProvider as l}from'./../ext/react-i18next/dist/es/I18nextProvider.js';import{LoyaltyWidgetViewModel as c}from"../models/index.js";import{LoyaltyCustomerInfo as d}from"../models/loyalty-customer-info/index.js";import{LoyaltyProgramEarningMethod as u}from"../models/loyalty-program-earning-method/index.js";import{LoyaltyProgramPointHistory as f}from"../models/loyalty-program-point-history/index.js";import{LoyaltyProgramSpendingMethod as v}from"../models/loyalty-program-spending-method/index.js";import{LoyaltyWidget as m}from"../models/loyalty-widget/index.js";import{WidgetPositionEnum as g,LoyaltyWidgetLayoutTypeEnum as p}from"../models/loyalty-widget/types/index.js";import{WidgetMode as y,LoyaltyWidgetScreenTypeEnum as E,EarningMethodTypeEnum as h,LoyaltyProgramFilterTypeEnum as T,LoyaltyProgramMethodSpendingTypeEnum as R}from"../models/types/index.js";import b from"./components/mini-mode-button/index.js";import w from"./components/mini-mode-description/index.js";import k from"./screens/credit-earning-methods-screen/index.js";import I from"./screens/credit-history-screen/index.js";import M from"./screens/credit-spending-methods-screen/index.js";import _ from"./screens/gift-product-selection-screen/index.js";import C from"./screens/loyalty-level-screen/index.js";import O from"./screens/main-screen/index.js";import S from"./utils/i18n.js";import{unflatten as D}from"./utils/object-utils.js";import{Container as A,MiniModeWrapper as L,Panel as P,ScreenWrapper as j}from"./style.js";var U=i(function(i){var U,x,N=i.config,W=s(function(){var e=N||window.ikasLoyaltyWidgetConfig;return new c({cartId:(null==e?void 0:e.cartId)||null,ikasEventUser:(null==e?void 0:e.userId)?{id:e.userId}:null},(null==e?void 0:e.cdnURL)||"",(null==e?void 0:e.merchantId)||"",(null==e?void 0:e.currency)||"",(null==e?void 0:e.storeURL)||null,null==e?void 0:e.isPreviewMode,null==e?void 0:e.callbacks)})[0],$=s(!1),G=$[0],B=$[1],F=s(!1),V=F[0],z=F[1],Y=s(!1),H=Y[0],J=Y[1],q=W.loyaltyWidget.translations,K=JSON.stringify(r(null==q?void 0:q.custom));a(function(){var e=null==q?void 0:q.language,t=(null==q?void 0:q.custom)?r(q.custom):{};if(e){var n=["tr","en","de","nl","fr"].includes(e)?e:"en";if(S.language!==n&&S.changeLanguage(n),Object.keys(t).length>0){var i=D(t);S.addResourceBundle(n,"translation",i,!0,!0)}}},[null==q?void 0:q.language,K]),a(function(){var e=N||window.ikasLoyaltyWidgetConfig;(null==e?void 0:e.onViewModelInitialized)&&e.onViewModelInitialized(W)},[W,N]);var Q=function(){return e(void 0,void 0,void 0,function(){var e,r,i,o,s;return t(this,function(t){switch(t.label){case 0:return W.callbacks?(e=new Set,r=new Set,i=new Set,o=new Set,W.earningMethods.forEach(function(t){var s,a;t.methodType!==h.ORDER_CREATE&&t.methodType!==h.BUY_PRODUCT||n(n([],(null===(s=t.orderSettings)||void 0===s?void 0:s.productFilters)||[],!0),(null===(a=t.productSettings)||void 0===a?void 0:a.productFilters)||[],!0).forEach(function(t){t.type===T.PRODUCT_AND_VARIANT?t.idList.forEach(function(t){t.startsWith("v:")||e.add(t.replace(/^p:/,""))}):t.type===T.CATEGORY?t.idList.forEach(function(e){return r.add(e)}):t.type===T.PRODUCT_BRAND?t.idList.forEach(function(e){return i.add(e)}):t.type===T.PRODUCT_TAG&&t.idList.forEach(function(e){return o.add(e)})})}),W.spendingMethods&&W.spendingMethods.forEach(function(t){var n,s;t.type===R.FREE_PRODUCT&&(null===(n=t.discountSettings)||void 0===n?void 0:n.freeProductId)&&e.add(t.discountSettings.freeProductId),null===(s=t.productFilters)||void 0===s||s.forEach(function(t){t.type===T.PRODUCT_AND_VARIANT?t.idList.forEach(function(t){t.startsWith("v:")||e.add(t.replace(/^p:/,""))}):t.type===T.CATEGORY?t.idList.forEach(function(e){return r.add(e)}):t.type===T.PRODUCT_BRAND?t.idList.forEach(function(e){return i.add(e)}):t.type===T.PRODUCT_TAG&&t.idList.forEach(function(e){return o.add(e)})})}),s=[],e.size>0&&W.callbacks.getProducts&&s.push(W.callbacks.getProducts(Array.from(e)).then(function(e){return W.products=e})),r.size>0&&W.callbacks.getCategories&&s.push(W.callbacks.getCategories(Array.from(r)).then(function(e){return W.categories=e})),i.size>0&&W.callbacks.getBrands&&s.push(W.callbacks.getBrands(Array.from(i)).then(function(e){return W.brands=e})),o.size>0&&W.callbacks.getTags&&s.push(W.callbacks.getTags(Array.from(o)).then(function(e){return W.tags=e})),[4,Promise.all(s)]):[2];case 1:return t.sent(),[2]}})})};a(function(){e(void 0,void 0,void 0,function(){var e,n,r,i,o,s;return t(this,function(t){switch(t.label){case 0:if(!W.callbacks)return[3,6];t.label=1;case 1:return t.trys.push([1,4,5,6]),e=[W.callbacks.getLoyaltyWidget(),W.callbacks.listEarningMethods(),W.callbacks.listLoyaltyProgramTier({})],[4,Promise.all(e)];case 2:return n=t.sent(),r=n[0],i=n[1],o=n[2],W.loyaltyWidget=r instanceof m?r:new m(r||{}),W.earningMethods=i.map(function(e){return new u(e)}),W.tiers=o||[],[4,Q()];case 3:return t.sent(),[3,6];case 4:return s=t.sent(),console.error("Failed to initialize loyalty data",s),[3,6];case 5:return B(!0),[7];case 6:return[2]}})})},[]),a(function(){if(window.IkasEvents){var e=function(e){var t,n,r=null===(t=e.data)||void 0===t?void 0:t.customer,i=(null===(n=W.ikasEventUser)||void 0===n?void 0:n.id)===r.id;r&&!i&&(W.ikasEventUser=r,W.userRefreshTrigger++,W.cartRefreshTrigger++)},t=function(e){var t,n,r,i,o,s=W.cartId,a=null===(n=null===(t=e.data)||void 0===t?void 0:t.cart)||void 0===n?void 0:n.id;0===(null===(o=null===(i=null===(r=e.data)||void 0===r?void 0:r.cart)||void 0===i?void 0:i.orderLineItems)||void 0===o?void 0:o.length)?W.cartId=null:W.cartId=a,s!==W.cartId&&W.cartRefreshTrigger++},n={CUSTOMER_LOGIN:e,CUSTOMER_VISIT:e,CUSTOMER_LOGOUT:function(){W.userRefreshTrigger++,W.cartRefreshTrigger++},ADD_TO_CART:t,REMOVE_FROM_CART:t,REMOVE_LOYALTY_POINTS:function(){W.cartRefreshTrigger++,W.userRefreshTrigger++},PAGE_VIEW:function(e){var t,n,r=null===(t=e.data)||void 0===t?void 0:t.customer;if(r){var i=!W.ikasEventUser,o=(null===(n=W.ikasEventUser)||void 0===n?void 0:n.subscriptionStatus)!==r.subscriptionStatus;(i||o)&&(W.ikasEventUser=r,W.userRefreshTrigger++,W.cartRefreshTrigger++)}}},r="ikas-loyalty-widget-subscriber";try{window.IkasEvents.subscribe({id:r,callback:function(e){var t=n[e.type];t&&t(e)}})}catch(e){console.error("Failed to subscribe to IkasEvents",e)}return function(){var e;(null===(e=window.IkasEvents)||void 0===e?void 0:e.unsubscribe)&&window.IkasEvents.unsubscribe(r)}}},[W]),a(function(){e(void 0,void 0,void 0,function(){var e,n,r,i,o;return t(this,function(t){switch(t.label){case 0:if(V)return[2];if(z(!0),!W.callbacks||!(null===(o=W.ikasEventUser)||void 0===o?void 0:o.id))return[3,4];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,Promise.all([W.callbacks.getLoyaltyCustomerInfo(),W.callbacks.listLoyaltyProgramPointHistory({})])];case 2:return e=t.sent(),n=e[0],r=e[1],W.user=n?new d(n):null,n||(W.ikasEventUser=null),W.pointHistory=r?r.map(function(e){return new f(e)}):[],[3,4];case 3:return i=t.sent(),console.error("Failed to fetch user data",i),[3,4];case 4:return z(!1),[2]}})})},[null===(U=W.ikasEventUser)||void 0===U?void 0:U.id,W.userRefreshTrigger]),a(function(){e(void 0,void 0,void 0,function(){var e,n;return t(this,function(t){switch(t.label){case 0:if(H)return[2];if(J(!0),!W.callbacks)return[3,5];t.label=1;case 1:return t.trys.push([1,4,,5]),[4,W.callbacks.listSpendingMethodsByCartId(W.cartId)];case 2:return e=t.sent(),W.spendingMethods=e.map(function(e){return new v(e)}),[4,Q()];case 3:return t.sent(),[3,5];case 4:return n=t.sent(),console.error("Failed to fetch cart data",n),[3,5];case 5:return J(!1),[2]}})})},[W.cartId,W.cartRefreshTrigger]);var X=function(){W.setWidgetMode(y.MINI_MODE),setTimeout(function(){W.resetNavigation()},300)};a(function(){return W.currentWidgetMode===y.WIDGET_MODE?document.body.style.overflow="hidden":document.body.style.overflow="",function(){document.body.style.overflow=""}},[W.currentWidgetMode]);var Z=s(null),ee=Z[0],te=Z[1],ne=s(null),re=ne[0],ie=ne[1],oe=W.navigationStack.length,se=oe>1?W.navigationStack[1]:null,ae=oe>2?W.navigationStack[2]:null;a(function(){se&&te(se)},[se]),a(function(){ae&&ie(ae)},[ae]);var le=W.loyaltyWidget.settings.position||g.RIGHT,ce=W.loyaltyWidget.settings.type||p.DRAWER,de=function(e){switch(e){case E.CREDIT_SPENDING_METHODS_SCREEN:return o.createElement(M,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});case E.CREDIT_EARNING_METHODS_SCREEN:return o.createElement(k,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});case E.CREDIT_HISTORY_SCREEN:return o.createElement(I,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});case E.LOYALTY_LEVEL_SCREEN:return o.createElement(C,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});case E.GIFT_PRODUCT_SELECTION_SCREEN:return o.createElement(_,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});default:return null}};if(!G)return null;var ue=(null==N?void 0:N.position)||(null===(x=window.ikasLoyaltyWidgetConfig)||void 0===x?void 0:x.position)||"fixed";return o.createElement(l,{i18n:S},o.createElement(A,{$layoutType:ce,$widgetPosition:le,$widgetMode:W.currentWidgetMode,$position:ue,onClick:function(){W.currentWidgetMode===y.WIDGET_MODE&&X()},className:"ikas-storefront-widget"},o.createElement(L,{$isVisible:W.currentWidgetMode===y.MINI_MODE,$widgetPosition:le},o.createElement(w,{viewModel:W,isInitialized:G}),o.createElement(b,{viewModel:W})),o.createElement(P,{$layoutType:ce,$isOpen:W.currentWidgetMode===y.WIDGET_MODE,$widgetPosition:le,onClick:function(e){return e.stopPropagation()}},o.createElement(j,{$isActive:W.isMainScreen,$layer:0,$layoutType:ce},o.createElement(O,{viewModel:W,onClose:X,onNavigate:function(e){return W.pushScreen(e)}})),o.createElement(j,{$isActive:!!se,$layer:1,$layoutType:ce},de(se||ee)),o.createElement(j,{$isActive:!!ae,$layer:2,$layoutType:ce},de(ae||re)))))});export{U as default};
|
|
1
|
+
import{__awaiter as e,__generator as t,__spreadArray as n}from'./../ext/tslib/tslib.es6.mjs.js';import{toJS as r}from"mobx";import{observer as i}from"mobx-react";import o,{useState as s,useEffect as a}from"react";import'./../ext/react-i18next/dist/es/context.js';import{I18nextProvider as l}from'./../ext/react-i18next/dist/es/I18nextProvider.js';import{LoyaltyWidgetViewModel as c}from"../models/index.js";import{LoyaltyCustomerInfo as d}from"../models/loyalty-customer-info/index.js";import{LoyaltyProgramEarningMethod as u}from"../models/loyalty-program-earning-method/index.js";import{LoyaltyProgramPointHistory as f}from"../models/loyalty-program-point-history/index.js";import{LoyaltyProgramSpendingMethod as v}from"../models/loyalty-program-spending-method/index.js";import{LoyaltyWidget as m}from"../models/loyalty-widget/index.js";import{WidgetPositionEnum as g,LoyaltyWidgetLayoutTypeEnum as p}from"../models/loyalty-widget/types/index.js";import{WidgetMode as y,LoyaltyWidgetScreenTypeEnum as E,EarningMethodTypeEnum as h,LoyaltyProgramFilterTypeEnum as T,LoyaltyProgramMethodSpendingTypeEnum as R}from"../models/types/index.js";import b from"./components/mini-mode-button/index.js";import w from"./components/mini-mode-description/index.js";import k from"./screens/credit-earning-methods-screen/index.js";import I from"./screens/credit-history-screen/index.js";import M from"./screens/credit-spending-methods-screen/index.js";import _ from"./screens/gift-product-selection-screen/index.js";import C from"./screens/loyalty-level-screen/index.js";import O from"./screens/main-screen/index.js";import S from"./utils/i18n.js";import{unflatten as D}from"./utils/object-utils.js";import{Container as A,MiniModeWrapper as L,Panel as P,ScreenWrapper as j}from"./style.js";var U=i(function(i){var U,x,N=i.config,W=s(function(){var e=N||window.ikasLoyaltyWidgetConfig;return new c({cartId:(null==e?void 0:e.cartId)||null,ikasEventUser:(null==e?void 0:e.userId)?{id:e.userId}:null},(null==e?void 0:e.cdnURL)||"",(null==e?void 0:e.merchantId)||"",(null==e?void 0:e.currency)||"",(null==e?void 0:e.storeURL)||null,null==e?void 0:e.isPreviewMode,null==e?void 0:e.callbacks)})[0],$=s(!1),G=$[0],B=$[1],F=s(!1),V=F[0],z=F[1],Y=s(!1),H=Y[0],J=Y[1],q=W.loyaltyWidget.translations,K=JSON.stringify(r(null==q?void 0:q.custom));a(function(){var e=null==q?void 0:q.language,t=(null==q?void 0:q.custom)?r(q.custom):{};if(e){var n=["tr","en","de","nl","fr"].includes(e)?e:"en";if(S.language!==n&&S.changeLanguage(n),Object.keys(t).length>0){var i=D(t);S.addResourceBundle(n,"translation",i,!0,!0)}}},[null==q?void 0:q.language,K]),a(function(){var e=N||window.ikasLoyaltyWidgetConfig;(null==e?void 0:e.onViewModelInitialized)&&e.onViewModelInitialized(W)},[W,N]);var Q=function(){return e(void 0,void 0,void 0,function(){var e,r,i,o,s;return t(this,function(t){switch(t.label){case 0:return W.callbacks?(e=new Set,r=new Set,i=new Set,o=new Set,W.earningMethods.forEach(function(t){var s,a;t.methodType!==h.ORDER_CREATE&&t.methodType!==h.BUY_PRODUCT||n(n([],(null===(s=t.orderSettings)||void 0===s?void 0:s.productFilters)||[],!0),(null===(a=t.productSettings)||void 0===a?void 0:a.productFilters)||[],!0).forEach(function(t){t.type===T.PRODUCT_AND_VARIANT?t.idList.forEach(function(t){t.startsWith("v:")||e.add(t.replace(/^p:/,""))}):t.type===T.CATEGORY?t.idList.forEach(function(e){return r.add(e)}):t.type===T.PRODUCT_BRAND?t.idList.forEach(function(e){return i.add(e)}):t.type===T.PRODUCT_TAG&&t.idList.forEach(function(e){return o.add(e)})})}),W.spendingMethods&&W.spendingMethods.forEach(function(t){var n,s;t.type===R.FREE_PRODUCT&&(null===(n=t.discountSettings)||void 0===n?void 0:n.freeProductId)&&e.add(t.discountSettings.freeProductId),null===(s=t.productFilters)||void 0===s||s.forEach(function(t){t.type===T.PRODUCT_AND_VARIANT?t.idList.forEach(function(t){t.startsWith("v:")||e.add(t.replace(/^p:/,""))}):t.type===T.CATEGORY?t.idList.forEach(function(e){return r.add(e)}):t.type===T.PRODUCT_BRAND?t.idList.forEach(function(e){return i.add(e)}):t.type===T.PRODUCT_TAG&&t.idList.forEach(function(e){return o.add(e)})})}),s=[],e.size>0&&W.callbacks.getProducts&&s.push(W.callbacks.getProducts(Array.from(e)).then(function(e){W.products=e})),r.size>0&&W.callbacks.getCategories&&s.push(W.callbacks.getCategories(Array.from(r)).then(function(e){return W.categories=e})),i.size>0&&W.callbacks.getBrands&&s.push(W.callbacks.getBrands(Array.from(i)).then(function(e){return W.brands=e})),o.size>0&&W.callbacks.getTags&&s.push(W.callbacks.getTags(Array.from(o)).then(function(e){return W.tags=e})),[4,Promise.all(s)]):[2];case 1:return t.sent(),[2]}})})};a(function(){e(void 0,void 0,void 0,function(){var e,n,r,i,o,s;return t(this,function(t){switch(t.label){case 0:if(!W.callbacks)return[3,6];t.label=1;case 1:return t.trys.push([1,4,5,6]),e=[W.callbacks.getLoyaltyWidget(),W.callbacks.listEarningMethods(),W.callbacks.listLoyaltyProgramTier({})],[4,Promise.all(e)];case 2:return n=t.sent(),r=n[0],i=n[1],o=n[2],W.loyaltyWidget=r instanceof m?r:new m(r||{}),W.earningMethods=i.map(function(e){return new u(e)}),W.tiers=o||[],[4,Q()];case 3:return t.sent(),[3,6];case 4:return s=t.sent(),console.error("Failed to initialize loyalty data",s),[3,6];case 5:return B(!0),[7];case 6:return[2]}})})},[]),a(function(){if(window.IkasEvents){var e=function(e){var t,n,r=null===(t=e.data)||void 0===t?void 0:t.customer,i=(null===(n=W.ikasEventUser)||void 0===n?void 0:n.id)===r.id;r&&!i&&(W.ikasEventUser=r,W.userRefreshTrigger++,W.cartRefreshTrigger++)},t=function(e){var t,n,r,i,o,s=null===(n=null===(t=e.data)||void 0===t?void 0:t.cart)||void 0===n?void 0:n.id;0===(null===(o=null===(i=null===(r=e.data)||void 0===r?void 0:r.cart)||void 0===i?void 0:i.orderLineItems)||void 0===o?void 0:o.length)?W.cartId=null:W.cartId=s,W.cartRefreshTrigger++},n={CUSTOMER_LOGIN:e,CUSTOMER_VISIT:e,CUSTOMER_LOGOUT:function(){W.userRefreshTrigger++,W.cartRefreshTrigger++},ADD_TO_CART:function(e){return t(e)},REMOVE_FROM_CART:t,REMOVE_LOYALTY_POINTS:function(){W.cartRefreshTrigger++,W.userRefreshTrigger++},PAGE_VIEW:function(e){var t,n,r=null===(t=e.data)||void 0===t?void 0:t.customer;if(r){var i=!W.ikasEventUser,o=(null===(n=W.ikasEventUser)||void 0===n?void 0:n.subscriptionStatus)!==r.subscriptionStatus;(i||o)&&(W.ikasEventUser=r,W.userRefreshTrigger++,W.cartRefreshTrigger++)}}},r="ikas-loyalty-widget-subscriber";try{window.IkasEvents.subscribe({id:r,callback:function(e){var t=n[e.type];t&&t(e)}})}catch(e){console.error("Failed to subscribe to IkasEvents",e)}return function(){var e;(null===(e=window.IkasEvents)||void 0===e?void 0:e.unsubscribe)&&window.IkasEvents.unsubscribe(r)}}},[W]),a(function(){e(void 0,void 0,void 0,function(){var e,n,r,i,o;return t(this,function(t){switch(t.label){case 0:if(V)return[2];if(z(!0),!W.callbacks||!(null===(o=W.ikasEventUser)||void 0===o?void 0:o.id))return[3,4];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,Promise.all([W.callbacks.getLoyaltyCustomerInfo(),W.callbacks.listLoyaltyProgramPointHistory({})])];case 2:return e=t.sent(),n=e[0],r=e[1],W.user=n?new d(n):null,n||(W.ikasEventUser=null),W.pointHistory=r?r.map(function(e){return new f(e)}):[],[3,4];case 3:return i=t.sent(),console.error("Failed to fetch user data",i),[3,4];case 4:return z(!1),[2]}})})},[null===(U=W.ikasEventUser)||void 0===U?void 0:U.id,W.userRefreshTrigger]),a(function(){e(void 0,void 0,void 0,function(){var e,n;return t(this,function(t){switch(t.label){case 0:if(H)return[2];if(J(!0),!W.callbacks)return[3,5];t.label=1;case 1:return t.trys.push([1,4,,5]),[4,W.callbacks.listSpendingMethodsByCartId(W.cartId)];case 2:return e=t.sent(),W.spendingMethods=e.map(function(e){return new v(e)}),[4,Q()];case 3:return t.sent(),[3,5];case 4:return n=t.sent(),console.error("Failed to fetch cart data",n),[3,5];case 5:return J(!1),[2]}})})},[W.cartId,W.cartRefreshTrigger]);var X=function(){W.setWidgetMode(y.MINI_MODE),setTimeout(function(){W.resetNavigation()},300)};a(function(){return W.currentWidgetMode===y.WIDGET_MODE?document.body.style.overflow="hidden":document.body.style.overflow="",function(){document.body.style.overflow=""}},[W.currentWidgetMode]);var Z=s(null),ee=Z[0],te=Z[1],ne=s(null),re=ne[0],ie=ne[1],oe=W.navigationStack.length,se=oe>1?W.navigationStack[1]:null,ae=oe>2?W.navigationStack[2]:null;a(function(){se&&te(se)},[se]),a(function(){ae&&ie(ae)},[ae]);var le=W.loyaltyWidget.settings.position||g.RIGHT,ce=W.loyaltyWidget.settings.type||p.DRAWER,de=function(e){switch(e){case E.CREDIT_SPENDING_METHODS_SCREEN:return o.createElement(M,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});case E.CREDIT_EARNING_METHODS_SCREEN:return o.createElement(k,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});case E.CREDIT_HISTORY_SCREEN:return o.createElement(I,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});case E.LOYALTY_LEVEL_SCREEN:return o.createElement(C,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});case E.GIFT_PRODUCT_SELECTION_SCREEN:return o.createElement(_,{viewModel:W,onBack:function(){return W.popScreen()},onClose:X});default:return null}};if(!G)return null;var ue=(null==N?void 0:N.position)||(null===(x=window.ikasLoyaltyWidgetConfig)||void 0===x?void 0:x.position)||"fixed";return o.createElement(l,{i18n:S},o.createElement(A,{$layoutType:ce,$widgetPosition:le,$widgetMode:W.currentWidgetMode,$position:ue,onClick:function(){W.currentWidgetMode===y.WIDGET_MODE&&X()},className:"ikas-storefront-widget"},o.createElement(L,{$isVisible:W.currentWidgetMode===y.MINI_MODE,$widgetPosition:le},o.createElement(w,{viewModel:W,isInitialized:G}),o.createElement(b,{viewModel:W})),o.createElement(P,{$layoutType:ce,$isOpen:W.currentWidgetMode===y.WIDGET_MODE,$widgetPosition:le,onClick:function(e){return e.stopPropagation()}},o.createElement(j,{$isActive:W.isMainScreen,$layer:0,$layoutType:ce},o.createElement(O,{viewModel:W,onClose:X,onNavigate:function(e){return W.pushScreen(e)}})),o.createElement(j,{$isActive:!!se,$layer:1,$layoutType:ce},de(se||ee)),o.createElement(j,{$isActive:!!ae,$layer:2,$layoutType:ce},de(ae||re)))))});export{U as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__spreadArray as e,__awaiter as t,__generator as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import{observer as l}from"mobx-react";import i,{useState as o}from"react";import'./../../../ext/react-i18next/dist/es/context.js';import{useTranslation as r}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import{ChevronLeft as s}from"../../../assets/icons/chevron-left.js";import{XClose as a}from"../../../assets/icons/x-close.js";import{
|
|
1
|
+
import{__spreadArray as e,__awaiter as t,__generator as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import{observer as l}from"mobx-react";import i,{useState as o}from"react";import'./../../../ext/react-i18next/dist/es/context.js';import{useTranslation as r}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import{ChevronLeft as s}from"../../../assets/icons/chevron-left.js";import{XClose as a}from"../../../assets/icons/x-close.js";import{Scenery as d}from"../../../assets/widget-icons/illustraions/scenery.js";import{Album02 as u}from"../../../assets/widget-icons/normal/album02.js";import{WidgetIconTypeEnum as c}from"../../../models/loyalty-widget/types/index.js";import m from"../../components/button/index.js";import v from"../../components/count-up/index.js";import{getProductFullUrl as f}from"../../components/product-filter-card/index.js";import{getFreeProductMethods as p}from"../../utils/spending-method-utils.js";import{ProductCard as g,ProductCardContent as E,ProductImageContainer as y,ProductImage as b,ProductInfo as h,ProductNameContainer as I,ProductName as j,VariantText as S,PointBadge as x,Container as P,Header as w,IconButton as k,Title as M,Content as T,PointsSection as A,PointsTitle as C,PointsValue as R,ProductList as _}from"./style.js";var L=l(function(e){var l,s,a,v,p=e.method,P=e.viewModel,w=r().t,k=o(!1),M=k[0],T=k[1],A=P.loyaltyWidget,C=null===(l=p.discountSettings)||void 0===l?void 0:l.freeProductId,R=null===(s=p.discountSettings)||void 0===s?void 0:s.freeProductVariantId,_=C?P.products.find(function(e){return e.id===C}):null,L=R?null===(a=null==_?void 0:_.variants)||void 0===a?void 0:a.find(function(e){return e.id===R}):null,U=(null==L?void 0:L.mainImageSrc)||(null==_?void 0:_.mainImageSrc),W=(null==L?void 0:L.variantText)||null,z=(null===(v=p.discountSettings)||void 0===v?void 0:v.point)||0,B=A.settings.widgetIconType===c.ILLUSTRATION?d:u,F=f(P.storeUrl,null==_?void 0:_.url);return i.createElement(g,{$clickable:!!F,onClick:function(){F&&window.open(F,"_self")}},i.createElement(E,null,i.createElement(y,null,U?i.createElement(b,{src:U,alt:(null==_?void 0:_.name)||""}):i.createElement(B,null)),i.createElement(h,null,i.createElement(I,null,i.createElement(j,null,(null==_?void 0:_.name)||"-"),W&&i.createElement(S,null,W)),i.createElement(x,null,w("earningMethods.xPoints",{points:z})))),i.createElement("div",{onClick:function(e){return e.stopPropagation()},role:"presentation"},i.createElement(m,{button:A.button,paddingSize:"small",fontSize:"textSMMedium",onClick:function(){return t(void 0,void 0,void 0,function(){var e;return n(this,function(t){switch(t.label){case 0:if(!P.cartId||!p.isAvailable)return[2];T(!0),t.label=1;case 1:return t.trys.push([1,,3,4]),[4,null===(e=P.callbacks)||void 0===e?void 0:e.useLoyaltyPoints({cartId:P.cartId,loyaltyProgramId:p.loyaltyProgramId,loyaltySpendingMethodId:p.id})];case 2:return t.sent()&&(P.userRefreshTrigger++,P.cartRefreshTrigger++,P.resetNavigation()),[3,4];case 3:return T(!1),[7];case 4:return[2]}})})},isLoading:M,disabled:!p.isAvailable||!P.cartId,fullWidth:!0},w("spendingMethods.FREE_PRODUCT.addFree"))))}),U=l(function(t){var n=t.viewModel,l=t.onBack,o=t.onClose,d=r().t,u=n.user,c=p(n.spendingMethods).filter(function(e){var t,l=null===(t=e.discountSettings)||void 0===t?void 0:t.freeProductId;return!!l&&n.products.some(function(e){return e.id===l})}),m=e([],c,!0).sort(function(e,t){var n,l;return e.isAvailable&&!t.isAvailable?-1:!e.isAvailable&&t.isAvailable?1:((null===(n=e.discountSettings)||void 0===n?void 0:n.point)||0)-((null===(l=t.discountSettings)||void 0===l?void 0:l.point)||0)});return i.createElement(P,null,i.createElement(w,null,i.createElement(k,{onClick:l},i.createElement(s,null)),i.createElement(M,null,d("screens.giftProductSelection")),i.createElement(k,{onClick:o},i.createElement(a,null))),i.createElement(T,null,u&&i.createElement(A,{$borderRadius:n.loyaltyWidget.settings.cartBorderRadius},i.createElement(C,null,d("header.earnedPoints")),i.createElement(R,null,i.createElement(v,{end:u.totalPoint}))),i.createElement(_,null,m.map(function(e){return i.createElement(L,{key:e.id,method:e,viewModel:n})}))))});export{U as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{observer as e}from"mobx-react";import t,{useMemo as n}from"react";import{Trans as r}from'./../../../ext/react-i18next/dist/es/Trans.js';import{useTranslation as l}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import'./../../../ext/react-i18next/dist/es/context.js';import{XClose as o}from"../../../assets/icons/x-close.js";import{ChevronLeft as i}from"../../../assets/icons/chevron-left.js";import{Check as c}from"../../../assets/icons/check.js";import a from"../../components/count-up/index.js";import{Container as s,Header as u,IconButton as m,Title as d,Content as p,PointsSection as E,PointsText as y,PointsValue as v,ProgressBarContainer as f,ProgressBarFill as g,DescriptionText as h,TimelineContainer as R,TimelineItem as T,TimelineLine as $,CheckIconContainer as k,CurrentIndicator as x,CurrentIndicatorDot as b,UpcomingIndicator as j,TimelineContent as q,TimelineTitle as P,TimelineDescription as C,MultiplierSection as L,MultiplierValue as S}from"./style.js";var M=e(function(e){var M=e.viewModel,W=e.onBack,B=e.onClose,G=l().t,D=M.user,I=M.tiers,N=n(function(){var e=I.filter(function(e){var t;return!e.customerSegmentId||(null===(t=null==D?void 0:D.customerTier)||void 0===t?void 0:t.id)===e.id});return e.sort(function(e,t){return(e.pointsRequired||0)-(t.pointsRequired||0)})},[I,null==D?void 0:D.customerTier]),_=n(function(){return(null==D?void 0:D.customerTier)?N.findIndex(function(e){var t;return e.id===(null===(t=D.customerTier)||void 0===t?void 0:t.id)}):-1},[N,null==D?void 0:D.customerTier]),w=n(function(){return D?-1===_?N.find(function(e){return(e.pointsRequired||0)>D.totalPoint})||N[0]:N[_+1]||null:null},[N,_,D]),A=n(function(){return D?w?0===(w.pointsRequired||0)?100:Math.min(D.totalPoint/(w.pointsRequired||1)*100,100):100:0},[D,w]),K=n(function(){return D&&w?Math.max(0,(w.pointsRequired||0)-D.totalPoint):0},[D,w]);return D?t.createElement(s,null,t.createElement(u,null,t.createElement(m,{onClick:W},t.createElement(i,null)),t.createElement(d,null,G("screens.loyaltyLevel")),t.createElement(m,{onClick:B},t.createElement(o,null))),t.createElement(p,null,t.createElement(E,{$borderRadius:M.loyaltyWidget.settings.cartBorderRadius},t.createElement("div",null,t.createElement(y,null,G("header.earnedPoints")),t.createElement(v,null,t.createElement(a,{end:D.totalPoint})," ",G("common.points"))),t.createElement(f,{$color:M.loyaltyWidget.header.background.progressBarContainerColor||void 0},t.createElement(g,{$percentage:A,$color:M.loyaltyWidget.header.background.bgColor||void 0,$isGradient:"GRADIENT"===M.loyaltyWidget.header.background.type})),t.createElement(h,null,w?G("screens.loyaltyLevelScreen.reachNextTier",{tierName:w.name,points:K}):G("screens.loyaltyLevelScreen.allTiersCompleted"))),t.createElement(R,null,N.map(function(e,n){var l="upcoming";_>-1?l=n<_?"completed":n===_?"current":"upcoming":D.totalPoint>=(e.pointsRequired||0)&&(l="completed");var o=n===N.length-1,i="solid-light",a=!0,s=!0;return"completed"===l?_>-1&&n+1===_?(i="solid-dark",a=!0,s=!1):_>-1&&n+1<_?(i="solid-dark",a=!0,s=!0):(i="solid-light",a=!0,s=!0):"current"===l?(i="split",a=!1,s=!0):(i="solid-light",a=!0,s=!0),t.createElement(T,{key:e.id},t.createElement($,{$isLast:o,$connectionType:i,$topGap:a,$bottomGap:s}),"completed"===l?t.createElement(k,null,t.createElement(c,null)):"current"===l?t.createElement(x,null,t.createElement(b,null)):t.createElement(j,null),t.createElement(q,null,t.createElement(P,{$status:l},e.name),t.createElement(C,{$status:l},"current"===l?G("screens.loyaltyLevelScreen.currentTierDescription"):"".concat(e.pointsRequired||0," ").concat(G("common.points")," ").concat(G("screens.loyaltyLevelScreen.afterEarning"))),(e.tierPointMultiplier||1)>1&&t.createElement(L,{$borderRadius:M.loyaltyWidget.settings.cartBorderRadius},t.createElement(r,{i18nKey:"screens.loyaltyLevelScreen.multiplierDescription",values:{multiplier:e.tierPointMultiplier||1},components:[t.createElement(S,{key:"0"})]}))))})))):null});export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__spreadArray as e,__assign as t}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{observer as o}from"mobx-react";import n,{useMemo as i}from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as r}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import{EarningMethodTypeEnum as d,LoyaltyProgramFilterTypeEnum as l}from"../../../../models/types/index.js";import s from"../../../components/loyalty-method-card/index.js";import{ProductFilterList as a}from"../../../components/product-filter-card/index.js";import{getEarningMethodConditionList as p,getEarningMethodDescriptionV2 as c}from"../../../utils/loyalty-details.js";import{getEarningMethodTitle as
|
|
1
|
+
import{__spreadArray as e,__assign as t}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{observer as o}from"mobx-react";import n,{useMemo as i}from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as r}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import{EarningMethodTypeEnum as d,LoyaltyProgramFilterTypeEnum as l}from"../../../../models/types/index.js";import s from"../../../components/loyalty-method-card/index.js";import{ProductFilterList as a}from"../../../components/product-filter-card/index.js";import{getEarningMethodConditionList as p,getEarningMethodDescriptionV2 as c,hasResolvableProductFilters as m}from"../../../utils/loyalty-details.js";import{getEarningMethodTitle as u,getEarningMethodIcon as E}from"../../../../utils.js";var T=o(function(t){var o,m,T=t.method,f=t.viewModel,g=t.mode,y=t.actionText,v=t.onClick,R=t.isActionLoading,x=r(),h=x.t,C=x.i18n,A=f.loyaltyWidget,S=C.language,_=null===(o=T.translations)||void 0===o?void 0:o.find(function(e){return e.locale===S}),O=(null==_?void 0:_.description)||T.description||u(T),U=E(T.methodType,A.settings.widgetIconType),D=T.orderSettings,B=T.productSettings,I=(null==D?void 0:D.productFilters)||[],M=(null==B?void 0:B.productFilters)||[],P=T.methodType===d.ORDER_CREATE&&D&&(D.minOrderAmount>0||(null!==(m=D.maxOrderAmount)&&void 0!==m?m:0)>0||I.length>0)||T.methodType===d.BUY_PRODUCT&&M.length>0,N=P?"accordion":g,j=i(function(){return T.methodType===d.ORDER_CREATE?e([],I||[],!0).filter(function(e){return e.type===l.PRODUCT_AND_VARIANT}):T.methodType===d.BUY_PRODUCT?(M||[]).filter(function(e){return e.type===l.PRODUCT_AND_VARIANT}):[]},[T.methodType,I,M]),k="",b=null;if(P){k=h("earningMethods.xPoints",{points:T.pointsEarned});var w=p(h,T,f),F=j.length>0,H=w.length>0,L=void 0;T.methodType===d.ORDER_CREATE?F&&H?L=h("earningMethods.ORDER_CREATE.BASE.productAndConditionHeader"):F&&(L=h("earningMethods.ORDER_CREATE.BASE.productFilterHeader")):T.methodType===d.BUY_PRODUCT&&F&&(L=h("earningMethods.BUY_PRODUCT.productFilterHeader")),b=n.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px"}},L&&n.createElement("div",{style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},L),H&&n.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"4px"}},w.map(function(e,t){return n.createElement("div",{key:t,style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400,display:"flex",gap:"6px"}},n.createElement("span",null,"•"),n.createElement("span",null,e))})),F&&n.createElement(a,{filters:j,viewModel:f}))}else k=c(h,T,f)||h("earningMethods.xPoints",{points:T.pointsEarned});var Y=!!f.user&&T.methodType===d.CUSTOMER_REGISTER||!!f.ikasEventUser&&T.methodType===d.ENABLE_SUBSCRIPTION&&"SUBSCRIBED"===f.ikasEventUser.subscriptionStatus,W=!f.user&&T.methodType===d.ENABLE_SUBSCRIPTION,z=y&&v&&!W?{text:y,onClick:v,loading:R}:void 0;return n.createElement(s,{title:O,description:k,icon:U,action:z,isCompleted:Y,mode:N,settings:{borderRadius:A.settings.cartBorderRadius,widgetIconType:A.settings.widgetIconType,button:A.button}},b)}),f=o(function(o){var i=o.viewModel,r=o.containerStyle,l=o.mode,s=void 0===l?"card":l,a=o.getActionProps,p=i.earningMethods;return n.createElement("div",{style:t({display:"flex",flexDirection:"column",gap:"12px",padding:"0 16px"},r)},e([],p,!0).filter(function(t){var o,n,r=e(e([],(null===(o=t.orderSettings)||void 0===o?void 0:o.productFilters)||[],!0),(null===(n=t.productSettings)||void 0===n?void 0:n.productFilters)||[],!0);return m(i,r)}).sort(function(e,t){var o=function(e){return e===d.CUSTOMER_REGISTER?0:e===d.ENABLE_SUBSCRIPTION?1:2};return o(e.methodType)-o(t.methodType)}).map(function(e){var t=a?a(e):null;return n.createElement(T,{key:e.id,method:e,viewModel:i,mode:s,actionText:null==t?void 0:t.actionText,onClick:null==t?void 0:t.onClick,isActionLoading:null==t?void 0:t.loading})}))});export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{observer as e}from"mobx-react";import t from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as n}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import{WidgetIconTypeEnum as r}from"../../../../models/loyalty-widget/types/index.js";import{LoyaltyWidgetScreenTypeEnum as l}from"../../../../models/types/index.js";import{getScreenIcon as o}from"../../../../utils.js";import{Container as i,GridContainer as a,SmallCard as s,SmallCardIconWrapper as c,SmallCardBottom as
|
|
1
|
+
import{observer as e}from"mobx-react";import t from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as n}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import{WidgetIconTypeEnum as r}from"../../../../models/loyalty-widget/types/index.js";import{LoyaltyWidgetScreenTypeEnum as l}from"../../../../models/types/index.js";import{getScreenIcon as o}from"../../../../utils.js";import{Container as i,GridContainer as a,SmallCard as s,SmallCardIconWrapper as c,SmallCardBottom as m,Title as u,ArrowWrapper as E,RowCard as d}from"./style.js";var R=function(){return t.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t.createElement("path",{d:"M7.5 15L12.5 10L7.5 5",stroke:"currentColor",strokeWidth:"1.66667",strokeLinecap:"round",strokeLinejoin:"round"}))},g=e(function(e){var g=e.viewModel,_=e.onNavigate,N=n().t,y=g.user,T=!!y,p=g.loyaltyWidget.settings.widgetIconType;return t.createElement(i,null,t.createElement(a,null,t.createElement(s,{$borderRadius:g.loyaltyWidget.settings.cartBorderRadius,onClick:function(){return null==_?void 0:_(l.CREDIT_EARNING_METHODS_SCREEN)}},p!==r.NONE&&t.createElement(c,{$hasBgColor:p===r.ILLUSTRATION,$iconType:p},o(l.CREDIT_EARNING_METHODS_SCREEN,p)),t.createElement(m,null,t.createElement(u,null,N("main_screen.earnPoints")),t.createElement(E,null,t.createElement(R,null)))),t.createElement(s,{$borderRadius:g.loyaltyWidget.settings.cartBorderRadius,onClick:function(){return null==_?void 0:_(l.CREDIT_SPENDING_METHODS_SCREEN)}},p!==r.NONE&&t.createElement(c,{$hasBgColor:p===r.ILLUSTRATION,$iconType:p},o(l.CREDIT_SPENDING_METHODS_SCREEN,p)),t.createElement(m,null,t.createElement(u,null,N("main_screen.allRewards")),t.createElement(E,null,t.createElement(R,null))))),T&&t.createElement(t.Fragment,null,(g.tiers.some(function(e){return!e.customerSegmentId})||!!(null==y?void 0:y.customerTier))&&t.createElement(d,{$borderRadius:g.loyaltyWidget.settings.cartBorderRadius,onClick:function(){return null==_?void 0:_(l.LOYALTY_LEVEL_SCREEN)}},t.createElement(u,null,N("main_screen.tiers")),t.createElement(E,null,t.createElement(R,null))),g.pointHistory.length>0&&t.createElement(d,{$borderRadius:g.loyaltyWidget.settings.cartBorderRadius,onClick:function(){return null==_?void 0:_(l.CREDIT_HISTORY_SCREEN)}},t.createElement(u,null,N("main_screen.pointHistory")),t.createElement(E,null,t.createElement(R,null)))))});export{g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__makeTemplateObject as e,__spreadArray as t,__awaiter as i,__generator as n}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{observer as o}from"mobx-react";import r,{useState as d,useMemo as s}from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as l}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import a from"styled-components";import{LoyaltyProgramMethodSpendingTypeEnum as c,LoyaltyProgramFilterTypeEnum as m,LoyaltyWidgetScreenTypeEnum as
|
|
1
|
+
import{__makeTemplateObject as e,__spreadArray as t,__awaiter as i,__generator as n}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{observer as o}from"mobx-react";import r,{useState as d,useMemo as s}from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as l}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import a from"styled-components";import{LoyaltyProgramMethodSpendingTypeEnum as c,LoyaltyProgramFilterTypeEnum as m,LoyaltyWidgetScreenTypeEnum as u}from"../../../../models/types/index.js";import p from"../../../components/button/index.js";import g from"../../../components/loyalty-method-card/index.js";import{ProductFilterList as f}from"../../../components/product-filter-card/index.js";import{textSM as y}from"../../../components/style/typography.js";import{getFreeProductName as v,getFilterDetails as E,hasResolvableProductFilters as R}from"../../../utils/loyalty-details.js";import{getFreeProductPointRange as h,hasAvailableFreeProduct as T,getFreeProductMethods as x,getNonFreeProductMethods as C}from"../../../utils/spending-method-utils.js";import{getSpendingMethodTitle as D,getSpendingMethodDescription as P,getSpendingMethodIcon as b}from"../../../../utils.js";import A from"./dynamic-slider.js";var I,_=a.span(I||(I=e(["\n ","\n color: #364152;\n"],["\n ","\n color: #364152;\n"])),y),M=o(function(e){var t,o,a=e.method,u=e.viewModel,y=e.actionText,R=e.padding,h=e.onClick,T=e.mode,x=l().t,C=d(!1),I=C[0],_=C[1],M=u.loyaltyWidget,O=D(a),S=P(a,u),w=b(a.type,M.settings.widgetIconType),j=a.productFilters||[],U=a.type===c.FREE_PRODUCT,k=U&&(null===(t=a.discountSettings)||void 0===t?void 0:t.freeProductId)?v(u,a.discountSettings.freeProductId):void 0,F=U&&!!k,N=null===(o=a.pointUsageLimit)||void 0===o?void 0:o.minPointLimit,B=!a.isDynamic&&!!u.user&&!!u.cartId,L=a.isDynamic&&!!u.user&&!!u.cartId,W=a.isDynamic,z=s(function(){return j.filter(function(e){return e.type===m.PRODUCT_AND_VARIANT})},[j]),G=s(function(){return j.filter(function(e){return e.type!==m.PRODUCT_AND_VARIANT}).map(function(e){var t=E(u,e.type,e.idList);if(!t.length)return null;var i=t[0],n=i.name,o="";switch(i.type){case m.CATEGORY:case m.DYNAMIC_CATEGORY:o=x("earningMethods.ORDER_CREATE.BASE.descriptionOnlyCategory",{category:n});break;case m.PRODUCT_BRAND:o=x("earningMethods.ORDER_CREATE.BASE.descriptionOnlyBrand",{brand:n});break;case m.PRODUCT_TAG:o=x("earningMethods.ORDER_CREATE.BASE.descriptionOnlyTag",{tag:n})}return!o&&n&&(o=n),o||null}).filter(Boolean)},[j,u,x]),H=z.length>0,Y=G.length>0||H,V="accordion"===T?!!(N&&N>0)||F||Y||L||B&&!W?"accordion":"card":W&&L?"accordion":"card",q=function(){return i(void 0,void 0,void 0,function(){var e;return n(this,function(t){switch(t.label){case 0:if(!u.cartId||!a.isAvailable)return[2];_(!0),t.label=1;case 1:return t.trys.push([1,,3,4]),[4,null===(e=u.callbacks)||void 0===e?void 0:e.useLoyaltyPoints({cartId:u.cartId,loyaltyProgramId:a.loyaltyProgramId,loyaltySpendingMethodId:a.id})];case 2:return t.sent()&&(u.userRefreshTrigger++,u.cartRefreshTrigger++,u.isMainScreen||u.resetNavigation()),[3,4];case 3:return _(!1),[7];case 4:return[2]}})})},J="card"===V&&B&&!W?{text:x("common.use"),onClick:q,loading:I}:y&&h?{text:y,onClick:h}:void 0;return r.createElement(g,{title:O,description:S,icon:w,action:J,isCompleted:!1,mode:V,padding:R,settings:{borderRadius:M.settings.cartBorderRadius,widgetIconType:M.settings.widgetIconType,button:M.button}},"accordion"!==V?null:r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},N&&N>0&&r.createElement("div",{style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},x("spendingMethods.minPointLimit",{points:N})),F&&r.createElement("div",{style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},x("spendingMethods.FREE_PRODUCT.description",{product:k})),H&&r.createElement(f,{filters:z,viewModel:u}),G.map(function(e,t){return r.createElement("div",{key:t,style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},e)}),L&&r.createElement(A,{viewModel:u,method:a}),B&&!W&&r.createElement("div",{style:{alignSelf:"flex-end",width:"100%"}},r.createElement(p,{button:M.button,paddingSize:"small",fontSize:"textSMMedium",onClick:q,isLoading:I,disabled:!a.isAvailable,fullWidth:!0},x("common.use")))))}),O=o(function(e){var t=e.methods,i=e.viewModel;e.mode;var n=e.padding,o=l().t,d=i.loyaltyWidget,s=h(t);if(T(t),!s)return null;var a=s.minPoint===s.maxPoint?r.createElement(_,null,o("spendingMethods.FREE_PRODUCT.singleDescription",{points:s.minPoint})):r.createElement(_,null,o("spendingMethods.FREE_PRODUCT.groupedDescription",{minPoint:s.minPoint,maxPoint:s.maxPoint})),m=b(c.FREE_PRODUCT,d.settings.widgetIconType),p=!!i.user&&!!i.cartId?{text:o("spendingMethods.FREE_PRODUCT.selectGift"),onClick:function(){i.pushScreen(u.GIFT_PRODUCT_SELECTION_SCREEN)}}:void 0;return r.createElement(g,{title:o("spendingMethods.FREE_PRODUCT.title"),description:a,icon:m,action:p,isCompleted:!1,mode:"card",padding:n,settings:{borderRadius:d.settings.cartBorderRadius,widgetIconType:d.settings.widgetIconType,button:d.button}})}),S=o(function(e){var i=e.viewModel,n=e.mode,o=void 0===n?"card":n,d=e.getActionProps,s=e.methods,l=i.spendingMethods,a=s||l,c=x(a),m=C(a).filter(function(e){return R(i,e.productFilters||[])}),u=c.filter(function(e){var t,n=null===(t=e.discountSettings)||void 0===t?void 0:t.freeProductId;return!n||!!v(i,n)}),p=t([],m,!0).sort(function(e,t){return e.isAvailable&&!t.isAvailable?-1:!e.isAvailable&&t.isAvailable?1:e.isDynamic&&!t.isDynamic?-1:!e.isDynamic&&t.isDynamic?1:0}),g="accordion"===o?"16px":void 0;return T(u),r.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px",padding:"0 16px"}},p.map(function(e){var t=d?d(e):null;return r.createElement(M,{key:e.id,method:e,viewModel:i,mode:o,padding:g,actionText:null==t?void 0:t.actionText,onClick:null==t?void 0:t.onClick})}),u.length>0&&r.createElement(O,{methods:u,viewModel:i,mode:o,padding:g}))});export{S as default};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TFunction } from "i18next";
|
|
2
2
|
import { LoyaltyWidgetViewModel } from "models";
|
|
3
|
+
import { LoyaltyProgramFilter } from "models/common";
|
|
3
4
|
import { LoyaltyProgramEarningMethod } from "models/loyalty-program-earning-method";
|
|
4
5
|
import { LoyaltyProgramFilterTypeEnum } from "models/types";
|
|
5
6
|
export type FilterDetail = {
|
|
@@ -9,5 +10,11 @@ export type FilterDetail = {
|
|
|
9
10
|
};
|
|
10
11
|
export declare const getFilterDetails: (viewModel: LoyaltyWidgetViewModel, filterType: LoyaltyProgramFilterTypeEnum, idList: string[]) => FilterDetail[];
|
|
11
12
|
export declare const getFreeProductName: (viewModel: LoyaltyWidgetViewModel, productId: string) => string | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* PRODUCT_AND_VARIANT filtrelerindeki ürünlerin viewModel.products'ta bulunup bulunamadığını kontrol eder.
|
|
15
|
+
* Eğer PRODUCT_AND_VARIANT filtresi yoksa true döner (ürün bilgisine bağımlı değil).
|
|
16
|
+
* Eğer varsa, en az bir ürünün çözülebilir olmasını gerektirir.
|
|
17
|
+
*/
|
|
18
|
+
export declare const hasResolvableProductFilters: (viewModel: LoyaltyWidgetViewModel, filters: LoyaltyProgramFilter[]) => boolean;
|
|
12
19
|
export declare const getEarningMethodConditionList: (t: TFunction, earningMethod: LoyaltyProgramEarningMethod, viewModel: LoyaltyWidgetViewModel) => string[];
|
|
13
20
|
export declare const getEarningMethodDescriptionV2: (t: TFunction, earningMethod: LoyaltyProgramEarningMethod, viewModel: LoyaltyWidgetViewModel) => string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__spreadArray as n}from'./../../ext/tslib/tslib.es6.mjs.js';import{LoyaltyProgramFilterTypeEnum as t,EarningMethodTypeEnum as
|
|
1
|
+
import{__spreadArray as n}from'./../../ext/tslib/tslib.es6.mjs.js';import{LoyaltyProgramFilterTypeEnum as t,EarningMethodTypeEnum as r,LoyaltyProgramPointEarningTypeEnum as e}from"../../models/types/index.js";var i=function(n,r,e){var i;if(!e||0===e.length)return[];if(r===t.PRODUCT_AND_VARIANT){var o=e.find(function(n){return n.startsWith("p:")}),a=e.find(function(n){return n.startsWith("v:")});if(!o)return[];var u=o.slice(2),c=a?a.slice(2):null,d=null===(i=n.products)||void 0===i?void 0:i.find(function(n){return n.id===u});if(!d)return[];var s=d.name;if(c&&d.variants){var E=d.variants.find(function(n){return n.id===c});(null==E?void 0:E.variantText)&&(s="".concat(d.name," (").concat(E.variantText,")"))}return[{type:r,name:s,id:u}]}var R=[];return e.forEach(function(e){var i="";switch(r){case t.CATEGORY:case t.DYNAMIC_CATEGORY:if(n.categories){var o=n.categories.find(function(n){return n.id===e});o&&(i=o.name)}break;case t.PRODUCT_BRAND:if(n.brands){var a=n.brands.find(function(n){return n.id===e});a&&(i=a.name)}break;case t.PRODUCT_TAG:if(n.tags){var u=n.tags.find(function(n){return n.id===e});u&&(i=u.name)}}i&&R.push({type:r,name:i,id:e})}),R},o=function(n,t){if(n.products){var r=n.products.find(function(n){return n.id===t});return r?r.name:void 0}},a=function(n,r){var e=r.filter(function(n){return n.type===t.PRODUCT_AND_VARIANT});return 0===e.length||e.some(function(t){var r,e,i=null===(r=t.idList)||void 0===r?void 0:r.find(function(n){return n.startsWith("p:")});if(!i)return!1;var o=i.slice(2);return null===(e=n.products)||void 0===e?void 0:e.some(function(n){return n.id===o})})},u=function(o,a,u){var c,d,s,E=function(n){return n.filter(function(n){return n.type!==t.PRODUCT_AND_VARIANT}).map(function(n){switch(n.type){case t.CATEGORY:case t.DYNAMIC_CATEGORY:return o("earningMethods.ORDER_CREATE.BASE.descriptionOnlyCategory",{category:n.name});case t.PRODUCT_BRAND:return o("earningMethods.ORDER_CREATE.BASE.descriptionOnlyBrand",{brand:n.name});case t.PRODUCT_TAG:return o("earningMethods.ORDER_CREATE.BASE.descriptionOnlyTag",{tag:n.name});default:return n.name}}).filter(Boolean)};switch(a.methodType){case r.BUY_PRODUCT:return E(n([],(null===(c=a.productSettings)||void 0===c?void 0:c.productFilters)||[],!0).reduce(function(n,t){return n.concat(i(u,t.type,t.idList))},[]));case r.ORDER_CREATE:var R=n(n([],(null===(d=a.productSettings)||void 0===d?void 0:d.productFilters)||[],!0),(null===(s=a.orderSettings)||void 0===s?void 0:s.productFilters)||[],!0).reduce(function(n,t){return n.concat(i(u,t.type,t.idList))},[]),f=[];f.push.apply(f,E(R));var p=a.orderSettings||{},m=p.minOrderAmount,A=p.maxOrderAmount;return"number"==typeof m&&m>0&&f.push(o("earningMethods.ORDER_CREATE.BASE.descriptionStaticMinimum",{amount:u.formatCurrency(m)})),"number"==typeof A&&A>0&&f.push(o("earningMethods.ORDER_CREATE.BASE.descriptionStaticMaximum",{amount:u.formatCurrency(A)})),a.pointEarningType===e.DYNAMIC_ORDER_AMOUNT&&f.push(o("earningMethods.ORDER_CREATE.RECEIVE_POINTS_ON_SPEND.description",{amount:u.formatCurrency(a.amountPerPointsEarned||0),points:a.pointsEarned})),f;default:return[]}},c=function(o,a,u){var c,d,s,E=function(n){return n.filter(function(n){return n.type!==t.PRODUCT_AND_VARIANT}).map(function(n){switch(n.type){case t.CATEGORY:case t.DYNAMIC_CATEGORY:return o("earningMethods.ORDER_CREATE.BASE.genericCategory",{category:n.name});case t.PRODUCT_BRAND:return o("earningMethods.ORDER_CREATE.BASE.genericBrand",{brand:n.name});case t.PRODUCT_TAG:return o("earningMethods.ORDER_CREATE.BASE.genericTag",{tag:n.name});default:return n.name}}).filter(Boolean).join(", ")};switch(a.methodType){case r.CUSTOMER_REGISTER:case r.CUSTOMER_REVIEW:case r.ENABLE_SUBSCRIPTION:return o("earningMethods.xPoints",{points:a.pointsEarned});case r.BUY_PRODUCT:var R=E(n([],(null===(c=a.productSettings)||void 0===c?void 0:c.productFilters)||[],!0).reduce(function(n,t){return n.concat(i(u,t.type,t.idList))},[]));return R||void 0;case r.ORDER_CREATE:var f=n(n([],(null===(d=a.productSettings)||void 0===d?void 0:d.productFilters)||[],!0),(null===(s=a.orderSettings)||void 0===s?void 0:s.productFilters)||[],!0),p=E(f.reduce(function(n,t){return n.concat(i(u,t.type,t.idList))},[])),m=a.orderSettings||{},A=m.minOrderAmount,l=m.maxOrderAmount,T="number"==typeof l&&l>0,C="";switch("number"==typeof A&&A>0?C=o("earningMethods.ORDER_CREATE.BASE.descriptionStaticMinimum",{amount:u.formatCurrency(A)}):T&&(C=o("earningMethods.ORDER_CREATE.BASE.descriptionStaticMaximum",{amount:u.formatCurrency(l)})),a.pointEarningType){case e.DYNAMIC_ORDER_AMOUNT:return(O=[p,C,o("earningMethods.ORDER_CREATE.RECEIVE_POINTS_ON_SPEND.description",{amount:u.formatCurrency(a.amountPerPointsEarned||0),points:a.pointsEarned})].filter(Boolean)).join(" ");case e.STATIC:var O;return 0===(O=[p,C].filter(Boolean)).length?void f.length:!C&&p?o("earningMethods.ORDER_CREATE.BASE.descriptionWithFilter",{filter:p}):O.join(", ")}break;default:return""}};export{u as getEarningMethodConditionList,c as getEarningMethodDescriptionV2,i as getFilterDetails,o as getFreeProductName,a as hasResolvableProductFilters};
|