@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
@@ -0,0 +1,324 @@
1
+ import { Component, h, Prop, State, Event, Listen } from '@stencil/core';
2
+ import { translate } from '../../utils/locale.utils';
3
+ import tooltipIcon from '../../utils/tooltipIcon.svg';
4
+ export class ToggleCheckboxInput {
5
+ constructor() {
6
+ /**
7
+ * Default value for the input.
8
+ */
9
+ this.defaultValue = '';
10
+ /**
11
+ * Client custom styling via inline style
12
+ */
13
+ this.clientStyling = '';
14
+ this.limitStylingAppends = false;
15
+ this.showTooltip = false;
16
+ this.value = '';
17
+ this.setClientStyling = () => {
18
+ let sheet = document.createElement('style');
19
+ sheet.innerHTML = this.clientStyling;
20
+ this.stylingContainer.prepend(sheet);
21
+ };
22
+ }
23
+ validityStateHandler(inputStateEvent) {
24
+ this.sendValidityState.emit(inputStateEvent);
25
+ }
26
+ valueHandler(inputValueEvent) {
27
+ this.sendInputValue.emit(inputValueEvent);
28
+ }
29
+ handleClickOutside(event) {
30
+ if (event.composedPath()[0] === this.tooltipIconReference)
31
+ return;
32
+ if (event.composedPath()[0] !== this.tooltipReference)
33
+ this.showTooltip = false;
34
+ }
35
+ componentDidRender() {
36
+ // start custom styling area
37
+ if (!this.limitStylingAppends && this.stylingContainer) {
38
+ if (this.clientStyling)
39
+ this.setClientStyling();
40
+ this.limitStylingAppends = true;
41
+ }
42
+ // end custom styling area
43
+ }
44
+ handleClick() {
45
+ this.showFields = this.checkboxReference.checked;
46
+ this.errorMessage = this.setErrorMessage();
47
+ this.isValid = this.setValidity();
48
+ }
49
+ setValidity() {
50
+ return this.checkboxReference.validity.valid;
51
+ }
52
+ setErrorMessage() {
53
+ if (this.checkboxReference.validity.valueMissing) {
54
+ return translate('requiredError', this.language);
55
+ }
56
+ }
57
+ renderLabel() {
58
+ return (h("label", { class: 'togglecheckbox__label', htmlFor: `${this.name}__input` },
59
+ h("div", { class: 'togglecheckbox__label-text', innerHTML: `${this.displayName} ${this.validation.mandatory ? '*' : ''}` })));
60
+ }
61
+ renderTooltip() {
62
+ if (this.showTooltip) {
63
+ return (h("div", { class: `togglecheckbox__tooltip ${this.showTooltip ? 'visible' : ''}`, ref: (el) => this.tooltipReference = el, innerHTML: this.tooltip }));
64
+ }
65
+ return null;
66
+ }
67
+ render() {
68
+ return h("div", { class: `togglecheckbox__wrapper ${this.name}__input`, ref: el => this.stylingContainer = el },
69
+ h("div", { class: 'togglecheckbox__wrapper--flex' },
70
+ h("input", { class: 'togglecheckbox__input', type: "checkbox", id: `${this.name}__input`, ref: (el) => this.checkboxReference = el, name: this.name, checked: this.defaultValue === "true", readOnly: this.autofilled, required: this.validation.mandatory, value: this.value, onClick: () => this.handleClick() }),
71
+ this.renderLabel()),
72
+ h("small", { class: 'togglecheckbox__error-message' }, this.errorMessage),
73
+ h("div", { class: 'togglecheckbox__wrapper--relative' },
74
+ this.tooltip &&
75
+ h("img", { class: 'togglecheckbox__tooltip-icon', src: tooltipIcon, alt: "", ref: (el) => this.tooltipIconReference = el, onClick: () => this.showTooltip = !this.showTooltip }),
76
+ this.renderTooltip()),
77
+ h("div", { class: `togglecheckbox__fields-wrapper ${this.showFields ? '' : 'hidden'}` }, this.options.map(subfield => {
78
+ return h("general-input", { type: subfield.inputType, name: subfield.name, displayName: subfield.displayName, validation: subfield.validate, action: subfield.action || null, defaultValue: subfield.defaultValue, autofilled: subfield.autofill, emitValue: this.emitValue, language: this.language, "client-styling": this.clientStyling, tooltip: subfield.tooltip, placeholder: subfield.placeholder == null ? '' : subfield.placeholder });
79
+ })));
80
+ }
81
+ static get is() { return "toggle-checkbox-input"; }
82
+ static get encapsulation() { return "shadow"; }
83
+ static get originalStyleUrls() { return {
84
+ "$": ["toggle-checkbox-input.scss"]
85
+ }; }
86
+ static get styleUrls() { return {
87
+ "$": ["toggle-checkbox-input.css"]
88
+ }; }
89
+ static get properties() { return {
90
+ "name": {
91
+ "type": "string",
92
+ "mutable": false,
93
+ "complexType": {
94
+ "original": "string",
95
+ "resolved": "string",
96
+ "references": {}
97
+ },
98
+ "required": false,
99
+ "optional": false,
100
+ "docs": {
101
+ "tags": [],
102
+ "text": "Name of the input."
103
+ },
104
+ "attribute": "name",
105
+ "reflect": true
106
+ },
107
+ "displayName": {
108
+ "type": "string",
109
+ "mutable": false,
110
+ "complexType": {
111
+ "original": "string",
112
+ "resolved": "string",
113
+ "references": {}
114
+ },
115
+ "required": false,
116
+ "optional": false,
117
+ "docs": {
118
+ "tags": [],
119
+ "text": "Name of input to be shown to the user."
120
+ },
121
+ "attribute": "display-name",
122
+ "reflect": true
123
+ },
124
+ "defaultValue": {
125
+ "type": "string",
126
+ "mutable": false,
127
+ "complexType": {
128
+ "original": "string",
129
+ "resolved": "string",
130
+ "references": {}
131
+ },
132
+ "required": false,
133
+ "optional": false,
134
+ "docs": {
135
+ "tags": [],
136
+ "text": "Default value for the input."
137
+ },
138
+ "attribute": "default-value",
139
+ "reflect": true,
140
+ "defaultValue": "''"
141
+ },
142
+ "options": {
143
+ "type": "unknown",
144
+ "mutable": false,
145
+ "complexType": {
146
+ "original": "RegCfgContentField[]",
147
+ "resolved": "RegCfgContentField[]",
148
+ "references": {
149
+ "RegCfgContentField": {
150
+ "location": "import",
151
+ "path": "../../utils/types"
152
+ }
153
+ }
154
+ },
155
+ "required": false,
156
+ "optional": false,
157
+ "docs": {
158
+ "tags": [],
159
+ "text": "Options of the input."
160
+ }
161
+ },
162
+ "autofilled": {
163
+ "type": "boolean",
164
+ "mutable": false,
165
+ "complexType": {
166
+ "original": "boolean",
167
+ "resolved": "boolean",
168
+ "references": {}
169
+ },
170
+ "required": false,
171
+ "optional": false,
172
+ "docs": {
173
+ "tags": [],
174
+ "text": "Boolean. Determines if input should be readonly."
175
+ },
176
+ "attribute": "autofilled",
177
+ "reflect": true
178
+ },
179
+ "tooltip": {
180
+ "type": "string",
181
+ "mutable": false,
182
+ "complexType": {
183
+ "original": "string",
184
+ "resolved": "string",
185
+ "references": {}
186
+ },
187
+ "required": false,
188
+ "optional": false,
189
+ "docs": {
190
+ "tags": [],
191
+ "text": "Tooltip text."
192
+ },
193
+ "attribute": "tooltip",
194
+ "reflect": true
195
+ },
196
+ "validation": {
197
+ "type": "unknown",
198
+ "mutable": false,
199
+ "complexType": {
200
+ "original": "ValidationSchema",
201
+ "resolved": "ValidationSchema",
202
+ "references": {
203
+ "ValidationSchema": {
204
+ "location": "import",
205
+ "path": "../../utils/types"
206
+ }
207
+ }
208
+ },
209
+ "required": false,
210
+ "optional": false,
211
+ "docs": {
212
+ "tags": [],
213
+ "text": "Object of validation rules for the input."
214
+ }
215
+ },
216
+ "language": {
217
+ "type": "string",
218
+ "mutable": false,
219
+ "complexType": {
220
+ "original": "string",
221
+ "resolved": "string",
222
+ "references": {}
223
+ },
224
+ "required": false,
225
+ "optional": false,
226
+ "docs": {
227
+ "tags": [],
228
+ "text": "Currently selected language."
229
+ },
230
+ "attribute": "language",
231
+ "reflect": true
232
+ },
233
+ "emitValue": {
234
+ "type": "boolean",
235
+ "mutable": false,
236
+ "complexType": {
237
+ "original": "boolean",
238
+ "resolved": "boolean",
239
+ "references": {}
240
+ },
241
+ "required": false,
242
+ "optional": false,
243
+ "docs": {
244
+ "tags": [],
245
+ "text": "State passed down from the parent element. Will trigger the input to send it's value through an event."
246
+ },
247
+ "attribute": "emit-value",
248
+ "reflect": true
249
+ },
250
+ "clientStyling": {
251
+ "type": "string",
252
+ "mutable": false,
253
+ "complexType": {
254
+ "original": "string",
255
+ "resolved": "string",
256
+ "references": {}
257
+ },
258
+ "required": false,
259
+ "optional": false,
260
+ "docs": {
261
+ "tags": [],
262
+ "text": "Client custom styling via inline style"
263
+ },
264
+ "attribute": "client-styling",
265
+ "reflect": true,
266
+ "defaultValue": "''"
267
+ }
268
+ }; }
269
+ static get states() { return {
270
+ "errorMessage": {},
271
+ "isValid": {},
272
+ "limitStylingAppends": {},
273
+ "showTooltip": {},
274
+ "showFields": {}
275
+ }; }
276
+ static get events() { return [{
277
+ "method": "sendValidityState",
278
+ "name": "sendValidityState",
279
+ "bubbles": true,
280
+ "cancelable": true,
281
+ "composed": true,
282
+ "docs": {
283
+ "tags": [],
284
+ "text": ""
285
+ },
286
+ "complexType": {
287
+ "original": "InputStateEvent",
288
+ "resolved": "InputStateEvent",
289
+ "references": {
290
+ "InputStateEvent": {
291
+ "location": "import",
292
+ "path": "../../utils/types"
293
+ }
294
+ }
295
+ }
296
+ }, {
297
+ "method": "sendInputValue",
298
+ "name": "sendInputValue",
299
+ "bubbles": true,
300
+ "cancelable": true,
301
+ "composed": true,
302
+ "docs": {
303
+ "tags": [],
304
+ "text": ""
305
+ },
306
+ "complexType": {
307
+ "original": "InputValueEvent",
308
+ "resolved": "InputValueEvent",
309
+ "references": {
310
+ "InputValueEvent": {
311
+ "location": "import",
312
+ "path": "../../utils/types"
313
+ }
314
+ }
315
+ }
316
+ }]; }
317
+ static get listeners() { return [{
318
+ "name": "click",
319
+ "method": "handleClickOutside",
320
+ "target": "document",
321
+ "capture": false,
322
+ "passive": false
323
+ }]; }
324
+ }
@@ -1,22 +1,46 @@
1
1
  const DEFAULT_LANGUAGE = 'en';
