@ikas/loyalty-widget-renderer 1.0.0-alpha.29 → 1.0.0-alpha.30
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/index.js +1 -1
- package/build/loyalty-widget-script-injector.iife.js +6 -6
- package/build/loyalty-widget-script-injector.iife.js.map +1 -1
- package/build/models/index.d.ts +8 -2
- package/build/models/index.js +1 -1
- package/build/models/types/index.d.ts +8 -1
- package/build/models/types/index.js +1 -1
- package/build/renderer/components/mini-mode-button/index.d.ts +7 -0
- package/build/renderer/components/mini-mode-button/index.js +1 -0
- package/build/renderer/components/mini-mode-button/style.d.ts +3 -0
- package/build/renderer/components/mini-mode-button/style.js +1 -0
- package/build/renderer/components/mini-mode-description/index.d.ts +7 -0
- package/build/renderer/components/mini-mode-description/index.js +1 -0
- package/build/renderer/components/mini-mode-description/style.d.ts +3 -0
- package/build/renderer/components/mini-mode-description/style.js +1 -0
- package/build/renderer/index.js +1 -1
- package/build/renderer/screens/main-screen/header/auth-user-section/index.js +1 -1
- package/build/renderer/style.d.ts +3 -0
- package/build/renderer/style.js +1 -1
- package/package.json +3 -2
package/build/models/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { LoyaltyWidget } from "./loyalty-widget";
|
|
2
|
-
import { LoyaltyWidgetCallbacks, LoyaltyWidgetScreenTypeEnum, Category, Product, Brand, Tag } from "./types";
|
|
2
|
+
import { LoyaltyWidgetCallbacks, LoyaltyWidgetScreenTypeEnum, WidgetMode, Category, Product, Brand, Tag } from "./types";
|
|
3
3
|
import { LoyaltyProgramSpendingMethod } from "./loyalty-program-spending-method";
|
|
4
4
|
import { LoyaltyProgramEarningMethod } from "./loyalty-program-earning-method";
|
|
5
5
|
import { LoyaltyCustomerInfo, LoyaltyProgramTier } from "./loyalty-customer-info";
|
|
6
6
|
import { LoyaltyProgramPointHistory } from "./loyalty-program-point-history";
|
|
7
7
|
export declare class LoyaltyWidgetViewModel {
|
|
8
8
|
selectedScreen: LoyaltyWidgetScreenTypeEnum;
|
|
9
|
+
currentWidgetMode: WidgetMode;
|
|
10
|
+
isMiniModeDescriptionClosed: boolean;
|
|
9
11
|
isLoading: boolean;
|
|
10
12
|
loyaltyWidget: LoyaltyWidget;
|
|
11
13
|
cartId?: string | null;
|
|
@@ -24,5 +26,9 @@ export declare class LoyaltyWidgetViewModel {
|
|
|
24
26
|
tiers: LoyaltyProgramTier[];
|
|
25
27
|
pointHistory: LoyaltyProgramPointHistory[];
|
|
26
28
|
callbacks?: LoyaltyWidgetCallbacks;
|
|
27
|
-
constructor(data: Partial<LoyaltyWidgetViewModel> | undefined, cdnURL: string, merchantId: string, currency: string, locale: string,
|
|
29
|
+
constructor(data: Partial<LoyaltyWidgetViewModel> | undefined, cdnURL: string, merchantId: string, currency: string, locale: string, storeURL?: string | null, previewModeProps?: {
|
|
30
|
+
changeWidgetMode: (mode: WidgetMode) => void;
|
|
31
|
+
}, callbacks?: LoyaltyWidgetCallbacks);
|
|
32
|
+
setWidgetMode(mode: WidgetMode): void;
|
|
33
|
+
closeMiniModeDescription(): void;
|
|
28
34
|
}
|
package/build/models/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{makeObservable as t,observable as e}from"mobx";import{LoyaltyWidget as
|
|
1
|
+
import{makeObservable as t,observable as e}from"mobx";import{LoyaltyWidget as i}from"./loyalty-widget/index.js";import{WidgetMode as s,LoyaltyWidgetScreenTypeEnum as o}from"./types/index.js";import{LoyaltyProgramSpendingMethod as r}from"./loyalty-program-spending-method/index.js";import{LoyaltyProgramEarningMethod as n}from"./loyalty-program-earning-method/index.js";import{LoyaltyCustomerInfo as d}from"./loyalty-customer-info/index.js";var c=function(){function c(c,a,h,l,g,p,M,u){void 0===c&&(c={});var y=this;this.selectedScreen=c.selectedScreen||o.MAIN_SCREEN,M?(this.currentWidgetMode=s.WIDGET_MODE,M.changeWidgetMode=function(t){y.setWidgetMode(t)}):this.currentWidgetMode=c.currentWidgetMode||s.MINI_MODE,this.isMiniModeDescriptionClosed=c.isMiniModeDescriptionClosed||!1,this.isLoading=c.isLoading||!1,this.loyaltyWidget=c.loyaltyWidget instanceof i?c.loyaltyWidget:new i(c.loyaltyWidget),this.cdnURL=a,this.merchantId=h,this.storeUrl=p||c.storeUrl||"",this.currency=l,this.locale=g,this.cartId=c.cartId||null,this.user=c.user?new d(c.user):null,this.earningMethods=c.earningMethods?c.earningMethods.map(function(t){return new n(t)}):[],this.spendingMethods=c.spendingMethods?c.spendingMethods.map(function(t){return new r(t)}):[],this.tiers=c.tiers?c.tiers:[],this.categories=c.categories?c.categories:[],this.products=c.products?c.products:[],this.brands=c.brands?c.brands:[],this.tags=c.tags?c.tags:[],this.pointHistory=c.pointHistory?c.pointHistory:[],this.callbacks=u||void 0,t(this,{cartId:e,loyaltyWidget:e,isLoading:e,cdnURL:e,merchantId:e,storeUrl:e,currency:e,locale:e,selectedScreen:e,currentWidgetMode:e,isMiniModeDescriptionClosed:e,user:e,earningMethods:e,spendingMethods:e,tiers:e,categories:e,products:e,brands:e,tags:e,pointHistory:e})}return c.prototype.setWidgetMode=function(t){this.currentWidgetMode=t,t===s.WIDGET_MODE&&(this.isMiniModeDescriptionClosed=!0)},c.prototype.closeMiniModeDescription=function(){this.isMiniModeDescriptionClosed=!0},c}();export{c as LoyaltyWidgetViewModel};
|
|
@@ -10,6 +10,10 @@ export declare enum LoyaltyWidgetScreenTypeEnum {
|
|
|
10
10
|
CREDIT_HISTORY_SCREEN = "CREDIT_HISTORY_SCREEN",
|
|
11
11
|
LOYALTY_LEVEL_SCREEN = "LOYALTY_LEVEL_SCREEN"
|
|
12
12
|
}
|
|
13
|
+
export declare enum WidgetMode {
|
|
14
|
+
MINI_MODE = "MINI_MODE",
|
|
15
|
+
WIDGET_MODE = "WIDGET_MODE"
|
|
16
|
+
}
|
|
13
17
|
export declare enum EarningMethodTypeEnum {
|
|
14
18
|
BUY_PRODUCT = "BUY_PRODUCT",
|
|
15
19
|
CUSTOMER_REGISTER = "CUSTOMER_REGISTER",
|
|
@@ -95,7 +99,6 @@ export type LoyaltyWidgetCallbacks = {
|
|
|
95
99
|
useLoyaltyPoints: (input: AddLoyaltyToCartInput) => Promise<boolean>;
|
|
96
100
|
removeLoyaltyPointsFromCart: () => Promise<void>;
|
|
97
101
|
getLoyaltyWidget: () => Promise<LoyaltyWidget>;
|
|
98
|
-
onWidgetClose: () => void;
|
|
99
102
|
getProducts: (ids: string[]) => Promise<Product[]>;
|
|
100
103
|
getCategories: (ids: string[]) => Promise<Category[]>;
|
|
101
104
|
getBrands: (ids: string[]) => Promise<Brand[]>;
|
|
@@ -107,6 +110,10 @@ export type IkasLoyaltyWidgetConfig = {
|
|
|
107
110
|
merchantId: string;
|
|
108
111
|
currency: string;
|
|
109
112
|
locale: string;
|
|
113
|
+
storeURL?: string | null;
|
|
110
114
|
callbacks: LoyaltyWidgetCallbacks;
|
|
111
115
|
position?: "fixed" | "absolute";
|
|
116
|
+
previewModeProps?: {
|
|
117
|
+
changeWidgetMode: (mode: WidgetMode) => void;
|
|
118
|
+
};
|
|
112
119
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var E,R,T,_,N,C,
|
|
1
|
+
var E,R,T,_,N,C,D,I;!function(E){E.MAIN_SCREEN="MAIN_SCREEN",E.CREDIT_SPENDING_METHODS_SCREEN="CREDIT_SPENDING_METHODS_SCREEN",E.CREDIT_EARNING_METHODS_SCREEN="CREDIT_EARNING_METHODS_SCREEN",E.CREDIT_HISTORY_SCREEN="CREDIT_HISTORY_SCREEN",E.LOYALTY_LEVEL_SCREEN="LOYALTY_LEVEL_SCREEN"}(E||(E={})),function(E){E.MINI_MODE="MINI_MODE",E.WIDGET_MODE="WIDGET_MODE"}(R||(R={})),function(E){E.BUY_PRODUCT="BUY_PRODUCT",E.CUSTOMER_REGISTER="CUSTOMER_REGISTER",E.CUSTOMER_REVIEW="CUSTOMER_REVIEW",E.CUSTOMER_SEGMENT="CUSTOMER_SEGMENT",E.ENABLE_SUBSCRIPTION="ENABLE_SUBSCRIPTION",E.ORDER_CREATE="ORDER_CREATE"}(T||(T={})),function(E){E.DYNAMIC_ORDER_AMOUNT="DYNAMIC_ORDER_AMOUNT",E.DYNAMIC_ORDER_QUANTITY="DYNAMIC_ORDER_QUANTITY",E.STATIC="STATIC"}(_||(_={})),function(E){E.FIXED_AMOUNT="FIXED_AMOUNT",E.FREE_PRODUCT="FREE_PRODUCT",E.FREE_SHIPPING="FREE_SHIPPING",E.RATIO="RATIO"}(N||(N={})),function(E){E.CATEGORY="CATEGORY",E.DYNAMIC_CATEGORY="DYNAMIC_CATEGORY",E.PRODUCT_AND_VARIANT="PRODUCT_AND_VARIANT",E.PRODUCT_BRAND="PRODUCT_BRAND",E.PRODUCT_TAG="PRODUCT_TAG"}(C||(C={})),function(E){E.MONTH="MONTH",E.WEEK="WEEK",E.YEAR="YEAR"}(D||(D={})),function(E){E.EARN="EARN",E.SPEND="SPEND"}(I||(I={}));export{T as EarningMethodTypeEnum,C as LoyaltyProgramFilterTypeEnum,N as LoyaltyProgramMethodSpendingTypeEnum,_ as LoyaltyProgramPointEarningTypeEnum,I as LoyaltyProgramPointHistoryTypeEnum,E as LoyaltyWidgetScreenTypeEnum,D as PeriodTypeEnum,R as WidgetMode};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"react";import{observer as t}from"mobx-react";import{WidgetMode as o}from"../../../models/types/index.js";import{Container as r,Logo as i,Emoji as l}from"./style.js";var m=t(function(t){var m=t.viewModel,a=m.loyaltyWidget.miniModeLogo;return e.createElement(r,{onClick:function(){m.setWidgetMode(o.WIDGET_MODE)}},a&&a.src?e.createElement(i,{src:a.src,alt:"Loyalty Widget"}):e.createElement(l,null,"🚀"))});export{m as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
+
export declare const Logo: import("styled-components").StyledComponent<"img", any, {}, never>;
|
|
3
|
+
export declare const Emoji: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import t from"styled-components";var e,i,r,o=t.div(e||(e=n(["\n display: flex;\n width: 60px;\n height: 60px;\n padding: 14px;\n justify-content: center;\n align-items: center;\n border-radius: 60px;\n background: #000;\n box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08),\n 0 4px 6px -2px rgba(19, 19, 24, 0.03);\n cursor: pointer;\n transition: transform 0.2s ease-in-out;\n\n &:hover {\n transform: scale(1.05);\n }\n"],["\n display: flex;\n width: 60px;\n height: 60px;\n padding: 14px;\n justify-content: center;\n align-items: center;\n border-radius: 60px;\n background: #000;\n box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08),\n 0 4px 6px -2px rgba(19, 19, 24, 0.03);\n cursor: pointer;\n transition: transform 0.2s ease-in-out;\n\n &:hover {\n transform: scale(1.05);\n }\n"]))),s=t.img(i||(i=n(["\n width: 100%;\n height: 100%;\n object-fit: contain;\n"],["\n width: 100%;\n height: 100%;\n object-fit: contain;\n"]))),p=t.span(r||(r=n(["\n font-size: 32px;\n line-height: 1;\n"],["\n font-size: 32px;\n line-height: 1;\n"])));export{o as Container,p as Emoji,s as Logo};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"react";import{observer as o}from"mobx-react";import{WidgetMode as t}from"../../../models/types/index.js";import{XClose as i}from"../../../assets/icons/x-close.js";import{Container as r,CloseButton as n,Text as a}from"./style.js";var l=o(function(o){var l=o.viewModel;return l.isMiniModeDescriptionClosed?null:e.createElement(r,{onClick:function(){l.setWidgetMode(t.WIDGET_MODE)}},e.createElement(n,{onClick:function(e){e.stopPropagation(),l.closeMiniModeDescription()}},e.createElement(i,null)),e.createElement(a,null,"Merhaba! 👋 Sadakat programın ve destek ekibimiz burada. Puanlarına göz at veya ekibimizle konuş."))});export{l as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
+
export declare const CloseButton: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const Text: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import p from"styled-components";var r,o,a,x=p.div(r||(r=n(["\n display: flex;\n width: 432px;\n padding: 20px;\n flex-direction: column;\n align-items: flex-start;\n gap: 24px;\n border-radius: 16px;\n border: 1px solid var(--Gray-Black-200, #ECECED);\n background: var(--Basic-50, #FFF);\n box-shadow: 0 22px 6px 0 rgba(0, 0, 0, 0.00), 0 14px 6px 0 rgba(0, 0, 0, 0.01),\n 0 8px 5px 0 rgba(0, 0, 0, 0.05), 0 4px 4px 0 rgba(0, 0, 0, 0.09),\n 0 1px 2px 0 rgba(0, 0, 0, 0.10);\n color: #121926;\n position: relative;\n cursor: pointer;\n margin-bottom: 16px; /* 16px space between description and button */\n"],["\n display: flex;\n width: 432px;\n padding: 20px;\n flex-direction: column;\n align-items: flex-start;\n gap: 24px;\n border-radius: 16px;\n border: 1px solid var(--Gray-Black-200, #ECECED);\n background: var(--Basic-50, #FFF);\n box-shadow: 0 22px 6px 0 rgba(0, 0, 0, 0.00), 0 14px 6px 0 rgba(0, 0, 0, 0.01),\n 0 8px 5px 0 rgba(0, 0, 0, 0.05), 0 4px 4px 0 rgba(0, 0, 0, 0.09),\n 0 1px 2px 0 rgba(0, 0, 0, 0.10);\n color: #121926;\n position: relative;\n cursor: pointer;\n margin-bottom: 16px; /* 16px space between description and button */\n"]))),i=p.div(o||(o=n(["\n position: absolute;\n top: -12px;\n right: -12px;\n cursor: pointer;\n display: inline-flex;\n padding: 6px;\n align-items: center;\n gap: 10px;\n border-radius: 40px;\n background: var(--Gray-Black-100, #F6F6F6);\n box-shadow: 0 22px 6px 0 rgba(0, 0, 0, 0.00), 0 14px 6px 0 rgba(0, 0, 0, 0.01),\n 0 8px 5px 0 rgba(0, 0, 0, 0.05), 0 4px 4px 0 rgba(0, 0, 0, 0.09),\n 0 1px 2px 0 rgba(0, 0, 0, 0.10);\n color: #98A2B3;\n\n &:hover {\n color: #667085;\n }\n"],["\n position: absolute;\n top: -12px;\n right: -12px;\n cursor: pointer;\n display: inline-flex;\n padding: 6px;\n align-items: center;\n gap: 10px;\n border-radius: 40px;\n background: var(--Gray-Black-100, #F6F6F6);\n box-shadow: 0 22px 6px 0 rgba(0, 0, 0, 0.00), 0 14px 6px 0 rgba(0, 0, 0, 0.01),\n 0 8px 5px 0 rgba(0, 0, 0, 0.05), 0 4px 4px 0 rgba(0, 0, 0, 0.09),\n 0 1px 2px 0 rgba(0, 0, 0, 0.10);\n color: #98A2B3;\n\n &:hover {\n color: #667085;\n }\n"]))),e=p.div(a||(a=n(["\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n padding-right: 24px; /* Space for close button */\n"],["\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n padding-right: 24px; /* Space for close button */\n"])));export{i as CloseButton,x as Container,e as Text};
|
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 r,{useState as o,useRef as i,useEffect as s}from"react";import{observer as
|
|
1
|
+
import{__awaiter as e,__generator as t,__spreadArray as n}from'./../ext/tslib/tslib.es6.mjs.js';import r,{useState as o,useRef as i,useEffect as s}from"react";import{observer as c}from"mobx-react";import'./../ext/react-i18next/dist/es/context.js';import{I18nextProvider as l}from'./../ext/react-i18next/dist/es/I18nextProvider.js';import a from"./utils/i18n.js";import{LoyaltyWidgetScreenTypeEnum as d,WidgetMode as u,EarningMethodTypeEnum as m,LoyaltyProgramFilterTypeEnum as f,LoyaltyProgramMethodSpendingTypeEnum as p}from"../models/types/index.js";import{WidgetPositionEnum as y,LoyaltyWidgetLayoutTypeEnum as E}from"../models/loyalty-widget/types/index.js";import g from"./screens/main-screen/index.js";import h from"./screens/credit-spending-methods-screen/index.js";import v from"./screens/credit-earning-methods-screen/index.js";import R from"./screens/credit-history-screen/index.js";import C from"./screens/loyalty-level-screen/index.js";import I from"./components/mini-mode-button/index.js";import M from"./components/mini-mode-description/index.js";import{LoyaltyWidgetViewModel as w}from"../models/index.js";import{LoyaltyWidget as _}from"../models/loyalty-widget/index.js";import{LoyaltyProgramSpendingMethod as S}from"../models/loyalty-program-spending-method/index.js";import{LoyaltyCustomerInfo as b}from"../models/loyalty-customer-info/index.js";import{LoyaltyProgramEarningMethod as N}from"../models/loyalty-program-earning-method/index.js";import{LoyaltyProgramPointHistory as A}from"../models/loyalty-program-point-history/index.js";import{Container as T,MiniModeWrapper as k,Panel as P,ScreenWrapper as x}from"./style.js";var L=c(function(c){var L,j=c.config,D=o(function(){var e=j||window.ikasLoyaltyWidgetConfig;return new w({cartId:(null==e?void 0:e.cartId)||null},(null==e?void 0:e.cdnURL)||"",(null==e?void 0:e.merchantId)||"",(null==e?void 0:e.currency)||"",(null==e?void 0:e.locale)||"",(null==e?void 0:e.storeURL)||null,null==e?void 0:e.previewModeProps,null==e?void 0:e.callbacks)})[0],O=i(!0);s(function(){e(void 0,void 0,void 0,function(){var e,r,o,i,s,c,l,a,d,u,y,E,g,h;return t(this,function(t){switch(t.label){case 0:if(!D.callbacks)return[3,6];t.label=1;case 1:return t.trys.push([1,4,5,6]),e=[D.callbacks.getLoyaltyWidget(),D.callbacks.listEarningMethods(),D.callbacks.listLoyaltyProgramTier({})],D.cartId&&(e.push(D.callbacks.listSpendingMethodsByCartId(D.cartId)),e.push(D.callbacks.getLoyaltyCustomerInfo()),e.push(D.callbacks.listLoyaltyProgramPointHistory({}))),[4,Promise.all(e)];case 2:return r=t.sent(),o=r[0],i=r[1],s=r[2],c=[],l=null,a=[],D.cartId&&(c=r[3],l=r[4],a=r[5]),D.loyaltyWidget=o instanceof _?o:new _(o||{}),D.earningMethods=i.map(function(e){return new N(e)}),D.tiers=s||[],D.cartId&&(D.spendingMethods=c.map(function(e){return new S(e)}),D.user=l?new b(l):null,D.pointHistory=a?a.map(function(e){return new A(e)}):[]),d=new Set,u=new Set,y=new Set,E=new Set,D.earningMethods.forEach(function(e){var t,r;e.methodType===m.ORDER_CREATE&&n(n([],(null===(t=e.orderSettings)||void 0===t?void 0:t.productFilters)||[],!0),(null===(r=e.productSettings)||void 0===r?void 0:r.productFilters)||[],!0).forEach(function(e){e.type===f.PRODUCT_AND_VARIANT?e.idList.forEach(function(e){return d.add(e)}):e.type===f.CATEGORY?e.idList.forEach(function(e){return u.add(e)}):e.type===f.PRODUCT_BRAND?e.idList.forEach(function(e){return y.add(e)}):e.type===f.PRODUCT_TAG&&e.idList.forEach(function(e){return E.add(e)})})}),D.spendingMethods&&D.spendingMethods.forEach(function(e){var t,n;e.type===p.FREE_PRODUCT&&(null===(t=e.discountSettings)||void 0===t?void 0:t.freeProductId)&&d.add(e.discountSettings.freeProductId),null===(n=e.productFilters)||void 0===n||n.forEach(function(e){e.type===f.PRODUCT_AND_VARIANT?e.idList.forEach(function(e){return d.add(e)}):e.type===f.CATEGORY?e.idList.forEach(function(e){return u.add(e)}):e.type===f.PRODUCT_BRAND?e.idList.forEach(function(e){return y.add(e)}):e.type===f.PRODUCT_TAG&&e.idList.forEach(function(e){return E.add(e)})})}),g=[],d.size>0&&D.callbacks.getProducts&&g.push(D.callbacks.getProducts(Array.from(d)).then(function(e){return D.products=e})),u.size>0&&D.callbacks.getCategories&&g.push(D.callbacks.getCategories(Array.from(u)).then(function(e){return D.categories=e})),y.size>0&&D.callbacks.getBrands&&g.push(D.callbacks.getBrands(Array.from(y)).then(function(e){return D.brands=e})),E.size>0&&D.callbacks.getTags&&g.push(D.callbacks.getTags(Array.from(E)).then(function(e){return D.tags=e})),[4,Promise.all(g)];case 3:return t.sent(),[3,6];case 4:return h=t.sent(),console.error("Failed to initialize loyalty data",h),[3,6];case 5:return O.current=!1,[7];case 6:return[2]}})})},[]),s(function(){if(!O.current){e(void 0,void 0,void 0,function(){var e,n,r,o,i;return t(this,function(t){switch(t.label){case 0:if(!D.callbacks)return[3,4];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,Promise.all([D.callbacks.listSpendingMethodsByCartId(D.cartId),D.callbacks.getLoyaltyCustomerInfo(),D.callbacks.listLoyaltyProgramPointHistory({})])];case 2:return e=t.sent(),n=e[0],r=e[1],o=e[2],D.spendingMethods=n.map(function(e){return new S(e)}),D.user=r?new b(r):null,D.pointHistory=o?o.map(function(e){return new A(e)}):[],[3,4];case 3:return i=t.sent(),console.error("Failed to fetch cart dependent data",i),[3,4];case 4:return[2]}})})}},[D.cartId]);var B=function(e){D.selectedScreen=e},W=function(){D.setWidgetMode(u.MINI_MODE)},U=D.selectedScreen===d.MAIN_SCREEN,$=o(null),H=$[0],G=$[1];s(function(){D.selectedScreen!==d.MAIN_SCREEN&&G(D.selectedScreen)},[D.selectedScreen]);var F=U?H:D.selectedScreen,z=D.loyaltyWidget.settings.position||y.RIGHT,Y=D.loyaltyWidget.settings.type||E.DRAWER;return r.createElement(l,{i18n:a},r.createElement(T,{$layoutType:Y,$widgetPosition:z,$widgetMode:D.currentWidgetMode,$position:(null==j?void 0:j.position)||(null===(L=window.ikasLoyaltyWidgetConfig)||void 0===L?void 0:L.position)||"fixed"},D.currentWidgetMode===u.MINI_MODE?r.createElement(k,null,r.createElement(M,{viewModel:D}),r.createElement(I,{viewModel:D})):r.createElement(P,{$layoutType:Y},r.createElement(x,{$isActive:U,$isMain:!0},r.createElement(g,{viewModel:D,onClose:W,onNavigate:B})),r.createElement(x,{$isActive:!U,$isMain:!1},function(){switch(F){case d.CREDIT_SPENDING_METHODS_SCREEN:return r.createElement(h,{viewModel:D,onBack:function(){return B(d.MAIN_SCREEN)},onClose:W});case d.CREDIT_EARNING_METHODS_SCREEN:return r.createElement(v,{viewModel:D,onBack:function(){return B(d.MAIN_SCREEN)},onClose:W});case d.CREDIT_HISTORY_SCREEN:return r.createElement(R,{viewModel:D,onBack:function(){return B(d.MAIN_SCREEN)},onClose:W});case d.LOYALTY_LEVEL_SCREEN:return r.createElement(C,{viewModel:D,onBack:function(){return B(d.MAIN_SCREEN)},onClose:W});default:return null}}()))))});export{L as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";import{observer as t}from"mobx-react";import'./../../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as
|
|
1
|
+
import e from"react";import{observer as t}from"mobx-react";import'./../../../../../ext/react-i18next/dist/es/context.js';import{useTranslation as o}from'./../../../../../ext/react-i18next/dist/es/useTranslation.js';import{WidgetMode as n}from"../../../../../models/types/index.js";import{Container as r,TitleSection as i,RegisterText as l,RegisterDescription as c,Actions as a,HaveAccount as m,Link as d}from"./style.js";import s from"../../../../components/button/index.js";var u=t(function(t){var u=o().t,f=t.viewModel,p=f.loyaltyWidget,M=f.storeUrl,g=p.button;return e.createElement(r,null,e.createElement(i,null,e.createElement(l,null,u("header.register_title")),e.createElement(c,null,u("header.registerDescription"))),e.createElement(a,null,e.createElement(s,{button:g,fontSize:"textMDMedium",paddingSize:"medium",onClick:function(){M&&(t.viewModel.setWidgetMode(n.MINI_MODE),window.location.href="".concat(M,"/account/register"))}},u("header.registerButton")),e.createElement(m,null,u("header.haveAccount")," ",e.createElement(d,{onClick:function(){M&&(t.viewModel.setWidgetMode(n.MINI_MODE),window.location.href="".concat(M,"/account/login"))}},u("common.login")))))});export{u as default};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { LoyaltyWidgetLayoutTypeEnum, WidgetPositionEnum } from "models/loyalty-widget/types";
|
|
2
|
+
import { WidgetMode } from "models/types";
|
|
2
3
|
export declare const Container: import("styled-components").StyledComponent<"div", any, {
|
|
3
4
|
$position?: "fixed" | "absolute";
|
|
4
5
|
$layoutType: LoyaltyWidgetLayoutTypeEnum;
|
|
5
6
|
$widgetPosition: WidgetPositionEnum;
|
|
7
|
+
$widgetMode: WidgetMode;
|
|
6
8
|
}, never>;
|
|
7
9
|
export declare const Panel: import("styled-components").StyledComponent<"div", any, {
|
|
8
10
|
$layoutType: LoyaltyWidgetLayoutTypeEnum;
|
|
@@ -11,3 +13,4 @@ export declare const ScreenWrapper: import("styled-components").StyledComponent<
|
|
|
11
13
|
$isActive: boolean;
|
|
12
14
|
$isMain: boolean;
|
|
13
15
|
}, never>;
|
|
16
|
+
export declare const MiniModeWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
package/build/renderer/style.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__makeTemplateObject as n}from'./../ext/tslib/tslib.es6.mjs.js';import t,{css as i}from"styled-components";import{WidgetPositionEnum as
|
|
1
|
+
import{__makeTemplateObject as n}from'./../ext/tslib/tslib.es6.mjs.js';import t,{css as i}from"styled-components";import{WidgetPositionEnum as e,LoyaltyWidgetLayoutTypeEnum as o}from"../models/loyalty-widget/types/index.js";import{WidgetMode as a}from"../models/types/index.js";var r,s,d,l,p,x,f,c,m=t.div(r||(r=n(["\n position: ",";\n position: ",";\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n width: 100%;\n height: ",";\n max-height: ",";\n overflow: auto;\n background-color: ",";\n transition: background-color 0.3s ease-in-out;\n z-index: 9999;\n pointer-events: ",";\n\n /* Ensure children are clickable in Mini Mode */\n & > * {\n pointer-events: auto;\n }\n\n display: flex;\n justify-content: ",";\n justify-content: ",";\n align-items: ",";\n padding: ",";\n box-sizing: border-box;\n\n @media (max-width: 600px) {\n padding: ",";\n }\n"],["\n position: ",";\n position: ",";\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n width: 100%;\n height: ",";\n max-height: ",";\n overflow: auto;\n background-color: ",";\n transition: background-color 0.3s ease-in-out;\n z-index: 9999;\n pointer-events: ",";\n\n /* Ensure children are clickable in Mini Mode */\n & > * {\n pointer-events: auto;\n }\n\n display: flex;\n justify-content: ",";\n justify-content: ",";\n align-items: ",";\n padding: ",";\n box-sizing: border-box;\n\n @media (max-width: 600px) {\n padding: ",";\n }\n"])),function(n){return n.$position||"fixed"},function(n){return n.$position||"fixed"},function(n){return"absolute"===n.$position?"100%":"100vh"},function(n){return"absolute"===n.$position?"100%":"100vh"},function(n){return n.$widgetMode===a.MINI_MODE?"transparent":"rgba(0, 0, 0, 0.5)"},function(n){return n.$widgetMode===a.MINI_MODE?"none":"auto"},function(n){return n.$widgetPosition===e.LEFT?"flex-start":"flex-end"},function(n){return n.$widgetPosition===e.LEFT?"flex-start":"flex-end"},function(n){var t=n.$layoutType;return n.$widgetMode===a.MINI_MODE?"flex-end":t===o.DRAWER?"stretch":"flex-start"},function(n){var t=n.$layoutType;return n.$widgetMode===a.MINI_MODE?"20px":t===o.DRAWER?"0":"40px 16px"},function(n){var t=n.$layoutType;return n.$widgetMode===a.MINI_MODE?"16px":t===o.DRAWER?"0":"24px"}),u=t.div(l||(l=n(["\n position: relative;\n display: block;\n width: 100%;\n max-width: 380px;\n height: 100%;\n background-color: #ffffff;\n overflow: hidden;\n align-self: ",";\n \n animation: slideInPanel 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n\n @keyframes slideInPanel {\n from {\n opacity: 0;\n transform: translateY(20px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n ","\n\n @media (max-width: 380px) {\n max-width: 100%;\n }\n"],["\n position: relative;\n display: block;\n width: 100%;\n max-width: 380px;\n height: 100%;\n background-color: #ffffff;\n overflow: hidden;\n align-self: ",";\n \n animation: slideInPanel 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n\n @keyframes slideInPanel {\n from {\n opacity: 0;\n transform: translateY(20px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n ","\n\n @media (max-width: 380px) {\n max-width: 100%;\n }\n"])),function(n){return n.$layoutType===o.DRAWER?"stretch":"flex-start"},function(t){return t.$layoutType===o.DRAWER?i(s||(s=n(["\n border-radius: 0;\n box-shadow: -2px 0 8px rgba(36, 30, 30, 0.15);\n "],["\n border-radius: 0;\n box-shadow: -2px 0 8px rgba(36, 30, 30, 0.15);\n "]))):i(d||(d=n(["\n border-radius: 12px;\n box-shadow: 0 136px 38px 0 rgba(0, 0, 0, 0),\n 0 87px 35px 0 rgba(0, 0, 0, 0.01),\n 0 49px 29px 0 rgba(0, 0, 0, 0.02),\n 0 22px 22px 0 rgba(0, 0, 0, 0.04),\n 0 5px 12px 0 rgba(0, 0, 0, 0.04);\n max-height: min(850px, calc(100vh - 80px));\n\n @media (max-width: 600px) {\n max-height: min(850px, calc(100vh - 48px));\n }\n "],["\n border-radius: 12px;\n box-shadow: 0 136px 38px 0 rgba(0, 0, 0, 0),\n 0 87px 35px 0 rgba(0, 0, 0, 0.01),\n 0 49px 29px 0 rgba(0, 0, 0, 0.02),\n 0 22px 22px 0 rgba(0, 0, 0, 0.04),\n 0 5px 12px 0 rgba(0, 0, 0, 0.04);\n max-height: min(850px, calc(100vh - 80px));\n\n @media (max-width: 600px) {\n max-height: min(850px, calc(100vh - 48px));\n }\n "])))}),h=t.div(f||(f=n(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #ffffff;\n transition: transform 0.3s ease-in-out;\n overflow-y: auto;\n\n ","\n"],["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #ffffff;\n transition: transform 0.3s ease-in-out;\n overflow-y: auto;\n\n ","\n"])),function(t){var e=t.$isActive;return t.$isMain?i(p||(p=n(["\n transform: translateX(",");\n z-index: 1;\n "],["\n transform: translateX(",");\n z-index: 1;\n "])),e?"0%":"-100%"):i(x||(x=n(["\n transform: translateX(",");\n z-index: 2;\n "],["\n transform: translateX(",");\n z-index: 2;\n "])),e?"0%":"100%")}),g=t.div(c||(c=n(["\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n animation: slideIn 0.3s ease-out;\n\n @keyframes slideIn {\n from {\n transform: translateY(20px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n"],["\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n animation: slideIn 0.3s ease-out;\n\n @keyframes slideIn {\n from {\n transform: translateY(20px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n"])));export{m as Container,g as MiniModeWrapper,u as Panel,h as ScreenWrapper};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ikas/loyalty-widget-renderer",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.30",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "ucy",
|
|
6
6
|
"license": "ISC",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"release": "npm publish",
|
|
25
25
|
"build": "rm -rf build && rollup -c",
|
|
26
26
|
"watch": "rollup -c -w",
|
|
27
|
-
"dev": "parcel app/index.html --port 3000"
|
|
27
|
+
"dev": "parcel app/index.html --port 3000",
|
|
28
|
+
"serve": "npm run build && npx serve build -p 3000 --cors"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
30
31
|
"@rollup/plugin-commonjs": "^22.0.0",
|