@ikas/loyalty-widget-renderer 1.0.0-alpha.1

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.
Files changed (213) hide show
  1. package/build/_virtual/index.js +1 -0
  2. package/build/_virtual/index2.js +1 -0
  3. package/build/_virtual/index3.js +1 -0
  4. package/build/_virtual/react-is.development.js +1 -0
  5. package/build/_virtual/react-is.development2.js +1 -0
  6. package/build/_virtual/react-is.production.js +1 -0
  7. package/build/_virtual/react-is.production.min.js +1 -0
  8. package/build/_virtual/use-sync-external-store-shim.development.js +1 -0
  9. package/build/_virtual/use-sync-external-store-shim.production.js +1 -0
  10. package/build/assets/badgeLevel1.d.ts +2 -0
  11. package/build/assets/badgeLevel1.js +1 -0
  12. package/build/assets/badgeLevel2.d.ts +2 -0
  13. package/build/assets/badgeLevel2.js +1 -0
  14. package/build/assets/badgeLevel3.d.ts +2 -0
  15. package/build/assets/badgeLevel3.js +1 -0
  16. package/build/assets/badgeLevel4.d.ts +2 -0
  17. package/build/assets/badgeLevel4.js +1 -0
  18. package/build/assets/icons/check-circle-fill.d.ts +2 -0
  19. package/build/assets/icons/check-circle-fill.js +1 -0
  20. package/build/assets/icons/check.d.ts +2 -0
  21. package/build/assets/icons/check.js +1 -0
  22. package/build/assets/icons/chevron-left.d.ts +2 -0
  23. package/build/assets/icons/chevron-left.js +1 -0
  24. package/build/assets/icons/x-close.d.ts +2 -0
  25. package/build/assets/icons/x-close.js +1 -0
  26. package/build/assets/index.d.ts +27 -0
  27. package/build/assets/widget-icons/illustraions/approvedChatIllustration.d.ts +2 -0
  28. package/build/assets/widget-icons/illustraions/approvedChatIllustration.js +1 -0
  29. package/build/assets/widget-icons/illustraions/bankCoin.d.ts +2 -0
  30. package/build/assets/widget-icons/illustraions/bankCoin.js +1 -0
  31. package/build/assets/widget-icons/illustraions/bigSaleMedal.d.ts +2 -0
  32. package/build/assets/widget-icons/illustraions/bigSaleMedal.js +1 -0
  33. package/build/assets/widget-icons/illustraions/bubbleChatIllustration.d.ts +2 -0
  34. package/build/assets/widget-icons/illustraions/bubbleChatIllustration.js +1 -0
  35. package/build/assets/widget-icons/illustraions/giftIllustration.d.ts +2 -0
  36. package/build/assets/widget-icons/illustraions/giftIllustration.js +1 -0
  37. package/build/assets/widget-icons/illustraions/medal.d.ts +2 -0
  38. package/build/assets/widget-icons/illustraions/medal.js +1 -0
  39. package/build/assets/widget-icons/illustraions/shippingBox.d.ts +2 -0
  40. package/build/assets/widget-icons/illustraions/shippingBox.js +1 -0
  41. package/build/assets/widget-icons/illustraions/shoppingCartIllustration.d.ts +2 -0
  42. package/build/assets/widget-icons/illustraions/shoppingCartIllustration.js +1 -0
  43. package/build/assets/widget-icons/illustraions/tshirtIllustration.d.ts +2 -0
  44. package/build/assets/widget-icons/illustraions/tshirtIllustration.js +1 -0
  45. package/build/assets/widget-icons/illustraions/usersIllustration.d.ts +2 -0
  46. package/build/assets/widget-icons/illustraions/usersIllustration.js +1 -0
  47. package/build/assets/widget-icons/normal/bubbleChatDone.d.ts +2 -0
  48. package/build/assets/widget-icons/normal/bubbleChatDone.js +1 -0
  49. package/build/assets/widget-icons/normal/commentAdd01.d.ts +2 -0
  50. package/build/assets/widget-icons/normal/commentAdd01.js +1 -0
  51. package/build/assets/widget-icons/normal/couponPercent.d.ts +2 -0
  52. package/build/assets/widget-icons/normal/couponPercent.js +1 -0
  53. package/build/assets/widget-icons/normal/discountTag02.d.ts +2 -0
  54. package/build/assets/widget-icons/normal/discountTag02.js +1 -0
  55. package/build/assets/widget-icons/normal/gift.d.ts +2 -0
  56. package/build/assets/widget-icons/normal/gift.js +1 -0
  57. package/build/assets/widget-icons/normal/moneyAdd01.d.ts +2 -0
  58. package/build/assets/widget-icons/normal/moneyAdd01.js +1 -0
  59. package/build/assets/widget-icons/normal/packageDelivered.d.ts +2 -0
  60. package/build/assets/widget-icons/normal/packageDelivered.js +1 -0
  61. package/build/assets/widget-icons/normal/saveMoneyDollar.d.ts +2 -0
  62. package/build/assets/widget-icons/normal/saveMoneyDollar.js +1 -0
  63. package/build/assets/widget-icons/normal/shoppingBasketAdd02.d.ts +2 -0
  64. package/build/assets/widget-icons/normal/shoppingBasketAdd02.js +1 -0
  65. package/build/assets/widget-icons/normal/userAdd01.d.ts +2 -0
  66. package/build/assets/widget-icons/normal/userAdd01.js +1 -0
  67. package/build/ext/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js +1 -0
  68. package/build/ext/@emotion/memoize/dist/memoize.browser.esm.js +1 -0
  69. package/build/ext/@emotion/stylis/dist/stylis.browser.esm.js +1 -0
  70. package/build/ext/@emotion/unitless/dist/unitless.browser.esm.js +1 -0
  71. package/build/ext/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +1 -0
  72. package/build/ext/hoist-non-react-statics/ext/react-is/cjs/react-is.development.js +9 -0
  73. package/build/ext/hoist-non-react-statics/ext/react-is/cjs/react-is.production.min.js +9 -0
  74. package/build/ext/hoist-non-react-statics/ext/react-is/index.js +1 -0
  75. package/build/ext/i18next/dist/esm/i18next.js +1 -0
  76. package/build/ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js +1 -0
  77. package/build/ext/react-i18next/dist/es/context.js +1 -0
  78. package/build/ext/react-i18next/dist/es/defaults.js +1 -0
  79. package/build/ext/react-i18next/dist/es/i18nInstance.js +1 -0
  80. package/build/ext/react-i18next/dist/es/initReactI18next.js +1 -0
  81. package/build/ext/react-i18next/dist/es/unescape.js +1 -0
  82. package/build/ext/react-i18next/dist/es/useTranslation.js +1 -0
  83. package/build/ext/react-i18next/dist/es/utils.js +1 -0
  84. package/build/ext/react-is/cjs/react-is.development.js +10 -0
  85. package/build/ext/react-is/cjs/react-is.production.js +10 -0
  86. package/build/ext/react-is/index.js +1 -0
  87. package/build/ext/styled-components/dist/styled-components.browser.esm.js +1 -0
  88. package/build/ext/tslib/tslib.es6.mjs.js +1 -0
  89. package/build/ext/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +10 -0
  90. package/build/ext/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +10 -0
  91. package/build/ext/use-sync-external-store/shim/index.js +1 -0
  92. package/build/ext/uuid/dist/esm-browser/md5.js +1 -0
  93. package/build/ext/uuid/dist/esm-browser/parse.js +1 -0
  94. package/build/ext/uuid/dist/esm-browser/regex.js +1 -0
  95. package/build/ext/uuid/dist/esm-browser/rng.js +1 -0
  96. package/build/ext/uuid/dist/esm-browser/sha1.js +1 -0
  97. package/build/ext/uuid/dist/esm-browser/stringify.js +1 -0
  98. package/build/ext/uuid/dist/esm-browser/v3.js +1 -0
  99. package/build/ext/uuid/dist/esm-browser/v35.js +1 -0
  100. package/build/ext/uuid/dist/esm-browser/v4.js +1 -0
  101. package/build/ext/uuid/dist/esm-browser/v5.js +1 -0
  102. package/build/ext/uuid/dist/esm-browser/validate.js +1 -0
  103. package/build/index.d.ts +12 -0
  104. package/build/index.js +1 -0
  105. package/build/models/base.d.ts +4 -0
  106. package/build/models/base.js +1 -0
  107. package/build/models/button/index.d.ts +7 -0
  108. package/build/models/button/index.js +1 -0
  109. package/build/models/category/index.d.ts +5 -0
  110. package/build/models/image/index.d.ts +12 -0
  111. package/build/models/image/index.js +1 -0
  112. package/build/models/index.d.ts +28 -0
  113. package/build/models/index.js +1 -0
  114. package/build/models/loyalty-customer-info/index.d.ts +28 -0
  115. package/build/models/loyalty-customer-info/index.js +1 -0
  116. package/build/models/loyalty-program-earning-method/index.d.ts +51 -0
  117. package/build/models/loyalty-program-earning-method/index.js +1 -0
  118. package/build/models/loyalty-program-point-history/index.d.ts +17 -0
  119. package/build/models/loyalty-program-point-history/index.js +1 -0
  120. package/build/models/loyalty-program-spending-method/index.d.ts +38 -0
  121. package/build/models/loyalty-program-spending-method/index.js +1 -0
  122. package/build/models/loyalty-widget/header/header-background/index.d.ts +9 -0
  123. package/build/models/loyalty-widget/header/header-background/index.js +1 -0
  124. package/build/models/loyalty-widget/header/index.d.ts +8 -0
  125. package/build/models/loyalty-widget/header/index.js +1 -0
  126. package/build/models/loyalty-widget/header-background/index.d.ts +9 -0
  127. package/build/models/loyalty-widget/index.d.ts +12 -0
  128. package/build/models/loyalty-widget/index.js +1 -0
  129. package/build/models/loyalty-widget/settings/index.d.ts +10 -0
  130. package/build/models/loyalty-widget/settings/index.js +1 -0
  131. package/build/models/loyalty-widget/types/index.d.ts +29 -0
  132. package/build/models/loyalty-widget/types/index.js +1 -0
  133. package/build/models/types/index.d.ts +145 -0
  134. package/build/models/types/index.js +1 -0
  135. package/build/renderer/components/button/index.d.ts +15 -0
  136. package/build/renderer/components/button/index.js +1 -0
  137. package/build/renderer/components/button/style.d.ts +15 -0
  138. package/build/renderer/components/button/style.js +1 -0
  139. package/build/renderer/components/index.d.ts +3 -0
  140. package/build/renderer/components/loyalty-method-card/index.d.ts +23 -0
  141. package/build/renderer/components/loyalty-method-card/index.js +1 -0
  142. package/build/renderer/components/loyalty-method-card/style.d.ts +22 -0
  143. package/build/renderer/components/loyalty-method-card/style.js +1 -0
  144. package/build/renderer/components/section-title/index.d.ts +8 -0
  145. package/build/renderer/components/section-title/index.js +1 -0
  146. package/build/renderer/components/section-title/style.d.ts +1 -0
  147. package/build/renderer/components/section-title/style.js +1 -0
  148. package/build/renderer/components/style/typography.d.ts +11 -0
  149. package/build/renderer/components/style/typography.js +1 -0
  150. package/build/renderer/index.d.ts +5 -0
  151. package/build/renderer/index.js +1 -0
  152. package/build/renderer/screens/credit-earning-methods-screen/index.d.ts +9 -0
  153. package/build/renderer/screens/credit-earning-methods-screen/index.js +1 -0
  154. package/build/renderer/screens/credit-earning-methods-screen/style.d.ts +5 -0
  155. package/build/renderer/screens/credit-earning-methods-screen/style.js +1 -0
  156. package/build/renderer/screens/credit-history-screen/index.d.ts +9 -0
  157. package/build/renderer/screens/credit-history-screen/index.js +1 -0
  158. package/build/renderer/screens/credit-history-screen/style.d.ts +17 -0
  159. package/build/renderer/screens/credit-history-screen/style.js +1 -0
  160. package/build/renderer/screens/credit-spending-methods-screen/index.d.ts +9 -0
  161. package/build/renderer/screens/credit-spending-methods-screen/index.js +1 -0
  162. package/build/renderer/screens/credit-spending-methods-screen/style.d.ts +8 -0
  163. package/build/renderer/screens/credit-spending-methods-screen/style.js +1 -0
  164. package/build/renderer/screens/loyalty-level-screen/index.d.ts +9 -0
  165. package/build/renderer/screens/loyalty-level-screen/index.js +1 -0
  166. package/build/renderer/screens/loyalty-level-screen/style.d.ts +32 -0
  167. package/build/renderer/screens/loyalty-level-screen/style.js +1 -0
  168. package/build/renderer/screens/main-screen/earning-methods-section/index.d.ts +14 -0
  169. package/build/renderer/screens/main-screen/earning-methods-section/index.js +1 -0
  170. package/build/renderer/screens/main-screen/header/auth-user-section/index.d.ts +7 -0
  171. package/build/renderer/screens/main-screen/header/auth-user-section/index.js +1 -0
  172. package/build/renderer/screens/main-screen/header/auth-user-section/style.d.ts +7 -0
  173. package/build/renderer/screens/main-screen/header/auth-user-section/style.js +1 -0
  174. package/build/renderer/screens/main-screen/header/index.d.ts +10 -0
  175. package/build/renderer/screens/main-screen/header/index.js +1 -0
  176. package/build/renderer/screens/main-screen/header/logo-section/index.d.ts +7 -0
  177. package/build/renderer/screens/main-screen/header/logo-section/index.js +1 -0
  178. package/build/renderer/screens/main-screen/header/logo-section/style.d.ts +2 -0
  179. package/build/renderer/screens/main-screen/header/logo-section/style.js +1 -0
  180. package/build/renderer/screens/main-screen/header/style.d.ts +12 -0
  181. package/build/renderer/screens/main-screen/header/style.js +1 -0
  182. package/build/renderer/screens/main-screen/header/title-section/index.d.ts +7 -0
  183. package/build/renderer/screens/main-screen/header/title-section/index.js +1 -0
  184. package/build/renderer/screens/main-screen/header/title-section/style.d.ts +7 -0
  185. package/build/renderer/screens/main-screen/header/title-section/style.js +1 -0
  186. package/build/renderer/screens/main-screen/header/user-logged-section/index.d.ts +7 -0
  187. package/build/renderer/screens/main-screen/header/user-logged-section/index.js +1 -0
  188. package/build/renderer/screens/main-screen/header/user-logged-section/style.d.ts +18 -0
  189. package/build/renderer/screens/main-screen/header/user-logged-section/style.js +1 -0
  190. package/build/renderer/screens/main-screen/index.d.ts +9 -0
  191. package/build/renderer/screens/main-screen/index.js +1 -0
  192. package/build/renderer/screens/main-screen/program-info-section/index.d.ts +8 -0
  193. package/build/renderer/screens/main-screen/program-info-section/index.js +1 -0
  194. package/build/renderer/screens/main-screen/program-info-section/style.d.ts +8 -0
  195. package/build/renderer/screens/main-screen/program-info-section/style.js +1 -0
  196. package/build/renderer/screens/main-screen/spending-methods-section/dynamic-slider.d.ts +9 -0
  197. package/build/renderer/screens/main-screen/spending-methods-section/dynamic-slider.js +1 -0
  198. package/build/renderer/screens/main-screen/spending-methods-section/index.d.ts +13 -0
  199. package/build/renderer/screens/main-screen/spending-methods-section/index.js +1 -0
  200. package/build/renderer/screens/main-screen/style.d.ts +5 -0
  201. package/build/renderer/screens/main-screen/style.js +1 -0
  202. package/build/renderer/style.d.ts +6 -0
  203. package/build/renderer/style.js +1 -0
  204. package/build/renderer/utils/i18n.d.ts +2 -0
  205. package/build/renderer/utils/i18n.js +1 -0
  206. package/build/renderer/utils/locales/en.json.js +1 -0
  207. package/build/renderer/utils/locales/tr.json.js +1 -0
  208. package/build/renderer/utils/loyalty-details.d.ts +12 -0
  209. package/build/renderer/utils/loyalty-details.js +1 -0
  210. package/build/renderer/utils/translations.d.ts +5 -0
  211. package/build/utils.d.ts +10 -0
  212. package/build/utils.js +1 -0
  213. package/package.json +68 -0
