ng-components-tsi 0.0.38 → 0.0.39

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 (237) hide show
  1. package/fesm2022/ng-components-tsi.mjs +5063 -0
  2. package/fesm2022/ng-components-tsi.mjs.map +1 -0
  3. package/index.d.ts +5 -0
  4. package/lib/directivas/acciones/atajos.directive.d.ts +8 -0
  5. package/lib/directivas/animaciones/fade-animation.d.ts +3 -0
  6. package/lib/directivas/estilos/animated-checkbox.directive.d.ts +9 -0
  7. package/lib/directivas/estilos/button.constants.d.ts +64 -0
  8. package/lib/directivas/estilos/buttons-modal.directive.d.ts +11 -0
  9. package/lib/directivas/estilos/buttons-outline-directive.d.ts +11 -0
  10. package/lib/directivas/estilos/icons.directive.d.ts +11 -0
  11. package/lib/directivas/inputs/caracteres-codigo.directive.d.ts +12 -0
  12. package/lib/directivas/inputs/decimal.directive.d.ts +13 -0
  13. package/lib/directivas/inputs/only-day.directive.d.ts +8 -0
  14. package/lib/directivas/inputs/only-number-flex.directive.d.ts +9 -0
  15. package/lib/directivas/inputs/only-number.directive.d.ts +8 -0
  16. package/lib/enums/table-events.d.ts +5 -0
  17. package/lib/modals/general/md-generico/md-generico.component.d.ts +25 -0
  18. package/lib/models/button-color.model.d.ts +3 -0
  19. package/{src/lib/models/button-properties.model.ts → lib/models/button-properties.model.d.ts} +7 -8
  20. package/lib/models/cell-rendered.d.ts +11 -0
  21. package/lib/models/comercial/documentos-cab-auxiliares.model.d.ts +17 -0
  22. package/{src/lib/models/dropdownoption.model.ts → lib/models/dropdownoption.model.d.ts} +14 -15
  23. package/lib/models/general/recursos.model.d.ts +271 -0
  24. package/lib/models/general/utils.interface.d.ts +57 -0
  25. package/lib/models/input-config.d.ts +25 -0
  26. package/{src/lib/models/selected-row.ts → lib/models/selected-row.d.ts} +4 -4
  27. package/{src/lib/models/table-data.model.ts → lib/models/table-data.model.d.ts} +21 -21
  28. package/lib/service/alert-confirmation.service.d.ts +26 -0
  29. package/lib/service/alert-error.service.d.ts +9 -0
  30. package/lib/service/alert.service.d.ts +33 -0
  31. package/lib/service/formateador.service.d.ts +10 -0
  32. package/lib/service/toast.service.d.ts +25 -0
  33. package/lib/ui/alerts/alert-confirmation/alert-confirmation.component.d.ts +32 -0
  34. package/lib/ui/alerts/alert-error/alert-error.component.d.ts +9 -0
  35. package/lib/ui/alerts/alerta/alerta.component.d.ts +12 -0
  36. package/lib/ui/alerts/badge/badge.component.d.ts +8 -0
  37. package/lib/ui/alerts/toaster/toaster.component.d.ts +17 -0
  38. package/lib/ui/dropdown/dropdown-cdk/dropdown-cdk.component.d.ts +11 -0
  39. package/lib/ui/dropdown/dropdown-simple/dropdown.component.d.ts +13 -0
  40. package/lib/ui/forms/button/button.component.d.ts +47 -0
  41. package/lib/ui/forms/filter-toggle/filter-toggle.component.d.ts +9 -0
  42. package/lib/ui/forms/header/header.component.d.ts +17 -0
  43. package/lib/ui/forms/inputs/autocomplete/autocomplete.component.d.ts +43 -0
  44. package/lib/ui/forms/inputs/autocomplete-cdk/autocomplete.component.d.ts +48 -0
  45. package/lib/ui/forms/inputs/check-box/check-box.component.d.ts +14 -0
  46. package/lib/ui/forms/inputs/doble-input/doble-input.component.d.ts +47 -0
  47. package/lib/ui/forms/inputs/input/input.component.d.ts +60 -0
  48. package/lib/ui/forms/inputs/input-clase/input-clase.component.d.ts +13 -0
  49. package/lib/ui/forms/inputs/input-dinamico/input-dinamico.component.d.ts +8 -0
  50. package/lib/ui/forms/inputs/input-radio/input-radio.component.d.ts +24 -0
  51. package/lib/ui/forms/inputs/multiselected/multiselected.component.d.ts +39 -0
  52. package/lib/ui/forms/inputs/radio/radio.component.d.ts +14 -0
  53. package/lib/ui/forms/inputs/switch/switch.component.d.ts +20 -0
  54. package/lib/ui/forms/inputs/switch-activo/switch-activo.component.d.ts +21 -0
  55. package/lib/ui/forms/lists/list-option/list-option.component.d.ts +23 -0
  56. package/lib/ui/forms/lists/list-situaciones/list-situaciones.component.d.ts +28 -0
  57. package/lib/ui/forms/lists/multi-select-dropdown/multi-select-dropdown.component.d.ts +26 -0
  58. package/lib/ui/forms/sidebar/sidebar.component.d.ts +15 -0
  59. package/lib/ui/general/detalle-credito/detalle-credito.component.d.ts +8 -0
  60. package/lib/ui/general/montos-calcular/montos-calcular.component.d.ts +12 -0
  61. package/lib/ui/general/spinner/spinner.component.d.ts +5 -0
  62. package/lib/ui/tables/card-mobile/card-mobile.component.d.ts +17 -0
  63. package/lib/ui/tables/dropdown-menu/dropdown-menu.component.d.ts +43 -0
  64. package/lib/ui/tables/paginador/paginador.component.d.ts +20 -0
  65. package/lib/ui/tables/table-advance/table-advance.component.d.ts +94 -0
  66. package/lib/ui/tables/table-advance-optimizada/table-advance-optimizada.component.d.ts +82 -0
  67. package/lib/ui/tables/table-agrupada/table-agrupada.component.d.ts +96 -0
  68. package/lib/ui/tables/table-busqueda/table-busqueda.component.d.ts +48 -0
  69. package/lib/ui/tables/table-detalle/table-detalle.component.d.ts +59 -0
  70. package/lib/ui/tables/table-simple/table-simple.component.d.ts +39 -0
  71. package/lib/ui/tables/table-ultimate/table-ultimate.component.d.ts +84 -0
  72. package/lib/ui/tabs/nav-tabs/nav-tabs.component.d.ts +9 -0
  73. package/lib/ui/tabs/tab-item/tab-item.component.d.ts +9 -0
  74. package/lib/utils/general/validaciones-simple.d.ts +2 -0
  75. package/lib/utils/general/validaciones.d.ts +11 -0
  76. package/lib/utils/helpers/api-result.d.ts +17 -0
  77. package/lib/utils/helpers/modal-result.d.ts +10 -0
  78. package/ng-components-tsi-0.0.39.tgz +0 -0
  79. package/package.json +31 -23
  80. package/{src/public-api.ts → public-api.d.ts} +68 -99
  81. package/ng-package.json +0 -7
  82. package/src/lib/directivas/acciones/atajos.directive.ts +0 -26
  83. package/src/lib/directivas/animaciones/fade-animation.ts +0 -45
  84. package/src/lib/directivas/animaciones/fade.directive.ts +0 -43
  85. package/src/lib/directivas/estilos/animated-checkbox.directive.ts +0 -26
  86. package/src/lib/directivas/estilos/button.constants.ts +0 -66
  87. package/src/lib/directivas/estilos/buttons-modal.directive.ts +0 -36
  88. package/src/lib/directivas/estilos/buttons-outline-directive.ts +0 -27
  89. package/src/lib/directivas/estilos/icons.directive.ts +0 -26
  90. package/src/lib/directivas/inputs/caracteres-codigo.directive.ts +0 -63
  91. package/src/lib/directivas/inputs/decimal.directive.ts +0 -51
  92. package/src/lib/directivas/inputs/only-day.directive.ts +0 -53
  93. package/src/lib/directivas/inputs/only-number-flex.directive.ts +0 -50
  94. package/src/lib/directivas/inputs/only-number.directive.ts +0 -53
  95. package/src/lib/enums/table-events.ts +0 -5
  96. package/src/lib/modals/general/md-generico/md-generico.component.html +0 -44
  97. package/src/lib/modals/general/md-generico/md-generico.component.scss +0 -4
  98. package/src/lib/modals/general/md-generico/md-generico.component.ts +0 -50
  99. package/src/lib/models/button-color.model.ts +0 -9
  100. package/src/lib/models/cell-rendered.ts +0 -12
  101. package/src/lib/models/comercial/documentos-cab-auxiliares.model.ts +0 -18
  102. package/src/lib/models/general/recursos.model.ts +0 -285
  103. package/src/lib/models/general/utils.interface.ts +0 -66
  104. package/src/lib/models/input-config.ts +0 -26
  105. package/src/lib/service/alert-confirmation.service.ts +0 -87
  106. package/src/lib/service/alert-error.service.ts +0 -27
  107. package/src/lib/service/alert.service.ts +0 -216
  108. package/src/lib/service/formateador.service.ts +0 -49
  109. package/src/lib/service/toast.service.ts +0 -75
  110. package/src/lib/ui/alerts/alert-confirmation/alert-confirmation.component.html +0 -40
  111. package/src/lib/ui/alerts/alert-confirmation/alert-confirmation.component.scss +0 -42
  112. package/src/lib/ui/alerts/alert-confirmation/alert-confirmation.component.ts +0 -118
  113. package/src/lib/ui/alerts/alert-error/alert-error.component.html +0 -11
  114. package/src/lib/ui/alerts/alert-error/alert-error.component.scss +0 -39
  115. package/src/lib/ui/alerts/alert-error/alert-error.component.ts +0 -27
  116. package/src/lib/ui/alerts/alerta/alerta.component.html +0 -18
  117. package/src/lib/ui/alerts/alerta/alerta.component.scss +0 -104
  118. package/src/lib/ui/alerts/alerta/alerta.component.ts +0 -25
  119. package/src/lib/ui/alerts/badge/badge.component.ts +0 -16
  120. package/src/lib/ui/alerts/toaster/toaster.component.html +0 -52
  121. package/src/lib/ui/alerts/toaster/toaster.component.scss +0 -275
  122. package/src/lib/ui/alerts/toaster/toaster.component.ts +0 -50
  123. package/src/lib/ui/dropdown/dropdown-cdk/dropdown-cdk.component.html +0 -20
  124. package/src/lib/ui/dropdown/dropdown-cdk/dropdown-cdk.component.scss +0 -11
  125. package/src/lib/ui/dropdown/dropdown-cdk/dropdown-cdk.component.ts +0 -18
  126. package/src/lib/ui/dropdown/dropdown-simple/dropdown.component.html +0 -10
  127. package/src/lib/ui/dropdown/dropdown-simple/dropdown.component.scss +0 -54
  128. package/src/lib/ui/dropdown/dropdown-simple/dropdown.component.ts +0 -36
  129. package/src/lib/ui/forms/button/button.component.html +0 -69
  130. package/src/lib/ui/forms/button/button.component.scss +0 -126
  131. package/src/lib/ui/forms/button/button.component.ts +0 -137
  132. package/src/lib/ui/forms/filter-toggle/filter-toggle.component.scss +0 -22
  133. package/src/lib/ui/forms/filter-toggle/filter-toggle.component.ts +0 -29
  134. package/src/lib/ui/forms/header/header.component.html +0 -22
  135. package/src/lib/ui/forms/header/header.component.scss +0 -22
  136. package/src/lib/ui/forms/header/header.component.ts +0 -40
  137. package/src/lib/ui/forms/inputs/autocomplete/autocomplete.component.html +0 -46
  138. package/src/lib/ui/forms/inputs/autocomplete/autocomplete.component.scss +0 -90
  139. package/src/lib/ui/forms/inputs/autocomplete/autocomplete.component.ts +0 -203
  140. package/src/lib/ui/forms/inputs/autocomplete-cdk/autocomplete.component.html +0 -61
  141. package/src/lib/ui/forms/inputs/autocomplete-cdk/autocomplete.component.scss +0 -128
  142. package/src/lib/ui/forms/inputs/autocomplete-cdk/autocomplete.component.ts +0 -145
  143. package/src/lib/ui/forms/inputs/check-box/check-box.component.html +0 -6
  144. package/src/lib/ui/forms/inputs/check-box/check-box.component.ts +0 -24
  145. package/src/lib/ui/forms/inputs/doble-input/doble-input.component.html +0 -60
  146. package/src/lib/ui/forms/inputs/doble-input/doble-input.component.scss +0 -86
  147. package/src/lib/ui/forms/inputs/doble-input/doble-input.component.ts +0 -129
  148. package/src/lib/ui/forms/inputs/input/input.component.html +0 -169
  149. package/src/lib/ui/forms/inputs/input/input.component.scss +0 -74
  150. package/src/lib/ui/forms/inputs/input/input.component.ts +0 -147
  151. package/src/lib/ui/forms/inputs/input-clase/input-clase.component.html +0 -30
  152. package/src/lib/ui/forms/inputs/input-clase/input-clase.component.scss +0 -0
  153. package/src/lib/ui/forms/inputs/input-clase/input-clase.component.ts +0 -28
  154. package/src/lib/ui/forms/inputs/input-dinamico/input-dinamico.component.html +0 -41
  155. package/src/lib/ui/forms/inputs/input-dinamico/input-dinamico.component.scss +0 -0
  156. package/src/lib/ui/forms/inputs/input-dinamico/input-dinamico.component.ts +0 -17
  157. package/src/lib/ui/forms/inputs/input-radio/input-radio.component.html +0 -26
  158. package/src/lib/ui/forms/inputs/input-radio/input-radio.component.scss +0 -53
  159. package/src/lib/ui/forms/inputs/input-radio/input-radio.component.ts +0 -36
  160. package/src/lib/ui/forms/inputs/multiselected/multiselected.component.html +0 -56
  161. package/src/lib/ui/forms/inputs/multiselected/multiselected.component.scss +0 -145
  162. package/src/lib/ui/forms/inputs/multiselected/multiselected.component.ts +0 -109
  163. package/src/lib/ui/forms/inputs/radio/radio.component.html +0 -7
  164. package/src/lib/ui/forms/inputs/radio/radio.component.scss +0 -0
  165. package/src/lib/ui/forms/inputs/radio/radio.component.ts +0 -23
  166. package/src/lib/ui/forms/inputs/switch/switch.component.html +0 -12
  167. package/src/lib/ui/forms/inputs/switch/switch.component.scss +0 -48
  168. package/src/lib/ui/forms/inputs/switch/switch.component.ts +0 -50
  169. package/src/lib/ui/forms/inputs/switch-activo/switch-activo.component.html +0 -12
  170. package/src/lib/ui/forms/inputs/switch-activo/switch-activo.component.scss +0 -65
  171. package/src/lib/ui/forms/inputs/switch-activo/switch-activo.component.ts +0 -52
  172. package/src/lib/ui/forms/lists/list-option/list-option.component.html +0 -24
  173. package/src/lib/ui/forms/lists/list-option/list-option.component.scss +0 -49
  174. package/src/lib/ui/forms/lists/list-option/list-option.component.ts +0 -35
  175. package/src/lib/ui/forms/lists/list-situaciones/list-situaciones.component.html +0 -29
  176. package/src/lib/ui/forms/lists/list-situaciones/list-situaciones.component.scss +0 -0
  177. package/src/lib/ui/forms/lists/list-situaciones/list-situaciones.component.ts +0 -99
  178. package/src/lib/ui/forms/lists/multi-select-dropdown/multi-select-dropdown.component.html +0 -46
  179. package/src/lib/ui/forms/lists/multi-select-dropdown/multi-select-dropdown.component.scss +0 -30
  180. package/src/lib/ui/forms/lists/multi-select-dropdown/multi-select-dropdown.component.ts +0 -96
  181. package/src/lib/ui/forms/sidebar/sidebar.component.html +0 -33
  182. package/src/lib/ui/forms/sidebar/sidebar.component.scss +0 -85
  183. package/src/lib/ui/forms/sidebar/sidebar.component.ts +0 -61
  184. package/src/lib/ui/general/detalle-credito/detalle-credito.component.html +0 -35
  185. package/src/lib/ui/general/detalle-credito/detalle-credito.component.scss +0 -35
  186. package/src/lib/ui/general/detalle-credito/detalle-credito.component.ts +0 -14
  187. package/src/lib/ui/general/montos-calcular/montos-calcular.component.html +0 -17
  188. package/src/lib/ui/general/montos-calcular/montos-calcular.component.scss +0 -36
  189. package/src/lib/ui/general/montos-calcular/montos-calcular.component.ts +0 -19
  190. package/src/lib/ui/general/spinner/spinner.component.html +0 -8
  191. package/src/lib/ui/general/spinner/spinner.component.scss +0 -96
  192. package/src/lib/ui/general/spinner/spinner.component.ts +0 -11
  193. package/src/lib/ui/tables/card-mobile/card-mobile.component.html +0 -34
  194. package/src/lib/ui/tables/card-mobile/card-mobile.component.scss +0 -0
  195. package/src/lib/ui/tables/card-mobile/card-mobile.component.ts +0 -36
  196. package/src/lib/ui/tables/dropdown-menu/dropdown-menu.component.html +0 -59
  197. package/src/lib/ui/tables/dropdown-menu/dropdown-menu.component.scss +0 -88
  198. package/src/lib/ui/tables/dropdown-menu/dropdown-menu.component.ts +0 -171
  199. package/src/lib/ui/tables/paginador/paginador.component.html +0 -12
  200. package/src/lib/ui/tables/paginador/paginador.component.scss +0 -27
  201. package/src/lib/ui/tables/paginador/paginador.component.ts +0 -49
  202. package/src/lib/ui/tables/table-advance/table-advance.component.html +0 -322
  203. package/src/lib/ui/tables/table-advance/table-advance.component.scss +0 -282
  204. package/src/lib/ui/tables/table-advance/table-advance.component.ts +0 -421
  205. package/src/lib/ui/tables/table-advance-optimizada/table-advance-optimizada.component.html +0 -226
  206. package/src/lib/ui/tables/table-advance-optimizada/table-advance-optimizada.component.scss +0 -282
  207. package/src/lib/ui/tables/table-advance-optimizada/table-advance-optimizada.component.ts +0 -352
  208. package/src/lib/ui/tables/table-agrupada/table-agrupada.component.html +0 -340
  209. package/src/lib/ui/tables/table-agrupada/table-agrupada.component.scss +0 -282
  210. package/src/lib/ui/tables/table-agrupada/table-agrupada.component.ts +0 -425
  211. package/src/lib/ui/tables/table-busqueda/table-busqueda.component.html +0 -130
  212. package/src/lib/ui/tables/table-busqueda/table-busqueda.component.scss +0 -189
  213. package/src/lib/ui/tables/table-busqueda/table-busqueda.component.ts +0 -199
  214. package/src/lib/ui/tables/table-detalle/table-detalle.component.html +0 -220
  215. package/src/lib/ui/tables/table-detalle/table-detalle.component.scss +0 -135
  216. package/src/lib/ui/tables/table-detalle/table-detalle.component.ts +0 -336
  217. package/src/lib/ui/tables/table-simple/table-simple.component.html +0 -116
  218. package/src/lib/ui/tables/table-simple/table-simple.component.scss +0 -70
  219. package/src/lib/ui/tables/table-simple/table-simple.component.ts +0 -141
  220. package/src/lib/ui/tables/table-ultimate/table-ultimate.component.html +0 -268
  221. package/src/lib/ui/tables/table-ultimate/table-ultimate.component.scss +0 -282
  222. package/src/lib/ui/tables/table-ultimate/table-ultimate.component.ts +0 -383
  223. package/src/lib/ui/tabs/nav-tabs/nav-tabs.component.html +0 -12
  224. package/src/lib/ui/tabs/nav-tabs/nav-tabs.component.scss +0 -100
  225. package/src/lib/ui/tabs/nav-tabs/nav-tabs.component.ts +0 -19
  226. package/src/lib/ui/tabs/tab-item/tab-item.component.html +0 -0
  227. package/src/lib/ui/tabs/tab-item/tab-item.component.scss +0 -0
  228. package/src/lib/ui/tabs/tab-item/tab-item.component.ts +0 -13
  229. package/src/lib/utils/ayuda-global/datatable.ts +0 -67
  230. package/src/lib/utils/ayuda-global/filtros-busqueda.ts +0 -51
  231. package/src/lib/utils/general/validaciones-simple.ts +0 -14
  232. package/src/lib/utils/general/validaciones.ts +0 -123
  233. package/src/lib/utils/helpers/api-result.ts +0 -95
  234. package/src/lib/utils/helpers/modal-result.ts +0 -34
  235. package/tsconfig.lib.json +0 -15
  236. package/tsconfig.lib.prod.json +0 -11
  237. package/tsconfig.spec.json +0 -15
