angular-matecu 4.0.7 → 4.1.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 (126) hide show
  1. package/README.md +347 -130
  2. package/ng-package.json +7 -0
  3. package/package.json +6 -21
  4. package/src/lib/components/matecu-alert-box/matecu-alert-box.component.html +11 -0
  5. package/src/lib/components/matecu-alert-box/matecu-alert-box.component.scss +39 -0
  6. package/src/lib/components/matecu-alert-box/matecu-alert-box.component.spec.ts +25 -0
  7. package/src/lib/components/matecu-alert-box/matecu-alert-box.component.ts +60 -0
  8. package/src/lib/components/matecu-alert-dialog/matecu-alert-dialog.component.html +24 -0
  9. package/src/lib/components/matecu-alert-dialog/matecu-alert-dialog.component.scss +5 -0
  10. package/src/lib/components/matecu-alert-dialog/matecu-alert-dialog.component.spec.ts +25 -0
  11. package/src/lib/components/matecu-alert-dialog/matecu-alert-dialog.component.ts +53 -0
  12. package/src/lib/components/matecu-alert-snack-bar/matecu-alert-snack-bar.component.html +10 -0
  13. package/src/lib/components/matecu-alert-snack-bar/matecu-alert-snack-bar.component.scss +34 -0
  14. package/src/lib/components/matecu-alert-snack-bar/matecu-alert-snack-bar.component.spec.ts +25 -0
  15. package/src/lib/components/matecu-alert-snack-bar/matecu-alert-snack-bar.component.ts +45 -0
  16. package/src/lib/components/matecu-autocomplete/matecu-autocomplete.html +36 -0
  17. package/src/lib/components/matecu-autocomplete/matecu-autocomplete.scss +56 -0
  18. package/src/lib/components/matecu-autocomplete/matecu-autocomplete.spec.ts +23 -0
  19. package/src/lib/components/matecu-autocomplete/matecu-autocomplete.ts +336 -0
  20. package/src/lib/components/matecu-autocomplete-multiple/matecu-autocomplete-multiple.html +64 -0
  21. package/src/lib/components/matecu-autocomplete-multiple/matecu-autocomplete-multiple.scss +23 -0
  22. package/src/lib/components/matecu-autocomplete-multiple/matecu-autocomplete-multiple.spec.ts +23 -0
  23. package/src/lib/components/matecu-autocomplete-multiple/matecu-autocomplete-multiple.ts +314 -0
  24. package/src/lib/components/matecu-file-input/matecu-file-input-customization.md +284 -0
  25. package/src/lib/components/matecu-file-input/matecu-file-input.example.md +228 -0
  26. package/src/lib/components/matecu-file-input/matecu-file-input.html +128 -0
  27. package/src/lib/components/matecu-file-input/matecu-file-input.scss +461 -0
  28. package/src/lib/components/matecu-file-input/matecu-file-input.spec.ts +340 -0
  29. package/src/lib/components/matecu-file-input/matecu-file-input.ts +438 -0
  30. package/src/lib/components/matecu-spinner/matecu-spinner.component.css +15 -0
  31. package/src/lib/components/matecu-spinner/matecu-spinner.component.html +44 -0
  32. package/src/lib/components/matecu-spinner/matecu-spinner.component.spec.ts +25 -0
  33. package/src/lib/components/matecu-spinner/matecu-spinner.component.ts +54 -0
  34. package/src/lib/components/matecu-spinner/spinner-loader.component.scss +13 -0
  35. package/src/lib/components/matecu-topbar-action/matecu-topbar-action.component.html +1 -0
  36. package/src/lib/components/matecu-topbar-action/matecu-topbar-action.component.scss +19 -0
  37. package/src/lib/components/matecu-topbar-action/matecu-topbar-action.component.spec.ts +25 -0
  38. package/src/lib/components/matecu-topbar-action/matecu-topbar-action.component.ts +14 -0
  39. package/src/lib/components/matecu-topbar-body/matecu-topbar-body.component.html +1 -0
  40. package/src/lib/components/matecu-topbar-body/matecu-topbar-body.component.scss +14 -0
  41. package/src/lib/components/matecu-topbar-body/matecu-topbar-body.component.spec.ts +25 -0
  42. package/src/lib/components/matecu-topbar-body/matecu-topbar-body.component.ts +11 -0
  43. package/src/lib/components/matecu-topbar-fab/matecu-topbar-fab.component.html +3 -0
  44. package/src/lib/components/matecu-topbar-fab/matecu-topbar-fab.component.scss +19 -0
  45. package/src/lib/components/matecu-topbar-fab/matecu-topbar-fab.component.spec.ts +25 -0
  46. package/src/lib/components/matecu-topbar-fab/matecu-topbar-fab.component.ts +31 -0
  47. package/src/lib/components/matecu-topbar-header-column/matecu-topbar-header-column.component.html +1 -0
  48. package/src/lib/components/matecu-topbar-header-column/matecu-topbar-header-column.component.scss +8 -0
  49. package/src/lib/components/matecu-topbar-header-column/matecu-topbar-header-column.component.spec.ts +23 -0
  50. package/src/lib/components/matecu-topbar-header-column/matecu-topbar-header-column.component.ts +11 -0
  51. package/src/lib/components/matecu-topbar-header-row/matecu-topbar-header-row.component.html +9 -0
  52. package/src/lib/components/matecu-topbar-header-row/matecu-topbar-header-row.component.scss +34 -0
  53. package/src/lib/components/matecu-topbar-header-row/matecu-topbar-header-row.component.spec.ts +23 -0
  54. package/src/lib/components/matecu-topbar-header-row/matecu-topbar-header-row.component.ts +18 -0
  55. package/src/lib/components/matecu-topbar-layout/matecu-topbar-layout.component.html +7 -0
  56. package/src/lib/components/matecu-topbar-layout/matecu-topbar-layout.component.scss +49 -0
  57. package/src/lib/components/matecu-topbar-layout/matecu-topbar-layout.component.spec.ts +25 -0
  58. package/src/lib/components/matecu-topbar-layout/matecu-topbar-layout.component.ts +112 -0
  59. package/src/lib/components/matecu-topbar-search/matecu-topbar-search.component.html +20 -0
  60. package/src/lib/components/matecu-topbar-search/matecu-topbar-search.component.scss +90 -0
  61. package/src/lib/components/matecu-topbar-search/matecu-topbar-search.component.spec.ts +25 -0
  62. package/src/lib/components/matecu-topbar-search/matecu-topbar-search.component.ts +92 -0
  63. package/src/lib/components/matecu-topbar-title/matecu-topbar-title.component.html +1 -0
  64. package/src/lib/components/matecu-topbar-title/matecu-topbar-title.component.scss +91 -0
  65. package/src/lib/components/matecu-topbar-title/matecu-topbar-title.component.spec.ts +25 -0
  66. package/src/lib/components/matecu-topbar-title/matecu-topbar-title.component.ts +14 -0
  67. package/src/lib/modules/matecu-alert-box/matecu-alert-box.module.ts +16 -0
  68. package/src/lib/modules/matecu-spinner/matecu-spinner.module.ts +14 -0
  69. package/src/lib/modules/matecu-topbar-layout/matecu-topbar-layout.module.ts +45 -0
  70. package/src/lib/services/matecu-snack-bar.service.spec.ts +16 -0
  71. package/src/lib/services/matecu-snack-bar.service.ts +66 -0
  72. package/src/lib/services/matecu-spinner.service.spec.ts +16 -0
  73. package/src/lib/services/matecu-spinner.service.ts +39 -0
  74. package/src/lib/types/matecu-alert-dialog.ts +10 -0
  75. package/{lib/types/matecu-alert-snackbar.d.ts → src/lib/types/matecu-alert-snackbar.ts} +5 -4
  76. package/src/lib/types/matecu-altert-box-type.ts +6 -0
  77. package/src/lib/types/matecu-autocomplete.ts +5 -0
  78. package/{public-api.d.ts → src/public-api.ts} +14 -0
  79. package/tsconfig.lib.json +17 -0
  80. package/tsconfig.lib.prod.json +11 -0
  81. package/tsconfig.spec.json +15 -0
  82. package/CHANGELOG.md +0 -22
  83. package/esm2022/angular-matecu.mjs +0 -5
  84. package/esm2022/lib/components/matecu-alert-box/matecu-alert-box.component.mjs +0 -67
  85. package/esm2022/lib/components/matecu-alert-dialog/matecu-alert-dialog.component.mjs +0 -54
  86. package/esm2022/lib/components/matecu-alert-snack-bar/matecu-alert-snack-bar.component.mjs +0 -43
  87. package/esm2022/lib/components/matecu-spinner/matecu-spinner.component.mjs +0 -58
  88. package/esm2022/lib/components/matecu-topbar-action/matecu-topbar-action.component.mjs +0 -18
  89. package/esm2022/lib/components/matecu-topbar-body/matecu-topbar-body.component.mjs +0 -17
  90. package/esm2022/lib/components/matecu-topbar-fab/matecu-topbar-fab.component.mjs +0 -43
  91. package/esm2022/lib/components/matecu-topbar-header-column/matecu-topbar-header-column.component.mjs +0 -12
  92. package/esm2022/lib/components/matecu-topbar-header-row/matecu-topbar-header-row.component.mjs +0 -29
  93. package/esm2022/lib/components/matecu-topbar-layout/matecu-topbar-layout.component.mjs +0 -112
  94. package/esm2022/lib/components/matecu-topbar-search/matecu-topbar-search.component.mjs +0 -93
  95. package/esm2022/lib/components/matecu-topbar-title/matecu-topbar-title.component.mjs +0 -18
  96. package/esm2022/lib/modules/matecu-alert-box/matecu-alert-box.module.mjs +0 -24
  97. package/esm2022/lib/modules/matecu-spinner/matecu-spinner.module.mjs +0 -22
  98. package/esm2022/lib/modules/matecu-topbar-layout/matecu-topbar-layout.module.mjs +0 -83
  99. package/esm2022/lib/services/matecu-snack-bar.service.mjs +0 -66
  100. package/esm2022/lib/services/matecu-spinner.service.mjs +0 -44
  101. package/esm2022/lib/types/matecu-alert-dialog.mjs +0 -2
  102. package/esm2022/lib/types/matecu-alert-snackbar.mjs +0 -2
  103. package/esm2022/lib/types/matecu-altert-box-type.mjs +0 -8
  104. package/esm2022/public-api.mjs +0 -32
  105. package/fesm2022/angular-matecu.mjs +0 -735
  106. package/fesm2022/angular-matecu.mjs.map +0 -1
  107. package/index.d.ts +0 -5
  108. package/lib/components/matecu-alert-box/matecu-alert-box.component.d.ts +0 -19
  109. package/lib/components/matecu-alert-dialog/matecu-alert-dialog.component.d.ts +0 -22
  110. package/lib/components/matecu-alert-snack-bar/matecu-alert-snack-bar.component.d.ts +0 -20
  111. package/lib/components/matecu-spinner/matecu-spinner.component.d.ts +0 -20
  112. package/lib/components/matecu-topbar-action/matecu-topbar-action.component.d.ts +0 -9
  113. package/lib/components/matecu-topbar-body/matecu-topbar-body.component.d.ts +0 -6
  114. package/lib/components/matecu-topbar-fab/matecu-topbar-fab.component.d.ts +0 -12
  115. package/lib/components/matecu-topbar-header-column/matecu-topbar-header-column.component.d.ts +0 -5
  116. package/lib/components/matecu-topbar-header-row/matecu-topbar-header-row.component.d.ts +0 -8
  117. package/lib/components/matecu-topbar-layout/matecu-topbar-layout.component.d.ts +0 -27
  118. package/lib/components/matecu-topbar-search/matecu-topbar-search.component.d.ts +0 -27
  119. package/lib/components/matecu-topbar-title/matecu-topbar-title.component.d.ts +0 -9
  120. package/lib/modules/matecu-alert-box/matecu-alert-box.module.d.ts +0 -14
  121. package/lib/modules/matecu-spinner/matecu-spinner.module.d.ts +0 -8
  122. package/lib/modules/matecu-topbar-layout/matecu-topbar-layout.module.d.ts +0 -19
  123. package/lib/services/matecu-snack-bar.service.d.ts +0 -17
  124. package/lib/services/matecu-spinner.service.d.ts +0 -15
  125. package/lib/types/matecu-alert-dialog.d.ts +0 -9
  126. package/lib/types/matecu-altert-box-type.d.ts +0 -6
