@everymatrix/general-input 1.10.2 → 1.15.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.
Files changed (96) hide show
  1. package/dist/cjs/checkbox-group-input_10.cjs.entry.js +35539 -0
  2. package/dist/cjs/general-input.cjs.entry.js +34 -13
  3. package/dist/cjs/general-input.cjs.js +2 -2
  4. package/dist/cjs/{index-64a5cb7f.js → index-132a0774.js} +119 -6
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/locale.utils-7665b010.js +71 -0
  7. package/dist/cjs/toggle-checkbox-input.cjs.entry.js +85 -0
  8. package/dist/cjs/tooltipIcon-092a795f.js +5 -0
  9. package/dist/collection/collection-manifest.json +3 -1
  10. package/dist/collection/components/checkbox-group-input/checkbox-group-input.css +62 -0
  11. package/dist/collection/components/checkbox-group-input/checkbox-group-input.js +366 -0
  12. package/dist/collection/components/checkbox-input/checkbox-input.css +47 -1
  13. package/dist/collection/components/checkbox-input/checkbox-input.js +143 -16
  14. package/dist/collection/components/date-input/date-input.css +64 -30
  15. package/dist/collection/components/date-input/date-input.js +194 -13
  16. package/dist/collection/components/email-input/email-input.css +63 -28
  17. package/dist/collection/components/email-input/email-input.js +197 -21
  18. package/dist/collection/components/general-input/general-input.js +163 -21
  19. package/dist/collection/components/number-input/number-input.css +65 -30
  20. package/dist/collection/components/number-input/number-input.js +174 -19
  21. package/dist/collection/components/password-input/password-input.css +120 -29
  22. package/dist/collection/components/password-input/password-input.js +341 -25
  23. package/dist/collection/components/radio-input/radio-input.css +22 -1
  24. package/dist/collection/components/radio-input/radio-input.js +89 -10
  25. package/dist/collection/components/select-input/select-input.css +75 -22
  26. package/dist/collection/components/select-input/select-input.js +180 -37
  27. package/dist/collection/components/tel-input/tel-input.css +91 -33
  28. package/dist/collection/components/tel-input/tel-input.js +202 -24
  29. package/dist/collection/components/text-input/text-input.css +63 -28
  30. package/dist/collection/components/text-input/text-input.js +208 -39
  31. package/dist/collection/components/toggle-checkbox-input/toggle-checkbox-input.css +76 -0
  32. package/dist/collection/components/toggle-checkbox-input/toggle-checkbox-input.js +324 -0
  33. package/dist/collection/utils/locale.utils.js +52 -13
  34. package/dist/collection/utils/tooltipIcon.svg +5 -0
  35. package/dist/components/active-mixin.js +975 -0
  36. package/dist/components/checkbox-group-input.d.ts +11 -0
  37. package/dist/components/checkbox-group-input.js +6 -0
  38. package/dist/components/checkbox-group-input2.js +1125 -0
  39. package/dist/components/checkbox-input2.js +62 -12
  40. package/dist/components/date-input2.js +10247 -15
  41. package/dist/components/email-input2.js +98 -21
  42. package/dist/components/field-mixin.js +12712 -0
  43. package/dist/components/general-input.js +1 -118
  44. package/dist/components/general-input2.js +331 -0
  45. package/dist/components/input-field-shared-styles.js +1114 -0
  46. package/dist/components/number-input2.js +92 -16
  47. package/dist/components/password-input2.js +924 -24
  48. package/dist/components/pattern-mixin.js +85 -0
  49. package/dist/components/radio-input2.js +45 -11
  50. package/dist/components/select-input2.js +87 -27
  51. package/dist/components/tel-input2.js +122 -22
  52. package/dist/components/text-input2.js +120 -34
  53. package/dist/components/toggle-checkbox-input.d.ts +11 -0
  54. package/dist/components/toggle-checkbox-input.js +6 -0
  55. package/dist/components/tooltipIcon.js +70 -0
  56. package/dist/components/vaadin-button.js +461 -0
  57. package/dist/components/vaadin-combo-box.js +4329 -0
  58. package/dist/components/virtual-keyboard-controller.js +2658 -0
  59. package/dist/esm/checkbox-group-input_10.entry.js +35526 -0
  60. package/dist/esm/general-input.entry.js +34 -13
  61. package/dist/esm/general-input.js +2 -2
  62. package/dist/esm/{index-df80f936.js → index-db76d5b5.js} +118 -7
  63. package/dist/esm/loader.js +2 -2
  64. package/dist/esm/locale.utils-95ea2605.js +68 -0
  65. package/dist/esm/toggle-checkbox-input.entry.js +81 -0
  66. package/dist/esm/tooltipIcon-99c1c7b7.js +3 -0
  67. package/dist/general-input/general-input.esm.js +1 -1
  68. package/dist/general-input/p-0966f523.entry.js +3581 -0
  69. package/dist/general-input/p-916a1319.entry.js +1 -0
  70. package/dist/general-input/p-b408093e.js +1 -0
  71. package/dist/general-input/p-c2d4d6ac.entry.js +1 -0
  72. package/dist/general-input/p-f4f4ccda.js +1 -0
  73. package/dist/general-input/p-f6132f1d.js +1 -0
  74. package/dist/types/components/checkbox-group-input/checkbox-group-input.d.ts +74 -0
  75. package/dist/types/components/checkbox-input/checkbox-input.d.ts +28 -2
  76. package/dist/types/components/date-input/date-input.d.ts +43 -1
  77. package/dist/types/components/email-input/email-input.d.ts +37 -3
  78. package/dist/types/components/general-input/general-input.d.ts +30 -0
  79. package/dist/types/components/number-input/number-input.d.ts +34 -3
  80. package/dist/types/components/password-input/password-input.d.ts +56 -7
  81. package/dist/types/components/radio-input/radio-input.d.ts +17 -1
  82. package/dist/types/components/select-input/select-input.d.ts +36 -3
  83. package/dist/types/components/tel-input/tel-input.d.ts +40 -5
  84. package/dist/types/components/text-input/text-input.d.ts +84 -0
  85. package/dist/types/components/toggle-checkbox-input/toggle-checkbox-input.d.ts +67 -0
  86. package/dist/types/components.d.ts +568 -9
  87. package/dist/types/utils/locale.utils.d.ts +9 -0
  88. package/dist/types/utils/types.d.ts +41 -9
  89. package/package.json +8 -1
  90. package/dist/cjs/checkbox-input_9.cjs.entry.js +0 -623
  91. package/dist/components/locale.utils.js +0 -29
  92. package/dist/esm/checkbox-input_9.entry.js +0 -611
  93. package/dist/general-input/p-1703fce3.entry.js +0 -1
  94. package/dist/general-input/p-d9f7fa2e.js +0 -1
  95. package/dist/general-input/p-dea0a4ac.entry.js +0 -1
  96. /package/dist/types/Users/{user/workspace/everymatrix → adrian.pripon/Documents/Work}/widgets-stencil/packages/general-input/.stencil/packages/general-input/stencil.config.d.ts +0 -0
