@everymatrix/user-login 1.31.2 → 1.32.4

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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +4 -3
  3. package/dist/cjs/index-c277c06d.js +0 -1229
  4. package/dist/cjs/index.cjs.js +0 -2
  5. package/dist/cjs/loader.cjs.js +0 -21
  6. package/dist/cjs/user-login.cjs.entry.js +0 -326
  7. package/dist/cjs/user-login.cjs.js +0 -19
  8. package/dist/collection/collection-manifest.json +0 -12
  9. package/dist/collection/components/user-login/user-login.css +0 -162
  10. package/dist/collection/components/user-login/user-login.js +0 -440
  11. package/dist/collection/index.js +0 -1
  12. package/dist/collection/utils/locale.utils.js +0 -102
  13. package/dist/collection/utils/utils.js +0 -3
  14. package/dist/components/index.d.ts +0 -26
  15. package/dist/components/index.js +0 -1
  16. package/dist/components/user-login.d.ts +0 -11
  17. package/dist/components/user-login.js +0 -359
  18. package/dist/esm/index-adf399de.js +0 -1204
  19. package/dist/esm/index.js +0 -1
  20. package/dist/esm/loader.js +0 -17
  21. package/dist/esm/polyfills/core-js.js +0 -11
  22. package/dist/esm/polyfills/css-shim.js +0 -1
  23. package/dist/esm/polyfills/dom.js +0 -79
  24. package/dist/esm/polyfills/es5-html-element.js +0 -1
  25. package/dist/esm/polyfills/index.js +0 -34
  26. package/dist/esm/polyfills/system.js +0 -6
  27. package/dist/esm/user-login.entry.js +0 -322
  28. package/dist/esm/user-login.js +0 -17
  29. package/dist/index.cjs.js +0 -1
  30. package/dist/index.js +0 -1
  31. package/dist/stencil.config.js +0 -22
  32. package/dist/types/Users/dragos.bodea/Documents/everymatrix-prjs/emfe-widgets/widgets-stencil/packages/user-login/.stencil/packages/user-login/stencil.config.d.ts +0 -2
  33. package/dist/types/components/user-login/user-login.d.ts +0 -78
  34. package/dist/types/components.d.ts +0 -117
  35. package/dist/types/index.d.ts +0 -1
  36. package/dist/types/stencil-public-runtime.d.ts +0 -1565
  37. package/dist/types/utils/locale.utils.d.ts +0 -2
  38. package/dist/types/utils/utils.d.ts +0 -1
  39. package/dist/user-login/index.esm.js +0 -0
  40. package/dist/user-login/p-05867322.entry.js +0 -1
  41. package/dist/user-login/p-f775dfb7.js +0 -1
  42. package/dist/user-login/user-login.esm.js +0 -1
  43. package/loader/cdn.js +0 -3
  44. package/loader/index.cjs.js +0 -3
  45. package/loader/index.d.ts +0 -12
  46. package/loader/index.es2017.js +0 -3
  47. package/loader/index.js +0 -4
  48. package/loader/package.json +0 -10
