@moni-labs/moni-ui 0.4.6 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +211 -1
- package/dist/browser/moni-ui.iife.min.js +303 -275
- package/dist/browser/moni-ui.iife.min.js.br +0 -0
- package/dist/browser/moni-ui.iife.min.js.gz +0 -0
- package/dist/browser/moni-ui.iife.min.js.map +1 -1
- package/dist/browser/moni-ui.min.js +1398 -1277
- package/dist/browser/moni-ui.min.js.br +0 -0
- package/dist/browser/moni-ui.min.js.gz +0 -0
- package/dist/browser/moni-ui.min.js.map +1 -1
- package/dist/cdn/components/moni-color-field.js +1 -0
- package/dist/cdn/components/moni-morph-modal.js +17 -4
- package/dist/cdn/components/moni-select.js +3 -3
- package/dist/cdn/components/moni-text-field.js +12 -2
- package/dist/cdn/components/moni-textarea.js +6 -2
- package/dist/cdn/importmap.json +98 -98
- package/dist/components/moni-color-field.d.ts.map +1 -1
- package/dist/components/moni-color-field.js +1 -0
- package/dist/components/moni-morph-modal.d.ts +7 -0
- package/dist/components/moni-morph-modal.d.ts.map +1 -1
- package/dist/components/moni-morph-modal.js +37 -1
- package/dist/components/moni-select.d.ts +28 -0
- package/dist/components/moni-select.d.ts.map +1 -1
- package/dist/components/moni-select.js +48 -0
- package/dist/components/moni-text-field.d.ts +45 -2
- package/dist/components/moni-text-field.d.ts.map +1 -1
- package/dist/components/moni-text-field.js +113 -1
- package/dist/components/moni-textarea.d.ts +27 -0
- package/dist/components/moni-textarea.d.ts.map +1 -1
- package/dist/components/moni-textarea.js +61 -0
- package/docs/api.json +205 -5
- package/docs/assets/moni-context-menu/placement--top.png +0 -0
- package/docs/assets/moni-select/required--false.png +0 -0
- package/docs/assets/moni-select/required--true.png +0 -0
- package/docs/assets/moni-text-field/autocomplete--default.png +0 -0
- package/docs/assets/moni-text-field/inputmode--default.png +0 -0
- package/docs/assets/moni-text-field/max--default.png +0 -0
- package/docs/assets/moni-text-field/maxlength--default.png +0 -0
- package/docs/assets/moni-text-field/min--default.png +0 -0
- package/docs/assets/moni-text-field/minlength--default.png +0 -0
- package/docs/assets/moni-text-field/pattern--default.png +0 -0
- package/docs/assets/moni-text-field/readonly--false.png +0 -0
- package/docs/assets/moni-text-field/readonly--true.png +0 -0
- package/docs/assets/moni-text-field/required--false.png +0 -0
- package/docs/assets/moni-text-field/required--true.png +0 -0
- package/docs/assets/moni-text-field/step--default.png +0 -0
- package/docs/assets/moni-text-field/type--color.png +0 -0
- package/docs/assets/moni-text-field/type--date.png +0 -0
- package/docs/assets/moni-text-field/type--datetime-local.png +0 -0
- package/docs/assets/moni-text-field/type--month.png +0 -0
- package/docs/assets/moni-text-field/type--time.png +0 -0
- package/docs/assets/moni-text-field/type--week.png +0 -0
- package/docs/assets/moni-textarea/autocomplete--default.png +0 -0
- package/docs/assets/moni-textarea/minlength--default.png +0 -0
- package/docs/assets/moni-textarea/readonly--false.png +0 -0
- package/docs/assets/moni-textarea/readonly--true.png +0 -0
- package/docs/assets/moni-textarea/required--false.png +0 -0
- package/docs/assets/moni-textarea/required--true.png +0 -0
- package/docs/components/morph-modal.md +3 -0
- package/docs/components/select.md +15 -1
- package/docs/components/text-field.md +89 -1
- package/docs/components/textarea.md +34 -1
- package/package.json +90 -90
- package/src/components/moni-color-field.ts +1 -0
- package/src/components/moni-morph-modal.test.ts +26 -0
- package/src/components/moni-morph-modal.ts +33 -1
- package/src/components/moni-select.test.ts +34 -0
- package/src/components/moni-select.ts +54 -0
- package/src/components/moni-text-field.test.ts +78 -0
- package/src/components/moni-text-field.ts +109 -2
- package/src/components/moni-textarea.ts +62 -0
|
@@ -93,10 +93,10 @@ export declare class MoniTextField extends MoniElement {
|
|
|
93
93
|
shape: 'round' | 'no-round';
|
|
94
94
|
/**
|
|
95
95
|
* El tipo de input HTML nativo.
|
|
96
|
-
* @type {'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search'}
|
|
96
|
+
* @type {'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'color'}
|
|
97
97
|
* @default 'text'
|
|
98
98
|
*/
|
|
99
|
-
type: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search';
|
|
99
|
+
type: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'color';
|
|
100
100
|
/**
|
|
101
101
|
* Nombre del icono inicial (leading) (Material Symbols).
|
|
102
102
|
* @type {string}
|
|
@@ -158,6 +158,26 @@ export declare class MoniTextField extends MoniElement {
|
|
|
158
158
|
* @type {string}
|
|
159
159
|
*/
|
|
160
160
|
placeholder: string;
|
|
161
|
+
/** Marca el campo como obligatorio y lo integra en la validación del formulario. */
|
|
162
|
+
required: boolean;
|
|
163
|
+
/** Impide editar el valor sin sacarlo del envío ni atenuarlo como `disabled`. */
|
|
164
|
+
readonly: boolean;
|
|
165
|
+
/** Pista de autocompletado del navegador, por ejemplo `email` o `current-password`. */
|
|
166
|
+
autocomplete: string;
|
|
167
|
+
/** Teclado virtual a mostrar en móvil, por ejemplo `numeric` o `tel`. */
|
|
168
|
+
inputmode: string;
|
|
169
|
+
/** Máximo de caracteres aceptados. */
|
|
170
|
+
maxlength: number | null;
|
|
171
|
+
/** Mínimo de caracteres aceptados. */
|
|
172
|
+
minlength: number | null;
|
|
173
|
+
/** Valor mínimo para `number` y los tipos de fecha y hora. */
|
|
174
|
+
min: string;
|
|
175
|
+
/** Valor máximo para `number` y los tipos de fecha y hora. */
|
|
176
|
+
max: string;
|
|
177
|
+
/** Incremento para `number` y los tipos de fecha y hora. */
|
|
178
|
+
step: string;
|
|
179
|
+
/** Expresión regular que debe cumplir el valor. */
|
|
180
|
+
pattern: string;
|
|
161
181
|
/**
|
|
162
182
|
* Patrón Inputmask. Admite opcionales `[]`, grupos `()`, alternadores `|`,
|
|
163
183
|
* cuantificadores `{n,m}` y los tokens `9`, `a`, `*` y `K` (RUT).
|
|
@@ -203,6 +223,29 @@ export declare class MoniTextField extends MoniElement {
|
|
|
203
223
|
* @param changed - Mapa de los nombres de propiedades a sus valores anteriores que causaron esta actualización.
|
|
204
224
|
*/
|
|
205
225
|
updated(changed: Map<string, unknown>): void;
|
|
226
|
+
/**
|
|
227
|
+
* Copia la validez del `<input>` interno al host.
|
|
228
|
+
*
|
|
229
|
+
* Reenviar `required` o `pattern` no basta: el navegador valida el
|
|
230
|
+
* formulario mirando los controles asociados a él, y el que aquí participa
|
|
231
|
+
* es el host, no el input del Shadow DOM. Sin este puente el campo se
|
|
232
|
+
* pintaría como obligatorio pero el envío no se detendría.
|
|
233
|
+
*
|
|
234
|
+
* El tercer argumento ancla el globo de validación al input real, para que
|
|
235
|
+
* el navegador tenga dónde mostrarlo y a dónde mover el foco.
|
|
236
|
+
*/
|
|
237
|
+
/**
|
|
238
|
+
* API de validación equivalente a la de un control nativo.
|
|
239
|
+
*
|
|
240
|
+
* Los elementos form-associated participan en la validación del formulario,
|
|
241
|
+
* pero no reciben estos miembros automáticamente: hay que exponerlos para que
|
|
242
|
+
* un `moni-text-field` se pueda interrogar igual que un `<input>`.
|
|
243
|
+
*/
|
|
244
|
+
get validity(): ValidityState;
|
|
245
|
+
get validationMessage(): string;
|
|
246
|
+
checkValidity(): boolean;
|
|
247
|
+
reportValidity(): boolean;
|
|
248
|
+
private _syncValidity;
|
|
206
249
|
private _handleInput;
|
|
207
250
|
private _handleChange;
|
|
208
251
|
disconnectedCallback(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-text-field.d.ts","sourceRoot":"","sources":["../../src/components/moni-text-field.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,SAAS,EAAE,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,WAAW,EAA6B,MAAM,kBAAkB,CAAC;AAE1E,OAAO,gBAAgB,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,qBACa,aAAc,SAAQ,WAAW;IAC7C,MAAM,CAAC,cAAc,UAAQ;IAC7B,yFAAyF;IACzF,MAAM,CAAC,QAAQ,CAAC,SAAS,mBAAa;IACtC,OAAO,CAAC,UAAU,CAAmB;;IAOrC;;;OAGG;IAC0B,IAAI,SAAM;IAEvC;;;OAGG;IAC0B,KAAK,SAAM;IAExC;;;;OAIG;IAEH,OAAO,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAY;IAEzD;;;;OAIG;IAEH,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAY;IAExD;;;;OAIG;IAEH,KAAK,EAAE,OAAO,GAAG,UAAU,CAAc;IAEzC;;;;OAIG;IAEH,IAAI,EACD,MAAM,GACN,UAAU,GACV,OAAO,GACP,QAAQ,GACR,KAAK,GACL,KAAK,GACL,QAAQ,CAAU;
|
|
1
|
+
{"version":3,"file":"moni-text-field.d.ts","sourceRoot":"","sources":["../../src/components/moni-text-field.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,7 +104,7 @@ let MoniTextField = class MoniTextField extends MoniElement {
|
|
|
104
104
|
this.shape = 'no-round';
|
|
105
105
|
/**
|
|
106
106
|
* El tipo de input HTML nativo.
|
|
107
|
-
* @type {'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search'}
|
|
107
|
+
* @type {'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'color'}
|
|
108
108
|
* @default 'text'
|
|
109
109
|
*/
|
|
110
110
|
this.type = 'text';
|
|
@@ -169,6 +169,39 @@ let MoniTextField = class MoniTextField extends MoniElement {
|
|
|
169
169
|
* @type {string}
|
|
170
170
|
*/
|
|
171
171
|
this.placeholder = '';
|
|
172
|
+
/*
|
|
173
|
+
* Restricciones nativas.
|
|
174
|
+
*
|
|
175
|
+
* Antes ninguna de estas llegaba al `<input>` interno: el componente sólo
|
|
176
|
+
* reenviaba `type`, `placeholder`, `disabled`, `value` y `name`. Eso dejaba
|
|
177
|
+
* fuera el autocompletado de contraseñas, el teclado correcto en móvil, el
|
|
178
|
+
* límite de caracteres y toda la validación de restricciones, así que cada
|
|
179
|
+
* consumidor que necesitaba una de ellas tenía que renunciar al componente y
|
|
180
|
+
* usar un input nativo.
|
|
181
|
+
*
|
|
182
|
+
* Se reflejan al host además de reenviarse para que `[required]` y compañía
|
|
183
|
+
* puedan usarse como selectores CSS desde fuera.
|
|
184
|
+
*/
|
|
185
|
+
/** Marca el campo como obligatorio y lo integra en la validación del formulario. */
|
|
186
|
+
this.required = false;
|
|
187
|
+
/** Impide editar el valor sin sacarlo del envío ni atenuarlo como `disabled`. */
|
|
188
|
+
this.readonly = false;
|
|
189
|
+
/** Pista de autocompletado del navegador, por ejemplo `email` o `current-password`. */
|
|
190
|
+
this.autocomplete = '';
|
|
191
|
+
/** Teclado virtual a mostrar en móvil, por ejemplo `numeric` o `tel`. */
|
|
192
|
+
this.inputmode = '';
|
|
193
|
+
/** Máximo de caracteres aceptados. */
|
|
194
|
+
this.maxlength = null;
|
|
195
|
+
/** Mínimo de caracteres aceptados. */
|
|
196
|
+
this.minlength = null;
|
|
197
|
+
/** Valor mínimo para `number` y los tipos de fecha y hora. */
|
|
198
|
+
this.min = '';
|
|
199
|
+
/** Valor máximo para `number` y los tipos de fecha y hora. */
|
|
200
|
+
this.max = '';
|
|
201
|
+
/** Incremento para `number` y los tipos de fecha y hora. */
|
|
202
|
+
this.step = '';
|
|
203
|
+
/** Expresión regular que debe cumplir el valor. */
|
|
204
|
+
this.pattern = '';
|
|
172
205
|
/**
|
|
173
206
|
* Patrón Inputmask. Admite opcionales `[]`, grupos `()`, alternadores `|`,
|
|
174
207
|
* cuantificadores `{n,m}` y los tokens `9`, `a`, `*` y `K` (RUT).
|
|
@@ -274,10 +307,49 @@ let MoniTextField = class MoniTextField extends MoniElement {
|
|
|
274
307
|
if (changed.has('disabled'))
|
|
275
308
|
this._input.disabled = this.disabled;
|
|
276
309
|
}
|
|
310
|
+
this._syncValidity();
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Copia la validez del `<input>` interno al host.
|
|
314
|
+
*
|
|
315
|
+
* Reenviar `required` o `pattern` no basta: el navegador valida el
|
|
316
|
+
* formulario mirando los controles asociados a él, y el que aquí participa
|
|
317
|
+
* es el host, no el input del Shadow DOM. Sin este puente el campo se
|
|
318
|
+
* pintaría como obligatorio pero el envío no se detendría.
|
|
319
|
+
*
|
|
320
|
+
* El tercer argumento ancla el globo de validación al input real, para que
|
|
321
|
+
* el navegador tenga dónde mostrarlo y a dónde mover el foco.
|
|
322
|
+
*/
|
|
323
|
+
/**
|
|
324
|
+
* API de validación equivalente a la de un control nativo.
|
|
325
|
+
*
|
|
326
|
+
* Los elementos form-associated participan en la validación del formulario,
|
|
327
|
+
* pero no reciben estos miembros automáticamente: hay que exponerlos para que
|
|
328
|
+
* un `moni-text-field` se pueda interrogar igual que un `<input>`.
|
|
329
|
+
*/
|
|
330
|
+
get validity() {
|
|
331
|
+
return this._internals.validity;
|
|
332
|
+
}
|
|
333
|
+
get validationMessage() {
|
|
334
|
+
return this._internals.validationMessage;
|
|
335
|
+
}
|
|
336
|
+
checkValidity() {
|
|
337
|
+
return this._internals.checkValidity();
|
|
338
|
+
}
|
|
339
|
+
reportValidity() {
|
|
340
|
+
return this._internals.reportValidity();
|
|
341
|
+
}
|
|
342
|
+
_syncValidity() {
|
|
343
|
+
if (!this._input || !this._internals?.setValidity)
|
|
344
|
+
return;
|
|
345
|
+
this._internals.setValidity(this._input.validity, this._input.validationMessage, this._input);
|
|
277
346
|
}
|
|
278
347
|
_handleInput(e) {
|
|
279
348
|
const target = e.target;
|
|
280
349
|
this.value = target.value;
|
|
350
|
+
// Al teclear, `value` no siempre cambia de referencia (máscaras), así que
|
|
351
|
+
// la validez se refresca aquí y no sólo desde `updated()`.
|
|
352
|
+
this._syncValidity();
|
|
281
353
|
emitMoniEvent(this, 'moni-input', {
|
|
282
354
|
detail: { value: this.value, unmaskedValue: this.unmaskedValue, originalEvent: e }
|
|
283
355
|
});
|
|
@@ -429,6 +501,16 @@ let MoniTextField = class MoniTextField extends MoniElement {
|
|
|
429
501
|
type=${this.type}
|
|
430
502
|
placeholder=${placeholder}
|
|
431
503
|
?disabled=${this.disabled}
|
|
504
|
+
?required=${this.required}
|
|
505
|
+
?readonly=${this.readonly}
|
|
506
|
+
autocomplete=${ifDefined(this.autocomplete || undefined)}
|
|
507
|
+
inputmode=${ifDefined(this.inputmode || undefined)}
|
|
508
|
+
maxlength=${ifDefined(this.maxlength ?? undefined)}
|
|
509
|
+
minlength=${ifDefined(this.minlength ?? undefined)}
|
|
510
|
+
min=${ifDefined(this.min || undefined)}
|
|
511
|
+
max=${ifDefined(this.max || undefined)}
|
|
512
|
+
step=${ifDefined(this.step || undefined)}
|
|
513
|
+
pattern=${ifDefined(this.pattern || undefined)}
|
|
432
514
|
.value=${this.value}
|
|
433
515
|
name=${ifDefined(this.name || undefined)}
|
|
434
516
|
class=${isActive ? 'active' : ''}
|
|
@@ -517,6 +599,36 @@ __decorate([
|
|
|
517
599
|
__decorate([
|
|
518
600
|
property({ reflect: true })
|
|
519
601
|
], MoniTextField.prototype, "placeholder", void 0);
|
|
602
|
+
__decorate([
|
|
603
|
+
property({ type: Boolean, reflect: true })
|
|
604
|
+
], MoniTextField.prototype, "required", void 0);
|
|
605
|
+
__decorate([
|
|
606
|
+
property({ type: Boolean, reflect: true })
|
|
607
|
+
], MoniTextField.prototype, "readonly", void 0);
|
|
608
|
+
__decorate([
|
|
609
|
+
property({ reflect: true })
|
|
610
|
+
], MoniTextField.prototype, "autocomplete", void 0);
|
|
611
|
+
__decorate([
|
|
612
|
+
property({ reflect: true })
|
|
613
|
+
], MoniTextField.prototype, "inputmode", void 0);
|
|
614
|
+
__decorate([
|
|
615
|
+
property({ type: Number, reflect: true })
|
|
616
|
+
], MoniTextField.prototype, "maxlength", void 0);
|
|
617
|
+
__decorate([
|
|
618
|
+
property({ type: Number, reflect: true })
|
|
619
|
+
], MoniTextField.prototype, "minlength", void 0);
|
|
620
|
+
__decorate([
|
|
621
|
+
property({ reflect: true })
|
|
622
|
+
], MoniTextField.prototype, "min", void 0);
|
|
623
|
+
__decorate([
|
|
624
|
+
property({ reflect: true })
|
|
625
|
+
], MoniTextField.prototype, "max", void 0);
|
|
626
|
+
__decorate([
|
|
627
|
+
property({ reflect: true })
|
|
628
|
+
], MoniTextField.prototype, "step", void 0);
|
|
629
|
+
__decorate([
|
|
630
|
+
property({ reflect: true })
|
|
631
|
+
], MoniTextField.prototype, "pattern", void 0);
|
|
520
632
|
__decorate([
|
|
521
633
|
property({ reflect: true })
|
|
522
634
|
], MoniTextField.prototype, "mask", void 0);
|
|
@@ -121,6 +121,14 @@ export declare class MoniTextarea extends MoniElement {
|
|
|
121
121
|
* @type {number | null}
|
|
122
122
|
*/
|
|
123
123
|
maxlength: number | null;
|
|
124
|
+
/** Marca el campo como obligatorio y lo integra en la validación del formulario. */
|
|
125
|
+
required: boolean;
|
|
126
|
+
/** Impide editar el valor sin sacarlo del envío ni atenuarlo como `disabled`. */
|
|
127
|
+
readonly: boolean;
|
|
128
|
+
/** Mínimo de caracteres aceptados. */
|
|
129
|
+
minlength: number | null;
|
|
130
|
+
/** Pista de autocompletado del navegador. */
|
|
131
|
+
autocomplete: string;
|
|
124
132
|
/**
|
|
125
133
|
* Oculta la visualización del contador de caracteres cuando se establece `maxlength`.
|
|
126
134
|
* @type {boolean}
|
|
@@ -170,6 +178,25 @@ export declare class MoniTextarea extends MoniElement {
|
|
|
170
178
|
private _handleInput;
|
|
171
179
|
private _resizeTextarea;
|
|
172
180
|
updated(changed: Map<string, unknown>): void;
|
|
181
|
+
/**
|
|
182
|
+
* Copia la validez del `<textarea>` interno al host.
|
|
183
|
+
*
|
|
184
|
+
* El navegador valida mirando los controles asociados al formulario, y el
|
|
185
|
+
* que participa es el host, no el control del Shadow DOM: sin este puente
|
|
186
|
+
* `required` se pintaría pero no detendría el envío.
|
|
187
|
+
*/
|
|
188
|
+
/**
|
|
189
|
+
* API de validación equivalente a la de un control nativo.
|
|
190
|
+
*
|
|
191
|
+
* Los elementos form-associated participan en la validación del formulario,
|
|
192
|
+
* pero no reciben estos miembros automáticamente: hay que exponerlos para que
|
|
193
|
+
* un `moni-textarea` se pueda interrogar igual que un `<input>`.
|
|
194
|
+
*/
|
|
195
|
+
get validity(): ValidityState;
|
|
196
|
+
get validationMessage(): string;
|
|
197
|
+
checkValidity(): boolean;
|
|
198
|
+
reportValidity(): boolean;
|
|
199
|
+
private _syncValidity;
|
|
173
200
|
static styles: import("lit").CSSResult[];
|
|
174
201
|
/**
|
|
175
202
|
* Renderiza el campo del área de texto con etiqueta, iconos de prefijo/sufijo y contador de caracteres.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moni-textarea.d.ts","sourceRoot":"","sources":["../../src/components/moni-textarea.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,WAAW,EAA6B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,gBAAgB,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBACa,YAAa,SAAQ,WAAW;IAC5C,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,UAAU,CAAmB;;IAOrC;;;OAGG;IAC0B,IAAI,SAAM;IAEvC;;;OAGG;IAC0B,KAAK,SAAM;IAExC;;;;OAIG;IAC0B,OAAO,EAAE,QAAQ,GAAG,UAAU,CAAY;IAEvE;;;;OAIG;IAEH,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAY;IAExD;;;;OAIG;IAEH,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAc;IAEpD;;;OAGG;IAC0B,IAAI,SAAM;IAEvC;;;OAGG;IACsD,YAAY,SAAM;IAE3E;;;OAGG;IAC0B,MAAM,SAAM;IAEzC;;;OAGG;IAC0B,MAAM,SAAM;IAEzC;;;;OAIG;IACwC,IAAI,SAAK;IAEpD,mEAAmE;IACvB,QAAQ,UAAS;IAE7D,4FAA4F;IAC1B,OAAO,SAAK;IAE9E;;;;OAIG;IACwC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3E;;;OAGG;IAEH,SAAS,UAAS;IAElB;;;OAGG;IACyC,OAAO,UAAS;IAE5D;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IAC0B,MAAM,SAAM;IAEzC;;;;OAIG;IACmD,SAAS,SAAM;IAErE;;;OAGG;IACyC,KAAK,UAAS;IAE1D;;;OAGG;IAC0B,KAAK,SAAM;IAExC;;;OAGG;IAC0B,WAAW,SAAM;IAE3B,OAAO,CAAC,MAAM,CAAuB;IACxD,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEhC,iBAAiB;IAKjB,oBAAoB;IAMpB,YAAY;IAKrB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,eAAe;IAyBd,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"moni-textarea.d.ts","sourceRoot":"","sources":["../../src/components/moni-textarea.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,WAAW,EAA6B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,gBAAgB,CAAC;AACxB,OAAO,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBACa,YAAa,SAAQ,WAAW;IAC5C,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,UAAU,CAAmB;;IAOrC;;;OAGG;IAC0B,IAAI,SAAM;IAEvC;;;OAGG;IAC0B,KAAK,SAAM;IAExC;;;;OAIG;IAC0B,OAAO,EAAE,QAAQ,GAAG,UAAU,CAAY;IAEvE;;;;OAIG;IAEH,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAY;IAExD;;;;OAIG;IAEH,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAc;IAEpD;;;OAGG;IAC0B,IAAI,SAAM;IAEvC;;;OAGG;IACsD,YAAY,SAAM;IAE3E;;;OAGG;IAC0B,MAAM,SAAM;IAEzC;;;OAGG;IAC0B,MAAM,SAAM;IAEzC;;;;OAIG;IACwC,IAAI,SAAK;IAEpD,mEAAmE;IACvB,QAAQ,UAAS;IAE7D,4FAA4F;IAC1B,OAAO,SAAK;IAE9E;;;;OAIG;IACwC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQ3E,oFAAoF;IACxC,QAAQ,UAAS;IAE7D,iFAAiF;IACrC,QAAQ,UAAS;IAE7D,sCAAsC;IACK,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3E,6CAA6C;IAChB,YAAY,SAAM;IAE/C;;;OAGG;IAEH,SAAS,UAAS;IAElB;;;OAGG;IACyC,OAAO,UAAS;IAE5D;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;;OAGG;IAC0B,MAAM,SAAM;IAEzC;;;;OAIG;IACmD,SAAS,SAAM;IAErE;;;OAGG;IACyC,KAAK,UAAS;IAE1D;;;OAGG;IAC0B,KAAK,SAAM;IAExC;;;OAGG;IAC0B,WAAW,SAAM;IAE3B,OAAO,CAAC,MAAM,CAAuB;IACxD,OAAO,CAAC,eAAe,CAAC,CAAiB;IAEhC,iBAAiB;IAKjB,oBAAoB;IAMpB,YAAY;IAKrB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,eAAe;IAyBd,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAoB9C;;;;;;OAMG;IACJ;;;;;;WAMI;IACH,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,aAAa,IAAI,OAAO;IAIxB,cAAc,IAAI,OAAO;IAIzB,OAAO,CAAC,aAAa;IASrB,OAAgB,MAAM,4BAEnB;IAEH;;;;;;;;;;;;OAYG;IACM,MAAM;CAyGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,eAAe,EAAE,YAAY,CAAC;KAC9B;CACD;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -131,6 +131,19 @@ let MoniTextarea = class MoniTextarea extends MoniElement {
|
|
|
131
131
|
* @type {number | null}
|
|
132
132
|
*/
|
|
133
133
|
this.maxlength = null;
|
|
134
|
+
/*
|
|
135
|
+
* Restricciones nativas. Antes sólo `maxlength` llegaba al `<textarea>`
|
|
136
|
+
* interno, así que un campo obligatorio o de sólo lectura obligaba a
|
|
137
|
+
* abandonar el componente y usar un control nativo.
|
|
138
|
+
*/
|
|
139
|
+
/** Marca el campo como obligatorio y lo integra en la validación del formulario. */
|
|
140
|
+
this.required = false;
|
|
141
|
+
/** Impide editar el valor sin sacarlo del envío ni atenuarlo como `disabled`. */
|
|
142
|
+
this.readonly = false;
|
|
143
|
+
/** Mínimo de caracteres aceptados. */
|
|
144
|
+
this.minlength = null;
|
|
145
|
+
/** Pista de autocompletado del navegador. */
|
|
146
|
+
this.autocomplete = '';
|
|
134
147
|
/**
|
|
135
148
|
* Oculta la visualización del contador de caracteres cuando se establece `maxlength`.
|
|
136
149
|
* @type {boolean}
|
|
@@ -232,6 +245,38 @@ let MoniTextarea = class MoniTextarea extends MoniElement {
|
|
|
232
245
|
changed.has('maxRows'))
|
|
233
246
|
this._resizeTextarea();
|
|
234
247
|
}
|
|
248
|
+
this._syncValidity();
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Copia la validez del `<textarea>` interno al host.
|
|
252
|
+
*
|
|
253
|
+
* El navegador valida mirando los controles asociados al formulario, y el
|
|
254
|
+
* que participa es el host, no el control del Shadow DOM: sin este puente
|
|
255
|
+
* `required` se pintaría pero no detendría el envío.
|
|
256
|
+
*/
|
|
257
|
+
/**
|
|
258
|
+
* API de validación equivalente a la de un control nativo.
|
|
259
|
+
*
|
|
260
|
+
* Los elementos form-associated participan en la validación del formulario,
|
|
261
|
+
* pero no reciben estos miembros automáticamente: hay que exponerlos para que
|
|
262
|
+
* un `moni-textarea` se pueda interrogar igual que un `<input>`.
|
|
263
|
+
*/
|
|
264
|
+
get validity() {
|
|
265
|
+
return this._internals.validity;
|
|
266
|
+
}
|
|
267
|
+
get validationMessage() {
|
|
268
|
+
return this._internals.validationMessage;
|
|
269
|
+
}
|
|
270
|
+
checkValidity() {
|
|
271
|
+
return this._internals.checkValidity();
|
|
272
|
+
}
|
|
273
|
+
reportValidity() {
|
|
274
|
+
return this._internals.reportValidity();
|
|
275
|
+
}
|
|
276
|
+
_syncValidity() {
|
|
277
|
+
if (!this._input || !this._internals?.setValidity)
|
|
278
|
+
return;
|
|
279
|
+
this._internals.setValidity(this._input.validity, this._input.validationMessage, this._input);
|
|
235
280
|
}
|
|
236
281
|
static { this.styles = [sharedStyles, fieldStyles, css `
|
|
237
282
|
:host([autosize]) textarea { resize: none; }
|
|
@@ -319,8 +364,12 @@ let MoniTextarea = class MoniTextarea extends MoniElement {
|
|
|
319
364
|
part="input"
|
|
320
365
|
rows=${this.rows}
|
|
321
366
|
maxlength=${ifDefined(this.maxlength ?? undefined)}
|
|
367
|
+
minlength=${ifDefined(this.minlength ?? undefined)}
|
|
322
368
|
placeholder=${placeholder}
|
|
323
369
|
?disabled=${this.disabled}
|
|
370
|
+
?required=${this.required}
|
|
371
|
+
?readonly=${this.readonly}
|
|
372
|
+
autocomplete=${ifDefined(this.autocomplete || undefined)}
|
|
324
373
|
.value=${this.value}
|
|
325
374
|
name=${ifDefined(this.name || undefined)}
|
|
326
375
|
class=${isActive ? 'active' : ''}
|
|
@@ -384,6 +433,18 @@ __decorate([
|
|
|
384
433
|
__decorate([
|
|
385
434
|
property({ type: Number, reflect: true })
|
|
386
435
|
], MoniTextarea.prototype, "maxlength", void 0);
|
|
436
|
+
__decorate([
|
|
437
|
+
property({ type: Boolean, reflect: true })
|
|
438
|
+
], MoniTextarea.prototype, "required", void 0);
|
|
439
|
+
__decorate([
|
|
440
|
+
property({ type: Boolean, reflect: true })
|
|
441
|
+
], MoniTextarea.prototype, "readonly", void 0);
|
|
442
|
+
__decorate([
|
|
443
|
+
property({ type: Number, reflect: true })
|
|
444
|
+
], MoniTextarea.prototype, "minlength", void 0);
|
|
445
|
+
__decorate([
|
|
446
|
+
property({ reflect: true })
|
|
447
|
+
], MoniTextarea.prototype, "autocomplete", void 0);
|
|
387
448
|
__decorate([
|
|
388
449
|
property({ type: Boolean, reflect: true, attribute: 'no-counter' })
|
|
389
450
|
], MoniTextarea.prototype, "noCounter", void 0);
|
package/docs/api.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "@moni-labs/moni-ui",
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-21T22:33:56.605Z",
|
|
4
4
|
"componentCount": 49,
|
|
5
5
|
"components": [
|
|
6
6
|
{
|
|
@@ -2998,6 +2998,33 @@
|
|
|
2998
2998
|
"options": [],
|
|
2999
2999
|
"reflect": true
|
|
3000
3000
|
},
|
|
3001
|
+
{
|
|
3002
|
+
"name": "fullscreen",
|
|
3003
|
+
"attribute": "fullscreen",
|
|
3004
|
+
"type": "boolean",
|
|
3005
|
+
"default": "false",
|
|
3006
|
+
"description": "Fuerza al modal expandido a ocupar todo el viewport.",
|
|
3007
|
+
"options": [],
|
|
3008
|
+
"reflect": true
|
|
3009
|
+
},
|
|
3010
|
+
{
|
|
3011
|
+
"name": "responsiveFullscreen",
|
|
3012
|
+
"attribute": "responsive-fullscreen",
|
|
3013
|
+
"type": "boolean",
|
|
3014
|
+
"default": "false",
|
|
3015
|
+
"description": "Activa fullscreen únicamente cuando el viewport no supera el breakpoint configurado.",
|
|
3016
|
+
"options": [],
|
|
3017
|
+
"reflect": true
|
|
3018
|
+
},
|
|
3019
|
+
{
|
|
3020
|
+
"name": "fullscreenBreakpoint",
|
|
3021
|
+
"attribute": "fullscreen-breakpoint",
|
|
3022
|
+
"type": "number",
|
|
3023
|
+
"default": "600",
|
|
3024
|
+
"description": "Ancho máximo del viewport, en píxeles, para aplicar responsive-fullscreen.",
|
|
3025
|
+
"options": [],
|
|
3026
|
+
"reflect": true
|
|
3027
|
+
},
|
|
3001
3028
|
{
|
|
3002
3029
|
"name": "blurContent",
|
|
3003
3030
|
"attribute": "blur-content",
|
|
@@ -3826,6 +3853,15 @@
|
|
|
3826
3853
|
"options": [],
|
|
3827
3854
|
"reflect": true
|
|
3828
3855
|
},
|
|
3856
|
+
{
|
|
3857
|
+
"name": "required",
|
|
3858
|
+
"attribute": "required",
|
|
3859
|
+
"type": "boolean",
|
|
3860
|
+
"default": "false",
|
|
3861
|
+
"description": "Obliga a elegir una opción antes de enviar el formulario.\n\nEl `<input>` visible es de sólo lectura, así que la validación nativa no\nse aplica sobre él: la restricción se declara en el host con\n`ElementInternals.setValidity`, que es lo que mira el formulario.",
|
|
3862
|
+
"options": [],
|
|
3863
|
+
"reflect": true
|
|
3864
|
+
},
|
|
3829
3865
|
{
|
|
3830
3866
|
"name": "loading",
|
|
3831
3867
|
"attribute": "loading",
|
|
@@ -3972,7 +4008,18 @@
|
|
|
3972
4008
|
"reflect": true
|
|
3973
4009
|
}
|
|
3974
4010
|
],
|
|
3975
|
-
"methods": [
|
|
4011
|
+
"methods": [
|
|
4012
|
+
{
|
|
4013
|
+
"name": "checkValidity",
|
|
4014
|
+
"signature": "checkValidity(): boolean",
|
|
4015
|
+
"description": "Método público checkValidity."
|
|
4016
|
+
},
|
|
4017
|
+
{
|
|
4018
|
+
"name": "reportValidity",
|
|
4019
|
+
"signature": "reportValidity(): boolean",
|
|
4020
|
+
"description": "Método público reportValidity."
|
|
4021
|
+
}
|
|
4022
|
+
],
|
|
3976
4023
|
"events": [],
|
|
3977
4024
|
"slots": [
|
|
3978
4025
|
{
|
|
@@ -5264,7 +5311,7 @@
|
|
|
5264
5311
|
{
|
|
5265
5312
|
"name": "type",
|
|
5266
5313
|
"attribute": "type",
|
|
5267
|
-
"type": "'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search'",
|
|
5314
|
+
"type": "'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'color'",
|
|
5268
5315
|
"default": "'text'",
|
|
5269
5316
|
"description": "El tipo de input HTML nativo.",
|
|
5270
5317
|
"options": [
|
|
@@ -5274,7 +5321,13 @@
|
|
|
5274
5321
|
"number",
|
|
5275
5322
|
"tel",
|
|
5276
5323
|
"url",
|
|
5277
|
-
"search"
|
|
5324
|
+
"search",
|
|
5325
|
+
"date",
|
|
5326
|
+
"time",
|
|
5327
|
+
"datetime-local",
|
|
5328
|
+
"month",
|
|
5329
|
+
"week",
|
|
5330
|
+
"color"
|
|
5278
5331
|
],
|
|
5279
5332
|
"reflect": true
|
|
5280
5333
|
},
|
|
@@ -5395,6 +5448,96 @@
|
|
|
5395
5448
|
"options": [],
|
|
5396
5449
|
"reflect": true
|
|
5397
5450
|
},
|
|
5451
|
+
{
|
|
5452
|
+
"name": "required",
|
|
5453
|
+
"attribute": "required",
|
|
5454
|
+
"type": "boolean",
|
|
5455
|
+
"default": "false",
|
|
5456
|
+
"description": "Marca el campo como obligatorio y lo integra en la validación del formulario.",
|
|
5457
|
+
"options": [],
|
|
5458
|
+
"reflect": true
|
|
5459
|
+
},
|
|
5460
|
+
{
|
|
5461
|
+
"name": "readonly",
|
|
5462
|
+
"attribute": "readonly",
|
|
5463
|
+
"type": "boolean",
|
|
5464
|
+
"default": "false",
|
|
5465
|
+
"description": "Impide editar el valor sin sacarlo del envío ni atenuarlo como `disabled`.",
|
|
5466
|
+
"options": [],
|
|
5467
|
+
"reflect": true
|
|
5468
|
+
},
|
|
5469
|
+
{
|
|
5470
|
+
"name": "autocomplete",
|
|
5471
|
+
"attribute": "autocomplete",
|
|
5472
|
+
"type": "string",
|
|
5473
|
+
"default": "''",
|
|
5474
|
+
"description": "Pista de autocompletado del navegador, por ejemplo `email` o `current-password`.",
|
|
5475
|
+
"options": [],
|
|
5476
|
+
"reflect": true
|
|
5477
|
+
},
|
|
5478
|
+
{
|
|
5479
|
+
"name": "inputmode",
|
|
5480
|
+
"attribute": "inputmode",
|
|
5481
|
+
"type": "string",
|
|
5482
|
+
"default": "''",
|
|
5483
|
+
"description": "Teclado virtual a mostrar en móvil, por ejemplo `numeric` o `tel`.",
|
|
5484
|
+
"options": [],
|
|
5485
|
+
"reflect": true
|
|
5486
|
+
},
|
|
5487
|
+
{
|
|
5488
|
+
"name": "maxlength",
|
|
5489
|
+
"attribute": "maxlength",
|
|
5490
|
+
"type": "number | null",
|
|
5491
|
+
"default": "null",
|
|
5492
|
+
"description": "Máximo de caracteres aceptados.",
|
|
5493
|
+
"options": [],
|
|
5494
|
+
"reflect": true
|
|
5495
|
+
},
|
|
5496
|
+
{
|
|
5497
|
+
"name": "minlength",
|
|
5498
|
+
"attribute": "minlength",
|
|
5499
|
+
"type": "number | null",
|
|
5500
|
+
"default": "null",
|
|
5501
|
+
"description": "Mínimo de caracteres aceptados.",
|
|
5502
|
+
"options": [],
|
|
5503
|
+
"reflect": true
|
|
5504
|
+
},
|
|
5505
|
+
{
|
|
5506
|
+
"name": "min",
|
|
5507
|
+
"attribute": "min",
|
|
5508
|
+
"type": "string",
|
|
5509
|
+
"default": "''",
|
|
5510
|
+
"description": "Valor mínimo para `number` y los tipos de fecha y hora.",
|
|
5511
|
+
"options": [],
|
|
5512
|
+
"reflect": true
|
|
5513
|
+
},
|
|
5514
|
+
{
|
|
5515
|
+
"name": "max",
|
|
5516
|
+
"attribute": "max",
|
|
5517
|
+
"type": "string",
|
|
5518
|
+
"default": "''",
|
|
5519
|
+
"description": "Valor máximo para `number` y los tipos de fecha y hora.",
|
|
5520
|
+
"options": [],
|
|
5521
|
+
"reflect": true
|
|
5522
|
+
},
|
|
5523
|
+
{
|
|
5524
|
+
"name": "step",
|
|
5525
|
+
"attribute": "step",
|
|
5526
|
+
"type": "string",
|
|
5527
|
+
"default": "''",
|
|
5528
|
+
"description": "Incremento para `number` y los tipos de fecha y hora.",
|
|
5529
|
+
"options": [],
|
|
5530
|
+
"reflect": true
|
|
5531
|
+
},
|
|
5532
|
+
{
|
|
5533
|
+
"name": "pattern",
|
|
5534
|
+
"attribute": "pattern",
|
|
5535
|
+
"type": "string",
|
|
5536
|
+
"default": "''",
|
|
5537
|
+
"description": "Expresión regular que debe cumplir el valor.",
|
|
5538
|
+
"options": [],
|
|
5539
|
+
"reflect": true
|
|
5540
|
+
},
|
|
5398
5541
|
{
|
|
5399
5542
|
"name": "mask",
|
|
5400
5543
|
"attribute": "mask",
|
|
@@ -5478,6 +5621,16 @@
|
|
|
5478
5621
|
"name": "removeMask",
|
|
5479
5622
|
"signature": "removeMask(): void",
|
|
5480
5623
|
"description": "Método público removeMask."
|
|
5624
|
+
},
|
|
5625
|
+
{
|
|
5626
|
+
"name": "checkValidity",
|
|
5627
|
+
"signature": "checkValidity(): boolean",
|
|
5628
|
+
"description": "Método público checkValidity."
|
|
5629
|
+
},
|
|
5630
|
+
{
|
|
5631
|
+
"name": "reportValidity",
|
|
5632
|
+
"signature": "reportValidity(): boolean",
|
|
5633
|
+
"description": "Método público reportValidity."
|
|
5481
5634
|
}
|
|
5482
5635
|
],
|
|
5483
5636
|
"events": [
|
|
@@ -5676,6 +5829,42 @@
|
|
|
5676
5829
|
"options": [],
|
|
5677
5830
|
"reflect": true
|
|
5678
5831
|
},
|
|
5832
|
+
{
|
|
5833
|
+
"name": "required",
|
|
5834
|
+
"attribute": "required",
|
|
5835
|
+
"type": "boolean",
|
|
5836
|
+
"default": "false",
|
|
5837
|
+
"description": "Marca el campo como obligatorio y lo integra en la validación del formulario.",
|
|
5838
|
+
"options": [],
|
|
5839
|
+
"reflect": true
|
|
5840
|
+
},
|
|
5841
|
+
{
|
|
5842
|
+
"name": "readonly",
|
|
5843
|
+
"attribute": "readonly",
|
|
5844
|
+
"type": "boolean",
|
|
5845
|
+
"default": "false",
|
|
5846
|
+
"description": "Impide editar el valor sin sacarlo del envío ni atenuarlo como `disabled`.",
|
|
5847
|
+
"options": [],
|
|
5848
|
+
"reflect": true
|
|
5849
|
+
},
|
|
5850
|
+
{
|
|
5851
|
+
"name": "minlength",
|
|
5852
|
+
"attribute": "minlength",
|
|
5853
|
+
"type": "number | null",
|
|
5854
|
+
"default": "null",
|
|
5855
|
+
"description": "Mínimo de caracteres aceptados.",
|
|
5856
|
+
"options": [],
|
|
5857
|
+
"reflect": true
|
|
5858
|
+
},
|
|
5859
|
+
{
|
|
5860
|
+
"name": "autocomplete",
|
|
5861
|
+
"attribute": "autocomplete",
|
|
5862
|
+
"type": "string",
|
|
5863
|
+
"default": "''",
|
|
5864
|
+
"description": "Pista de autocompletado del navegador.",
|
|
5865
|
+
"options": [],
|
|
5866
|
+
"reflect": true
|
|
5867
|
+
},
|
|
5679
5868
|
{
|
|
5680
5869
|
"name": "noCounter",
|
|
5681
5870
|
"attribute": "no-counter",
|
|
@@ -5749,7 +5938,18 @@
|
|
|
5749
5938
|
"reflect": true
|
|
5750
5939
|
}
|
|
5751
5940
|
],
|
|
5752
|
-
"methods": [
|
|
5941
|
+
"methods": [
|
|
5942
|
+
{
|
|
5943
|
+
"name": "checkValidity",
|
|
5944
|
+
"signature": "checkValidity(): boolean",
|
|
5945
|
+
"description": "Método público checkValidity."
|
|
5946
|
+
},
|
|
5947
|
+
{
|
|
5948
|
+
"name": "reportValidity",
|
|
5949
|
+
"signature": "reportValidity(): boolean",
|
|
5950
|
+
"description": "Método público reportValidity."
|
|
5951
|
+
}
|
|
5952
|
+
],
|
|
5753
5953
|
"events": [],
|
|
5754
5954
|
"slots": [],
|
|
5755
5955
|
"cssParts": [
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|