@everymatrix/casino-header-controller-nd 1.47.0 → 1.47.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everymatrix/casino-header-controller-nd",
3
- "version": "1.47.0",
3
+ "version": "1.47.1",
4
4
  "type": "module",
5
5
  "main": "es2015/casino-header-controller-nd.cjs",
6
6
  "module": "es2015/casino-header-controller-nd.js",
@@ -13,7 +13,8 @@
13
13
  },
14
14
  "files": [
15
15
  "es2015/",
16
- "components"
16
+ "components",
17
+ "stencil"
17
18
  ],
18
19
  "publishConfig": {
19
20
  "access": "public"
@@ -0,0 +1,5 @@
1
+ const o = () => {
2
+ };
3
+ export {
4
+ o as g
5
+ };
@@ -0,0 +1 @@
1
+ "use strict";const s=()=>{};exports.globalScripts=s;
@@ -0,0 +1 @@
1
+ "use strict";var p=(e,t,i)=>new Promise((n,a)=>{var o=r=>{try{l(i.next(r))}catch(d){a(d)}},c=r=>{try{l(i.throw(r))}catch(d){a(d)}},l=r=>r.done?n(r.value):Promise.resolve(r.value).then(o,c);l((i=i.apply(e,t)).next())});const s=require("./index-0ad2daf0-Ip5OiMjS.cjs"),m="en";let h={en:{gamificationNoPoints:"No points"},de:{gamificationNoPoints:"No points"},ro:{gamificationNoPoints:"No points"},fr:{gamificationNoPoints:"No points"},ar:{gamificationNoPoints:"No points"},hr:{gamificationNoPoints:"No points"}};const g=e=>new Promise(t=>{fetch(e).then(i=>i.json()).then(i=>{Object.keys(i).forEach(n=>{h[n]||(h[n]={});for(let a in i[n])h[n][a]=i[n][a]}),t(!0)})}),u=(e,t)=>{const i=t;return h[i!==void 0&&i in h?i:m][e]},y=":host{display:block}.GamificationDropdownContainer{position:relative}.GamificationDropdownContainer .GamificationDropdown{position:absolute;left:0;z-index:200;overflow:hidden;cursor:pointer}.GamificationDropdownButton{cursor:pointer;font-size:14px;height:20px;background-color:unset;color:var(--emw--color-typography, #FFFFFF);padding:0;border:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;justify-content:center;line-height:0}.GamificationDropdownButton:hover{color:var(--emw--color-primary, #52d004)}.GamificationDropdownButton:hover svg{fill:var(--emw--color-primary, #52d004)}.GamificationDropdownButton.IsOpen{color:var(--emw--color-primary, #52d004)}.GamificationDropdownButton.IsOpen svg{fill:var(--emw--color-primary, #52d004)}.GamificationDropdownButton .TriangleActive,.GamificationDropdownButton .TriangleInactive{display:block;transition:all 0.2s}.GamificationDropdownButton .TriangleActive{transform:scale(1.1) rotateX(180deg) translateY(3px);fill:var(--emw--color-primary, #52d004);margin-top:4px}.GamificationDropdownButton svg{fill:var(--emw--color-typography, #FFFFFF);margin-left:8px;width:16px}",w=y,f=class{constructor(e){s.registerInstance(this,e),this.setClientStyling=()=>{let t=document.createElement("style");t.innerHTML=this.clientStyling,this.stylingContainer.prepend(t)},this.setClientStylingURL=()=>{let t=new URL(this.clientStylingUrl),i=document.createElement("style");fetch(t.href).then(n=>n.text()).then(n=>{i.innerHTML=n,setTimeout(()=>{this.stylingContainer.prepend(i)},1)}).catch(n=>{console.log("error ",n)})},this.navigateToGamification=()=>{window.postMessage({type:"NavigateToGamification"},window.location.href),this.isOpen=!1},this.handleOutsideClick=t=>{t.composedPath().includes(this.el)||(this.isOpen=!1,document.removeEventListener("click",this.handleOutsideClick))},this.handleDropdownClick=t=>{t.stopPropagation(),this.isOpen=!this.isOpen,this.isOpen?document.addEventListener("click",this.handleOutsideClick):document.removeEventListener("click",this.handleOutsideClick)},this.endpoint=void 0,this.language="en",this.session="",this.clientStyling="",this.clientStylingUrl="",this.translationUrl="",this.isOpen=!1,this.isLoading=!1,this.stylingAppends=!1,this.loyaltyPoints=void 0}handleNewTranslations(){this.isLoading=!0,g(this.translationUrl).then(()=>{this.isLoading=!1})}componentWillLoad(){return p(this,null,function*(){if(this.translationUrl.length>2&&(yield g(this.translationUrl)),this.endpoint&&this.language)return this.fetchPointsData()})}componentDidRender(){!this.stylingAppends&&this.stylingContainer&&(this.clientStyling&&this.setClientStyling(),this.clientStylingUrl&&this.setClientStylingURL(),this.stylingAppends=!0)}fetchPointsData(){let e=new URL(`${this.endpoint}/v1/elevate/playerInfo`);e.searchParams.append("language",this.language);const t=new Headers;t.append("X-SessionId",this.session);const i={method:"GET",headers:t};return new Promise((n,a)=>{this.isLoading=!0,fetch(e.href,i).then(o=>o.json()).then(o=>{var c,l;this.loyaltyPoints=(l=(c=o==null?void 0:o.data)===null||c===void 0?void 0:c.level)===null||l===void 0?void 0:l.loyaltyPoints,n(!0)}).catch(o=>{console.error(o),a(o)}).finally(()=>{this.isLoading=!1})})}render(){return this.isLoading?null:s.h("div",{ref:e=>this.stylingContainer=e,class:"GamificationDropdownContainer"},s.h("button",{class:`GamificationDropdownButton ${this.isOpen?"IsOpen":""}`,type:"button",onClick:e=>this.handleDropdownClick(e),title:typeof this.loyaltyPoints=="number"?String(this.loyaltyPoints):u("gamificationNoPoints",this.language)},typeof this.loyaltyPoints=="number"?`${this.loyaltyPoints} XP`:"...",s.h("span",{class:this.isOpen?"TriangleActive":"TriangleInactive"},s.h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"6.835",viewBox:"0 0 14 6.835"},s.h("path",{id:"arrow",d:"M281.541,447.921a.488.488,0,0,0,.295-.122l6.5-5.851a.488.488,0,1,0-.65-.726l-6.176,5.556-6.176-5.556h0a.488.488,0,1,0-.65.726l6.5,5.851a.488.488,0,0,0,.355.122Z",transform:"translate(-274.511 -441.088)"})))),this.isOpen&&s.h("div",{class:"GamificationDropdown",onClick:this.navigateToGamification},s.h("player-elevate-loyaltycard",{endpoint:this.endpoint,session:this.session,language:this.language,"client-styling-url":this.clientStylingUrl,"client-styling":this.clientStyling})))}get el(){return s.getElement(this)}static get watchers(){return{translationUrl:["handleNewTranslations"]}}};f.style=w;exports.GamificationDropdown=f;
@@ -0,0 +1,121 @@
1
+ var p = (e, i, t) => new Promise((n, s) => {
2
+ var o = (l) => {
3
+ try {
4
+ a(t.next(l));
5
+ } catch (d) {
6
+ s(d);
7
+ }
8
+ }, c = (l) => {
9
+ try {
10
+ a(t.throw(l));
11
+ } catch (d) {
12
+ s(d);
13
+ }
14
+ }, a = (l) => l.done ? n(l.value) : Promise.resolve(l.value).then(o, c);
15
+ a((t = t.apply(e, i)).next());
16
+ });
17
+ import { r as f, h as r, g as m } from "./index-0ad2daf0-BPatOnLf.js";
18
+ const y = "en";
19
+ let h = {
20
+ en: {
21
+ gamificationNoPoints: "No points"
22
+ },
23
+ de: {
24
+ gamificationNoPoints: "No points"
25
+ },
26
+ ro: {
27
+ gamificationNoPoints: "No points"
28
+ },
29
+ fr: {
30
+ gamificationNoPoints: "No points"
31
+ },
32
+ ar: {
33
+ gamificationNoPoints: "No points"
34
+ },
35
+ hr: {
36
+ gamificationNoPoints: "No points"
37
+ }
38
+ };
39
+ const g = (e) => new Promise((i) => {
40
+ fetch(e).then((t) => t.json()).then((t) => {
41
+ Object.keys(t).forEach((n) => {
42
+ h[n] || (h[n] = {});
43
+ for (let s in t[n])
44
+ h[n][s] = t[n][s];
45
+ }), i(!0);
46
+ });
47
+ }), u = (e, i) => {
48
+ const t = i;
49
+ return h[t !== void 0 && t in h ? t : y][e];
50
+ }, w = ":host{display:block}.GamificationDropdownContainer{position:relative}.GamificationDropdownContainer .GamificationDropdown{position:absolute;left:0;z-index:200;overflow:hidden;cursor:pointer}.GamificationDropdownButton{cursor:pointer;font-size:14px;height:20px;background-color:unset;color:var(--emw--color-typography, #FFFFFF);padding:0;border:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;justify-content:center;line-height:0}.GamificationDropdownButton:hover{color:var(--emw--color-primary, #52d004)}.GamificationDropdownButton:hover svg{fill:var(--emw--color-primary, #52d004)}.GamificationDropdownButton.IsOpen{color:var(--emw--color-primary, #52d004)}.GamificationDropdownButton.IsOpen svg{fill:var(--emw--color-primary, #52d004)}.GamificationDropdownButton .TriangleActive,.GamificationDropdownButton .TriangleInactive{display:block;transition:all 0.2s}.GamificationDropdownButton .TriangleActive{transform:scale(1.1) rotateX(180deg) translateY(3px);fill:var(--emw--color-primary, #52d004);margin-top:4px}.GamificationDropdownButton svg{fill:var(--emw--color-typography, #FFFFFF);margin-left:8px;width:16px}", v = w, D = class {
51
+ constructor(e) {
52
+ f(this, e), this.setClientStyling = () => {
53
+ let i = document.createElement("style");
54
+ i.innerHTML = this.clientStyling, this.stylingContainer.prepend(i);
55
+ }, this.setClientStylingURL = () => {
56
+ let i = new URL(this.clientStylingUrl), t = document.createElement("style");
57
+ fetch(i.href).then((n) => n.text()).then((n) => {
58
+ t.innerHTML = n, setTimeout(() => {
59
+ this.stylingContainer.prepend(t);
60
+ }, 1);
61
+ }).catch((n) => {
62
+ console.log("error ", n);
63
+ });
64
+ }, this.navigateToGamification = () => {
65
+ window.postMessage({ type: "NavigateToGamification" }, window.location.href), this.isOpen = !1;
66
+ }, this.handleOutsideClick = (i) => {
67
+ i.composedPath().includes(this.el) || (this.isOpen = !1, document.removeEventListener("click", this.handleOutsideClick));
68
+ }, this.handleDropdownClick = (i) => {
69
+ i.stopPropagation(), this.isOpen = !this.isOpen, this.isOpen ? document.addEventListener("click", this.handleOutsideClick) : document.removeEventListener("click", this.handleOutsideClick);
70
+ }, this.endpoint = void 0, this.language = "en", this.session = "", this.clientStyling = "", this.clientStylingUrl = "", this.translationUrl = "", this.isOpen = !1, this.isLoading = !1, this.stylingAppends = !1, this.loyaltyPoints = void 0;
71
+ }
72
+ handleNewTranslations() {
73
+ this.isLoading = !0, g(this.translationUrl).then(() => {
74
+ this.isLoading = !1;
75
+ });
76
+ }
77
+ componentWillLoad() {
78
+ return p(this, null, function* () {
79
+ if (this.translationUrl.length > 2 && (yield g(this.translationUrl)), this.endpoint && this.language)
80
+ return this.fetchPointsData();
81
+ });
82
+ }
83
+ componentDidRender() {
84
+ !this.stylingAppends && this.stylingContainer && (this.clientStyling && this.setClientStyling(), this.clientStylingUrl && this.setClientStylingURL(), this.stylingAppends = !0);
85
+ }
86
+ fetchPointsData() {
87
+ let e = new URL(`${this.endpoint}/v1/elevate/playerInfo`);
88
+ e.searchParams.append("language", this.language);
89
+ const i = new Headers();
90
+ i.append("X-SessionId", this.session);
91
+ const t = {
92
+ method: "GET",
93
+ headers: i
94
+ };
95
+ return new Promise((n, s) => {
96
+ this.isLoading = !0, fetch(e.href, t).then((o) => o.json()).then((o) => {
97
+ var c, a;
98
+ this.loyaltyPoints = (a = (c = o == null ? void 0 : o.data) === null || c === void 0 ? void 0 : c.level) === null || a === void 0 ? void 0 : a.loyaltyPoints, n(!0);
99
+ }).catch((o) => {
100
+ console.error(o), s(o);
101
+ }).finally(() => {
102
+ this.isLoading = !1;
103
+ });
104
+ });
105
+ }
106
+ render() {
107
+ return this.isLoading ? null : r("div", { ref: (e) => this.stylingContainer = e, class: "GamificationDropdownContainer" }, r("button", { class: `GamificationDropdownButton ${this.isOpen ? "IsOpen" : ""}`, type: "button", onClick: (e) => this.handleDropdownClick(e), title: typeof this.loyaltyPoints == "number" ? String(this.loyaltyPoints) : u("gamificationNoPoints", this.language) }, typeof this.loyaltyPoints == "number" ? `${this.loyaltyPoints} XP` : "...", r("span", { class: this.isOpen ? "TriangleActive" : "TriangleInactive" }, r("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "6.835", viewBox: "0 0 14 6.835" }, r("path", { id: "arrow", d: "M281.541,447.921a.488.488,0,0,0,.295-.122l6.5-5.851a.488.488,0,1,0-.65-.726l-6.176,5.556-6.176-5.556h0a.488.488,0,1,0-.65.726l6.5,5.851a.488.488,0,0,0,.355.122Z", transform: "translate(-274.511 -441.088)" })))), this.isOpen && r("div", { class: "GamificationDropdown", onClick: this.navigateToGamification }, r("player-elevate-loyaltycard", { endpoint: this.endpoint, session: this.session, language: this.language, "client-styling-url": this.clientStylingUrl, "client-styling": this.clientStyling })));
108
+ }
109
+ get el() {
110
+ return m(this);
111
+ }
112
+ static get watchers() {
113
+ return {
114
+ translationUrl: ["handleNewTranslations"]
115
+ };
116
+ }
117
+ };
118
+ D.style = v;
119
+ export {
120
+ D as G
121
+ };
@@ -0,0 +1 @@
1
+ "use strict";var o=(n,a,t)=>new Promise((d,i)=>{var y=e=>{try{l(t.next(e))}catch(r){i(r)}},g=e=>{try{l(t.throw(e))}catch(r){i(r)}},l=e=>e.done?d(e.value):Promise.resolve(e.value).then(y,g);l((t=t.apply(n,a)).next())});const p=require("./index-0ad2daf0-Ip5OiMjS.cjs"),c=require("./app-globals-0f993ce5-sCt45RkC.cjs");var s=typeof document!="undefined"?document.currentScript:null,u=()=>{const n=typeof document=="undefined"?require("url").pathToFileURL(__filename).href:s&&s.src||new URL("stencil/gamification-dropdown-Dk89Xsft.cjs",document.baseURI).href,a={};return n!==""&&(a.resourcesUrl=new URL(".",n).href),p.promiseResolve(a)};u().then(n=>o(exports,null,function*(){return yield c.globalScripts(),p.bootstrapLazy([["gamification-dropdown_4",[[1,"gamification-dropdown",{endpoint:[513],language:[513],session:[513],clientStyling:[513,"client-styling"],clientStylingUrl:[513,"client-styling-url"],translationUrl:[513,"translation-url"],isOpen:[32],isLoading:[32],stylingAppends:[32],loyaltyPoints:[32]},null,{translationUrl:["handleNewTranslations"]}],[1,"player-elevate-loyaltycard",{endpoint:[513],theme:[513],session:[513],playerAvatarUrl:[513,"player-avatar-url"],language:[513],playerName:[513,"player-name"],dateFormat:[513,"date-format"],clientStyling:[513,"client-styling"],clientStylingUrl:[513,"client-styling-url"],translationUrl:[513,"translation-url"],pointExpireString:[32],playerElevateLevel:[32],elevateWalletTotal:[32]},[[0,"playerElevateLeveLoaded","playerElevateLeveLoadedHandler"]],{session:["onSessionOrEndpointChange"],endpoint:["onSessionOrEndpointChange"],language:["onSessionOrEndpointChange"]}],[4,"general-styling-wrapper",{clientStyling:[1,"client-styling"],clientStylingUrl:[1,"client-styling-url"],translationUrl:[1,"translation-url"],targetTranslations:[16]}],[0,"player-elevate-card-data",{params:[8],playerElevateLevel:[32],pointExpireString:[32]},[[9,"resize","handleWindowResizs"]],{params:["onParamsChanged"]}]]],["player-elevate-card",[[1,"player-elevate-card",{endpoint:[513],theme:[513],session:[513],playerAvatarUrl:[513,"player-avatar-url"],language:[513],playerName:[513,"player-name"],dateFormat:[513,"date-format"],clientStyling:[513,"client-styling"],clientStylingUrl:[513,"client-styling-url"],translationUrl:[513,"translation-url"],pointExpireString:[32],playerLevelFlag:[32],playerElevateLevel:[32],elevateWalletTotal:[32]},[[0,"playerElevateLeveLoaded","playerElevateLeveLoadedHandler"]],{session:["onSessionOrEndpointChange"],endpoint:["onSessionOrEndpointChange"],language:["onSessionOrEndpointChange"]}]]],["player-elevate-pointcard",[[1,"player-elevate-pointcard",{endpoint:[513],theme:[513],session:[513],playerAvatarUrl:[513,"player-avatar-url"],language:[513],playerName:[513,"player-name"],cardTitle:[513,"card-title"],buttonType:[513,"button-type"],dateFormat:[513,"date-format"],clientStyling:[513,"client-styling"],clientStylingUrl:[513,"client-styling-url"],translationUrl:[513,"translation-url"],pointExpireString:[32],playerElevateLevel:[32],elevateWalletTotal:[32],elevateSPTotal:[32]},[[0,"playerElevateLeveLoaded","playerElevateLeveLoadedHandler"]],{session:["onSessionOrEndpointChange"],endpoint:["onSessionOrEndpointChange"],language:["onSessionOrEndpointChange"]}]]]],n)}));
@@ -0,0 +1,25 @@
1
+ var o = (a, n, l) => new Promise((s, i) => {
2
+ var p = (e) => {
3
+ try {
4
+ t(l.next(e));
5
+ } catch (r) {
6
+ i(r);
7
+ }
8
+ }, y = (e) => {
9
+ try {
10
+ t(l.throw(e));
11
+ } catch (r) {
12
+ i(r);
13
+ }
14
+ }, t = (e) => e.done ? s(e.value) : Promise.resolve(e.value).then(p, y);
15
+ t((l = l.apply(a, n)).next());
16
+ });
17
+ import { b as g, p as d } from "./index-0ad2daf0-BPatOnLf.js";
18
+ import { g as v } from "./app-globals-0f993ce5-D-kw1sls.js";
19
+ var c = () => {
20
+ const a = import.meta.url, n = {};
21
+ return a !== "" && (n.resourcesUrl = new URL(".", a).href), d(n);
22
+ };
23
+ c().then((a) => o(void 0, null, function* () {
24
+ return yield v(), g([["gamification-dropdown_4", [[1, "gamification-dropdown", { endpoint: [513], language: [513], session: [513], clientStyling: [513, "client-styling"], clientStylingUrl: [513, "client-styling-url"], translationUrl: [513, "translation-url"], isOpen: [32], isLoading: [32], stylingAppends: [32], loyaltyPoints: [32] }, null, { translationUrl: ["handleNewTranslations"] }], [1, "player-elevate-loyaltycard", { endpoint: [513], theme: [513], session: [513], playerAvatarUrl: [513, "player-avatar-url"], language: [513], playerName: [513, "player-name"], dateFormat: [513, "date-format"], clientStyling: [513, "client-styling"], clientStylingUrl: [513, "client-styling-url"], translationUrl: [513, "translation-url"], pointExpireString: [32], playerElevateLevel: [32], elevateWalletTotal: [32] }, [[0, "playerElevateLeveLoaded", "playerElevateLeveLoadedHandler"]], { session: ["onSessionOrEndpointChange"], endpoint: ["onSessionOrEndpointChange"], language: ["onSessionOrEndpointChange"] }], [4, "general-styling-wrapper", { clientStyling: [1, "client-styling"], clientStylingUrl: [1, "client-styling-url"], translationUrl: [1, "translation-url"], targetTranslations: [16] }], [0, "player-elevate-card-data", { params: [8], playerElevateLevel: [32], pointExpireString: [32] }, [[9, "resize", "handleWindowResizs"]], { params: ["onParamsChanged"] }]]], ["player-elevate-card", [[1, "player-elevate-card", { endpoint: [513], theme: [513], session: [513], playerAvatarUrl: [513, "player-avatar-url"], language: [513], playerName: [513, "player-name"], dateFormat: [513, "date-format"], clientStyling: [513, "client-styling"], clientStylingUrl: [513, "client-styling-url"], translationUrl: [513, "translation-url"], pointExpireString: [32], playerLevelFlag: [32], playerElevateLevel: [32], elevateWalletTotal: [32] }, [[0, "playerElevateLeveLoaded", "playerElevateLeveLoadedHandler"]], { session: ["onSessionOrEndpointChange"], endpoint: ["onSessionOrEndpointChange"], language: ["onSessionOrEndpointChange"] }]]], ["player-elevate-pointcard", [[1, "player-elevate-pointcard", { endpoint: [513], theme: [513], session: [513], playerAvatarUrl: [513, "player-avatar-url"], language: [513], playerName: [513, "player-name"], cardTitle: [513, "card-title"], buttonType: [513, "button-type"], dateFormat: [513, "date-format"], clientStyling: [513, "client-styling"], clientStylingUrl: [513, "client-styling-url"], translationUrl: [513, "translation-url"], pointExpireString: [32], playerElevateLevel: [32], elevateWalletTotal: [32], elevateSPTotal: [32] }, [[0, "playerElevateLeveLoaded", "playerElevateLeveLoadedHandler"]], { session: ["onSessionOrEndpointChange"], endpoint: ["onSessionOrEndpointChange"], language: ["onSessionOrEndpointChange"] }]]]], a);
25
+ }));
@@ -0,0 +1,455 @@
1
+ var m = (e, t, a) => new Promise((n, r) => {
2
+ var l = (s) => {
3
+ try {
4
+ o(a.next(s));
5
+ } catch (c) {
6
+ r(c);
7
+ }
8
+ }, v = (s) => {
9
+ try {
10
+ o(a.throw(s));
11
+ } catch (c) {
12
+ r(c);
13
+ }
14
+ }, o = (s) => s.done ? n(s.value) : Promise.resolve(s.value).then(l, v);
15
+ o((a = a.apply(e, t)).next());
16
+ });
17
+ import { G as ve } from "./gamification-dropdown-498ae904-CIoXn0Ox.js";
18
+ import { r as f, h as i, g as I, c as _, a as b, F as R } from "./index-0ad2daf0-BPatOnLf.js";
19
+ import { t as P, T as O, P as $, a as N, b as W, c as z, r as h, g as L, d as p } from "./player-elevate-card-items-50dbfe39-B77E7JF3.js";
20
+ const M = (e, t) => new Promise((a) => {
21
+ fetch(e).then((n) => n.json()).then((n) => {
22
+ Object.keys(n).forEach((r) => {
23
+ t[r] = t[r] ? t[r] : {};
24
+ for (let l in n[r])
25
+ t[r][l] = n[r][l];
26
+ }), a(!0);
27
+ });
28
+ }), U = ":host{display:block}", q = U, F = class {
29
+ constructor(e) {
30
+ f(this, e), this.stylingAppends = !1, this.setClientStyling = () => {
31
+ let t = document.createElement("style");
32
+ t.innerHTML = this.clientStyling, this.el.prepend(t);
33
+ }, this.setClientStylingURL = () => {
34
+ let t = new URL(this.clientStylingUrl), a = document.createElement("style");
35
+ fetch(t.href).then((n) => n.text()).then((n) => {
36
+ a.innerHTML = n, setTimeout(() => {
37
+ this.el.prepend(a);
38
+ }, 1);
39
+ }).catch((n) => {
40
+ console.log("error ", n);
41
+ });
42
+ }, this.clientStyling = "", this.clientStylingUrl = "", this.translationUrl = "", this.targetTranslations = void 0;
43
+ }
44
+ componentDidRender() {
45
+ this.stylingAppends || (this.clientStyling && this.setClientStyling(), this.clientStylingUrl && this.setClientStylingURL(), this.stylingAppends = !0);
46
+ }
47
+ componentWillLoad() {
48
+ return m(this, null, function* () {
49
+ const e = [];
50
+ if (this.translationUrl) {
51
+ const t = M(this.translationUrl, this.targetTranslations);
52
+ e.push(t);
53
+ }
54
+ return yield Promise.all(e);
55
+ });
56
+ }
57
+ render() {
58
+ return i("div", { key: "4d3414408c7662f88331dbe655966237f74d6958", class: "StyleShell" }, i("slot", { key: "1d004644d84602c4314bdf5dfc26b55b160f57df", name: "mainContent" }));
59
+ }
60
+ get el() {
61
+ return I(this);
62
+ }
63
+ };
64
+ F.style = q;
65
+ function E(e) {
66
+ h(1, arguments);
67
+ var t = p(e);
68
+ return t.setHours(0, 0, 0, 0), t;
69
+ }
70
+ var H = 864e5;
71
+ function j(e, t) {
72
+ h(2, arguments);
73
+ var a = E(e), n = E(t), r = a.getTime() - L(a), l = n.getTime() - L(n);
74
+ return Math.round((r - l) / H);
75
+ }
76
+ var G = 36e5;
77
+ function X(e, t) {
78
+ return h(2, arguments), p(e).getTime() - p(t).getTime();
79
+ }
80
+ var w = {
81
+ ceil: Math.ceil,
82
+ round: Math.round,
83
+ floor: Math.floor,
84
+ trunc: function(t) {
85
+ return t < 0 ? Math.ceil(t) : Math.floor(t);
86
+ }
87
+ // Math.trunc is not supported by IE
88
+ }, K = "trunc";
89
+ function Y(e) {
90
+ return e ? w[e] : w[K];
91
+ }
92
+ function J(e, t, a) {
93
+ h(2, arguments);
94
+ var n = X(e, t) / G;
95
+ return Y(void 0)(n);
96
+ }
97
+ function Q(e, t) {
98
+ h(2, arguments);
99
+ var a = p(e), n = p(t);
100
+ return a.getTime() < n.getTime();
101
+ }
102
+ function V(e, t) {
103
+ const a = e.querySelector("#total_level"), n = 17, r = 6.5, l = a.getBBox().width, v = t > 1 ? 1 : t, o = v * l - n < 0 ? 0 : v * l - n, s = e.querySelector("#current_level"), c = e.querySelector("#filter_current_level"), g = e.querySelector("#circle_current_level");
104
+ a.setAttribute("viewbox", `0 0 ${o} 28`), s.setAttribute("width", `${o}`), g.setAttribute("cx", `${o < r ? r : o}`), c.setAttribute("x", `${o - 8}`);
105
+ const y = e.querySelector("#lock"), C = e.querySelector("#filter_heart_ball"), S = e.querySelector("#filter_ball"), k = e.querySelector("#filter_heart"), T = e.querySelector("#filter_lock"), u = e.querySelector("#paint0_linear_ball"), x = e.querySelector("#paint1_linear_lock"), A = e.querySelector("#lock_box"), B = e.querySelector("#heart_box"), D = 10, d = l - D;
106
+ y.setAttribute("cx", `${d}`), x.setAttribute("x1", `${d}`), x.setAttribute("x2", `${d}`), u.setAttribute("x1", `${d - 6}`), u.setAttribute("x2", `${d - 6 + 11.2}`), T.setAttribute("x", `${d - 6}`), k.setAttribute("x", `${d - 6 - 2}`), S.setAttribute("x", `${d - 6 - 2 - 2}`), C.setAttribute("x", `${d - 6 - 2 - 2 - 4}`), A.setAttribute("x", `${d - 6}`), B.setAttribute("x", `${d - 6}`), a.parentElement.style.opacity = "1";
107
+ }
108
+ const Z = `:host {
109
+ display: block;
110
+ width: 360px;
111
+ height: 230px;
112
+ }
113
+
114
+ .ElevateCardWrapper {
115
+ contain: layout inline-size;
116
+ width: 100%;
117
+ height: fit-content;
118
+ min-height: 218px;
119
+ }
120
+
121
+ .Outer {
122
+ container-type: inline-size;
123
+ font-size: 12px;
124
+ background-size: cover;
125
+ background-repeat: no-repeat;
126
+ line-height: initial;
127
+ width: 100%;
128
+ height: 100%;
129
+ }
130
+
131
+ .Dark {
132
+ color: var(--emfe-w-color-gray150, #efefef);
133
+ }
134
+
135
+ .Light {
136
+ color: var(--emfe-w-color-black, #0e0e0e);
137
+ }
138
+
139
+ @container (min-width: 381px) {
140
+ .Outer {
141
+ background-size: cover;
142
+ }
143
+ .Outer .OuterCover {
144
+ min-height: 190px;
145
+ }
146
+ }
147
+ @container (min-width: 260px) {
148
+ .Outer {
149
+ background-size: contain;
150
+ }
151
+ }
152
+ .OuterCover {
153
+ width: 100%;
154
+ height: 100%;
155
+ content: "";
156
+ background-repeat: no-repeat;
157
+ background-size: cover;
158
+ border-radius: 15px;
159
+ }
160
+
161
+ .Inner {
162
+ display: flex;
163
+ flex-direction: column;
164
+ min-height: 158px;
165
+ }
166
+ .Inner .Content {
167
+ padding: 15px;
168
+ flex-wrap: wrap;
169
+ gap: 8px;
170
+ }
171
+ .Inner .Row {
172
+ display: flex;
173
+ flex-direction: row;
174
+ }
175
+ .Inner .CardCell {
176
+ display: flex;
177
+ }
178
+ .Inner .LevelProgress svg {
179
+ transition: opacity 0.4s;
180
+ }
181
+ .Inner .LevelInfo {
182
+ display: flex;
183
+ flex-direction: column;
184
+ }
185
+ .Inner .LevelInfo .ElevateLevel .LevelName {
186
+ height: 28px;
187
+ border-radius: 5px;
188
+ line-height: 28px;
189
+ overflow: hidden;
190
+ text-overflow: ellipsis;
191
+ white-space: nowrap;
192
+ }
193
+ .Inner .LevelInfo.Level0 .ElevateLevel .LevelName {
194
+ box-shadow: -2px -2px 7px 0px var(--emfe-w-elevate-color-level0button-shadow, rgba(191, 84, 6, 0.75));
195
+ background: linear-gradient(180deg, var(--emfe-w-elevate-color-level0-bg0, #E2792C) 0%, var(--emfe-w-elevate-color-level0-bg1, rgba(242, 151, 99, 0)) 100%);
196
+ }
197
+ .Inner .LevelInfo.Level1 .ElevateLevel .LevelName {
198
+ box-shadow: -2px -2px 7px 0px var(--emfe-w-elevate-color-level1button-shadow, rgba(151, 151, 151, 0.75));
199
+ background: linear-gradient(180deg, var(--emfe-w-elevate-color-level1-bg0, #BEBFED) 0%, var(--emfe-w-elevate-color-level1-bg1, rgba(216, 217, 233, 0)) 100%);
200
+ }
201
+ .Inner .LevelInfo.Level2 .ElevateLevel .LevelName {
202
+ box-shadow: -2px -2px 7px 0px var(--emfe-w-elevate-color-level2button-shadow, rgba(191, 120, 6, 0.75));
203
+ background: linear-gradient(180deg, var(--emfe-w-elevate-color-level2-bg0, #FCC410) 0%, var(--emfe-w-elevate-color-level2-bg1, rgba(255, 189, 43, 0)) 100%);
204
+ }
205
+ .Inner .LevelInfo.Level3 .ElevateLevel .LevelName {
206
+ box-shadow: -2px -2px 7px 0px var(--emfe-w-elevate-color-level3button-shadow, rgba(65, 6, 191, 0.75));
207
+ background: linear-gradient(180deg, var(--emfe-w-elevate-color-level3-bg0, #B1A2DB) 0%, var(--emfe-w-elevate-color-level3-bg1, rgba(203, 202, 245, 0)) 100%);
208
+ }
209
+ .Inner .LevelInfo.Level4 .ElevateLevel .LevelName {
210
+ box-shadow: -2px -2px 7px 0px var(--emfe-w-elevate-color-level4button-shadow, rgba(65, 6, 191, 0.75));
211
+ background: linear-gradient(180deg, var(--emfe-w-elevate-color-level4-bg0, #B1A2DB) 0%, var(--emfe-w-elevate-color-level4-bg1, rgba(203, 202, 245, 0)) 100%);
212
+ }
213
+ .Inner .LevelInfo .ElevateLevel {
214
+ display: flex;
215
+ }
216
+ .Inner .LevelInfo {
217
+ flex: 1;
218
+ flex-grow: 1;
219
+ min-width: 150px;
220
+ }
221
+ .Inner .PlayerImg {
222
+ width: 29%;
223
+ margin: auto;
224
+ max-width: 100px;
225
+ min-width: 30px;
226
+ order: 0;
227
+ }
228
+ .Inner .PlayerAvatar {
229
+ max-width: 100px;
230
+ flex-basis: 100px;
231
+ height: auto;
232
+ margin: auto;
233
+ padding-top: 10px;
234
+ }
235
+ .Inner .PlayerAvatar .Avatar, .Inner .PlayerAvatar .Badge {
236
+ width: 100%;
237
+ height: 100%;
238
+ }
239
+ .Inner .PlayerAvatar .Avatar {
240
+ border-radius: 50%;
241
+ background-size: contain;
242
+ background-repeat: no-repeat;
243
+ }
244
+ .Inner .ElevateLevel .ExpirationDate {
245
+ max-width: 138px;
246
+ min-width: 118px;
247
+ }
248
+ .Inner .PlayerName, .Inner .RedeemButton, .Inner .ElevateLevel {
249
+ text-transform: capitalize;
250
+ width: 100%;
251
+ }
252
+ .Inner .PlayerName {
253
+ font-size: 16px;
254
+ }
255
+ .Inner .Row .PointsInfo {
256
+ display: table;
257
+ font-weight: 600;
258
+ }
259
+ .Inner .Row .Redeem {
260
+ justify-content: flex-end;
261
+ margin-left: auto;
262
+ }
263
+ .Inner .Row .Redeem:hover {
264
+ color: var(--emfe-w-elevate-color-redeem-hover, #00ABA4);
265
+ cursor: pointer;
266
+ }
267
+ .Inner .Row .RedeemButton:hover span {
268
+ color: var(emfe-w-elevate-color-redeem-text-hover, #f1f1f1);
269
+ font-weight: bold;
270
+ }
271
+ .Inner .Row .RedeemButton {
272
+ width: 95px;
273
+ height: 35px;
274
+ display: flex;
275
+ align-items: center;
276
+ border-radius: 10px;
277
+ background: var(--emfe-w-elevate-color-redeem-bg, linear-gradient(0deg, #26CC37, #26CC37)), linear-gradient(117.99deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0) 33.89%), linear-gradient(283.85deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0) 33.47%), linear-gradient(268.18deg, rgba(255, 255, 255, 0.6) -17.36%, rgba(239, 239, 239, 0) 15.78%);
278
+ box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.2509803922);
279
+ }
280
+ .Inner .Row .RedeemButton span {
281
+ color: var(--emfe-w-color-white, #fff);
282
+ line-height: 18px;
283
+ font-size: 15px;
284
+ text-align: center;
285
+ width: 100%;
286
+ }
287
+ .Inner .Row .Points {
288
+ font-size: large;
289
+ vertical-align: middle;
290
+ }
291
+ .Inner .Row .Points .XP {
292
+ font-size: x-small;
293
+ }
294
+ .Inner .Row .ExpirationPoints {
295
+ font-size: small;
296
+ text-align: right;
297
+ font-weight: bold;
298
+ color: var(--emfe-w-color-red, #9e595f);
299
+ }`, ee = Z, te = class {
300
+ constructor(e) {
301
+ f(this, e), this.playerElevateLeveLoaded = _(this, "playerElevateLeveLoaded", 7), this.params = void 0, this.playerElevateLevel = void 0, this.pointExpireString = void 0;
302
+ }
303
+ handleWindowResizs() {
304
+ this.initLevelProgressbar();
305
+ }
306
+ onParamsChanged() {
307
+ this.loadElevateInfo();
308
+ }
309
+ onRedeemClick() {
310
+ window.postMessage({ type: "BEERedeemClicked" }, window.location.href);
311
+ }
312
+ loadLevels() {
313
+ let e = new URL(`${this.params.endpoint}/v1/elevate/levels?language=${this.params.language}`);
314
+ return new Promise((t, a) => fetch(e.href, {
315
+ method: "GET"
316
+ }).then((n) => n.json()).then((n) => {
317
+ this.levels = n.data, t(!0);
318
+ }).catch((n) => {
319
+ a(n);
320
+ }));
321
+ }
322
+ calcuatePointsToBeExpired(e) {
323
+ let t = "";
324
+ if (!e || !e.aboutToExpire || e.aboutToExpire.length == 0 || e.aboutToExpire[0].points <= 0)
325
+ return t;
326
+ e.aboutToExpire.sort((v, o) => Q(new Date(v.expireTime), new Date(o.expireTime)) ? -1 : 1);
327
+ const a = e.aboutToExpire[0], n = j(new Date(a.expireTime), /* @__PURE__ */ new Date());
328
+ let r = 0, l = n === 0 ? "pointsToBeExpiredDay" : "pointsToBeExpired";
329
+ return n == 0 && (r = J(new Date(a.expireTime), /* @__PURE__ */ new Date()), l = r > 1 ? "pointsToBeExpiredHours" : "pointsToBeExpiredHour"), t = P(l, {
330
+ expirationPoints: a.points,
331
+ expireDay: n
332
+ }), t;
333
+ }
334
+ loadPlayerLevelInfo() {
335
+ let e = new URL(`${this.params.endpoint}/v1/elevate/playerInfo?language=${this.params.language}`);
336
+ return new Promise((t, a) => fetch(e.href, {
337
+ method: "GET",
338
+ headers: {
339
+ "X-Sessionid": this.params.session,
340
+ "Content-Type": "application/json"
341
+ }
342
+ }).then((n) => n.json()).then((n) => {
343
+ var r, l, v;
344
+ if (!n.success) {
345
+ console.error("Exception when fetch user elevateinfo, ", n.errorCode, n.errorMessage), a(!0);
346
+ return;
347
+ }
348
+ let o = n.data;
349
+ this.playerElevateLevel = o.level, this.playerElevateLevel.name = this.playerElevateLevel.presentation.displayName || this.playerElevateLevel.name, this.playerElevateLevel.spendablePoints = ((r = o.spendableWallet) === null || r === void 0 ? void 0 : r.total.points) || 0, this.playerElevateLeveLoaded.emit({ elevateLevel: this.playerElevateLevel });
350
+ const s = (l = n.data.spendableWallet) === null || l === void 0 ? void 0 : l.total, c = (v = n.data.loyaltyWallet) === null || v === void 0 ? void 0 : v.total;
351
+ this.playerElevateLeveLoaded.emit({
352
+ elevateLevelWalletTotal: s,
353
+ loyaltyWalletTotal: c
354
+ });
355
+ let g = this.calcuatePointsToBeExpired(s), y = this.calcuatePointsToBeExpired(c);
356
+ (g || y) && this.playerElevateLeveLoaded.emit({
357
+ pointExpireString: g,
358
+ xpExpireString: y
359
+ }), t(this.playerElevateLevel);
360
+ }).catch((n) => {
361
+ console.log("error ", n), a(!0);
362
+ }));
363
+ }
364
+ setLoyaltyProgress(e) {
365
+ V(this.loyaltyProgressEle, e);
366
+ }
367
+ initLevelProgressbar() {
368
+ setTimeout(() => {
369
+ this.loyaltyProgressEle = this.elevateCardRef.parentElement.querySelector("#LevelProgress"), this.loyaltyProgressEle && (this.setLoyaltyProgress(this.playerElevateLevel.nextLevel ? this.playerElevateLevel.loyaltyPoints / this.playerElevateLevel.nextLevel.entryPoints : 1), this.params.playerElevateLevel = this.playerElevateLevel);
370
+ }, 80);
371
+ }
372
+ componentDidRender() {
373
+ this.initLevelProgressbar();
374
+ }
375
+ loadElevateInfo() {
376
+ if (!this.params.endpoint || !this.params.session)
377
+ return;
378
+ const e = [];
379
+ e.push(this.loadPlayerLevelInfo()), this.params.calculateLevelFlag && e.push(this.loadLevels()), Promise.all(e).then((t) => {
380
+ if (console.log("elevate-init", t), this.initLevelProgressbar(), !this.levels)
381
+ return;
382
+ this.levels.sort((r, l) => r.firstEntryPoints > l.firstEntryPoints ? 1 : -1);
383
+ const a = this.playerElevateLevel.loyaltyPoints;
384
+ let n = 0;
385
+ this.levels.forEach((r, l) => {
386
+ a > r.firstEntryPoints && (n = l);
387
+ }), this.playerElevateLeveLoaded.emit({
388
+ calculatedLevelFlag: n
389
+ });
390
+ });
391
+ }
392
+ componentWillLoad() {
393
+ this.loadElevateInfo();
394
+ }
395
+ get elevateCardRef() {
396
+ return I(this);
397
+ }
398
+ static get watchers() {
399
+ return {
400
+ params: ["onParamsChanged"]
401
+ };
402
+ }
403
+ };
404
+ te.style = ee;
405
+ const ne = ":host{display:block}@media screen and (min-width: 501px){.LoyaltyCard .Inner .LevelInfo .ElevateLevel{flex-wrap:nowrap}.LoyaltyCard .Inner .LevelInfo .ElevateLevel .ExpirationDate{padding-top:11px;margin-left:5px}}@media screen and (max-width: 500px){.LoyaltyCard .Inner .LevelInfo .ElevateLevel{flex-wrap:wrap}.LoyaltyCard .Inner .LevelInfo .ElevateLevel .ExpirationDate{padding-top:0px;margin-left:0px}}.LoyaltyCard .Inner .LevelProgress{margin-left:0px}.LoyaltyCard .Inner .Row .PointsInfo{width:100%}.LoyaltyCard .Inner .Row .PointsInfo.ExpirationPoints{text-align:left;color:var(--emfe-w-color-red-50, red)}.LoyaltyCard .Inner .PlayerAvatar .Avatar{display:none}.LoyaltyCard .Inner .PlayerAvatar .Badge{border-radius:50%;background-size:contain;width:100%;height:100%}.LoyaltyCard .Inner .LevelInfo .ElevateLevel{display:flex;flex:1;align-items:center}.LoyaltyCard .Inner .LevelInfo .ElevateLevel .ExpirationDate{position:relative;padding-left:5px}.LoyaltyCard .Inner .LevelInfo .ElevateLevel .ExpirationDate .ExpireTime{margin-left:5px}.LoyaltyCard .Inner .LevelInfo .ElevateLevel .LevelName{padding-left:0;font-size:var(--emfe-w-elevate-fontsize-2xlarge, 21px);position:relative;width:auto;color:var(--emfe-w-elevate-color-levelname, #FFBD2B);font-weight:bold}.LoyaltyCard .NextLevelTip{text-align:right;font-size:11px;color:var(--emfe-w-color-black, #000);opacity:0.8;font-weight:bold}", ae = ne, re = class {
406
+ constructor(e) {
407
+ f(this, e), this.endpoint = void 0, this.theme = "Dark", this.session = void 0, this.playerAvatarUrl = void 0, this.language = "en", this.playerName = void 0, this.dateFormat = "yyyy-MM-dd", this.clientStyling = "", this.clientStylingUrl = "", this.translationUrl = "", this.pointExpireString = void 0, this.playerElevateLevel = void 0, this.elevateWalletTotal = void 0;
408
+ }
409
+ onSessionOrEndpointChange() {
410
+ this.paramProxy = Object.assign(Object.assign({}, this.paramProxy), { session: this.session, endpoint: this.endpoint, language: this.language });
411
+ }
412
+ playerElevateLeveLoadedHandler(e) {
413
+ e.detail && (e.detail.elevateLevelWalletTotal && (this.elevateWalletTotal = e.detail.elevateLevelWalletTotal), e.detail.elevateLevel && (this.playerElevateLevel = e.detail.elevateLevel), e.detail.pointExpireString && (this.pointExpireString = e.detail.xpExpireString));
414
+ }
415
+ onRedeemClick() {
416
+ window.postMessage({ type: "BEERedeemClicked" }, window.location.href);
417
+ }
418
+ componentWillLoad() {
419
+ this.paramProxy = {
420
+ endpoint: this.endpoint,
421
+ session: this.session,
422
+ language: this.language
423
+ };
424
+ }
425
+ getNextLevelTips() {
426
+ var e;
427
+ let t = (e = this.playerElevateLevel) === null || e === void 0 ? void 0 : e.nextLevel;
428
+ if (this.playerElevateLevel && t) {
429
+ const a = (t.entryPoints - this.playerElevateLevel.loyaltyPoints).toFixed(2);
430
+ return P("tipsForNextLevel", {
431
+ pointsToReach: a,
432
+ levelName: t.name
433
+ });
434
+ }
435
+ return "";
436
+ }
437
+ render() {
438
+ const e = b("../static/card-ground.svg"), t = b("../static/card-ground-over.svg");
439
+ return i("div", { key: "d32d09786bf66e0abef026482e7ea04a53c051b1", class: `ElevateCardWrapper ${this.theme}` }, i("div", { key: "dd2685eb840341b8823f24db9b72d0f6b7d340ae", class: "LoyaltyCard Outer", style: { backgroundImage: `url(${e}` } }, i("general-styling-wrapper", { key: "3e2a00d1697c89441a8254cb81c6dc72e5b9f534", clientStyling: this.clientStyling, clientStylingUrl: this.clientStylingUrl, targetTranslations: O, translationUrl: this.translationUrl }), i("player-elevate-card-data", { key: "56221e6d50df3b09c4269000637818009807c994", params: this.paramProxy }), i("div", { key: "f11201024b280d6beb2ce1978ebfa7f2c7c59678", class: "OuterCover Inner", style: { backgroundImage: `url(${t}` } }, i("div", { key: "948a023268fad3945b5069686eb29312111042a2", class: "Content Row" }, this.playerElevateLevel && i(R, { key: "de7c52faa07386949ce1ca728968534922e9d880" }, i("div", { key: "7c1a0c6ea5dbe7ee2375813b3819efa61e283232", class: "PlayerImg" }, i($, { key: "70ae13ee168c6de7bf4618f6ab8761462c8812b2", onlyBadge: !0, loyaltyIconUrl: this.playerElevateLevel.presentation.asset })), i("div", { key: "c11f916999b52e43e04ee472b0f54691012409a5", class: `LevelInfo ${this.playerElevateLevel.name}` }, i(N, { key: "6aa61d117b24f9abbee9c5d33e882d6f023f205b", hideInfo: !0, level: this.playerElevateLevel.name, expireTime: this.playerElevateLevel.expireTime, dateFormat: this.dateFormat }), i(W, { key: "7cc02e34d4682c25095dbf6a3077b314410d8093", loyaltyPoints: this.playerElevateLevel.loyaltyPoints, language: this.language }), this.pointExpireString && i("div", { key: "793e388644891e15b32e003ac8914e57e758e86b", class: "PointsInfo ExpirationPoints" }, this.pointExpireString, " "), i(z, { key: "a4f6c3b9f9cd5e8c6a025c26154702f9495bbe5b" }), i("div", { key: "d91eda0f963ba9ffd481237f4b16bd4ef638d25e", class: "NextLevelTip" }, this.getNextLevelTips())))))));
440
+ }
441
+ static get watchers() {
442
+ return {
443
+ session: ["onSessionOrEndpointChange"],
444
+ endpoint: ["onSessionOrEndpointChange"],
445
+ language: ["onSessionOrEndpointChange"]
446
+ };
447
+ }
448
+ };
449
+ re.style = ae;
450
+ export {
451
+ ve as gamification_dropdown,
452
+ F as general_styling_wrapper,
453
+ te as player_elevate_card_data,
454
+ re as player_elevate_loyaltycard
455
+ };