@@ -1,116 +0,0 @@
1
- @if (withFiltro()) {
2
- <div class="col-12 mb-2 mt-2 d-flex justify-content-end align-items-center">
3
- <label for="" class="form-label me-2 pt-2">Buscar:</label>
4
- <input type="text" class="form-control cw-250" (input)="textoDigitado($event)">
5
- </div>
6
- }
7
- <div class="table-container table-responsive" [style.max-height]="generateValueContainer()"
8
- [style.height]="generateValueContainer()">
9
- <table #table class="table table-striped normal-table" [ngClass]="isDarkMode() ? 'table-dark' : ''">
10
- <thead>
11
- <tr class="shadow-sm">
12
- @if (customActions) {
13
- <th scope="col" class="width-50 mwp-50 b-table h-table"></th>
14
- }
15
-
16
- @for (column of columns(); track $index) {
17
- @if (column.tipo !== 'mostrar' || column.condition()) {
18
- <th class="b-table h-table" scope="col" #thElement [title]="column.caption" [style.width]="column.width + 'px'"
19
- [style.min-width]="column.width + 'px'">
20
- {{ column.caption }}
21
- </th>
22
- }
23
- }
24
- </tr>
25
- </thead>
26
-
27
- <tbody>
28
- @for (row of rowFilter(); track $index) {
29
- <tr [ngClass]="{'table-active': (identifier().length < 1 ? selectedRow() == $index : selectedRow() == concatenarValue(row,identifier()))}"
30
- (click)="selectRow(identifier().length < 1 ? $index : row); checkItem(row)"
31
- [id]="identifier().length < 1 ? ('row_table_' + $index) : ('row_table_'+ concatenarValue(row,identifier()))">
32
-
33
-
34
- @if (customActions) {
35
- <td class="text-center mwp-90 b-table">
36
- <ng-container *ngTemplateOutlet="customActions; context: { $implicit: row }"></ng-container>
37
- </td>
38
- }
39
-
40
- @for (column of columns(); track $index) {
41
- @if (column.template) {
42
- <td class="b-table">
43
- <ng-container *ngTemplateOutlet="column.template; context: { $implicit: row, column: column }">
44
- </ng-container>
45
- </td>
46
-
47
- }
48
- @else {
49
-
50
- @switch (column.tipo) {
51
- @case ('fecha') {
52
- <td class="b-table" [innerHTML]="getHighlight(row[column.fieldname] | date:'dd/MM/yyyy')"
53
- [title]="row[column.fieldname] | date:'dd/MM/yyyy'" [ngClass]="row.situac == 'J' ? 'text-error':''">
54
- </td>
55
-
56
- }
57
-
58
- @case ('situacion') {
59
- <td class="b-table" [innerHTML]="getHighlight(row[column.fieldname])" [title]="row[column.fieldname]"
60
- [ngClass]="row.situac == 'J' ? 'text-error':''">
61
-
62
- </td>
63
-
64
- }
65
-
66
- @case ('decimal') {
67
- <td class="text-end b-table" [innerHTML]="getHighlight((row[column.fieldname] ?? 0) | number:'1.2-2')"
68
- [title]="(row[column.fieldname] ?? 0) | number:'1.2-2'"
69
- [ngClass]="row.situac == 'J' ? 'text-error':''">
70
- </td>
71
- }
72
-
73
- @case ('text-center') {
74
- <td class="text-center b-table" [innerHTML]="getHighlight(row[column.fieldname])"
75
- [title]="row[column.fieldname]" [ngClass]="row.situac == 'J' ? 'text-error':''">
76
- </td>
77
- }
78
-
79
- @case ('check') {
80
- <td class="text-center b-table" [title]="checkString[row[column.fieldname]]">
81
- <i class="fs-5"
82
- [ngClass]="row[column.fieldname] == 'S'?'fas fa-check yes-icon':'fas fa-times no-icon'"></i>
83
- </td>
84
- }
85
-
86
- @case ('cell-render') {
87
- @let resolverItem = resolveCell(column.fieldname, row);
88
- @if (resolverItem) {
89
- <td class="b-table" [title]="resolverItem.text" [class.text-center]="resolverItem.icon">
90
- @if (resolverItem.icon) {
91
- <i class="fs-5" [ngClass]="resolverItem.icon"></i>
92
- } @else if (resolverItem.class) {
93
- <span [ngClass]="resolverItem.class">{{ resolverItem.text }}</span>
94
- } @else {
95
- {{ resolverItem.text }}
96
- }
97
- </td>
98
- }
99
- }
100
-
101
- @default {
102
- <td class="b-table" [innerHTML]="getHighlight(row[column.fieldname])" [title]="row[column.fieldname]"
103
- [ngClass]="row.situac == 'J' ? 'text-error':''">
104
-
105
- </td>
106
-
107
- }
108
- }
109
-
110
- }
111
- }
112
- </tr>
113
- }
114
- </tbody>
115
- </table>
116
- </div>
@@ -1,70 +0,0 @@
1
- thead {
2
- position: sticky;
3
- top: 0;
4
- z-index: 1;
5
- }
6
-
7
- .table-container {
8
- width: 100%;
9
- max-width: 100%;
10
- overflow-x: auto;
11
- display: block;
12
- white-space: nowrap;
13
- }
14
-
15
- .table-blank {
16
- --bs-table-bg-state: white !important
17
- }
18
-
19
- .normal-table thead tr th {
20
- font-size: 11px;
21
- text-align: start;
22
- font-weight: bold;
23
- //color: black;
24
- max-width: 220px;
25
- white-space: nowrap;
26
- overflow: hidden;
27
- text-overflow: ellipsis;
28
- border: 1px solid rgb(226, 226, 226);
29
- }
30
-
31
- .normal-table tbody tr {
32
- height: 30px;
33
- }
34
-
35
- .normal-table tbody tr td {
36
- font-size: 11px;
37
- vertical-align: middle;
38
- font-weight: 500;
39
- //color: black;
40
- white-space: nowrap;
41
- text-overflow: ellipsis;
42
- //border: 1px solid rgb(226, 226, 226);
43
- padding-top: 0;
44
- padding-bottom: 0;
45
- }
46
-
47
- .normal-table thead {
48
- position: sticky;
49
- top: 0;
50
- z-index: 1;
51
- }
52
-
53
- @media (max-width:1600px) {
54
- .normal-table tbody tr td {
55
- font-size: 9px;
56
- }
57
-
58
- .normal-table thead tr th {
59
- font-size: 10px;
60
- }
61
- }
62
-
63
- .text-error {
64
- color: rgb(214, 0, 0) !important;
65
- font-weight: bold !important;
66
- }
67
- .text-exito {
68
- color: rgb(0, 119, 60) !important;
69
- font-weight: bold !important;
70
- }
@@ -1,141 +0,0 @@
1
- import { CommonModule, DatePipe, DecimalPipe } from '@angular/common';
2
- import { Component, computed, ContentChild, inject, input, linkedSignal, model, output, TemplateRef } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { CellRender, CellRendered } from '../../../models/cell-rendered';
5
-
6
- @Component({
7
- selector: 'app-table-simple',
8
- imports: [FormsModule, CommonModule],
9
- templateUrl: './table-simple.component.html',
10
- styleUrl: './table-simple.component.scss',
11
- providers:[DatePipe,DecimalPipe]
12
- })
13
- export class TableSimpleComponent {
14
-
15
- private datePipe = inject(DatePipe)
16
- private decimalPipe = inject(DecimalPipe)
17
-
18
- withFiltro = input<boolean>(false)
19
- busqueda = model<string>('')
20
- rows = input<any[]>([])
21
- columns = input<any[]>([]);
22
- altoContainer = input<number>()
23
- selectedRow = model<any>(null)
24
- identifier = input<string[]>([])
25
- position = input<'flex'|'block'>('flex')
26
- withSelect = input<boolean>(false)
27
- selected = output<any>()
28
-
29
- rendered = input<CellRendered[]>([])
30
-
31
- isDarkMode = input<boolean>(false)
32
-
33
- @ContentChild('customActions', { static: false }) customActions!: TemplateRef<any>
34
-
35
- checkString = {
36
- 'S': 'Activo',
37
- 'N': 'Inactivo'
38
- }
39
-
40
- rowFilter = computed(() => {
41
- const term = this.busqueda().toLowerCase()
42
- const currentRows = this.rows?.() || []
43
- return currentRows.filter(item => this.filtraItem(item, term))
44
- })
45
-
46
- filtrarColumnas = linkedSignal(() => {
47
- const columns = this.columns()
48
- const filtro: { [caption: string]: boolean } = {}
49
- columns.forEach((col) => {
50
- if (col.fieldname) {
51
- filtro[col.fieldname] = true
52
- }
53
- })
54
- return filtro
55
- })
56
-
57
- concatenarValue(obj: any, value: string[]) {
58
- let result = ''
59
- value.forEach(el => {
60
- result += obj[el]
61
- })
62
- return result
63
- }
64
-
65
- selectRow(index: any) {
66
- if (this.identifier().length < 1) {
67
- return this.selectedRow.set(index)
68
- }
69
- this.selectedRow.set(this.concatenarValue(index, this.identifier()))
70
- }
71
-
72
- checkItem (row:any) {
73
- if(this.withSelect()){
74
- this.selected.emit(row)
75
- }
76
- }
77
-
78
- getHighlight(text: any): string {
79
- if (text == null) {
80
- text = ''
81
- }
82
- if (!this.busqueda()) return text
83
- if (typeof text !== 'string') {
84
- text = text.toString()
85
- }
86
- const regex = new RegExp(`(${this.busqueda()})`, 'gi')
87
- return text?.replace(regex, '<mark>$1</mark>')
88
- }
89
-
90
- generateValueContainer = () => {
91
- if(this.position() == 'flex' && this.altoContainer()){
92
- return 'calc(100vh - ' + this.altoContainer() + 'px)'
93
- }
94
- if(this.position() == 'block' && this.altoContainer()){
95
- return this.altoContainer() + 'px'
96
- }
97
- return ''
98
- }
99
-
100
- getTipoCampo(fieldname: string): string {
101
- const columna = this.columns().find(col => col.fieldname == fieldname)
102
- return columna?.tipo ?? 'string'
103
- }
104
-
105
- private filtraItem(item: any, term: string): boolean {
106
- const columnasActivas = Object.entries(this.filtrarColumnas())
107
- .filter(([_campo, activo]) => activo)
108
-
109
- return columnasActivas.some(([campo]) => {
110
- let valor = item[campo]
111
- const tipo = this.getTipoCampo(campo)
112
-
113
- switch (tipo) {
114
- case 'fecha':
115
- valor = this.datePipe.transform(valor, 'dd/MM/yyyy') ?? ''
116
- break
117
- case 'decimal':
118
- valor = this.decimalPipe.transform(valor, '1.2-2') ?? ''
119
- break
120
- case 'check':
121
- valor = valor ? 'Sí' : 'No'
122
- break
123
- default:
124
- valor = (valor ?? '').toString()
125
- }
126
-
127
- return valor.toLowerCase().includes(term)
128
- })
129
- }
130
-
131
- textoDigitado(event: Event) {
132
- const value = (event.target as HTMLInputElement).value
133
- this.busqueda.set(value)
134
- }
135
-
136
- resolveCell(col:string, row:any): CellRender | null {
137
- const value = row[col];
138
- const r = this.rendered().find(r => r.matches(col, value, row));
139
- return r ? r.render(value, row) : null;
140
- }
141
- }
@@ -1,268 +0,0 @@
1
-
2
- @if (withFiltro()) {
3
- <div class="col-12 mb-2 mt-2 d-flex justify-content-end align-items-center">
4
- <label class="form-label me-2 pt-2">Buscar</label>
5
- <input type="text" class="form-control cw-250" (input)="textoDigitado($event)">
6
-
7
- <app-dropdown-cdk>
8
- <ng-template #trigger>
9
- <button class="btn btn-dark boton-buscar fs-7">
10
- <i class="fas fa-cog"></i>
11
- </button>
12
- </ng-template>
13
-
14
- <ng-template #content>
15
- <div class="popover-menu-filter bg-white shadow" @dropdownAnimation>
16
- <div class="popover-title fs-7 bg-white">
17
- Filtros
18
- </div>
19
-
20
- <div class="form-check form-switch text-start d-flex align-items-center">
21
- <input class="form-check-input py-0 my-0 cw-25 ch-15" type="checkbox" [checked]="true"
22
- (change)="toggleFiltros($event)" />
23
- <label class="form-check-label ps-2 fs-6 mb-0 cursor-pointer">
24
- Todos
25
- </label>
26
- </div>
27
-
28
- @for (col of columns(); track col.caption) {
29
- <div class="form-check form-switch text-start d-flex align-items-center">
30
- <input type="checkbox" class="form-check-input py-0 my-0 cw-25 ch-15"
31
- id="{{ 'filter_' + col.caption }}" [(ngModel)]="filtrarColumnas()[col.fieldname]" />
32
- <label class="form-check-label ps-2 fs-6 cursor-pointer mb-0" for="{{ 'filter_' + col.caption }}">
33
- {{ col.caption }}
34
- </label>
35
- </div>
36
- }
37
- </div>
38
- </ng-template>
39
- </app-dropdown-cdk>
40
- </div>
41
- }
42
-
43
- <!-- VISTA MOBILE -->
44
- @if (activeMobileMode()) {
45
- @if (isLoadingResponsive()) {
46
- <div class="d-flex flex-column justify-content-center align-items-center py-2">
47
- <div class="spinner-border text-secondary mb-2" role="status"></div>
48
- <span class="ms-2 fs-6">Cargando...</span>
49
- </div>
50
- }
51
-
52
- @if (!isLoadingResponsive()) {
53
- @if (isMobile()) {
54
- <app-card-mobile [data]="rowFilter()" [columns]="columns()" [actions]="customActions()" [identifier]="identifier()"
55
- [titleTabla]="titleTabla()" [altoContainer]="altoContainer()" />
56
- }
57
- @if (!isMobile()) {
58
- <ng-container *ngTemplateOutlet="table"></ng-container>
59
- }
60
- }
61
- }
62
- @else {
63
- <ng-container *ngTemplateOutlet="table"></ng-container>
64
- }
65
-
66
- <ng-template #table>
67
- <div class="table-container table-responsive"
68
- [style.height]="withHeight() && altoContenedor() ? 'calc(100vh - ' + altoContenedor() + 'px)' : ''"
69
- [style.max-height]="altoContenedor()? 'calc(100vh - ' + altoContenedor() + 'px)' : ''">
70
- <div>
71
- <table #table class="table table-striped normal-table" [ngClass]="isDarkMode() ? 'table-dark' : ''">
72
- <thead>
73
- <tr class="shadow-sm">
74
- @if (withDetails()) {
75
- <th class="cw-20 b-table" [ngClass]="colorHeader()== 'normal' ? 'h-table' : ''"></th>
76
- }
77
-
78
- @if (withCheckbox()) {
79
- <th class="cw-20 b-table" [ngClass]="colorHeader()== 'normal' ? 'h-table' : ''">
80
- <label>
81
- <input type="checkbox" name="check_box_select_table_main"
82
- id="check_box_select_table_main" animatedCheckbox [checked]="validaAllCheck()"
83
- (change)="allCheck($event)">
84
- </label>
85
- </th>
86
- }
87
-
88
- @if (customActions()) {
89
- <th class="cw-40 b-table" [ngClass]="colorHeader()== 'normal' ? 'h-table' : ''">
90
-
91
- <app-dropdown-cdk>
92
- <ng-template #trigger>
93
- <button class="btn p-0 text-dark d-flex mx-auto border-0">
94
- <i class="fas fa-cog"></i>
95
- </button>
96
- </ng-template>
97
- <ng-template #content>
98
- <div class="popover-menu-column bg-white shadow mt-2" @dropdownAnimation>
99
- <div class="popover-title fs-7 bg-white">Columnas</div>
100
- @for (col of columns(); track col.caption) {
101
- @if (col.caption) {
102
- <div class="form-check form-switch text-start d-flex align-items-center">
103
- <input type="checkbox" class="form-check-input py-0 my-0 cw-25 ch-15"
104
- id="{{ 'switch_' + col.caption }}"
105
- [(ngModel)]="visibilidadColumn()[col.fieldname]" />
106
- <label class="form-check-label ps-2 fs-6 cursor-pointer font-label mb-0"
107
- for="{{ 'switch_' + col.caption }}">
108
- {{ col.caption }}
109
- </label>
110
- </div>
111
- }
112
- }
113
- </div>
114
- </ng-template>
115
- </app-dropdown-cdk>
116
- </th>
117
- }
118
- @for (column of columns(); track $index) {
119
- @if (validaVisibilidad(column.visible) && visibilidadColumn()[column.fieldname] !== false) {
120
- <th class="b-table" #thElement [title]="column.caption"
121
- [style.width]="column?.width ? column.width + 'px' : 'auto'"
122
- [style.max-width]="column?.width ? column.width + 'px' : 'auto'"
123
- [ngClass]="colorHeader()== 'normal' ? 'h-table' : ''">
124
- {{ column.caption }}
125
- @if(column.caption){
126
- @if (sortColumn == column.fieldname) {
127
- <span (click)="sortTable(column.fieldname)" class="cursor-pointer">
128
- <i
129
- [ngClass]="sortDirection == 'asc' ? 'fas fa-angle-up fs-6':'fas fa-angle-down fs-6'"></i>
130
- </span>
131
- }
132
- @if (sortColumn !== column.fieldname) {
133
- <i class="fas fa-sort icon-sort cursor-pointer" (click)="sortTable(column.fieldname)"></i>
134
- }
135
- }
136
- </th>
137
- }
138
- }
139
- </tr>
140
- </thead>
141
- <tbody>
142
- @for (row of dataVirtual(); track row.idListTsi) {
143
- @let idList = row.idListTsi;
144
- <tr [ngClass]="{'table-active': (identifier().length < 1 ? selectedRow() == $index : selectedRow() == concatenarValue(row,identifier()))}"
145
- (click)="selectRow(identifier().length < 1 ? $index : row); onClick(row)"
146
- (dblclick)="onDoubleClick(row)" (contextmenu)="onRightClick($event,row)"
147
- [id]="identifier().length < 1 ? ('row_table_' + $index) : ('row_table_'+ concatenarValue(row,identifier()))">
148
- @if (withDetails()) {
149
- <td class="b-table text-center mwp-25">
150
- <a (click)="toggleExpandRow($index)" class="text-dark cursor-pointer fs-6">
151
- <i class="fa-solid" [class.fa-chevron-right]="expandedRows != $index"
152
- [class.fa-chevron-down]="expandedRows == $index"></i>
153
- </a>
154
- </td>
155
- }
156
-
157
- @if (withCheckbox()) {
158
- <td scope="col" class="text-center b-table">
159
- <label>
160
- <input type="checkbox" [name]="'check_box_select_table_' + idList"
161
- [id]="'check_box_select_table_' + idList" animatedCheckbox
162
- [checked]="isItemSelected(idList)" (change)="toogleItem(idList , $event)"
163
- [disabled]="isCheckboxDisabled(row)">
164
- </label>
165
- </td>
166
- }
167
-
168
- @if (customActions()) {
169
- <td class="text-center mwp-90 b-table">
170
- <ng-container
171
- *ngTemplateOutlet="customActions(); context: { $implicit: row }"></ng-container>
172
- </td>
173
- }
174
- @for (column of columns(); track $index) {
175
- @if (validaVisibilidad(column.visible) && visibilidadColumn()[column.fieldname] !== false) {
176
-
177
- @if (column.template) {
178
- <td class="b-table">
179
- <ng-container
180
- *ngTemplateOutlet="column.template; context: { $implicit: row, column: column }">
181
- </ng-container>
182
- </td>
183
- }@else {
184
- @switch (column.tipo) {
185
- @case ('cell-render') {
186
- @let resolverItem = resolveCell(column.fieldname, row);
187
- @if (resolverItem) {
188
- <td class="b-table" [title]="resolverItem.text" [class.text-center]="resolverItem.icon">
189
- @if (resolverItem.icon) {
190
- <i class="fs-5" [ngClass]="resolverItem.icon"></i>
191
- } @else if (resolverItem.class) {
192
- <span [ngClass]="row.situac == 'J' ? 'text-error' : resolverItem.class">
193
- {{ resolverItem.text }}
194
- </span>
195
- } @else {
196
- {{ resolverItem.text }}
197
- }
198
- </td>
199
- }
200
- }
201
-
202
- @default {
203
- <td [innerHTML]="getHighlight(row._format?.[column.fieldname] ?? row[column.fieldname], column.fieldname)"
204
- [style.width]="column?.width ? column.width + 'px' : 'auto'"
205
- [style.max-width]="column?.width ? column.width + 'px' : 'auto'"
206
- [title]="row._format?.[column.fieldname] ?? row[column.fieldname]"
207
- [ngClass]="rowClassFn() ? rowClassFn()(row) : getRowClass(row)"
208
- class="b-table {{getPosition(column)}}">
209
- </td>
210
- }
211
- }
212
-
213
- }
214
- }
215
- }
216
- </tr>
217
- @if ($index == expandedRows) {
218
- <tr @fadeInOut>
219
- <td [attr.colspan]="columns().length + (withDetails()? 1 : 0) + (customActions() ? 1 : 0) + (withCheckbox() ? 1 : 0)"
220
- class="table-blank">
221
- <div class="d-flex flex-column auditoria">
222
- <span class="fw-bold fs-7 text-dark">Datos de auditoría</span>
223
- <span class="fs-6 text-dark fw-bold">
224
- Creación: {{ row.nomucreac }} el {{ row._format?.fcreac ?? row.fcreac }} a las {{
225
- row.hcreac }}
226
- </span>
227
- <span class="fs-6 text-dark fw-bold">
228
- Actualización: {{ row.nomuactua }} el {{ row._format?.factua ?? row.factua }} a las
229
- {{
230
- row.hactua }}
231
- </span>
232
- </div>
233
- </td>
234
- </tr>
235
- }
236
- }
237
- <tr #anchor>
238
- <td [attr.colspan]="columns().length + (withDetails()? 1 : 0) + (customActions() ? 1 : 0) + (withCheckbox() ? 1 : 0)"
239
- class="text-center text-muted py-3">
240
- @if (isLoading()) {
241
- <span>Cargando más registros...</span>
242
- }
243
- @if (!isLoading() && dataVirtual().length >= 5000) {
244
- <span>No hay más registros</span>
245
- }
246
- </td>
247
- </tr>
248
- </tbody>
249
-
250
- @if (withTotal()) {
251
- <tfoot>
252
- <tr>
253
- <td class="b-table" [attr.colspan]="getColspanBeforeTotals()">Totales:</td>
254
- @for (col of columns() ; track $index) {
255
- @if (col.totalizable) {
256
- <td class="b-table text-end">
257
- {{ getTotals(col.fieldname)}}
258
- </td>
259
- }
260
- }
261
- </tr>
262
- </tfoot>
263
- }
264
- </table>
265
- </div>
266
- </div>
267
-
268
- </ng-template>