@everymatrix/bonus-elevate-levels 1.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bonus-elevate-levels/bonus-elevate-levels.esm.js +1 -0
- package/dist/bonus-elevate-levels/index.esm.js +0 -0
- package/dist/bonus-elevate-levels/p-35063d92.entry.js +1 -0
- package/dist/bonus-elevate-levels/p-6e37b540.js +2 -0
- package/dist/bonus-elevate-levels/p-e1255160.js +1 -0
- package/dist/cjs/app-globals-3a1e7e63.js +5 -0
- package/dist/cjs/bonus-elevate-levels.cjs.js +25 -0
- package/dist/cjs/bonus-elevate-levels_5.cjs.entry.js +429 -0
- package/dist/cjs/index-39b21e10.js +1626 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/loader.cjs.js +15 -0
- package/dist/collection/collection-manifest.json +22 -0
- package/dist/collection/components/bonus-elevate-levels/bonus-elevate-levels.css +18 -0
- package/dist/collection/components/bonus-elevate-levels/bonus-elevate-levels.js +243 -0
- package/dist/collection/components/bonus-elevate-levels/index.js +1 -0
- package/dist/collection/components/elevate-level-list/elevate-level-list.css +70 -0
- package/dist/collection/components/elevate-level-list/elevate-level-list.js +232 -0
- package/dist/collection/components/elevate-level-presentation/elevate-level-presentation.css +21 -0
- package/dist/collection/components/elevate-level-presentation/elevate-level-presentation.js +45 -0
- package/dist/collection/components/elevate-levels-data/elevate-levels-data.css +3 -0
- package/dist/collection/components/elevate-levels-data/elevate-levels-data.js +89 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/models/elevate-levels.js +1 -0
- package/dist/collection/utils/locale.utils.js +48 -0
- package/dist/collection/utils/prototype-collector.js +5 -0
- package/dist/collection/utils/utils.js +44 -0
- package/dist/esm/app-globals-0f993ce5.js +3 -0
- package/dist/esm/bonus-elevate-levels.js +20 -0
- package/dist/esm/bonus-elevate-levels_5.entry.js +421 -0
- package/dist/esm/index-ed3d1f59.js +1597 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/loader.js +11 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/stencil.config.dev.js +17 -0
- package/dist/stencil.config.js +17 -0
- package/dist/types/Users/raul.vasile/workspace/everymatrix/widgets-monorepo/packages/stencil/bonus-elevate-levels/.stencil/packages/stencil/bonus-elevate-levels/stencil.config.d.ts +2 -0
- package/dist/types/Users/raul.vasile/workspace/everymatrix/widgets-monorepo/packages/stencil/bonus-elevate-levels/.stencil/packages/stencil/bonus-elevate-levels/stencil.config.dev.d.ts +2 -0
- package/dist/types/components/bonus-elevate-levels/bonus-elevate-levels.d.ts +49 -0
- package/dist/types/components/bonus-elevate-levels/index.d.ts +1 -0
- package/dist/types/components/elevate-level-list/elevate-level-list.d.ts +45 -0
- package/dist/types/components/elevate-level-presentation/elevate-level-presentation.d.ts +8 -0
- package/dist/types/components/elevate-levels-data/elevate-levels-data.d.ts +10 -0
- package/dist/types/components.d.ts +206 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/models/elevate-levels.d.ts +12 -0
- package/dist/types/stencil-public-runtime.d.ts +1674 -0
- package/dist/types/utils/locale.utils.d.ts +10 -0
- package/dist/types/utils/prototype-collector.d.ts +1 -0
- package/dist/types/utils/utils.d.ts +21 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/loader/package.json +11 -0
- package/package.json +26 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import "../../../../../general-styling-wrapper/dist/types/index";
|
|
2
|
+
import fetch from "node-fetch";
|
|
3
|
+
export class ElevateLevelsData {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.scopeParams = undefined;
|
|
6
|
+
}
|
|
7
|
+
async componentWillRender() {
|
|
8
|
+
//load data
|
|
9
|
+
if (!this.scopeParams.endpoint) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const endpoint = this.scopeParams.endpoint;
|
|
13
|
+
let url = new URL(`${endpoint}/v1/elevate/levels?language=${this.scopeParams.language}`);
|
|
14
|
+
await fetch(url.href)
|
|
15
|
+
.then((res) => res.json())
|
|
16
|
+
.then((res) => {
|
|
17
|
+
const elevateLevels = res.data.sort((a, b) => {
|
|
18
|
+
return a.firstEntryPoints < b.firstEntryPoints ? -1 : 1;
|
|
19
|
+
});
|
|
20
|
+
let selectedLevelId = this.scopeParams.selectedLevelId;
|
|
21
|
+
// if selected level is not set, set first(basic) as default
|
|
22
|
+
if (!selectedLevelId && this.scopeParams.showDefault && elevateLevels.length > 0) {
|
|
23
|
+
selectedLevelId = elevateLevels[0].id;
|
|
24
|
+
}
|
|
25
|
+
if (selectedLevelId) {
|
|
26
|
+
// get current level by name
|
|
27
|
+
const currentLevel = elevateLevels.filter((item) => {
|
|
28
|
+
return item.id == selectedLevelId;
|
|
29
|
+
})[0];
|
|
30
|
+
this.elevateLevelsDataChange.emit({ currentLevel: currentLevel });
|
|
31
|
+
}
|
|
32
|
+
this.elevateLevelsDataChange.emit({ 'clearError': true });
|
|
33
|
+
this.elevateLevelsDataChange.emit({ 'elevateLevels': elevateLevels });
|
|
34
|
+
}).catch((err) => {
|
|
35
|
+
this.elevateLevelsDataChange.emit({ errorMessage: { type: 'errorWhenLoadElevateLevels', err } });
|
|
36
|
+
console.error(err);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
static get is() { return "elevate-levels-data"; }
|
|
40
|
+
static get originalStyleUrls() {
|
|
41
|
+
return {
|
|
42
|
+
"$": ["elevate-levels-data.scss"]
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
static get styleUrls() {
|
|
46
|
+
return {
|
|
47
|
+
"$": ["elevate-levels-data.css"]
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
static get properties() {
|
|
51
|
+
return {
|
|
52
|
+
"scopeParams": {
|
|
53
|
+
"type": "any",
|
|
54
|
+
"mutable": true,
|
|
55
|
+
"complexType": {
|
|
56
|
+
"original": "any",
|
|
57
|
+
"resolved": "any",
|
|
58
|
+
"references": {}
|
|
59
|
+
},
|
|
60
|
+
"required": true,
|
|
61
|
+
"optional": false,
|
|
62
|
+
"docs": {
|
|
63
|
+
"tags": [],
|
|
64
|
+
"text": "Params from parent"
|
|
65
|
+
},
|
|
66
|
+
"attribute": "scope-params",
|
|
67
|
+
"reflect": true
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
static get events() {
|
|
72
|
+
return [{
|
|
73
|
+
"method": "elevateLevelsDataChange",
|
|
74
|
+
"name": "elevateLevelsDataChange",
|
|
75
|
+
"bubbles": true,
|
|
76
|
+
"cancelable": true,
|
|
77
|
+
"composed": true,
|
|
78
|
+
"docs": {
|
|
79
|
+
"tags": [],
|
|
80
|
+
"text": ""
|
|
81
|
+
},
|
|
82
|
+
"complexType": {
|
|
83
|
+
"original": "any",
|
|
84
|
+
"resolved": "any",
|
|
85
|
+
"references": {}
|
|
86
|
+
}
|
|
87
|
+
}];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const DEFAULT_LANGUAGE = 'en';
|
|
2
|
+
const SUPPORTED_LANGUAGES = ['ro', 'en', 'fr', 'hr', 'tr'];
|
|
3
|
+
export const TRANSLATIONS = {
|
|
4
|
+
en: {
|
|
5
|
+
level: 'level',
|
|
6
|
+
seeAll: 'See All',
|
|
7
|
+
termsAndConditions: 'Terms & Conditions',
|
|
8
|
+
loadElevateLevelErrorMessage: 'Error when load elevate levels',
|
|
9
|
+
noLevelsSet: 'There is no level set',
|
|
10
|
+
points: 'Points',
|
|
11
|
+
},
|
|
12
|
+
fr: {
|
|
13
|
+
level: 'level',
|
|
14
|
+
seeAll: 'See All',
|
|
15
|
+
termsAndConditions: 'Terms & Conditions',
|
|
16
|
+
loadElevateLevelErrorMessage: 'Error when load elevate levels',
|
|
17
|
+
noLevelsSet: 'There is no level set',
|
|
18
|
+
points: 'Points',
|
|
19
|
+
},
|
|
20
|
+
hr: {
|
|
21
|
+
level: 'Razina',
|
|
22
|
+
seeAll: 'Vidi sve',
|
|
23
|
+
privilegesFor: 'Privilegije za',
|
|
24
|
+
termsAndConditions: 'Uvjeti i odredbe',
|
|
25
|
+
noLevelsSet: 'There is no level set',
|
|
26
|
+
points: 'Points',
|
|
27
|
+
},
|
|
28
|
+
ro: {
|
|
29
|
+
level: 'level',
|
|
30
|
+
seeAll: 'See All',
|
|
31
|
+
termsAndConditions: 'Terms & Conditions',
|
|
32
|
+
loadElevateLevelErrorMessage: 'Error when load elevate levels',
|
|
33
|
+
noLevelsSet: 'There is no level set',
|
|
34
|
+
points: 'Points',
|
|
35
|
+
},
|
|
36
|
+
tr: {
|
|
37
|
+
level: 'level',
|
|
38
|
+
seeAll: 'See All',
|
|
39
|
+
termsAndConditions: 'Terms & Conditions',
|
|
40
|
+
loadElevateLevelErrorMessage: 'Error when load elevate levels',
|
|
41
|
+
noLevelsSet: 'There is no level set',
|
|
42
|
+
points: 'Points',
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
export const translate = (key, customLang) => {
|
|
46
|
+
const lang = customLang;
|
|
47
|
+
return TRANSLATIONS[lang !== undefined && (SUPPORTED_LANGUAGES.includes(lang) || TRANSLATIONS[lang]) ? lang : DEFAULT_LANGUAGE][key];
|
|
48
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export function format(first, middle, last) {
|
|
2
|
+
return ((first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : ''));
|
|
3
|
+
}
|
|
4
|
+
export function getValueByLangFromPresentation(presentation, keyName, lang) {
|
|
5
|
+
if (!presentation || !presentation[keyName]) {
|
|
6
|
+
return '';
|
|
7
|
+
}
|
|
8
|
+
return presentation[keyName][lang] ? presentation[keyName][lang] : presentation[keyName]['*'];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @name isMobile
|
|
12
|
+
* @description A method that returns if the browser used to access the app is from a mobile device or not
|
|
13
|
+
* @param {String} userAgent window.navigator.userAgent
|
|
14
|
+
* @returns {Boolean} true or false
|
|
15
|
+
*/
|
|
16
|
+
export const isMobile = (userAgent) => {
|
|
17
|
+
return !!(userAgent.toLowerCase().match(/android/i) ||
|
|
18
|
+
userAgent.toLowerCase().match(/blackberry|bb/i) ||
|
|
19
|
+
userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||
|
|
20
|
+
userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i));
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @name getDevice
|
|
24
|
+
* @description A method that returns the type of the device
|
|
25
|
+
* @param {String} userAgent window.navigator.userAgent
|
|
26
|
+
* @returns {String} Android/iPhone/iPad/PC
|
|
27
|
+
*/
|
|
28
|
+
export const getDevice = (userAgent) => {
|
|
29
|
+
if (userAgent.toLowerCase().match(/android/i)) {
|
|
30
|
+
return 'Android';
|
|
31
|
+
}
|
|
32
|
+
if (userAgent.toLowerCase().match(/iphone/i)) {
|
|
33
|
+
return 'iPhone';
|
|
34
|
+
}
|
|
35
|
+
if (userAgent.toLowerCase().match(/ipad|ipod/i)) {
|
|
36
|
+
return 'iPad';
|
|
37
|
+
}
|
|
38
|
+
return 'PC';
|
|
39
|
+
};
|
|
40
|
+
export var MOVE_TO;
|
|
41
|
+
(function (MOVE_TO) {
|
|
42
|
+
MOVE_TO[MOVE_TO["slideToRight"] = 1] = "slideToRight";
|
|
43
|
+
MOVE_TO[MOVE_TO["slideToLeft"] = -1] = "slideToLeft";
|
|
44
|
+
})(MOVE_TO || (MOVE_TO = {}));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { p as promiseResolve, b as bootstrapLazy } from './index-ed3d1f59.js';
|
|
2
|
+
export { s as setNonce } from './index-ed3d1f59.js';
|
|
3
|
+
import { g as globalScripts } from './app-globals-0f993ce5.js';
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
Stencil Client Patch Browser v4.20.0 | MIT Licensed | https://stenciljs.com
|
|
7
|
+
*/
|
|
8
|
+
var patchBrowser = () => {
|
|
9
|
+
const importMeta = import.meta.url;
|
|
10
|
+
const opts = {};
|
|
11
|
+
if (importMeta !== "") {
|
|
12
|
+
opts.resourcesUrl = new URL(".", importMeta).href;
|
|
13
|
+
}
|
|
14
|
+
return promiseResolve(opts);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
patchBrowser().then(async (options) => {
|
|
18
|
+
await globalScripts();
|
|
19
|
+
return bootstrapLazy([["bonus-elevate-levels_5",[[1,"bonus-elevate-levels",{"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"endpoint":[513],"language":[513],"translationUrl":[513,"translation-url"],"selectedLevelId":[1537,"selected-level-id"],"showDefault":[4,"show-default"],"elevateLevelParamProxy":[32],"elevateLevels":[32],"currentLevel":[32],"errorMessage":[32]},[[0,"selectedLevelChanged","selectedLevelChangedHandler"],[2,"elevateLevelsDataChange","elevateLevelsDataChangeHandler"]],{"selectedLevelId":["selectedLevelIdChangedHandler"],"elevateLevels":["selectedLevelIdChangedHandler"],"endpoint":["onSessionOrEndpointChange"],"language":["onSessionOrEndpointChange"]}],[0,"elevate-level-list",{"levels":[16],"language":[1],"selectedLevelId":[1537,"selected-level-id"],"isShowSliderButton":[32],"touchPosStart":[32],"touchPosEnd":[32],"offset":[32]},[[1,"touchstart","onTouchStart"],[1,"touchmove","onTouchMove"],[9,"resize","handleResize"]],{"selectedLevelId":["levelsChangedHandler"]}],[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"],"translationUrl":[1,"translation-url"],"targetTranslations":[16]}]]]], options);
|
|
20
|
+
});
|
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import { r as registerInstance, h, c as createEvent, H as Host, g as getElement } from './index-ed3d1f59.js';
|
|
2
|
+
|
|
3
|
+
const DEFAULT_LANGUAGE = 'en';
|
|
4
|
+
const SUPPORTED_LANGUAGES = ['ro', 'en', 'fr', 'hr', 'tr'];
|
|
5
|
+
const TRANSLATIONS = {
|
|
6
|
+
en: {
|
|
7
|
+
level: 'level',
|
|
8
|
+
seeAll: 'See All',
|
|
9
|
+
termsAndConditions: 'Terms & Conditions',
|
|
10
|
+
loadElevateLevelErrorMessage: 'Error when load elevate levels',
|
|
11
|
+
noLevelsSet: 'There is no level set',
|
|
12
|
+
points: 'Points',
|
|
13
|
+
},
|
|
14
|
+
fr: {
|
|
15
|
+
level: 'level',
|
|
16
|
+
seeAll: 'See All',
|
|
17
|
+
termsAndConditions: 'Terms & Conditions',
|
|
18
|
+
loadElevateLevelErrorMessage: 'Error when load elevate levels',
|
|
19
|
+
noLevelsSet: 'There is no level set',
|
|
20
|
+
points: 'Points',
|
|
21
|
+
},
|
|
22
|
+
hr: {
|
|
23
|
+
level: 'Razina',
|
|
24
|
+
seeAll: 'Vidi sve',
|
|
25
|
+
privilegesFor: 'Privilegije za',
|
|
26
|
+
termsAndConditions: 'Uvjeti i odredbe',
|
|
27
|
+
noLevelsSet: 'There is no level set',
|
|
28
|
+
points: 'Points',
|
|
29
|
+
},
|
|
30
|
+
ro: {
|
|
31
|
+
level: 'level',
|
|
32
|
+
seeAll: 'See All',
|
|
33
|
+
termsAndConditions: 'Terms & Conditions',
|
|
34
|
+
loadElevateLevelErrorMessage: 'Error when load elevate levels',
|
|
35
|
+
noLevelsSet: 'There is no level set',
|
|
36
|
+
points: 'Points',
|
|
37
|
+
},
|
|
38
|
+
tr: {
|
|
39
|
+
level: 'level',
|
|
40
|
+
seeAll: 'See All',
|
|
41
|
+
termsAndConditions: 'Terms & Conditions',
|
|
42
|
+
loadElevateLevelErrorMessage: 'Error when load elevate levels',
|
|
43
|
+
noLevelsSet: 'There is no level set',
|
|
44
|
+
points: 'Points',
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const translate = (key, customLang) => {
|
|
48
|
+
const lang = customLang;
|
|
49
|
+
return TRANSLATIONS[lang !== undefined && (SUPPORTED_LANGUAGES.includes(lang) || TRANSLATIONS[lang]) ? lang : DEFAULT_LANGUAGE][key];
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const bonusElevateLevelsCss = ":host{display:block}.ElevateLevelContent{padding:20px;position:relative}.ElevateLevelContent .Privileges{padding-bottom:30px}.ElevateLevelContent .tc{position:absolute;right:10px;bottom:10px;text-align:right;display:none}";
|
|
53
|
+
const BonusElevateLevelsStyle0 = bonusElevateLevelsCss;
|
|
54
|
+
|
|
55
|
+
const BonusElevateLevels = class {
|
|
56
|
+
constructor(hostRef) {
|
|
57
|
+
registerInstance(this, hostRef);
|
|
58
|
+
this.clientStyling = '';
|
|
59
|
+
this.clientStylingUrl = '';
|
|
60
|
+
this.endpoint = undefined;
|
|
61
|
+
this.language = 'en';
|
|
62
|
+
this.translationUrl = '';
|
|
63
|
+
this.selectedLevelId = undefined;
|
|
64
|
+
this.showDefault = undefined;
|
|
65
|
+
this.elevateLevelParamProxy = undefined;
|
|
66
|
+
this.elevateLevels = [];
|
|
67
|
+
this.currentLevel = undefined;
|
|
68
|
+
this.errorMessage = undefined;
|
|
69
|
+
}
|
|
70
|
+
selectedLevelChangedHandler(event) {
|
|
71
|
+
if (event.detail) {
|
|
72
|
+
this.currentLevel = Object.assign({}, event.detail.level);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
selectedLevelIdChangedHandler() {
|
|
76
|
+
if (this.selectedLevelId && this.elevateLevels) {
|
|
77
|
+
const currentLevel = this.elevateLevels.filter((item) => {
|
|
78
|
+
return item.id == this.selectedLevelId;
|
|
79
|
+
})[0];
|
|
80
|
+
this.currentLevel = Object.assign({}, currentLevel);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
onSessionOrEndpointChange() {
|
|
84
|
+
this.elevateLevelParamProxy = Object.assign(Object.assign({}, this.elevateLevelParamProxy), { endpoint: this.endpoint, language: this.language });
|
|
85
|
+
}
|
|
86
|
+
elevateLevelsDataChangeHandler(event) {
|
|
87
|
+
if (!event.detail) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (event.detail.currentLevel) {
|
|
91
|
+
this.currentLevel = Object.assign({}, event.detail.currentLevel);
|
|
92
|
+
}
|
|
93
|
+
if (event.detail.elevateLevels) {
|
|
94
|
+
this.elevateLevels = [...event.detail.elevateLevels];
|
|
95
|
+
}
|
|
96
|
+
if (event.detail.clearError) {
|
|
97
|
+
this.errorMessage = null;
|
|
98
|
+
}
|
|
99
|
+
if (event.detail.errorMessage) {
|
|
100
|
+
if (event.detail.errorMessage['errorWhenLoadElevateLevels']) {
|
|
101
|
+
this.errorMessage = translate('loadElevateLevelErrorMessage', this.language);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
onTCClick() {
|
|
106
|
+
window.postMessage({ type: 'termAndConditionClicked' }, window.location.href);
|
|
107
|
+
}
|
|
108
|
+
componentWillLoad() {
|
|
109
|
+
this.elevateLevelParamProxy = {
|
|
110
|
+
endpoint: this.endpoint, language: this.language, selectedLevelId: this.selectedLevelId,
|
|
111
|
+
showDefault: this.showDefault
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
render() {
|
|
115
|
+
return (h("div", { key: '327b5cd6a3bc756ce0696a0f2a4081f35bad7316', class: "ElevateLevelContent" }, h("elevate-levels-data", { key: 'cf1ab9a55cdaf9eba688bd524cb4a83d63563e77', scopeParams: this.elevateLevelParamProxy }), h("div", { key: '9c85b9a805712db07c7c99ac2db843062997f667', class: "LevelContent" }, this.elevateLevels ?
|
|
116
|
+
h("elevate-level-list", { language: this.language, selectedLevelId: this.selectedLevelId, levels: this.elevateLevels }) : translate('noLevelsSet', this.language), this.currentLevel &&
|
|
117
|
+
h("elevate-level-presentation", { key: '0fecb2a451caeef4512dc6f2af4fd3406610cc72', elevateLevel: this.currentLevel })), this.errorMessage && h("div", { key: 'ef746907148df80338fd2300322cd8eea9342f51' }, this.errorMessage), h("general-styling-wrapper", { key: 'e3d82ef1b7e5986354e18d875f9e3c547ff8adba', clientStyling: this.clientStyling, clientStylingUrl: this.clientStylingUrl, targetTranslations: TRANSLATIONS, translationUrl: this.translationUrl })));
|
|
118
|
+
}
|
|
119
|
+
static get watchers() { return {
|
|
120
|
+
"selectedLevelId": ["selectedLevelIdChangedHandler"],
|
|
121
|
+
"elevateLevels": ["selectedLevelIdChangedHandler"],
|
|
122
|
+
"endpoint": ["onSessionOrEndpointChange"],
|
|
123
|
+
"language": ["onSessionOrEndpointChange"]
|
|
124
|
+
}; }
|
|
125
|
+
};
|
|
126
|
+
BonusElevateLevels.style = BonusElevateLevelsStyle0;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @name isMobile
|
|
130
|
+
* @description A method that returns if the browser used to access the app is from a mobile device or not
|
|
131
|
+
* @param {String} userAgent window.navigator.userAgent
|
|
132
|
+
* @returns {Boolean} true or false
|
|
133
|
+
*/
|
|
134
|
+
const isMobile = (userAgent) => {
|
|
135
|
+
return !!(userAgent.toLowerCase().match(/android/i) ||
|
|
136
|
+
userAgent.toLowerCase().match(/blackberry|bb/i) ||
|
|
137
|
+
userAgent.toLowerCase().match(/iphone|ipad|ipod/i) ||
|
|
138
|
+
userAgent.toLowerCase().match(/windows phone|windows mobile|iemobile|wpdesktop/i));
|
|
139
|
+
};
|
|
140
|
+
var MOVE_TO;
|
|
141
|
+
(function (MOVE_TO) {
|
|
142
|
+
MOVE_TO[MOVE_TO["slideToRight"] = 1] = "slideToRight";
|
|
143
|
+
MOVE_TO[MOVE_TO["slideToLeft"] = -1] = "slideToLeft";
|
|
144
|
+
})(MOVE_TO || (MOVE_TO = {}));
|
|
145
|
+
|
|
146
|
+
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(--emfe-w-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(--emfe-w-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(--emfe-w-color-gray-50, #cbc5c5)}.SliderButton.Hidden{display:none}";
|
|
147
|
+
const ElevateLevelListStyle0 = elevateLevelListCss;
|
|
148
|
+
|
|
149
|
+
const ElevateLevelList = class {
|
|
150
|
+
constructor(hostRef) {
|
|
151
|
+
registerInstance(this, hostRef);
|
|
152
|
+
this.selectedLevelChanged = createEvent(this, "selectedLevelChanged", 7);
|
|
153
|
+
this.minOffset = 0;
|
|
154
|
+
this.isMobile = isMobile(window.navigator.userAgent);
|
|
155
|
+
this.levels = undefined;
|
|
156
|
+
this.language = undefined;
|
|
157
|
+
this.selectedLevelId = undefined;
|
|
158
|
+
this.isShowSliderButton = false;
|
|
159
|
+
this.touchPosStart = undefined;
|
|
160
|
+
this.touchPosEnd = undefined;
|
|
161
|
+
this.offset = 0;
|
|
162
|
+
}
|
|
163
|
+
onLevelClicked(elevateLevel) {
|
|
164
|
+
this.selectedLevelChanged.emit({ level: elevateLevel });
|
|
165
|
+
this.selectedLevelId = elevateLevel.id;
|
|
166
|
+
}
|
|
167
|
+
levelsChangedHandler() {
|
|
168
|
+
this.initOffsetOfLevelItems();
|
|
169
|
+
}
|
|
170
|
+
initOffsetOfLevelItems() {
|
|
171
|
+
if (!this.levels || this.levels.length == 0 || !this.selectedLevelId) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
const currentLevelIndex = this.levels.findIndex((item) => {
|
|
175
|
+
return this.selectedLevelId == item.id;
|
|
176
|
+
});
|
|
177
|
+
this.onLevelClicked(this.levels[currentLevelIndex == -1 ? 0 : currentLevelIndex]);
|
|
178
|
+
//do not need change the slider offset when level items less than moveCountForOneTouch
|
|
179
|
+
if (this.levels.length <= this.moveCountForOneTouch) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
//to avoid the slider do not move when currentLevelIndex = moveCountForOneTouch - 1
|
|
183
|
+
let newOffset = Math.floor((currentLevelIndex == -1 ? 1 : currentLevelIndex + 1) / this.moveCountForOneTouch)
|
|
184
|
+
* this.moveCountForOneTouch * this.childElementWidth * (-1);
|
|
185
|
+
this.offset = newOffset <= this.minOffset ? this.minOffset : (newOffset >= 0 ? 0 : newOffset);
|
|
186
|
+
}
|
|
187
|
+
onTouchStart(e) {
|
|
188
|
+
this.touchPosStart = { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY };
|
|
189
|
+
}
|
|
190
|
+
onTouchMove(e) {
|
|
191
|
+
this.touchPosEnd = { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY };
|
|
192
|
+
const diffX = this.touchPosEnd.clientX - this.touchPosStart.clientX;
|
|
193
|
+
const diffY = this.touchPosEnd.clientY - this.touchPosStart.clientY;
|
|
194
|
+
if (Math.abs(diffX) > Math.abs(diffY)) {
|
|
195
|
+
this.slideTo(diffX > 0 ? MOVE_TO.slideToRight : MOVE_TO.slideToLeft);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
slideTo(direction) {
|
|
199
|
+
let newOffset = this.levelsElement.offsetLeft +
|
|
200
|
+
(this.childElementWidth) * this.moveCountForOneTouch * direction;
|
|
201
|
+
if (newOffset % this.childElementWidth != 0) {
|
|
202
|
+
const leftOfPreNode = (Math.floor(newOffset / this.childElementWidth)) * this.childElementWidth;
|
|
203
|
+
const leftOfNextNode = (Math.ceil(newOffset / this.childElementWidth)) * this.childElementWidth;
|
|
204
|
+
//touchmove to right, get left of pre-node; touchmove to left, get left of next-node
|
|
205
|
+
newOffset = direction == MOVE_TO.slideToRight ? leftOfPreNode : leftOfNextNode;
|
|
206
|
+
}
|
|
207
|
+
this.offset = newOffset < this.minOffset ? this.minOffset : (newOffset >= 0 ? 0 : newOffset);
|
|
208
|
+
}
|
|
209
|
+
initLevelSlider() {
|
|
210
|
+
var _a;
|
|
211
|
+
if (!((_a = this.levelsElement) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {
|
|
212
|
+
console.log('Widget[elevate-level-list] DOM is not ready.');
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
this.isShowSliderButton = !this.isMobile && (this.levelsElement.clientWidth > this.levelsElement.parentElement.clientWidth);
|
|
216
|
+
this.minOffset = this.levelsElement.parentElement.clientWidth - this.levelsElement.clientWidth;
|
|
217
|
+
this.childElementWidth = this.levelsElement.firstElementChild.clientWidth;
|
|
218
|
+
this.moveCountForOneTouch = Math.ceil(this.levelsElement.parentElement.clientWidth / this.childElementWidth) - 1;
|
|
219
|
+
const childElementCount = this.levelsElement.childElementCount;
|
|
220
|
+
this.childElementWidth += (this.levelsElement.clientWidth - this.childElementWidth * childElementCount) / (childElementCount - 1);
|
|
221
|
+
}
|
|
222
|
+
debounce(callback, delay) {
|
|
223
|
+
{
|
|
224
|
+
let timer;
|
|
225
|
+
return () => {
|
|
226
|
+
clearTimeout(timer);
|
|
227
|
+
timer = setTimeout(() => {
|
|
228
|
+
callback();
|
|
229
|
+
}, delay);
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
;
|
|
234
|
+
handleResize() {
|
|
235
|
+
this.debounce(this.initLevelSlider.bind(this), 200)();
|
|
236
|
+
}
|
|
237
|
+
componentDidRender() {
|
|
238
|
+
this.host.componentOnReady().then(() => {
|
|
239
|
+
this.initLevelSlider();
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
render() {
|
|
243
|
+
return (h(Host, { key: 'd88d3434af89a0f8fd20a97735121fdf297905ab' }, this.levels && [
|
|
244
|
+
h("div", { key: 'cff36ba584e2474a65a1b95545b00937ecd06c8c', class: `SliderButton LeftButton ${this.offset == 0 ? 'Disabled' : ''} ${this.isShowSliderButton ? '' : 'Hidden'}`, onClick: () => this.slideTo(MOVE_TO.slideToRight) }, h("svg", { key: '640b4dd9b26b4097d15623f3e9c6b14b9a60b37e', fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '0a50ffc9319ad33ed61e4696c37a0bfe6090518c', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M15 19l-7-7 7-7" }))),
|
|
245
|
+
h("div", { key: '314c5b4c5bbc0d50041a66fdf474441ea418345a', class: 'LevelItemsWrapper' }, h("div", { key: 'ff1fb084aeb20319c36a3420e9eb8693ea81b144', style: { 'left': `${this.offset}px` }, class: `LevelItems ${this.isMobile ? 'Mobile' : ''}`, id: 'levelItems', ref: (el) => { this.levelsElement = el; } }, this.levels.map((level, idx) => {
|
|
246
|
+
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 ? '' : '>', level.firstEntryPoints, ' ', translate('points', this.language))));
|
|
247
|
+
}))),
|
|
248
|
+
h("div", { key: '8dae638ca436c7e747a0f737028588ee5d040edd', class: `SliderButton RightButton ${this.offset <= this.minOffset ? 'Disabled' : ''} ${this.isShowSliderButton ? '' : 'Hidden'}`, onClick: () => this.slideTo(MOVE_TO.slideToLeft) }, h("svg", { key: 'bba16b49668567aaa41beedd9ea461d256c6812d', fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '36a0b6f3ffe8b50ebea9a4ec1c01e3341c440949', "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M9 5l7 7-7 7" })))
|
|
249
|
+
]));
|
|
250
|
+
}
|
|
251
|
+
get host() { return getElement(this); }
|
|
252
|
+
static get watchers() { return {
|
|
253
|
+
"selectedLevelId": ["levelsChangedHandler"]
|
|
254
|
+
}; }
|
|
255
|
+
};
|
|
256
|
+
ElevateLevelList.style = ElevateLevelListStyle0;
|
|
257
|
+
|
|
258
|
+
const elevateLevelPresentationCss = ":host{display:block}.PriviliegeList{padding-inline-start:5px}.PriviliegeList li{display:flex}.PriviliegeList li .Img{width:80px}.PriviliegeList li .Img img{width:60px;margin:10px}.PriviliegeList li .Content h4{text-transform:capitalize;margin-block-start:10px}";
|
|
259
|
+
const ElevateLevelPresentationStyle0 = elevateLevelPresentationCss;
|
|
260
|
+
|
|
261
|
+
const ElevateLevelPresentation = class {
|
|
262
|
+
constructor(hostRef) {
|
|
263
|
+
registerInstance(this, hostRef);
|
|
264
|
+
this.elevateLevel = undefined;
|
|
265
|
+
}
|
|
266
|
+
render() {
|
|
267
|
+
return h(Host, { key: '16d128717e716f7ca7d3bb77fc3a2e67209318b6' }, h("div", { key: '658657abdfc64844bd2af40562efe40385e1735a', class: "Row Desc" }, h("h3", { key: 'ec5871c2f810c8c120bf99510717381175bc1ef4' }, this.elevateLevel.presentation.displayName), h("p", { key: '865915c6eea90295238fb47eaa91c8f968199ca5' }, h("span", { key: '2b90c6c5d6957b73fc4a0f53d53da0ca023a4f0a', class: "TxtDesc", innerHTML: this.elevateLevel.presentation.description }))));
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
ElevateLevelPresentation.style = ElevateLevelPresentationStyle0;
|
|
271
|
+
|
|
272
|
+
var browser = {exports: {}};
|
|
273
|
+
|
|
274
|
+
(function (module, exports) {
|
|
275
|
+
|
|
276
|
+
// ref: https://github.com/tc39/proposal-global
|
|
277
|
+
var getGlobal = function () {
|
|
278
|
+
// the only reliable means to get the global object is
|
|
279
|
+
// `Function('return this')()`
|
|
280
|
+
// However, this causes CSP violations in Chrome apps.
|
|
281
|
+
if (typeof self !== 'undefined') { return self; }
|
|
282
|
+
if (typeof window !== 'undefined') { return window; }
|
|
283
|
+
if (typeof global !== 'undefined') { return global; }
|
|
284
|
+
throw new Error('unable to locate global object');
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
var global = getGlobal();
|
|
288
|
+
|
|
289
|
+
module.exports = exports = global.fetch;
|
|
290
|
+
|
|
291
|
+
// Needed for TypeScript and Webpack.
|
|
292
|
+
if (global.fetch) {
|
|
293
|
+
exports.default = global.fetch.bind(global);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
exports.Headers = global.Headers;
|
|
297
|
+
exports.Request = global.Request;
|
|
298
|
+
exports.Response = global.Response;
|
|
299
|
+
}(browser, browser.exports));
|
|
300
|
+
|
|
301
|
+
const fetch$1 = browser.exports;
|
|
302
|
+
|
|
303
|
+
const elevateLevelsDataCss = ":host{display:block}";
|
|
304
|
+
const ElevateLevelsDataStyle0 = elevateLevelsDataCss;
|
|
305
|
+
|
|
306
|
+
const ElevateLevelsData = class {
|
|
307
|
+
constructor(hostRef) {
|
|
308
|
+
registerInstance(this, hostRef);
|
|
309
|
+
this.elevateLevelsDataChange = createEvent(this, "elevateLevelsDataChange", 7);
|
|
310
|
+
this.scopeParams = undefined;
|
|
311
|
+
}
|
|
312
|
+
async componentWillRender() {
|
|
313
|
+
//load data
|
|
314
|
+
if (!this.scopeParams.endpoint) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const endpoint = this.scopeParams.endpoint;
|
|
318
|
+
let url = new URL(`${endpoint}/v1/elevate/levels?language=${this.scopeParams.language}`);
|
|
319
|
+
await fetch$1(url.href)
|
|
320
|
+
.then((res) => res.json())
|
|
321
|
+
.then((res) => {
|
|
322
|
+
const elevateLevels = res.data.sort((a, b) => {
|
|
323
|
+
return a.firstEntryPoints < b.firstEntryPoints ? -1 : 1;
|
|
324
|
+
});
|
|
325
|
+
let selectedLevelId = this.scopeParams.selectedLevelId;
|
|
326
|
+
// if selected level is not set, set first(basic) as default
|
|
327
|
+
if (!selectedLevelId && this.scopeParams.showDefault && elevateLevels.length > 0) {
|
|
328
|
+
selectedLevelId = elevateLevels[0].id;
|
|
329
|
+
}
|
|
330
|
+
if (selectedLevelId) {
|
|
331
|
+
// get current level by name
|
|
332
|
+
const currentLevel = elevateLevels.filter((item) => {
|
|
333
|
+
return item.id == selectedLevelId;
|
|
334
|
+
})[0];
|
|
335
|
+
this.elevateLevelsDataChange.emit({ currentLevel: currentLevel });
|
|
336
|
+
}
|
|
337
|
+
this.elevateLevelsDataChange.emit({ 'clearError': true });
|
|
338
|
+
this.elevateLevelsDataChange.emit({ 'elevateLevels': elevateLevels });
|
|
339
|
+
}).catch((err) => {
|
|
340
|
+
this.elevateLevelsDataChange.emit({ errorMessage: { type: 'errorWhenLoadElevateLevels', err } });
|
|
341
|
+
console.error(err);
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
ElevateLevelsData.style = ElevateLevelsDataStyle0;
|
|
346
|
+
|
|
347
|
+
const mergeTranslations = (url, target) => {
|
|
348
|
+
return new Promise((resolve) => {
|
|
349
|
+
fetch(url)
|
|
350
|
+
.then((res) => res.json())
|
|
351
|
+
.then((data) => {
|
|
352
|
+
Object.keys(data).forEach((item) => {
|
|
353
|
+
target[item] = target[item] ? target[item] : {};
|
|
354
|
+
for (let key in data[item]) {
|
|
355
|
+
target[item][key] = data[item][key];
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
resolve(true);
|
|
359
|
+
});
|
|
360
|
+
});
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
const generalStylingWrapperCss = ":host{display:block}";
|
|
364
|
+
const GeneralStylingWrapperStyle0 = generalStylingWrapperCss;
|
|
365
|
+
|
|
366
|
+
const GeneralStylingWrapper = class {
|
|
367
|
+
constructor(hostRef) {
|
|
368
|
+
registerInstance(this, hostRef);
|
|
369
|
+
this.stylingAppends = false;
|
|
370
|
+
this.setClientStyling = () => {
|
|
371
|
+
let sheet = document.createElement('style');
|
|
372
|
+
sheet.innerHTML = this.clientStyling;
|
|
373
|
+
this.el.prepend(sheet);
|
|
374
|
+
};
|
|
375
|
+
this.setClientStylingURL = () => {
|
|
376
|
+
let url = new URL(this.clientStylingUrl);
|
|
377
|
+
let cssFile = document.createElement('style');
|
|
378
|
+
fetch(url.href)
|
|
379
|
+
.then((res) => res.text())
|
|
380
|
+
.then((data) => {
|
|
381
|
+
cssFile.innerHTML = data;
|
|
382
|
+
setTimeout(() => {
|
|
383
|
+
this.el.prepend(cssFile);
|
|
384
|
+
}, 1);
|
|
385
|
+
})
|
|
386
|
+
.catch((err) => {
|
|
387
|
+
console.log('error ', err);
|
|
388
|
+
});
|
|
389
|
+
};
|
|
390
|
+
this.clientStyling = '';
|
|
391
|
+
this.clientStylingUrl = '';
|
|
392
|
+
this.translationUrl = '';
|
|
393
|
+
this.targetTranslations = undefined;
|
|
394
|
+
}
|
|
395
|
+
componentDidRender() {
|
|
396
|
+
// start custom styling area
|
|
397
|
+
if (!this.stylingAppends) {
|
|
398
|
+
if (this.clientStyling)
|
|
399
|
+
this.setClientStyling();
|
|
400
|
+
if (this.clientStylingUrl)
|
|
401
|
+
this.setClientStylingURL();
|
|
402
|
+
this.stylingAppends = true;
|
|
403
|
+
}
|
|
404
|
+
// end custom styling area
|
|
405
|
+
}
|
|
406
|
+
async componentWillLoad() {
|
|
407
|
+
const promises = [];
|
|
408
|
+
if (this.translationUrl) {
|
|
409
|
+
const translationPromise = mergeTranslations(this.translationUrl, this.targetTranslations);
|
|
410
|
+
promises.push(translationPromise);
|
|
411
|
+
}
|
|
412
|
+
return await Promise.all(promises);
|
|
413
|
+
}
|
|
414
|
+
render() {
|
|
415
|
+
return (h("div", { key: '4d3414408c7662f88331dbe655966237f74d6958', class: "StyleShell" }, h("slot", { key: '1d004644d84602c4314bdf5dfc26b55b160f57df', name: "mainContent" })));
|
|
416
|
+
}
|
|
417
|
+
get el() { return getElement(this); }
|
|
418
|
+
};
|
|
419
|
+
GeneralStylingWrapper.style = GeneralStylingWrapperStyle0;
|
|
420
|
+
|
|
421
|
+
export { BonusElevateLevels as bonus_elevate_levels, ElevateLevelList as elevate_level_list, ElevateLevelPresentation as elevate_level_presentation, ElevateLevelsData as elevate_levels_data, GeneralStylingWrapper as general_styling_wrapper };
|