@everymatrix/bonus-elevate-levels-jojogroup 1.80.3

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 (73) hide show
  1. package/dist/bonus-elevate-levels-jojogroup/app-globals-0f993ce5.js +1 -0
  2. package/dist/bonus-elevate-levels-jojogroup/bonus-elevate-levels-jojogroup.esm.js +1 -0
  3. package/dist/bonus-elevate-levels-jojogroup/bonus-elevate-levels-jojogroup_4.entry.js +1 -0
  4. package/dist/bonus-elevate-levels-jojogroup/elevate-level-list.entry.js +1 -0
  5. package/dist/bonus-elevate-levels-jojogroup/index-88ecbb5b.js +2 -0
  6. package/dist/bonus-elevate-levels-jojogroup/index.esm.js +0 -0
  7. package/dist/bonus-elevate-levels-jojogroup/locale.utils-3a9c8e78.js +1 -0
  8. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  9. package/dist/cjs/bonus-elevate-levels-jojogroup.cjs.js +25 -0
  10. package/dist/cjs/bonus-elevate-levels-jojogroup_4.cjs.entry.js +322 -0
  11. package/dist/cjs/elevate-level-list.cjs.entry.js +147 -0
  12. package/dist/cjs/index-09a798bf.js +1612 -0
  13. package/dist/cjs/index.cjs.js +2 -0
  14. package/dist/cjs/loader.cjs.js +15 -0
  15. package/dist/cjs/locale.utils-942322b6.js +54 -0
  16. package/dist/collection/collection-manifest.json +22 -0
  17. package/dist/collection/components/bonus-elevate-levels-jojogroup/bonus-elevate-levels-jojogroup.css +18 -0
  18. package/dist/collection/components/bonus-elevate-levels-jojogroup/bonus-elevate-levels-jojogroup.js +231 -0
  19. package/dist/collection/components/bonus-elevate-levels-jojogroup/index.js +1 -0
  20. package/dist/collection/components/elevate-level-list/elevate-level-list.css +70 -0
  21. package/dist/collection/components/elevate-level-list/elevate-level-list.js +241 -0
  22. package/dist/collection/components/elevate-level-presentation/elevate-level-presentation.css +21 -0
  23. package/dist/collection/components/elevate-level-presentation/elevate-level-presentation.js +45 -0
  24. package/dist/collection/components/elevate-levels-data/elevate-levels-data.css +3 -0
  25. package/dist/collection/components/elevate-levels-data/elevate-levels-data.js +89 -0
  26. package/dist/collection/index.js +1 -0
  27. package/dist/collection/models/elevate-levels.js +1 -0
  28. package/dist/collection/utils/locale.utils.js +49 -0
  29. package/dist/collection/utils/prototype-collector.js +5 -0
  30. package/dist/collection/utils/utils.js +41 -0
  31. package/dist/esm/app-globals-0f993ce5.js +3 -0
  32. package/dist/esm/bonus-elevate-levels-jojogroup.js +20 -0
  33. package/dist/esm/bonus-elevate-levels-jojogroup_4.entry.js +315 -0
  34. package/dist/esm/elevate-level-list.entry.js +143 -0
  35. package/dist/esm/index-88ecbb5b.js +1583 -0
  36. package/dist/esm/index.js +1 -0
  37. package/dist/esm/loader.js +11 -0
  38. package/dist/esm/locale.utils-3a9c8e78.js +51 -0
  39. package/dist/index.cjs.js +1 -0
  40. package/dist/index.js +1 -0
  41. package/dist/stencil.config.dev.js +17 -0
  42. package/dist/stencil.config.js +19 -0
  43. package/dist/storybook/main.js +47 -0
  44. package/dist/storybook/preview.js +9 -0
  45. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/libs/common/src/storybook/storybook-utils.d.ts +39 -0
  46. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/packages/stencil/bonus-elevate-levels-jojogroup/stencil.config.d.ts +2 -0
  47. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/packages/stencil/bonus-elevate-levels-jojogroup/stencil.config.dev.d.ts +2 -0
  48. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/packages/stencil/bonus-elevate-levels-jojogroup/storybook/main.d.ts +3 -0
  49. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/packages/stencil/bonus-elevate-levels-jojogroup/storybook/preview.d.ts +70 -0
  50. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/tools/plugins/index.d.ts +4 -0
  51. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/tools/plugins/lazy-load-chunk-plugin.d.ts +12 -0
  52. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/tools/plugins/stencil-clean-deps-plugin.d.ts +5 -0
  53. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/tools/plugins/vite-chunk-plugin.d.ts +6 -0
  54. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/bonus-elevate-levels-jojogroup/.stencil/tools/plugins/vite-clean-deps-plugin.d.ts +4 -0
  55. package/dist/types/components/bonus-elevate-levels-jojogroup/bonus-elevate-levels-jojogroup.d.ts +19 -0
  56. package/dist/types/components/bonus-elevate-levels-jojogroup/index.d.ts +1 -0
  57. package/dist/types/components/elevate-level-list/elevate-level-list.d.ts +46 -0
  58. package/dist/types/components/elevate-level-presentation/elevate-level-presentation.d.ts +8 -0
  59. package/dist/types/components/elevate-levels-data/elevate-levels-data.d.ts +10 -0
  60. package/dist/types/components.d.ts +166 -0
  61. package/dist/types/index.d.ts +1 -0
  62. package/dist/types/models/elevate-levels.d.ts +12 -0
  63. package/dist/types/stencil-public-runtime.d.ts +1674 -0
  64. package/dist/types/utils/locale.utils.d.ts +10 -0
  65. package/dist/types/utils/prototype-collector.d.ts +1 -0
  66. package/dist/types/utils/utils.d.ts +20 -0
  67. package/loader/cdn.js +1 -0
  68. package/loader/index.cjs.js +1 -0
  69. package/loader/index.d.ts +24 -0
  70. package/loader/index.es2017.js +1 -0
  71. package/loader/index.js +2 -0
  72. package/loader/package.json +11 -0
  73. package/package.json +26 -0
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-09a798bf.js');
6
+ const appGlobals = require('./app-globals-3a1e7e63.js');
7
+
8
+ const defineCustomElements = async (win, options) => {
9
+ if (typeof window === 'undefined') return undefined;
10
+ await appGlobals.globalScripts();
11
+ return index.bootstrapLazy([["elevate-level-list.cjs",[[0,"elevate-level-list",{"levels":[16],"language":[1],"selectedLevelId":[1537,"selected-level-id"],"showSliderButton":[32],"touchPosStart":[32],"touchPosEnd":[32],"offset":[32]},[[1,"touchstart","onTouchStart"],[1,"touchmove","onTouchMove"],[9,"resize","handleResize"]],{"selectedLevelId":["levelsChangedHandler"]}]]],["bonus-elevate-levels-jojogroup_4.cjs",[[1,"bonus-elevate-levels-jojogroup",{"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"mbSource":[513,"mb-source"],"endpoint":[513],"language":[513],"translationUrl":[513,"translation-url"],"selectedLevelId":[1537,"selected-level-id"],"showDefault":[4,"show-default"],"elevateLevelParamProxy":[32],"elevateLevels":[32],"errorMessage":[32]},[[2,"elevateLevelsDataChange","elevateLevelsDataChangeHandler"]],{"endpoint":["onSessionOrEndpointChange"],"language":["onSessionOrEndpointChange"]}],[0,"elevate-level-presentation",{"elevateLevel":[16]}],[0,"elevate-levels-data",{"scopeParams":[1544,"scope-params"]}],[4,"general-styling-wrapper",{"clientStyling":[1,"client-styling"],"clientStylingUrl":[1,"client-styling-url"],"mbSource":[1,"mb-source"],"translationUrl":[1,"translation-url"],"targetTranslations":[16]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"]}]]]], options);
12
+ };
13
+
14
+ exports.setNonce = index.setNonce;
15
+ exports.defineCustomElements = defineCustomElements;
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ const DEFAULT_LANGUAGE = 'en';
4
+ const TRANSLATIONS = {
5
+ en: {
6
+ level: 'level',
7
+ seeAll: 'See All',
8
+ termsAndConditions: 'Terms & Conditions',
9
+ loadElevateLevelErrorMessage: 'Error when load elevate levels',
10
+ noLevelsSet: 'There is no level set',
11
+ points: 'Points',
12
+ },
13
+ fr: {
14
+ level: 'level',
15
+ seeAll: 'See All',
16
+ termsAndConditions: 'Terms & Conditions',
17
+ loadElevateLevelErrorMessage: 'Error when load elevate levels',
18
+ noLevelsSet: 'There is no level set',
19
+ points: 'Points',
20
+ },
21
+ hr: {
22
+ level: 'Razina',
23
+ seeAll: 'Vidi sve',
24
+ privilegesFor: 'Privilegije za',
25
+ termsAndConditions: 'Uvjeti i odredbe',
26
+ noLevelsSet: 'There is no level set',
27
+ points: 'Points',
28
+ },
29
+ ro: {
30
+ level: 'level',
31
+ seeAll: 'See All',
32
+ termsAndConditions: 'Terms & Conditions',
33
+ loadElevateLevelErrorMessage: 'Error when load elevate levels',
34
+ noLevelsSet: 'There is no level set',
35
+ points: 'Points',
36
+ },
37
+ tr: {
38
+ level: 'level',
39
+ seeAll: 'See All',
40
+ termsAndConditions: 'Terms & Conditions',
41
+ loadElevateLevelErrorMessage: 'Error when load elevate levels',
42
+ noLevelsSet: 'There is no level set',
43
+ points: 'Points',
44
+ }
45
+ };
46
+ const translate = (key, customLang) => {
47
+ var _a;
48
+ const lang = customLang || DEFAULT_LANGUAGE;
49
+ TRANSLATIONS[lang] = TRANSLATIONS[lang] || {};
50
+ return (_a = TRANSLATIONS[lang][key]) !== null && _a !== void 0 ? _a : '';
51
+ };
52
+
53
+ exports.TRANSLATIONS = TRANSLATIONS;
54
+ exports.translate = translate;
@@ -0,0 +1,22 @@
1
+ {
2
+ "entries": [
3
+ "components/bonus-elevate-levels-jojogroup/bonus-elevate-levels-jojogroup.js",
4
+ "components/elevate-level-list/elevate-level-list.js",
5
+ "components/elevate-level-presentation/elevate-level-presentation.js",
6
+ "components/elevate-levels-data/elevate-levels-data.js"
7
+ ],
8
+ "compiler": {
9
+ "name": "@stencil/core",
10
+ "version": "4.19.2",
11
+ "typescriptVersion": "5.4.5"
12
+ },
13
+ "collections": [
14
+ {
15
+ "name": "@everymatrix/general-styling-wrapper",
16
+ "tags": [
17
+ "general-styling-wrapper"
18
+ ]
19
+ }
20
+ ],
21
+ "bundles": []
22
+ }
@@ -0,0 +1,18 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .ElevateLevelContent {
6
+ padding: 20px;
7
+ position: relative;
8
+ }
9
+ .ElevateLevelContent .Privileges {
10
+ padding-bottom: 30px;
11
+ }
12
+ .ElevateLevelContent .tc {
13
+ position: absolute;
14
+ right: 10px;
15
+ bottom: 10px;
16
+ text-align: right;
17
+ display: none;
18
+ }
@@ -0,0 +1,231 @@
1
+ import { h } from "@stencil/core";
2
+ import { translate, TRANSLATIONS } from "../../utils/locale.utils";
3
+ export class BonusElevateLevelsJojogroup {
4
+ constructor() {
5
+ this.clientStyling = '';
6
+ this.clientStylingUrl = '';
7
+ this.mbSource = undefined;
8
+ this.endpoint = undefined;
9
+ this.language = 'en';
10
+ this.translationUrl = '';
11
+ this.selectedLevelId = undefined;
12
+ this.showDefault = undefined;
13
+ this.elevateLevelParamProxy = undefined;
14
+ this.elevateLevels = [];
15
+ this.errorMessage = undefined;
16
+ }
17
+ elevateLevelsDataChangeHandler(event) {
18
+ if (!event.detail)
19
+ return;
20
+ if (event.detail.elevateLevels) {
21
+ this.elevateLevels = [...event.detail.elevateLevels];
22
+ }
23
+ if (event.detail.clearError) {
24
+ this.errorMessage = null;
25
+ }
26
+ if (event.detail.errorMessage) {
27
+ if (event.detail.errorMessage['errorWhenLoadElevateLevels']) {
28
+ this.errorMessage = translate('loadElevateLevelErrorMessage', this.language);
29
+ }
30
+ }
31
+ }
32
+ onSessionOrEndpointChange() {
33
+ this.elevateLevelParamProxy = Object.assign(Object.assign({}, this.elevateLevelParamProxy), { endpoint: this.endpoint, language: this.language });
34
+ }
35
+ onTCClick() {
36
+ window.postMessage({ type: 'termAndConditionClicked' }, window.location.href);
37
+ }
38
+ componentWillLoad() {
39
+ this.elevateLevelParamProxy = {
40
+ endpoint: this.endpoint,
41
+ language: this.language,
42
+ selectedLevelId: this.selectedLevelId,
43
+ showDefault: this.showDefault,
44
+ };
45
+ }
46
+ render() {
47
+ var _a;
48
+ return (h("div", { key: '3cdca540038915c73a99cca214d1d8091a928cb8', class: "ElevateLevelContent" }, h("elevate-levels-data", { key: '1e1a73074ceb36ce5554b7796ca07c2efb4f73ce', scopeParams: this.elevateLevelParamProxy }), h("div", { key: 'a1c66508053cac8549d23fabb291ff273079786c', class: "LevelContent" }, ((_a = this.elevateLevels) === null || _a === void 0 ? void 0 : _a.length) ? (this.elevateLevels.map((level) => (h("elevate-level-presentation", { elevateLevel: level })))) : (h("div", null, translate('noLevelsSet', this.language)))), this.errorMessage && h("div", { key: 'ed47949b39a95528d1a7f5acb9fe5ea1b596d6aa', class: "ErrorMessage" }, this.errorMessage), h("general-styling-wrapper", { key: 'c033776c424e2bc697f23a5a7abe34746fd6af7f', clientStyling: this.clientStyling, clientStylingUrl: this.clientStylingUrl, targetTranslations: TRANSLATIONS, translationUrl: this.translationUrl, mbSource: this.mbSource })));
49
+ }
50
+ static get is() { return "bonus-elevate-levels-jojogroup"; }
51
+ static get encapsulation() { return "shadow"; }
52
+ static get originalStyleUrls() {
53
+ return {
54
+ "$": ["bonus-elevate-levels-jojogroup.scss"]
55
+ };
56
+ }
57
+ static get styleUrls() {
58
+ return {
59
+ "$": ["bonus-elevate-levels-jojogroup.css"]
60
+ };
61
+ }
62
+ static get properties() {
63
+ return {
64
+ "clientStyling": {
65
+ "type": "string",
66
+ "mutable": false,
67
+ "complexType": {
68
+ "original": "string",
69
+ "resolved": "string",
70
+ "references": {}
71
+ },
72
+ "required": false,
73
+ "optional": false,
74
+ "docs": {
75
+ "tags": [],
76
+ "text": ""
77
+ },
78
+ "attribute": "client-styling",
79
+ "reflect": true,
80
+ "defaultValue": "''"
81
+ },
82
+ "clientStylingUrl": {
83
+ "type": "string",
84
+ "mutable": false,
85
+ "complexType": {
86
+ "original": "string",
87
+ "resolved": "string",
88
+ "references": {}
89
+ },
90
+ "required": false,
91
+ "optional": false,
92
+ "docs": {
93
+ "tags": [],
94
+ "text": ""
95
+ },
96
+ "attribute": "client-styling-url",
97
+ "reflect": true,
98
+ "defaultValue": "''"
99
+ },
100
+ "mbSource": {
101
+ "type": "string",
102
+ "mutable": false,
103
+ "complexType": {
104
+ "original": "string",
105
+ "resolved": "string",
106
+ "references": {}
107
+ },
108
+ "required": false,
109
+ "optional": false,
110
+ "docs": {
111
+ "tags": [],
112
+ "text": ""
113
+ },
114
+ "attribute": "mb-source",
115
+ "reflect": true
116
+ },
117
+ "endpoint": {
118
+ "type": "string",
119
+ "mutable": false,
120
+ "complexType": {
121
+ "original": "string",
122
+ "resolved": "string",
123
+ "references": {}
124
+ },
125
+ "required": true,
126
+ "optional": false,
127
+ "docs": {
128
+ "tags": [],
129
+ "text": ""
130
+ },
131
+ "attribute": "endpoint",
132
+ "reflect": true
133
+ },
134
+ "language": {
135
+ "type": "string",
136
+ "mutable": false,
137
+ "complexType": {
138
+ "original": "string",
139
+ "resolved": "string",
140
+ "references": {}
141
+ },
142
+ "required": false,
143
+ "optional": false,
144
+ "docs": {
145
+ "tags": [],
146
+ "text": ""
147
+ },
148
+ "attribute": "language",
149
+ "reflect": true,
150
+ "defaultValue": "'en'"
151
+ },
152
+ "translationUrl": {
153
+ "type": "string",
154
+ "mutable": false,
155
+ "complexType": {
156
+ "original": "string",
157
+ "resolved": "string",
158
+ "references": {}
159
+ },
160
+ "required": false,
161
+ "optional": false,
162
+ "docs": {
163
+ "tags": [],
164
+ "text": ""
165
+ },
166
+ "attribute": "translation-url",
167
+ "reflect": true,
168
+ "defaultValue": "''"
169
+ },
170
+ "selectedLevelId": {
171
+ "type": "string",
172
+ "mutable": true,
173
+ "complexType": {
174
+ "original": "string",
175
+ "resolved": "string",
176
+ "references": {}
177
+ },
178
+ "required": false,
179
+ "optional": false,
180
+ "docs": {
181
+ "tags": [],
182
+ "text": ""
183
+ },
184
+ "attribute": "selected-level-id",
185
+ "reflect": true
186
+ },
187
+ "showDefault": {
188
+ "type": "boolean",
189
+ "mutable": false,
190
+ "complexType": {
191
+ "original": "false",
192
+ "resolved": "boolean",
193
+ "references": {}
194
+ },
195
+ "required": false,
196
+ "optional": false,
197
+ "docs": {
198
+ "tags": [],
199
+ "text": ""
200
+ },
201
+ "attribute": "show-default",
202
+ "reflect": false
203
+ }
204
+ };
205
+ }
206
+ static get states() {
207
+ return {
208
+ "elevateLevelParamProxy": {},
209
+ "elevateLevels": {},
210
+ "errorMessage": {}
211
+ };
212
+ }
213
+ static get watchers() {
214
+ return [{
215
+ "propName": "endpoint",
216
+ "methodName": "onSessionOrEndpointChange"
217
+ }, {
218
+ "propName": "language",
219
+ "methodName": "onSessionOrEndpointChange"
220
+ }];
221
+ }
222
+ static get listeners() {
223
+ return [{
224
+ "name": "elevateLevelsDataChange",
225
+ "method": "elevateLevelsDataChangeHandler",
226
+ "target": undefined,
227
+ "capture": true,
228
+ "passive": false
229
+ }];
230
+ }
231
+ }
@@ -0,0 +1 @@
1
+ export { BonusElevateLevelsJojogroup } from './bonus-elevate-levels-jojogroup';
@@ -0,0 +1,70 @@
1
+ elevate-level-list {
2
+ display: flex;
3
+ flex-direction: row;
4
+ }
5
+
6
+ .LevelItemsWrapper {
7
+ display: flex;
8
+ flex: 1;
9
+ margin-top: 10px;
10
+ min-height: 30px;
11
+ transition-property: all;
12
+ position: relative;
13
+ height: 138px;
14
+ overflow-x: hidden;
15
+ }
16
+
17
+ .Mobile.LevelItems {
18
+ overflow-x: hidden;
19
+ }
20
+
21
+ .LevelItems {
22
+ overflow-x: auto;
23
+ display: flex;
24
+ flex-direction: row;
25
+ gap: 10px;
26
+ left: 0;
27
+ position: absolute;
28
+ transition: left 0.5s ease-in-out;
29
+ }
30
+ .LevelItems .Item:hover, .LevelItems .Item.Active {
31
+ background-color: var(--emw--color-gray-50, rgb(244, 244, 244));
32
+ box-shadow: 0px 4px 13px 0px rgba(0, 0, 0, 0.25);
33
+ }
34
+ .LevelItems .Item {
35
+ width: 86px;
36
+ height: 125px;
37
+ border-radius: 15px;
38
+ text-align: center;
39
+ display: flex;
40
+ flex-direction: column;
41
+ cursor: pointer;
42
+ }
43
+ .LevelItems .Item .LevelName {
44
+ font-size: 13px;
45
+ white-space: nowrap;
46
+ text-overflow: ellipsis;
47
+ overflow: hidden;
48
+ }
49
+ .LevelItems .Item .LevelPoints {
50
+ color: var(--emw--color-gray-100, rgb(118, 113, 113));
51
+ font-size: 10px;
52
+ }
53
+ .LevelItems .Item .LevelImg {
54
+ width: 65px;
55
+ height: 68px;
56
+ margin: 11px auto;
57
+ }
58
+
59
+ .SliderButton {
60
+ display: flex;
61
+ width: 29px;
62
+ align-items: center;
63
+ cursor: pointer;
64
+ }
65
+ .SliderButton.Disabled svg {
66
+ stroke: var(--emw--color-gray-50, #cbc5c5);
67
+ }
68
+ .SliderButton.Hidden {
69
+ display: none;
70
+ }
@@ -0,0 +1,241 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { translate } from "../../utils/locale.utils";
3
+ import { isMobile, MOVE_TO } from "../../utils/utils";
4
+ export class ElevateLevelList {
5
+ constructor() {
6
+ this.minOffset = 0;
7
+ this.isMobile = isMobile(window.navigator.userAgent);
8
+ this.levels = undefined;
9
+ this.language = undefined;
10
+ this.selectedLevelId = undefined;
11
+ this.showSliderButton = false;
12
+ this.touchPosStart = undefined;
13
+ this.touchPosEnd = undefined;
14
+ this.offset = 0;
15
+ }
16
+ onLevelClicked(elevateLevel) {
17
+ this.selectedLevelChanged.emit({ level: elevateLevel });
18
+ this.selectedLevelId = elevateLevel.id;
19
+ }
20
+ levelsChangedHandler() {
21
+ this.initOffsetOfLevelItems();
22
+ }
23
+ initOffsetOfLevelItems() {
24
+ if (!this.levels || this.levels.length === 0 || !this.selectedLevelId) {
25
+ return;
26
+ }
27
+ const currentLevelIndex = this.levels.findIndex((item) => {
28
+ return this.selectedLevelId === item.id;
29
+ });
30
+ this.onLevelClicked(this.levels[currentLevelIndex === -1 ? 0 : currentLevelIndex]);
31
+ //do not need change the slider offset when level items less than moveCountForOneTouch
32
+ if (this.levels.length <= this.moveCountForOneTouch) {
33
+ return;
34
+ }
35
+ //to avoid the slider do not move when currentLevelIndex = moveCountForOneTouch - 1
36
+ let newOffset = Math.floor((currentLevelIndex === -1 ? 1 : currentLevelIndex + 1) / this.moveCountForOneTouch)
37
+ * this.moveCountForOneTouch * this.childElementWidth * (-1);
38
+ this.offset = newOffset <= this.minOffset ? this.minOffset : (newOffset >= 0 ? 0 : newOffset);
39
+ }
40
+ onTouchStart(e) {
41
+ this.touchPosStart = { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY };
42
+ }
43
+ onTouchMove(e) {
44
+ this.touchPosEnd = { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY };
45
+ const diffX = this.touchPosEnd.clientX - this.touchPosStart.clientX;
46
+ const diffY = this.touchPosEnd.clientY - this.touchPosStart.clientY;
47
+ if (Math.abs(diffX) > Math.abs(diffY)) {
48
+ this.slideTo(diffX > 0 ? MOVE_TO.slideToRight : MOVE_TO.slideToLeft);
49
+ }
50
+ }
51
+ slideTo(direction) {
52
+ let newOffset = this.levelsElement.offsetLeft +
53
+ (this.childElementWidth) * this.moveCountForOneTouch * direction;
54
+ if (newOffset % this.childElementWidth != 0) {
55
+ const leftOfPreNode = (Math.floor(newOffset / this.childElementWidth)) * this.childElementWidth;
56
+ const leftOfNextNode = (Math.ceil(newOffset / this.childElementWidth)) * this.childElementWidth;
57
+ //touchmove to right, get left of pre-node; touchmove to left, get left of next-node
58
+ newOffset = direction === MOVE_TO.slideToRight ? leftOfPreNode : leftOfNextNode;
59
+ }
60
+ this.offset = newOffset < this.minOffset ? this.minOffset : (newOffset >= 0 ? 0 : newOffset);
61
+ }
62
+ initLevelSlider() {
63
+ var _a;
64
+ if (!((_a = this.levelsElement) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {
65
+ console.log('Widget[elevate-level-list] DOM is not ready.');
66
+ return;
67
+ }
68
+ this.showSliderButton = !this.isMobile && (this.levelsElement.clientWidth > this.levelsElement.parentElement.clientWidth);
69
+ this.minOffset = this.levelsElement.parentElement.clientWidth - this.levelsElement.clientWidth;
70
+ this.childElementWidth = this.levelsElement.firstElementChild.clientWidth;
71
+ this.moveCountForOneTouch = Math.ceil(this.levelsElement.parentElement.clientWidth / this.childElementWidth) - 1;
72
+ const childElementCount = this.levelsElement.childElementCount;
73
+ this.childElementWidth += (this.levelsElement.clientWidth - this.childElementWidth * childElementCount) / (childElementCount - 1);
74
+ }
75
+ debounce(callback, delay) {
76
+ {
77
+ let timer;
78
+ return () => {
79
+ clearTimeout(timer);
80
+ timer = setTimeout(() => {
81
+ callback();
82
+ }, delay);
83
+ };
84
+ }
85
+ }
86
+ ;
87
+ convertNumberToCompactForm(num) {
88
+ if (num >= 1000000000)
89
+ return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'b';
90
+ if (num >= 1000000)
91
+ return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'm';
92
+ if (num >= 1000)
93
+ return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'k';
94
+ return num.toFixed(1);
95
+ }
96
+ handleResize() {
97
+ this.debounce(this.initLevelSlider.bind(this), 200)();
98
+ }
99
+ componentDidRender() {
100
+ this.host.componentOnReady().then(() => {
101
+ this.initLevelSlider();
102
+ });
103
+ }
104
+ render() {
105
+ return (h(Host, { key: '44b0d5811a2207a53f95c5a50d6ed89d70f42d01' }, this.levels && [
106
+ h("div", { key: 'fec6de26b8622dac4649df5e0346e8ef4138465e', class: `SliderButton LeftButton ${this.offset === 0 ? 'Disabled' : ''} ${this.showSliderButton ? '' : 'Hidden'}`, onClick: () => this.slideTo(MOVE_TO.slideToRight) }, h("svg", { key: '84cf364bdddfb7cd9a83b9808622332ab01729cd', fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'fd358448630ac184528b38e3a88db50b628be3de', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M15 19l-7-7 7-7" }))),
107
+ h("div", { key: '4a32485c3440261265060a3298ab56e49f602006', class: 'LevelItemsWrapper' }, h("div", { key: 'f5b7f896452375e04031e1db6c56cfd8b5e4909d', style: { 'left': `${this.offset}px` }, class: `LevelItems ${this.isMobile ? 'Mobile' : ''}`, id: 'levelItems', ref: (el) => { this.levelsElement = el; } }, this.levels.map((level, idx) => {
108
+ return (h("div", { class: `Item ${this.selectedLevelId === level.id ? 'Active' : ''}`, onClick: this.onLevelClicked.bind(this, level) }, h("img", { alt: `Presentation Icon for ${level.presentation.displayName}`, class: "LevelImg", src: level.presentation.asset }), h("span", { class: "LevelName", title: level.presentation.displayName }, level.presentation.displayName), h("span", { class: "LevelPoints" }, idx === 0 ? '' : '>', this.convertNumberToCompactForm(level.firstEntryPoints), ' ', translate('points', this.language))));
109
+ }))),
110
+ h("div", { key: '3444fcf3b46239e9ee6b84aa35f5637d9bee66ea', class: `SliderButton RightButton ${this.offset <= this.minOffset ? 'Disabled' : ''} ${this.showSliderButton ? '' : 'Hidden'}`, onClick: () => this.slideTo(MOVE_TO.slideToLeft) }, h("svg", { key: 'b86e73ad5f0f6114af9fe13452c5c6193b3a026b', fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '18f15ddeb747db3c80c6c16b2e0e727f45bbb986', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M9 5l7 7-7 7" })))
111
+ ]));
112
+ }
113
+ static get is() { return "elevate-level-list"; }
114
+ static get originalStyleUrls() {
115
+ return {
116
+ "$": ["elevate-level-list.scss"]
117
+ };
118
+ }
119
+ static get styleUrls() {
120
+ return {
121
+ "$": ["elevate-level-list.css"]
122
+ };
123
+ }
124
+ static get properties() {
125
+ return {
126
+ "levels": {
127
+ "type": "unknown",
128
+ "mutable": false,
129
+ "complexType": {
130
+ "original": "Array<ElevateLevel>",
131
+ "resolved": "ElevateLevel[]",
132
+ "references": {
133
+ "Array": {
134
+ "location": "global",
135
+ "id": "global::Array"
136
+ },
137
+ "ElevateLevel": {
138
+ "location": "import",
139
+ "path": "../../models/elevate-levels",
140
+ "id": "../../../../packages/stencil/bonus-elevate-levels-jojogroup/src/models/elevate-levels.ts::ElevateLevel"
141
+ }
142
+ }
143
+ },
144
+ "required": false,
145
+ "optional": false,
146
+ "docs": {
147
+ "tags": [],
148
+ "text": "ElevateLevelList"
149
+ }
150
+ },
151
+ "language": {
152
+ "type": "string",
153
+ "mutable": false,
154
+ "complexType": {
155
+ "original": "string",
156
+ "resolved": "string",
157
+ "references": {}
158
+ },
159
+ "required": false,
160
+ "optional": false,
161
+ "docs": {
162
+ "tags": [],
163
+ "text": "The Language"
164
+ },
165
+ "attribute": "language",
166
+ "reflect": false
167
+ },
168
+ "selectedLevelId": {
169
+ "type": "string",
170
+ "mutable": true,
171
+ "complexType": {
172
+ "original": "string",
173
+ "resolved": "string",
174
+ "references": {}
175
+ },
176
+ "required": true,
177
+ "optional": false,
178
+ "docs": {
179
+ "tags": [],
180
+ "text": "ID of selected level"
181
+ },
182
+ "attribute": "selected-level-id",
183
+ "reflect": true
184
+ }
185
+ };
186
+ }
187
+ static get states() {
188
+ return {
189
+ "showSliderButton": {},
190
+ "touchPosStart": {},
191
+ "touchPosEnd": {},
192
+ "offset": {}
193
+ };
194
+ }
195
+ static get events() {
196
+ return [{
197
+ "method": "selectedLevelChanged",
198
+ "name": "selectedLevelChanged",
199
+ "bubbles": true,
200
+ "cancelable": true,
201
+ "composed": true,
202
+ "docs": {
203
+ "tags": [],
204
+ "text": ""
205
+ },
206
+ "complexType": {
207
+ "original": "any",
208
+ "resolved": "any",
209
+ "references": {}
210
+ }
211
+ }];
212
+ }
213
+ static get elementRef() { return "host"; }
214
+ static get watchers() {
215
+ return [{
216
+ "propName": "selectedLevelId",
217
+ "methodName": "levelsChangedHandler"
218
+ }];
219
+ }
220
+ static get listeners() {
221
+ return [{
222
+ "name": "touchstart",
223
+ "method": "onTouchStart",
224
+ "target": undefined,
225
+ "capture": false,
226
+ "passive": true
227
+ }, {
228
+ "name": "touchmove",
229
+ "method": "onTouchMove",
230
+ "target": undefined,
231
+ "capture": false,
232
+ "passive": true
233
+ }, {
234
+ "name": "resize",
235
+ "method": "handleResize",
236
+ "target": "window",
237
+ "capture": false,
238
+ "passive": true
239
+ }];
240
+ }
241
+ }