2
- const SUPPORTED_LANGUAGES = ['ro', 'en'];
3
- const TRANSLATIONS = {
4
- en: {
5
- dateError: 'The selected date should be between {min} and {max}',
6
- numberLengthError: 'The number should be between ${min} and ${max}',
7
- lengthError: `The length should be between {minLength} and {maxLength}`,
8
- requiredError: 'This input is required.',
9
- nextButton: 'Next',
10
- backButton: 'Back'
2
+ export const TRANSLATIONS = {
3
+ "en": {
4
+ "dateError": 'The selected date should be between {min} and {max}',
5
+ "dateError2": 'The selected date is not within the accepted range',
6
+ "numberLengthError": 'The number should be between {min} and {max}',
7
+ "lengthError": `The length should be between {minLength} and {maxLength}`,
8
+ "requiredError": 'This input is required.',
9
+ "invalidOriginalPasswordError": "Initial password field does not validate all criteria.",
10
+ "passwordStrength": "Password strength",
11
+ "passwordStrengthWeak": "is not adequate",
12
+ "passwordStrengthStrong": "is adequate",
13
+ "SpecialCharactersNotAllowed": 'Should not contain special characters',
14
+ "InvalidEmailFormat": "Invalid email format.",
15
+ "EmailNotMatching": "Emails not matching!",
16
+ "PasswordNotMatching": "Passwords not matching",
17
+ "MustIncludeNumber": "include a number",
18
+ "MustContainCapital": "contain capital letters",
19
+ "MustIncludePunctation": "punctuation",
20
+ "OnlyNumbers": "Should contains only numbers."
11
21
  },
12
- ro: {
13
- lengthError: `Cuvântul introdus este prea scurt. {minLength} and {maxLength}`,
14
- requiredError: 'Acest câmp este obligatoriu.'
22
+ "hu": {
23
+ "dateError": 'A választott dátumnak {min} és {max} között kell lennie',
24
+ "numberLengthError": 'A számnak {min} és {max} között kell lennie',
25
+ "lengthError": `A hossznak {minLength} és {maxLength} között kell lennie`,
26
+ "requiredError": 'Ez a beviteli mező kötelező.',
27
+ "invalidOriginalPasswordError": "Initial password field does not validate all criteria.",
28
+ "passwordStrength": "Jelszó erőssége",
29
+ "passwordStrengthWeak": "nem megfelelő",
30
+ "passwordStrengthStrong": "megfelelő",
31
+ "SpecialCharactersNotAllowed": 'Nem tartalmazhat speciális karaktereket',
32
+ "InvalidEmailFormat": "Érvénytelen e-mail formátum.",
33
+ "EmailNotMatching": "Az e-mailek nem egyeznek!",
34
+ "PasswordNotMatching": "A jelszavak nem egyeznek",
35
+ "MustIncludeNumber": "tartalmaznia kell egy számot",
36
+ "MustContainCapital": "nagybetűket kell tartalmaznia",
37
+ "MustIncludePunctation": "írásjelet",
38
+ "OnlyNumbers": "Csak számokat kell tartalmaznia."
15
39
  }
16
40
  };
17
41
  export const translate = (key, customLang, values) => {
18
42
  const lang = customLang;
19
- let translation = TRANSLATIONS[lang !== undefined && SUPPORTED_LANGUAGES.includes(lang) ? lang : DEFAULT_LANGUAGE][key];
43
+ let translation = TRANSLATIONS[lang !== undefined ? lang : DEFAULT_LANGUAGE][key];
20
44
  if (values !== undefined) {
21
45
  for (const [key, value] of Object.entries(values.values)) {
22
46
  const regex = new RegExp(`{${key}}`, 'g');
@@ -25,3 +49,18 @@ export const translate = (key, customLang, values) => {
25
49
  }
26
50
  return translation;
27
51
  };
52
+ export const getTranslations = (url) => {
53
+ // fetch url, get the data, replace the TRANSLATIONS content
54
+ return new Promise((resolve) => {
55
+ fetch(url)
56
+ .then((res) => res.json())
57
+ .then((data) => {
58
+ Object.keys(data).forEach((item) => {
59
+ for (let key in data[item]) {
60
+ TRANSLATIONS[item][key] = data[item][key];
61
+ }
62
+ });
63
+ resolve(true);
64
+ });
65
+ });
66
+ };
@@ -0,0 +1,5 @@
1
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="6" cy="6" r="5.5" stroke="#979797"/>
3
+ <rect x="5" y="5" width="2" height="5" fill="#979797"/>
4
+ <circle cx="6" cy="3" r="1" fill="#979797"/>
5
+ </svg>