@telcomdev/ui 0.1.16 → 0.1.18
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/README.md +138 -2
- package/fesm2022/telcomdev-ui.mjs +667 -10
- package/fesm2022/telcomdev-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/telcomdev-ui.d.ts +172 -5
package/README.md
CHANGED
|
@@ -76,13 +76,114 @@ el borde outline permanecen visibles en todos los estados.
|
|
|
76
76
|
/>
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
Ambos controles
|
|
80
|
-
|
|
79
|
+
Ambos controles son compatibles con formularios Angular y muestran su panel
|
|
80
|
+
mediante Angular CDK Overlay.
|
|
81
|
+
|
|
82
|
+
`td-autocomplete-select` soporta dos formas de trabajo:
|
|
83
|
+
|
|
84
|
+
### Modo estándar
|
|
85
|
+
|
|
86
|
+
Usa `TdSelectOption<T>` cuando ya tienes opciones normalizadas:
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
readonly proveedores = [
|
|
90
|
+
{ value: 1, label: 'AMERICA MOVIL PERU S.A.C.', description: '20467534026' },
|
|
91
|
+
];
|
|
92
|
+
|
|
93
|
+
proveedorId: number | null = 1;
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
```html
|
|
97
|
+
<td-autocomplete-select
|
|
98
|
+
label="Proveedor"
|
|
99
|
+
[options]="proveedores"
|
|
100
|
+
[(ngModel)]="proveedorId"
|
|
101
|
+
/>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Modo mapeado
|
|
105
|
+
|
|
106
|
+
Usa `valueKey`, `labelKey` y, opcionalmente, `descriptionKey`, `iconKey` o
|
|
107
|
+
`disabledKey` cuando quieres consumir DTOs reales sin mapearlos manualmente:
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
readonly proveedores = [
|
|
111
|
+
{
|
|
112
|
+
proveedorId: 1,
|
|
113
|
+
tipoDocumentoIdentidadId: 4,
|
|
114
|
+
numeroDocumento: '20467534026',
|
|
115
|
+
nombre: 'AMERICA MOVIL PERU S.A.C.',
|
|
116
|
+
},
|
|
117
|
+
];
|
|
118
|
+
|
|
119
|
+
proveedorId: number | null = 1;
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
```html
|
|
123
|
+
<td-autocomplete-select
|
|
124
|
+
label="Proveedor"
|
|
125
|
+
[options]="proveedores"
|
|
126
|
+
valueKey="proveedorId"
|
|
127
|
+
labelKey="nombre"
|
|
128
|
+
descriptionKey="numeroDocumento"
|
|
129
|
+
[(ngModel)]="proveedorId"
|
|
130
|
+
/>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Si el valor llega antes que las opciones, o las opciones llegan antes que el
|
|
134
|
+
valor, el texto visible se sincroniza automáticamente. Esta sincronización no
|
|
135
|
+
emite `selectionChange`; ese evento se reserva para selección o limpieza
|
|
136
|
+
realizada por el usuario.
|
|
81
137
|
|
|
82
138
|
El comportamiento predeterminado durante el scroll es `reposition`, por lo que
|
|
83
139
|
el panel permanece unido al control. Puede cambiarse con
|
|
84
140
|
`scrollBehavior="close"`.
|
|
85
141
|
|
|
142
|
+
## File Upload
|
|
143
|
+
|
|
144
|
+
Selector de archivos con soporte para formularios Angular, drag and drop,
|
|
145
|
+
validación de formatos y previsualización de imágenes/PDF mediante el visor de
|
|
146
|
+
archivos de la librería.
|
|
147
|
+
|
|
148
|
+
### Variante input
|
|
149
|
+
|
|
150
|
+
```html
|
|
151
|
+
<td-file-upload
|
|
152
|
+
label="Logo del proveedor"
|
|
153
|
+
variant="input"
|
|
154
|
+
accept="image/*"
|
|
155
|
+
[maxSizeMb]="2"
|
|
156
|
+
[(ngModel)]="logo"
|
|
157
|
+
/>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
logo: File | null = null;
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Variante dropzone con preview
|
|
165
|
+
|
|
166
|
+
```html
|
|
167
|
+
<td-file-upload
|
|
168
|
+
label="Adjuntos del expediente"
|
|
169
|
+
description="Arrastra contrato, evidencia o documentos."
|
|
170
|
+
accept="image/*,.pdf,.xml,.xlsx,.zip"
|
|
171
|
+
[multiple]="true"
|
|
172
|
+
[maxFiles]="5"
|
|
173
|
+
[maxSizeMb]="8"
|
|
174
|
+
[(ngModel)]="adjuntos"
|
|
175
|
+
(filesChange)="actualizarArchivos($event)"
|
|
176
|
+
(rejected)="mostrarRechazos($event)"
|
|
177
|
+
/>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
adjuntos: File[] = [];
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Cuando `multiple` está desactivado el valor del formulario es `File | null`.
|
|
185
|
+
Cuando `multiple` está activado el valor es `File[]`.
|
|
186
|
+
|
|
86
187
|
## Tabs
|
|
87
188
|
|
|
88
189
|
```html
|
|
@@ -401,6 +502,41 @@ También funciona con formularios tradicionales:
|
|
|
401
502
|
<td-checkbox label="Principal" [formControl]="controlPrincipal" />
|
|
402
503
|
```
|
|
403
504
|
|
|
505
|
+
## Radio Button
|
|
506
|
+
|
|
507
|
+
`TdRadioGroup` permite selección única tipada y mantiene compatibilidad con
|
|
508
|
+
Signal Forms, `ngModel` y Reactive Forms.
|
|
509
|
+
|
|
510
|
+
```html
|
|
511
|
+
<td-radio-group
|
|
512
|
+
label="Tipo de documento"
|
|
513
|
+
[options]="tiposDocumento"
|
|
514
|
+
[(ngModel)]="tipoDocumento"
|
|
515
|
+
/>
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
```ts
|
|
519
|
+
readonly tiposDocumento = [
|
|
520
|
+
{ value: 'dni', label: 'DNI' },
|
|
521
|
+
{ value: 'ruc', label: 'RUC' },
|
|
522
|
+
{ value: 'ce', label: 'Carné de extranjería' },
|
|
523
|
+
];
|
|
524
|
+
|
|
525
|
+
tipoDocumento: 'dni' | 'ruc' | 'ce' | null = 'ruc';
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
También cuenta con variante tipo tarjeta:
|
|
529
|
+
|
|
530
|
+
```html
|
|
531
|
+
<td-radio-group
|
|
532
|
+
label="Canal de notificación"
|
|
533
|
+
variant="card"
|
|
534
|
+
direction="horizontal"
|
|
535
|
+
[options]="canales"
|
|
536
|
+
[formField]="fields.canal"
|
|
537
|
+
/>
|
|
538
|
+
```
|
|
539
|
+
|
|
404
540
|
Con Signal Forms no se necesita una variable intermedia ni eventos manuales. El
|
|
405
541
|
modelo debe inicializar el campo como `true` o `false`, nunca como `null`.
|
|
406
542
|
|