@ikas/loyalty-widget-renderer 1.0.0-alpha.66 → 1.0.0-alpha.67
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/loyalty-widget/index.d.ts +2 -0
- package/build/models/loyalty-widget/index.js +1 -1
- package/build/models/loyalty-widget/translations.d.ts +12 -0
- package/build/models/loyalty-widget/translations.js +1 -0
- package/build/renderer/components/mini-mode-description/index.js +1 -1
- package/build/renderer/components/translation-settings/style.d.ts +9 -0
- package/build/renderer/index.js +1 -1
- package/build/renderer/utils/i18n.d.ts +617 -0
- package/build/renderer/utils/i18n.js +1 -1
- package/build/renderer/utils/locales/de.json.js +1 -0
- package/build/renderer/utils/locales/en.json.js +1 -1
- package/build/renderer/utils/locales/fr.json.js +1 -0
- package/build/renderer/utils/locales/nl.json.js +1 -0
- package/build/renderer/utils/locales/tr.json.js +1 -1
- package/build/renderer/utils/object-utils.d.ts +2 -0
- package/build/renderer/utils/object-utils.js +1 -0
- package/build/storefront-widget-script-injector.iife.js +6 -6
- package/build/storefront-widget-script-injector.iife.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,11 +2,13 @@ import { MiniMode } from "models/mini-mode";
|
|
|
2
2
|
import { LoyaltyWidgetButton } from "../button";
|
|
3
3
|
import { LoyaltyWidgetHeader } from "./header";
|
|
4
4
|
import { LoyaltyWidgetSettings } from "./settings";
|
|
5
|
+
import { LoyaltyWidgetTranslations } from "./translations";
|
|
5
6
|
export declare class LoyaltyWidget {
|
|
6
7
|
id: string;
|
|
7
8
|
settings: LoyaltyWidgetSettings;
|
|
8
9
|
header: LoyaltyWidgetHeader;
|
|
9
10
|
button: LoyaltyWidgetButton;
|
|
10
11
|
miniMode: MiniMode;
|
|
12
|
+
translations: LoyaltyWidgetTranslations;
|
|
11
13
|
constructor(data?: Partial<LoyaltyWidget>);
|
|
12
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{makeObservable as
|
|
1
|
+
import{makeObservable as i,observable as t}from"mobx";import'./../../ext/uuid/dist/esm-browser/stringify.js';import'./../../ext/uuid/dist/esm-browser/v3.js';import s from'./../../ext/uuid/dist/esm-browser/v4.js';import'./../../ext/uuid/dist/esm-browser/v5.js';import{MiniMode as e}from"../mini-mode/index.js";import{LoyaltyWidgetButton as o}from"../button/index.js";import{LoyaltyWidgetHeader as n}from"./header/index.js";import{LoyaltyWidgetSettings as r}from"./settings/index.js";import{LoyaltyWidgetTranslations as d}from"./translations.js";var m=function(m){void 0===m&&(m={}),this.id=m.id||s(),this.header=m.header?new n(m.header):new n({}),this.settings=m.settings?new r(m.settings):new r({}),this.miniMode=m.miniMode?new e(m.miniMode):new e({}),this.button=m.button?new o(m.button):new o({}),this.translations=m.translations?new d(m.translations):new d({}),i(this,{id:t,miniMode:t,button:t,header:t,settings:t,translations:t})};export{m as LoyaltyWidget};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare enum LoyaltyLocal {
|
|
2
|
+
TR = "tr",
|
|
3
|
+
EN = "en",
|
|
4
|
+
DE = "de",
|
|
5
|
+
NL = "nl",
|
|
6
|
+
FR = "fr"
|
|
7
|
+
}
|
|
8
|
+
export declare class LoyaltyWidgetTranslations {
|
|
9
|
+
language: LoyaltyLocal;
|
|
10
|
+
custom: Record<string, string>;
|
|
11
|
+
constructor(data?: Partial<LoyaltyWidgetTranslations>);
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{makeObservable as t,observable as o}from"mobx";var n;!function(t){t.TR="tr",t.EN="en",t.DE="de",t.NL="nl",t.FR="fr"}(n||(n={}));var a=function(a){void 0===a&&(a={}),this.language=a.language||n.TR,this.custom=a.custom||{},t(this,{language:o,custom:o})};export{n as LoyaltyLocal,a as LoyaltyWidgetTranslations};
|
|
@@ -1 +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
|
|
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'./../../../ext/react-i18next/dist/es/context.js';import{useTranslation as n}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import{Container as r,CloseButton as s,Text as l}from"./style.js";var m=o(function(o){var m=o.viewModel,c=n().t;return m.isMiniModeDescriptionClosed?null:e.createElement(r,{onClick:function(e){e.stopPropagation(),m.setWidgetMode(t.WIDGET_MODE)}},e.createElement(s,{onClick:function(e){e.stopPropagation(),m.closeMiniModeDescription()}},e.createElement(i,null)),e.createElement(l,null,c("miniMode.description")))});export{m as default};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
+
export declare const Header: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const HeaderCol: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
|
+
export declare const List: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
5
|
+
export declare const Row: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
6
|
+
export declare const OriginalText: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
7
|
+
export declare const ArrowConnection: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
+
export declare const InputWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
|
+
export declare const Input: import("styled-components").StyledComponent<"input", any, {}, never>;
|
package/build/renderer/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e,__generator as t,__spreadArray as
|
|
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 m}from"../models/loyalty-program-spending-method/index.js";import{LoyaltyWidget as v}from"../models/loyalty-widget/index.js";import{WidgetPositionEnum as g,LoyaltyWidgetLayoutTypeEnum as E}from"../models/loyalty-widget/types/index.js";import{WidgetMode as y,LoyaltyWidgetScreenTypeEnum as p,EarningMethodTypeEnum as h,LoyaltyProgramFilterTypeEnum as R,LoyaltyProgramMethodSpendingTypeEnum as T}from"../models/types/index.js";import I from"./components/mini-mode-button/index.js";import b from"./components/mini-mode-description/index.js";import w from"./screens/credit-earning-methods-screen/index.js";import M from"./screens/credit-history-screen/index.js";import k from"./screens/credit-spending-methods-screen/index.js";import _ from"./screens/loyalty-level-screen/index.js";import C from"./screens/main-screen/index.js";import{unflatten as S}from"./utils/object-utils.js";import N from"./utils/i18n.js";import{Container as A,MiniModeWrapper as O,Panel as D,ScreenWrapper as L}from"./style.js";var P=i(function(i){var P,j,x=i.config,U=s(function(){var e=x||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.locale)||"",(null==e?void 0:e.storeURL)||null,null==e?void 0:e.isPreviewMode,null==e?void 0:e.callbacks)})[0],W=s(!1),$=W[0],G=W[1],B=U.loyaltyWidget.translations,V=JSON.stringify(r(null==B?void 0:B.custom));a(function(){var e=null==B?void 0:B.language,t=(null==B?void 0:B.custom)?r(B.custom):{};if(e){var n=["tr","en","de","nl","fr"].includes(e)?e:"en";if(N.language!==n&&N.changeLanguage(n),Object.keys(t).length>0){var i=S(t);N.addResourceBundle(n,"translation",i,!0,!0)}}},[null==B?void 0:B.language,V]),a(function(){var e=x||window.ikasLoyaltyWidgetConfig;(null==e?void 0:e.onViewModelInitialized)&&e.onViewModelInitialized(U)},[U,x]);var F=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 U.callbacks?(e=new Set,r=new Set,i=new Set,o=new Set,U.earningMethods.forEach(function(t){var s,a;t.methodType===h.ORDER_CREATE&&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===R.PRODUCT_AND_VARIANT?t.idList.forEach(function(t){return e.add(t)}):t.type===R.CATEGORY?t.idList.forEach(function(e){return r.add(e)}):t.type===R.PRODUCT_BRAND?t.idList.forEach(function(e){return i.add(e)}):t.type===R.PRODUCT_TAG&&t.idList.forEach(function(e){return o.add(e)})})}),U.spendingMethods&&U.spendingMethods.forEach(function(t){var n,s;t.type===T.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===R.PRODUCT_AND_VARIANT?t.idList.forEach(function(t){return e.add(t)}):t.type===R.CATEGORY?t.idList.forEach(function(e){return r.add(e)}):t.type===R.PRODUCT_BRAND?t.idList.forEach(function(e){return i.add(e)}):t.type===R.PRODUCT_TAG&&t.idList.forEach(function(e){return o.add(e)})})}),s=[],e.size>0&&U.callbacks.getProducts&&s.push(U.callbacks.getProducts(Array.from(e)).then(function(e){return U.products=e})),r.size>0&&U.callbacks.getCategories&&s.push(U.callbacks.getCategories(Array.from(r)).then(function(e){return U.categories=e})),i.size>0&&U.callbacks.getBrands&&s.push(U.callbacks.getBrands(Array.from(i)).then(function(e){return U.brands=e})),o.size>0&&U.callbacks.getTags&&s.push(U.callbacks.getTags(Array.from(o)).then(function(e){return U.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(!U.callbacks)return[3,6];t.label=1;case 1:return t.trys.push([1,4,5,6]),e=[U.callbacks.getLoyaltyWidget(),U.callbacks.listEarningMethods(),U.callbacks.listLoyaltyProgramTier({})],[4,Promise.all(e)];case 2:return n=t.sent(),r=n[0],i=n[1],o=n[2],U.loyaltyWidget=r instanceof v?r:new v(r||{}),U.earningMethods=i.map(function(e){return new u(e)}),U.tiers=o||[],[4,F()];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 G(!0),[7];case 6:return[2]}})})},[]),a(function(){if(window.IkasEvents){var e=function(e){var t,n=null===(t=e.data)||void 0===t?void 0:t.customer;n&&(U.ikasEventUser=n),U.userRefreshTrigger++,U.cartRefreshTrigger++},t=function(e){var t,n,r,i,o,s=U.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)?U.cartId=null:U.cartId=a,s!==U.cartId&&U.cartRefreshTrigger++},n={CUSTOMER_LOGIN:e,CUSTOMER_VISIT:e,CUSTOMER_LOGOUT:function(){U.userRefreshTrigger++,U.cartRefreshTrigger++},ADD_TO_CART:t,REMOVE_FROM_CART:t,REMOVE_LOYALTY_POINTS:function(e){U.cartRefreshTrigger++,U.userRefreshTrigger++},PAGE_VIEW:function(e){var t,n,r=null===(t=e.data)||void 0===t?void 0:t.customer;if(r){var i=!U.ikasEventUser,o=(null===(n=U.ikasEventUser)||void 0===n?void 0:n.subscriptionStatus)!==r.subscriptionStatus;(i||o)&&(U.ikasEventUser=r,U.userRefreshTrigger++,U.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)}}},[U]),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(!U.callbacks||!(null===(o=U.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([U.callbacks.getLoyaltyCustomerInfo(),U.callbacks.listLoyaltyProgramPointHistory({})])];case 2:return e=t.sent(),n=e[0],r=e[1],U.user=n?new d(n):null,n||(U.ikasEventUser=null),U.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[2]}})})},[null===(P=U.ikasEventUser)||void 0===P?void 0:P.id,U.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(!U.callbacks)return[3,5];t.label=1;case 1:return t.trys.push([1,4,,5]),[4,U.callbacks.listSpendingMethodsByCartId(U.cartId)];case 2:return e=t.sent(),U.spendingMethods=e.map(function(e){return new m(e)}),[4,F()];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[2]}})})},[U.cartId,U.cartRefreshTrigger]);var z=function(e){U.selectedScreen=e},Y=function(){U.setWidgetMode(y.MINI_MODE),setTimeout(function(){U.selectedScreen=p.MAIN_SCREEN},300)};a(function(){return U.currentWidgetMode===y.WIDGET_MODE?document.body.style.overflow="hidden":document.body.style.overflow="",function(){document.body.style.overflow=""}},[U.currentWidgetMode]);var H=U.selectedScreen===p.MAIN_SCREEN,J=s(null),q=J[0],K=J[1];a(function(){U.selectedScreen!==p.MAIN_SCREEN&&K(U.selectedScreen)},[U.selectedScreen]);var Q=H?q:U.selectedScreen,X=U.loyaltyWidget.settings.position||g.RIGHT,Z=U.loyaltyWidget.settings.type||E.DRAWER;if(!$)return null;var ee=(null==x?void 0:x.position)||(null===(j=window.ikasLoyaltyWidgetConfig)||void 0===j?void 0:j.position)||"fixed";return o.createElement(l,{i18n:N},o.createElement(A,{$layoutType:Z,$widgetPosition:X,$widgetMode:U.currentWidgetMode,$position:ee,onClick:function(){U.currentWidgetMode===y.WIDGET_MODE&&Y()},className:"ikas-storefront-widget"},o.createElement(O,{$isVisible:U.currentWidgetMode===y.MINI_MODE,$widgetPosition:X},o.createElement(b,{viewModel:U}),o.createElement(I,{viewModel:U})),o.createElement(D,{$layoutType:Z,$isOpen:U.currentWidgetMode===y.WIDGET_MODE,$widgetPosition:X,onClick:function(e){return e.stopPropagation()}},o.createElement(L,{$isActive:H,$isMain:!0,$layoutType:Z},o.createElement(C,{viewModel:U,onClose:Y,onNavigate:z})),o.createElement(L,{$isActive:!H,$isMain:!1,$layoutType:Z},function(){switch(Q){case p.CREDIT_SPENDING_METHODS_SCREEN:return o.createElement(k,{viewModel:U,onBack:function(){return z(p.MAIN_SCREEN)},onClose:Y});case p.CREDIT_EARNING_METHODS_SCREEN:return o.createElement(w,{viewModel:U,onBack:function(){return z(p.MAIN_SCREEN)},onClose:Y});case p.CREDIT_HISTORY_SCREEN:return o.createElement(M,{viewModel:U,onBack:function(){return z(p.MAIN_SCREEN)},onClose:Y});case p.LOYALTY_LEVEL_SCREEN:return o.createElement(_,{viewModel:U,onBack:function(){return z(p.MAIN_SCREEN)},onClose:Y});default:return null}}()))))});export{P as default};
|