@ikas/loyalty-widget-renderer 1.0.0-alpha.46 → 1.0.0-alpha.47
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/renderer/components/button/style.js +1 -1
- package/build/renderer/components/flexible-value-container/index.d.ts +16 -0
- package/build/renderer/components/flexible-value-container/index.js +1 -0
- package/build/renderer/screens/credit-spending-methods-screen/index.js +1 -1
- package/build/renderer/screens/main-screen/index.js +1 -1
- package/build/renderer/screens/main-screen/spending-methods-section/dynamic-slider.js +1 -1
- package/build/renderer/screens/main-screen/spending-methods-section/index.js +1 -1
- package/build/renderer/utils/loyalty-details.js +1 -1
- package/build/storefront-widget-script-injector.iife.js +6 -6
- package/build/storefront-widget-script-injector.iife.js.map +1 -1
- package/build/utils.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import r,{keyframes as
|
|
1
|
+
import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import r,{keyframes as o}from"styled-components";import{textXSMedium as t,textSM as e,textSMMedium as i,textMDMedium as a,textLGSemiBold as d,displayXSSemiBold as s}from"../style/typography.js";var l,p,u,c={textXSMedium:t,textSM:e,textSMMedium:i,textMDMedium:a,textLGSemiBold:d,displayXSSemiBold:s},f={small:"8px",medium:"10px 16px"},m=r.button(l||(l=n(["\n border: none;\n cursor: ",";\n transition: all 0.2s ease;\n opacity: ",";\n /* pointer-events removed to allow cursor: not-allowed */\n\n ","\n\n padding: ",";\n border-radius: ","px;\n width: ",";\n background-color: ",";\n color: ",";\n border: ",";\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n\n &:hover {\n opacity: ",";\n }\n"],["\n border: none;\n cursor: ",";\n transition: all 0.2s ease;\n opacity: ",";\n /* pointer-events removed to allow cursor: not-allowed */\n\n ","\n\n padding: ",";\n border-radius: ","px;\n width: ",";\n background-color: ",";\n color: ",";\n border: ",";\n\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n\n &:hover {\n opacity: ",";\n }\n"])),function(n){return n.disabled?"not-allowed":"pointer"},function(n){return n.disabled?.5:1},function(n){return c[n.fontSize]},function(n){return f[n.paddingSize]},function(n){return n.borderRadius},function(n){return n.fullWidth?"100%":"auto"},function(n){var r;return null!==(r=n.bgColor)&&void 0!==r?r:"transparent"},function(n){var r;return null!==(r=n.textColor)&&void 0!==r?r:"inherit"},function(n){return n.borderColor?"1px solid ".concat(n.borderColor):"none"},function(n){return n.disabled?.5:.9}),x=o(p||(p=n(["\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n"],["\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n"]))),b=r.div(u||(u=n(["\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top: 2px solid currentColor;\n border-radius: 50%;\n width: 14px;\n height: 14px;\n min-width: 14px; /* Ensure it doesn't collapse */\n animation:\n "," 1s linear infinite,\n fade-in 0.3s ease-out;\n\n @keyframes fade-in {\n from {\n opacity: 0;\n width: 0;\n transform: scale(0);\n }\n to {\n opacity: 1;\n width: 14px;\n transform: scale(1);\n }\n }\n"],["\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top: 2px solid currentColor;\n border-radius: 50%;\n width: 14px;\n height: 14px;\n min-width: 14px; /* Ensure it doesn't collapse */\n animation:\n "," 1s linear infinite,\n fade-in 0.3s ease-out;\n\n @keyframes fade-in {\n from {\n opacity: 0;\n width: 0;\n transform: scale(0);\n }\n to {\n opacity: 1;\n width: 14px;\n transform: scale(1);\n }\n }\n"])),x);export{m as Button,b as Loader};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type FlexibleValueContainerProps = {
|
|
3
|
+
children: React.ReactNode | ((isWrapped: boolean) => React.ReactNode);
|
|
4
|
+
gap?: number;
|
|
5
|
+
className?: string;
|
|
6
|
+
style?: React.CSSProperties;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* A container that switches flex-direction to 'column' if its children wrap
|
|
10
|
+
* when in 'row' layout.
|
|
11
|
+
*
|
|
12
|
+
* Uses a hidden clone ("Detector") to constantly monitor if a standard row layout
|
|
13
|
+
* would wrap given the current width constraint.
|
|
14
|
+
*/
|
|
15
|
+
export declare const FlexibleValueContainer: React.FC<FlexibleValueContainerProps>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import e,{useRef as t,useState as i,useLayoutEffect as r}from"react";import o from"styled-components";var a,s,p=o.div(a||(a=n(["\n display: flex;\n flex-direction: ",";\n align-items: ",";\n gap: ","px;\n flex-wrap: wrap;\n position: relative;\n width: 100%; /* Ensure it takes available width to properly constrain the detector */\n"],["\n display: flex;\n flex-direction: ",";\n align-items: ",";\n gap: ","px;\n flex-wrap: wrap;\n position: relative;\n width: 100%; /* Ensure it takes available width to properly constrain the detector */\n"])),function(n){return n.$isWrapped?"column":"row"},function(n){return n.$isWrapped?"flex-start":"center"},function(n){return n.$gap}),l=o.div(s||(s=n(["\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: ","px;\n align-items: center;\n\n /* Positioning to match the container's width constraint */\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n\n /* Hide from view and interaction */\n visibility: hidden;\n pointer-events: none;\n z-index: -100;\n opacity: 0;\n"],["\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: ","px;\n align-items: center;\n\n /* Positioning to match the container's width constraint */\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n\n /* Hide from view and interaction */\n visibility: hidden;\n pointer-events: none;\n z-index: -100;\n opacity: 0;\n"])),function(n){return n.$gap}),c=function(n){var o=n.children,a=n.gap,s=void 0===a?6:a,c=n.className,d=n.style,f=t(null),u=i(!1),m=u[0],v=u[1];r(function(){var n=function(){if(f.current){var n=f.current,e=Array.from(n.children);if(e.length<2)v(!1);else{var t=e[0].offsetTop,i=e[e.length-1].offsetTop;v(i>t+2)}}};n();var e=new ResizeObserver(n);return f.current&&e.observe(f.current),function(){return e.disconnect()}},[o]);var w="function"==typeof o?o(m):o,h="function"==typeof o?o(!1):o;return e.createElement(p,{className:c,style:d,$isWrapped:m,$gap:s},w,e.createElement(l,{ref:f,$gap:s,"aria-hidden":"true"},h))};export{c as FlexibleValueContainer};
|
|
@@ -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{ChevronLeft as o}from"../../../assets/icons/chevron-left.js";import{XClose as r}from"../../../assets/icons/x-close.js";import l from"../../components/count-up/index.js";import s from"../main-screen/spending-methods-section/index.js";import{Container as i,Header 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{ChevronLeft as o}from"../../../assets/icons/chevron-left.js";import{XClose as r}from"../../../assets/icons/x-close.js";import l from"../../components/count-up/index.js";import s from"../main-screen/spending-methods-section/index.js";import{Container as i,Header as m,IconButton as c,Title as a,Content as d,PointsSection as u,PointsTitle as p,PointsValue as E}from"./style.js";var f=e(function(e){var f=e.viewModel,x=e.onBack,j=e.onClose,g=n().t,h=f.user;return t.createElement(i,null,t.createElement(m,null,t.createElement(c,{onClick:x},t.createElement(o,null)),t.createElement(a,null,g("screens.creditSpendingMethods")),t.createElement(c,{onClick:j},t.createElement(r,null))),t.createElement(d,null,h&&t.createElement(u,{$borderRadius:f.loyaltyWidget.settings.cartBorderRadius},t.createElement(p,null,g("header.earnedPoints")),t.createElement(E,null,t.createElement(l,{end:h.totalPoint}))),t.createElement(s,{viewModel:f,mode:"accordion",methods:f.spendingMethods,getActionProps:function(e){return null}})))});export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e,__generator as t,__assign as o}from'./../../../ext/tslib/tslib.es6.mjs.js';import{observer as n}from"mobx-react";import 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 s,WidgetMode as a}from"../../../models/types/index.js";import l from"../../components/section-title/index.js";import c from"./earning-methods-section/index.js";import d from"./header/index.js";import{CARD_OVERLAP_TOP as m}from"./header/style.js";import u from"./program-info-section/index.js";import p from"./spending-methods-section/index.js";import{Container as g,Content as f,Section as h}from"./style.js";var E=n(function(n){var E=n.viewModel,v=n.onClose,M=n.onNavigate,T=r().t,x=i.useState(0),b=x[0],j=x[1],w=Math.max(b-m+32,32),S=E.shouldShowSpendingMethods,C=E.earningMethods.length>0,_=S||C;return i.createElement(g,null,i.createElement(d,{viewModel:E,onClose:v,onCardHeightChange:j,headerGap:
|
|
1
|
+
import{__awaiter as e,__generator as t,__assign as o}from'./../../../ext/tslib/tslib.es6.mjs.js';import{observer as n}from"mobx-react";import 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 s,WidgetMode as a}from"../../../models/types/index.js";import l from"../../components/section-title/index.js";import c from"./earning-methods-section/index.js";import d from"./header/index.js";import{CARD_OVERLAP_TOP as m}from"./header/style.js";import u from"./program-info-section/index.js";import p from"./spending-methods-section/index.js";import{Container as g,Content as f,Section as h}from"./style.js";var E=n(function(n){var E=n.viewModel,v=n.onClose,M=n.onNavigate,T=r().t,x=i.useState(0),b=x[0],j=x[1],w=Math.max(b-m+32,32),S=E.shouldShowSpendingMethods,C=E.earningMethods.length>0,_=S||C;return i.createElement(g,null,i.createElement(d,{viewModel:E,onClose:v,onCardHeightChange:j,headerGap:24}),i.createElement(f,{$topPadding:w},_&&i.createElement(h,null,i.createElement(l,{style:{paddingTop:0}},T(S?"main_screen.spendingMethodsTitle":"main_screen.earningMethodsTitle")),S?i.createElement(p,{viewModel:E,mode:"card",methods:E.spendingMethods.filter(function(e){return e.isAvailable}),getActionProps:function(e){return null}}):i.createElement(c,{viewModel:E,getActionProps:function(n){return n.methodType===s.CUSTOMER_REGISTER?{actionText:T("common.create"),onClick:function(){E.storeUrl&&(E.setWidgetMode(a.MINI_MODE),window.location.href="".concat(E.storeUrl,"/account/register"))}}:n.methodType===s.ENABLE_SUBSCRIPTION?{actionText:T("common.allow"),onClick:function(){return e(void 0,void 0,void 0,function(){var e;return t(this,function(t){switch(t.label){case 0:return(null===(e=E.callbacks)||void 0===e?void 0:e.subscribeToMarketingNotifications)?(E.isActionLoading=!0,[4,E.callbacks.subscribeToMarketingNotifications()]):[3,2];case 1:t.sent()&&(E.ikasEventUser=o(o({},E.ikasEventUser),{subscriptionStatus:"SUBSCRIBED"}),E.userRefreshTrigger++),E.isActionLoading=!1,t.label=2;case 2:return[2]}})})},loading:E.isActionLoading}:null}})),i.createElement(h,null,i.createElement(l,{style:{paddingTop:0}},T("main_screen.programInfoTitle")),i.createElement(u,{viewModel:E,onNavigate:M}))))});export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__makeTemplateObject as n,__awaiter as e,__generator as t}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{observer as o}from"mobx-react";import i,{useState as r,useEffect as a}from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as l}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import s from"styled-components";import{HeaderBackgroundTypeEnum as d}from"../../../../models/loyalty-widget/types/index.js";import{LoyaltyWidgetScreenTypeEnum as p}from"../../../../models/types/index.js";import u from"../../../components/button/index.js";import{textSM as c,Badge as f}from"../../../components/style/typography.js";var m,g,x,h,b,v,y,w,E,k,$,j,S=s.div(m||(m=n(["\n display: flex;\n padding: 12px 16px 16px 16px;\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n align-self: stretch;\n border-radius: 6px;\n border: 1px solid #eef2f6;\n background: #f8fafc;\n"],["\n display: flex;\n padding: 12px 16px 16px 16px;\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n align-self: stretch;\n border-radius: 6px;\n border: 1px solid #eef2f6;\n background: #f8fafc;\n"]))),C=s.div(g||(g=n(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n"],["\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n"]))),z=s.div(x||(x=n(["\n color: #364152;\n ","\n"],["\n color: #364152;\n ","\n"])),c),I=s.div(h||(h=n(["\n width: 100%;\n position: relative;\n padding-bottom: 16px; /* Space for markers */\n"],["\n width: 100%;\n position: relative;\n padding-bottom: 16px; /* Space for markers */\n"]))),M=s.div(b||(b=n(["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"],["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"]))),N=s.div(v||(v=n(["\n position: absolute;\n left: 0;\n right: 0;\n height: 6px;\n border-radius: 3px;\n background-color: #e3e8ef;\n"],["\n position: absolute;\n left: 0;\n right: 0;\n height: 6px;\n border-radius: 3px;\n background-color: #e3e8ef;\n"]))),A=s.div(y||(y=n(["\n position: absolute;\n left: 0;\n height: 6px;\n width: ","%;\n border-radius: 3px;\n background: ",";\n"],["\n position: absolute;\n left: 0;\n height: 6px;\n width: ","%;\n border-radius: 3px;\n background: ",";\n"])),function(n){return n.$percentage},function(n){return n.$isGradient?"radial-gradient(92.35% 100% at 50% 0%, rgba(255, 255, 255, 0.5) 0%, rgba(0, 0, 0, 0.5) 100%), ".concat(n.$bgColor):n.$bgColor}),L=s.div(w||(w=n(["\n position: absolute;\n left: ","%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #ffffff;\n border: 2px solid ",";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 2;\n pointer-events: none; /* Let clicks pass through to input/container if needed, but input handles interaction */\n"],["\n position: absolute;\n left: ","%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #ffffff;\n border: 2px solid ",";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 2;\n pointer-events: none; /* Let clicks pass through to input/container if needed, but input handles interaction */\n"])),function(n){return n.$left},function(n){return n.$bgColor}),_=s.input(E||(E=n(["\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n z-index: 3;\n margin: 0;\n"],["\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n z-index: 3;\n margin: 0;\n"]))),P=s.div(k||(k=n(["\n position: absolute;\n top: 28px; /* Below the slider track/thumb */\n left: 0;\n right: 0;\n display: flex;\n justify-content: space-between;\n pointer-events: none;\n"],["\n position: absolute;\n top: 28px; /* Below the slider track/thumb */\n left: 0;\n right: 0;\n display: flex;\n justify-content: space-between;\n pointer-events: none;\n"]))),R=s.div($||($=n(["\n font-size: 12px;\n color: #9aa4b2;\n font-weight: 400;\n line-height: 18px;\n"],["\n font-size: 12px;\n color: #9aa4b2;\n font-weight: 400;\n line-height: 18px;\n"]))),T=s.div(j||(j=n(["\n position: absolute;\n left: ","%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background-color: #fff;\n z-index: 1;\n"],["\n position: absolute;\n left: ","%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background-color: #fff;\n z-index: 1;\n"])),function(n){return n.$left}),F=o(function(n){var o=n.viewModel,s=n.method,c=l().t,m=r(!1),g=m[0],x=m[1],h=o.user,b=o.loyaltyWidget,v=s.discountSettings;if(!h||!v)return null;var y=v.point,w=v.discountAmount||0;if(y<=0)return null;var E=s.pointUsageLimit,k=(null==E?void 0:E.minPointLimit)||0,$=(null==E?void 0:E.maxPointLimit)||Number.MAX_SAFE_INTEGER,j=Math.min(h.totalPoint,$),F=Math.floor(j/y)*y,G=k>0?Math.ceil(k/y)*y:0,B=F>0?F:y,W=G,D=r(
|
|
1
|
+
import{__makeTemplateObject as n,__awaiter as e,__generator as t}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{observer as o}from"mobx-react";import i,{useState as r,useEffect as a}from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as l}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import s from"styled-components";import{HeaderBackgroundTypeEnum as d}from"../../../../models/loyalty-widget/types/index.js";import{LoyaltyWidgetScreenTypeEnum as p}from"../../../../models/types/index.js";import u from"../../../components/button/index.js";import{textSM as c,Badge as f}from"../../../components/style/typography.js";var m,g,x,h,b,v,y,w,E,k,$,j,S=s.div(m||(m=n(["\n display: flex;\n padding: 12px 16px 16px 16px;\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n align-self: stretch;\n border-radius: 6px;\n border: 1px solid #eef2f6;\n background: #f8fafc;\n"],["\n display: flex;\n padding: 12px 16px 16px 16px;\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n align-self: stretch;\n border-radius: 6px;\n border: 1px solid #eef2f6;\n background: #f8fafc;\n"]))),C=s.div(g||(g=n(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n"],["\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n"]))),z=s.div(x||(x=n(["\n color: #364152;\n ","\n"],["\n color: #364152;\n ","\n"])),c),I=s.div(h||(h=n(["\n width: 100%;\n position: relative;\n padding-bottom: 16px; /* Space for markers */\n"],["\n width: 100%;\n position: relative;\n padding-bottom: 16px; /* Space for markers */\n"]))),M=s.div(b||(b=n(["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"],["\n position: relative;\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"]))),N=s.div(v||(v=n(["\n position: absolute;\n left: 0;\n right: 0;\n height: 6px;\n border-radius: 3px;\n background-color: #e3e8ef;\n"],["\n position: absolute;\n left: 0;\n right: 0;\n height: 6px;\n border-radius: 3px;\n background-color: #e3e8ef;\n"]))),A=s.div(y||(y=n(["\n position: absolute;\n left: 0;\n height: 6px;\n width: ","%;\n border-radius: 3px;\n background: ",";\n"],["\n position: absolute;\n left: 0;\n height: 6px;\n width: ","%;\n border-radius: 3px;\n background: ",";\n"])),function(n){return n.$percentage},function(n){return n.$isGradient?"radial-gradient(92.35% 100% at 50% 0%, rgba(255, 255, 255, 0.5) 0%, rgba(0, 0, 0, 0.5) 100%), ".concat(n.$bgColor):n.$bgColor}),L=s.div(w||(w=n(["\n position: absolute;\n left: ","%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #ffffff;\n border: 2px solid ",";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 2;\n pointer-events: none; /* Let clicks pass through to input/container if needed, but input handles interaction */\n"],["\n position: absolute;\n left: ","%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background: #ffffff;\n border: 2px solid ",";\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 2;\n pointer-events: none; /* Let clicks pass through to input/container if needed, but input handles interaction */\n"])),function(n){return n.$left},function(n){return n.$bgColor}),_=s.input(E||(E=n(["\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n z-index: 3;\n margin: 0;\n"],["\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n z-index: 3;\n margin: 0;\n"]))),P=s.div(k||(k=n(["\n position: absolute;\n top: 28px; /* Below the slider track/thumb */\n left: 0;\n right: 0;\n display: flex;\n justify-content: space-between;\n pointer-events: none;\n"],["\n position: absolute;\n top: 28px; /* Below the slider track/thumb */\n left: 0;\n right: 0;\n display: flex;\n justify-content: space-between;\n pointer-events: none;\n"]))),R=s.div($||($=n(["\n font-size: 12px;\n color: #9aa4b2;\n font-weight: 400;\n line-height: 18px;\n"],["\n font-size: 12px;\n color: #9aa4b2;\n font-weight: 400;\n line-height: 18px;\n"]))),T=s.div(j||(j=n(["\n position: absolute;\n left: ","%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background-color: #fff;\n z-index: 1;\n"],["\n position: absolute;\n left: ","%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background-color: #fff;\n z-index: 1;\n"])),function(n){return n.$left}),F=o(function(n){var o=n.viewModel,s=n.method,c=l().t,m=r(!1),g=m[0],x=m[1],h=o.user,b=o.loyaltyWidget,v=s.discountSettings;if(!h||!v)return null;var y=v.point,w=v.discountAmount||0;if(y<=0)return null;var E=s.pointUsageLimit,k=(null==E?void 0:E.minPointLimit)||0,$=(null==E?void 0:E.maxPointLimit)||Number.MAX_SAFE_INTEGER,j=Math.min(h.totalPoint,$),F=Math.floor(j/y)*y,G=k>0?Math.ceil(k/y)*y:0,B=F>0?F:y,W=G,D=r(G),U=D[0],X=D[1];a(function(){U>F?X(F):U<G&&X(G)},[F,G]);var q=B-W,H=q>0?(U-W)/q*100:0,J=U/y*w,K=b.header.background.bgColor||"#7B61FF",O=b.header.background.type===d.GRADIENT,Q=q/y,V=[];if(Q>1&&Q<20)for(var Y=1;Y<Q;Y++)V.push(Y/Q*100);var Z=F>=G&&F>0&&!0===s.isAvailable;return i.createElement(i.Fragment,null,i.createElement(S,null,i.createElement(C,null,i.createElement(z,null,U," ",c("common.points")),i.createElement(f,null,o.formatCurrency(Number(J)))),i.createElement(I,null,i.createElement(M,null,i.createElement(N,null,V.map(function(n,e){return i.createElement(T,{key:e,$left:n})})),i.createElement(A,{$percentage:H,$bgColor:K,$isGradient:O}),i.createElement(L,{$left:H,$bgColor:K}),i.createElement(_,{type:"range",min:W,max:B,step:y,value:U,onChange:function(n){var e=Number(n.target.value);X(e)}})),i.createElement(P,null,i.createElement(R,null,W),i.createElement(R,null,B)))),i.createElement(u,{button:b.button,fontSize:"textSMMedium",paddingSize:"medium",fullWidth:!0,disabled:0===U||g||!Z,isLoading:g,onClick:function(){return e(void 0,void 0,void 0,function(){var n;return t(this,function(e){switch(e.label){case 0:if(!o.cartId||0===U)return[2];x(!0),e.label=1;case 1:return e.trys.push([1,,3,4]),[4,null===(n=o.callbacks)||void 0===n?void 0:n.useLoyaltyPoints({amount:J,cartId:o.cartId,loyaltyProgramId:s.loyaltyProgramId,loyaltySpendingMethodId:s.id})];case 2:return e.sent()&&(o.userRefreshTrigger++,o.cartRefreshTrigger++,o.selectedScreen!==p.MAIN_SCREEN&&(o.selectedScreen=p.MAIN_SCREEN)),[3,4];case 3:return x(!1),[7];case 4:return[2]}})})}},c("common.convert")))});export{F as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__spreadArray as e,__awaiter as t,__generator as i}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{observer as
|
|
1
|
+
import{__spreadArray as e,__awaiter as t,__generator as i}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{observer as n}from"mobx-react";import o,{useState as r}from"react";import'./../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as d}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import{LoyaltyProgramMethodSpendingTypeEnum as a,LoyaltyProgramFilterTypeEnum as s,LoyaltyWidgetScreenTypeEnum as l}from"../../../../models/types/index.js";import c from"../../../components/button/index.js";import m from"../../../components/loyalty-method-card/index.js";import{getFreeProductName as u,getFilterDetails as p}from"../../../utils/loyalty-details.js";import{getSpendingMethodTitle as g,getSpendingMethodDescription as y,getSpendingMethodIcon as f}from"../../../../utils.js";import v from"./dynamic-slider.js";var E=n(function(e){var n,E,x=e.method,R=e.viewModel,h=e.actionText,A=e.padding,b=e.onClick,T=e.mode,C=d().t,D=r(!1),S=D[0],I=D[1],M=R.loyaltyWidget,_=g(x),O=y(x,R),P=f(x.type,M.settings.widgetIconType),k=x.productFilters||[],j=x.type===a.FREE_PRODUCT,w=j&&(null===(n=x.discountSettings)||void 0===n?void 0:n.freeProductId)?u(R,x.discountSettings.freeProductId):void 0,N=j&&!!w,B=null===(E=x.pointUsageLimit)||void 0===E?void 0:E.minPointLimit,L=!x.isDynamic&&!!R.user&&!!R.cartId,U=x.isDynamic&&!!R.user&&!!R.cartId,z=x.isDynamic,W="accordion"===T||z&&U?"accordion":"card",F=function(){return t(void 0,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:if(!R.cartId||!x.isAvailable)return[2];I(!0),t.label=1;case 1:return t.trys.push([1,,3,4]),[4,null===(e=R.callbacks)||void 0===e?void 0:e.useLoyaltyPoints({cartId:R.cartId,loyaltyProgramId:x.loyaltyProgramId,loyaltySpendingMethodId:x.id})];case 2:return t.sent()&&(R.userRefreshTrigger++,R.cartRefreshTrigger++,R.selectedScreen!==l.MAIN_SCREEN&&(R.selectedScreen=l.MAIN_SCREEN)),[3,4];case 3:return I(!1),[7];case 4:return[2]}})})},G="card"===W&&L&&!z?{text:C("common.use"),onClick:F,loading:S}:h&&b?{text:h,onClick:b}:void 0;return o.createElement(m,{title:_,description:O,icon:P,action:G,isCompleted:!1,mode:W,padding:A,settings:{borderRadius:M.settings.cartBorderRadius,widgetIconType:M.settings.widgetIconType,button:M.button}},"accordion"!==W?null:o.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},B&&B>0&&o.createElement("div",{style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},C("spendingMethods.minPointLimit",{points:B})),N&&o.createElement("div",{style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},C("spendingMethods.FREE_PRODUCT.description",{product:w})),k.map(function(e,t){var i=p(R,e.type,e.idList);if(!i.length)return null;var n=i[0],r=n.name,d="";switch(n.type){case s.CATEGORY:case s.DYNAMIC_CATEGORY:d=C("earningMethods.ORDER_CREATE.BASE.descriptionOnlyCategory",{category:r});break;case s.PRODUCT_AND_VARIANT:d=C("earningMethods.ORDER_CREATE.BASE.descriptionOnlyProduct",{product:r});break;case s.PRODUCT_BRAND:d=C("earningMethods.ORDER_CREATE.BASE.descriptionOnlyBrand",{brand:r});break;case s.PRODUCT_TAG:d=C("earningMethods.ORDER_CREATE.BASE.descriptionOnlyTag",{tag:r})}return!d&&r&&(d=r),d?o.createElement("div",{key:t,style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},d):null}),U&&o.createElement(v,{viewModel:R,method:x}),L&&!z&&o.createElement("div",{style:{alignSelf:"flex-end",width:"100%"}},o.createElement(c,{button:M.button,paddingSize:"small",fontSize:"textSMMedium",onClick:F,isLoading:S,disabled:!x.isAvailable,fullWidth:!0},C("common.use")))))}),x=n(function(t){var i=t.viewModel,n=t.mode,r=void 0===n?"card":n,d=t.getActionProps,a=t.methods,s=i.spendingMethods,l=e([],a||s,!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}),c="accordion"===r?"16px":void 0;return o.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px",padding:"accordion"===r?"0 16px":"0 24px"}},l.map(function(e){var t=d?d(e):null;return o.createElement(E,{key:e.id,method:e,viewModel:i,mode:r,padding:c,actionText:null==t?void 0:t.actionText,onClick:null==t?void 0:t.onClick})}))});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__spreadArray as e}from'./../../ext/tslib/tslib.es6.mjs.js';import{EarningMethodTypeEnum as n,LoyaltyProgramPointEarningTypeEnum as r,LoyaltyProgramFilterTypeEnum as t}from"../../models/types/index.js";var i=function(e,n,r){if(!r||0===r.length)return[];var i=[];return r.forEach(function(r){var a="";switch(n){case t.CATEGORY:case t.DYNAMIC_CATEGORY:if(e.categories){var o=e.categories.find(function(e){return e.id===r});o&&(a=o.name)}break;case t.PRODUCT_AND_VARIANT:if(e.products){var s=e.products.find(function(e){return e.id===r});s&&(a=s.name)}break;case t.PRODUCT_BRAND:if(e.brands){var c=e.brands.find(function(e){return e.id===r});c&&(a=c.name)}break;case t.PRODUCT_TAG:if(e.tags){var
|
|
1
|
+
import{__spreadArray as e}from'./../../ext/tslib/tslib.es6.mjs.js';import{EarningMethodTypeEnum as n,LoyaltyProgramPointEarningTypeEnum as r,LoyaltyProgramFilterTypeEnum as t}from"../../models/types/index.js";var i=function(e,n,r){if(!r||0===r.length)return[];var i=[];return r.forEach(function(r){var a="";switch(n){case t.CATEGORY:case t.DYNAMIC_CATEGORY:if(e.categories){var o=e.categories.find(function(e){return e.id===r});o&&(a=o.name)}break;case t.PRODUCT_AND_VARIANT:if(e.products){var s=e.products.find(function(e){return e.id===r});s&&(a=s.name)}break;case t.PRODUCT_BRAND:if(e.brands){var c=e.brands.find(function(e){return e.id===r});c&&(a=c.name)}break;case t.PRODUCT_TAG:if(e.tags){var d=e.tags.find(function(e){return e.id===r});d&&(a=d.name)}}a?i.push({type:n,name:a,id:r}):i.push({type:n,name:r,id:r})}),i},a=function(e,n){if(e.products){var r=e.products.find(function(e){return e.id===n});return r?r.name:void 0}},o=function(a,o,s){var c,d;switch(o.methodType){case n.CUSTOMER_REGISTER:case n.CUSTOMER_REVIEW:case n.ENABLE_SUBSCRIPTION:return a("earningMethods.xPoints",{points:o.pointsEarned});case n.ORDER_CREATE:var u=e(e([],(null===(c=o.productSettings)||void 0===c?void 0:c.productFilters)||[],!0),(null===(d=o.orderSettings)||void 0===d?void 0:d.productFilters)||[],!0),E=u.reduce(function(e,n){return e.concat(i(s,n.type,n.idList))},[]),R=E.map(function(e){switch(e.type){case t.CATEGORY:case t.DYNAMIC_CATEGORY:return a("earningMethods.ORDER_CREATE.BASE.genericCategory",{category:e.name});case t.PRODUCT_AND_VARIANT:return a("earningMethods.ORDER_CREATE.BASE.genericProduct",{product:e.name});case t.PRODUCT_BRAND:return a("earningMethods.ORDER_CREATE.BASE.genericBrand",{brand:e.name});case t.PRODUCT_TAG:return a("earningMethods.ORDER_CREATE.BASE.genericTag",{tag:e.name});default:return e.name}}).filter(Boolean).join(", "),m=o.orderSettings||{},A=m.minOrderAmount,f=m.maxOrderAmount,T="number"==typeof f&&f>0,p="";switch("number"==typeof A&&A>0?p=a("earningMethods.ORDER_CREATE.BASE.descriptionStaticMinimum",{amount:s.formatCurrency(A)}):T&&(p=a("earningMethods.ORDER_CREATE.BASE.descriptionStaticMaximum",{amount:s.formatCurrency(f)})),o.pointEarningType){case r.DYNAMIC_ORDER_AMOUNT:return(C=[R,p,a("earningMethods.ORDER_CREATE.RECEIVE_POINTS_ON_SPEND.description",{amount:s.formatCurrency(o.amountPerPointsEarned||0),points:o.pointsEarned})].filter(Boolean)).join(" ");case r.STATIC:var C;return 0===(C=[R,p].filter(Boolean)).length?void u.length:!p&&R?R+" "+a("earningMethods.ORDER_CREATE.BASE.descriptionSuffix"):C.join(", ")}break;default:return""}};export{o as getEarningMethodDescriptionV2,i as getFilterDetails,a as getFreeProductName};
|