@everymatrix/player-elevate-card 1.44.0 → 1.45.0

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 (87) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  2. package/dist/cjs/general-styling-wrapper_5.cjs.entry.js +649 -785
  3. package/dist/cjs/index-b1cf5517.js +1634 -0
  4. package/dist/cjs/loader.cjs.js +7 -13
  5. package/dist/cjs/player-elevate-card.cjs.js +17 -11
  6. package/dist/collection/collection-manifest.json +6 -6
  7. package/dist/collection/components/player-elevate-card/index.js +1 -0
  8. package/dist/collection/components/player-elevate-card/player-elevate-card-items.js +17 -38
  9. package/dist/collection/components/player-elevate-card/player-elevate-card.css +0 -1
  10. package/dist/collection/components/player-elevate-card/player-elevate-card.js +271 -287
  11. package/dist/collection/components/player-elevate-card-data/player-elevate-card-data.css +1 -1
  12. package/dist/collection/components/player-elevate-card-data/player-elevate-card-data.js +224 -215
  13. package/dist/collection/components/player-elevate-loyaltycard/player-elevate-loyaltycard.css +0 -7
  14. package/dist/collection/components/player-elevate-loyaltycard/player-elevate-loyaltycard.js +277 -297
  15. package/dist/collection/components/player-elevate-pointcard/player-elevate-pointcard.js +309 -329
  16. package/dist/collection/utils/locale.utils.js +133 -133
  17. package/dist/collection/utils/utils.js +49 -49
  18. package/dist/esm/app-globals-0f993ce5.js +3 -0
  19. package/dist/esm/general-styling-wrapper_5.entry.js +649 -785
  20. package/dist/esm/index-cd7a4beb.js +1604 -0
  21. package/dist/esm/loader.js +7 -13
  22. package/dist/esm/player-elevate-card.js +14 -11
  23. package/dist/player-elevate-card/p-37a424ba.entry.js +1 -0
  24. package/dist/player-elevate-card/p-ba534fa2.js +2 -0
  25. package/dist/player-elevate-card/p-e1255160.js +1 -0
  26. package/dist/player-elevate-card/player-elevate-card.esm.js +1 -1
  27. package/dist/stencil.config.dev.js +17 -0
  28. package/dist/stencil.config.js +12 -27
  29. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/player-elevate-card/.stencil/packages/stencil/player-elevate-card/stencil.config.d.ts +2 -0
  30. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-monorepo/packages/stencil/player-elevate-card/.stencil/packages/stencil/player-elevate-card/stencil.config.dev.d.ts +2 -0
  31. package/dist/types/components/player-elevate-card/index.d.ts +1 -0
  32. package/dist/types/components/player-elevate-card/player-elevate-card-items.d.ts +6 -6
  33. package/dist/types/components/player-elevate-card/player-elevate-card.d.ts +51 -51
  34. package/dist/types/components/player-elevate-card-data/player-elevate-card-data.d.ts +19 -20
  35. package/dist/types/components/player-elevate-loyaltycard/player-elevate-loyaltycard.d.ts +51 -51
  36. package/dist/types/components/player-elevate-pointcard/player-elevate-pointcard.d.ts +64 -64
  37. package/dist/types/components.d.ts +16 -1
  38. package/dist/types/models/player-elevate.d.ts +26 -26
  39. package/dist/types/stencil-public-runtime.d.ts +142 -33
  40. package/dist/types/utils/locale.utils.d.ts +6 -6
  41. package/loader/cdn.js +1 -3
  42. package/loader/index.cjs.js +1 -3
  43. package/loader/index.d.ts +13 -1
  44. package/loader/index.es2017.js +1 -3
  45. package/loader/index.js +1 -3
  46. package/loader/package.json +1 -0
  47. package/package.json +8 -6
  48. package/dist/cjs/index-b6d0684c.js +0 -1674
  49. package/dist/components/general-styling-wrapper.js +0 -6
  50. package/dist/components/general-styling-wrapper2.js +0 -103
  51. package/dist/components/index.d.ts +0 -26
  52. package/dist/components/index.js +0 -1
  53. package/dist/components/player-elevate-card-data.d.ts +0 -11
  54. package/dist/components/player-elevate-card-data.js +0 -6
  55. package/dist/components/player-elevate-card-data2.js +0 -635
  56. package/dist/components/player-elevate-card-items.js +0 -2250
  57. package/dist/components/player-elevate-card.d.ts +0 -11
  58. package/dist/components/player-elevate-card.js +0 -126
  59. package/dist/components/player-elevate-loyaltycard.d.ts +0 -11
  60. package/dist/components/player-elevate-loyaltycard.js +0 -132
  61. package/dist/components/player-elevate-pointcard.d.ts +0 -11
  62. package/dist/components/player-elevate-pointcard.js +0 -135
  63. package/dist/components/static/button-default.svg +0 -42
  64. package/dist/components/static/button-disabled.svg +0 -4
  65. package/dist/components/static/button-hover.svg +0 -4
  66. package/dist/components/static/button-level.svg +0 -27
  67. package/dist/components/static/button-pressed.svg +0 -18
  68. package/dist/components/static/button-redeem.svg +0 -36
  69. package/dist/components/static/card-ground-over.png +0 -0
  70. package/dist/components/static/card-ground-over.svg +0 -903
  71. package/dist/components/static/card-ground.png +0 -0
  72. package/dist/components/static/card-ground.svg +0 -34
  73. package/dist/components/static/info.svg +0 -4
  74. package/dist/components/static/level-badge.png +0 -0
  75. package/dist/components/static/level-percent.svg +0 -80
  76. package/dist/components/static/tips-info.svg +0 -21
  77. package/dist/components/static/user.svg +0 -3
  78. package/dist/esm/index-6beb1563.js +0 -1645
  79. package/dist/esm/polyfills/core-js.js +0 -11
  80. package/dist/esm/polyfills/css-shim.js +0 -1
  81. package/dist/esm/polyfills/dom.js +0 -79
  82. package/dist/esm/polyfills/es5-html-element.js +0 -1
  83. package/dist/esm/polyfills/index.js +0 -34
  84. package/dist/esm/polyfills/system.js +0 -6
  85. package/dist/player-elevate-card/p-10bf1b0e.entry.js +0 -1
  86. package/dist/player-elevate-card/p-523c2803.js +0 -1
  87. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-stencil/packages/player-elevate-card/.stencil/packages/player-elevate-card/stencil.config.d.ts +0 -2