@@ -1,359 +0,0 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
-
3
- const DEFAULT_LANGUAGE = 'en';
4
- const SUPPORTED_LANGUAGES = ['ro', 'en', 'cz', 'de', 'hr'];
5
- const TRANSLATIONS = {
6
- en: {
7
- invalidField: 'This field is invalid',
8
- forgotPassword: 'Forgot Password',
9
- userEmail: 'Username or Email',
10
- password: 'Password',
11
- login: 'Login',
12
- genericError: 'An unexpected error has occured',
13
- successMessage: 'Login successful'
14
- },
15
- ro: {
16
- invalidField: 'This field is invalid',
17
- forgotPassword: 'Forgot Password',
18
- userEmail: 'Username or Email',
19
- password: 'Password',
20
- login: 'Login',
21
- genericError: 'An unexpected error has occured',
22
- successMessage: 'Login successful'
23
- },
24
- hr: {
25
- invalidField: 'Ovo polje je nevažeće',
26
- forgotPassword: 'Zaboravljena lozinka',
27
- userEmail: 'Korisničko ime ili email',
28
- password: 'Lozinka',
29
- login: 'Prijava',
30
- genericError: 'Došlo je do neočekivane pogreške',
31
- successMessage: 'Prijava uspješna'
32
- },
33
- fr: {
34
- invalidField: 'This field is invalid',
35
- forgotPassword: 'Forgot Password',
36
- userEmail: 'Username or Email',
37
- password: 'Password',
38
- login: 'Login',
39
- genericError: 'An unexpected error has occured',
40
- successMessage: 'Login successful'
41
- },
42
- cs: {
43
- invalidField: 'Ovo polje je nevažeće.',
44
- forgotPassword: 'Zaboravio sam lozinku ',
45
- userEmail: 'Korisničko ime ili email',
46
- password: 'Lozinka',
47
- login: 'Prijava',
48
- genericError: 'An unexpected error has occured',
49
- successMessage: 'Login successful'
50
- },
51
- de: {
52
- invalidField: 'This field is invalid',
53
- forgotPassword: 'Forgot Password',
54
- userEmail: 'Username or Email',
55
- password: 'Password',
56
- login: 'Login',
57
- genericError: 'An unexpected error has occured',
58
- successMessage: 'Login successful'
59
- },
60
- 'pt-br': {
61
- 'invalidField': 'O campo é inválido',
62
- 'forgotPassword': 'Esqueceu sua senha',
63
- 'userEmail': 'Usuário ou e-mail',
64
- 'Password': 'Senha',
65
- 'login': 'Entrem',
66
- 'genericError': 'Ocorreu um erro inesperado',
67
- 'successMessage': 'Você fez login com sucesso'
68
- },
69
- 'es-mx': {
70
- 'invalidField': 'El campo es inválido',
71
- 'forgotPassword': 'Olvidó contraseña',
72
- 'userEmail': 'Usuario o Correo Electrónico',
73
- 'Password': 'Contraseña',
74
- 'login': 'Entrar',
75
- 'genericError': 'Ha ocurrido un error inesperado',
76
- 'successMessage': 'Ha ingreasado de forma exitosa'
77
- }
78
- };
79
- const getTranslations = (url) => {
80
- // fetch url, get the data, replace the TRANSLATIONS content
81
- return new Promise((resolve) => {
82
- fetch(url)
83
- .then((res) => res.json())
84
- .then((data) => {
85
- Object.keys(data).forEach((item) => {
86
- for (let key in data[item]) {
87
- TRANSLATIONS[item][key] = data[item][key];
88
- }
89
- });
90
- resolve(true);
91
- });
92
- });
93
- };
94
- const translate = (key, customLang, values) => {
95
- const lang = customLang;
96
- let translation = TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
97
- if (values !== undefined) {
98
- for (const [key, value] of Object.entries(values.values)) {
99
- const regex = new RegExp(`{${key}}`, 'g');
100
- translation = translation.replace(regex, value);
101
- }
102
- }
103
- return translation;
104
- };
105
-
106
- const userLoginCss = ":host{display:block;font-family:\"Roboto\", sans-serif}section{height:100%;width:100%;background-position:center;background-size:cover}.FormBox{height:100%;display:flex;position:relative;background:none;border:none;backdrop-filter:blur(15px) brightness(80%);justify-content:center;align-items:center}.InputBox{position:relative;margin:30px 0;width:310px;border-bottom:2px solid #0797B9}.InputBox.InputInvalidBox::after{content:\"\";height:2px;width:100%;transition:width 0.6s linear;background:#C23135}.InputBox::after{content:\"\";display:block;width:0;height:2px;position:relative;top:2px}.InputBox .PasswordVisibilityIcon{fill:#0797B9}.InputBox .InputIcon .TogglePasswordVisibility{cursor:pointer;position:absolute;top:18px;right:0}.InputBox .InputIcon .TogglePasswordVisibility.PasswordVisible{top:19.5px}.InputBox label{position:absolute;top:50%;left:5px;transform:translateY(-50%);color:#0797B9;font-size:1em;pointer-events:none;transition:0.5s}.InputBox label.FieldInvalid{color:#C23135}.InputBox input{width:100%;height:50px;background:transparent;border:none;outline:none;font-size:1em;padding:0 35px 0 5px;color:#fff;box-sizing:border-box}input:focus~label,label.FieldFilledIn{top:-3px;font-size:0.7em}.ForgotPassword button{margin:-10px 0 17px;font-size:0.9em;color:#0797B9;display:flex;justify-content:space-between;background-color:transparent;padding:0;height:unset;border:0;cursor:pointer}.ForgotPassword button:hover{color:#fff}.SubmitCredentials{display:block;margin:0 auto;padding:10px 20px;border-radius:5px;color:var(--emfe-w-button-typography, var(--emfe-w-color-white, #FFFFFF));background:linear-gradient(to right, #EA0C66, #77318F);border:none;outline:none;cursor:pointer;font-size:1em}.SubmitCredentials:disabled{background:#707070}.Register{font-size:0.9em;color:#fff;text-align:center;margin:25px 0 10px}.Register p a{text-decoration:none;color:#fff;font-weight:600}.Register p a:hover{text-decoration:underline}.InvalidField{position:absolute;top:45px;color:#C23135;font-size:0.7em}.SubmitCredentials{margin-bottom:20px}.CredentialsError{color:#C23135;font-size:0.7em;padding:0 0 20px 0;margin:0}@media screen and (max-width: 480px){.FormBox{width:100%;border-radius:0px}}";
107
-
108
- const UserLogin$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
109
- constructor() {
110
- super();
111
- this.__registerHost();
112
- this.__attachShadow();
113
- /**
114
- * Endpoint
115
- */
116
- this.endpoint = '';
117
- /**
118
- * Language
119
- */
120
- this.lang = 'en';
121
- /**
122
- * Client styling
123
- */
124
- this.clientStyling = '';
125
- /**
126
- * Client styling by url
127
- */
128
- this.clientStylingUrl = '';
129
- /**
130
- * Translation url
131
- */
132
- this.translationUrl = '';
133
- /**
134
- * Password reset
135
- */
136
- this.passwordReset = 'false';
137
- /**
138
- * User email regex options
139
- */
140
- this.userEmailRegexOptions = 'i';
141
- /**
142
- * Password regex options
143
- */
144
- this.passwordRegexOptions = '';
145
- /**
146
- * Username
147
- */
148
- this.userNameEmail = '';
149
- /**
150
- * Password
151
- */
152
- this.userPassword = '';
153
- this.isValidUserEmail = true;
154
- this.isValidPassword = true;
155
- this.isPasswordVisible = false;
156
- this.limitStylingAppends = false;
157
- this.errorMessage = '';
158
- this.hasError = false;
159
- this.setClientStyling = () => {
160
- let sheet = document.createElement('style');
161
- sheet.innerHTML = this.clientStyling;
162
- this.stylingContainer.appendChild(sheet);
163
- };
164
- this.setClientStylingURL = () => {
165
- let url = new URL(this.clientStylingUrl);
166
- let cssFile = document.createElement('style');
167
- fetch(url.href)
168
- .then((res) => res.text())
169
- .then((data) => {
170
- cssFile.innerHTML = data;
171
- setTimeout(() => { this.stylingContainer.appendChild(cssFile); }, 1);
172
- });
173
- };
174
- this.messageHandler = (e) => {
175
- switch (e.data.type) {
176
- case 'SendLoginCredentials':
177
- this.userNameEmail = e.data.data.userNameEmail;
178
- this.userPassword = e.data.data.userPassword;
179
- this.userLogin({
180
- username: this.userNameEmail,
181
- password: this.userPassword
182
- });
183
- break;
184
- }
185
- };
186
- this.userLogin = async ({ username, password }) => {
187
- let headers = {
188
- 'Content-Type': 'application/json'
189
- };
190
- let bodyData = {
191
- username,
192
- password
193
- };
194
- let options = {
195
- method: 'POST',
196
- headers,
197
- body: JSON.stringify(bodyData),
198
- };
199
- fetch(`${this.endpoint}/v1/player/legislation/login`, options)
200
- .then((res) => {
201
- return res.json();
202
- }).then((data) => {
203
- var _a, _b;
204
- if ((_a = data.sessionBlockers) === null || _a === void 0 ? void 0 : _a.includes('has-to-set-consents')) {
205
- window.postMessage({ type: 'PlayerActions', gmversion: 'gm16' }, window.location.href);
206
- }
207
- if ((data === null || data === void 0 ? void 0 : data.hasToSetPass) === true) {
208
- window.postMessage({ type: 'HasToSetPass' }, window.location.href);
209
- }
210
- if (data.sessionId) {
211
- window.postMessage({ type: 'UserSessionID', session: data.sessionId, userid: data.userId }, window.location.href);
212
- window.postMessage({ type: 'WidgetNotification', data: {
213
- type: 'success',
214
- message: translate('successMessage', this.lang)
215
- } }, window.location.href);
216
- this.hasError = false;
217
- }
218
- else {
219
- // handles errors thrown by api
220
- this.hasError = true;
221
- this.errorMessage = (_b = data === null || data === void 0 ? void 0 : data.thirdPartyResponse) === null || _b === void 0 ? void 0 : _b.message;
222
- if (this.errorMessage) {
223
- console.error(this.errorMessage);
224
- this.sendErrorNotification(this.errorMessage);
225
- }
226
- }
227
- }).catch((err) => {
228
- // handles unexpected errors
229
- console.error(err);
230
- this.hasError = true;
231
- this.errorMessage = translate('genericError', this.lang);
232
- this.sendErrorNotification(this.errorMessage);
233
- });
234
- };
235
- this.debouncedUserLogin = this.debounce(this.userLogin, 850);
236
- this.handleLogin = () => {
237
- this.debouncedUserLogin({
238
- username: this.userNameEmail,
239
- password: this.userPassword
240
- });
241
- };
242
- this.handleInputChange = (event, location) => {
243
- this.hasError = false;
244
- const inputValue = event.target.value;
245
- if (location === 'user') {
246
- this.userNameEmail = inputValue;
247
- this.isValidUserEmail = this.userEmailValidation(this.userNameEmail);
248
- }
249
- else {
250
- this.userPassword = inputValue;
251
- this.isValidPassword = this.passwordValidation(inputValue);
252
- }
253
- };
254
- this.userEmailValidation = (input) => {
255
- const regex = new RegExp(this.userEmailRegex, this.userEmailRegexOptions);
256
- return regex.test(input);
257
- };
258
- this.passwordValidation = (input) => {
259
- const regex = new RegExp(this.passwordRegex, this.passwordRegexOptions);
260
- return regex.test(input);
261
- };
262
- this.togglePassword = () => {
263
- this.isPasswordVisible = !this.isPasswordVisible;
264
- };
265
- this.resetPassword = () => {
266
- window.postMessage({ type: "NavForgotPassword" }, window.location.href);
267
- };
268
- }
269
- handleNewTranslations() {
270
- getTranslations(this.translationUrl);
271
- }
272
- async componentWillLoad() {
273
- if (this.translationUrl.length > 2) {
274
- await getTranslations(this.translationUrl);
275
- }
276
- }
277
- componentDidLoad() {
278
- window.addEventListener('message', this.messageHandler);
279
- }
280
- componentDidRender() {
281
- // start custom styling area
282
- if (!this.limitStylingAppends && this.stylingContainer) {
283
- if (this.clientStyling)
284
- this.setClientStyling();
285
- if (this.clientStylingUrl)
286
- this.setClientStylingURL();
287
- this.limitStylingAppends = true;
288
- }
289
- // end custom styling area
290
- }
291
- sendErrorNotification(errorMessage) {
292
- window.postMessage({ type: "HasError", error: errorMessage }, window.location.href);
293
- window.postMessage({ type: 'WidgetNotification', data: {
294
- type: 'error',
295
- message: errorMessage
296
- } }, window.location.href);
297
- }
298
- debounce(func, delay) {
299
- let timer;
300
- return function (...args) {
301
- clearTimeout(timer);
302
- timer = setTimeout(() => {
303
- func.apply(this, args);
304
- }, delay);
305
- };
306
- }
307
- render() {
308
- let visibilityIcon = h("span", { class: "InputIcon" }, this.isPasswordVisible &&
309
- h("svg", { onClick: () => this.togglePassword(), class: "TogglePasswordVisibility", part: "TogglePasswordVisibility", xmlns: "http://www.w3.org/2000/svg", width: "18.844", height: "12.887", viewBox: "0 0 18.844 12.887" }, h("g", { transform: "translate(-110.856 -23.242)" }, h("circle", { class: "PasswordVisibilityIcon", cx: "0.05", cy: "0.05", r: "0.05", transform: "translate(121.017 31.148)" }), h("g", { transform: "translate(117.499 27.37)" }, h("path", { class: "PasswordVisibilityIcon", d: "M147.413,43.174a2.774,2.774,0,0,0-3.229-3.943Z", transform: "translate(-142.164 -39.123)" }), h("path", { class: "PasswordVisibilityIcon", d: "M137.031,43.1a2.778,2.778,0,0,0,3.447,4.209Z", transform: "translate(-136.413 -42.068)" })), h("g", { transform: "translate(110.856 24.899)" }, h("path", { class: "PasswordVisibilityIcon", d: "M122.538,42.061a7.043,7.043,0,0,1-2.325.53,10.373,10.373,0,0,1-4.393-1.482,36.509,36.509,0,0,1-3.873-2.391.13.13,0,0,1,0-.208,44.141,44.141,0,0,1,3.873-2.651c.394-.233.768-.437,1.13-.622l-.686-.838c-.322.167-.651.347-.99.55a37.989,37.989,0,0,0-3.977,2.729,1.21,1.21,0,0,0-.442.962,1.1,1.1,0,0,0,.494.936,34.416,34.416,0,0,0,3.977,2.469,11.468,11.468,0,0,0,4.886,1.611,8.427,8.427,0,0,0,3.039-.725Z", transform: "translate(-110.856 -33.157)" }), h("path", { class: "PasswordVisibilityIcon", d: "M149.119,34.14a45.875,45.875,0,0,0-4.055-2.729,20.541,20.541,0,0,0-2.547-1.248,5.6,5.6,0,0,0-4.79-.017l.7.856a5.254,5.254,0,0,1,1.672-.346,10.072,10.072,0,0,1,4.445,1.663,34.132,34.132,0,0,1,3.925,2.651.13.13,0,0,1,0,.208,40.2,40.2,0,0,1-3.925,2.391c-.179.092-.352.176-.525.26l.684.835c.1-.054.2-.1.309-.159a36.356,36.356,0,0,0,4.055-2.469,1.067,1.067,0,0,0,.52-.936A1.159,1.159,0,0,0,149.119,34.14Z", transform: "translate(-130.743 -29.617)" })), h("rect", { class: "PasswordVisibilityIcon", width: "0.972", height: "15.861", rx: "0.486", transform: "translate(114.827 23.858) rotate(-39.315)" }))), !this.isPasswordVisible &&
310
- h("svg", { onClick: () => this.togglePassword(), class: "TogglePasswordVisibility PasswordVisible", part: "TogglePasswordVisibility", xmlns: "http://www.w3.org/2000/svg", width: "18.843", height: "10.5", viewBox: "0 0 18.843 10.5" }, h("g", { transform: "translate(-14.185 -27.832)" }, h("path", { class: "PasswordVisibilityIcon", d: "M23.541,38.332a11.467,11.467,0,0,1-4.886-1.611,34.413,34.413,0,0,1-3.976-2.469,1.1,1.1,0,0,1-.494-.936,1.21,1.21,0,0,1,.442-.962A37.986,37.986,0,0,1,18.6,29.625a16.06,16.06,0,0,1,2.521-1.248,6.862,6.862,0,0,1,2.417-.546,6.862,6.862,0,0,1,2.417.546,20.541,20.541,0,0,1,2.547,1.248,45.872,45.872,0,0,1,4.054,2.729,1.159,1.159,0,0,1,.468.962,1.067,1.067,0,0,1-.52.936,36.353,36.353,0,0,1-4.054,2.469A11.2,11.2,0,0,1,23.541,38.332Zm0-9.46a9.813,9.813,0,0,0-4.392,1.663,44.138,44.138,0,0,0-3.873,2.651.13.13,0,0,0,0,.208,36.5,36.5,0,0,0,3.873,2.391,10.372,10.372,0,0,0,4.392,1.481,11.051,11.051,0,0,0,4.444-1.481,40.2,40.2,0,0,0,3.925-2.391.13.13,0,0,0,0-.208h0a34.132,34.132,0,0,0-3.925-2.651A10.072,10.072,0,0,0,23.541,28.872Z", transform: "translate(0)" }), h("circle", { class: "PasswordVisibilityIcon", cx: "2.779", cy: "2.779", r: "2.779", transform: "translate(20.827 30.303)" }))));
311
- let userIdentification = h("div", { class: "FormBox" }, h("div", { class: "FormValue" }, h("div", { class: (!this.isValidUserEmail || this.hasError) ? 'InputBox InputInvalidBox' : 'InputBox' }, h("input", { type: "text", placeholder: '', value: this.userNameEmail, onFocus: (event) => this.handleInputChange(event, 'user'), onInput: (event) => this.handleInputChange(event, 'user'), required: true }), h("label", { class: (this.userNameEmail ? 'FieldFilledIn' : '') + ' ' + (!this.isValidUserEmail || this.hasError ? 'FieldInvalid' : '') }, translate('userEmail', this.lang)), !this.isValidUserEmail &&
312
- h("p", { class: "InvalidField" }, translate('invalidField', this.lang))), h("div", { class: (!this.isValidPassword || this.hasError) ? 'InputBox InputInvalidBox' : 'InputBox' }, visibilityIcon, h("input", { type: this.isPasswordVisible ? "text" : "password", placeholder: '', value: this.userPassword, onFocus: (event) => this.handleInputChange(event, 'password'), onInput: (event) => this.handleInputChange(event, 'password'), required: true }), h("label", { class: (this.userPassword ? 'FieldFilledIn' : '') + ' ' + (!this.isValidPassword || this.hasError ? 'FieldInvalid' : '') }, translate('password', this.lang)), !this.isValidPassword &&
313
- h("p", { class: "InvalidField" }, translate('invalidField', this.lang))), this.passwordReset == 'true' &&
314
- h("div", { class: "ForgotPassword" }, h("button", { onClick: () => this.resetPassword() }, translate('forgotPassword', this.lang))), h("button", { disabled: (!this.isValidUserEmail || !this.isValidPassword || !this.userNameEmail || !this.userPassword), class: "SubmitCredentials", onClick: () => this.handleLogin() }, translate('login', this.lang)), this.hasError &&
315
- h("p", { class: "CredentialsError" }, this.errorMessage ? this.errorMessage : translate('genericError', this.lang))));
316
- return h("section", { ref: el => this.stylingContainer = el }, userIdentification);
317
- }
318
- static get watchers() { return {
319
- "translationUrl": ["handleNewTranslations"]
320
- }; }
321
- static get style() { return userLoginCss; }
322
- }, [1, "user-login", {
323
- "endpoint": [513],
324
- "lang": [1537],
325
- "clientStyling": [513, "client-styling"],
326
- "clientStylingUrl": [513, "client-styling-url"],
327
- "translationUrl": [513, "translation-url"],
328
- "passwordReset": [513, "password-reset"],
329
- "userEmailRegex": [513, "user-email-regex"],
330
- "userEmailRegexOptions": [513, "user-email-regex-options"],
331
- "passwordRegex": [513, "password-regex"],
332
- "passwordRegexOptions": [513, "password-regex-options"],
333
- "userNameEmail": [32],
334
- "userPassword": [32],
335
- "isValidUserEmail": [32],
336
- "isValidPassword": [32],
337
- "isPasswordVisible": [32],
338
- "limitStylingAppends": [32],
339
- "errorMessage": [32],
340
- "hasError": [32]
341
- }]);
342
- function defineCustomElement$1() {
343
- if (typeof customElements === "undefined") {
344
- return;
345
- }
346
- const components = ["user-login"];
347
- components.forEach(tagName => { switch (tagName) {
348
- case "user-login":
349
- if (!customElements.get(tagName)) {
350
- customElements.define(tagName, UserLogin$1);
351
- }
352
- break;
353
- } });
354
- }
355
-
356
- const UserLogin = UserLogin$1;
357
- const defineCustomElement = defineCustomElement$1;
358
-
359
- export { UserLogin, defineCustomElement };