@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,143 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-88ecbb5b.js';
2
+ import { t as translate } from './locale.utils-3a9c8e78.js';
3
+
4
+ /**
5
+ * @name isMobile
6
+ * @description A method that returns if the browser used to access the app is from a mobile device or not
7
+ * @param {String} userAgent window.navigator.userAgent
8
+ * @returns {Boolean} true or false
9
+ */
10
+ const isMobile = (userAgent) => {
11
+ return !!(userAgent.toLowerCase().match(/android/i) ||
12
+ userAgent.toLowerCase().match(/blackberry|bb/i) ||
13
+ userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||
14
+ userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i));
15
+ };
16
+ var MOVE_TO;
17
+ (function (MOVE_TO) {
18
+ MOVE_TO[MOVE_TO["slideToRight"] = 1] = "slideToRight";
19
+ MOVE_TO[MOVE_TO["slideToLeft"] = -1] = "slideToLeft";
20
+ })(MOVE_TO || (MOVE_TO = {}));
21
+
22
+ const elevateLevelListCss = "elevate-level-list{display:flex;flex-direction:row}.LevelItemsWrapper{display:flex;flex:1;margin-top:10px;min-height:30px;transition-property:all;position:relative;height:138px;overflow-x:hidden}.Mobile.LevelItems{overflow-x:hidden}.LevelItems{overflow-x:auto;display:flex;flex-direction:row;gap:10px;left:0;position:absolute;transition:left 0.5s ease-in-out}.LevelItems .Item:hover,.LevelItems .Item.Active{background-color:var(--emw--color-gray-50, rgb(244, 244, 244));box-shadow:0px 4px 13px 0px rgba(0, 0, 0, 0.25)}.LevelItems .Item{width:86px;height:125px;border-radius:15px;text-align:center;display:flex;flex-direction:column;cursor:pointer}.LevelItems .Item .LevelName{font-size:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.LevelItems .Item .LevelPoints{color:var(--emw--color-gray-100, rgb(118, 113, 113));font-size:10px}.LevelItems .Item .LevelImg{width:65px;height:68px;margin:11px auto}.SliderButton{display:flex;width:29px;align-items:center;cursor:pointer}.SliderButton.Disabled svg{stroke:var(--emw--color-gray-50, #cbc5c5)}.SliderButton.Hidden{display:none}";
23
+ const ElevateLevelListStyle0 = elevateLevelListCss;
24
+
25
+ const ElevateLevelList = class {
26
+ constructor(hostRef) {
27
+ registerInstance(this, hostRef);
28
+ this.selectedLevelChanged = createEvent(this, "selectedLevelChanged", 7);
29
+ this.minOffset = 0;
30
+ this.isMobile = isMobile(window.navigator.userAgent);
31
+ this.levels = undefined;
32
+ this.language = undefined;
33
+ this.selectedLevelId = undefined;
34
+ this.showSliderButton = false;
35
+ this.touchPosStart = undefined;
36
+ this.touchPosEnd = undefined;
37
+ this.offset = 0;
38
+ }
39
+ onLevelClicked(elevateLevel) {
40
+ this.selectedLevelChanged.emit({ level: elevateLevel });
41
+ this.selectedLevelId = elevateLevel.id;
42
+ }
43
+ levelsChangedHandler() {
44
+ this.initOffsetOfLevelItems();
45
+ }
46
+ initOffsetOfLevelItems() {
47
+ if (!this.levels || this.levels.length === 0 || !this.selectedLevelId) {
48
+ return;
49
+ }
50
+ const currentLevelIndex = this.levels.findIndex((item) => {
51
+ return this.selectedLevelId === item.id;
52
+ });
53
+ this.onLevelClicked(this.levels[currentLevelIndex === -1 ? 0 : currentLevelIndex]);
54
+ //do not need change the slider offset when level items less than moveCountForOneTouch
55
+ if (this.levels.length <= this.moveCountForOneTouch) {
56
+ return;
57
+ }
58
+ //to avoid the slider do not move when currentLevelIndex = moveCountForOneTouch - 1
59
+ let newOffset = Math.floor((currentLevelIndex === -1 ? 1 : currentLevelIndex + 1) / this.moveCountForOneTouch)
60
+ * this.moveCountForOneTouch * this.childElementWidth * (-1);
61
+ this.offset = newOffset <= this.minOffset ? this.minOffset : (newOffset >= 0 ? 0 : newOffset);
62
+ }
63
+ onTouchStart(e) {
64
+ this.touchPosStart = { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY };
65
+ }
66
+ onTouchMove(e) {
67
+ this.touchPosEnd = { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY };
68
+ const diffX = this.touchPosEnd.clientX - this.touchPosStart.clientX;
69
+ const diffY = this.touchPosEnd.clientY - this.touchPosStart.clientY;
70
+ if (Math.abs(diffX) > Math.abs(diffY)) {
71
+ this.slideTo(diffX > 0 ? MOVE_TO.slideToRight : MOVE_TO.slideToLeft);
72
+ }
73
+ }
74
+ slideTo(direction) {
75
+ let newOffset = this.levelsElement.offsetLeft +
76
+ (this.childElementWidth) * this.moveCountForOneTouch * direction;
77
+ if (newOffset % this.childElementWidth != 0) {
78
+ const leftOfPreNode = (Math.floor(newOffset / this.childElementWidth)) * this.childElementWidth;
79
+ const leftOfNextNode = (Math.ceil(newOffset / this.childElementWidth)) * this.childElementWidth;
80
+ //touchmove to right, get left of pre-node; touchmove to left, get left of next-node
81
+ newOffset = direction === MOVE_TO.slideToRight ? leftOfPreNode : leftOfNextNode;
82
+ }
83
+ this.offset = newOffset < this.minOffset ? this.minOffset : (newOffset >= 0 ? 0 : newOffset);
84
+ }
85
+ initLevelSlider() {
86
+ var _a;
87
+ if (!((_a = this.levelsElement) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {
88
+ console.log('Widget[elevate-level-list] DOM is not ready.');
89
+ return;
90
+ }
91
+ this.showSliderButton = !this.isMobile && (this.levelsElement.clientWidth > this.levelsElement.parentElement.clientWidth);
92
+ this.minOffset = this.levelsElement.parentElement.clientWidth - this.levelsElement.clientWidth;
93
+ this.childElementWidth = this.levelsElement.firstElementChild.clientWidth;
94
+ this.moveCountForOneTouch = Math.ceil(this.levelsElement.parentElement.clientWidth / this.childElementWidth) - 1;
95
+ const childElementCount = this.levelsElement.childElementCount;
96
+ this.childElementWidth += (this.levelsElement.clientWidth - this.childElementWidth * childElementCount) / (childElementCount - 1);
97
+ }
98
+ debounce(callback, delay) {
99
+ {
100
+ let timer;
101
+ return () => {
102
+ clearTimeout(timer);
103
+ timer = setTimeout(() => {
104
+ callback();
105
+ }, delay);
106
+ };
107
+ }
108
+ }
109
+ ;
110
+ convertNumberToCompactForm(num) {
111
+ if (num >= 1000000000)
112
+ return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'b';
113
+ if (num >= 1000000)
114
+ return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'm';
115
+ if (num >= 1000)
116
+ return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'k';
117
+ return num.toFixed(1);
118
+ }
119
+ handleResize() {
120
+ this.debounce(this.initLevelSlider.bind(this), 200)();
121
+ }
122
+ componentDidRender() {
123
+ this.host.componentOnReady().then(() => {
124
+ this.initLevelSlider();
125
+ });
126
+ }
127
+ render() {
128
+ return (h(Host, { key: '44b0d5811a2207a53f95c5a50d6ed89d70f42d01' }, this.levels && [
129
+ 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" }))),
130
+ 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) => {
131
+ 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))));
132
+ }))),
133
+ 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" })))
134
+ ]));
135
+ }
136
+ get host() { return getElement(this); }
137
+ static get watchers() { return {
138
+ "selectedLevelId": ["levelsChangedHandler"]
139
+ }; }
140
+ };
141
+ ElevateLevelList.style = ElevateLevelListStyle0;
142
+
143
+ export { ElevateLevelList as elevate_level_list };