@everymatrix/general-registration 1.24.6 → 1.25.0

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.
@@ -1,12 +1,13 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { t as translate, a as tooltipIconSvg } from './tooltipIcon.js';
3
3
  import { i as inputFieldShared, c as InputControlMixin, d as inputFieldShared$1 } from './input-field-shared-styles.js';
4
- import { r as registerStyles, c as InputController, e as LabelledInputController, h as html, T as TooltipController, f as defineCustomElement$1, g as ThemableMixin, E as ElementMixin, P as PolymerElement, i, G as SlotController } from './field-mixin.js';
4
+ import { r as registerStyles, h as html, e as InputController, f as LabelledInputController, g as TooltipController, T as ThemableMixin, E as ElementMixin, P as PolymerElement, i, S as SlotController } from './field-mixin.js';
5
+ import { P as PatternMixin } from './pattern-mixin.js';
5
6
  import { b as button, B as Button } from './vaadin-button.js';
6
7
 
7
8
  /**
8
9
  * @license
9
- * Copyright (c) 2017 - 2023 Vaadin Ltd.
10
+ * Copyright (c) 2017 - 2022 Vaadin Ltd.
10
11
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
11
12
  */
12
13
 
@@ -16,7 +17,7 @@ registerStyles('vaadin-text-field', inputFieldShared, {
16
17
 
17
18
  /**
18
19
  * @license
19
- * Copyright (c) 2021 - 2023 Vaadin Ltd.
20
+ * Copyright (c) 2021 - 2022 Vaadin Ltd.
20
21
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
21
22
  */
22
23
 
@@ -70,15 +71,6 @@ const InputFieldMixin = (superclass) =>
70
71
  return [...super.delegateAttrs, 'autocapitalize', 'autocomplete', 'autocorrect'];
71
72
  }
72
73
 
73
- // Workaround for https://github.com/Polymer/polymer/issues/5259
74
- get __data() {
75
- return this.__dataValue || {};
76
- }
77
-
78
- set __data(value) {
79
- this.__dataValue = value;
80
- }
81
-
82
74
  /**
83
75
  * @param {HTMLElement} input
84
76
  * @protected
@@ -100,6 +92,15 @@ const InputFieldMixin = (superclass) =>
100
92
  }
101
93
  }
102
94
 
95
+ // Workaround for https://github.com/Polymer/polymer/issues/5259
96
+ get __data() {
97
+ return this.__dataValue || {};
98
+ }
99
+
100
+ set __data(value) {
101
+ this.__dataValue = value;
102
+ }
103
+
103
104
  /**
104
105
  * Override an event listener from `FocusMixin`.
105
106
  * @param {boolean} focused
@@ -109,9 +110,7 @@ const InputFieldMixin = (superclass) =>
109
110
  _setFocused(focused) {
110
111
  super._setFocused(focused);
111
112
 
112
- // Do not validate when focusout is caused by document
113
- // losing focus, which happens on browser tab switch.
114
- if (!focused && document.hasFocus()) {
113
+ if (!focused) {
115
114
  this.validate();
116
115
  }
117
116
  }
@@ -155,81 +154,7 @@ const InputFieldMixin = (superclass) =>
155
154
 
156
155
  /**
157
156
  * @license
158
- * Copyright (c) 2021 - 2023 Vaadin Ltd.
159
- * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
160
- */
161
-
162
- /**
163
- * A mixin providing common text field functionality.
164
- *
165
- * @polymerMixin
166
- * @mixes InputFieldMixin
167
- */
168
- const TextFieldMixin = (superClass) =>
169
- class TextFieldMixinClass extends InputFieldMixin(superClass) {
170
- static get properties() {
171
- return {
172
- /**
173
- * Maximum number of characters (in Unicode code points) that the user can enter.
174
- */
175
- maxlength: {
176
- type: Number,
177
- },
178
-
179
- /**
180
- * Minimum number of characters (in Unicode code points) that the user can enter.
181
- */
182
- minlength: {
183
- type: Number,
184
- },
185
-
186
- /**
187
- * A regular expression that the value is checked against.
188
- * The pattern must match the entire value, not just some subset.
189
- */
190
- pattern: {
191
- type: String,
192
- },
193
- };
194
- }
195
-
196
- static get delegateAttrs() {
197
- return [...super.delegateAttrs, 'maxlength', 'minlength', 'pattern'];
198
- }
199
-
200
- static get constraints() {
201
- return [...super.constraints, 'maxlength', 'minlength', 'pattern'];
202
- }
203
-
204
- constructor() {
205
- super();
206
- this._setType('text');
207
- }
208
-
209
- /** @protected */
210
- get clearElement() {
211
- return this.$.clearButton;
212
- }
213
-
214
- /** @protected */
215
- ready() {
216
- super.ready();
217
-
218
- this.addController(
219
- new InputController(this, (input) => {
220
- this._setInputElement(input);
221
- this._setFocusElement(input);
222
- this.stateTarget = input;
223
- this.ariaTarget = input;
224
- }),
225
- );
226
- this.addController(new LabelledInputController(this.inputElement, this._labelController));
227
- }
228
- };
229
-
230
- /**
231
- * @license
232
- * Copyright (c) 2017 - 2023 Vaadin Ltd.
157
+ * Copyright (c) 2017 - 2022 Vaadin Ltd.
233
158
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
234
159
  */
235
160
 
@@ -290,7 +215,7 @@ registerStyles('vaadin-text-field', inputFieldShared$1, { moduleId: 'vaadin-text
290
215
  * `focus-ring` | Set when the element is keyboard focused | :host
291
216
  * `readonly` | Set to a readonly text field | :host
292
217
  *
293
- * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
218
+ * See [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.
294
219
  *
295
220
  * @fires {Event} input - Fired when the value is changed by the user: on every typing keystroke, and the value is cleared using the clear button.
296
221
  * @fires {Event} change - Fired when the user commits a value change.
@@ -298,13 +223,13 @@ registerStyles('vaadin-text-field', inputFieldShared$1, { moduleId: 'vaadin-text
298
223
  * @fires {CustomEvent} value-changed - Fired when the `value` property changes.
299
224
  * @fires {CustomEvent} validated - Fired whenever the field is validated.
300
225
  *
301
- * @customElement
302
226
  * @extends HTMLElement
303
227
  * @mixes ElementMixin
304
228
  * @mixes ThemableMixin
305
- * @mixes TextFieldMixin
229
+ * @mixes PatternMixin
230
+ * @mixes InputFieldMixin
306
231
  */
307
- class TextField extends TextFieldMixin(ThemableMixin(ElementMixin(PolymerElement))) {
232
+ class TextField extends PatternMixin(InputFieldMixin(ThemableMixin(ElementMixin(PolymerElement)))) {
308
233
  static get is() {
309
234
  return 'vaadin-text-field';
310
235
  }
@@ -366,22 +291,49 @@ class TextField extends TextFieldMixin(ThemableMixin(ElementMixin(PolymerElement
366
291
  };
367
292
  }
368
293
 
294
+ static get delegateAttrs() {
295
+ return [...super.delegateAttrs, 'maxlength', 'minlength'];
296
+ }
297
+
298
+ static get constraints() {
299
+ return [...super.constraints, 'maxlength', 'minlength'];
300
+ }
301
+
302
+ constructor() {
303
+ super();
304
+ this._setType('text');
305
+ }
306
+
307
+ /** @protected */
308
+ get clearElement() {
309
+ return this.$.clearButton;
310
+ }
311
+
369
312
  /** @protected */
370
313
  ready() {
371
314
  super.ready();
372
315
 
316
+ this.addController(
317
+ new InputController(this, (input) => {
318
+ this._setInputElement(input);
319
+ this._setFocusElement(input);
320
+ this.stateTarget = input;
321
+ this.ariaTarget = input;
322
+ }),
323
+ );
324
+ this.addController(new LabelledInputController(this.inputElement, this._labelController));
325
+
373
326
  this._tooltipController = new TooltipController(this);
374
327
  this._tooltipController.setPosition('top');
375
- this._tooltipController.setAriaTarget(this.inputElement);
376
328
  this.addController(this._tooltipController);
377
329
  }
378
330
  }
379
331
 
380
- defineCustomElement$1(TextField);
332
+ customElements.define(TextField.is, TextField);
381
333
 
382
334
  /**
383
335
  * @license
384
- * Copyright (c) 2021 - 2023 Vaadin Ltd.
336
+ * Copyright (c) 2021 - 2022 Vaadin Ltd.
385
337
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
386
338
  */
387
339
 
@@ -406,7 +358,7 @@ registerStyles('vaadin-password-field-button', [button, passwordFieldButton], {
406
358
 
407
359
  /**
408
360
  * @license
409
- * Copyright (c) 2021 - 2023 Vaadin Ltd.
361
+ * Copyright (c) 2021 - 2022 Vaadin Ltd.
410
362
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
411
363
  */
412
364
 
@@ -434,14 +386,13 @@ registerStyles('vaadin-password-field', [inputFieldShared, passwordField], { mod
434
386
 
435
387
  /**
436
388
  * @license
437
- * Copyright (c) 2021 - 2023 Vaadin Ltd.
389
+ * Copyright (c) 2021 - 2022 Vaadin Ltd.
438
390
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
439
391
  */
440
392
 
441
393
  /**
442
394
  * An element used internally by `<vaadin-password-field>`. Not intended to be used separately.
443
395
  *
444
- * @customElement
445
396
  * @extends Button
446
397
  * @private
447
398
  */
@@ -466,11 +417,11 @@ class PasswordFieldButton extends Button {
466
417
  }
467
418
  }
468
419
 
469
- defineCustomElement$1(PasswordFieldButton);
420
+ customElements.define(PasswordFieldButton.is, PasswordFieldButton);
470
421
 
471
422
  /**
472
423
  * @license
473
- * Copyright (c) 2021 - 2023 Vaadin Ltd.
424
+ * Copyright (c) 2021 - 2022 Vaadin Ltd.
474
425
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
475
426
  */
476
427
 
@@ -506,7 +457,7 @@ let memoizedTemplate;
506
457
  * -------------------|---------------------------------
507
458
  * `password-visible` | Set when the password is visible
508
459
  *
509
- * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
460
+ * See [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.
510
461
  *
511
462
  * @fires {Event} input - Fired when the value is changed by the user: on every typing keystroke, and the value is cleared using the clear button.
512
463
  * @fires {Event} change - Fired when the user commits a value change.
@@ -514,7 +465,6 @@ let memoizedTemplate;
514
465
  * @fires {CustomEvent} value-changed - Fired when the `value` property changes.
515
466
  * @fires {CustomEvent} validated - Fired whenever the field is validated.
516
467
  *
517
- * @customElement
518
468
  * @extends TextField
519
469
  */
520
470
  class PasswordField extends TextField {
@@ -588,14 +538,6 @@ class PasswordField extends TextField {
588
538
  return ['__i18nChanged(i18n.*)'];
589
539
  }
590
540
 
591
- constructor() {
592
- super();
593
- this._setType('password');
594
- this.__boundRevealButtonClick = this._onRevealButtonClick.bind(this);
595
- this.__boundRevealButtonMouseDown = this._onRevealButtonMouseDown.bind(this);
596
- this.__lastChange = '';
597
- }
598
-
599
541
  /** @protected */
600
542
  get slotStyles() {
601
543
  const tag = this.localName;
@@ -614,20 +556,31 @@ class PasswordField extends TextField {
614
556
  return this._revealButtonController && this._revealButtonController.node;
615
557
  }
616
558
 
559
+ constructor() {
560
+ super();
561
+ this._setType('password');
562
+ this.__boundRevealButtonClick = this._onRevealButtonClick.bind(this);
563
+ this.__boundRevealButtonMouseDown = this._onRevealButtonMouseDown.bind(this);
564
+ this.__lastChange = '';
565
+ }
566
+
617
567
  /** @protected */
618
568
  ready() {
619
569
  super.ready();
620
570
 
621
571
  this._revealPart = this.shadowRoot.querySelector('[part="reveal-button"]');
622
572
 
623
- this._revealButtonController = new SlotController(this, 'reveal', 'vaadin-password-field-button', {
624
- initializer: (btn) => {
625
- btn.disabled = this.disabled;
573
+ this._revealButtonController = new SlotController(
574
+ this,
575
+ 'reveal',
576
+ () => document.createElement('vaadin-password-field-button'),
577
+ (host, btn) => {
578
+ btn.disabled = host.disabled;
626
579
 
627
- btn.addEventListener('click', this.__boundRevealButtonClick);
628
- btn.addEventListener('mousedown', this.__boundRevealButtonMouseDown);
580
+ btn.addEventListener('click', host.__boundRevealButtonClick);
581
+ btn.addEventListener('mousedown', host.__boundRevealButtonMouseDown);
629
582
  },
630
- });
583
+ );
631
584
  this.addController(this._revealButtonController);
632
585
 
633
586
  this.__updateAriaLabel(this.i18n);
@@ -784,9 +737,9 @@ class PasswordField extends TextField {
784
737
  }
785
738
  }
786
739
 
787
- defineCustomElement$1(PasswordField);
740
+ customElements.define(PasswordField.is, PasswordField);
788
741
 
789
- const passwordInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.password{font-family:\"Roboto\";font-style:normal}.password__wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:5px}.password__wrapper--autofilled{pointer-events:none}.password__wrapper--autofilled .password__label{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.password__wrapper--autofilled .password__input::part(input-field){color:var(--emfe-w-color-black, #000000)}.password__wrapper--flex{display:flex;gap:5px}.password__wrapper--relative{position:relative}.password__label{font-family:inherit;font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.password__label--required::after{content:\"*\";font-family:inherit;color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C));margin-left:2px}.password__input{width:inherit;border:none}.password__input[focused]::part(input-field){outline-color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.password__input[invalid]::part(input-field){border-color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.password__input::part(input-field){border-radius:4px;background-color:var(--emfe-w-color-white, #FFFFFF);border:2px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-color-black, #000000);background-color:transparent;font-family:inherit;font-style:normal;font-weight:300;font-size:16px;line-height:1.5;position:relative;margin-bottom:unset;height:40px;padding:0;width:100%}.password__input::part(reveal-button){position:relative;right:10px}.password__input::part(reveal-button)::before{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.password__input>input{padding:10px}.password__input>input:placeholder-shown{color:var(--emfe-w-color-gray-150, #828282)}.password__error-message{position:absolute;top:calc(100% + 5px);left:0;color:var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.password__complexity{position:relative;padding:10px;display:flex;flex-direction:column;gap:20px;justify-content:center;margin-top:20px;font-weight:300;background:var(--emfe-w-color-white, #FFFFFF);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:150px;border:1px solid #B0B0B0;}.password__complexity meter{border-color:transparent;}.password__complexity meter[value=\"1\"]::-moz-meter-bar{background-color:var(--emfe-w-color-valid, #48952a)}.password__complexity meter[value=\"1\"]::-webkit-meter-optimum-value{background-color:var(--emfe-w-color-valid, #48952a)}.password__complexity meter:not([value=\"1\"])::-moz-meter-bar{background-color:var(--emfe-w-color-error, #FD2839)}.password__complexity meter:not([value=\"1\"])::-webkit-meter-optimum-value{background-color:var(--emfe-w-color-error, #FD2839)}.password__complexity--strength{display:flex;justify-content:space-evenly;align-items:center}.password__complexity--strength meter::-moz-meter-bar{background:#B0B0B0}.password__complexity--hidden{display:none}.password__complexity--text-bold{font-weight:500}.password__complexity--checkbox{margin-right:5px}.password__complexity:after{content:\"\";position:absolute;width:25px;height:25px;border-top:1px solid var(--emfe-w-color-gray-150, #828282);border-right:0 solid var(--emfe-w-color-gray-150, #828282);border-left:1px solid var(--emfe-w-color-gray-150, #828282);border-bottom:0 solid var(--emfe-w-color-gray-150, #828282);bottom:92%;left:50%;margin-left:-25px;transform:rotate(45deg);margin-top:-25px;background-color:var(--emfe-w-color-white, #FFFFFF)}.password__tooltip-icon{width:16px;height:auto}.password__tooltip{position:absolute;top:0;left:20px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-150, #828282);color:#2B2D3F;padding:10px;border-radius:5px;opacity:0;transition:opacity 0.3s ease-in-out;z-index:10}.password__tooltip.visible{opacity:1}";
742
+ const passwordInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.password{font-family:\"Roboto\";font-style:normal}.password__wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:5px}.password__wrapper--autofilled{pointer-events:none}.password__wrapper--autofilled .password__label{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.password__wrapper--autofilled .password__input::part(input-field){color:var(--emfe-w-color-black, #000000)}.password__wrapper--flex{display:flex;gap:5px}.password__wrapper--relative{position:relative}.password__label{font-family:inherit;font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.password__label--required::after{content:\"*\";font-family:inherit;color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C));margin-left:2px}.password__input{width:inherit;border:none}.password__input[focused]::part(input-field){border-color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.password__input[invalid]::part(input-field){border:1px solid var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.password__input::part(input-field){border-radius:4px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-color-black, #000000);background-color:var(--emfe-w-color-white, #FFFFFF);font-family:inherit;font-style:normal;font-weight:300;font-size:16px;line-height:1.5;position:relative;margin-bottom:unset;height:44px;padding:0;width:100%}.password__input::part(reveal-button){position:relative;right:10px}.password__input::part(reveal-button)::before{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.password__input>input{padding:5px 15px}.password__input>input:placeholder-shown{color:var(--emfe-w-color-gray-150, #828282)}.password__error-message{position:absolute;top:calc(100% + 5px);left:0;color:var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.password__complexity{position:relative;padding:10px;display:flex;flex-direction:column;gap:20px;justify-content:center;margin-top:20px;font-weight:300;background:var(--emfe-w-color-white, #FFFFFF);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:150px;border:1px solid #B0B0B0;}.password__complexity meter{border-color:transparent;}.password__complexity meter[value=\"1\"]::-moz-meter-bar{background-color:var(--emfe-w-color-valid, #48952a)}.password__complexity meter[value=\"1\"]::-webkit-meter-optimum-value{background-color:var(--emfe-w-color-valid, #48952a)}.password__complexity meter:not([value=\"1\"])::-moz-meter-bar{background-color:var(--emfe-w-color-error, #FD2839)}.password__complexity meter:not([value=\"1\"])::-webkit-meter-optimum-value{background-color:var(--emfe-w-color-error, #FD2839)}.password__complexity--strength{display:flex;justify-content:space-evenly;align-items:center}.password__complexity--strength meter::-moz-meter-bar{background:#B0B0B0}.password__complexity--hidden{display:none}.password__complexity--text-bold{font-weight:500}.password__complexity--checkbox{margin-right:5px}.password__complexity:after{content:\"\";position:absolute;width:25px;height:25px;border-top:1px solid var(--emfe-w-color-gray-150, #828282);border-right:0 solid var(--emfe-w-color-gray-150, #828282);border-left:1px solid var(--emfe-w-color-gray-150, #828282);border-bottom:0 solid var(--emfe-w-color-gray-150, #828282);bottom:92%;left:50%;margin-left:-25px;transform:rotate(45deg);margin-top:-25px;background-color:var(--emfe-w-color-white, #FFFFFF)}.password__tooltip-icon{width:16px;height:auto}.password__tooltip{position:absolute;top:0;left:20px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-150, #828282);color:#2B2D3F;padding:10px;border-radius:5px;opacity:0;transition:opacity 0.3s ease-in-out;z-index:10}.password__tooltip.visible{opacity:1}";
790
743
 
791
744
  const PasswordInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
792
745
  constructor() {
@@ -0,0 +1,85 @@
1
+ import { y as Debouncer, z as timeOut } from './field-mixin.js';
2
+ import { I as InputConstraintsMixin } from './input-field-shared-styles.js';
3
+
4
+ /**
5
+ * @license
6
+ * Copyright (c) 2021 - 2022 Vaadin Ltd.
7
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
8
+ */
9
+
10
+ /**
11
+ * A mixin to provide `pattern` and `preventInvalidInput` properties.
12
+ *
13
+ * @polymerMixin
14
+ * @mixes InputConstraintsMixin
15
+ */
16
+ const PatternMixin = (superclass) =>
17
+ class PatternMixinClass extends InputConstraintsMixin(superclass) {
18
+ static get properties() {
19
+ return {
20
+ /**
21
+ * A regular expression that the value is checked against.
22
+ * The pattern must match the entire value, not just some subset.
23
+ */
24
+ pattern: {
25
+ type: String,
26
+ },
27
+
28
+ /**
29
+ * When set to true, user is prevented from typing a value that
30
+ * conflicts with the given `pattern`.
31
+ * @attr {boolean} prevent-invalid-input
32
+ * @deprecated Please use `allowedCharPattern` instead.
33
+ */
34
+ preventInvalidInput: {
35
+ type: Boolean,
36
+ observer: '_preventInvalidInputChanged',
37
+ },
38
+ };
39
+ }
40
+
41
+ static get delegateAttrs() {
42
+ return [...super.delegateAttrs, 'pattern'];
43
+ }
44
+
45
+ static get constraints() {
46
+ return [...super.constraints, 'pattern'];
47
+ }
48
+
49
+ /** @private */
50
+ _checkInputValue() {
51
+ if (this.preventInvalidInput) {
52
+ const input = this.inputElement;
53
+ if (input && input.value.length > 0 && !this.checkValidity()) {
54
+ input.value = this.value || '';
55
+ // Add input-prevented attribute for 200ms
56
+ this.setAttribute('input-prevented', '');
57
+ this._inputDebouncer = Debouncer.debounce(this._inputDebouncer, timeOut.after(200), () => {
58
+ this.removeAttribute('input-prevented');
59
+ });
60
+ }
61
+ }
62
+ }
63
+
64
+ /**
65
+ * @param {Event} event
66
+ * @protected
67
+ * @override
68
+ */
69
+ _onInput(event) {
70
+ this._checkInputValue();
71
+
72
+ super._onInput(event);
73
+ }
74
+
75
+ /** @private */
76
+ _preventInvalidInputChanged(preventInvalidInput) {
77
+ if (preventInvalidInput) {
78
+ console.warn(
79
+ `WARNING: Since Vaadin 23.2, "preventInvalidInput" is deprecated. Please use "allowedCharPattern" instead.`,
80
+ );
81
+ }
82
+ }
83
+ };
84
+
85
+ export { PatternMixin as P };
@@ -3,7 +3,7 @@ import { t as translate, a as tooltipIconSvg } from './tooltipIcon.js';
3
3
  import './input-field-shared-styles.js';
4
4
  import './vaadin-combo-box.js';
5
5
 
6
- const selectInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}:host{height:100%}vaadin-combo-box>input{background-color:var(--emfe-w-color-white, #FFFFFF);color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));font-weight:300;font-size:16px;-webkit-font-smoothing:initial;}.select{font-family:\"Roboto\";font-style:normal}.select__wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:5px}.select__wrapper--autofilled{pointer-events:none}.select__wrapper--autofilled .select__label{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.select__wrapper--autofilled .select__input::part(input-field){color:var(--emfe-w-color-black, #000000)}.select__wrapper--flex{display:flex;gap:5px}.select__wrapper--relative{position:relative}.select__label{font-family:inherit;font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.select__label--required::after{content:\"*\";font-family:inherit;color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C));margin-left:2px}.select__input{border:none;width:inherit;position:relative}.select__input[focused]::part(input-field){border-color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.select__input[invalid]::part(input-field){border:1px solid var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.select__input vaadin-date-picker-overlay-content>vaadin-button{color:var(--emfe-w-color-black, #000000)}.select__input::part(input-field){border-radius:4px;background-color:var(--emfe-w-color-white, #FFFFFF);border:2px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-color-black, #000000);background-color:transparent;font-family:inherit;font-style:normal;font-size:16px;font-weight:300;line-height:1.5;padding:0}.select__input::part(toggle-button){position:relative;right:10px}.select__input>input{padding:10px}.select__error-message{position:absolute;top:calc(100% + 5px);left:0;color:var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.select__tooltip-icon{width:16px;height:auto}.select__tooltip{position:absolute;top:0;left:20px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));padding:10px;border-radius:5px;opacity:0;transition:opacity 0.3s ease-in-out;z-index:10}.select__tooltip.visible{opacity:1}";
6
+ const selectInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}:host{height:100%}vaadin-combo-box>input{background-color:var(--emfe-w-color-white, #FFFFFF);color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));font-weight:300;font-size:16px;-webkit-font-smoothing:initial;}.select{font-family:\"Roboto\";font-style:normal}.select__wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:5px}.select__wrapper--autofilled{pointer-events:none}.select__wrapper--autofilled .select__label{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.select__wrapper--autofilled .select__input::part(input-field){color:var(--emfe-w-color-black, #000000)}.select__wrapper--flex{display:flex;gap:5px}.select__wrapper--relative{position:relative}.select__label{font-family:inherit;font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.select__label--required::after{content:\"*\";font-family:inherit;color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C));margin-left:2px}.select__input{border:none;width:inherit;position:relative}.select__input[focused]::part(input-field){border-color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.select__input[invalid]::part(input-field){border:1px solid var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.select__input vaadin-date-picker-overlay-content>vaadin-button{color:var(--emfe-w-color-black, #000000)}.select__input::part(input-field){border-radius:4px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-color-black, #000000);font-family:inherit;font-style:normal;font-size:16px;font-weight:300;line-height:1.5;padding:0;height:44px}.select__input::part(toggle-button){position:relative;right:10px}.select__input>input{padding:5px 15px}.select__error-message{position:absolute;top:calc(100% + 5px);left:0;color:var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.select__tooltip-icon{width:16px;height:auto}.select__tooltip{position:absolute;top:0;left:20px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));padding:10px;border-radius:5px;opacity:0;transition:opacity 0.3s ease-in-out;z-index:10}.select__tooltip.visible{opacity:1}";
7
7
 
8
8
  const SelectInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
9
9
  constructor() {
@@ -3,7 +3,7 @@ import { t as translate, a as tooltipIconSvg } from './tooltipIcon.js';
3
3
  import './input-field-shared-styles.js';
4
4
  import './vaadin-combo-box.js';
5
5
 
6
- const telInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.tel{font-family:\"Roboto\";font-style:normal}.tel__wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:5px}.tel__wrapper--autofilled{pointer-events:none}.tel__wrapper--autofilled .tel__label{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.tel__wrapper--autofilled .tel__input::part(input-field){color:var(--emfe-w-color-black, #000000)}.tel__wrapper--flex{width:inherit;display:flex;align-items:center;border-radius:4px;border:2px solid var(--emfe-w-color-gray-100, #E6E6E6);background-color:var(--emfe-w-color-white, #FFFFFF);overflow:hidden}.tel__wrapper--flex:focus-within{outline-color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.tel__wrapper--flex--invalid{border:1px solid var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.tel__wrapper--flex-label{display:flex;gap:5px}.tel__wrapper--flex--relative{position:relative}.tel__label{font-family:inherit;font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.tel__label--required::after{content:\"*\";font-family:inherit;color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C));margin-left:2px}.tel__prefix{--vaadin-field-default-width:90px}.tel__prefix[focus]{outline:none}.tel__prefix::part(input-field){border-radius:0 5px 5px 0;background-color:var(--emfe-w-color-white, #FFFFFF);color:var(--emfe-w-color-black, #000000);font-family:inherit;font-style:normal;font-weight:300;font-size:16px;line-height:1.5;border:none;border-right:2px solid #DDE0EE;border-image-source:linear-gradient(to bottom, rgba(221, 224, 238, 0) 25%, #dde0ee 25%, #dde0ee 75%, rgba(221, 224, 238, 0) 75%);border-image-slice:1;border-image-repeat:round}.tel__prefix::part(input-field):hover{background-color:var(--emfe-w-color-white, #FFFFFF)}.tel__prefix::part(toggle-button){color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.tel__input{font-family:inherit;border-radius:5px;width:100%;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));background-color:transparent;border:none;width:inherit;position:relative;font-size:16px;font-weight:300;line-height:1.5;padding:10px;height:36px;-moz-appearance:textfield;}.tel__input:focus{outline:none}.tel__input::-webkit-outer-spin-button,.tel__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tel__input::placeholder{color:var(--emfe-w-color-gray-150, #979797)}.tel__error-message{position:absolute;top:calc(100% + 5px);left:0;color:var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.tel__tooltip-icon{width:16px;height:auto}.tel__tooltip{position:absolute;top:0;left:20px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));padding:10px;border-radius:5px;opacity:0;transition:opacity 0.3s ease-in-out;z-index:10}.tel__tooltip.visible{opacity:1}";
6
+ const telInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.tel{font-family:\"Roboto\";font-style:normal}.tel__wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:5px}.tel__wrapper--autofilled{pointer-events:none}.tel__wrapper--autofilled .tel__label{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.tel__wrapper--autofilled .tel__input::part(input-field){color:var(--emfe-w-color-black, #000000)}.tel__wrapper--flex{width:inherit;display:flex;align-items:center;border-radius:4px;border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);background-color:var(--emfe-w-color-white, #FFFFFF);overflow:hidden}.tel__wrapper--flex:focus-within{border-color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.tel__wrapper--flex--invalid{border:1px solid var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.tel__wrapper--flex-label{display:flex;gap:5px}.tel__wrapper--flex--relative{position:relative}.tel__label{font-family:inherit;font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.tel__label--required::after{content:\"*\";font-family:inherit;color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C));margin-left:2px}.tel__prefix{--vaadin-field-default-width:90px}.tel__prefix[focus]{outline:none}.tel__prefix::part(input-field){border-radius:0 5px 5px 0;background-color:var(--emfe-w-color-white, #FFFFFF);color:var(--emfe-w-color-black, #000000);font-family:inherit;font-style:normal;font-weight:300;font-size:16px;line-height:1.5;border:none;border-right:2px solid #DDE0EE;border-image-source:linear-gradient(to bottom, rgba(221, 224, 238, 0) 25%, #dde0ee 25%, #dde0ee 75%, rgba(221, 224, 238, 0) 75%);border-image-slice:1;border-image-repeat:round}.tel__prefix::part(input-field):hover{background-color:var(--emfe-w-color-white, #FFFFFF)}.tel__prefix::part(toggle-button){color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.tel__input{font-family:inherit;border-radius:5px;width:100%;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));background-color:var(--emfe-w-color-white, #FFFFFF);border:none;width:inherit;position:relative;font-size:16px;font-weight:300;line-height:1.5;padding:5px 15px;height:42px;-moz-appearance:textfield;}.tel__input:focus{outline:none}.tel__input::-webkit-outer-spin-button,.tel__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tel__input::placeholder{color:var(--emfe-w-color-gray-150, #979797)}.tel__error-message{position:absolute;top:calc(100% + 5px);left:0;color:var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.tel__tooltip-icon{width:16px;height:auto}.tel__tooltip{position:absolute;top:0;left:20px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));padding:10px;border-radius:5px;opacity:0;transition:opacity 0.3s ease-in-out;z-index:10}.tel__tooltip.visible{opacity:1}";
7
7
 
8
8
  const TelInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
9
9
  constructor() {
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { t as translate, a as tooltipIconSvg } from './tooltipIcon.js';
3
3
 
4
- const textInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.text{font-family:\"Roboto\";font-style:normal}.text__wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:5px;height:100%}.text__wrapper--autofilled{pointer-events:none}.text__wrapper--autofilled .text__label{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.text__wrapper--autofilled .text__input::part(input-field){color:var(--emfe-w-color-black, #000000)}.text__wrapper--flex{display:flex;gap:5px}.text__wrapper--relative{position:relative}.text__label{font-family:inherit;font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.text__label--required::after{content:\"*\";font-family:inherit;color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C));margin-left:2px}.text__input{font-family:inherit;border-radius:4px;width:100%;height:40px;border:2px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-color-black, #000000);border-radius:5px;box-sizing:border-box;font-size:16px;font-weight:300;line-height:1.5;padding:10px}.text__input:focus{outline-color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.text__input--invalid{border:1px solid var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.text__input::placeholder{color:var(--emfe-w-color-gray-150, #828282)}.text__error-message{position:absolute;top:calc(100% + 5px);left:0;color:var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.text__tooltip-icon{width:16px;height:auto}.text__tooltip{position:absolute;top:0;left:20px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));padding:10px;border-radius:5px;opacity:0;transition:opacity 0.3s ease-in-out;z-index:10}.text__tooltip.visible{opacity:1}";
4
+ const textInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.text{font-family:\"Roboto\";font-style:normal}.text__wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:5px;height:100%}.text__wrapper--autofilled{pointer-events:none}.text__wrapper--autofilled .text__label{color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.text__wrapper--autofilled .text__input::part(input-field){color:var(--emfe-w-color-black, #000000)}.text__wrapper--flex{display:flex;gap:5px}.text__wrapper--relative{position:relative}.text__label{font-family:inherit;font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000))}.text__label--required::after{content:\"*\";font-family:inherit;color:var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C));margin-left:2px}.text__input{font-family:inherit;width:100%;height:44px;border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);background-color:var(--emfe-w-color-white, #FFFFFF);color:var(--emfe-w-color-black, #000000);border-radius:5px;font-size:16px;font-weight:300;line-height:1.5;padding:5px 15px}.text__input:focus{border:1px solid var(--emfe-w-login-color-primary, var(--emfe-w-color-primary, #D0046C))}.text__input--invalid{border:1px solid var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.text__input::placeholder{color:var(--emfe-w-color-gray-150, #828282)}.text__error-message{position:absolute;top:calc(100% + 5px);left:0;color:var(--emfe-w-color-error, var(--emfe-w-color-red, #ed0909))}.text__tooltip-icon{width:16px;height:auto}.text__tooltip{position:absolute;top:0;left:20px;background-color:var(--emfe-w-color-white, #FFFFFF);border:1px solid var(--emfe-w-color-gray-100, #E6E6E6);color:var(--emfe-w-registration-typography, var(--emfe-w-color-black, #000000));padding:10px;border-radius:5px;opacity:0;transition:opacity 0.3s ease-in-out;z-index:10}.text__tooltip.visible{opacity:1}";
5
5
 
6
6
  const TextInput = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
7
  constructor() {