@@ -0,0 +1,5 @@
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 Title: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const IconButton: import("styled-components").StyledComponent<"button", any, {}, never>;
5
+ export declare const Content: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import o from'./../../../ext/styled-components/dist/styled-components.browser.esm.js';import{textMDMedium as e}from"../../components/style/typography.js";var t,i,r,d,l,p=o.div(t||(t=n(["\n display: flex;\n flex-direction: column;\n height: 100%;\n"],["\n display: flex;\n flex-direction: column;\n height: 100%;\n"]))),s=o.div(i||(i=n(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px;\n border-bottom: 1px solid #EEF2F6;\n position: sticky;\n top: 0;\n background-color: #ffffff;\n z-index: 10;\n"],["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px;\n border-bottom: 1px solid #EEF2F6;\n position: sticky;\n top: 0;\n background-color: #ffffff;\n z-index: 10;\n"]))),c=o.div(r||(r=n(["\n ","\n color: #121926;\n text-align: center;\n flex: 1;\n"],["\n ","\n color: #121926;\n text-align: center;\n flex: 1;\n"])),e),f=o.button(d||(d=n(["\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #697586;\n \n &:hover {\n opacity: 0.8;\n }\n"],["\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #697586;\n \n &:hover {\n opacity: 0.8;\n }\n"]))),a=o.div(l||(l=n(["\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 1;\n overflow-y: auto;\n"],["\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 1;\n overflow-y: auto;\n"])));export{p as Container,a as Content,s as Header,f as IconButton,c as Title};
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ type Props = {
4
+ viewModel: LoyaltyWidgetViewModel;
5
+ onBack: () => void;
6
+ onClose: () => void;
7
+ };
8
+ declare const CreditHistoryScreen: React.FC<Props>;
9
+ export default CreditHistoryScreen;
@@ -0,0 +1 @@
1
+ import e from"react";import{observer as t}from"mobx-react";import'./../../../ext/i18next/dist/esm/i18next.js';import'./../../../ext/react-i18next/dist/es/context.js';import'./../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as n}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import{XClose as r}from"../../../assets/icons/x-close.js";import{ChevronLeft as l}from"../../../assets/icons/chevron-left.js";import{Container as o,Header as m,IconButton as a,Title as s,Content as i,PointsSection as c,PointsTitle as u,PointsValue as d,HistoryList as E,HistoryItem as p,HistoryItemLeft as f,HistoryItemTitle as y,HistoryItemDate as x,HistoryItemAmount as h,Divider as j}from"./style.js";import{LoyaltyProgramPointHistoryTypeEnum as v}from"../../../models/types/index.js";var T=t(function(t){var T=t.viewModel,k=t.onBack,_=t.onClose,g=n().t,w=T.user,C=T.pointHistory,D=T.locale;return e.createElement(o,null,e.createElement(m,null,e.createElement(a,{onClick:k},e.createElement(l,null)),e.createElement(s,null,g("screens.creditHistory")),e.createElement(a,{onClick:_},e.createElement(r,null))),e.createElement(i,null,w&&e.createElement(c,null,e.createElement(u,null,g("header.earnedPoints")),e.createElement(d,null,w.totalPoint)),e.createElement(E,null,C.map(function(t,n){var r=t.type===v.EARN;return e.createElement(e.Fragment,{key:t.id},e.createElement(p,null,e.createElement(f,null,e.createElement(y,null,g(r?"history.earnedTitle":"history.spentTitle")),e.createElement(x,null,function(e){if(!e)return"";try{return new Intl.DateTimeFormat(D,{day:"numeric",month:"long",year:"numeric"}).format(new Date(e))}catch(t){return e}}(t.createdAt))),e.createElement(h,{$isEarn:r},r?"":"-",t.amount)),n<C.length-1&&e.createElement(j,null))}))))});export{T as default};
@@ -0,0 +1,17 @@
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 Title: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const IconButton: import("styled-components").StyledComponent<"button", any, {}, never>;
5
+ export declare const Content: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const PointsSection: import("styled-components").StyledComponent<"div", any, {}, never>;
7
+ export declare const PointsTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ export declare const PointsValue: import("styled-components").StyledComponent<"div", any, {}, never>;
9
+ export declare const HistoryList: import("styled-components").StyledComponent<"div", any, {}, never>;
10
+ export declare const HistoryItem: import("styled-components").StyledComponent<"div", any, {}, never>;
11
+ export declare const HistoryItemLeft: import("styled-components").StyledComponent<"div", any, {}, never>;
12
+ export declare const HistoryItemTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
13
+ export declare const HistoryItemDate: import("styled-components").StyledComponent<"div", any, {}, never>;
14
+ export declare const HistoryItemAmount: import("styled-components").StyledComponent<"div", any, {
15
+ $isEarn: boolean;
16
+ }, never>;
17
+ export declare const Divider: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import e from'./../../../ext/styled-components/dist/styled-components.browser.esm.js';import{textMDMedium as o,textSMMedium as i,textXLSemiBold as p,textXSMedium as t,textLGMedium as r}from"../../components/style/typography.js";var d,l,a,x,f,c,s,g,b,m,u,y,v,h,w,j=e.div(d||(d=n(["\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #ffffff;\n"],["\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #ffffff;\n"]))),k=e.div(l||(l=n(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px;\n border-bottom: 1px solid #eef2f6;\n position: sticky;\n top: 0;\n background-color: #ffffff;\n z-index: 10;\n"],["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px;\n border-bottom: 1px solid #eef2f6;\n position: sticky;\n top: 0;\n background-color: #ffffff;\n z-index: 10;\n"]))),z=e.div(a||(a=n(["\n ","\n color: #121926;\n text-align: center;\n flex: 1;\n"],["\n ","\n color: #121926;\n text-align: center;\n flex: 1;\n"])),o),_=e.button(x||(x=n(["\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #697586;\n\n &:hover {\n opacity: 0.8;\n }\n"],["\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #697586;\n\n &:hover {\n opacity: 0.8;\n }\n"]))),E=e.div(f||(f=n(["\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 1;\n overflow-y: auto;\n"],["\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 1;\n overflow-y: auto;\n"]))),$=e.div(c||(c=n(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n border: 1px solid #eef2f6;\n background: #fff;\n box-shadow: 0 7px 2px 0 rgba(0, 0, 0, 0), 0 5px 2px 0 rgba(0, 0, 0, 0.01),\n 0 3px 2px 0 rgba(0, 0, 0, 0.02), 0 1px 1px 0 rgba(0, 0, 0, 0.03),\n 0 0 1px 0 rgba(0, 0, 0, 0.04);\n margin: 0 16px 24px 16px;\n"],["\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n border: 1px solid #eef2f6;\n background: #fff;\n box-shadow: 0 7px 2px 0 rgba(0, 0, 0, 0), 0 5px 2px 0 rgba(0, 0, 0, 0.01),\n 0 3px 2px 0 rgba(0, 0, 0, 0.02), 0 1px 1px 0 rgba(0, 0, 0, 0.03),\n 0 0 1px 0 rgba(0, 0, 0, 0.04);\n margin: 0 16px 24px 16px;\n"]))),q=e.div(s||(s=n(["\n ","\n color: #121926;\n"],["\n ","\n color: #121926;\n"])),i),A=e.div(g||(g=n(["\n ","\n color: #121926;\n"],["\n ","\n color: #121926;\n"])),p),B=e.div(b||(b=n(["\n display: flex;\n flex-direction: column;\n padding: 0 16px;\n margin-top: 4px;\n"],["\n display: flex;\n flex-direction: column;\n padding: 0 16px;\n margin-top: 4px;\n"]))),C=e.div(m||(m=n(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 12px 0 6px;\n gap: 16px;\n"],["\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 12px 0 6px;\n gap: 16px;\n"]))),D=e.div(u||(u=n(["\n display: flex;\n flex-direction: column;\n gap: 4px;\n"],["\n display: flex;\n flex-direction: column;\n gap: 4px;\n"]))),F=e.div(y||(y=n(["\n ","\n color: #121926;\n"],["\n ","\n color: #121926;\n"])),i),G=e.div(v||(v=n(["\n ","\n color: #697586;\n"],["\n ","\n color: #697586;\n"])),t),H=e.div(h||(h=n(["\n ","\n color: ",";\n"],["\n ","\n color: ",";\n"])),r,function(n){return n.$isEarn?"#121926":"#697586"}),I=e.div(w||(w=n(["\n height: 1px;\n background-color: #eef2f6;\n margin: 16px 0;\n width: 100%;\n"],["\n height: 1px;\n background-color: #eef2f6;\n margin: 16px 0;\n width: 100%;\n"])));export{j as Container,E as Content,I as Divider,k as Header,C as HistoryItem,H as HistoryItemAmount,G as HistoryItemDate,D as HistoryItemLeft,F as HistoryItemTitle,B as HistoryList,_ as IconButton,$ as PointsSection,q as PointsTitle,A as PointsValue,z as Title};
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ type Props = {
4
+ viewModel: LoyaltyWidgetViewModel;
5
+ onBack: () => void;
6
+ onClose: () => void;
7
+ };
8
+ declare const CreditSpendingMethodsScreen: React.FC<Props>;
9
+ export default CreditSpendingMethodsScreen;
@@ -0,0 +1 @@
1
+ import e from"react";import{observer as t}from"mobx-react";import'./../../../ext/i18next/dist/esm/i18next.js';import'./../../../ext/react-i18next/dist/es/context.js';import'./../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as n}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import o from"../main-screen/spending-methods-section/index.js";import{ChevronLeft as r}from"../../../assets/icons/chevron-left.js";import{XClose as l}from"../../../assets/icons/x-close.js";import{Container as s,Header as i,IconButton as m,Title as c,Content as a,PointsSection as d,PointsTitle as u,PointsValue as p}from"./style.js";var E=t(function(t){var E=t.viewModel,f=t.onBack,x=t.onClose,j=n().t,h=E.user;return e.createElement(s,null,e.createElement(i,null,e.createElement(m,{onClick:f},e.createElement(r,null)),e.createElement(c,null,j("screens.creditSpendingMethods")),e.createElement(m,{onClick:x},e.createElement(l,null))),e.createElement(a,null,h&&e.createElement(d,null,e.createElement(u,null,j("header.earnedPoints")),e.createElement(p,null,h.totalPoint)),e.createElement(o,{viewModel:E,mode:"accordion",getActionProps:function(e){return null}})))});export{E as default};
@@ -0,0 +1,8 @@
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 Title: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const IconButton: import("styled-components").StyledComponent<"button", any, {}, never>;
5
+ export declare const Content: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const PointsSection: import("styled-components").StyledComponent<"div", any, {}, never>;
7
+ export declare const PointsTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ export declare const PointsValue: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import o from'./../../../ext/styled-components/dist/styled-components.browser.esm.js';import{textMDMedium as e,textSMMedium as t,textXLSemiBold as r}from"../../components/style/typography.js";var p,i,d,f,a,x,l,s,c=o.div(p||(p=n(["\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #ffffff;\n"],["\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #ffffff;\n"]))),g=o.div(i||(i=n(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px;\n border-bottom: 1px solid #eef2f6;\n position: sticky;\n top: 0;\n background-color: #ffffff;\n z-index: 10;\n"],["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px;\n border-bottom: 1px solid #eef2f6;\n position: sticky;\n top: 0;\n background-color: #ffffff;\n z-index: 10;\n"]))),b=o.div(d||(d=n(["\n ","\n color: #121926;\n text-align: center;\n flex: 1;\n"],["\n ","\n color: #121926;\n text-align: center;\n flex: 1;\n"])),e),m=o.button(f||(f=n(["\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #697586;\n\n &:hover {\n opacity: 0.8;\n }\n"],["\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #697586;\n\n &:hover {\n opacity: 0.8;\n }\n"]))),u=o.div(a||(a=n(["\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 1;\n overflow-y: auto;\n"],["\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 1;\n overflow-y: auto;\n"]))),y=o.div(x||(x=n(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n border: 1px solid #eef2f6;\n background: #fff;\n box-shadow: 0 7px 2px 0 rgba(0, 0, 0, 0), 0 5px 2px 0 rgba(0, 0, 0, 0.01),\n 0 3px 2px 0 rgba(0, 0, 0, 0.02), 0 1px 1px 0 rgba(0, 0, 0, 0.03),\n 0 0 1px 0 rgba(0, 0, 0, 0.04);\n margin: 0 16px 28px 16px;\n"],["\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-radius: 6px;\n border: 1px solid #eef2f6;\n background: #fff;\n box-shadow: 0 7px 2px 0 rgba(0, 0, 0, 0), 0 5px 2px 0 rgba(0, 0, 0, 0.01),\n 0 3px 2px 0 rgba(0, 0, 0, 0.02), 0 1px 1px 0 rgba(0, 0, 0, 0.03),\n 0 0 1px 0 rgba(0, 0, 0, 0.04);\n margin: 0 16px 28px 16px;\n"]))),v=o.div(l||(l=n(["\n ","\n color: #121926;\n"],["\n ","\n color: #121926;\n"])),t),j=o.div(s||(s=n(["\n ","\n color: #121926;\n"],["\n ","\n color: #121926;\n"])),r);export{c as Container,u as Content,g as Header,m as IconButton,y as PointsSection,v as PointsTitle,j as PointsValue,b as Title};
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ type Props = {
4
+ viewModel: LoyaltyWidgetViewModel;
5
+ onBack: () => void;
6
+ onClose: () => void;
7
+ };
8
+ declare const LoyaltyLevelScreen: React.FC<Props>;
9
+ export default LoyaltyLevelScreen;
@@ -0,0 +1 @@
1
+ import{__spreadArray as e}from'./../../../ext/tslib/tslib.es6.mjs.js';import t,{useMemo as n}from"react";import{observer as l}from"mobx-react";import'./../../../ext/i18next/dist/esm/i18next.js';import'./../../../ext/react-i18next/dist/es/context.js';import'./../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as r}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import{ChevronLeft as o}from"../../../assets/icons/chevron-left.js";import{XClose as i}from"../../../assets/icons/x-close.js";import{Container as c,Header as s,IconButton as u,Title as a,Content as m,PointsSection as d,PointsText as p,PointsValue as E,ProgressBarContainer as f,ProgressBarFill as v,DescriptionText as y,TimelineContainer as x,TimelineItem as j,TimelineLine as g,CheckIconContainer as h,CurrentIndicator as P,CurrentIndicatorDot as q,UpcomingIndicator as R,TimelineContent as T,TimelineTitle as L,TimelineDescription as k,MultiplierSection as I,MultiplierValue as S}from"./style.js";import{Check as b}from"../../../assets/icons/check.js";var C=l(function(l){var C=l.viewModel,M=l.onBack,$=l.onClose,_=r().t,N=C.user,w=C.tiers,B=n(function(){return e([],w,!0).sort(function(e,t){return(e.pointsRequired||0)-(t.pointsRequired||0)})},[w]),D=n(function(){return(null==N?void 0:N.customerTierId)?B.findIndex(function(e){var t;return e.id===(null===(t=N.customerTierId)||void 0===t?void 0:t.id)}):-1},[B,null==N?void 0:N.customerTierId]);console.log("currentTierIndex",D);var U=n(function(){return N?-1===D?B.find(function(e){return(e.pointsRequired||0)>N.totalPoint})||B[0]:B[D+1]||null:null},[B,D,N]),W=n(function(){return N?U?0===(U.pointsRequired||0)?100:Math.min(N.totalPoint/(U.pointsRequired||1)*100,100):100:0},[N,U]),z=n(function(){return N&&U?Math.max(0,(U.pointsRequired||0)-N.totalPoint):0},[N,U]);return N?t.createElement(c,null,t.createElement(s,null,t.createElement(u,{onClick:M},t.createElement(o,null)),t.createElement(a,null,_("screens.loyaltyLevel")),t.createElement(u,{onClick:$},t.createElement(i,null))),t.createElement(m,null,t.createElement(d,null,t.createElement("div",null,t.createElement(p,null,_("header.earnedPoints")),t.createElement(E,null,N.totalPoint," ",_("common.points"))),t.createElement(f,null,t.createElement(v,{$percentage:W,$color:C.loyaltyWidget.header.background.bgColor||void 0})),t.createElement(y,null,U?_("screens.loyaltyLevelScreen.reachNextTier",{tierName:U.name,points:z}):_("screens.loyaltyLevelScreen.allTiersCompleted"))),t.createElement(x,null,B.map(function(e,n){var l="upcoming";D>-1?l=n<D?"completed":n===D?"current":"upcoming":N.totalPoint>=(e.pointsRequired||0)&&(l="completed");var r=n===B.length-1;return t.createElement(j,{key:e.id},t.createElement(g,{$isLast:r}),"completed"===l?t.createElement(h,null,t.createElement(b,null)):"current"===l?t.createElement(P,null,t.createElement(q,null)):t.createElement(R,null),t.createElement(T,null,t.createElement(L,{$status:l},e.name),t.createElement(k,{$status:l},e.pointsRequired||0," ",_("common.points")," ",_("screens.loyaltyLevelScreen.afterEarning")),(e.tierPointMultiplier||1)>1&&t.createElement(I,null,_("screens.loyaltyLevelScreen.multiplierPrefix")," ",t.createElement(S,null,e.tierPointMultiplier||1,"x")," ",_("screens.loyaltyLevelScreen.multiplierSuffix"))))})))):null});export{C as default};
@@ -0,0 +1,32 @@
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 Title: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const IconButton: import("styled-components").StyledComponent<"button", any, {}, never>;
5
+ export declare const Content: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const PointsSection: import("styled-components").StyledComponent<"div", any, {}, never>;
7
+ export declare const PointsText: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ export declare const PointsValue: import("styled-components").StyledComponent<"div", any, {}, never>;
9
+ export declare const ProgressBarContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
10
+ export declare const ProgressBarFill: import("styled-components").StyledComponent<"div", any, {
11
+ $percentage: number;
12
+ $color?: string;
13
+ }, never>;
14
+ export declare const DescriptionText: import("styled-components").StyledComponent<"div", any, {}, never>;
15
+ export declare const TimelineContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
16
+ export declare const TimelineItem: import("styled-components").StyledComponent<"div", any, {}, never>;
17
+ export declare const TimelineLine: import("styled-components").StyledComponent<"div", any, {
18
+ $isLast: boolean;
19
+ }, never>;
20
+ export declare const TimelineContent: import("styled-components").StyledComponent<"div", any, {}, never>;
21
+ export declare const TimelineTitle: import("styled-components").StyledComponent<"div", any, {
22
+ $status: "completed" | "current" | "upcoming";
23
+ }, never>;
24
+ export declare const TimelineDescription: import("styled-components").StyledComponent<"div", any, {
25
+ $status: "completed" | "current" | "upcoming";
26
+ }, never>;
27
+ export declare const MultiplierSection: import("styled-components").StyledComponent<"div", any, {}, never>;
28
+ export declare const MultiplierValue: import("styled-components").StyledComponent<"span", any, {}, never>;
29
+ export declare const CheckIconContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
30
+ export declare const CurrentIndicator: import("styled-components").StyledComponent<"div", any, {}, never>;
31
+ export declare const CurrentIndicatorDot: import("styled-components").StyledComponent<"div", any, {}, never>;
32
+ export declare const UpcomingIndicator: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import e,{css as o}from'./../../../ext/styled-components/dist/styled-components.browser.esm.js';import{textMDMedium as i,textSM as t,textSMMedium as r,textSMSemiBold as d}from"../../components/style/typography.js";var a,p,l,x,c,s,f,g,u,b,h,m,y,v,k,w,j,B,$,z,A,C,G,E,_,F=e.div(a||(a=n(["\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #ffffff;\n"],["\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #ffffff;\n"]))),L=e.div(p||(p=n(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px;\n border-bottom: 1px solid #eef2f6;\n position: sticky;\n top: 0;\n background-color: #ffffff;\n z-index: 10;\n"],["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px;\n border-bottom: 1px solid #eef2f6;\n position: sticky;\n top: 0;\n background-color: #ffffff;\n z-index: 10;\n"]))),q=e.div(l||(l=n(["\n ","\n color: #121926;\n text-align: center;\n flex: 1;\n"],["\n ","\n color: #121926;\n text-align: center;\n flex: 1;\n"])),i),D=e.button(x||(x=n(["\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #697586;\n\n &:hover {\n opacity: 0.8;\n }\n"],["\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #697586;\n\n &:hover {\n opacity: 0.8;\n }\n"]))),H=e.div(c||(c=n(["\n padding: 20px 16px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n flex: 1;\n"],["\n padding: 20px 16px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n flex: 1;\n"]))),I=e.div(s||(s=n(["\n display: flex;\n width: 100%;\n padding: 16px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 16px;\n border-radius: 6px;\n border: 1px solid var(--Gray-Blue-100, #eef2f6);\n background: var(--Basic-50, #fff);\n box-shadow: 0 7px 2px 0 rgba(0, 0, 0, 0), 0 5px 2px 0 rgba(0, 0, 0, 0.01),\n 0 3px 2px 0 rgba(0, 0, 0, 0.02), 0 1px 1px 0 rgba(0, 0, 0, 0.03),\n 0 0 1px 0 rgba(0, 0, 0, 0.04);\n box-sizing: border-box;\n"],["\n display: flex;\n width: 100%;\n padding: 16px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 16px;\n border-radius: 6px;\n border: 1px solid var(--Gray-Blue-100, #eef2f6);\n background: var(--Basic-50, #fff);\n box-shadow: 0 7px 2px 0 rgba(0, 0, 0, 0), 0 5px 2px 0 rgba(0, 0, 0, 0.01),\n 0 3px 2px 0 rgba(0, 0, 0, 0.02), 0 1px 1px 0 rgba(0, 0, 0, 0.03),\n 0 0 1px 0 rgba(0, 0, 0, 0.04);\n box-sizing: border-box;\n"]))),J=e.div(f||(f=n(["\n ","\n color: #4B5565;\n text-align: center;\n"],["\n ","\n color: #4B5565;\n text-align: center;\n"])),t),K=e.div(g||(g=n(["\n ","\n color: #121926;\n margin-top: 2px;\n text-align: center;\n"],["\n ","\n color: #121926;\n margin-top: 2px;\n text-align: center;\n"])),i),M=e.div(u||(u=n(["\n width: 100%;\n height: 8px;\n border-radius: 4px;\n background: #eef2f6;\n overflow: hidden;\n"],["\n width: 100%;\n height: 8px;\n border-radius: 4px;\n background: #eef2f6;\n overflow: hidden;\n"]))),N=e.div(b||(b=n(["\n width: ","%;\n height: 100%;\n border-radius: 4px;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.5) 0%,\n rgba(255, 255, 255, 0.5) 100%\n ),\n ",";\n transition: width 0.3s ease-in-out;\n"],["\n width: ","%;\n height: 100%;\n border-radius: 4px;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.5) 0%,\n rgba(255, 255, 255, 0.5) 100%\n ),\n ",";\n transition: width 0.3s ease-in-out;\n"])),function(n){return n.$percentage},function(n){return n.$color||"#4F46E5"}),O=e.div(h||(h=n(["\n color: #4b5565;\n text-align: center;\n ","\n"],["\n color: #4b5565;\n text-align: center;\n ","\n"])),t),P=e.div(m||(m=n(["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 6px;\n box-sizing: border-box;\n"],["\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0 6px;\n box-sizing: border-box;\n"]))),Q=e.div(y||(y=n(["\n display: flex;\n gap: 16px;\n position: relative;\n padding-bottom: 32px;\n\n &:last-child {\n padding-bottom: 0;\n }\n"],["\n display: flex;\n gap: 16px;\n position: relative;\n padding-bottom: 32px;\n\n &:last-child {\n padding-bottom: 0;\n }\n"]))),R=e.div(v||(v=n(["\n position: absolute;\n left: 10px; /* Center of the 20px icon */\n top: 26px;\n bottom: 0;\n width: 1px;\n background-color: #9aa4b2;\n display: ",";\n"],["\n position: absolute;\n left: 10px; /* Center of the 20px icon */\n top: 26px;\n bottom: 0;\n width: 1px;\n background-color: #9aa4b2;\n display: ",";\n"])),function(n){return n.$isLast?"none":"block"}),S=e.div(k||(k=n(["\n flex: 1;\n display: flex;\n flex-direction: column;\n"],["\n flex: 1;\n display: flex;\n flex-direction: column;\n"]))),T=e.div(j||(j=n(["\n ","\n color: ",";\n\n ","\n"],["\n ","\n color: ",";\n\n ","\n"])),r,function(n){return"completed"===n.$status?"#697586":"#121926"},function(e){return"completed"===e.$status&&o(w||(w=n(["\n text-decoration-line: line-through;\n "],["\n text-decoration-line: line-through;\n "])))}),U=e.div($||($=n(["\n ","\n margin-top: 2px;\n color: ","; /* Current #4B5565. Completed #9AA4B2 */\n\n ","\n"],["\n ","\n margin-top: 2px;\n color: ","; /* Current #4B5565. Completed #9AA4B2 */\n\n ","\n"])),t,function(n){return"completed"===n.$status?"#9AA4B2":"#4B5565"},function(e){return"completed"===e.$status&&o(B||(B=n(["\n text-decoration-line: line-through;\n "],["\n text-decoration-line: line-through;\n "])))}),V=e.div(z||(z=n(["\n padding: 8px 16px;\n align-self: stretch;\n border-radius: 6px;\n background: var(--Gray-Blue-50, #f8fafc);\n margin-top: 12px;\n ","\n color: #4B5565;\n"],["\n padding: 8px 16px;\n align-self: stretch;\n border-radius: 6px;\n background: var(--Gray-Blue-50, #f8fafc);\n margin-top: 12px;\n ","\n color: #4B5565;\n"])),t),W=e.span(A||(A=n(["\n ","\n color: #5864E2;\n"],["\n ","\n color: #5864E2;\n"])),d),X=e.div(C||(C=n(["\n display: flex;\n width: 20px;\n height: 20px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n\n border-radius: 10px;\n background: rgba(73, 90, 255, 0.1);\n\n svg {\n color: #495aff;\n }\n"],["\n display: flex;\n width: 20px;\n height: 20px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n\n border-radius: 10px;\n background: rgba(73, 90, 255, 0.1);\n\n svg {\n color: #495aff;\n }\n"]))),Y=e.div(G||(G=n(["\n display: flex;\n width: 20px;\n height: 20px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n\n border-radius: 10px;\n border: 0.8px solid #5864e2;\n background: #fff;\n"],["\n display: flex;\n width: 20px;\n height: 20px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n\n border-radius: 10px;\n border: 0.8px solid #5864e2;\n background: #fff;\n"]))),Z=e.div(E||(E=n(["\n width: 10px;\n height: 10px;\n flex-shrink: 0;\n\n border-radius: 5px;\n background: #5864e2;\n"],["\n width: 10px;\n height: 10px;\n flex-shrink: 0;\n\n border-radius: 5px;\n background: #5864e2;\n"]))),nn=e.div(_||(_=n(["\n display: flex;\n width: 20px;\n height: 20px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n border-radius: 10px;\n background: rgba(73, 90, 255, 0.1);\n"],["\n display: flex;\n width: 20px;\n height: 20px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n border-radius: 10px;\n background: rgba(73, 90, 255, 0.1);\n"])));export{X as CheckIconContainer,F as Container,H as Content,Y as CurrentIndicator,Z as CurrentIndicatorDot,O as DescriptionText,L as Header,D as IconButton,V as MultiplierSection,W as MultiplierValue,I as PointsSection,J as PointsText,K as PointsValue,M as ProgressBarContainer,N as ProgressBarFill,P as TimelineContainer,S as TimelineContent,U as TimelineDescription,Q as TimelineItem,R as TimelineLine,T as TimelineTitle,q as Title,nn as UpcomingIndicator};
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ import { LoyaltyProgramEarningMethod } from "models/loyalty-program-earning-method";
4
+ type SectionProps = {
5
+ viewModel: LoyaltyWidgetViewModel;
6
+ containerStyle?: React.CSSProperties;
7
+ mode?: "card" | "accordion";
8
+ getActionProps?: (method: LoyaltyProgramEarningMethod) => {
9
+ actionText: string;
10
+ onClick: () => void;
11
+ } | null;
12
+ };
13
+ declare const EarningMethodsSection: React.FC<SectionProps>;
14
+ export default EarningMethodsSection;
@@ -0,0 +1 @@
1
+ import{__assign as e}from'./../../../../ext/tslib/tslib.es6.mjs.js';import t from"react";import{observer as o}from"mobx-react";import'./../../../../ext/i18next/dist/esm/i18next.js';import'./../../../../ext/react-i18next/dist/es/context.js';import'./../../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as i}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import{EarningMethodTypeEnum as n}from"../../../../models/types/index.js";import{getEarningMethodTitle as r,getEarningMethodIcon as d}from"../../../../utils.js";import s from"../../../components/loyalty-method-card/index.js";import{getEarningMethodDescriptionV2 as l}from"../../../utils/loyalty-details.js";var m=o(function(e){var o=e.method,m=e.viewModel,a=e.mode,c=e.actionText,p=e.onClick,u=i(),x=u.t,g=u.i18n,f=m.loyaltyWidget,y=g.language,v=o.translations.find(function(e){return e.locale===y}),T=(null==v?void 0:v.description)||o.description||r(o),h=d(o.methodType,f.settings.widgetIconType),E=o.orderSettings,j=(null==E?void 0:E.productFilters)||[],R=o.methodType===n.ORDER_CREATE&&E&&(E.minOrderAmount>0||E.maxOrderAmount>0||j.length>0),C=R?"accordion":a,M="",_="";if(R){M=x("earningMethods.xPoints",{points:o.pointsEarned});var b=l(x,o,m);b&&(_=t.createElement("div",{style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},b))}else M=l(x,o,m)||x("earningMethods.xPoints",{points:o.pointsEarned});var w=!!m.user&&o.methodType===n.CUSTOMER_REGISTER;return t.createElement(s,{title:T,description:M,icon:h,action:c&&p?{text:c,onClick:p}:void 0,isCompleted:w,mode:C,settings:{borderRadius:f.settings.cartBorderRadius,widgetIconType:f.settings.widgetIconType,button:f.button}},_)}),a=o(function(o){var i=o.viewModel,n=o.containerStyle,r=o.mode,d=void 0===r?"card":r,s=o.getActionProps,l=i.earningMethods;return t.createElement("div",{style:e({display:"flex",flexDirection:"column",gap:"12px",padding:"0 24px"},n)},l.map(function(e){var o=s?s(e):null;return t.createElement(m,{key:e.id,method:e,viewModel:i,mode:d,actionText:null==o?void 0:o.actionText,onClick:null==o?void 0:o.onClick})}))});export{a as default};
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ type Props = {
4
+ viewModel: LoyaltyWidgetViewModel;
5
+ };
6
+ declare const AuthUserSection: React.FC<Props>;
7
+ export default AuthUserSection;
@@ -0,0 +1 @@
1
+ import e from"react";import{observer as t}from"mobx-react";import'./../../../../../ext/i18next/dist/esm/i18next.js';import'./../../../../../ext/react-i18next/dist/es/context.js';import'./../../../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as n}from'./../../../../../ext/react-i18next/dist/es/useTranslation.js';import{Container as r,TitleSection as o,RegisterText as i,RegisterDescription as l,Actions as m,HaveAccount as s,Link as a}from"./style.js";import d from"../../../../components/button/index.js";var u=t(function(t){var u=n().t,c=t.viewModel.loyaltyWidget.button;return e.createElement(r,null,e.createElement(o,null,e.createElement(i,null,u("header.register_title")),e.createElement(l,null,u("header.registerDescription"))),e.createElement(m,null,e.createElement(d,{button:c,fontSize:"textMDMedium",paddingSize:"medium"},u("header.registerButton")),e.createElement(s,null,u("header.haveAccount")," ",e.createElement(a,null,u("common.login")))))});export{u as default};
@@ -0,0 +1,7 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const TitleSection: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const RegisterText: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const RegisterDescription: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const Actions: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const HaveAccount: import("styled-components").StyledComponent<"span", any, {}, never>;
7
+ export declare const Link: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../../../ext/tslib/tslib.es6.mjs.js';import e from'./../../../../../ext/styled-components/dist/styled-components.browser.esm.js';import{textSM as o}from"../../../../components/style/typography.js";var i,t,l,p,r,c,s,x=e.div(i||(i=n(["\n display: flex;\n flex-direction: column;\n padding: 20px 16px;\n gap: 32px;\n align-items: center;\n"],["\n display: flex;\n flex-direction: column;\n padding: 20px 16px;\n gap: 32px;\n align-items: center;\n"]))),a=e.div(t||(t=n(["\n display: flex;\n flex-direction: column;\n gap: 8px;\n"],["\n display: flex;\n flex-direction: column;\n gap: 8px;\n"]))),d=e.div(l||(l=n(["\n color: #121926;\n text-align: center;\n\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n"],["\n color: #121926;\n text-align: center;\n\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px;\n"]))),f=e.div(p||(p=n(["\n color: #4b5565;\n text-align: center;\n ","\n"],["\n color: #4b5565;\n text-align: center;\n ","\n"])),o),g=e.div(r||(r=n(["\n display: flex;\n flex-direction: column;\n gap: 12px;\n"],["\n display: flex;\n flex-direction: column;\n gap: 12px;\n"]))),m=e.span(c||(c=n(["\n color: #4b5565;\n text-align: center;\n ","\n"],["\n color: #4b5565;\n text-align: center;\n ","\n"])),o),y=e.div(s||(s=n(["\n display: inline-block;\n cursor: pointer;\n color: #14141a;\n font-weight: 500;\n"],["\n display: inline-block;\n cursor: pointer;\n color: #14141a;\n font-weight: 500;\n"])));export{g as Actions,x as Container,m as HaveAccount,y as Link,f as RegisterDescription,d as RegisterText,a as TitleSection};
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ type Props = {
4
+ viewModel: LoyaltyWidgetViewModel;
5
+ onClose: () => void;
6
+ onCardHeightChange?: (height: number) => void;
7
+ headerGap?: number;
8
+ };
9
+ declare const Header: React.FC<Props>;
10
+ export default Header;
@@ -0,0 +1 @@
1
+ import e from"react";import{observer as t}from"mobx-react";import{Container as r,TopSection as o,CloseButton as n,Content as i,Card as l}from"./style.js";import a from"./logo-section/index.js";import s from"./title-section/index.js";import c from"./auth-user-section/index.js";import m from"./user-logged-section/index.js";import{XClose as d}from"../../../../assets/icons/x-close.js";import{ImageTypeEnum as f}from"../../../../models/loyalty-widget/types/index.js";var u=t(function(t){var u=t.viewModel,g=t.onClose,p=t.onCardHeightChange,v=t.headerGap,h=u.loyaltyWidget,E=u.user,y=h.header.background;h.settings;var x=e.useRef(null);return e.useEffect(function(){if(p){var e=x.current;if(e){var t=function(){p(e.getBoundingClientRect().height)};if(t(),"undefined"!=typeof ResizeObserver){var r=new ResizeObserver(function(){t()});return r.observe(e),function(){r.disconnect()}}}}},[p]),e.createElement(r,null,e.createElement(o,{$headerBackground:y,$gap:v},h.header.logo.type===f.SHOW&&h.header.logo.src&&e.createElement(a,{logo:h.header.logo}),e.createElement(s,{layout:h}),e.createElement(n,{onClick:g},e.createElement(d,null))),e.createElement(i,null,e.createElement(l,{ref:x},E?e.createElement(m,{viewModel:u}):e.createElement(c,{viewModel:u}))))});export{u as default};
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetImage } from "models/image";
3
+ type Props = {
4
+ logo: LoyaltyWidgetImage;
5
+ };
6
+ declare const LogoSection: React.FC<Props>;
7
+ export default LogoSection;
@@ -0,0 +1 @@
1
+ import r from"react";import{observer as t}from"mobx-react";import{Container as e,Logo as o}from"./style.js";var m=t(function(t){return r.createElement(e,null,r.createElement(o,{src:t.logo.src,alt:"Logo"}))});export{m as default};
@@ -0,0 +1,2 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const Logo: import("styled-components").StyledComponent<"img", any, {}, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../../../ext/tslib/tslib.es6.mjs.js';import e from'./../../../../../ext/styled-components/dist/styled-components.browser.esm.js';var t,i,s=e.div(t||(t=n(["\n display: flex;\n justify-content: space-between;\n gap: 12px;\n align-items: center;\n width: 100%;\n height: 100%;\n"],["\n display: flex;\n justify-content: space-between;\n gap: 12px;\n align-items: center;\n width: 100%;\n height: 100%;\n"]))),o=e.img(i||(i=n(["\n max-width: 150px;\n max-height: 30px;\n object-fit: contain;\n"],["\n max-width: 150px;\n max-height: 30px;\n object-fit: contain;\n"])));export{s as Container,o as Logo};
@@ -0,0 +1,12 @@
1
+ import { LoyaltyWidgetHeaderBackground } from "models/loyalty-widget/header/header-background";
2
+ export declare const CARD_OVERLAP_TOP = 48;
3
+ type TopSectionProps = {
4
+ $headerBackground: LoyaltyWidgetHeaderBackground;
5
+ $gap?: number;
6
+ };
7
+ export declare const Container: import("styled-components").StyledComponent<"header", any, {}, never>;
8
+ export declare const TopSection: import("styled-components").StyledComponent<"div", any, TopSectionProps, never>;
9
+ export declare const Content: import("styled-components").StyledComponent<"div", any, {}, never>;
10
+ export declare const Card: import("styled-components").StyledComponent<"div", any, {}, never>;
11
+ export declare const CloseButton: import("styled-components").StyledComponent<"div", any, {}, never>;
12
+ export {};
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../../ext/tslib/tslib.es6.mjs.js';import{HeaderBackgroundTypeEnum as e}from"../../../../models/loyalty-widget/types/index.js";import o,{css as r}from'./../../../../ext/styled-components/dist/styled-components.browser.esm.js';var i,t,p,a,d,l,s,x,c,g,b=48,u=o.header(i||(i=n(["\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: visible;\n"],["\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: visible;\n"]))),f=o.div(s||(s=n(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: ",";\n padding: 24px 20px ","px 24px;\n\n ","\n"],["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: ",";\n padding: 24px 20px ","px 24px;\n\n ","\n"])),function(n){var e=n.$gap;return void 0!==e?"".concat(e,"px"):"56px"},48,function(o){var i=o.$headerBackground,s=i.type,x=i.bgColor,c=i.image;return s===e.IMAGE?(null==c?void 0:c.src)?r(p||(p=n(["\n background-image: url(",");\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n "],["\n background-image: url(",");\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n "])),c.src):r(t||(t=n([""],[""]))):x?s===e.GRADIENT?r(d||(d=n(["\n background: radial-gradient(\n 92.35% 100% at 50% 0%,\n rgba(255, 255, 255, 0.5) 0%,\n rgba(0, 0, 0, 0.5) 100%\n ),\n ",";\n "],["\n background: radial-gradient(\n 92.35% 100% at 50% 0%,\n rgba(255, 255, 255, 0.5) 0%,\n rgba(0, 0, 0, 0.5) 100%\n ),\n ",";\n "])),x):r(l||(l=n(["\n background-color: ",";\n "],["\n background-color: ",";\n "])),x):r(a||(a=n([""],[""])))}),m=o.div(x||(x=n(["\n position: absolute;\n left: 20px;\n right: 20px;\n top: calc(100% - ","px);\n display: flex;\n z-index: 1;\n"],["\n position: absolute;\n left: 20px;\n right: 20px;\n top: calc(100% - ","px);\n display: flex;\n z-index: 1;\n"])),48),y=o.div(c||(c=n(["\n display: flex;\n flex-direction: column;\n width: 100%;\n background: white;\n border: 1px solid #eef2f6;\n border-radius: 6px;\n box-shadow: 0 5px 2px 0 rgba(0, 0, 0, 0.01), 0 3px 2px 0 rgba(0, 0, 0, 0.02),\n 0 1px 1px 0 rgba(0, 0, 0, 0.03), 0 0 1px 0 rgba(0, 0, 0, 0.04);\n"],["\n display: flex;\n flex-direction: column;\n width: 100%;\n background: white;\n border: 1px solid #eef2f6;\n border-radius: 6px;\n box-shadow: 0 5px 2px 0 rgba(0, 0, 0, 0.01), 0 3px 2px 0 rgba(0, 0, 0, 0.02),\n 0 1px 1px 0 rgba(0, 0, 0, 0.03), 0 0 1px 0 rgba(0, 0, 0, 0.04);\n"]))),v=o.div(g||(g=n(["\n position: absolute;\n right: 20px;\n top: 24px;\n display: flex;\n padding: 4px;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n\n svg {\n color: #f7f5ff;\n }\n"],["\n position: absolute;\n right: 20px;\n top: 24px;\n display: flex;\n padding: 4px;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n\n svg {\n color: #f7f5ff;\n }\n"])));export{b as CARD_OVERLAP_TOP,y as Card,v as CloseButton,u as Container,m as Content,f as TopSection};
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { LoyaltyWidget } from "models/loyalty-widget";
3
+ type Props = {
4
+ layout: LoyaltyWidget;
5
+ };
6
+ declare const TitleSection: React.FC<Props>;
7
+ export default TitleSection;
@@ -0,0 +1 @@
1
+ import e from"react";import{observer as t}from"mobx-react";import'./../../../../../ext/i18next/dist/esm/i18next.js';import'./../../../../../ext/react-i18next/dist/es/context.js';import'./../../../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as o}from'./../../../../../ext/react-i18next/dist/es/useTranslation.js';import{Container as r,LoyaltyProgramText as i,LoyaltyTitle as s}from"./style.js";var l=t(function(t){var l=o().t;return e.createElement(r,null,e.createElement(i,{$textColor:t.layout.header.textColor||"white"},l("header.title")),e.createElement(s,{$textColor:t.layout.header.textColor||"white"},l("header.subtitle")))});export{l as default};
@@ -0,0 +1,7 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const LoyaltyProgramText: import("styled-components").StyledComponent<"div", any, {
3
+ $textColor: string;
4
+ }, never>;
5
+ export declare const LoyaltyTitle: import("styled-components").StyledComponent<"div", any, {
6
+ $textColor: string;
7
+ }, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../../../ext/tslib/tslib.es6.mjs.js';import o from'./../../../../../ext/styled-components/dist/styled-components.browser.esm.js';var t,e,i,l=o.div(t||(t=n(["\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-bottom: 24px;\n"],["\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-bottom: 24px;\n"]))),r=o.div(e||(e=n(["\n color: ",";\n opacity: 0.6;\n\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px; /* 150% */\n"],["\n color: ",";\n opacity: 0.6;\n\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px; /* 150% */\n"])),function(n){return n.$textColor}),p=o.div(i||(i=n(["\n color: ",";\n font-size: 20.211px;\n font-style: normal;\n font-weight: 600;\n line-height: 25.263px;\n letter-spacing: -0.202px;\n"],["\n color: ",";\n font-size: 20.211px;\n font-style: normal;\n font-weight: 600;\n line-height: 25.263px;\n letter-spacing: -0.202px;\n"])),function(n){return n.$textColor});export{l as Container,r as LoyaltyProgramText,p as LoyaltyTitle};
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ type Props = {
4
+ viewModel: LoyaltyWidgetViewModel;
5
+ };
6
+ declare const UserLoggedSection: React.FC<Props>;
7
+ export default UserLoggedSection;
@@ -0,0 +1 @@
1
+ import e from"react";import{observer as t}from"mobx-react";import'./../../../../../ext/i18next/dist/esm/i18next.js';import'./../../../../../ext/react-i18next/dist/es/context.js';import'./../../../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as l}from'./../../../../../ext/react-i18next/dist/es/useTranslation.js';import{Container as r,TopRow as n,LeftSection as o,BadgeIconContainer as a,PointsContainer as s,Label as m,PointsValue as u,CurrentPoints as c,TotalPoints as i,RightSection as d,LevelBadge as E,BadgeText as p,ProgressBarContainer as f,ProgressBarFill as L}from"./style.js";import{BadgeIconTypeEnum as g}from"../../../../../models/loyalty-widget/types/index.js";import{BadgeLevel1 as v}from"../../../../../assets/badgeLevel1.js";import{BadgeLevel2 as b}from"../../../../../assets/badgeLevel2.js";import{BadgeLevel3 as j}from"../../../../../assets/badgeLevel3.js";import{BadgeLevel4 as x}from"../../../../../assets/badgeLevel4.js";var y=t(function(t){var y=t.viewModel,_=l().t,I=y.loyaltyWidget,h=y.user,T=I.settings;if(!h)return null;var V=h.totalPoint,w=h.customerTierId,M=(null==w?void 0:w.pointsRequired)||0,N=M>0?Math.min(V/M*100,100):0,P=e.useMemo(function(){var e=h.customerTierId;return e?"🏆 ".concat(e.name):"🏆 "},[T.badgeIconLevel,h.customerTierId]);return e.createElement(r,null,e.createElement(n,null,e.createElement(o,null,e.createElement(a,null,function(){switch(T.badgeIconLevel){case g.LEVEL_1:return e.createElement(v,null);case g.LEVEL_2:return e.createElement(b,null);case g.LEVEL_3:return e.createElement(j,null);case g.LEVEL_4:return e.createElement(x,null);default:return null}}()),e.createElement(s,null,e.createElement(m,null,_("header.earnedPoints")),e.createElement(u,null,e.createElement(c,null,V),e.createElement(i,null,"/ ",M)))),e.createElement(d,null,T.badgeIconLevel!==g.NONE&&e.createElement(E,null,e.createElement(p,null,P)))),e.createElement(f,null,e.createElement(L,{$percentage:N,$color:y.loyaltyWidget.header.background.bgColor||void 0})))});export{y as default};
@@ -0,0 +1,18 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const TopRow: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const LeftSection: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const RightSection: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const PointsContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const Label: import("styled-components").StyledComponent<"div", any, {}, never>;
7
+ export declare const PointsValue: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ export declare const CurrentPoints: import("styled-components").StyledComponent<"span", any, {}, never>;
9
+ export declare const TotalPoints: import("styled-components").StyledComponent<"span", any, {}, never>;
10
+ export declare const BadgeIconContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
11
+ export declare const Badge: import("styled-components").StyledComponent<"div", any, {}, never>;
12
+ export declare const LevelBadge: import("styled-components").StyledComponent<"div", any, {}, never>;
13
+ export declare const BadgeText: import("styled-components").StyledComponent<"span", any, {}, never>;
14
+ export declare const ProgressBarContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
15
+ export declare const ProgressBarFill: import("styled-components").StyledComponent<"div", any, {
16
+ $percentage: number;
17
+ $color?: string;
18
+ }, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../../../ext/tslib/tslib.es6.mjs.js';import e from'./../../../../../ext/styled-components/dist/styled-components.browser.esm.js';import{textSM as i,displayXSSemiBold as r,textLGSemiBold as a}from"../../../../components/style/typography.js";var t=e.div(b||(b=n(["\n display: flex;\n flex-direction: column;\n padding: 16px;\n gap: 20px;\n width: 100%;\n box-sizing: border-box;\n"],["\n display: flex;\n flex-direction: column;\n padding: 16px;\n gap: 20px;\n width: 100%;\n box-sizing: border-box;\n"]))),d=e.div(h||(h=n(["\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 12px;\n width: 100%;\n"],["\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 12px;\n width: 100%;\n"]))),p=e.div(u||(u=n(["\n display: flex;\n gap: 16px;\n align-items: center;\n"],["\n display: flex;\n gap: 16px;\n align-items: center;\n"]))),o=e.div(m||(m=n([""],[""]))),x=e.div(y||(y=n(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n"],["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n"]))),s=e.div(v||(v=n(["\n color: #121926;\n text-align: center;\n ","\n"],["\n color: #121926;\n text-align: center;\n ","\n"])),i),l=e.div(w||(w=n(["\n display: flex;\n align-items: flex-end;\n gap: 4px;\n"],["\n display: flex;\n align-items: flex-end;\n gap: 4px;\n"]))),g=e.span(j||(j=n(["\n color: #121926;\n ","\n"],["\n color: #121926;\n ","\n"])),r),f=e.span(k||(k=n(["\n color: #9aa4b2;\n ","\n"],["\n color: #9aa4b2;\n ","\n"])),a),c=e.div(B||(B=n(["\n svg {\n width: 40px;\n height: 40px;\n }\n"],["\n svg {\n width: 40px;\n height: 40px;\n }\n"])));e.div(z||(z=n(["\n display: flex;\n padding: 4px 10px;\n align-items: center;\n gap: 4px;\n border-radius: 999px;\n border: 1px solid var(--Gray-Blue-100, #eef2f6);\n background: var(--Basic-50, #fff);\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n"],["\n display: flex;\n padding: 4px 10px;\n align-items: center;\n gap: 4px;\n border-radius: 999px;\n border: 1px solid var(--Gray-Blue-100, #eef2f6);\n background: var(--Basic-50, #fff);\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n"])));var b,h,u,m,y,v,w,j,k,B,z,G,$,_,E,F=e.div(G||(G=n(["\n display: flex;\n padding: 4px 10px;\n justify-content: center;\n align-items: center;\n gap: 6px;\n\n border-radius: 8px;\n border: 0.6px solid var(--Gray-Blue-300, #cdd5df);\n background: var(--Basic-50, #fff);\n box-shadow: 0 1px 1px 0 rgba(38, 69, 109, 0.03),\n 0 1px 1px 0 rgba(38, 69, 109, 0.02), 0 2px 1px 0 rgba(38, 69, 109, 0.01),\n 0 -3px 1px 0 rgba(238, 242, 246, 0.5) inset;\n"],["\n display: flex;\n padding: 4px 10px;\n justify-content: center;\n align-items: center;\n gap: 6px;\n\n border-radius: 8px;\n border: 0.6px solid var(--Gray-Blue-300, #cdd5df);\n background: var(--Basic-50, #fff);\n box-shadow: 0 1px 1px 0 rgba(38, 69, 109, 0.03),\n 0 1px 1px 0 rgba(38, 69, 109, 0.02), 0 2px 1px 0 rgba(38, 69, 109, 0.01),\n 0 -3px 1px 0 rgba(238, 242, 246, 0.5) inset;\n"]))),q=e.span($||($=n(["\n color: #364152;\n text-align: center;\n\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n"],["\n color: #364152;\n text-align: center;\n\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n"]))),A=e.div(_||(_=n(["\n width: 100%;\n height: 8px;\n border-radius: 4px;\n background: #eef2f6;\n overflow: hidden;\n"],["\n width: 100%;\n height: 8px;\n border-radius: 4px;\n background: #eef2f6;\n overflow: hidden;\n"]))),C=e.div(E||(E=n(["\n width: ","%;\n height: 100%;\n\n border-radius: 4px;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.5) 0%,\n rgba(255, 255, 255, 0.5) 100%\n ),\n ",";\n\n transition: width 0.3s ease-in-out;\n"],["\n width: ","%;\n height: 100%;\n\n border-radius: 4px;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.5) 0%,\n rgba(255, 255, 255, 0.5) 100%\n ),\n ",";\n\n transition: width 0.3s ease-in-out;\n"])),function(n){return n.$percentage},function(n){return n.$color||"#4F46E5"});export{c as BadgeIconContainer,q as BadgeText,t as Container,g as CurrentPoints,s as Label,p as LeftSection,F as LevelBadge,x as PointsContainer,l as PointsValue,A as ProgressBarContainer,C as ProgressBarFill,o as RightSection,d as TopRow,f as TotalPoints};
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ type Props = {
4
+ viewModel: LoyaltyWidgetViewModel;
5
+ onClose: () => void;
6
+ onNavigate?: (screen: string) => void;
7
+ };
8
+ declare const MainScreen: React.FC<Props>;
9
+ export default MainScreen;
@@ -0,0 +1 @@
1
+ import e from"react";import{observer as t}from"mobx-react";import'./../../../ext/i18next/dist/esm/i18next.js';import'./../../../ext/react-i18next/dist/es/context.js';import'./../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as o}from'./../../../ext/react-i18next/dist/es/useTranslation.js';import n from"./header/index.js";import r from"../../components/section-title/index.js";import i from"./earning-methods-section/index.js";import m from"./spending-methods-section/index.js";import s from"./program-info-section/index.js";import{Container as a,Content as l,Section as d}from"./style.js";import{CARD_OVERLAP_TOP as c}from"./header/style.js";import{EarningMethodTypeEnum as p}from"../../../models/types/index.js";import{ImageTypeEnum as u}from"../../../models/loyalty-widget/types/index.js";var f=t(function(t){var f=t.viewModel,g=t.onClose,x=t.onNavigate,h=o().t,E=e.useState(0),T=E[0],y=E[1],j=e.useState(56),v=j[0],M=j[1],_=Math.max(T-c+32,32),C=f.user,S=f.spendingMethods.length>0,w=!!C&&S;return e.createElement(a,null,e.createElement(n,{viewModel:f,onClose:g,onCardHeightChange:y,headerGap:v}),e.createElement(l,{$topPadding:_,onScroll:function(e){var t=f.loyaltyWidget.header.logo;if(t.type===u.SHOW&&t.src){var o=e.currentTarget.scrollTop,n=Math.max(16,56-o);M(n)}}},e.createElement(d,null,e.createElement(r,{style:{paddingTop:0}},h(w?"main_screen.spendingMethodsTitle":"main_screen.earningMethodsTitle")),w?e.createElement(m,{viewModel:f,mode:"card",getActionProps:function(e){return null}}):e.createElement(i,{viewModel:f,getActionProps:function(e){return e.methodType===p.CUSTOMER_REGISTER?{actionText:h("common.create"),onClick:function(){}}:e.methodType===p.ENABLE_SUBSCRIPTION?{actionText:h("common.allow"),onClick:function(){}}:null}})),e.createElement(d,null,e.createElement(r,{style:{paddingTop:0}},h("main_screen.programInfoTitle")),e.createElement(s,{viewModel:f,onNavigate:x}))))});export{f as default};
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ type Props = {
4
+ viewModel: LoyaltyWidgetViewModel;
5
+ onNavigate?: (screen: string) => void;
6
+ };
7
+ declare const ProgramInfoSection: React.FC<Props>;
8
+ export default ProgramInfoSection;
@@ -0,0 +1 @@
1
+ import e from"react";import'./../../../../ext/i18next/dist/esm/i18next.js';import'./../../../../ext/react-i18next/dist/es/context.js';import'./../../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as t}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import{observer as n}from"mobx-react";import{LoyaltyWidgetScreenTypeEnum as l}from"../../../../models/types/index.js";import{Container as r,GridContainer as o,SmallCard as m,SmallCardIconWrapper as i,SmallCardBottom as a,Title as c,ArrowWrapper as s,RowCard as u}from"./style.js";import{CouponPercent as E}from"../../../../assets/widget-icons/normal/couponPercent.js";import{MoneyAdd01 as d}from"../../../../assets/widget-icons/normal/moneyAdd01.js";var _=function(){return e.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M7.5 15L12.5 10L7.5 5",stroke:"currentColor",strokeWidth:"1.66667",strokeLinecap:"round",strokeLinejoin:"round"}))},p=n(function(n){var p=n.viewModel,f=n.onNavigate,C=t().t,v=!!p.user;return e.createElement(r,null,e.createElement(o,null,e.createElement(m,{onClick:function(){return null==f?void 0:f(l.CREDIT_EARNING_METHODS_SCREEN)}},e.createElement(i,null,e.createElement(d,null)),e.createElement(a,null,e.createElement(c,null,C("main_screen.earnPoints")),e.createElement(s,null,e.createElement(_,null)))),e.createElement(m,{onClick:function(){return null==f?void 0:f(l.CREDIT_SPENDING_METHODS_SCREEN)}},e.createElement(i,null,e.createElement(E,null)),e.createElement(a,null,e.createElement(c,null,C("main_screen.allRewards")),e.createElement(s,null,e.createElement(_,null))))),v&&e.createElement(e.Fragment,null,e.createElement(u,{onClick:function(){return null==f?void 0:f(l.LOYALTY_LEVEL_SCREEN)}},e.createElement(c,null,C("main_screen.tiers")),e.createElement(s,null,e.createElement(_,null))),e.createElement(u,{onClick:function(){return null==f?void 0:f(l.CREDIT_HISTORY_SCREEN)}},e.createElement(c,null,C("main_screen.pointHistory")),e.createElement(s,null,e.createElement(_,null)))))});export{p as default};
@@ -0,0 +1,8 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const GridContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const SmallCard: import("styled-components").StyledComponent<"button", any, {}, never>;
4
+ export declare const SmallCardIconWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const SmallCardBottom: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const Title: import("styled-components").StyledComponent<"span", any, {}, never>;
7
+ export declare const RowCard: import("styled-components").StyledComponent<"button", any, {}, never>;
8
+ export declare const ArrowWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../../ext/tslib/tslib.es6.mjs.js';import e from'./../../../../ext/styled-components/dist/styled-components.browser.esm.js';import{textSMMedium as i}from"../../../components/style/typography.js";var r,t,o,d,p,s,a,f,l=e.div(r||(r=n(["\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 0 24px;\n"],["\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 0 24px;\n"]))),x=e.div(t||(t=n(["\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n"],["\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n"]))),c=e.button(o||(o=n(["\n display: flex;\n flex-direction: column;\n padding: 12px;\n padding-left: 14px;\n gap: 12px;\n position: relative;\n border-radius: 12px;\n border: 1px solid #eef2f6;\n background: #fff;\n cursor: pointer;\n width: 100%;\n align-items: flex-start;\n\n &:hover {\n background: #f8fafc;\n }\n"],["\n display: flex;\n flex-direction: column;\n padding: 12px;\n padding-left: 14px;\n gap: 12px;\n position: relative;\n border-radius: 12px;\n border: 1px solid #eef2f6;\n background: #fff;\n cursor: pointer;\n width: 100%;\n align-items: flex-start;\n\n &:hover {\n background: #f8fafc;\n }\n"]))),g=e.div(d||(d=n(["\n display: flex;\n width: 36px;\n height: 36px;\n justify-content: center;\n align-items: center;\n border-radius: 8px;\n border: 1px solid #e3e8ef;\n background: #fff;\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n color: #4b5565;\n"],["\n display: flex;\n width: 36px;\n height: 36px;\n justify-content: center;\n align-items: center;\n border-radius: 8px;\n border: 1px solid #e3e8ef;\n background: #fff;\n box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);\n color: #4b5565;\n"]))),u=e.div(p||(p=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"]))),b=e.span(s||(s=n(["\n color: #121926;\n ","\n"],["\n color: #121926;\n ","\n"])),i),m=e.button(a||(a=n(["\n display: flex;\n padding: 12px 12px 12px 16px;\n justify-content: space-between;\n align-items: center;\n border-radius: 12px;\n border: 1px solid #eef2f6;\n background: #fff;\n cursor: pointer;\n width: 100%;\n\n &:hover {\n background: #f8fafc;\n }\n"],["\n display: flex;\n padding: 12px 12px 12px 16px;\n justify-content: space-between;\n align-items: center;\n border-radius: 12px;\n border: 1px solid #eef2f6;\n background: #fff;\n cursor: pointer;\n width: 100%;\n\n &:hover {\n background: #f8fafc;\n }\n"]))),y=e.div(f||(f=n(["\n display: flex;\n justify-content: center;\n align-items: center;\n color: #9AA4B2;\n"],["\n display: flex;\n justify-content: center;\n align-items: center;\n color: #9AA4B2;\n"])));export{y as ArrowWrapper,l as Container,x as GridContainer,m as RowCard,c as SmallCard,u as SmallCardBottom,g as SmallCardIconWrapper,b as Title};
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ import { LoyaltyProgramSpendingMethod } from "models/loyalty-program-spending-method";
4
+ type Props = {
5
+ viewModel: LoyaltyWidgetViewModel;
6
+ method: LoyaltyProgramSpendingMethod;
7
+ };
8
+ declare const DynamicSpendingSlider: React.FC<Props>;
9
+ export default DynamicSpendingSlider;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n,__awaiter as e,__generator as t}from'./../../../../ext/tslib/tslib.es6.mjs.js';import o,{useState as i,useEffect as r}from"react";import{observer as a}from"mobx-react";import'./../../../../ext/i18next/dist/esm/i18next.js';import'./../../../../ext/react-i18next/dist/es/context.js';import'./../../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as l}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import s from'./../../../../ext/styled-components/dist/styled-components.browser.esm.js';import{textSM as d,Badge as p}from"../../../components/style/typography.js";import u from"../../../components/button/index.js";import{HeaderBackgroundTypeEnum as c}from"../../../../models/loyalty-widget/types/index.js";var f,m,x,b,g,h,y,v,w,k,E,j,$=s.div(f||(f=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"]))),z=s.div(m||(m=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"]))),C=s.div(x||(x=n(["\n color: #364152;\n ","\n"],["\n color: #364152;\n ","\n"])),d),I=s.div(b||(b=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"]))),S=s.div(g||(g=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"]))),_=s.div(h||(h=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"]))),M=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}),F=s.div(v||(v=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}),L=s.input(w||(w=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"]))),B=s.div(E||(E=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"]))),G=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}),N=a(function(n){var a=n.viewModel,s=n.method,d=l().t,f=i(!1),m=f[0],x=f[1],b=a.user,g=a.loyaltyWidget,h=s.discountSettings;if(!b||!h)return null;var y=h.point,v=h.discountAmount||0;if(y<=0)return null;var w=Math.floor(b.totalPoint/y)*y,k=w>0?w:y,E=i(w),j=E[0],N=E[1];r(function(){j>w&&N(w)},[w]);var T=j/k*100,A=j/y*v,D=g.header.background.bgColor||"#7B61FF",W=g.header.background.type===c.GRADIENT,R=k/y,U=[];if(R>1&&R<20)for(var q=1;q<R;q++)U.push(q/R*100);var H=w>0;return o.createElement(o.Fragment,null,o.createElement($,null,o.createElement(z,null,o.createElement(C,null,j," ",d("common.points")),o.createElement(p,null,Number(A).toFixed(2)," ",a.currency)),o.createElement(I,null,o.createElement(S,null,o.createElement(_,null,U.map(function(n,e){return o.createElement(G,{key:e,$left:n})})),o.createElement(M,{$percentage:T,$bgColor:D,$isGradient:W}),o.createElement(F,{$left:T,$bgColor:D}),o.createElement(L,{type:"range",min:0,max:k,step:y,value:j,onChange:function(n){var e=Number(n.target.value);N(e)},disabled:!H})),o.createElement(P,null,o.createElement(B,null,"0"),o.createElement(B,null,k)))),o.createElement(u,{button:g.button,fontSize:"textSMMedium",paddingSize:"medium",fullWidth:!0,disabled:0===j||m||!H,isLoading:m,onClick:function(){return e(void 0,void 0,void 0,function(){var n;return t(this,function(e){switch(e.label){case 0:if(!a.cartId||0===j)return[2];x(!0),e.label=1;case 1:return e.trys.push([1,,3,4]),[4,null===(n=a.callbacks)||void 0===n?void 0:n.useLoyaltyPoints({amount:A,cartId:a.cartId,loyaltyProgramId:s.loyaltyProgramId,loyaltySpendingMethodId:s.id})];case 2:return e.sent(),[3,4];case 3:return x(!1),[7];case 4:return[2]}})})}},d("common.convert")))});export{N as default};
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ import { LoyaltyProgramSpendingMethod } from "models/loyalty-program-spending-method";
4
+ type SectionProps = {
5
+ viewModel: LoyaltyWidgetViewModel;
6
+ mode?: "card" | "accordion";
7
+ getActionProps?: (method: LoyaltyProgramSpendingMethod) => {
8
+ actionText: string;
9
+ onClick: () => void;
10
+ } | null;
11
+ };
12
+ declare const SpendingMethodsSection: React.FC<SectionProps>;
13
+ export default SpendingMethodsSection;
@@ -0,0 +1 @@
1
+ import{__awaiter as t,__generator as e}from'./../../../../ext/tslib/tslib.es6.mjs.js';import i,{useState as o}from"react";import{observer as n}from"mobx-react";import'./../../../../ext/i18next/dist/esm/i18next.js';import'./../../../../ext/react-i18next/dist/es/context.js';import'./../../../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import{useTranslation as d}from'./../../../../ext/react-i18next/dist/es/useTranslation.js';import{LoyaltyProgramMethodSpendingTypeEnum as r,LoyaltyProgramFilterTypeEnum as s}from"../../../../models/types/index.js";import{getSpendingMethodTitle as l,getSpendingMethodDescription as a,getSpendingMethodIcon as c}from"../../../../utils.js";import m from"../../../components/loyalty-method-card/index.js";import u from"../../../components/button/index.js";import{getFreeProductName as p,getFilterDetails as g}from"../../../utils/loyalty-details.js";import y from"./dynamic-slider.js";var v=n(function(n){var v,f,E,x=n.method,h=n.viewModel,R=n.mode,T=n.actionText,A=n.padding,C=n.onClick,D=d().t,b=o(!1),I=b[0],S=b[1],_=h.loyaltyWidget,M=l(x),O=a(x,h.currency),P=c(x.type,_.settings.widgetIconType),j=x.productFilters||[],k=j.length>0,w=x.type===r.FREE_PRODUCT,U=x.type===r.FIXED_AMOUNT,L=w&&(null===(v=x.discountSettings)||void 0===v?void 0:v.freeProductId)?p(h,x.discountSettings.freeProductId):void 0,B=w&&!!L,z=null===(f=x.pointUsageLimit)||void 0===f?void 0:f.minPointLimit,N=null===(E=x.pointUsageLimit)||void 0===E?void 0:E.maxPointLimit,W=z&&z>0||N&&N>0,F=U&&!x.isDynamic&&!!h.user&&!!h.cartId,G=U&&x.isDynamic&&!!h.user&&!!h.cartId,H=k||B||W||F||G,Y="accordion"===R&&H?"accordion":"card";return i.createElement(m,{title:M,description:O,icon:P,action:T&&C?{text:T,onClick:C}:void 0,isCompleted:!1,mode:Y,padding:A,settings:{borderRadius:_.settings.cartBorderRadius,widgetIconType:_.settings.widgetIconType,button:_.button}},H?i.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},z&&z>0&&i.createElement("div",{style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},D("spendingMethods.minPointLimit",{points:z})),B&&i.createElement("div",{style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},D("spendingMethods.FREE_PRODUCT.description",{product:L})),j.map(function(t,e){var o=g(h,t.type,t.idList);if(!o.length)return null;var n=o[0],d=n.name,r="";switch(n.type){case s.CATEGORY:case s.DYNAMIC_CATEGORY:r=D("earningMethods.ORDER_CREATE.BASE.descriptionOnlyCategory",{category:d});break;case s.PRODUCT_AND_VARIANT:r=D("earningMethods.ORDER_CREATE.BASE.descriptionOnlyProduct",{product:d});break;case s.PRODUCT_BRAND:r=D("earningMethods.ORDER_CREATE.BASE.descriptionOnlyBrand",{brand:d});break;case s.PRODUCT_TAG:r=D("earningMethods.ORDER_CREATE.BASE.descriptionOnlyTag",{tag:d})}return!r&&d&&(r=d),r?i.createElement("div",{key:e,style:{fontSize:"14px",color:"#475467",lineHeight:"20px",fontWeight:400}},r):null}),F&&i.createElement(u,{button:_.button,fontSize:"textSMMedium",paddingSize:"medium",fullWidth:!0,disabled:!!(h.user&&x.discountSettings&&h.user.totalPoint<x.discountSettings.point),isLoading:I,onClick:function(){return t(void 0,void 0,void 0,function(){var t,i;return e(this,function(e){switch(e.label){case 0:if(!h.cartId)return[2];S(!0),e.label=1;case 1:return e.trys.push([1,,3,4]),[4,null===(t=h.callbacks)||void 0===t?void 0:t.useLoyaltyPoints({amount:null===(i=x.discountSettings)||void 0===i?void 0:i.discountAmount,cartId:h.cartId,loyaltyProgramId:x.loyaltyProgramId,loyaltySpendingMethodId:x.id})];case 2:return e.sent(),[3,4];case 3:return S(!1),[7];case 4:return[2]}})})}},"Sepetimde Kullan"),G&&i.createElement(y,{viewModel:h,method:x})):null)}),f=n(function(t){var e=t.viewModel,o=t.mode,n=void 0===o?"card":o,d=t.getActionProps,r=e.spendingMethods,s="accordion"===n?"16px":void 0;return i.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"12px",padding:"accordion"===n?"0 16px":"0 24px"}},r.map(function(t){var o=d?d(t):null;return i.createElement(v,{key:t.id,method:t,viewModel:e,mode:n,padding:s,actionText:null==o?void 0:o.actionText,onClick:null==o?void 0:o.onClick})}))});export{f as default};
@@ -0,0 +1,5 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const Content: import("styled-components").StyledComponent<"div", any, {
3
+ $topPadding: number;
4
+ }, never>;
5
+ export declare const Section: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../../../ext/tslib/tslib.es6.mjs.js';import o from'./../../../ext/styled-components/dist/styled-components.browser.esm.js';var f,t,e,r=o.div(f||(f=n(["\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #ffffff;\n"],["\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: #ffffff;\n"]))),d=o.div(t||(t=n(["\n flex: 1;\n overflow-y: auto;\n padding-top: ",";\n background: #ffffff;\n\n scroll-behavior: smooth;\n"],["\n flex: 1;\n overflow-y: auto;\n padding-top: ",";\n background: #ffffff;\n\n scroll-behavior: smooth;\n"])),function(n){var o=n.$topPadding;return"".concat(o,"px")}),i=o.div(e||(e=n(["\n margin-bottom: 24px;\n"],["\n margin-bottom: 24px;\n"])));export{r as Container,d as Content,i as Section};
@@ -0,0 +1,6 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const Drawer: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const ScreenWrapper: import("styled-components").StyledComponent<"div", any, {
4
+ $isActive: boolean;
5
+ $isMain: boolean;
6
+ }, never>;
@@ -0,0 +1 @@
1
+ import{__makeTemplateObject as n}from'./../ext/tslib/tslib.es6.mjs.js';import o,{css as t}from'./../ext/styled-components/dist/styled-components.browser.esm.js';var i,r,e,s,f,a=o.div(i||(i=n(["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n width: 100%;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9999;\n"],["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n width: 100%;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9999;\n"]))),d=o.div(r||(r=n(["\n position: absolute;\n top: 0;\n right: 0;\n width: 520px;\n max-width: 100%;\n height: 100%;\n background-color: #ffffff;\n \n overflow-x: hidden;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15);\n"],["\n position: absolute;\n top: 0;\n right: 0;\n width: 520px;\n max-width: 100%;\n height: 100%;\n background-color: #ffffff;\n \n overflow-x: hidden;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15);\n"]))),h=o.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(o){var i=o.$isActive;return o.$isMain?t(e||(e=n(["\n transform: translateX(",");\n z-index: 1;\n "],["\n transform: translateX(",");\n z-index: 1;\n "])),i?"0%":"-100%"):t(s||(s=n(["\n transform: translateX(",");\n z-index: 2;\n "],["\n transform: translateX(",");\n z-index: 2;\n "])),i?"0%":"100%")});export{a as Container,d as Drawer,h as ScreenWrapper};
@@ -0,0 +1,2 @@
1
+ import i18n from "i18next";
2
+ export default i18n;
@@ -0,0 +1 @@
1
+ import e from'./../../ext/i18next/dist/esm/i18next.js';export{default}from"../../node_modules/i18next/dist/esm/i18next.js";import"react";import'./../../ext/react-i18next/dist/es/context.js';import'./../../ext/react-i18next/dist/es/IcuTransUtils/htmlEntityDecoder.js';import'./../../ext/use-sync-external-store/shim/index.js';import{initReactI18next as t}from'./../../ext/react-i18next/dist/es/initReactI18next.js';import s from"./locales/tr.json.js";import o from"./locales/en.json.js";var n={tr:{translation:s},en:{translation:o}};e.use(t).init({resources:n,lng:"tr",fallbackLng:"tr",interpolation:{escapeValue:!1}});
@@ -0,0 +1 @@
1
+ var t={points:"Points",view:"View",create:"Create",allow:"Allow",use:"Use",review:"Review",login:"Login",register:"Register"},e={earningMethodsTitle:"Ways to Earn Points",programInfoTitle:"Program Information"},r={title:"Loyalty Program",subtitle:"Earn as You Spend",register_title:"Join Now",registerDescription:"Unlock exciting benefits and get access to exclusive rewards.",registerButton:"Register Now",haveAccount:"Already have an account?",earnedPoints:"Earned Points"},o={minPointLimit:"Minimum {{points}} points can be converted.",FIXED_AMOUNT:{title:"Fixed Amount Discount"},RATIO:{title:"Percentage Discount"},FREE_SHIPPING:{title:"Free Shipping"},FREE_PRODUCT:{title:"Free Product",description:"{{product}} product will be added to cart for free."}},i={spent_amount_description:"{{points}} points for every {{amount}}₺ spent",min_order_amount_description:"Minimum order amount must be {{amount}} TL.",category_filter_description:"A product from {{category}} category must be added to the order.",product_filter_description:"Product {{product}} must be added to the order."},n={xPoints:"{{points}} Points",xPointsForEachProduct:"{{points}} points per product",CUSTOMER_REGISTER:{title:"Create Account"},CUSTOMER_REVIEW:{title:"Review Products"},ENABLE_SUBSCRIPTION:{title:"Subscribe to Communication"},ORDER_CREATE:{RECEIVE_POINTS_ON_SPEND:{title:"Earn as You Spend",description:"{{points}} points for every {{amount}}{{currency}} spent"},BASE:{title:"Create Order",descriptionStaticMinimum:"Minimum order amount must be {{amount}}{{currency}}.",descriptionStaticMaximum:"Maximum order amount must be {{amount}}{{currency}}.",descriptionDynamicMinimum:"Minimum order amount must be {{amount}}{{currency}}. A product from {{category}} category must be added to the order.",descriptionDynamicMaximum:"Maximum order amount must be {{amount}}{{currency}}. A product from {{category}} category must be added to the order.",descriptionOnlyCategory:"A product from {{category}} category must be added to the order.",descriptionOnlyProduct:"Product {{product}} must be added to the order.",descriptionOnlyBrand:"A product from {{brand}} brand must be added to the order.",descriptionOnlyTag:"A product with {{tag}} tag must be added to the order."}},BUY_PRODUCT:{title:"Buy Product",description:"A product from {{category}} category must be purchased."},CUSTOMER_SEGMENT:{title:"Customer Segment"}},d={creditEarningMethods:"Credit Earning Methods",creditSpendingMethods:"Credit Spending Methods",creditHistory:"Credit History",loyaltyLevel:"Loyalty Level"},a={common:t,main_screen:e,header:r,spendingMethods:o,earning_methods:i,earningMethods:n,screens:d};export{t as common,a as default,n as earningMethods,i as earning_methods,r as header,e as main_screen,d as screens,o as spendingMethods};
@@ -0,0 +1 @@
1
+ var e={points:"Puan",view:"Görüntüle",create:"Oluştur",allow:"İzin Ver",use:"Kullan",review:"İncele",login:"Giriş Yap",register:"Kayıt Ol",convert:"Dönüştür"},i={earningMethodsTitle:"Puan Kazanma Yöntemleri",spendingMethodsTitle:"Kullanabileceğin Ödüller",programInfoTitle:"Program Bilgileri",earnPoints:"Puan Kazan",allRewards:"Tüm Ödüller",tiers:"Kademeler",pointHistory:"Puan Geçmişi"},r={minPointLimit:"En az {{points}} puan dönüştürülebilir.",FIXED_AMOUNT:{title:"Tutar İndirimi"},RATIO:{title:"Oransal İndirim"},FREE_SHIPPING:{title:"Ücretsiz Kargo"},FREE_PRODUCT:{title:"Hediye Ürün",description:"{{product}} ürünü ücretsiz olarak sepete eklenir."}},n={title:"Sadakat Programı",subtitle:"Harcama Yaptıkça Kazan",register_title:"Üye Olun",registerDescription:"Heyecan verici avantajların kilidini açmanın ve özel ödüllere erişim kartınızdır.",registerButton:"Şimdi Kayıt Ol",haveAccount:"Zaten bir hesabın var mı?",earnedPoints:"Kazanılan Puan"},a={xPoints:"{{points}} Puan",xPointsForEachProduct:"Ürün başına {{points}} puan",CUSTOMER_REGISTER:{title:"Hesap Oluştur"},CUSTOMER_REVIEW:{title:"Ürünlere Yorum Yap"},ENABLE_SUBSCRIPTION:{title:"İletişim İzni Verme"},ORDER_CREATE:{RECEIVE_POINTS_ON_SPEND:{title:"Harcadıkça Puan Kazan",description:"Harcanan her {{amount}}{{currency}} için {{points}} puan"},BASE:{title:"Sipariş Oluşturma",descriptionStaticMinimum:"Sipariş tutarının minimum {{amount}}{{currency}} olması gerekir.",descriptionStaticMaximum:"Sipariş tutarının maksimum {{amount}}{{currency}} olması gerekir.",descriptionDynamicMinimum:"Sipariş tutarının minimum {{amount}}{{currency}} olması gerekir. Siparişe {{category}} kategorisinden bir ürün eklenmesi gerekir.",descriptionDynamicMaximum:"Sipariş tutarının maksimum {{amount}}{{currency}} olması gerekir. Siparişe {{category}} kategorisinden bir ürün eklenmesi gerekir.",descriptionOnlyCategory:"Siparişe {{category}} kategorisinden bir ürün eklenmesi gerekir.",descriptionOnlyProduct:"Siparişe {{product}} ürününün eklenmesi gerekir.",descriptionOnlyBrand:"Siparişe {{brand}} markasından bir ürün eklenmesi gerekir.",descriptionOnlyTag:"Siparişe {{tag}} etiketine sahip bir ürün eklenmesi gerekir.",genericCategory:"{{category}} kategorisinde",genericProduct:"{{product}} ürünü içeren",genericBrand:"{{brand}} markasında",genericTag:"{{tag}} etiketinde",descriptionSuffix:"sipariş oluşturulması gerekir."}},BUY_PRODUCT:{title:"Ürün Satın Al",description:"{{category}} kategorisinden bir ürün satın alınması gerekir."},CUSTOMER_SEGMENT:{title:"Müşteri Segmenti"}},t={earnedTitle:"Puan Kazanıldı",spentTitle:"Puan Harcandı"},l={creditEarningMethods:"Puan Kazanma Yöntemleri",creditSpendingMethods:"Puan Harcama Yöntemleri",creditHistory:"Puan Geçmişi",loyaltyLevel:"Kademeler",loyaltyLevelScreen:{afterEarning:"kazandıktan sonra",multiplierPrefix:"Bu kademeye geçtiğinizde kazandığınız puanlar",multiplierSuffix:"ile çarpılır.",reachNextTier:"{{tierName}} kademesine ulaşmak için {{points}} puan daha toplayın.",allTiersCompleted:"Tüm kademeleri tamamladınız!"}},m={common:e,main_screen:i,spendingMethods:r,header:n,earningMethods:a,history:t,screens:l};export{e as common,m as default,a as earningMethods,n as header,t as history,i as main_screen,l as screens,r as spendingMethods};
@@ -0,0 +1,12 @@
1
+ import { TFunction } from "i18next";
2
+ import { LoyaltyWidgetViewModel } from "models";
3
+ import { LoyaltyProgramEarningMethod } from "models/loyalty-program-earning-method";
4
+ import { LoyaltyProgramFilterTypeEnum } from "models/types";
5
+ export type FilterDetail = {
6
+ type: LoyaltyProgramFilterTypeEnum;
7
+ name: string;
8
+ id: string;
9
+ };
10
+ export declare const getFilterDetails: (viewModel: LoyaltyWidgetViewModel, filterType: LoyaltyProgramFilterTypeEnum, idList: string[]) => FilterDetail[];
11
+ export declare const getFreeProductName: (viewModel: LoyaltyWidgetViewModel, productId: string) => string | undefined;
12
+ export declare const getEarningMethodDescriptionV2: (t: TFunction, earningMethod: LoyaltyProgramEarningMethod, viewModel: LoyaltyWidgetViewModel) => string | undefined;