@@ -1,222 +1,231 @@
1
- import { Component, Prop, State, Event, Element, Listen, Watch } from '@stencil/core';
2
- import { differenceInCalendarDays, differenceInHours, isBefore } from 'date-fns';
3
- import { translateWithParams } from '../../utils/locale.utils';
4
- import '@everymatrix/general-styling-wrapper';
1
+ import { differenceInCalendarDays, differenceInHours, isBefore } from "date-fns";
2
+ import { translateWithParams } from "../../utils/locale.utils";
3
+ import "../../../../../general-styling-wrapper/dist/types/index";
5
4
  import { updateProgressSvg } from "../../utils/utils";
6
5
  export class PlayerElevateCardData {
7
- handleWindowResizs() {
8
- this.initLevelProgressbar();
9
- }
10
- onParamsChanged() {
11
- this.loadElevateInfo();
12
- }
13
- redeemGiftButtonHandler() {
14
- this.loadElevateInfo();
15
- }
16
- onRedeemClick() {
17
- window.postMessage({ type: 'BEERedeemClicked' }, window.location.href);
18
- }
19
- loadLevels() {
20
- let url = new URL(`${this.params.endpoint}/v1/elevate/levels?language=${this.params.language}`);
21
- return new Promise((resolve, reject) => {
22
- return fetch(url.href, {
23
- method: 'GET',
24
- })
25
- .then((res) => res.json())
26
- .then((res) => {
27
- this.levels = res.data;
28
- resolve(true);
29
- })
30
- .catch((err) => {
31
- reject(err);
32
- });
33
- });
34
- }
35
- calcuatePointsToBeExpired(walletTotalInfo) {
36
- let pointExpireInfoAsString = '';
37
- if (!walletTotalInfo || !walletTotalInfo.aboutToExpire ||
38
- walletTotalInfo.aboutToExpire.length == 0 ||
39
- walletTotalInfo.aboutToExpire[0].points <= 0) {
40
- return pointExpireInfoAsString;
41
- }
42
- walletTotalInfo.aboutToExpire.sort((expire1, expire2) => {
43
- return isBefore(new Date(expire1.expireTime), new Date(expire2.expireTime))
44
- ? -1
45
- : 1;
46
- });
47
- const aboutToExpire = walletTotalInfo.aboutToExpire[0];
48
- const daysToExpried = differenceInCalendarDays(new Date(aboutToExpire.expireTime), new Date());
49
- let hoursToExpired = 0, expiredTranslationKey = daysToExpried === 0 ? 'pointsToBeExpiredDay' : 'pointsToBeExpired';
50
- if (daysToExpried == 0) {
51
- hoursToExpired = differenceInHours(new Date(aboutToExpire.expireTime), new Date());
52
- expiredTranslationKey = hoursToExpired > 1 ? 'pointsToBeExpiredHours' : 'pointsToBeExpiredHour';
53
- }
54
- else {
55
- }
56
- pointExpireInfoAsString = translateWithParams(expiredTranslationKey, {
57
- expirationPoints: aboutToExpire.points,
58
- expireDay: daysToExpried,
59
- });
60
- return pointExpireInfoAsString;
61
- }
62
- loadPlayerLevelInfo() {
63
- let url = new URL(`${this.params.endpoint}/v1/elevate/playerInfo?language=${this.params.language}`);
64
- return new Promise((resolve, reject) => {
65
- return fetch(url.href, {
66
- method: 'GET',
67
- headers: {
68
- 'X-Sessionid': this.params.session,
69
- 'Content-Type': 'application/json',
70
- },
71
- })
72
- .then((res) => res.json())
73
- .then((res) => {
74
- var _a, _b, _c;
75
- if (!res.success) {
76
- console.error('Exception when fetch user elevateinfo, ', res.errorCode, res.errorMessage);
77
- reject(true);
78
- return;
6
+ constructor() {
7
+ this.params = undefined;
8
+ this.playerElevateLevel = undefined;
9
+ this.pointExpireString = undefined;
10
+ }
11
+ handleWindowResizs() {
12
+ this.initLevelProgressbar();
13
+ }
14
+ onParamsChanged() {
15
+ this.loadElevateInfo();
16
+ }
17
+ onRedeemClick() {
18
+ window.postMessage({ type: 'BEERedeemClicked' }, window.location.href);
19
+ }
20
+ loadLevels() {
21
+ let url = new URL(`${this.params.endpoint}/v1/elevate/levels?language=${this.params.language}`);
22
+ return new Promise((resolve, reject) => {
23
+ return fetch(url.href, {
24
+ method: 'GET',
25
+ })
26
+ .then((res) => res.json())
27
+ .then((res) => {
28
+ this.levels = res.data;
29
+ resolve(true);
30
+ })
31
+ .catch((err) => {
32
+ reject(err);
33
+ });
34
+ });
35
+ }
36
+ calcuatePointsToBeExpired(walletTotalInfo) {
37
+ let pointExpireInfoAsString = '';
38
+ if (!walletTotalInfo || !walletTotalInfo.aboutToExpire ||
39
+ walletTotalInfo.aboutToExpire.length == 0 ||
40
+ walletTotalInfo.aboutToExpire[0].points <= 0) {
41
+ return pointExpireInfoAsString;
79
42
  }
80
- let playerElevateInfo = res.data;
81
- this.playerElevateLevel = playerElevateInfo.level;
82
- this.playerElevateLevel.name = this.playerElevateLevel.presentation.displayName || this.playerElevateLevel.name;
83
- this.playerElevateLevel.spendablePoints = ((_a = playerElevateInfo.spendableWallet) === null || _a === void 0 ? void 0 : _a.total.points) || 0;
84
- this.playerElevateLeveLoaded.emit({ elevateLevel: this.playerElevateLevel });
85
- const spendableTotal = (_b = res.data.spendableWallet) === null || _b === void 0 ? void 0 : _b.total;
86
- const loyaltyWalletTotal = (_c = res.data.loyaltyWallet) === null || _c === void 0 ? void 0 : _c.total;
87
- this.playerElevateLeveLoaded.emit({
88
- elevateLevelWalletTotal: spendableTotal,
89
- loyaltyWalletTotal
43
+ walletTotalInfo.aboutToExpire.sort((expire1, expire2) => {
44
+ return isBefore(new Date(expire1.expireTime), new Date(expire2.expireTime))
45
+ ? -1
46
+ : 1;
90
47
  });
91
- let spExpireInfoAsString = this.calcuatePointsToBeExpired(spendableTotal);
92
- let xpExpireInfoAsString = this.calcuatePointsToBeExpired(loyaltyWalletTotal);
93
- if (spExpireInfoAsString || xpExpireInfoAsString) {
94
- this.playerElevateLeveLoaded.emit({
95
- pointExpireString: spExpireInfoAsString,
96
- xpExpireString: xpExpireInfoAsString
97
- });
48
+ const aboutToExpire = walletTotalInfo.aboutToExpire[0];
49
+ const daysToExpried = differenceInCalendarDays(new Date(aboutToExpire.expireTime), new Date());
50
+ let hoursToExpired = 0, expiredTranslationKey = daysToExpried === 0 ? 'pointsToBeExpiredDay' : 'pointsToBeExpired';
51
+ if (daysToExpried == 0) {
52
+ hoursToExpired = differenceInHours(new Date(aboutToExpire.expireTime), new Date());
53
+ expiredTranslationKey = hoursToExpired > 1 ? 'pointsToBeExpiredHours' : 'pointsToBeExpiredHour';
98
54
  }
99
- resolve(this.playerElevateLevel);
100
- })
101
- .catch((err) => {
102
- console.log('error ', err);
103
- reject(true);
104
- });
105
- });
106
- }
107
- setLoyaltyProgress(percent) {
108
- updateProgressSvg(this.loyaltyProgressEle, percent);
109
- }
110
- initLevelProgressbar() {
111
- setTimeout(() => {
112
- this.loyaltyProgressEle =
113
- this.elevateCardRef.parentElement.querySelector('#LevelProgress');
114
- if (!this.loyaltyProgressEle) {
115
- return;
116
- }
117
- this.setLoyaltyProgress(!this.playerElevateLevel.nextLevel
118
- ? 1 : (this.playerElevateLevel.loyaltyPoints / this.playerElevateLevel.nextLevel.entryPoints));
119
- this.params['playerElevateLevel'] = this.playerElevateLevel;
120
- }, 80);
121
- }
122
- componentDidRender() {
123
- this.initLevelProgressbar();
124
- }
125
- loadElevateInfo() {
126
- if (!this.params.endpoint || !this.params.session) {
127
- return;
128
- }
129
- const promises = [];
130
- promises.push(this.loadPlayerLevelInfo());
131
- if (this.params.calculateLevelFlag) {
132
- promises.push(this.loadLevels());
133
- }
134
- Promise.all(promises).then((res) => {
135
- console.log('elevate-init', res);
136
- this.initLevelProgressbar();
137
- if (!this.levels) {
138
- return;
139
- }
140
- this.levels.sort((level1, level2) => {
141
- return level1.firstEntryPoints > level2.firstEntryPoints ? 1 : -1;
142
- });
143
- const playerPoints = this.playerElevateLevel.loyaltyPoints;
144
- let playerLevelNumber = 0;
145
- this.levels.forEach((elevateLevel, idx) => {
146
- if (playerPoints > elevateLevel.firstEntryPoints) {
147
- playerLevelNumber = idx;
55
+ else {
148
56
  }
149
- });
150
- this.playerElevateLeveLoaded.emit({
151
- calculatedLevelFlag: playerLevelNumber,
152
- });
153
- });
154
- }
155
- componentWillLoad() {
156
- this.loadElevateInfo();
157
- }
158
- static get is() { return "player-elevate-card-data"; }
159
- static get originalStyleUrls() { return {
160
- "$": ["player-elevate-card-data.scss"]
161
- }; }
162
- static get styleUrls() { return {
163
- "$": ["player-elevate-card-data.css"]
164
- }; }
165
- static get properties() { return {
166
- "params": {
167
- "type": "any",
168
- "mutable": false,
169
- "complexType": {
170
- "original": "any",
171
- "resolved": "any",
172
- "references": {}
173
- },
174
- "required": false,
175
- "optional": false,
176
- "docs": {
177
- "tags": [],
178
- "text": ""
179
- },
180
- "attribute": "params",
181
- "reflect": false
182
- }
183
- }; }
184
- static get states() { return {
185
- "playerElevateLevel": {},
186
- "pointExpireString": {}
187
- }; }
188
- static get events() { return [{
189
- "method": "playerElevateLeveLoaded",
190
- "name": "playerElevateLeveLoaded",
191
- "bubbles": true,
192
- "cancelable": true,
193
- "composed": true,
194
- "docs": {
195
- "tags": [],
196
- "text": ""
197
- },
198
- "complexType": {
199
- "original": "any",
200
- "resolved": "any",
201
- "references": {}
202
- }
203
- }]; }
204
- static get elementRef() { return "elevateCardRef"; }
205
- static get watchers() { return [{
206
- "propName": "params",
207
- "methodName": "onParamsChanged"
208
- }]; }
209
- static get listeners() { return [{
210
- "name": "resize",
211
- "method": "handleWindowResizs",
212
- "target": "window",
213
- "capture": false,
214
- "passive": true
215
- }, {
216
- "name": "redeemGiftButton",
217
- "method": "redeemGiftButtonHandler",
218
- "target": "window",
219
- "capture": false,
220
- "passive": false
221
- }]; }
57
+ pointExpireInfoAsString = translateWithParams(expiredTranslationKey, {
58
+ expirationPoints: aboutToExpire.points,
59
+ expireDay: daysToExpried,
60
+ });
61
+ return pointExpireInfoAsString;
62
+ }
63
+ loadPlayerLevelInfo() {
64
+ let url = new URL(`${this.params.endpoint}/v1/elevate/playerInfo?language=${this.params.language}`);
65
+ return new Promise((resolve, reject) => {
66
+ return fetch(url.href, {
67
+ method: 'GET',
68
+ headers: {
69
+ 'X-Sessionid': this.params.session,
70
+ 'Content-Type': 'application/json',
71
+ },
72
+ })
73
+ .then((res) => res.json())
74
+ .then((res) => {
75
+ var _a, _b, _c;
76
+ if (!res.success) {
77
+ console.error('Exception when fetch user elevateinfo, ', res.errorCode, res.errorMessage);
78
+ reject(true);
79
+ return;
80
+ }
81
+ let playerElevateInfo = res.data;
82
+ this.playerElevateLevel = playerElevateInfo.level;
83
+ this.playerElevateLevel.name = this.playerElevateLevel.presentation.displayName || this.playerElevateLevel.name;
84
+ this.playerElevateLevel.spendablePoints = ((_a = playerElevateInfo.spendableWallet) === null || _a === void 0 ? void 0 : _a.total.points) || 0;
85
+ this.playerElevateLeveLoaded.emit({ elevateLevel: this.playerElevateLevel });
86
+ const spendableTotal = (_b = res.data.spendableWallet) === null || _b === void 0 ? void 0 : _b.total;
87
+ const loyaltyWalletTotal = (_c = res.data.loyaltyWallet) === null || _c === void 0 ? void 0 : _c.total;
88
+ this.playerElevateLeveLoaded.emit({
89
+ elevateLevelWalletTotal: spendableTotal,
90
+ loyaltyWalletTotal
91
+ });
92
+ let spExpireInfoAsString = this.calcuatePointsToBeExpired(spendableTotal);
93
+ let xpExpireInfoAsString = this.calcuatePointsToBeExpired(loyaltyWalletTotal);
94
+ if (spExpireInfoAsString || xpExpireInfoAsString) {
95
+ this.playerElevateLeveLoaded.emit({
96
+ pointExpireString: spExpireInfoAsString,
97
+ xpExpireString: xpExpireInfoAsString
98
+ });
99
+ }
100
+ resolve(this.playerElevateLevel);
101
+ })
102
+ .catch((err) => {
103
+ console.log('error ', err);
104
+ reject(true);
105
+ });
106
+ });
107
+ }
108
+ setLoyaltyProgress(percent) {
109
+ updateProgressSvg(this.loyaltyProgressEle, percent);
110
+ }
111
+ initLevelProgressbar() {
112
+ setTimeout(() => {
113
+ this.loyaltyProgressEle =
114
+ this.elevateCardRef.parentElement.querySelector('#LevelProgress');
115
+ if (!this.loyaltyProgressEle) {
116
+ return;
117
+ }
118
+ this.setLoyaltyProgress(!this.playerElevateLevel.nextLevel
119
+ ? 1 : (this.playerElevateLevel.loyaltyPoints / this.playerElevateLevel.nextLevel.entryPoints));
120
+ this.params['playerElevateLevel'] = this.playerElevateLevel;
121
+ }, 80);
122
+ }
123
+ componentDidRender() {
124
+ this.initLevelProgressbar();
125
+ }
126
+ loadElevateInfo() {
127
+ if (!this.params.endpoint || !this.params.session) {
128
+ return;
129
+ }
130
+ const promises = [];
131
+ promises.push(this.loadPlayerLevelInfo());
132
+ if (this.params.calculateLevelFlag) {
133
+ promises.push(this.loadLevels());
134
+ }
135
+ Promise.all(promises).then((res) => {
136
+ console.log('elevate-init', res);
137
+ this.initLevelProgressbar();
138
+ if (!this.levels) {
139
+ return;
140
+ }
141
+ this.levels.sort((level1, level2) => {
142
+ return level1.firstEntryPoints > level2.firstEntryPoints ? 1 : -1;
143
+ });
144
+ const playerPoints = this.playerElevateLevel.loyaltyPoints;
145
+ let playerLevelNumber = 0;
146
+ this.levels.forEach((elevateLevel, idx) => {
147
+ if (playerPoints > elevateLevel.firstEntryPoints) {
148
+ playerLevelNumber = idx;
149
+ }
150
+ });
151
+ this.playerElevateLeveLoaded.emit({
152
+ calculatedLevelFlag: playerLevelNumber,
153
+ });
154
+ });
155
+ }
156
+ componentWillLoad() {
157
+ this.loadElevateInfo();
158
+ }
159
+ static get is() { return "player-elevate-card-data"; }
160
+ static get originalStyleUrls() {
161
+ return {
162
+ "$": ["player-elevate-card-data.scss"]
163
+ };
164
+ }
165
+ static get styleUrls() {
166
+ return {
167
+ "$": ["player-elevate-card-data.css"]
168
+ };
169
+ }
170
+ static get properties() {
171
+ return {
172
+ "params": {
173
+ "type": "any",
174
+ "mutable": false,
175
+ "complexType": {
176
+ "original": "any",
177
+ "resolved": "any",
178
+ "references": {}
179
+ },
180
+ "required": false,
181
+ "optional": false,
182
+ "docs": {
183
+ "tags": [],
184
+ "text": ""
185
+ },
186
+ "attribute": "params",
187
+ "reflect": false
188
+ }
189
+ };
190
+ }
191
+ static get states() {
192
+ return {
193
+ "playerElevateLevel": {},
194
+ "pointExpireString": {}
195
+ };
196
+ }
197
+ static get events() {
198
+ return [{
199
+ "method": "playerElevateLeveLoaded",
200
+ "name": "playerElevateLeveLoaded",
201
+ "bubbles": true,
202
+ "cancelable": true,
203
+ "composed": true,
204
+ "docs": {
205
+ "tags": [],
206
+ "text": ""
207
+ },
208
+ "complexType": {
209
+ "original": "any",
210
+ "resolved": "any",
211
+ "references": {}
212
+ }
213
+ }];
214
+ }
215
+ static get elementRef() { return "elevateCardRef"; }
216
+ static get watchers() {
217
+ return [{
218
+ "propName": "params",
219
+ "methodName": "onParamsChanged"
220
+ }];
221
+ }
222
+ static get listeners() {
223
+ return [{
224
+ "name": "resize",
225
+ "method": "handleWindowResizs",
226
+ "target": "window",
227
+ "capture": false,
228
+ "passive": true
229
+ }];
230
+ }
222
231
  }
@@ -59,13 +59,6 @@
59
59
  color: var(--emfe-w-elevate-color-levelname, #FFBD2B);
60
60
  font-weight: bold;
61
61
  }
62
- .LoyaltyCard .Row {
63
- padding-top: 3px;
64
- padding-bottom: 5px;
65
- }
66
- .LoyaltyCard .ExpireTime {
67
- margin-left: 5px;
68
- }
69
62
  .LoyaltyCard .NextLevelTip {
70
63
  text-align: right;
71
64
  font-size: 11px;