package/README.md CHANGED
@@ -2,17 +2,39 @@
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
4
 
5
- Libreria con complementos y utilidades para el desarrollo de aps
6
-
7
- # Instalar
5
+ Librería con componentes y utilidades para el desarrollo de aplicaciones Angular con Material Design.
6
+
7
+ ## Tabla de Contenido
8
+
9
+ - [Instalación](#instalación)
10
+ - [Componentes de Indicadores](#componentes-de-indicadores)
11
+ - [matecu-spinner](#matecu-spinner-componente)
12
+ - [Componentes de Alertas](#componentes-de-alertas)
13
+ - [matecu-alert-box](#matecu-alert-box-componente)
14
+ - [matecu-alert-dialog](#matecu-alert-dialog-componente)
15
+ - [MatecuSnackBarService](#matecusnackbarservice)
16
+ - [Componentes de Entrada (Inputs)](#componentes-de-entrada-inputs)
17
+ - [matecu-autocomplete](#matecu-autocomplete-componente)
18
+ - [matecu-autocomplete-multiple](#matecu-autocomplete-multiple-componente)
19
+ - [matecu-file-input](#matecu-file-input-componente)
20
+ - [Componentes de Layout](#componentes-de-layout)
21
+ - [MatecuTopbarLayout](#matecutopbarlayout)
22
+
23
+ ## Instalación
24
+
25
+ ```bash
26
+ npm install angular-matecu
27
+ ```
8
28
 
9
- npm install angular-matecu
29
+ Para versiones de Angular menores a 15 utilizar la versión ^2.0
10
30
 
11
- Para versiones de angular menores a 15 utilizar la versión ^2.0
31
+ ```bash
32
+ npm install angular-matecu@^2.0
33
+ ```
12
34
 
13
- npm install angular-matecu@^2.0
35
+ Ver [CHANGELOG](CHANGELOG.md)
14
36
 
15
- ver [CHANGELOG](CHANGELOG.md)
37
+ ## Componentes de Indicadores
16
38
 
17
39
  ## matecu-spinner (Componente)
18
40
 
@@ -22,12 +44,16 @@ Componente que genera un spinner que se puede utilizar para indicar que la app e
22
44
 
23
45
  Importar componente o módulo
24
46
 
25
- import { MatecuSpinnerComponent } from 'angular-matecu';
47
+ ```typescript
48
+ import { MatecuSpinnerComponent } from 'angular-matecu';
49
+ ```
26
50
 
27
51
  Agregar a la plantilla de algún componente
28
52
 
29
- <matecu-spinner active="true" color="'red'" size="'30px'" ></matecu-spinner>
30
- <matecu-spinner global="true" color="'orange'"></matecu-spinner>
53
+ ```html
54
+ <matecu-spinner active="true" color="'red'" size="'30px'"></matecu-spinner>
55
+ <matecu-spinner global="true" color="'orange'"></matecu-spinner>
56
+ ```
31
57
 
32
58
  Propiedades:
33
59
 
@@ -36,23 +62,25 @@ Propiedades:
36
62
  - size: (string) Tamaño del spinner
37
63
  - global: (boolean) True indica que el cambio de visible a oculto será aplicado utilizando el servicio del spinner y aplicará a todos los que tengan asignada esta propiedad como True sin importar el valor asignado a "active"
38
64
 
39
- ## Servicio (MatecuSpinnerService)
65
+ ## MatecuSpinnerService
40
66
 
41
- Uso:
67
+ ### Uso:
42
68
 
43
- // import { MatecuSpinnerService } from 'angular-matecu';
44
- ....
45
- key: string; //
46
- construct( private spinnerService: MatecuSpinnerService) {}
47
- ....
48
- // mostrar el spinner
49
- show() {
50
- this.key = this.spinnerService.add();
51
- }
52
- // ocultar el spinner
53
- hide() {
54
- this.spinnerService.remove(this.key);
55
- }
69
+ ```typescript
70
+ // import { MatecuSpinnerService } from 'angular-matecu';
71
+ // ...
72
+ key: string;
73
+ constructor(private spinnerService: MatecuSpinnerService) {}
74
+ // ...
75
+ // mostrar el spinner
76
+ show() {
77
+ this.key = this.spinnerService.add();
78
+ }
79
+ // ocultar el spinner
80
+ hide() {
81
+ this.spinnerService.remove(this.key);
82
+ }
83
+ ```
56
84
 
57
85
  Métodos:
58
86
 
@@ -64,23 +92,29 @@ Métodos:
64
92
 
65
93
  - clear: Elimina todas las claves forzando a que el spinner pase al estado inactivo.
66
94
 
95
+ ## Componentes de Alertas
96
+
67
97
  ## matecu-alert-box (Componente)
68
98
 
69
99
  ### Uso:
70
100
 
71
101
  Importar componente o módulo
72
102
 
73
- import { MatecuAlertBoxComponent } from 'angular-matecu';
103
+ ```typescript
104
+ import { MatecuAlertBoxComponent } from 'angular-matecu';
105
+ ```
74
106
 
75
107
  Agregar a la plantilla de algún componente
76
108
 
77
- <matecu-alert-box color="success"> Alerta Success </matecu-alert-box>
109
+ ```html
110
+ <matecu-alert-box color="success"> Alerta Success </matecu-alert-box>
111
+ ```
78
112
 
79
- Colores: - warning - danger - success - info
113
+ **Colores disponibles:** `warning` | `danger` | `success` | `info`
80
114
 
81
115
  ## matecu-alert-dialog (Componente)
82
116
 
83
- Dialogo de alerta o confirmación
117
+ Diálogo de alerta o confirmación
84
118
 
85
119
  ### Uso:
86
120
 
@@ -88,106 +122,288 @@ Importar módulo
88
122
 
89
123
  En el componente
90
124
 
91
- import { MatDialog } from '@angular/material/dialog';
92
- import { MatecuAlertDialogComponent, MatecuAlertBoxType } from 'angular-matecu';
93
- import { filter } from 'rxjs/operators';
94
-
95
- // ....
96
- constructor(private dialog: MatDialog) {}
97
-
98
- openBasicDialog(): void {
99
- const message = 'Mensaje a mostrar';
100
- const type = 'warning'; // warning, danger, success, info
101
- const icon = true
102
- const dismissText = 'Cancelar'; // texto del boton para cerrar el diálogo (opcional)
103
- const action = 'Confirmar'; // texto del boton para activar la acción pricipal del diálogo (opcional)
104
- const title = 'Titulo del diálogo';
105
- const dialogRef = this.dialog.open(MatecuAlertDialogComponent, {
106
- data: { message, type, icon, dismissText, action, title },
107
- });
108
- // afterClosed retorna un valor boolean o null que se puede utilizar para determinar si se va a ejecutar alguna acción
109
- dialogRef.afterClosed().pipe(
110
- filter(execAction => !!execAction)
111
- ).subscribe();
112
-
125
+ ```typescript
126
+ import { MatDialog } from '@angular/material/dialog';
127
+ import { MatecuAlertDialogComponent, MatecuAlertBoxType } from 'angular-matecu';
128
+ import { filter } from 'rxjs/operators';
129
+
130
+ // ....
131
+ constructor(private dialog: MatDialog) {}
132
+
133
+ openBasicDialog(): void {
134
+ const message = 'Mensaje a mostrar';
135
+ const type = 'warning'; // warning, danger, success, info
136
+ const icon = true
137
+ const dismissText = 'Cancelar'; // texto del botón para cerrar el diálogo (opcional)
138
+ const action = 'Confirmar'; // texto del botón para activar la acción principal del diálogo (opcional)
139
+ const title = 'Título del diálogo';
140
+ const dialogRef = this.dialog.open(MatecuAlertDialogComponent, {
141
+ data: { message, type, icon, dismissText, action, title },
142
+ });
143
+ // afterClosed retorna un valor boolean o null que se puede utilizar para determinar si se va a ejecutar alguna acción
144
+ dialogRef.afterClosed().pipe(
145
+ filter(execAction => !!execAction)
146
+ ).subscribe();
113
147
  }
148
+ ```
114
149
 
115
150
  ## MatecuSnackBarService
116
151
 
117
- Servicio para abrir dialogos snackBar con titulos con colores para Error, Success, Warning, Info
152
+ Servicio para abrir diálogos snackBar con títulos con colores para Error, Success, Warning, Info
118
153
 
119
154
  ### Uso
120
155
 
121
156
  Importar en el módulo MatecuAlertBoxModule en app.module
122
157
 
123
- import { MatecuAlertBoxModule } from 'angular-matecu';
124
- @NgModule({
125
- imports: [
126
- ...
127
- MatecuAlertBoxModule
128
- ...
129
- ],
130
- ...
131
- })
132
- export class AppModule { }
158
+ ```typescript
159
+ import { MatecuAlertBoxModule } from 'angular-matecu';
160
+
161
+ @NgModule({
162
+ imports: [
163
+ ...
164
+ MatecuAlertBoxModule
165
+ ...
166
+ ],
167
+ ...
168
+ })
169
+ export class AppModule { }
170
+ ```
133
171
 
134
172
  En el componente
135
173
 
136
- import { MatecuSnackBarService } from 'angular-matecu';
174
+ ```typescript
175
+ import { MatecuSnackBarService } from 'angular-matecu';
137
176
 
138
- // ....
139
- constructor(private snackBar: MatecuSnackBarService) { }
177
+ // ....
178
+ constructor(private snackBar: MatecuSnackBarService) { }
140
179
 
141
- openError(): void {
142
- this.snackBar.openError('Mensaje de error');
143
- }
180
+ openError(): void {
181
+ this.snackBar.openError('Mensaje de error');
182
+ }
183
+ ```
144
184
 
145
185
  ### Métodos
146
186
 
147
- - openError()
148
- - openInfo()
149
- - openWarning()
150
- - openSuccess()
151
- - open()
152
- - dismiss()
187
+ - `openError()`
188
+ - `openInfo()`
189
+ - `openWarning()`
190
+ - `openSuccess()`
191
+ - `open()`
192
+ - `dismiss()`
193
+
194
+ ## Componentes de Entrada (Inputs)
195
+
196
+ ## matecu-autocomplete (Componente)
197
+
198
+ Componente de autocompletado simple que permite buscar y seleccionar una opción de una lista.
199
+
200
+ ### Uso:
201
+
202
+ Importar componente
203
+
204
+ ```typescript
205
+ import { MatecuAutocomplete } from 'angular-matecu';
206
+ ```
207
+
208
+ Agregar a la plantilla
209
+
210
+ ```html
211
+ <matecu-autocomplete
212
+ [options]="options"
213
+ placeholder="Buscar..."
214
+ [allowCreate]="false"
215
+ [loading]="false"
216
+ [readonly]="false"
217
+ (searchChange)="onSearchChange($event)"
218
+ [(ngModel)]="selectedValue"
219
+ >
220
+ </matecu-autocomplete>
221
+ ```
222
+
223
+ ### Propiedades:
224
+
225
+ - `options`: Array de opciones tipo `[value, label][]`
226
+ - `allowCreate`: Permite crear nuevas opciones sobre la marcha
227
+ - `loading`: Muestra indicador de carga
228
+ - `readonly`: Modo de solo lectura
229
+ - `filterFn`: Función personalizada para filtrar opciones
230
+ - `searchChangeDebounceTime`: Tiempo de debounce para búsqueda (default: 300ms)
231
+ - `placeholder`: Texto de placeholder
232
+ - `required`: Campo obligatorio
233
+ - `disabled`: Campo deshabilitado
234
+
235
+ ### Eventos:
236
+
237
+ - `searchChange`: Se emite cuando cambia el texto de búsqueda
238
+
239
+ ## matecu-autocomplete-multiple (Componente)
240
+
241
+ Componente de autocompletado que permite seleccionar múltiples opciones con chips y reordenamiento por drag & drop.
242
+
243
+ ### Uso:
244
+
245
+ ```typescript
246
+ import { MatecuAutocompleteMultiple } from 'angular-matecu';
247
+ ```
248
+
249
+ ```html
250
+ <matecu-autocomplete-multiple
251
+ [options]="options"
252
+ placeholder="Seleccionar opciones..."
253
+ [enableSelectAll]="true"
254
+ [showTooltip]="true"
255
+ [readonly]="false"
256
+ [loading]="false"
257
+ selectAllLabel="Seleccionar Todo"
258
+ clearAllLabel="Limpiar Todo"
259
+ (searchChange)="onSearchChange($event)"
260
+ [(ngModel)]="selectedValues"
261
+ >
262
+ </matecu-autocomplete-multiple>
263
+ ```
264
+
265
+ ### Propiedades:
266
+
267
+ - `options`: Array de opciones tipo `[value, label][]`
268
+ - `enableSelectAll`: Habilita botones de "Seleccionar Todo" y "Limpiar Todo"
269
+ - `showTooltip`: Muestra tooltip con el texto completo en chips largos
270
+ - `selectAllLabel`: Texto del botón "Seleccionar Todo"
271
+ - `clearAllLabel`: Texto del botón "Limpiar Todo"
272
+ - `filterFn`: Función personalizada para filtrar opciones
273
+ - `searchChangeDebounceTime`: Tiempo de debounce para búsqueda (default: 300ms)
274
+ - `placeholder`: Texto de placeholder
275
+ - `loading`: Muestra indicador de carga
276
+ - `readonly`: Modo de solo lectura
277
+
278
+ ### Eventos:
279
+
280
+ - `searchChange`: Se emite cuando cambia el texto de búsqueda
281
+
282
+ ### Funcionalidades:
283
+
284
+ - **Drag & Drop**: Los chips seleccionados se pueden reordenar arrastrando
285
+ - **Virtual Scrolling**: Optimizado para listas grandes de opciones
286
+ - **Select All/Clear All**: Botones para seleccionar o limpiar todas las opciones
287
+ - **Tooltips**: Muestra el texto completo cuando el chip es muy largo
288
+
289
+ ## matecu-file-input (Componente)
290
+
291
+ Componente avanzado para carga de archivos con validaciones, preview, drag & drop y optimización de imágenes.
292
+
293
+ ### Uso:
294
+
295
+ ```typescript
296
+ import { MatecuFileInput } from 'angular-matecu';
297
+ ```
298
+
299
+ ```html
300
+ <matecu-file-input
301
+ [multiple]="false"
302
+ [maxFiles]="1"
303
+ [maxFileSize]="5242880"
304
+ [acceptedMimeTypes]="['image/jpeg', 'image/png']"
305
+ [acceptedExtensions]="['.jpg', '.png']"
306
+ [showPreview]="true"
307
+ [enableDragDrop]="true"
308
+ [showFileSize]="true"
309
+ placeholder="Selecciona un archivo o arrastra aquí"
310
+ buttonText="Seleccionar archivo"
311
+ (fileSelect)="onFileSelect($event)"
312
+ (fileRemove)="onFileRemove($event)"
313
+ [(ngModel)]="selectedFiles"
314
+ >
315
+ </matecu-file-input>
316
+ ```
317
+
318
+ ### Propiedades de Validación:
319
+
320
+ - `maxFileSize`: Tamaño máximo de archivo en bytes
321
+ - `maxFiles`: Número máximo de archivos permitidos
322
+ - `acceptedMimeTypes`: Array de tipos MIME permitidos
323
+ - `acceptedExtensions`: Array de extensiones de archivo permitidas
324
+
325
+ ### Propiedades de Funcionalidad:
326
+
327
+ - `multiple`: Permite selección múltiple de archivos
328
+ - `enableDragDrop`: Habilita funcionalidad de drag & drop
329
+ - `showPreview`: Muestra preview de imágenes
330
+ - `showFileSize`: Muestra el tamaño de los archivos
331
+ - `fileSizeUnit`: Unidad para mostrar tamaño ('AUTO', 'bytes', 'KB', 'MB', 'GB', 'TB')
332
+
333
+ ### Propiedades de UI:
334
+
335
+ - `placeholder`: Texto cuando no hay archivos seleccionados
336
+ - `buttonText`: Texto del botón de selección
337
+ - `changeSelectedFileText`: Texto del botón para cambiar archivo
338
+ - `loadingText`: Texto durante procesamiento
339
+ - `previewMaxWidth`/`previewMaxHeight`: Tamaño máximo del preview
340
+
341
+ ### Optimización de Imágenes:
342
+
343
+ ```typescript
344
+ // Función personalizada de optimización
345
+ optimizeImage = async (file: File): Promise<File> => {
346
+ // Tu lógica de optimización
347
+ return optimizedFile;
348
+ };
349
+ ```
350
+
351
+ ```html
352
+ <matecu-file-input [optimizeImage]="optimizeImage" [optimizeImageToSize]="1024000">
353
+ </matecu-file-input>
354
+ ```
355
+
356
+ ### Eventos:
357
+
358
+ - `fileSelect`: Se emite cuando se seleccionan archivos
359
+ - `fileRemove`: Se emite cuando se remueve un archivo
360
+ - `validationError`: Se emite cuando hay errores de validación
361
+
362
+ ### Estados del Componente:
363
+
364
+ - `IDLE`: Estado inicial
365
+ - `LOADING`: Procesando archivos
366
+ - `SUCCESS`: Archivos procesados correctamente
367
+ - `ERROR`: Error en procesamiento
368
+
369
+ ## Componentes de Layout
153
370
 
154
371
  ## MatecuTopbarLayout
155
372
 
156
- Crea la estructura para una página que contiene un topbar en posición fija a la que se le pueden agregar botones de acciones, titulo y buscador.
373
+ Crea la estructura para una página que contiene un topbar en posición fija a la que se le pueden agregar botones de acciones, título y buscador.
157
374
 
158
375
  El contenido de la página tiene una función que se puede llamar para realizar un desplazamiento hacia arriba.
159
376
 
160
- ## Ejemplo básico
377
+ ### Ejemplo básico
161
378
 
162
379
  Importar módulo o componentes
163
380
 
164
- ```
165
- // ...
166
- import { MatecuTopbarLayoutModule } from 'angular-matecu';
167
- import { MatIconModule } from '@angular/material/icon';
168
- import { MatButtonModule } from '@angular/material/button';
169
- // Se pueden importar los componentes de forma individual
170
- // ...
171
- @NgModule({
172
-
173
- declarations: [AppComponent],
174
- imports: [
381
+ ```typescript
382
+ // ...
383
+ import { MatecuTopbarLayoutModule } from 'angular-matecu';
384
+ import { MatIconModule } from '@angular/material/icon';
385
+ import { MatButtonModule } from '@angular/material/button';
386
+ // Se pueden importar los componentes de forma individual
387
+ // ...
388
+ @NgModule({
389
+ declarations: [AppComponent],
390
+ imports: [
175
391
  // ...
176
392
  MatecuTopbarLayoutModule,
177
393
  MatIconModule,
178
- MatButtonModule
394
+ MatButtonModule,
179
395
  // ...
180
- ],
181
- providers: [],
182
- bootstrap: [AppComponent],
183
- })
184
- export class AppModule {}
396
+ ],
397
+ providers: [],
398
+ bootstrap: [AppComponent],
399
+ })
400
+ export class AppModule {}
185
401
  ```
186
402
 
187
403
  Agregar a la plantilla de algún componente:
188
404
 
189
- ```
190
- <matecu-topbar-layout #topbar>
405
+ ```html
406
+ <matecu-topbar-layout #topbar>
191
407
  <matecu-topbar-header-row first-row>
192
408
  <matecu-topbar-header-column left-column>
193
409
  <matecu-topbar-action>
@@ -213,12 +429,11 @@ Agregar a la plantilla de algún componente:
213
429
  <button (click)="topbar.scrollTop()">Regresar al inicio</button>
214
430
  </matecu-topbar-body>
215
431
  </matecu-topbar-layout>
216
-
217
432
  ```
218
433
 
219
434
  Agregar al componente el método para capturar el texto de búsqueda
220
435
 
221
- ```
436
+ ```typescript
222
437
  import { Component } from '@angular/core';
223
438
 
224
439
  @Component({
@@ -230,27 +445,27 @@ export class AppComponent {
230
445
  searchFunction(searchText: string) {
231
446
  console.log(searchText);
232
447
  }
233
-
234
448
  }
235
-
236
449
  ```
237
450
 
238
451
  Ajustar los colores y los estilos en el archivo de css del componente o el archivo de css global
239
452
 
240
- ````
453
+ ```scss
241
454
  // global
242
455
  :root {
243
- // ...
456
+ // ...
244
457
  --mtb-primary-color: red;
245
458
  // ...
246
459
  }
460
+
247
461
  // en el componente
248
462
  :host {
249
- // ...
463
+ // ...
250
464
  --mtb-primary-color: red;
251
465
  // ...
252
466
  }
253
467
  ```
468
+
254
469
  ## Componentes
255
470
 
256
471
  ### MatecuTopbarLayout:
@@ -275,26 +490,26 @@ Componente principal
275
490
 
276
491
  ### Outputs
277
492
 
278
- - mobileStyleChange: Propiedad que se actualiza cuando se redimenciona el componente y se calcula utilizando el valor de mobileWidth. Indica si se deben aplicar estilos para dispositivos móviles
279
- - whenResize: Evento que se emite cuando se redimenciona el componente y retorna el nuevo valor del ancho.
493
+ - mobileStyleChange: Propiedad que se actualiza cuando se redimensiona el componente y se calcula utilizando el valor de mobileWidth. Indica si se deben aplicar estilos para dispositivos móviles
494
+ - whenResize: Evento que se emite cuando se redimensiona el componente y retorna el nuevo valor del ancho.
280
495
 
281
- ### Metodos
496
+ ### Métodos
282
497
 
283
- - scrollTop : Funcion que se puede llamar desde el componente padre y hace scroll del contenido hacia la parte superior
498
+ - scrollTop: Función que se puede llamar desde el componente padre y hace scroll del contenido hacia la parte superior
284
499
 
285
500
  ### MatecuTopbarHeaderRow
286
501
 
287
- Crea una fila para agregar contenido en el encabezado, pueden agregarse hasta 2 filas y es necesario agregar alguno de los siguientes atributos first-row, second-row
502
+ Crea una fila para agregar contenido en el encabezado, pueden agregarse hasta 2 filas y es necesario agregar alguno de los siguientes atributos `first-row`, `second-row`
288
503
 
289
504
  #### Variables de estilos
290
505
 
291
- - --mtb-row-padding
292
- - --mtb-row-margin
293
- - --mtb-row-width
506
+ - `--mtb-row-padding`
507
+ - `--mtb-row-margin`
508
+ - `--mtb-row-width`
294
509
 
295
510
  ### MatecuTopbarHeaderColumn
296
511
 
297
- Crea una columna para agregar contenido a una fila del encabezado es necesario agregar alguno de los siguientes atributos left-column,right-column
512
+ Crea una columna para agregar contenido a una fila del encabezado es necesario agregar alguno de los siguientes atributos `left-column`, `right-column`
298
513
 
299
514
  ### MatecuTopbarAction
300
515
 
@@ -302,23 +517,22 @@ Crea un contenedor para agregar acciones como links o botones preferentemente en
302
517
 
303
518
  #### Variables de estilos
304
519
 
305
- - --mtb-action-padding
306
- - --mtb-action-margin
520
+ - `--mtb-action-padding`
521
+ - `--mtb-action-margin`
307
522
 
308
523
  ### MatecuTopbarFab
309
524
 
310
- Crea un contenedor para agregar un boton (FAB)
525
+ Crea un contenedor para agregar un botón (FAB)
311
526
 
312
527
  #### Variables de estilos
313
528
 
314
- - --mtb-fab-mobile-bottom-position : Posición relativa a la parte inferior del componente pricipal que se aplica cuando estan activos los estilos para dispositivos móviles.
315
-
316
- - --mtb-fab-mobile-right-position: Posición relativa a la parte inferior del componente MatecuTopbarLayout
529
+ - `--mtb-fab-mobile-bottom-position`: Posición relativa a la parte inferior del componente principal que se aplica cuando están activos los estilos para dispositivos móviles.
530
+ - `--mtb-fab-mobile-right-position`: Posición relativa a la parte inferior del componente MatecuTopbarLayout
317
531
 
318
532
  #### Inputs
319
533
 
320
- - mobileStyle: Valor boolaneo que indica si se ajustan los estilos para dispositivos móviles
321
- - display: Valor boolean que indica si se debe mostrar el componente
534
+ - `mobileStyle`: Valor booleano que indica si se ajustan los estilos para dispositivos móviles
535
+ - `display`: Valor boolean que indica si se debe mostrar el componente
322
536
 
323
537
  ### MatecuTopbarSearch
324
538
 
@@ -326,14 +540,14 @@ Crea un campo de texto para hacer búsquedas
326
540
 
327
541
  #### Inputs
328
542
 
329
- - value: Especifica el valor de la búsqueda
330
- - mobileStyle: Valor boolaneo que indica si se ajustan los estilos para dispositivos móviles
331
- - placeholder: Valor del Placeholder del campo de búsqueda
332
- - display: Valor boolean que indica si se debe mostrar el componente
543
+ - `value`: Especifica el valor de la búsqueda
544
+ - `mobileStyle`: Valor booleano que indica si se ajustan los estilos para dispositivos móviles
545
+ - `placeholder`: Valor del Placeholder del campo de búsqueda
546
+ - `display`: Valor boolean que indica si se debe mostrar el componente
333
547
 
334
548
  #### Outputs
335
549
 
336
- - valueChanges: Emite un evento con el valor del texto ingresado en el campo de búsqueda
550
+ - `valueChanges`: Emite un evento con el valor del texto ingresado en el campo de búsqueda
337
551
 
338
552
  ### MatecuTopbarTitle
339
553
 
@@ -341,8 +555,8 @@ Crea un contenedor para agregar un título a la página.
341
555
 
342
556
  #### Variables de estilos
343
557
 
344
- - --mtb-title-padding
345
- - --mtb-title-margin
558
+ - `--mtb-title-padding`
559
+ - `--mtb-title-margin`
346
560
 
347
561
  ### MatecuTopbarBody
348
562
 
@@ -350,7 +564,10 @@ Crea un contenedor para agregar el contenido de la página
350
564
 
351
565
  #### Variables de estilos
352
566
 
353
- --mtb-body-padding: Padding para el contenido
354
- --mtb-body-background: Fondo del contenido;
355
- --mtb-body-padding-button: Padding inferior (Es utilizado para asignar un espacio al Botón principal (FAB) cuando tiene asignados los estilos para dispositivos móviles)
356
- ````
567
+ - `--mtb-body-padding`: Padding para el contenido
568
+ - `--mtb-body-background`: Fondo del contenido
569
+ - `--mtb-body-padding-button`: Padding inferior (Es utilizado para asignar un espacio al Botón principal (FAB) cuando tiene asignados los estilos para dispositivos móviles)
570
+
571
+ ```
572
+
573
+ ```
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "../../dist/angular-matecu",
4
+ "lib": {
5
+ "entryFile": "src/public-api.ts"
6
+ }
7
+ }