@@ -1,611 +0,0 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-df80f936.js';
2
-
3
- const DEFAULT_LANGUAGE = 'en';
4
- const SUPPORTED_LANGUAGES = ['ro', 'en'];
5
- const TRANSLATIONS = {
6
- en: {
7
- dateError: 'The selected date should be between {min} and {max}',
8
- numberLengthError: 'The number should be between ${min} and ${max}',
9
- lengthError: `The length should be between {minLength} and {maxLength}`,
10
- requiredError: 'This input is required.',
11
- nextButton: 'Next',
12
- backButton: 'Back'
13
- },
14
- ro: {
15
- lengthError: `Cuvântul introdus este prea scurt. {minLength} and {maxLength}`,
16
- requiredError: 'Acest câmp este obligatoriu.'
17
- }
18
- };
19
- const translate = (key, customLang, values) => {
20
- const lang = customLang;
21
- let translation = TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
22
- if (values !== undefined) {
23
- for (const [key, value] of Object.entries(values.values)) {
24
- const regex = new RegExp(`{${key}}`, 'g');
25
- translation = translation.replace(regex, value);
26
- }
27
- }
28
- return translation;
29
- };
30
-
31
- const checkboxInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.checkbox__wrapper{display:flex;gap:10px;position:relative;align-items:baseline}.checkbox__error-message{position:absolute;top:calc(100% + 5px);left:0;color:red}";
32
-
33
- const CheckboxInput = class {
34
- constructor(hostRef) {
35
- registerInstance(this, hostRef);
36
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
37
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
38
- }
39
- validityChanged() {
40
- this.validityStateHandler({ valid: this.isValid, name: this.name });
41
- if (this.emitValue == true) {
42
- this.valueHandler({ name: this.name, value: this.value });
43
- }
44
- }
45
- validityStateHandler(inputStateEvent) {
46
- this.sendValidityState.emit(inputStateEvent);
47
- }
48
- emitValueHandler(newValue) {
49
- if (newValue == true && this.isValid) {
50
- this.valueHandler({ name: this.name, value: this.value });
51
- }
52
- }
53
- valueHandler(inputValueEvent) {
54
- this.sendInputValue.emit(inputValueEvent);
55
- }
56
- connectedCallback() {
57
- }
58
- handleClick() {
59
- this.value = this.inputReference.checked;
60
- this.errorMessage = this.setErrorMessage();
61
- this.isValid = this.setValidity();
62
- this.validityStateHandler({ valid: this.isValid, name: this.name });
63
- this.emitValueHandler(true);
64
- }
65
- setValidity() {
66
- return this.inputReference.validity.valid;
67
- }
68
- setErrorMessage() {
69
- if (this.inputReference.validity.valueMissing) {
70
- return translate('requiredError', this.language);
71
- }
72
- }
73
- render() {
74
- return h("div", { class: 'checkbox__wrapper' }, h("input", { type: "checkbox", id: `${this.name}__input`, ref: (el) => this.inputReference = el, name: this.name, required: this.validation.mandatory, value: 'jdjdj', onClick: () => this.handleClick() }), h("label", { htmlFor: `${this.name}__input` }, this.displayName, " ", this.validation.mandatory ? '*' : ''), h("small", { class: 'checkbox__error-message' }, this.errorMessage));
75
- }
76
- static get watchers() { return {
77
- "isValid": ["validityChanged"],
78
- "emitValue": ["emitValueHandler"]
79
- }; }
80
- };
81
- CheckboxInput.style = checkboxInputCss;
82
-
83
- const dateInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.date__wrapper{position:relative;display:flex;flex-direction:column-reverse;padding-top:10px}.date__label{color:#474747;font-size:16px;position:absolute;bottom:15px;left:5px;transform:translateY(-25px);transition:all 0.3s cubic-bezier(0.5, 0, 0.5, 1)}.date__label--required::after{content:\"*\";margin-left:5px;color:#666666}.date__input{width:inherit;padding:15px 6px;position:relative;border:none;border-bottom:3px solid #666666;background-color:transparent;color:#666666;font-size:16px;font-family:inherit}.date__input:focus{outline:none;box-shadow:0 5px 5px rgba(16, 15, 15, 0.1)}.date__input::placeholder{color:#666666}.date__input--invalid{border-bottom:3px solid #cc0000}.date__input:placeholder-shown+.date__label{opacity:0;visibility:hidden;transform:translateY(0)}.date__error-message{position:absolute;top:calc(100% + 5px);left:0;color:#cc0000}";
84
-
85
- const DateInput = class {
86
- constructor(hostRef) {
87
- registerInstance(this, hostRef);
88
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
89
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
90
- }
91
- validityChanged() {
92
- this.validityStateHandler({ valid: this.isValid, name: this.name });
93
- if (this.emitValue == true) {
94
- this.valueHandler({ name: this.name, value: this.value });
95
- }
96
- }
97
- validityStateHandler(inputStateEvent) {
98
- this.sendValidityState.emit(inputStateEvent);
99
- }
100
- emitValueHandler(newValue) {
101
- if (newValue == true && this.isValid) {
102
- this.valueHandler({ name: this.name, value: this.value });
103
- }
104
- }
105
- valueHandler(inputValueEvent) {
106
- this.sendInputValue.emit(inputValueEvent);
107
- }
108
- handleInput(event) {
109
- this.value = event.target.value;
110
- this.errorMessage = this.setErrorMessage();
111
- this.isValid = this.setValidity();
112
- this.validityStateHandler({ valid: this.isValid, name: this.name });
113
- this.emitValueHandler(true);
114
- }
115
- setValidity() {
116
- return this.inputReference.validity.valid;
117
- }
118
- setErrorMessage() {
119
- if (this.inputReference.validity.rangeUnderflow || this.inputReference.validity.rangeOverflow) {
120
- return translate('dateError', this.language, { values: { min: this.validation.min, max: this.validation.max } });
121
- }
122
- if (this.inputReference.validity.valueMissing) {
123
- return translate('requiredError', this.language);
124
- }
125
- }
126
- render() {
127
- return h("div", { class: 'date__wrapper' }, h("input", { id: `${this.name}__input`, type: 'date', class: `date__input`, value: this.defaultValue, placeholder: `${this.displayName} ${this.validation.mandatory ? '*' : ''}`, ref: (el) => this.inputReference = el, required: this.validation.mandatory, max: this.validation.max, min: this.validation.min, onInput: (e) => this.handleInput(e) }), h("label", { class: `date__label ${this.validation.mandatory ? 'date__label--required' : ''}}`, htmlFor: `${this.name}__input` }, this.displayName, " ", this.validation.mandatory ? '*' : ''), h("small", { class: 'date__error-message' }, this.errorMessage));
128
- }
129
- static get watchers() { return {
130
- "isValid": ["validityChanged"],
131
- "emitValue": ["emitValueHandler"]
132
- }; }
133
- };
134
- DateInput.style = dateInputCss;
135
-
136
- const emailInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.email__wrapper{position:relative;display:flex;flex-direction:column-reverse;padding-top:10px}.email__label{color:#474747;font-size:16px;position:absolute;bottom:15px;left:5px;transform:translateY(-25px);transition:all 0.3s cubic-bezier(0.5, 0, 0.5, 1)}.email__label--required::after{content:\"*\";margin-left:5px;color:#666666}.email__input{width:inherit;padding:15px 6px;position:relative;border:none;border-bottom:3px solid #666666;background-color:transparent;color:#666666;font-size:16px;font-family:inherit}.email__input:focus{outline:none;box-shadow:0 5px 5px rgba(16, 15, 15, 0.1)}.email__input::placeholder{color:#666666}.email__input--invalid{border-bottom:3px solid #cc0000}.email__input:placeholder-shown+.email__label{opacity:0;visibility:hidden;transform:translateY(0)}.email__error-message{position:absolute;top:calc(100% + 5px);left:0;color:#cc0000}";
137
-
138
- const EmailInput = class {
139
- constructor(hostRef) {
140
- registerInstance(this, hostRef);
141
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
142
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
143
- this.validationPattern = '';
144
- }
145
- validityChanged() {
146
- this.validityStateHandler({ valid: this.isValid, name: this.name });
147
- if (this.emitValue == true) {
148
- this.valueHandler({ name: this.name, value: this.value });
149
- }
150
- }
151
- validityStateHandler(inputStateEvent) {
152
- this.sendValidityState.emit(inputStateEvent);
153
- }
154
- emitValueHandler(newValue) {
155
- if (newValue == true && this.isValid) {
156
- this.valueHandler({ name: this.name, value: this.value });
157
- }
158
- }
159
- valueHandler(inputValueEvent) {
160
- this.sendInputValue.emit(inputValueEvent);
161
- }
162
- connectedCallback() {
163
- this.validationPattern = this.setPattern();
164
- }
165
- handleInput(event) {
166
- this.value = event.target.value;
167
- this.errorMessage = this.setErrorMessage();
168
- this.isValid = this.setValidity();
169
- this.validityStateHandler({ valid: this.isValid, name: this.name });
170
- this.emitValueHandler(true);
171
- }
172
- setValidity() {
173
- return this.inputReference.validity.valid;
174
- }
175
- setPattern() {
176
- var _a;
177
- if (((_a = this.validation.custom) === null || _a === void 0 ? void 0 : _a.length) > 0) {
178
- return this.validation.custom.find(customValidation => customValidation.rule === 'regex').pattern;
179
- }
180
- }
181
- setErrorMessage() {
182
- if (this.inputReference.validity.patternMismatch) {
183
- return this.validation.custom.find(customValidation => customValidation.rule === 'regex').errorMessage;
184
- }
185
- if (this.inputReference.validity.tooShort || this.inputReference.validity.tooLong) {
186
- return translate('lengthError', this.language, { values: { minLength: this.validation.minLength, maxLength: this.validation.maxLength } });
187
- }
188
- if (this.inputReference.validity.valueMissing) {
189
- return translate('requiredError', this.language);
190
- }
191
- }
192
- render() {
193
- return h("div", { class: 'email__wrapper' }, h("input", { id: `${this.name}__input`, type: 'email', class: `email__input`, value: this.defaultValue, placeholder: `${this.displayName} ${this.validation.mandatory ? '*' : ''}`, ref: (el) => this.inputReference = el, pattern: this.validationPattern, required: this.validation.mandatory, minlength: this.validation.minLength, maxlength: this.validation.maxLength, onInput: (e) => this.handleInput(e) }), h("label", { class: `email__label ${this.validation.mandatory ? 'email__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), h("small", { class: 'email__error-message' }, this.errorMessage));
194
- }
195
- static get watchers() { return {
196
- "isValid": ["validityChanged"],
197
- "emitValue": ["emitValueHandler"]
198
- }; }
199
- };
200
- EmailInput.style = emailInputCss;
201
-
202
- const numberInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.number__wrapper{position:relative;display:flex;flex-direction:column-reverse;padding-top:10px}.number__label{color:#474747;font-size:16px;position:absolute;bottom:15px;left:5px;transform:translateY(-25px);transition:all 0.3s cubic-bezier(0.5, 0, 0.5, 1)}.number__label--required::after{content:\"*\";margin-left:5px;color:#666666}.number__input{width:inherit;padding:15px 6px;position:relative;border:none;border-bottom:3px solid #666666;background-color:transparent;color:#666666;font-size:16px;font-family:inherit;-moz-appearance:textfield;}.number__input::-webkit-outer-spin-button,.number__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number__input:focus{outline:none;box-shadow:0 5px 5px rgba(16, 15, 15, 0.1)}.number__input::placeholder{color:#666666}.number__input--invalid{border-bottom:3px solid #cc0000}.number__input:placeholder-shown+.number__label{opacity:0;visibility:hidden;transform:translateY(0)}.number__error-message{position:absolute;top:calc(100% + 5px);left:0;color:#cc0000}";
203
-
204
- const NumberInput = class {
205
- constructor(hostRef) {
206
- registerInstance(this, hostRef);
207
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
208
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
209
- }
210
- validityChanged() {
211
- this.validityStateHandler({ valid: this.isValid, name: this.name });
212
- if (this.emitValue == true) {
213
- this.valueHandler({ name: this.name, value: this.value });
214
- }
215
- }
216
- validityStateHandler(inputStateEvent) {
217
- this.sendValidityState.emit(inputStateEvent);
218
- }
219
- emitValueHandler(newValue) {
220
- if (newValue == true && this.isValid) {
221
- this.valueHandler({ name: this.name, value: this.value });
222
- }
223
- }
224
- valueHandler(inputValueEvent) {
225
- this.sendInputValue.emit(inputValueEvent);
226
- }
227
- handleInput(event) {
228
- this.value = event.target.value;
229
- this.errorMessage = this.setErrorMessage();
230
- this.isValid = this.setValidity();
231
- this.validityStateHandler({ valid: this.isValid, name: this.name });
232
- this.emitValueHandler(true);
233
- }
234
- setValidity() {
235
- return this.inputReference.validity.valid;
236
- }
237
- setErrorMessage() {
238
- if (this.inputReference.validity.rangeUnderflow || this.inputReference.validity.rangeOverflow) {
239
- return translate('numberLengthError', this.language, { values: { min: this.validation.min, max: this.validation.max } });
240
- }
241
- if (this.inputReference.validity.valueMissing) {
242
- return translate('requiredError', this.language);
243
- }
244
- }
245
- render() {
246
- const invalidClass = this.isValid == true || this.isValid == undefined ? '' : 'number__input--invalid';
247
- return h("div", { class: 'number__wrapper' }, h("input", { ref: (el) => this.inputReference = el, type: "number", value: this.defaultValue, id: `${this.name}__input`, class: `number__input ${invalidClass}`, placeholder: `${this.displayName} ${this.validation.mandatory ? '*' : ''}`, required: this.validation.mandatory, max: this.validation.max, min: this.validation.min, onInput: (e) => this.handleInput(e) }), h("label", { class: `number__label ${this.validation.mandatory ? 'number__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), h("small", { class: 'number__error-message' }, this.errorMessage));
248
- }
249
- static get watchers() { return {
250
- "isValid": ["validityChanged"],
251
- "emitValue": ["emitValueHandler"]
252
- }; }
253
- };
254
- NumberInput.style = numberInputCss;
255
-
256
- const passwordInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.password__wrapper{position:relative;display:flex;flex-direction:column-reverse;padding-top:10px}.password__label{color:#474747;font-size:16px;position:absolute;bottom:15px;left:5px;transform:translateY(-25px);transition:all 0.3s cubic-bezier(0.5, 0, 0.5, 1)}.password__label--required::after{content:\"*\";margin-left:5px;color:#666666}.password__input{width:inherit;padding:15px 6px;position:relative;border:none;border-bottom:3px solid #666666;background-color:transparent;color:#666666;font-size:16px;font-family:inherit}.password__input:focus{outline:none;box-shadow:0 5px 5px rgba(16, 15, 15, 0.1)}.password__input::placeholder{color:#666666}.password__input--invalid{border-bottom:3px solid #cc0000}.password__input:placeholder-shown+.password__label{opacity:0;visibility:hidden;transform:translateY(0)}.password__error-message{position:absolute;top:calc(100% + 5px);left:0;color:#cc0000}";
257
-
258
- const PasswordInput = class {
259
- constructor(hostRef) {
260
- registerInstance(this, hostRef);
261
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
262
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
263
- this.validationPattern = '';
264
- }
265
- validityChanged() {
266
- this.validityStateHandler({ valid: this.isValid, name: this.name });
267
- if (this.emitValue == true) {
268
- this.valueHandler({ name: this.name, value: this.value });
269
- }
270
- }
271
- validityStateHandler(inputStateEvent) {
272
- this.sendValidityState.emit(inputStateEvent);
273
- }
274
- emitValueHandler(newValue) {
275
- if (newValue == true && this.isValid) {
276
- this.valueHandler({ name: this.name, value: this.value });
277
- }
278
- }
279
- valueHandler(inputValueEvent) {
280
- this.sendInputValue.emit(inputValueEvent);
281
- }
282
- connectedCallback() {
283
- this.validationPattern = this.setPattern();
284
- }
285
- handleInput(event) {
286
- this.value = event.target.value;
287
- this.errorMessage = this.setErrorMessage();
288
- this.isValid = this.setValidity();
289
- this.validityStateHandler({ valid: this.isValid, name: this.name });
290
- this.emitValueHandler(true);
291
- }
292
- setValidity() {
293
- return this.inputReference.validity.valid;
294
- }
295
- setPattern() {
296
- var _a;
297
- if (((_a = this.validation.custom) === null || _a === void 0 ? void 0 : _a.length) > 0) {
298
- return this.validation.custom.find(customValidation => customValidation.rule === 'regex').pattern;
299
- }
300
- }
301
- setErrorMessage() {
302
- if (this.inputReference.validity.patternMismatch) {
303
- return this.validation.custom.find(customValidation => customValidation.rule === 'regex').errorMessage;
304
- }
305
- if (this.inputReference.validity.tooShort || this.inputReference.validity.tooLong) {
306
- return translate('lengthError', this.language, { values: { minLength: this.validation.minLength, maxLength: this.validation.maxLength } });
307
- }
308
- if (this.inputReference.validity.valueMissing) {
309
- return translate('requiredError', this.language);
310
- }
311
- }
312
- render() {
313
- const invalidClass = this.isValid == true || this.isValid == undefined ? '' : 'password__input--invalid';
314
- return h("div", { class: 'password__wrapper' }, h("input", { type: "password", id: `${this.name}__input`, class: `password__input ${invalidClass}`, name: this.name, ref: (el) => this.inputReference = el, required: this.validation.mandatory, maxlength: this.validation.maxLength, minlength: this.validation.minLength, pattern: this.validationPattern, placeholder: `${this.displayName} ${this.validation.mandatory ? '*' : ''}`, onBlur: (e) => this.handleInput(e) }), h("label", { class: `password__label ${this.validation.mandatory ? 'password__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), h("small", { class: 'password__error-message' }, this.errorMessage));
315
- }
316
- static get watchers() { return {
317
- "isValid": ["validityChanged"],
318
- "emitValue": ["emitValueHandler"]
319
- }; }
320
- };
321
- PasswordInput.style = passwordInputCss;
322
-
323
- const radioInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.radio__fieldset{border:none;position:relative}.radio__wrapper{display:flex;gap:5px}.radio__error-message{position:absolute;top:calc(100% + 5px);left:0;color:red}";
324
-
325
- const RadioInput = class {
326
- constructor(hostRef) {
327
- registerInstance(this, hostRef);
328
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
329
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
330
- }
331
- validityChanged() {
332
- this.validityStateHandler({ valid: this.isValid, name: this.name });
333
- if (this.emitValue == true) {
334
- this.valueHandler({ name: this.name, value: this.value });
335
- }
336
- }
337
- emitValueHandler(newValue) {
338
- if (newValue == true && this.isValid) {
339
- this.valueHandler({ name: this.name, value: this.value });
340
- }
341
- }
342
- valueHandler(inputValueEvent) {
343
- this.sendInputValue.emit(inputValueEvent);
344
- }
345
- validityStateHandler(inputStateEvent) {
346
- this.sendValidityState.emit(inputStateEvent);
347
- }
348
- connectedCallback() {
349
- }
350
- handleClick(event) {
351
- this.value = event.target.value;
352
- this.isValid = this.setValidity();
353
- this.errorMessage = this.setErrorMessage();
354
- this.validityStateHandler({ valid: this.isValid, name: this.name });
355
- this.emitValueHandler(true);
356
- }
357
- setValidity() {
358
- return this.inputReference.validity.valid;
359
- }
360
- setErrorMessage() {
361
- if (this.inputReference.validity.valueMissing) {
362
- return translate('requiredError', this.language);
363
- }
364
- }
365
- render() {
366
- return h("fieldset", { class: 'radio__fieldset' }, h("legend", { class: 'radio__legend' }, this.displayName, ":"), this.optionsGroup.map(option => h("div", { class: 'radio__wrapper' }, h("input", { type: "radio", class: 'radio__input', id: `${option.label}__input`, ref: (el) => this.inputReference = el, value: option.value, name: this.name, required: this.validation.mandatory, onClick: (e) => this.handleClick(e) }), h("label", { htmlFor: `${option.label}__input` }, option.label))), h("small", { class: 'radio__error-message' }, this.errorMessage));
367
- }
368
- static get watchers() { return {
369
- "isValid": ["validityChanged"],
370
- "emitValue": ["emitValueHandler"]
371
- }; }
372
- };
373
- RadioInput.style = radioInputCss;
374
-
375
- const selectInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.select__wrapper{position:relative;display:flex;padding-top:10px;width:100%}.select__label{color:#474747;font-size:16px;position:absolute;bottom:15px;left:5px;transform:translateY(-25px);transition:all 0.3s cubic-bezier(0.5, 0, 0.5, 1)}.select__label--hidden{opacity:0;visibility:hidden;transform:translateY(0)}.select__input{width:inherit;padding:15px 6px;position:relative;border:none;border-bottom:3px solid #666666;background-color:transparent;color:#666666;font-size:16px;font-family:inherit}.select__input:focus{outline:none;box-shadow:0 5px 5px rgba(16, 15, 15, 0.1)}.select__error-message{position:absolute;top:calc(100% + 5px);left:0;color:#cc0000}";
376
-
377
- const SelectInput = class {
378
- constructor(hostRef) {
379
- registerInstance(this, hostRef);
380
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
381
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
382
- /**
383
- * Options of the input.
384
- */
385
- this.options = [];
386
- }
387
- validityChanged() {
388
- this.validityStateHandler({ valid: this.isValid, name: this.name });
389
- if (this.emitValue == true) {
390
- this.valueHandler({ name: this.name, value: this.value });
391
- }
392
- }
393
- validityStateHandler(inputStateEvent) {
394
- this.sendValidityState.emit(inputStateEvent);
395
- }
396
- emitValueHandler(newValue) {
397
- if (newValue == true && this.isValid) {
398
- this.valueHandler({ name: this.name, value: this.value });
399
- }
400
- }
401
- valueHandler(inputValueEvent) {
402
- this.sendInputValue.emit(inputValueEvent);
403
- }
404
- connectedCallback() {
405
- this.displayedOptions = this.options;
406
- }
407
- componentWillLoad() {
408
- if (this.action && !this.options.length) {
409
- if (this.action.split(" ")[0] == 'GET') {
410
- return this.getOptions().then((options) => {
411
- this.displayedOptions = options.countries.map(option => {
412
- return { label: option.Name, value: option.Alpha2Code };
413
- });
414
- });
415
- }
416
- }
417
- }
418
- getOptions() {
419
- // TEMPORARY FOR DEMO PURPOSES UNTIL NORWAY CONFIGURES AN ACTUAL ENDPOINT...
420
- const url = new URL("https://demo-api.stage.norway.everymatrix.com/v1/player/countries");
421
- return new Promise((resolve, reject) => {
422
- fetch(url.href)
423
- .then((res) => res.json())
424
- .then((options) => {
425
- resolve(options);
426
- }).catch((err) => {
427
- console.error(err);
428
- reject(err);
429
- });
430
- });
431
- }
432
- handleChange(event) {
433
- this.value = event.target.value;
434
- this.errorMessage = this.setErrorMessage();
435
- this.isValid = this.setValidity();
436
- this.validityStateHandler({ valid: this.isValid, name: this.name });
437
- this.emitValueHandler(true);
438
- this.inputReference.previousElementSibling.classList.remove('select__label--hidden');
439
- }
440
- setValidity() {
441
- return this.inputReference.validity.valid;
442
- }
443
- setErrorMessage() {
444
- if (this.inputReference.validity.valueMissing) {
445
- return translate('requiredError', this.language);
446
- }
447
- }
448
- render() {
449
- console.log('RENDER');
450
- return h("div", { class: 'select__wrapper' }, h("label", { class: 'select__label select__label--hidden', htmlFor: `${this.name}__input` }, this.displayName, ":"), h("select", { ref: (el) => this.inputReference = el, name: this.name, id: `${this.name}__input`, required: this.validation.mandatory, class: 'select__input', onChange: (e) => this.handleChange(e) }, h("option", { value: "", selected: true, disabled: true }, " ", this.displayName, " "), this.displayedOptions.map(option => {
451
- return h("option", { value: option.value }, " ", option.label, " ");
452
- })), h("small", { class: 'select__error-message' }, this.errorMessage));
453
- }
454
- static get watchers() { return {
455
- "isValid": ["validityChanged"],
456
- "emitValue": ["emitValueHandler"]
457
- }; }
458
- };
459
- SelectInput.style = selectInputCss;
460
-
461
- const telInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.tel__wrapper{position:relative;display:flex;flex-direction:column-reverse;padding-top:10px}.tel__label{color:#474747;font-size:16px;position:absolute;bottom:15px;left:5px;transform:translateY(-25px);transition:all 0.3s cubic-bezier(0.5, 0, 0.5, 1)}.tel__label--required::after{content:\"*\";margin-left:5px;color:#666666}.tel__input{width:inherit;padding:15px 6px;position:relative;border:none;border-bottom:3px solid #666666;background-color:transparent;color:#666666;font-size:16px;font-family:inherit;-moz-appearance:textfield;}.tel__input::-webkit-outer-spin-button,.tel__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tel__input:focus{outline:none;box-shadow:0 5px 5px rgba(16, 15, 15, 0.1)}.tel__input::placeholder{color:#666666}.tel__input--invalid{border-bottom:3px solid #cc0000}.tel__input:placeholder-shown+.tel__label{opacity:0;visibility:hidden;transform:translateY(0)}.tel__error-message{position:absolute;top:calc(100% + 5px);left:0;color:#cc0000}";
462
-
463
- const TelInput = class {
464
- constructor(hostRef) {
465
- registerInstance(this, hostRef);
466
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
467
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
468
- this.validationPattern = '';
469
- }
470
- validityChanged() {
471
- this.validityStateHandler({ valid: this.isValid, name: this.name });
472
- if (this.emitValue == true) {
473
- this.valueHandler({ name: this.name, value: this.value });
474
- }
475
- }
476
- validityStateHandler(inputStateEvent) {
477
- this.sendValidityState.emit(inputStateEvent);
478
- }
479
- emitValueHandler(newValue) {
480
- if (newValue == true && this.isValid) {
481
- this.valueHandler({ name: this.name, value: this.value });
482
- }
483
- }
484
- valueHandler(inputValueEvent) {
485
- this.sendInputValue.emit(inputValueEvent);
486
- }
487
- connectedCallback() {
488
- this.validationPattern = this.setPattern();
489
- }
490
- handleInput(event) {
491
- this.value = event.target.value;
492
- this.errorMessage = this.setErrorMessage();
493
- this.isValid = this.setValidity();
494
- this.validityStateHandler({ valid: this.isValid, name: this.name });
495
- this.emitValueHandler(true);
496
- }
497
- setValidity() {
498
- return this.inputReference.validity.valid;
499
- }
500
- setPattern() {
501
- var _a;
502
- if (((_a = this.validation.custom) === null || _a === void 0 ? void 0 : _a.length) > 0) {
503
- return this.validation.custom.find(customValidation => customValidation.rule === 'regex').pattern;
504
- }
505
- }
506
- setErrorMessage() {
507
- if (this.inputReference.validity.patternMismatch) {
508
- return this.validation.custom.find(customValidation => customValidation.rule === 'regex').errorMessage;
509
- }
510
- if (this.inputReference.validity.tooShort || this.inputReference.validity.tooLong) {
511
- return translate('lengthError', this.language, { values: { minLength: this.validation.minLength, maxLength: this.validation.maxLength } });
512
- }
513
- if (this.inputReference.validity.valueMissing) {
514
- return translate('requiredError', this.language);
515
- }
516
- }
517
- render() {
518
- const invalidClass = this.isValid == true || this.isValid == undefined ? '' : 'tel__input--invalid';
519
- return h("div", { class: 'tel__wrapper' }, h("input", { type: "tel", ref: (el) => this.inputReference = el, id: `${this.name}__input`, value: this.defaultValue, class: `tel__input ${invalidClass}`, placeholder: `${this.displayName} ${this.validation.mandatory ? '*' : ''}`, required: this.validation.mandatory, minlength: this.validation.minLength, maxlength: this.validation.maxLength, pattern: this.validationPattern, onInput: (e) => this.handleInput(e) }), h("label", { class: `tel__label ${this.validation.mandatory ? 'tel__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), h("small", { class: 'tel__error-message' }, this.errorMessage));
520
- }
521
- static get watchers() { return {
522
- "isValid": ["validityChanged"],
523
- "emitValue": ["emitValueHandler"]
524
- }; }
525
- };
526
- TelInput.style = telInputCss;
527
-
528
- const textInputCss = "*,*::before,*::after{padding:0;margin:0;box-sizing:border-box}.text__wrapper{position:relative;display:flex;flex-direction:column-reverse;padding-top:10px}.text__label{color:#474747;font-size:16px;position:absolute;bottom:15px;left:5px;transform:translateY(-25px);transition:all 0.3s cubic-bezier(0.5, 0, 0.5, 1)}.text__label--required::after{content:\"*\";margin-left:5px;color:#666666}.text__input{width:inherit;padding:15px 6px;position:relative;border:none;border-bottom:3px solid #666666;background-color:transparent;color:#666666;font-size:16px;font-family:inherit}.text__input:focus{outline:none;box-shadow:0 5px 5px rgba(16, 15, 15, 0.1)}.text__input::placeholder{color:#666666}.text__input--invalid{border-bottom:3px solid #cc0000}.text__input:placeholder-shown+.text__label{opacity:0;visibility:hidden;transform:translateY(0)}.text__error-message{position:absolute;top:calc(100% + 5px);left:0;color:#cc0000}";
529
-
530
- const TextInput = class {
531
- constructor(hostRef) {
532
- registerInstance(this, hostRef);
533
- this.sendValidityState = createEvent(this, "sendValidityState", 7);
534
- this.sendInputValue = createEvent(this, "sendInputValue", 7);
535
- /**
536
- * Default value for the input.
537
- */
538
- this.defaultValue = '';
539
- this.errorMessage = '';
540
- this.value = '';
541
- this.customRules = [];
542
- this.validationPattern = '';
543
- }
544
- validityChanged() {
545
- if (this.emitValue == true) {
546
- this.valueHandler({ name: this.name, value: this.value });
547
- }
548
- }
549
- validityStateHandler(inputStateEvent) {
550
- this.sendValidityState.emit(inputStateEvent);
551
- }
552
- emitValueHandler(newValue) {
553
- if (newValue == true && this.isValid) {
554
- this.valueHandler({ name: this.name, value: this.value });
555
- }
556
- }
557
- valueHandler(inputValueEvent) {
558
- this.sendInputValue.emit(inputValueEvent);
559
- }
560
- connectedCallback() {
561
- // @TODO do something with customRules !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
562
- this.customRules = this.setCustomRules();
563
- this.validationPattern = this.setPattern();
564
- }
565
- handleInput(event) {
566
- this.value = event.target.value;
567
- this.isValid = this.setValidity();
568
- this.errorMessage = this.setErrorMessage();
569
- this.validityStateHandler({ valid: this.isValid, name: this.name });
570
- this.emitValueHandler(true);
571
- }
572
- setValidity() {
573
- return this.inputReference.validity.valid;
574
- }
575
- // @TODO type here
576
- setCustomRules() {
577
- var _a;
578
- if (((_a = this.validation.custom) === null || _a === void 0 ? void 0 : _a.length) > 0) {
579
- return this.validation.custom.filter(customValidation => customValidation.rule !== 'regex');
580
- }
581
- }
582
- setPattern() {
583
- var _a;
584
- if (((_a = this.validation.custom) === null || _a === void 0 ? void 0 : _a.length) > 0) {
585
- return this.validation.custom.find(customValidation => customValidation.rule === 'regex').pattern;
586
- }
587
- }
588
- setErrorMessage() {
589
- if (this.inputReference.validity.patternMismatch) {
590
- return this.validation.custom.find(customValidation => customValidation.rule === 'regex').errorMessage;
591
- }
592
- if (this.inputReference.validity.tooShort || this.inputReference.validity.tooLong) {
593
- return translate('lengthError', this.language, { values: { minLength: this.validation.minLength, maxLength: this.validation.maxLength } });
594
- }
595
- if (this.inputReference.validity.valueMissing) {
596
- return translate('requiredError', this.language);
597
- }
598
- }
599
- render() {
600
- const invalidClass = this.isValid == true || this.isValid == undefined ? '' : 'text__input--invalid';
601
- console.log('this', this.name, this.defaultValue, this.displayName);
602
- return h("div", { class: 'text__wrapper' }, h("input", { id: `${this.name}__input`, value: this.defaultValue, type: 'text', class: `text__input ${invalidClass}`, placeholder: `${this.displayName} ${this.validation.mandatory ? '*' : ''}`, ref: (el) => this.inputReference = el, pattern: this.validationPattern, required: this.validation.mandatory, minlength: this.validation.minLength, maxlength: this.validation.maxLength, onBlur: (e) => { this.handleInput(e); } }), h("label", { class: `text__label ${this.validation.mandatory ? 'text__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), h("small", { class: 'text__error-message' }, this.errorMessage));
603
- }
604
- static get watchers() { return {
605
- "isValid": ["validityChanged"],
606
- "emitValue": ["emitValueHandler"]
607
- }; }
608
- };
609
- TextInput.style = textInputCss;
610
-
611
- export { CheckboxInput as checkbox_input, DateInput as date_input, EmailInput as email_input, NumberInput as number_input, PasswordInput as password_input, RadioInput as radio_input, SelectInput as select_input, TelInput as tel_input, TextInput as text_input };