ng-firebase-table-kxp 1.2.7 → 1.2.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.
@@ -1322,8 +1322,11 @@ class FilterService {
1322
1322
  /**
1323
1323
  * Retorna as opções de filtro disponíveis
1324
1324
  */
1325
- getAvailableFilterOptions(dropdownItems, isPaginated, filtersForm) {
1326
- if (isPaginated && this.hasActiveDateFilter(filtersForm)) {
1325
+ getAvailableFilterOptions(dropdownItems, isPaginated, filtersForm, currentGroup) {
1326
+ const currentIsDateFilter = currentGroup?.get('selectFilter')?.value?.arrange === 'filterByDate';
1327
+ if (isPaginated &&
1328
+ this.hasActiveDateFilter(filtersForm) &&
1329
+ !currentIsDateFilter) {
1327
1330
  return dropdownItems.filter((item) => item.arrange !== 'filterByDate');
1328
1331
  }
1329
1332
  return dropdownItems;
@@ -2172,19 +2175,20 @@ function TableComponent_div_0_div_2_div_9_div_1_div_1_Template(rf, ctx) { if (rf
2172
2175
  i0.ɵɵtemplate(5, TableComponent_div_0_div_2_div_9_div_1_div_1_mat_option_5_Template, 5, 4, "mat-option", 38);
2173
2176
  i0.ɵɵelementEnd()()();
2174
2177
  } if (rf & 2) {
2175
- const ctx_r24 = i0.ɵɵnextContext(5);
2178
+ const filterGroup_r22 = i0.ɵɵnextContext().$implicit;
2179
+ const ctx_r24 = i0.ɵɵnextContext(4);
2176
2180
  i0.ɵɵadvance(5);
2177
- i0.ɵɵproperty("ngForOf", ctx_r24.getAvailableFilterOptions());
2181
+ i0.ɵɵproperty("ngForOf", ctx_r24.getAvailableFilterOptions(filterGroup_r22));
2178
2182
  } }
2179
2183
  function TableComponent_div_0_div_2_div_9_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
2180
- const _r35 = i0.ɵɵgetCurrentView();
2184
+ const _r36 = i0.ɵɵgetCurrentView();
2181
2185
  i0.ɵɵelementStart(0, "div", 34)(1, "mat-form-field", 35)(2, "mat-label", 21);
2182
2186
  i0.ɵɵelement(3, "i", 48);
2183
2187
  i0.ɵɵelementStart(4, "span");
2184
2188
  i0.ɵɵtext(5);
2185
2189
  i0.ɵɵelementEnd()();
2186
2190
  i0.ɵɵelementStart(6, "input", 49, 50);
2187
- i0.ɵɵlistener("keyup.enter", function TableComponent_div_0_div_2_div_9_div_1_div_2_Template_input_keyup_enter_6_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r34.search($event)); });
2191
+ i0.ɵɵlistener("keyup.enter", function TableComponent_div_0_div_2_div_9_div_1_div_2_Template_input_keyup_enter_6_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r35 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r35.search($event)); });
2188
2192
  i0.ɵɵelementEnd()()();
2189
2193
  } if (rf & 2) {
2190
2194
  const filterGroup_r22 = i0.ɵɵnextContext().$implicit;
@@ -2197,10 +2201,10 @@ function TableComponent_div_0_div_2_div_9_div_1_div_3_mat_option_5_Template(rf,
2197
2201
  i0.ɵɵtext(1);
2198
2202
  i0.ɵɵelementEnd();
2199
2203
  } if (rf & 2) {
2200
- const item_r38 = ctx.$implicit;
2201
- i0.ɵɵproperty("value", item_r38);
2204
+ const item_r39 = ctx.$implicit;
2205
+ i0.ɵɵproperty("value", item_r39);
2202
2206
  i0.ɵɵadvance(1);
2203
- i0.ɵɵtextInterpolate1(" ", item_r38.label, " ");
2207
+ i0.ɵɵtextInterpolate1(" ", item_r39.label, " ");
2204
2208
  } }
2205
2209
  function TableComponent_div_0_div_2_div_9_div_1_div_3_Template(rf, ctx) { if (rf & 1) {
2206
2210
  i0.ɵɵelementStart(0, "div", 34)(1, "mat-form-field", 35)(2, "mat-label");
@@ -2219,14 +2223,14 @@ function TableComponent_div_0_div_2_div_9_div_1_div_3_Template(rf, ctx) { if (rf
2219
2223
  i0.ɵɵproperty("ngForOf", (tmp_1_0 = filterGroup_r22.get("selectFilter")) == null ? null : tmp_1_0.value.items);
2220
2224
  } }
2221
2225
  function TableComponent_div_0_div_2_div_9_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
2222
- const _r41 = i0.ɵɵgetCurrentView();
2226
+ const _r42 = i0.ɵɵgetCurrentView();
2223
2227
  i0.ɵɵelementStart(0, "div", 52)(1, "div", 53)(2, "mat-form-field", 54)(3, "mat-label", 21);
2224
2228
  i0.ɵɵelement(4, "i", 55);
2225
2229
  i0.ɵɵelementStart(5, "span");
2226
2230
  i0.ɵɵtext(6, "Data Inicial");
2227
2231
  i0.ɵɵelementEnd()();
2228
2232
  i0.ɵɵelementStart(7, "input", 56);
2229
- i0.ɵɵlistener("keydown.enter", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_keydown_enter_7_listener($event) { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r40.search($event)); })("input", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_input_7_listener($event) { i0.ɵɵrestoreView(_r41); const i_r23 = i0.ɵɵnextContext().index; const ctx_r42 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r42.onDateInput($event, "initialDate", i_r23)); });
2233
+ i0.ɵɵlistener("keydown.enter", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_keydown_enter_7_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r41 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r41.search($event)); })("input", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_input_7_listener($event) { i0.ɵɵrestoreView(_r42); const i_r23 = i0.ɵɵnextContext().index; const ctx_r43 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r43.onDateInput($event, "initialDate", i_r23)); });
2230
2234
  i0.ɵɵelementEnd()();
2231
2235
  i0.ɵɵelementStart(8, "mat-form-field", 54)(9, "mat-label", 21);
2232
2236
  i0.ɵɵelement(10, "i", 55);
@@ -2234,13 +2238,13 @@ function TableComponent_div_0_div_2_div_9_div_1_div_4_Template(rf, ctx) { if (rf
2234
2238
  i0.ɵɵtext(12, "Data Final");
2235
2239
  i0.ɵɵelementEnd()();
2236
2240
  i0.ɵɵelementStart(13, "input", 57);
2237
- i0.ɵɵlistener("keydown.enter", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_keydown_enter_13_listener($event) { i0.ɵɵrestoreView(_r41); const ctx_r44 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r44.search($event)); })("input", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r41); const i_r23 = i0.ɵɵnextContext().index; const ctx_r45 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r45.onDateInput($event, "finalDate", i_r23)); });
2241
+ i0.ɵɵlistener("keydown.enter", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_keydown_enter_13_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r45 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r45.search($event)); })("input", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r42); const i_r23 = i0.ɵɵnextContext().index; const ctx_r46 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r46.onDateInput($event, "finalDate", i_r23)); });
2238
2242
  i0.ɵɵelementEnd()()()();
2239
2243
  } }
2240
2244
  function TableComponent_div_0_div_2_div_9_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
2241
- const _r49 = i0.ɵɵgetCurrentView();
2245
+ const _r50 = i0.ɵɵgetCurrentView();
2242
2246
  i0.ɵɵelementStart(0, "div", 58)(1, "button", 59);
2243
- i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_9_div_1_div_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r49); const i_r23 = i0.ɵɵnextContext().index; const ctx_r47 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r47.removeFilter(i_r23)); });
2247
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_9_div_1_div_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r50); const i_r23 = i0.ɵɵnextContext().index; const ctx_r48 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r48.removeFilter(i_r23)); });
2244
2248
  i0.ɵɵelement(2, "i", 60);
2245
2249
  i0.ɵɵelementEnd()();
2246
2250
  } }
@@ -2280,33 +2284,33 @@ function TableComponent_div_0_div_2_div_9_Template(rf, ctx) { if (rf & 1) {
2280
2284
  i0.ɵɵproperty("ngForOf", ctx_r13.filtersForm.controls);
2281
2285
  } }
2282
2286
  function TableComponent_div_0_div_2_div_11_Template(rf, ctx) { if (rf & 1) {
2283
- const _r51 = i0.ɵɵgetCurrentView();
2287
+ const _r52 = i0.ɵɵgetCurrentView();
2284
2288
  i0.ɵɵelementStart(0, "div")(1, "button", 61);
2285
- i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_11_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r51); const ctx_r50 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r50.addFilter()); });
2289
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_11_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r51.addFilter()); });
2286
2290
  i0.ɵɵelement(2, "i", 62);
2287
2291
  i0.ɵɵtext(3, " Adicionar Filtro ");
2288
2292
  i0.ɵɵelementEnd()();
2289
2293
  } }
2290
2294
  function TableComponent_div_0_div_2_div_12_button_7_Template(rf, ctx) { if (rf & 1) {
2291
- const _r54 = i0.ɵɵgetCurrentView();
2295
+ const _r55 = i0.ɵɵgetCurrentView();
2292
2296
  i0.ɵɵelementStart(0, "button", 69);
2293
- i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r54); const ctx_r53 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r53.arrange && ctx_r53.downloadTable !== undefined ? ctx_r53.downloadTable(ctx_r53.arrange, ctx_r53.data.conditions || []) : null); });
2297
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r55); const ctx_r54 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r54.arrange && ctx_r54.downloadTable !== undefined ? ctx_r54.downloadTable(ctx_r54.arrange, ctx_r54.data.conditions || []) : null); });
2294
2298
  i0.ɵɵelement(1, "i", 70);
2295
2299
  i0.ɵɵtext(2, " Exportar ");
2296
2300
  i0.ɵɵelementEnd();
2297
2301
  } if (rf & 2) {
2298
- const ctx_r52 = i0.ɵɵnextContext(4);
2299
- i0.ɵɵproperty("disabled", ctx_r52.dataSource && ctx_r52.dataSource.filteredData.length <= 0);
2302
+ const ctx_r53 = i0.ɵɵnextContext(4);
2303
+ i0.ɵɵproperty("disabled", ctx_r53.dataSource && ctx_r53.dataSource.filteredData.length <= 0);
2300
2304
  } }
2301
2305
  function TableComponent_div_0_div_2_div_12_Template(rf, ctx) { if (rf & 1) {
2302
- const _r56 = i0.ɵɵgetCurrentView();
2306
+ const _r57 = i0.ɵɵgetCurrentView();
2303
2307
  i0.ɵɵelementStart(0, "div", 63)(1, "button", 64);
2304
- i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r56); const ctx_r55 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r55.search()); });
2308
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r57); const ctx_r56 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r56.search()); });
2305
2309
  i0.ɵɵelement(2, "i", 65);
2306
2310
  i0.ɵɵtext(3, " Pesquisar ");
2307
2311
  i0.ɵɵelementEnd();
2308
2312
  i0.ɵɵelementStart(4, "button", 66);
2309
- i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r56); const ctx_r57 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r57.resetFilter()); });
2313
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r57); const ctx_r58 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r58.resetFilter()); });
2310
2314
  i0.ɵɵelement(5, "i", 67);
2311
2315
  i0.ɵɵtext(6, " Resetar ");
2312
2316
  i0.ɵɵelementEnd();
@@ -2347,32 +2351,32 @@ function TableComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
2347
2351
  function TableComponent_div_0_div_3_button_7_i_1_Template(rf, ctx) { if (rf & 1) {
2348
2352
  i0.ɵɵelement(0, "i");
2349
2353
  } if (rf & 2) {
2350
- const ctx_r61 = i0.ɵɵnextContext(4);
2351
- i0.ɵɵclassMap(ctx_r61.data.actionButton.icon);
2354
+ const ctx_r62 = i0.ɵɵnextContext(4);
2355
+ i0.ɵɵclassMap(ctx_r62.data.actionButton.icon);
2352
2356
  } }
2353
2357
  function TableComponent_div_0_div_3_button_7_Template(rf, ctx) { if (rf & 1) {
2354
- const _r63 = i0.ɵɵgetCurrentView();
2358
+ const _r64 = i0.ɵɵgetCurrentView();
2355
2359
  i0.ɵɵelementStart(0, "button", 30);
2356
- i0.ɵɵlistener("click", function TableComponent_div_0_div_3_button_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r63); const ctx_r62 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r62.data.actionButton.method ? ctx_r62.data.actionButton.method($event) : null); });
2360
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_3_button_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r64); const ctx_r63 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r63.data.actionButton.method ? ctx_r63.data.actionButton.method($event) : null); });
2357
2361
  i0.ɵɵtemplate(1, TableComponent_div_0_div_3_button_7_i_1_Template, 1, 2, "i", 31);
2358
2362
  i0.ɵɵtext(2);
2359
2363
  i0.ɵɵelementEnd();
2360
2364
  } if (rf & 2) {
2361
- const ctx_r58 = i0.ɵɵnextContext(3);
2362
- i0.ɵɵproperty("ngClass", ctx_r58.getActionButtonClass())("routerLink", ctx_r58.data.actionButton.routerLink);
2365
+ const ctx_r59 = i0.ɵɵnextContext(3);
2366
+ i0.ɵɵproperty("ngClass", ctx_r59.getActionButtonClass())("routerLink", ctx_r59.data.actionButton.routerLink);
2363
2367
  i0.ɵɵadvance(1);
2364
- i0.ɵɵproperty("ngIf", ctx_r58.data.actionButton.icon);
2368
+ i0.ɵɵproperty("ngIf", ctx_r59.data.actionButton.icon);
2365
2369
  i0.ɵɵadvance(1);
2366
- i0.ɵɵtextInterpolate1(" ", ctx_r58.data.actionButton.label, " ");
2370
+ i0.ɵɵtextInterpolate1(" ", ctx_r59.data.actionButton.label, " ");
2367
2371
  } }
2368
2372
  function TableComponent_div_0_div_3_div_8_Template(rf, ctx) { if (rf & 1) {
2369
- const _r66 = i0.ɵɵgetCurrentView();
2373
+ const _r67 = i0.ɵɵgetCurrentView();
2370
2374
  i0.ɵɵelementStart(0, "div", 32)(1, "mat-form-field", 35)(2, "mat-label", 21);
2371
2375
  i0.ɵɵelement(3, "i", 71);
2372
2376
  i0.ɵɵtext(4, " Buscar ");
2373
2377
  i0.ɵɵelementEnd();
2374
2378
  i0.ɵɵelementStart(5, "input", 72, 73);
2375
- i0.ɵɵlistener("keyup.enter", function TableComponent_div_0_div_3_div_8_Template_input_keyup_enter_5_listener($event) { i0.ɵɵrestoreView(_r66); const ctx_r65 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r65.search($event)); })("keyup", function TableComponent_div_0_div_3_div_8_Template_input_keyup_5_listener() { i0.ɵɵrestoreView(_r66); const _r64 = i0.ɵɵreference(6); const ctx_r67 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r67.applyFilter(_r64.value)); });
2379
+ i0.ɵɵlistener("keyup.enter", function TableComponent_div_0_div_3_div_8_Template_input_keyup_enter_5_listener($event) { i0.ɵɵrestoreView(_r67); const ctx_r66 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r66.search($event)); })("keyup", function TableComponent_div_0_div_3_div_8_Template_input_keyup_5_listener() { i0.ɵɵrestoreView(_r67); const _r65 = i0.ɵɵreference(6); const ctx_r68 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r68.applyFilter(_r65.value)); });
2376
2380
  i0.ɵɵelementEnd();
2377
2381
  i0.ɵɵelementStart(7, "mat-icon", 74);
2378
2382
  i0.ɵɵtext(8, "search");
@@ -2385,52 +2389,53 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_mat_option_5_Templat
2385
2389
  i0.ɵɵtext(4);
2386
2390
  i0.ɵɵelementEnd()()();
2387
2391
  } if (rf & 2) {
2388
- const item_r80 = ctx.$implicit;
2389
- i0.ɵɵproperty("value", item_r80);
2392
+ const item_r81 = ctx.$implicit;
2393
+ i0.ɵɵproperty("value", item_r81);
2390
2394
  i0.ɵɵadvance(2);
2391
- i0.ɵɵclassMap(item_r80.icon || "fa fa-filter");
2395
+ i0.ɵɵclassMap(item_r81.icon || "fa fa-filter");
2392
2396
  i0.ɵɵadvance(2);
2393
- i0.ɵɵtextInterpolate(item_r80.title);
2397
+ i0.ɵɵtextInterpolate(item_r81.title);
2394
2398
  } }
2395
2399
  function TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
2396
- const _r82 = i0.ɵɵgetCurrentView();
2400
+ const _r83 = i0.ɵɵgetCurrentView();
2397
2401
  i0.ɵɵelementStart(0, "div", 34)(1, "mat-form-field", 35)(2, "mat-label");
2398
2402
  i0.ɵɵtext(3, "Tipo de filtro");
2399
2403
  i0.ɵɵelementEnd();
2400
2404
  i0.ɵɵelementStart(4, "mat-select", 46);
2401
- i0.ɵɵlistener("selectionChange", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_Template_mat_select_selectionChange_4_listener() { i0.ɵɵrestoreView(_r82); const ctx_r81 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r81.onSelectFilterChange()); });
2405
+ i0.ɵɵlistener("selectionChange", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_Template_mat_select_selectionChange_4_listener() { i0.ɵɵrestoreView(_r83); const ctx_r82 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r82.onSelectFilterChange()); });
2402
2406
  i0.ɵɵtemplate(5, TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_mat_option_5_Template, 5, 4, "mat-option", 38);
2403
2407
  i0.ɵɵelementEnd()()();
2404
2408
  } if (rf & 2) {
2405
- const ctx_r74 = i0.ɵɵnextContext(6);
2409
+ const filterGroup_r73 = i0.ɵɵnextContext().$implicit;
2410
+ const ctx_r75 = i0.ɵɵnextContext(5);
2406
2411
  i0.ɵɵadvance(5);
2407
- i0.ɵɵproperty("ngForOf", ctx_r74.getAvailableFilterOptions());
2412
+ i0.ɵɵproperty("ngForOf", ctx_r75.getAvailableFilterOptions(filterGroup_r73));
2408
2413
  } }
2409
2414
  function TableComponent_div_0_div_3_div_9_div_1_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
2410
- const _r85 = i0.ɵɵgetCurrentView();
2415
+ const _r87 = i0.ɵɵgetCurrentView();
2411
2416
  i0.ɵɵelementStart(0, "div", 34)(1, "mat-form-field", 35)(2, "mat-label", 21);
2412
2417
  i0.ɵɵelement(3, "i", 48);
2413
2418
  i0.ɵɵelementStart(4, "span");
2414
2419
  i0.ɵɵtext(5);
2415
2420
  i0.ɵɵelementEnd()();
2416
2421
  i0.ɵɵelementStart(6, "input", 49, 50);
2417
- i0.ɵɵlistener("keyup.enter", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_2_Template_input_keyup_enter_6_listener($event) { i0.ɵɵrestoreView(_r85); const ctx_r84 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r84.search($event)); });
2422
+ i0.ɵɵlistener("keyup.enter", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_2_Template_input_keyup_enter_6_listener($event) { i0.ɵɵrestoreView(_r87); const ctx_r86 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r86.search($event)); });
2418
2423
  i0.ɵɵelementEnd()()();
2419
2424
  } if (rf & 2) {
2420
- const filterGroup_r72 = i0.ɵɵnextContext().$implicit;
2425
+ const filterGroup_r73 = i0.ɵɵnextContext().$implicit;
2421
2426
  let tmp_0_0;
2422
2427
  i0.ɵɵadvance(5);
2423
- i0.ɵɵtextInterpolate(((tmp_0_0 = filterGroup_r72.get("selectFilter")) == null ? null : tmp_0_0.value == null ? null : tmp_0_0.value.title) || "Filtrar");
2428
+ i0.ɵɵtextInterpolate(((tmp_0_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_0_0.value == null ? null : tmp_0_0.value.title) || "Filtrar");
2424
2429
  } }
2425
2430
  function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_mat_option_5_Template(rf, ctx) { if (rf & 1) {
2426
2431
  i0.ɵɵelementStart(0, "mat-option", 39);
2427
2432
  i0.ɵɵtext(1);
2428
2433
  i0.ɵɵelementEnd();
2429
2434
  } if (rf & 2) {
2430
- const item_r88 = ctx.$implicit;
2431
- i0.ɵɵproperty("value", item_r88);
2435
+ const item_r90 = ctx.$implicit;
2436
+ i0.ɵɵproperty("value", item_r90);
2432
2437
  i0.ɵɵadvance(1);
2433
- i0.ɵɵtextInterpolate1(" ", item_r88.label, " ");
2438
+ i0.ɵɵtextInterpolate1(" ", item_r90.label, " ");
2434
2439
  } }
2435
2440
  function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_Template(rf, ctx) { if (rf & 1) {
2436
2441
  i0.ɵɵelementStart(0, "div", 34)(1, "mat-form-field", 35)(2, "mat-label");
@@ -2440,23 +2445,23 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_Template(rf, ctx) {
2440
2445
  i0.ɵɵtemplate(5, TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_mat_option_5_Template, 2, 2, "mat-option", 38);
2441
2446
  i0.ɵɵelementEnd()()();
2442
2447
  } if (rf & 2) {
2443
- const filterGroup_r72 = i0.ɵɵnextContext().$implicit;
2448
+ const filterGroup_r73 = i0.ɵɵnextContext().$implicit;
2444
2449
  let tmp_0_0;
2445
2450
  let tmp_1_0;
2446
2451
  i0.ɵɵadvance(3);
2447
- i0.ɵɵtextInterpolate(((tmp_0_0 = filterGroup_r72.get("selectFilter")) == null ? null : tmp_0_0.value == null ? null : tmp_0_0.value.title) || "Selecione");
2452
+ i0.ɵɵtextInterpolate(((tmp_0_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_0_0.value == null ? null : tmp_0_0.value.title) || "Selecione");
2448
2453
  i0.ɵɵadvance(2);
2449
- i0.ɵɵproperty("ngForOf", (tmp_1_0 = filterGroup_r72.get("selectFilter")) == null ? null : tmp_1_0.value.items);
2454
+ i0.ɵɵproperty("ngForOf", (tmp_1_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_1_0.value.items);
2450
2455
  } }
2451
2456
  function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
2452
- const _r91 = i0.ɵɵgetCurrentView();
2457
+ const _r93 = i0.ɵɵgetCurrentView();
2453
2458
  i0.ɵɵelementStart(0, "div", 52)(1, "div", 53)(2, "mat-form-field", 54)(3, "mat-label", 21);
2454
2459
  i0.ɵɵelement(4, "i", 55);
2455
2460
  i0.ɵɵelementStart(5, "span");
2456
2461
  i0.ɵɵtext(6, "Data Inicial");
2457
2462
  i0.ɵɵelementEnd()();
2458
2463
  i0.ɵɵelementStart(7, "input", 77);
2459
- i0.ɵɵlistener("keydown.enter", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_keydown_enter_7_listener($event) { i0.ɵɵrestoreView(_r91); const ctx_r90 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r90.search($event)); })("input", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_input_7_listener($event) { i0.ɵɵrestoreView(_r91); const i_r73 = i0.ɵɵnextContext().index; const ctx_r92 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r92.onDateInput($event, "initialDate", i_r73)); })("blur", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_blur_7_listener() { i0.ɵɵrestoreView(_r91); const ctx_r94 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r94.onDateFilterChange()); });
2464
+ i0.ɵɵlistener("keydown.enter", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_keydown_enter_7_listener($event) { i0.ɵɵrestoreView(_r93); const ctx_r92 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r92.search($event)); })("input", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_input_7_listener($event) { i0.ɵɵrestoreView(_r93); const i_r74 = i0.ɵɵnextContext().index; const ctx_r94 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r94.onDateInput($event, "initialDate", i_r74)); })("blur", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_blur_7_listener() { i0.ɵɵrestoreView(_r93); const ctx_r96 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r96.onDateFilterChange()); });
2460
2465
  i0.ɵɵelementEnd()();
2461
2466
  i0.ɵɵelementStart(8, "mat-form-field", 54)(9, "mat-label", 21);
2462
2467
  i0.ɵɵelement(10, "i", 55);
@@ -2464,13 +2469,13 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template(rf, ctx) {
2464
2469
  i0.ɵɵtext(12, "Data Final");
2465
2470
  i0.ɵɵelementEnd()();
2466
2471
  i0.ɵɵelementStart(13, "input", 78);
2467
- i0.ɵɵlistener("keydown.enter", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_keydown_enter_13_listener($event) { i0.ɵɵrestoreView(_r91); const ctx_r95 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r95.search($event)); })("input", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r91); const i_r73 = i0.ɵɵnextContext().index; const ctx_r96 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r96.onDateInput($event, "finalDate", i_r73)); })("blur", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_blur_13_listener() { i0.ɵɵrestoreView(_r91); const ctx_r98 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r98.onDateFilterChange()); });
2472
+ i0.ɵɵlistener("keydown.enter", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_keydown_enter_13_listener($event) { i0.ɵɵrestoreView(_r93); const ctx_r97 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r97.search($event)); })("input", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r93); const i_r74 = i0.ɵɵnextContext().index; const ctx_r98 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r98.onDateInput($event, "finalDate", i_r74)); })("blur", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_blur_13_listener() { i0.ɵɵrestoreView(_r93); const ctx_r100 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r100.onDateFilterChange()); });
2468
2473
  i0.ɵɵelementEnd()()()();
2469
2474
  } }
2470
2475
  function TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
2471
- const _r101 = i0.ɵɵgetCurrentView();
2476
+ const _r103 = i0.ɵɵgetCurrentView();
2472
2477
  i0.ɵɵelementStart(0, "div", 58)(1, "button", 59);
2473
- i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r101); const i_r73 = i0.ɵɵnextContext().index; const ctx_r99 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r99.removeFilter(i_r73)); });
2478
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r103); const i_r74 = i0.ɵɵnextContext().index; const ctx_r101 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r101.removeFilter(i_r74)); });
2474
2479
  i0.ɵɵelement(2, "i", 60);
2475
2480
  i0.ɵɵelementEnd()();
2476
2481
  } }
@@ -2483,69 +2488,69 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_Template(rf, ctx) { if (rf
2483
2488
  i0.ɵɵtemplate(5, TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template, 3, 0, "div", 45);
2484
2489
  i0.ɵɵelementEnd();
2485
2490
  } if (rf & 2) {
2486
- const filterGroup_r72 = ctx.$implicit;
2487
- const ctx_r71 = i0.ɵɵnextContext(5);
2491
+ const filterGroup_r73 = ctx.$implicit;
2492
+ const ctx_r72 = i0.ɵɵnextContext(5);
2488
2493
  let tmp_2_0;
2489
2494
  let tmp_3_0;
2490
2495
  let tmp_4_0;
2491
- i0.ɵɵproperty("formGroup", filterGroup_r72);
2496
+ i0.ɵɵproperty("formGroup", filterGroup_r73);
2492
2497
  i0.ɵɵadvance(1);
2493
- i0.ɵɵproperty("ngIf", ctx_r71.dropdownItems.length > 0);
2498
+ i0.ɵɵproperty("ngIf", ctx_r72.dropdownItems.length > 0);
2494
2499
  i0.ɵɵadvance(1);
2495
- i0.ɵɵproperty("ngIf", ((tmp_2_0 = filterGroup_r72.get("selectFilter")) == null ? null : tmp_2_0.value == null ? null : tmp_2_0.value.arrange) === "filter");
2500
+ i0.ɵɵproperty("ngIf", ((tmp_2_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_2_0.value == null ? null : tmp_2_0.value.arrange) === "filter");
2496
2501
  i0.ɵɵadvance(1);
2497
- i0.ɵɵproperty("ngIf", ((tmp_3_0 = filterGroup_r72.get("selectFilter")) == null ? null : tmp_3_0.value) && ((tmp_3_0 = filterGroup_r72.get("selectFilter")) == null ? null : tmp_3_0.value.hasOwnProperty("items")));
2502
+ i0.ɵɵproperty("ngIf", ((tmp_3_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_3_0.value) && ((tmp_3_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_3_0.value.hasOwnProperty("items")));
2498
2503
  i0.ɵɵadvance(1);
2499
- i0.ɵɵproperty("ngIf", ((tmp_4_0 = filterGroup_r72.get("selectFilter")) == null ? null : tmp_4_0.value == null ? null : tmp_4_0.value.arrange) === "filterByDate");
2504
+ i0.ɵɵproperty("ngIf", ((tmp_4_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_4_0.value == null ? null : tmp_4_0.value.arrange) === "filterByDate");
2500
2505
  i0.ɵɵadvance(1);
2501
- i0.ɵɵproperty("ngIf", ctx_r71.filtersForm.length > 1);
2506
+ i0.ɵɵproperty("ngIf", ctx_r72.filtersForm.length > 1);
2502
2507
  } }
2503
2508
  function TableComponent_div_0_div_3_div_9_div_1_Template(rf, ctx) { if (rf & 1) {
2504
2509
  i0.ɵɵelementStart(0, "div", 40);
2505
2510
  i0.ɵɵtemplate(1, TableComponent_div_0_div_3_div_9_div_1_div_1_Template, 6, 6, "div", 75);
2506
2511
  i0.ɵɵelementEnd();
2507
2512
  } if (rf & 2) {
2508
- const ctx_r68 = i0.ɵɵnextContext(4);
2513
+ const ctx_r69 = i0.ɵɵnextContext(4);
2509
2514
  i0.ɵɵadvance(1);
2510
- i0.ɵɵproperty("ngForOf", ctx_r68.filtersForm.controls);
2515
+ i0.ɵɵproperty("ngForOf", ctx_r69.filtersForm.controls);
2511
2516
  } }
2512
2517
  function TableComponent_div_0_div_3_div_9_div_3_Template(rf, ctx) { if (rf & 1) {
2513
- const _r103 = i0.ɵɵgetCurrentView();
2518
+ const _r105 = i0.ɵɵgetCurrentView();
2514
2519
  i0.ɵɵelementStart(0, "div")(1, "button", 61);
2515
- i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r103); const ctx_r102 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r102.addFilter()); });
2520
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r105); const ctx_r104 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r104.addFilter()); });
2516
2521
  i0.ɵɵelement(2, "i", 62);
2517
2522
  i0.ɵɵtext(3, " Adicionar Filtro ");
2518
2523
  i0.ɵɵelementEnd()();
2519
2524
  } }
2520
2525
  function TableComponent_div_0_div_3_div_9_div_4_button_7_Template(rf, ctx) { if (rf & 1) {
2521
- const _r106 = i0.ɵɵgetCurrentView();
2526
+ const _r108 = i0.ɵɵgetCurrentView();
2522
2527
  i0.ɵɵelementStart(0, "button", 69);
2523
- i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r106); const ctx_r105 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r105.handleDownload()); });
2528
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r108); const ctx_r107 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r107.handleDownload()); });
2524
2529
  i0.ɵɵelement(1, "i", 70);
2525
2530
  i0.ɵɵtext(2, " Exportar ");
2526
2531
  i0.ɵɵelementEnd();
2527
2532
  } if (rf & 2) {
2528
- const ctx_r104 = i0.ɵɵnextContext(5);
2529
- i0.ɵɵproperty("disabled", ctx_r104.dataSource && ctx_r104.dataSource.filteredData.length <= 0);
2533
+ const ctx_r106 = i0.ɵɵnextContext(5);
2534
+ i0.ɵɵproperty("disabled", ctx_r106.dataSource && ctx_r106.dataSource.filteredData.length <= 0);
2530
2535
  } }
2531
2536
  function TableComponent_div_0_div_3_div_9_div_4_Template(rf, ctx) { if (rf & 1) {
2532
- const _r108 = i0.ɵɵgetCurrentView();
2537
+ const _r110 = i0.ɵɵgetCurrentView();
2533
2538
  i0.ɵɵelementStart(0, "div", 63)(1, "button", 64);
2534
- i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r108); const ctx_r107 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r107.search()); });
2539
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r110); const ctx_r109 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r109.search()); });
2535
2540
  i0.ɵɵelement(2, "i", 65);
2536
2541
  i0.ɵɵtext(3, " Pesquisar ");
2537
2542
  i0.ɵɵelementEnd();
2538
2543
  i0.ɵɵelementStart(4, "button", 66);
2539
- i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r108); const ctx_r109 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r109.resetFilter()); });
2544
+ i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r110); const ctx_r111 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r111.resetFilter()); });
2540
2545
  i0.ɵɵelement(5, "i", 67);
2541
2546
  i0.ɵɵtext(6, " Resetar ");
2542
2547
  i0.ɵɵelementEnd();
2543
2548
  i0.ɵɵtemplate(7, TableComponent_div_0_div_3_div_9_div_4_button_7_Template, 3, 1, "button", 68);
2544
2549
  i0.ɵɵelementEnd();
2545
2550
  } if (rf & 2) {
2546
- const ctx_r70 = i0.ɵɵnextContext(4);
2551
+ const ctx_r71 = i0.ɵɵnextContext(4);
2547
2552
  i0.ɵɵadvance(7);
2548
- i0.ɵɵproperty("ngIf", ctx_r70.data.download !== false && ctx_r70.downloadTable);
2553
+ i0.ɵɵproperty("ngIf", ctx_r71.data.download !== false && ctx_r71.downloadTable);
2549
2554
  } }
2550
2555
  function TableComponent_div_0_div_3_div_9_Template(rf, ctx) { if (rf & 1) {
2551
2556
  i0.ɵɵelementStart(0, "div");
@@ -2555,13 +2560,13 @@ function TableComponent_div_0_div_3_div_9_Template(rf, ctx) { if (rf & 1) {
2555
2560
  i0.ɵɵtemplate(4, TableComponent_div_0_div_3_div_9_div_4_Template, 8, 1, "div", 29);
2556
2561
  i0.ɵɵelementEnd()();
2557
2562
  } if (rf & 2) {
2558
- const ctx_r60 = i0.ɵɵnextContext(3);
2563
+ const ctx_r61 = i0.ɵɵnextContext(3);
2559
2564
  i0.ɵɵadvance(1);
2560
- i0.ɵɵproperty("ngIf", ctx_r60.filtersForm.controls.length > 0);
2565
+ i0.ɵɵproperty("ngIf", ctx_r61.filtersForm.controls.length > 0);
2561
2566
  i0.ɵɵadvance(2);
2562
- i0.ɵɵproperty("ngIf", ctx_r60.dropdownItems.length > 0);
2567
+ i0.ɵɵproperty("ngIf", ctx_r61.dropdownItems.length > 0);
2563
2568
  i0.ɵɵadvance(1);
2564
- i0.ɵɵproperty("ngIf", ctx_r60.hasFilterableColumn === true || ctx_r60.hasSortableColumn === true);
2569
+ i0.ɵɵproperty("ngIf", ctx_r61.hasFilterableColumn === true || ctx_r61.hasSortableColumn === true);
2565
2570
  } }
2566
2571
  function TableComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
2567
2572
  i0.ɵɵelementStart(0, "div", 18)(1, "div", 19)(2, "div", 20)(3, "div", 21);
@@ -2584,9 +2589,9 @@ function TableComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
2584
2589
  i0.ɵɵproperty("ngIf", ctx_r2.dropdownItems.length > 0);
2585
2590
  } }
2586
2591
  function TableComponent_div_0_lib_table_tabs_5_Template(rf, ctx) { if (rf & 1) {
2587
- const _r111 = i0.ɵɵgetCurrentView();
2592
+ const _r113 = i0.ɵɵgetCurrentView();
2588
2593
  i0.ɵɵelementStart(0, "lib-table-tabs", 79);
2589
- i0.ɵɵlistener("tabSelected", function TableComponent_div_0_lib_table_tabs_5_Template_lib_table_tabs_tabSelected_0_listener($event) { i0.ɵɵrestoreView(_r111); const ctx_r110 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r110.onTabSelected($event)); });
2594
+ i0.ɵɵlistener("tabSelected", function TableComponent_div_0_lib_table_tabs_5_Template_lib_table_tabs_tabSelected_0_listener($event) { i0.ɵɵrestoreView(_r113); const ctx_r112 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r112.onTabSelected($event)); });
2590
2595
  i0.ɵɵelementEnd();
2591
2596
  } if (rf & 2) {
2592
2597
  const ctx_r3 = i0.ɵɵnextContext(2);
@@ -2597,53 +2602,53 @@ function TableComponent_div_0_ng_container_9_ng_container_1_th_1_Template(rf, ct
2597
2602
  i0.ɵɵtext(1);
2598
2603
  i0.ɵɵelementEnd();
2599
2604
  } if (rf & 2) {
2600
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2605
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2601
2606
  i0.ɵɵadvance(1);
2602
- i0.ɵɵtextInterpolate1(" ", col_r112.title, " ");
2607
+ i0.ɵɵtextInterpolate1(" ", col_r114.title, " ");
2603
2608
  } }
2604
2609
  function TableComponent_div_0_ng_container_9_ng_container_1_th_2_Template(rf, ctx) { if (rf & 1) {
2605
2610
  i0.ɵɵelementStart(0, "th", 86);
2606
2611
  i0.ɵɵtext(1);
2607
2612
  i0.ɵɵelementEnd();
2608
2613
  } if (rf & 2) {
2609
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2614
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2610
2615
  i0.ɵɵadvance(1);
2611
- i0.ɵɵtextInterpolate1(" ", col_r112.title, " ");
2616
+ i0.ɵɵtextInterpolate1(" ", col_r114.title, " ");
2612
2617
  } }
2613
2618
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a_1_Template(rf, ctx) { if (rf & 1) {
2614
2619
  i0.ɵɵelementStart(0, "a", 92);
2615
2620
  i0.ɵɵtext(1);
2616
2621
  i0.ɵɵelementEnd();
2617
2622
  } if (rf & 2) {
2618
- const row_r119 = i0.ɵɵnextContext(3).$implicit;
2619
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2620
- const ctx_r127 = i0.ɵɵnextContext(2);
2621
- i0.ɵɵproperty("href", row_r119[col_r112.property], i0.ɵɵsanitizeUrl);
2623
+ const row_r121 = i0.ɵɵnextContext(3).$implicit;
2624
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2625
+ const ctx_r129 = i0.ɵɵnextContext(2);
2626
+ i0.ɵɵproperty("href", row_r121[col_r114.property], i0.ɵɵsanitizeUrl);
2622
2627
  i0.ɵɵadvance(1);
2623
- i0.ɵɵtextInterpolate1(" ", ctx_r127.getDisplayValue(col_r112, row_r119), " ");
2628
+ i0.ɵɵtextInterpolate1(" ", ctx_r129.getDisplayValue(col_r114, row_r121), " ");
2624
2629
  } }
2625
2630
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a_2_Template(rf, ctx) { if (rf & 1) {
2626
2631
  i0.ɵɵelementStart(0, "a", 92);
2627
2632
  i0.ɵɵtext(1);
2628
2633
  i0.ɵɵelementEnd();
2629
2634
  } if (rf & 2) {
2630
- const row_r119 = i0.ɵɵnextContext(3).$implicit;
2631
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2632
- const ctx_r128 = i0.ɵɵnextContext(2);
2633
- i0.ɵɵproperty("href", col_r112.hasLink, i0.ɵɵsanitizeUrl);
2635
+ const row_r121 = i0.ɵɵnextContext(3).$implicit;
2636
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2637
+ const ctx_r130 = i0.ɵɵnextContext(2);
2638
+ i0.ɵɵproperty("href", col_r114.hasLink, i0.ɵɵsanitizeUrl);
2634
2639
  i0.ɵɵadvance(1);
2635
- i0.ɵɵtextInterpolate1(" ", ctx_r128.getDisplayValue(col_r112, row_r119), " ");
2640
+ i0.ɵɵtextInterpolate1(" ", ctx_r130.getDisplayValue(col_r114, row_r121), " ");
2636
2641
  } }
2637
2642
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_span_3_Template(rf, ctx) { if (rf & 1) {
2638
2643
  i0.ɵɵelementStart(0, "span");
2639
2644
  i0.ɵɵtext(1);
2640
2645
  i0.ɵɵelementEnd();
2641
2646
  } if (rf & 2) {
2642
- const row_r119 = i0.ɵɵnextContext(3).$implicit;
2643
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2644
- const ctx_r129 = i0.ɵɵnextContext(2);
2647
+ const row_r121 = i0.ɵɵnextContext(3).$implicit;
2648
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2649
+ const ctx_r131 = i0.ɵɵnextContext(2);
2645
2650
  i0.ɵɵadvance(1);
2646
- i0.ɵɵtextInterpolate1(" ", ctx_r129.getDisplayValue(col_r112, row_r119), " ");
2651
+ i0.ɵɵtextInterpolate1(" ", ctx_r131.getDisplayValue(col_r114, row_r121), " ");
2647
2652
  } }
2648
2653
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_Template(rf, ctx) { if (rf & 1) {
2649
2654
  i0.ɵɵelementStart(0, "span");
@@ -2652,62 +2657,62 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_T
2652
2657
  i0.ɵɵtemplate(3, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_span_3_Template, 2, 1, "span", 28);
2653
2658
  i0.ɵɵelementEnd();
2654
2659
  } if (rf & 2) {
2655
- const col_r112 = i0.ɵɵnextContext(4).$implicit;
2656
- const ctx_r124 = i0.ɵɵnextContext(2);
2660
+ const col_r114 = i0.ɵɵnextContext(4).$implicit;
2661
+ const ctx_r126 = i0.ɵɵnextContext(2);
2657
2662
  i0.ɵɵadvance(1);
2658
- i0.ɵɵproperty("ngIf", col_r112.hasLink === true);
2663
+ i0.ɵɵproperty("ngIf", col_r114.hasLink === true);
2659
2664
  i0.ɵɵadvance(1);
2660
- i0.ɵɵproperty("ngIf", col_r112.hasLink && ctx_r124.isString(col_r112.hasLink));
2665
+ i0.ɵɵproperty("ngIf", col_r114.hasLink && ctx_r126.isString(col_r114.hasLink));
2661
2666
  i0.ɵɵadvance(1);
2662
- i0.ɵɵproperty("ngIf", col_r112.hasLink !== true && !ctx_r124.isString(col_r112.hasLink));
2667
+ i0.ɵɵproperty("ngIf", col_r114.hasLink !== true && !ctx_r126.isString(col_r114.hasLink));
2663
2668
  } }
2664
2669
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_a_0_Template(rf, ctx) { if (rf & 1) {
2665
2670
  i0.ɵɵelementStart(0, "a", 92);
2666
2671
  i0.ɵɵtext(1);
2667
2672
  i0.ɵɵelementEnd();
2668
2673
  } if (rf & 2) {
2669
- const row_r119 = i0.ɵɵnextContext(3).$implicit;
2670
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2671
- const ctx_r137 = i0.ɵɵnextContext(2);
2672
- i0.ɵɵproperty("href", row_r119[col_r112.property], i0.ɵɵsanitizeUrl);
2674
+ const row_r121 = i0.ɵɵnextContext(3).$implicit;
2675
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2676
+ const ctx_r139 = i0.ɵɵnextContext(2);
2677
+ i0.ɵɵproperty("href", row_r121[col_r114.property], i0.ɵɵsanitizeUrl);
2673
2678
  i0.ɵɵadvance(1);
2674
- i0.ɵɵtextInterpolate1(" ", ctx_r137.getDisplayValue(col_r112, row_r119, true), " ");
2679
+ i0.ɵɵtextInterpolate1(" ", ctx_r139.getDisplayValue(col_r114, row_r121, true), " ");
2675
2680
  } }
2676
2681
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_a_1_Template(rf, ctx) { if (rf & 1) {
2677
2682
  i0.ɵɵelementStart(0, "a", 92);
2678
2683
  i0.ɵɵtext(1);
2679
2684
  i0.ɵɵelementEnd();
2680
2685
  } if (rf & 2) {
2681
- const row_r119 = i0.ɵɵnextContext(3).$implicit;
2682
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2683
- const ctx_r138 = i0.ɵɵnextContext(2);
2684
- i0.ɵɵproperty("href", col_r112.hasLink, i0.ɵɵsanitizeUrl);
2686
+ const row_r121 = i0.ɵɵnextContext(3).$implicit;
2687
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2688
+ const ctx_r140 = i0.ɵɵnextContext(2);
2689
+ i0.ɵɵproperty("href", col_r114.hasLink, i0.ɵɵsanitizeUrl);
2685
2690
  i0.ɵɵadvance(1);
2686
- i0.ɵɵtextInterpolate1(" ", ctx_r138.getDisplayValue(col_r112, row_r119, true), " ");
2691
+ i0.ɵɵtextInterpolate1(" ", ctx_r140.getDisplayValue(col_r114, row_r121, true), " ");
2687
2692
  } }
2688
2693
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_span_2_Template(rf, ctx) { if (rf & 1) {
2689
2694
  i0.ɵɵelementStart(0, "span");
2690
2695
  i0.ɵɵtext(1);
2691
2696
  i0.ɵɵelementEnd();
2692
2697
  } if (rf & 2) {
2693
- const row_r119 = i0.ɵɵnextContext(3).$implicit;
2694
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2695
- const ctx_r139 = i0.ɵɵnextContext(2);
2698
+ const row_r121 = i0.ɵɵnextContext(3).$implicit;
2699
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2700
+ const ctx_r141 = i0.ɵɵnextContext(2);
2696
2701
  i0.ɵɵadvance(1);
2697
- i0.ɵɵtextInterpolate1(" ", ctx_r139.getDisplayValue(col_r112, row_r119, true), " ");
2702
+ i0.ɵɵtextInterpolate1(" ", ctx_r141.getDisplayValue(col_r114, row_r121, true), " ");
2698
2703
  } }
2699
2704
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {
2700
2705
  i0.ɵɵtemplate(0, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_a_0_Template, 2, 2, "a", 91);
2701
2706
  i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_a_1_Template, 2, 2, "a", 91);
2702
2707
  i0.ɵɵtemplate(2, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_span_2_Template, 2, 1, "span", 28);
2703
2708
  } if (rf & 2) {
2704
- const col_r112 = i0.ɵɵnextContext(4).$implicit;
2705
- const ctx_r126 = i0.ɵɵnextContext(2);
2706
- i0.ɵɵproperty("ngIf", col_r112.hasLink === true);
2709
+ const col_r114 = i0.ɵɵnextContext(4).$implicit;
2710
+ const ctx_r128 = i0.ɵɵnextContext(2);
2711
+ i0.ɵɵproperty("ngIf", col_r114.hasLink === true);
2707
2712
  i0.ɵɵadvance(1);
2708
- i0.ɵɵproperty("ngIf", col_r112.hasLink && ctx_r126.isString(col_r112.hasLink));
2713
+ i0.ɵɵproperty("ngIf", col_r114.hasLink && ctx_r128.isString(col_r114.hasLink));
2709
2714
  i0.ɵɵadvance(1);
2710
- i0.ɵɵproperty("ngIf", col_r112.hasLink !== true && !ctx_r126.isString(col_r112.hasLink));
2715
+ i0.ɵɵproperty("ngIf", col_r114.hasLink !== true && !ctx_r128.isString(col_r114.hasLink));
2711
2716
  } }
2712
2717
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_Template(rf, ctx) { if (rf & 1) {
2713
2718
  i0.ɵɵelementStart(0, "span");
@@ -2717,11 +2722,11 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_Template
2717
2722
  i0.ɵɵtemplate(3, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_Template, 3, 3, "ng-template", null, 90, i0.ɵɵtemplateRefExtractor);
2718
2723
  i0.ɵɵelementEnd();
2719
2724
  } if (rf & 2) {
2720
- const _r125 = i0.ɵɵreference(4);
2721
- const row_r119 = i0.ɵɵnextContext().$implicit;
2722
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2725
+ const _r127 = i0.ɵɵreference(4);
2726
+ const row_r121 = i0.ɵɵnextContext().$implicit;
2727
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2723
2728
  i0.ɵɵadvance(2);
2724
- i0.ɵɵproperty("ngIf", col_r112.charLimit && row_r119[col_r112.property] && row_r119[col_r112.property].length > col_r112.charLimit)("ngIfElse", _r125);
2729
+ i0.ɵɵproperty("ngIf", col_r114.charLimit && row_r121[col_r114.property] && row_r121[col_r114.property].length > col_r114.charLimit)("ngIfElse", _r127);
2725
2730
  } }
2726
2731
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_mat_spinner_1_Template(rf, ctx) { if (rf & 1) {
2727
2732
  i0.ɵɵelement(0, "mat-spinner", 96);
@@ -2729,21 +2734,21 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_mat_spinn
2729
2734
  i0.ɵɵproperty("diameter", 32);
2730
2735
  } }
2731
2736
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template(rf, ctx) { if (rf & 1) {
2732
- const _r152 = i0.ɵɵgetCurrentView();
2737
+ const _r154 = i0.ɵɵgetCurrentView();
2733
2738
  i0.ɵɵelementStart(0, "div", 93);
2734
2739
  i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_mat_spinner_1_Template, 1, 1, "mat-spinner", 94);
2735
2740
  i0.ɵɵelementStart(2, "img", 95);
2736
- i0.ɵɵlistener("load", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template_img_load_2_listener() { i0.ɵɵrestoreView(_r152); const row_r119 = i0.ɵɵnextContext().$implicit; const col_r112 = i0.ɵɵnextContext(2).$implicit; const ctx_r150 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r150.onImageLoad(row_r119, col_r112)); })("error", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template_img_error_2_listener($event) { i0.ɵɵrestoreView(_r152); const row_r119 = i0.ɵɵnextContext().$implicit; const col_r112 = i0.ɵɵnextContext(2).$implicit; const ctx_r154 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r154.onImageError($event, row_r119, col_r112, col_r112.image.default)); });
2741
+ i0.ɵɵlistener("load", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template_img_load_2_listener() { i0.ɵɵrestoreView(_r154); const row_r121 = i0.ɵɵnextContext().$implicit; const col_r114 = i0.ɵɵnextContext(2).$implicit; const ctx_r152 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r152.onImageLoad(row_r121, col_r114)); })("error", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template_img_error_2_listener($event) { i0.ɵɵrestoreView(_r154); const row_r121 = i0.ɵɵnextContext().$implicit; const col_r114 = i0.ɵɵnextContext(2).$implicit; const ctx_r156 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r156.onImageError($event, row_r121, col_r114, col_r114.image.default)); });
2737
2742
  i0.ɵɵelementEnd()();
2738
2743
  } if (rf & 2) {
2739
- const row_r119 = i0.ɵɵnextContext().$implicit;
2740
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2741
- const ctx_r121 = i0.ɵɵnextContext(2);
2744
+ const row_r121 = i0.ɵɵnextContext().$implicit;
2745
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2746
+ const ctx_r123 = i0.ɵɵnextContext(2);
2742
2747
  i0.ɵɵadvance(1);
2743
- i0.ɵɵproperty("ngIf", ctx_r121.isImageLoading(row_r119, col_r112));
2748
+ i0.ɵɵproperty("ngIf", ctx_r123.isImageLoading(row_r121, col_r114));
2744
2749
  i0.ɵɵadvance(1);
2745
- i0.ɵɵclassProp("opacity-0", ctx_r121.isImageLoading(row_r119, col_r112));
2746
- i0.ɵɵproperty("src", col_r112.image.path + "/" + row_r119[col_r112.property], i0.ɵɵsanitizeUrl)("ngClass", col_r112.image.class);
2750
+ i0.ɵɵclassProp("opacity-0", ctx_r123.isImageLoading(row_r121, col_r114));
2751
+ i0.ɵɵproperty("src", col_r114.image.path + "/" + row_r121[col_r114.property], i0.ɵɵsanitizeUrl)("ngClass", col_r114.image.class);
2747
2752
  } }
2748
2753
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_mat_spinner_1_Template(rf, ctx) { if (rf & 1) {
2749
2754
  i0.ɵɵelement(0, "mat-spinner", 96);
@@ -2751,72 +2756,72 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_mat_spinn
2751
2756
  i0.ɵɵproperty("diameter", 32);
2752
2757
  } }
2753
2758
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template(rf, ctx) { if (rf & 1) {
2754
- const _r162 = i0.ɵɵgetCurrentView();
2759
+ const _r164 = i0.ɵɵgetCurrentView();
2755
2760
  i0.ɵɵelementStart(0, "div", 93);
2756
2761
  i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_mat_spinner_1_Template, 1, 1, "mat-spinner", 94);
2757
2762
  i0.ɵɵelementStart(2, "img", 95);
2758
- i0.ɵɵlistener("load", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template_img_load_2_listener() { i0.ɵɵrestoreView(_r162); const row_r119 = i0.ɵɵnextContext().$implicit; const col_r112 = i0.ɵɵnextContext(2).$implicit; const ctx_r160 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r160.onImageLoad(row_r119, col_r112)); })("error", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template_img_error_2_listener($event) { i0.ɵɵrestoreView(_r162); const row_r119 = i0.ɵɵnextContext().$implicit; const col_r112 = i0.ɵɵnextContext(2).$implicit; const ctx_r164 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r164.onImageError($event, row_r119, col_r112, col_r112.image.default)); });
2763
+ i0.ɵɵlistener("load", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template_img_load_2_listener() { i0.ɵɵrestoreView(_r164); const row_r121 = i0.ɵɵnextContext().$implicit; const col_r114 = i0.ɵɵnextContext(2).$implicit; const ctx_r162 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r162.onImageLoad(row_r121, col_r114)); })("error", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template_img_error_2_listener($event) { i0.ɵɵrestoreView(_r164); const row_r121 = i0.ɵɵnextContext().$implicit; const col_r114 = i0.ɵɵnextContext(2).$implicit; const ctx_r166 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r166.onImageError($event, row_r121, col_r114, col_r114.image.default)); });
2759
2764
  i0.ɵɵelementEnd()();
2760
2765
  } if (rf & 2) {
2761
- const row_r119 = i0.ɵɵnextContext().$implicit;
2762
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2763
- const ctx_r122 = i0.ɵɵnextContext(2);
2766
+ const row_r121 = i0.ɵɵnextContext().$implicit;
2767
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2768
+ const ctx_r124 = i0.ɵɵnextContext(2);
2764
2769
  i0.ɵɵadvance(1);
2765
- i0.ɵɵproperty("ngIf", ctx_r122.isImageLoading(row_r119, col_r112));
2770
+ i0.ɵɵproperty("ngIf", ctx_r124.isImageLoading(row_r121, col_r114));
2766
2771
  i0.ɵɵadvance(1);
2767
- i0.ɵɵclassProp("opacity-0", ctx_r122.isImageLoading(row_r119, col_r112));
2768
- i0.ɵɵproperty("src", row_r119[col_r112.property], i0.ɵɵsanitizeUrl)("ngClass", col_r112.image.class);
2772
+ i0.ɵɵclassProp("opacity-0", ctx_r124.isImageLoading(row_r121, col_r114));
2773
+ i0.ɵɵproperty("src", row_r121[col_r114.property], i0.ɵɵsanitizeUrl)("ngClass", col_r114.image.class);
2769
2774
  } }
2770
2775
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_span_1_Template(rf, ctx) { if (rf & 1) {
2771
2776
  i0.ɵɵelementStart(0, "span", 100);
2772
2777
  i0.ɵɵtext(1);
2773
2778
  i0.ɵɵelementEnd();
2774
2779
  } if (rf & 2) {
2775
- const iconClass_r170 = i0.ɵɵnextContext().$implicit;
2776
- i0.ɵɵproperty("ngClass", iconClass_r170.class);
2780
+ const iconClass_r172 = i0.ɵɵnextContext().$implicit;
2781
+ i0.ɵɵproperty("ngClass", iconClass_r172.class);
2777
2782
  i0.ɵɵadvance(1);
2778
- i0.ɵɵtextInterpolate(iconClass_r170.text);
2783
+ i0.ɵɵtextInterpolate(iconClass_r172.text);
2779
2784
  } }
2780
2785
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_Template(rf, ctx) { if (rf & 1) {
2781
- const _r174 = i0.ɵɵgetCurrentView();
2786
+ const _r176 = i0.ɵɵgetCurrentView();
2782
2787
  i0.ɵɵelementStart(0, "button", 98);
2783
- i0.ɵɵlistener("click", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_Template_button_click_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r174); const iconClass_r170 = restoredCtx.$implicit; const row_r119 = i0.ɵɵnextContext(2).$implicit; return i0.ɵɵresetView(iconClass_r170.buttonMethod ? iconClass_r170.buttonMethod(row_r119, $event) : $event.stopPropagation()); });
2788
+ i0.ɵɵlistener("click", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_Template_button_click_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r176); const iconClass_r172 = restoredCtx.$implicit; const row_r121 = i0.ɵɵnextContext(2).$implicit; return i0.ɵɵresetView(iconClass_r172.buttonMethod ? iconClass_r172.buttonMethod(row_r121, $event) : $event.stopPropagation()); });
2784
2789
  i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_span_1_Template, 2, 2, "span", 99);
2785
2790
  i0.ɵɵelementEnd();
2786
2791
  } if (rf & 2) {
2787
- const iconClass_r170 = ctx.$implicit;
2788
- const row_r119 = i0.ɵɵnextContext(2).$implicit;
2792
+ const iconClass_r172 = ctx.$implicit;
2793
+ const row_r121 = i0.ɵɵnextContext(2).$implicit;
2789
2794
  i0.ɵɵadvance(1);
2790
- i0.ɵɵproperty("ngIf", iconClass_r170.condition === undefined || iconClass_r170.condition !== undefined && iconClass_r170.condition(row_r119));
2795
+ i0.ɵɵproperty("ngIf", iconClass_r172.condition === undefined || iconClass_r172.condition !== undefined && iconClass_r172.condition(row_r121));
2791
2796
  } }
2792
2797
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_Template(rf, ctx) { if (rf & 1) {
2793
2798
  i0.ɵɵelementContainerStart(0);
2794
2799
  i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_Template, 2, 1, "button", 97);
2795
2800
  i0.ɵɵelementContainerEnd();
2796
2801
  } if (rf & 2) {
2797
- const col_r112 = i0.ɵɵnextContext(3).$implicit;
2802
+ const col_r114 = i0.ɵɵnextContext(3).$implicit;
2798
2803
  i0.ɵɵadvance(1);
2799
- i0.ɵɵproperty("ngForOf", col_r112.iconClass);
2804
+ i0.ɵɵproperty("ngForOf", col_r114.iconClass);
2800
2805
  } }
2801
2806
  function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template(rf, ctx) { if (rf & 1) {
2802
- const _r180 = i0.ɵɵgetCurrentView();
2807
+ const _r182 = i0.ɵɵgetCurrentView();
2803
2808
  i0.ɵɵelementStart(0, "td", 87);
2804
- i0.ɵɵlistener("click", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r180); const row_r119 = restoredCtx.$implicit; const col_r112 = i0.ɵɵnextContext(2).$implicit; return i0.ɵɵresetView(col_r112.method ? col_r112.method(row_r119) : null); })("mouseenter", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mouseenter_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r180); const row_r119 = restoredCtx.$implicit; const col_r112 = i0.ɵɵnextContext(2).$implicit; const ctx_r181 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r181.onCellMouseEnter($event, row_r119, col_r112)); })("mouseleave", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mouseleave_0_listener() { i0.ɵɵrestoreView(_r180); const ctx_r183 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r183.onCellMouseLeave()); })("mousemove", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mousemove_0_listener($event) { i0.ɵɵrestoreView(_r180); const ctx_r184 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r184.onCellMouseMove($event)); });
2809
+ i0.ɵɵlistener("click", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r182); const row_r121 = restoredCtx.$implicit; const col_r114 = i0.ɵɵnextContext(2).$implicit; return i0.ɵɵresetView(col_r114.method ? col_r114.method(row_r121) : null); })("mouseenter", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mouseenter_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r182); const row_r121 = restoredCtx.$implicit; const col_r114 = i0.ɵɵnextContext(2).$implicit; const ctx_r183 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r183.onCellMouseEnter($event, row_r121, col_r114)); })("mouseleave", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mouseleave_0_listener() { i0.ɵɵrestoreView(_r182); const ctx_r185 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r185.onCellMouseLeave()); })("mousemove", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mousemove_0_listener($event) { i0.ɵɵrestoreView(_r182); const ctx_r186 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r186.onCellMouseMove($event)); });
2805
2810
  i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_Template, 5, 2, "span", 28);
2806
2811
  i0.ɵɵtemplate(2, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template, 3, 5, "div", 88);
2807
2812
  i0.ɵɵtemplate(3, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template, 3, 5, "div", 88);
2808
2813
  i0.ɵɵtemplate(4, TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_Template, 2, 1, "ng-container", 28);
2809
2814
  i0.ɵɵelementEnd();
2810
2815
  } if (rf & 2) {
2811
- const col_r112 = i0.ɵɵnextContext(2).$implicit;
2816
+ const col_r114 = i0.ɵɵnextContext(2).$implicit;
2812
2817
  i0.ɵɵadvance(1);
2813
- i0.ɵɵproperty("ngIf", !col_r112.image && !col_r112.iconClass && !col_r112.method);
2818
+ i0.ɵɵproperty("ngIf", !col_r114.image && !col_r114.iconClass && !col_r114.method);
2814
2819
  i0.ɵɵadvance(1);
2815
- i0.ɵɵproperty("ngIf", col_r112.image && col_r112.image.path && !col_r112.iconClass && !col_r112.method);
2820
+ i0.ɵɵproperty("ngIf", col_r114.image && col_r114.image.path && !col_r114.iconClass && !col_r114.method);
2816
2821
  i0.ɵɵadvance(1);
2817
- i0.ɵɵproperty("ngIf", col_r112.image && col_r112.image.url && !col_r112.iconClass && !col_r112.method);
2822
+ i0.ɵɵproperty("ngIf", col_r114.image && col_r114.image.url && !col_r114.iconClass && !col_r114.method);
2818
2823
  i0.ɵɵadvance(1);
2819
- i0.ɵɵproperty("ngIf", col_r112.iconClass);
2824
+ i0.ɵɵproperty("ngIf", col_r114.iconClass);
2820
2825
  } }
2821
2826
  function TableComponent_div_0_ng_container_9_ng_container_1_Template(rf, ctx) { if (rf & 1) {
2822
2827
  i0.ɵɵelementContainerStart(0);
@@ -2825,28 +2830,28 @@ function TableComponent_div_0_ng_container_9_ng_container_1_Template(rf, ctx) {
2825
2830
  i0.ɵɵtemplate(3, TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template, 5, 4, "td", 84);
2826
2831
  i0.ɵɵelementContainerEnd();
2827
2832
  } if (rf & 2) {
2828
- const col_r112 = i0.ɵɵnextContext().$implicit;
2829
- const ctx_r113 = i0.ɵɵnextContext(2);
2833
+ const col_r114 = i0.ɵɵnextContext().$implicit;
2834
+ const ctx_r115 = i0.ɵɵnextContext(2);
2830
2835
  i0.ɵɵadvance(1);
2831
- i0.ɵɵproperty("ngIf", !col_r112.isSortable || ctx_r113.data.pagination === true);
2836
+ i0.ɵɵproperty("ngIf", !col_r114.isSortable || ctx_r115.data.pagination === true);
2832
2837
  i0.ɵɵadvance(1);
2833
- i0.ɵɵproperty("ngIf", col_r112.isSortable && ctx_r113.data.pagination === false);
2838
+ i0.ɵɵproperty("ngIf", col_r114.isSortable && ctx_r115.data.pagination === false);
2834
2839
  } }
2835
2840
  function TableComponent_div_0_ng_container_9_Template(rf, ctx) { if (rf & 1) {
2836
2841
  i0.ɵɵelementContainerStart(0, 80);
2837
2842
  i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_Template, 4, 2, "ng-container", 81);
2838
2843
  i0.ɵɵelementContainerEnd();
2839
2844
  } if (rf & 2) {
2840
- const col_r112 = ctx.$implicit;
2841
- i0.ɵɵpropertyInterpolate("matColumnDef", col_r112.property);
2845
+ const col_r114 = ctx.$implicit;
2846
+ i0.ɵɵpropertyInterpolate("matColumnDef", col_r114.property);
2842
2847
  } }
2843
2848
  function TableComponent_div_0_tr_10_Template(rf, ctx) { if (rf & 1) {
2844
2849
  i0.ɵɵelement(0, "tr", 101);
2845
2850
  } }
2846
2851
  function TableComponent_div_0_tr_11_Template(rf, ctx) { if (rf & 1) {
2847
- const _r189 = i0.ɵɵgetCurrentView();
2852
+ const _r191 = i0.ɵɵgetCurrentView();
2848
2853
  i0.ɵɵelementStart(0, "tr", 102);
2849
- i0.ɵɵlistener("click", function TableComponent_div_0_tr_11_Template_tr_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r189); const row_r187 = restoredCtx.$implicit; const ctx_r188 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r188.goToDetails(row_r187)); });
2854
+ i0.ɵɵlistener("click", function TableComponent_div_0_tr_11_Template_tr_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r191); const row_r189 = restoredCtx.$implicit; const ctx_r190 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r190.goToDetails(row_r189)); });
2850
2855
  i0.ɵɵelementEnd();
2851
2856
  } if (rf & 2) {
2852
2857
  const ctx_r7 = i0.ɵɵnextContext(2);
@@ -2874,7 +2879,7 @@ function TableComponent_div_0_div_13_Template(rf, ctx) { if (rf & 1) {
2874
2879
  } }
2875
2880
  const _c0 = function () { return [25, 50, 100]; };
2876
2881
  function TableComponent_div_0_Template(rf, ctx) { if (rf & 1) {
2877
- const _r192 = i0.ɵɵgetCurrentView();
2882
+ const _r194 = i0.ɵɵgetCurrentView();
2878
2883
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
2879
2884
  i0.ɵɵtemplate(2, TableComponent_div_0_div_2_Template, 13, 5, "div", 3);
2880
2885
  i0.ɵɵtemplate(3, TableComponent_div_0_div_3_Template, 10, 3, "div", 3);
@@ -2889,7 +2894,7 @@ function TableComponent_div_0_Template(rf, ctx) { if (rf & 1) {
2889
2894
  i0.ɵɵtemplate(13, TableComponent_div_0_div_13_Template, 2, 0, "div", 13);
2890
2895
  i0.ɵɵpipe(14, "async");
2891
2896
  i0.ɵɵelementStart(15, "div", 14)(16, "mat-paginator", 15, 16);
2892
- i0.ɵɵlistener("page", function TableComponent_div_0_Template_mat_paginator_page_16_listener($event) { i0.ɵɵrestoreView(_r192); const ctx_r191 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r191.onPageChange($event)); });
2897
+ i0.ɵɵlistener("page", function TableComponent_div_0_Template_mat_paginator_page_16_listener($event) { i0.ɵɵrestoreView(_r194); const ctx_r193 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r193.onPageChange($event)); });
2893
2898
  i0.ɵɵelementEnd()()()()();
2894
2899
  i0.ɵɵelement(18, "lib-table-tooltip", 17);
2895
2900
  i0.ɵɵelementEnd();
@@ -2988,8 +2993,8 @@ class TableComponent {
2988
2993
  hasActiveDateFilter() {
2989
2994
  return this.filterService.hasActiveDateFilter(this.filtersForm);
2990
2995
  }
2991
- getAvailableFilterOptions() {
2992
- return this.filterService.getAvailableFilterOptions(this.dropdownItems, this.data.pagination === true, this.filtersForm);
2996
+ getAvailableFilterOptions(currentGroup) {
2997
+ return this.filterService.getAvailableFilterOptions(this.dropdownItems, this.data.pagination === true, this.filtersForm, currentGroup);
2993
2998
  }
2994
2999
  onSelectFilterChange() {
2995
3000
  const lastIndex = this.filtersForm.length - 1;
@@ -3614,7 +3619,7 @@ TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableCompone
3614
3619
  } }, dependencies: [i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf, i8.DefaultValueAccessor, i8.NgControlStatus, i8.NgControlStatusGroup, i8.MaxLengthValidator, i8.FormControlDirective, i8.FormGroupDirective, i8.FormControlName, i1$2.RouterLink, i9.MatTable, i9.MatHeaderCellDef, i9.MatHeaderRowDef, i9.MatColumnDef, i9.MatCellDef, i9.MatRowDef, i9.MatHeaderCell, i9.MatCell, i9.MatHeaderRow, i9.MatRow, i9.MatNoDataRow, i10.MatPaginator, i11.MatSort, i11.MatSortHeader, i12.MatFormField, i12.MatLabel, i12.MatSuffix, i13.MatInput, i14.MatOption, i15.MatSelect, i16.MatTooltip, i17.MatProgressSpinner, i18.MatIcon, TableTabsComponent, TableTooltipComponent, i1$1.AsyncPipe], styles: ["@charset \"UTF-8\";[_nghost-%COMP%]{--table-color: #1976d2;--table-text-color: white;--table-header-bg: #1976d2;--table-header-text: white;--table-scrollbar-bg: #f5f5f5;--table-scrollbar-thumb: var(--table-color)}.table-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:10px;height:10px;background-color:var(--table-scrollbar-bg, #f5f5f5)}.table-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));border-radius:5px}.table-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));opacity:.8}.overflow-x-auto[_ngcontent-%COMP%]::-webkit-scrollbar, .overflow-y-auto[_ngcontent-%COMP%]::-webkit-scrollbar, .overflow-auto[_ngcontent-%COMP%]::-webkit-scrollbar{width:10px;height:10px;background-color:var(--table-scrollbar-bg, #f5f5f5)}.overflow-x-auto[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .overflow-y-auto[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .overflow-auto[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));border-radius:5px}.overflow-x-auto[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover, .overflow-y-auto[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover, .overflow-auto[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));opacity:.8}[_nghost-%COMP%] .mat-table .mat-header-cell, [_nghost-%COMP%] .mat-header-cell, [_nghost-%COMP%] th.mat-header-cell, [_nghost-%COMP%] .mat-mdc-table .mat-mdc-header-cell, [_nghost-%COMP%] .mat-mdc-header-cell, [_nghost-%COMP%] th.mat-mdc-header-cell{background-color:var(--table-header-bg, #1976d2)!important;color:var(--table-header-text, white)!important;font-weight:600} .fa-filter, i.fa-filter{color:var(--table-color, #1976d2)!important} .rounded-xl.border{border-color:var(--table-color, #1976d2)!important} .border-gray-200.rounded-xl{border-color:var(--table-color, #1976d2)!important} .mdc-notched-outline__notch{border-right:none!important}.mat-mdc-text-field-wrapper.mdc-text-field--outlined[_ngcontent-%COMP%] .mat-mdc-form-field-infix[_ngcontent-%COMP%]{padding-bottom:0} .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-bottom:0}.mat-mdc-text-field-wrapper.mdc-text-field--outlined.mdc-text-field--disabled[_ngcontent-%COMP%]{background:rgba(0,0,0,.15);background-size:1px 100%!important;background-repeat:repeat-x!important}.mdc-text-field--disabled[_ngcontent-%COMP%] .mdc-text-field__input[_ngcontent-%COMP%]{color:#525252}button[_ngcontent-%COMP%]:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)){transition:all .2s ease;cursor:pointer}button[_ngcontent-%COMP%]:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)):hover:not(:disabled){opacity:.9;transform:scale(1.02)}button[_ngcontent-%COMP%]:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)):disabled{opacity:.5;cursor:not-allowed;transform:none} .hide-length .mat-mdc-paginator-range-label{display:none} .hide-next-button .mat-mdc-tooltip-trigger.mat-mdc-paginator-navigation-next.mdc-icon-button.mat-mdc-icon-button.mat-unthemed.mat-mdc-button-base{visibility:hidden} .hide-next-button .mat-mdc-tooltip-trigger.mat-mdc-paginator-navigation-last.mdc-icon-button.mat-mdc-icon-button.mat-unthemed.mat-mdc-button-base.ng-star-inserted{visibility:hidden} .mat-mdc-text-field-wrapper.mdc-text-field.ng-tns-c162-1.mdc-text-field--filled{width:25dvw} .custom-filter .mat-mdc-text-field-wrapper{width:20dvw;max-width:300px}button[matTooltip=\"Adicionar novo filtro\"][_ngcontent-%COMP%], button[_ngcontent-%COMP%]:has(i.fa-plus){display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border:2px solid #93c5fd;background-color:#dbeafe;padding:.5rem 1.5rem;font-size:.875rem;font-weight:500;color:#2563eb;transition:all .3s;cursor:pointer;transform:translateY(0)}button[matTooltip=\"Adicionar novo filtro\"][_ngcontent-%COMP%]:hover, button[_ngcontent-%COMP%]:has(i.fa-plus):hover{transform:translateY(-2px);border-color:#60a5fa;background-color:#bfdbfe;box-shadow:0 4px 6px #0000001a}button[matTooltip=\"Aplicar filtros\"][_ngcontent-%COMP%], button[_ngcontent-%COMP%]:has(i.fa-search){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#16a34a;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Aplicar filtros\"][_ngcontent-%COMP%]:hover, button[_ngcontent-%COMP%]:has(i.fa-search):hover{background-color:#15803d}button[matTooltip=\"Aplicar filtros\"][_ngcontent-%COMP%]:disabled, button[_ngcontent-%COMP%]:has(i.fa-search):disabled{opacity:.5;cursor:not-allowed}button[matTooltip=\"Limpar filtros\"][_ngcontent-%COMP%], button[_ngcontent-%COMP%]:has(i.fas.fa-redo-alt){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#ef4444;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Limpar filtros\"][_ngcontent-%COMP%]:hover, button[_ngcontent-%COMP%]:has(i.fas.fa-redo-alt):hover{background-color:#dc2626}button[matTooltip=\"Exportar Tabela\"][_ngcontent-%COMP%], button[_ngcontent-%COMP%]:has(i.fa-download){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#f97316;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Exportar Tabela\"][_ngcontent-%COMP%]:hover:not(:disabled), button[_ngcontent-%COMP%]:has(i.fa-download):hover:not(:disabled){background-color:#ea580c}button[matTooltip=\"Exportar Tabela\"][_ngcontent-%COMP%]:disabled, button[_ngcontent-%COMP%]:has(i.fa-download):disabled{opacity:.5;cursor:not-allowed}"], changeDetection: 0 });
3615
3620
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
3616
3621
  type: Component,
3617
- args: [{ selector: 'lib-table', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"data\" class=\"card-body\">\n <div class=\"flex flex-col justify-between gap-6\">\n <!-- UNIFIED CONTROL PANEL: FILTERS, SORT & ACTIONS -->\n <div\n class=\"rounded-xl border border-gray-200 bg-white p-4 shadow-lg\"\n *ngIf=\"\n data.pagination === true &&\n (dropdownItems.length > 0 ||\n sortableDropdownItems.length > 0 ||\n data.actionButton)\n \"\n >\n <!-- PANEL HEADER: Title and Custom Action -->\n <div\n class=\"mb-4 flex flex-col items-start justify-between gap-4 border-b-2 border-gray-200 pb-4 md:flex-row md:items-center\"\n >\n <!-- Left Side: Title & Main Action Button -->\n <div class=\"flex flex-wrap items-center gap-4\">\n <div class=\"flex items-center gap-2\">\n <i class=\"fa fa-filter text-xl text-blue-500\"></i>\n <span class=\"text-lg font-semibold text-gray-700\"\n >Filtros e A\u00E7\u00F5es</span\n >\n </div>\n <button\n *ngIf=\"data.actionButton && data.actionButton.condition\"\n [ngClass]=\"getActionButtonClass()\"\n [routerLink]=\"data.actionButton.routerLink\"\n (click)=\"\n data.actionButton.method ? data.actionButton.method($event) : null\n \"\n >\n <i\n *ngIf=\"data.actionButton.icon\"\n [class]=\"data.actionButton.icon\"\n ></i>\n {{ data.actionButton.label }}\n </button>\n </div>\n </div>\n\n <!-- SORT FIELD (Integrated with filters) -->\n <div class=\"mb-4\" *ngIf=\"sortableDropdownItems.length > 0\">\n <div class=\"flex flex-wrap items-center gap-3 p-2\">\n <div class=\"min-w-[200px] flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-sort-alpha-down text-cyan-600\"></i>\n <span>Ordenar por</span>\n </mat-label>\n <mat-select placeholder=\"Selecione...\" [formControl]=\"selectSort\">\n <mat-option\n *ngFor=\"let item of sortableDropdownItems\"\n [value]=\"item\"\n >\n <div class=\"flex items-center gap-2\">\n <i class=\"fa fa-sort-alpha-down text-cyan-600\"></i>\n <span>{{ item.title }}</span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <!-- FILTERS CONTENT (WITH REFINEMENTS) -->\n <div class=\"mb-4 space-y-3\" *ngIf=\"filtersForm.controls.length > 0\">\n <div\n [formGroup]=\"$any(filterGroup)\"\n *ngFor=\"let filterGroup of filtersForm.controls; let i = index\"\n class=\"flex flex-wrap items-center gap-3 p-2\"\n >\n <!-- FILTER TYPE SELECTOR -->\n <div class=\"min-w-[200px] flex-1\" *ngIf=\"dropdownItems.length > 0\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>Tipo de filtro</mat-label>\n <mat-select\n placeholder=\"Selecione o tipo...\"\n formControlName=\"selectFilter\"\n (selectionChange)=\"onSelectFilterChange()\"\n >\n <mat-option\n *ngFor=\"let item of getAvailableFilterOptions()\"\n [value]=\"item\"\n >\n <div class=\"flex items-center gap-2\">\n <i\n [class]=\"item.icon || 'fa fa-filter'\"\n class=\"text-sm text-blue-500\"\n ></i>\n <span>{{ item.title }}</span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- TEXT FILTER -->\n <div\n class=\"min-w-[200px] flex-1\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value?.arrange === 'filter'\n \"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-search text-gray-400\"></i>\n <span>{{\n $any(filterGroup).get(\"selectFilter\")?.value?.title ||\n \"Filtrar\"\n }}</span>\n </mat-label>\n <input\n (keyup.enter)=\"search($event)\"\n formControlName=\"typeFilter\"\n matInput\n placeholder=\"Digite para filtrar...\"\n #input\n />\n </mat-form-field>\n </div>\n\n <!-- DROPDOWN FILTER -->\n <div\n class=\"min-w-[200px] flex-1\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value &&\n $any(filterGroup)\n .get('selectFilter')\n ?.value.hasOwnProperty('items')\n \"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>{{\n $any(filterGroup).get(\"selectFilter\")?.value?.title ||\n \"Selecione\"\n }}</mat-label>\n <mat-select\n placeholder=\"Selecione...\"\n formControlName=\"selectItem\"\n multiple\n >\n <mat-option\n *ngFor=\"\n let item of $any(filterGroup).get('selectFilter')?.value\n .items\n \"\n [value]=\"item\"\n >\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- DATE FILTER -->\n <div\n class=\"min-w-[340px] flex-auto\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value?.arrange ===\n 'filterByDate'\n \"\n >\n <div\n class=\"flex flex-col items-stretch gap-3 sm:flex-row sm:items-center\"\n >\n <mat-form-field appearance=\"outline\" class=\"flex-1\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-calendar text-gray-400\"></i>\n <span>Data Inicial</span>\n </mat-label>\n <input\n type=\"text\"\n matInput\n (keydown.enter)=\"search($event)\"\n (input)=\"onDateInput($event, 'initialDate', i)\"\n formControlName=\"initialDate\"\n placeholder=\"DD/MM/AAAA\"\n maxlength=\"10\"\n />\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" class=\"flex-1\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-calendar text-gray-400\"></i>\n <span>Data Final</span>\n </mat-label>\n <input\n type=\"text\"\n (keydown.enter)=\"search($event)\"\n (input)=\"onDateInput($event, 'finalDate', i)\"\n matInput\n formControlName=\"finalDate\"\n placeholder=\"DD/MM/AAAA\"\n maxlength=\"10\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <!-- REMOVE FILTER BUTTON -->\n <div *ngIf=\"filtersForm.length > 1\" class=\"ml-auto flex-shrink-0\">\n <button\n (click)=\"removeFilter(i)\"\n class=\"flex h-10 w-10 items-center justify-center rounded-full transition-colors duration-300 hover:bg-red-100\"\n matTooltip=\"Remover filtro\"\n >\n <i class=\"fa fa-trash text-red-500 hover:text-red-600\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- PANEL FOOTER: Add Filter & Action Buttons -->\n <div\n class=\"-mb-2 flex items-start justify-between gap-4 border-t border-gray-200 pt-4\"\n >\n <!-- Add Filter Button -->\n <div *ngIf=\"dropdownItems.length > 0\">\n <button\n (click)=\"addFilter()\"\n class=\"transform rounded-full border-2 border-blue-300 bg-blue-50 px-6 py-2 text-sm font-medium text-blue-600 transition-all duration-300 hover:-translate-y-0.5 hover:border-blue-400 hover:bg-blue-100 hover:shadow-md\"\n matTooltip=\"Adicionar novo filtro\"\n >\n <i class=\"fa fa-plus mr-2\"></i>\n Adicionar Filtro\n </button>\n </div>\n\n <!-- Right Side: Search, Reset, Export -->\n <div\n class=\"flex flex-wrap gap-3 self-start sm:self-auto\"\n *ngIf=\"\n this.hasFilterableColumn === true || this.hasSortableColumn === true\n \"\n >\n <button\n (click)=\"search()\"\n type=\"button\"\n class=\"flex items-center gap-2 rounded-lg bg-green-600 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-green-700\"\n matTooltip=\"Aplicar filtros\"\n >\n <i class=\"fa fa-search\"></i>\n Pesquisar\n </button>\n\n <button\n (click)=\"resetFilter()\"\n class=\"flex items-center gap-2 rounded-lg bg-red-500 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-red-600\"\n matTooltip=\"Limpar filtros\"\n >\n <i class=\"fas fa-redo-alt\"></i>\n Resetar\n </button>\n\n <button\n *ngIf=\"data.download !== false && downloadTable\"\n class=\"flex items-center gap-2 rounded-lg bg-orange-500 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-orange-600\"\n matTooltipPosition=\"above\"\n matTooltip=\"Exportar Tabela\"\n [disabled]=\"\n this.dataSource && this.dataSource.filteredData.length <= 0\n \"\n (click)=\"\n $any(arrange) && downloadTable !== undefined\n ? downloadTable($any(arrange), data.conditions || [])\n : null\n \"\n >\n <i class=\"fa fa-download\"></i>\n Exportar\n </button>\n </div>\n </div>\n </div>\n\n <!-- UNIFIED CONTROL PANEL (for non-paginated tables): SEARCH, SORT & FILTERS -->\n <div\n class=\"rounded-xl border border-gray-200 bg-white p-4 shadow-lg\"\n *ngIf=\"\n data.pagination === false &&\n (hasFilterableColumn === true ||\n dropdownItems.length > 0 ||\n data.actionButton)\n \"\n >\n <!-- PANEL HEADER: Title and Custom Action -->\n <div\n class=\"mb-4 flex flex-col items-start justify-between gap-4 border-b-2 border-gray-200 pb-4 md:flex-row md:items-center\"\n >\n <!-- Left Side: Title & Main Action Button -->\n <div class=\"flex flex-wrap items-center gap-4\">\n <div class=\"flex items-center gap-2\">\n <i class=\"fa fa-filter text-xl text-blue-500\"></i>\n <span class=\"text-lg font-semibold text-gray-700\"\n >Filtros e A\u00E7\u00F5es</span\n >\n </div>\n <button\n *ngIf=\"data.actionButton && data.actionButton.condition\"\n [ngClass]=\"getActionButtonClass()\"\n [routerLink]=\"data.actionButton.routerLink\"\n (click)=\"\n data.actionButton.method ? data.actionButton.method($event) : null\n \"\n >\n <i\n *ngIf=\"data.actionButton.icon\"\n [class]=\"data.actionButton.icon\"\n ></i>\n {{ data.actionButton.label }}\n </button>\n </div>\n </div>\n\n <!-- SIMPLE SEARCH -->\n <div\n class=\"mb-4\"\n *ngIf=\"hasFilterableColumn === true && data.showSimpleSearch !== false\"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-search text-blue-500\"></i>\n Buscar\n </mat-label>\n <input\n matInput\n (keyup.enter)=\"search($event)\"\n (keyup)=\"applyFilter(filterInput.value)\"\n placeholder=\"Digite para filtrar...\"\n #filterInput\n />\n <mat-icon matSuffix class=\"text-gray-500\">search</mat-icon>\n </mat-form-field>\n </div>\n\n <!-- FILTERS PANEL -->\n <div *ngIf=\"dropdownItems.length > 0\">\n <!-- FILTERS CONTENT -->\n <div class=\"mb-4 space-y-3\" *ngIf=\"filtersForm.controls.length > 0\">\n <div\n [formGroup]=\"$any(filterGroup)\"\n *ngFor=\"let filterGroup of filtersForm.controls; let i = index\"\n class=\"flex flex-wrap items-center gap-3\"\n >\n <!-- FILTER TYPE SELECTOR -->\n <div class=\"min-w-[200px] flex-1\" *ngIf=\"dropdownItems.length > 0\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>Tipo de filtro</mat-label>\n <mat-select\n placeholder=\"Selecione o tipo...\"\n formControlName=\"selectFilter\"\n (selectionChange)=\"onSelectFilterChange()\"\n >\n <mat-option\n *ngFor=\"let item of getAvailableFilterOptions()\"\n [value]=\"item\"\n >\n <div class=\"flex items-center gap-2\">\n <i\n [class]=\"item.icon || 'fa fa-filter'\"\n class=\"text-sm text-blue-500\"\n ></i>\n <span>{{ item.title }}</span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- TEXT FILTER -->\n <div\n class=\"min-w-[200px] flex-1\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value?.arrange ===\n 'filter'\n \"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-search text-gray-400\"></i>\n <span>{{\n $any(filterGroup).get(\"selectFilter\")?.value?.title ||\n \"Filtrar\"\n }}</span>\n </mat-label>\n <input\n (keyup.enter)=\"search($event)\"\n formControlName=\"typeFilter\"\n matInput\n placeholder=\"Digite para filtrar...\"\n #input\n />\n </mat-form-field>\n </div>\n\n <!-- DROPDOWN FILTER -->\n <div\n class=\"min-w-[200px] flex-1\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value &&\n $any(filterGroup)\n .get('selectFilter')\n ?.value.hasOwnProperty('items')\n \"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>{{\n $any(filterGroup).get(\"selectFilter\")?.value?.title ||\n \"Selecione\"\n }}</mat-label>\n <mat-select\n placeholder=\"Selecione...\"\n formControlName=\"selectItem\"\n multiple\n >\n <mat-option\n *ngFor=\"\n let item of $any(filterGroup).get('selectFilter')?.value\n .items\n \"\n [value]=\"item\"\n >\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- DATE FILTER -->\n <div\n class=\"min-w-[340px] flex-auto\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value?.arrange ===\n 'filterByDate'\n \"\n >\n <div\n class=\"flex flex-col items-stretch gap-3 sm:flex-row sm:items-center\"\n >\n <mat-form-field appearance=\"outline\" class=\"flex-1\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-calendar text-gray-400\"></i>\n <span>Data Inicial</span>\n </mat-label>\n <input\n type=\"text\"\n matInput\n (keydown.enter)=\"search($event)\"\n (input)=\"onDateInput($event, 'initialDate', i)\"\n (blur)=\"onDateFilterChange()\"\n formControlName=\"initialDate\"\n placeholder=\"DD/MM/AAAA\"\n maxlength=\"10\"\n />\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" class=\"flex-1\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-calendar text-gray-400\"></i>\n <span>Data Final</span>\n </mat-label>\n <input\n type=\"text\"\n (keydown.enter)=\"search($event)\"\n (input)=\"onDateInput($event, 'finalDate', i)\"\n (blur)=\"onDateFilterChange()\"\n matInput\n formControlName=\"finalDate\"\n placeholder=\"DD/MM/AAAA\"\n maxlength=\"10\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <!-- REMOVE FILTER BUTTON -->\n <div *ngIf=\"filtersForm.length > 1\" class=\"ml-auto flex-shrink-0\">\n <button\n (click)=\"removeFilter(i)\"\n class=\"flex h-10 w-10 items-center justify-center rounded-full transition-colors duration-300 hover:bg-red-100\"\n matTooltip=\"Remover filtro\"\n >\n <i class=\"fa fa-trash text-red-500 hover:text-red-600\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- PANEL FOOTER: Add Filter & Actions -->\n <div\n class=\"-mb-2 flex items-start justify-between gap-4 border-t border-gray-200 pt-4\"\n >\n <!-- Add Filter Button -->\n <div *ngIf=\"dropdownItems.length > 0\">\n <button\n (click)=\"addFilter()\"\n class=\"transform rounded-full border-2 border-blue-300 bg-blue-50 px-6 py-2 text-sm font-medium text-blue-600 transition-all duration-300 hover:-translate-y-0.5 hover:border-blue-400 hover:bg-blue-100 hover:shadow-md\"\n matTooltip=\"Adicionar novo filtro\"\n >\n <i class=\"fa fa-plus mr-2\"></i>\n Adicionar Filtro\n </button>\n </div>\n\n <!-- Action Buttons -->\n <div\n class=\"flex flex-wrap gap-3 self-start sm:self-auto\"\n *ngIf=\"\n this.hasFilterableColumn === true ||\n this.hasSortableColumn === true\n \"\n >\n <button\n (click)=\"search()\"\n type=\"button\"\n class=\"flex items-center gap-2 rounded-lg bg-green-600 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-green-700\"\n matTooltip=\"Aplicar filtros\"\n >\n <i class=\"fa fa-search\"></i>\n Pesquisar\n </button>\n\n <button\n (click)=\"resetFilter()\"\n class=\"flex items-center gap-2 rounded-lg bg-red-500 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-red-600\"\n matTooltip=\"Limpar filtros\"\n >\n <i class=\"fas fa-redo-alt\"></i>\n Resetar\n </button>\n\n <button\n *ngIf=\"data.download !== false && downloadTable\"\n class=\"flex items-center gap-2 rounded-lg bg-orange-500 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-orange-600\"\n matTooltipPosition=\"above\"\n matTooltip=\"Exportar Tabela\"\n [disabled]=\"\n this.dataSource && this.dataSource.filteredData.length <= 0\n \"\n (click)=\"handleDownload()\"\n >\n <i class=\"fa fa-download\"></i>\n Exportar\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"flex flex-col\">\n <!-- TABS COMPONENT -->\n <lib-table-tabs\n *ngIf=\"data.tabs && data.tabs.tabsData && data.tabs.tabsData.length > 0\"\n [tabsData]=\"data.tabs.tabsData\"\n [selectedTab]=\"selectedTab\"\n (tabSelected)=\"onTabSelected($event)\"\n ></lib-table-tabs>\n <div\n class=\"mat-elevation-z8 w-full overflow-x-auto rounded-xl table-container\"\n >\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n #sort=\"matSort\"\n matSortActive=\"createdAt\"\n matSortDirection=\"desc\"\n >\n <ng-container\n *ngFor=\"let col of data.displayedColumns; trackBy: trackByProperty\"\n matColumnDef=\"{{ col.property }}\"\n >\n <ng-container *matHeaderCellDef>\n <!-- IF THE COLUMN IS NOT SORTABLE, THEN DON'T SHOW THE SORT BUTTONS -->\n <th\n *ngIf=\"!col.isSortable || data.pagination === true\"\n mat-header-cell\n >\n {{ col.title }}\n </th>\n <!-- IF THE COLUMN IS SORTABLE, THEN SHOW THE SORT BUTTONS -->\n <th\n *ngIf=\"col.isSortable && data.pagination === false\"\n mat-header-cell\n mat-sort-header\n >\n {{ col.title }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n (click)=\"col.method ? col.method(row) : null\"\n (mouseenter)=\"onCellMouseEnter($event, row, col)\"\n (mouseleave)=\"onCellMouseLeave()\"\n (mousemove)=\"onCellMouseMove($event)\"\n >\n <!-- CHECK IF THE COLUMN MUST BE DISPLAYED -->\n <span *ngIf=\"!col.image && !col.iconClass && !col.method\">\n <ng-container>\n <span\n *ngIf=\"\n col.charLimit &&\n row[col.property] &&\n row[col.property].length > col.charLimit;\n else withinLimit\n \"\n >\n <a\n *ngIf=\"col.hasLink === true\"\n [href]=\"row[col.property]\"\n target=\"_blank\"\n >\n {{ getDisplayValue(col, row) }}\n </a>\n <a\n *ngIf=\"col.hasLink && isString(col.hasLink)\"\n [href]=\"col.hasLink\"\n target=\"_blank\"\n >\n {{ getDisplayValue(col, row) }}\n </a>\n <span\n *ngIf=\"col.hasLink !== true && !isString(col.hasLink)\"\n >\n {{ getDisplayValue(col, row) }}\n </span>\n </span>\n </ng-container>\n <ng-template #withinLimit>\n <a\n *ngIf=\"col.hasLink === true\"\n [href]=\"row[col.property]\"\n target=\"_blank\"\n >\n {{ getDisplayValue(col, row, true) }}\n </a>\n <a\n *ngIf=\"col.hasLink && isString(col.hasLink)\"\n [href]=\"col.hasLink\"\n target=\"_blank\"\n >\n {{ getDisplayValue(col, row, true) }}\n </a>\n <span\n *ngIf=\"col.hasLink !== true && !isString(col.hasLink)\"\n >\n {{ getDisplayValue(col, row, true) }}\n </span>\n </ng-template>\n </span>\n <!------------------- IMAGE ------------------>\n <!-- Imagem com loading -->\n <div\n *ngIf=\"\n col.image && col.image.path && !col.iconClass && !col.method\n \"\n class=\"relative inline-block\"\n >\n <mat-spinner\n *ngIf=\"isImageLoading(row, col)\"\n [diameter]=\"32\"\n class=\"absolute inset-0 m-auto\"\n ></mat-spinner>\n <img\n [src]=\"col.image.path + '/' + row[col.property]\"\n [ngClass]=\"col.image.class\"\n [class.opacity-0]=\"isImageLoading(row, col)\"\n alt=\"\"\n (load)=\"onImageLoad(row, col)\"\n (error)=\"onImageError($event, row, col, col.image.default)\"\n />\n </div>\n\n <!-- Imagem com URL completa e loading -->\n <div\n *ngIf=\"\n col.image && col.image.url && !col.iconClass && !col.method\n \"\n class=\"relative inline-block\"\n >\n <mat-spinner\n *ngIf=\"isImageLoading(row, col)\"\n [diameter]=\"32\"\n class=\"absolute inset-0 m-auto\"\n ></mat-spinner>\n <img\n [src]=\"row[col.property]\"\n [ngClass]=\"col.image.class\"\n [class.opacity-0]=\"isImageLoading(row, col)\"\n alt=\"\"\n (load)=\"onImageLoad(row, col)\"\n (error)=\"onImageError($event, row, col, col.image.default)\"\n />\n </div>\n <ng-container *ngIf=\"col.iconClass\">\n <button\n *ngFor=\"let iconClass of col.iconClass\"\n (click)=\"\n iconClass.buttonMethod\n ? iconClass.buttonMethod(row, $event)\n : $event.stopPropagation()\n \"\n >\n <span\n [ngClass]=\"iconClass.class\"\n *ngIf=\"\n iconClass.condition === undefined ||\n (iconClass.condition !== undefined &&\n $any(iconClass.condition)(row))\n \"\n >{{ iconClass.text }}</span\n >\n </button>\n </ng-container>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnProperties\"></tr>\n <tr\n [ngClass]=\"getTableRowNgClass()\"\n mat-row\n *matRowDef=\"let row; columns: columnProperties\"\n (click)=\"goToDetails(row)\"\n ></tr>\n\n <!-- ROW SHOWN WHEN THERE IS NO MATCHING DATA. -->\n <tr class=\"mat-row\" *matNoDataRow>\n <td *ngIf=\"!(isLoading$ | async)\" class=\"mat-cell p-4\" colspan=\"4\">\n Nenhum resultado encontrado para a busca\n </td>\n </tr>\n </table>\n\n <div class=\"flex justify-center\" *ngIf=\"isLoading$ | async\">\n <mat-spinner></mat-spinner>\n </div>\n\n <div class=\"paginator-container\">\n <mat-paginator\n #paginator\n [pageSizeOptions]=\"[25, 50, 100]\"\n [pageSize]=\"pageSize\"\n [length]=\"totalItems\"\n showFirstLastButtons\n aria-label=\"Select page of periodic elements\"\n (page)=\"onPageChange($event)\"\n [ngClass]=\"getPaginatorNgClass()\"\n >\n </mat-paginator>\n <!-- <div\n *ngIf=\"\n !(isLoading$ | async) &&\n dataSource?.data &&\n dataSource.data.length > 0 &&\n data?.filterFn\n \"\n class=\"page-number-display\"\n >\n {{ currentPageNumber }}\n </div> -->\n </div>\n </div>\n </div>\n </div>\n\n <!-- TOOLTIP PERSONALIZADO -->\n <lib-table-tooltip\n [state]=\"tooltipState\"\n [styles]=\"getTooltipStyles()\"\n ></lib-table-tooltip>\n</div>\n", styles: ["@charset \"UTF-8\";:host{--table-color: #1976d2;--table-text-color: white;--table-header-bg: #1976d2;--table-header-text: white;--table-scrollbar-bg: #f5f5f5;--table-scrollbar-thumb: var(--table-color)}.table-container::-webkit-scrollbar{width:10px;height:10px;background-color:var(--table-scrollbar-bg, #f5f5f5)}.table-container::-webkit-scrollbar-thumb{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));border-radius:5px}.table-container::-webkit-scrollbar-thumb:hover{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));opacity:.8}.overflow-x-auto::-webkit-scrollbar,.overflow-y-auto::-webkit-scrollbar,.overflow-auto::-webkit-scrollbar{width:10px;height:10px;background-color:var(--table-scrollbar-bg, #f5f5f5)}.overflow-x-auto::-webkit-scrollbar-thumb,.overflow-y-auto::-webkit-scrollbar-thumb,.overflow-auto::-webkit-scrollbar-thumb{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));border-radius:5px}.overflow-x-auto::-webkit-scrollbar-thumb:hover,.overflow-y-auto::-webkit-scrollbar-thumb:hover,.overflow-auto::-webkit-scrollbar-thumb:hover{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));opacity:.8}:host ::ng-deep .mat-table .mat-header-cell,:host ::ng-deep .mat-header-cell,:host ::ng-deep th.mat-header-cell,:host ::ng-deep .mat-mdc-table .mat-mdc-header-cell,:host ::ng-deep .mat-mdc-header-cell,:host ::ng-deep th.mat-mdc-header-cell{background-color:var(--table-header-bg, #1976d2)!important;color:var(--table-header-text, white)!important;font-weight:600}::ng-deep .fa-filter,::ng-deep i.fa-filter{color:var(--table-color, #1976d2)!important}::ng-deep .rounded-xl.border{border-color:var(--table-color, #1976d2)!important}::ng-deep .border-gray-200.rounded-xl{border-color:var(--table-color, #1976d2)!important}::ng-deep .mdc-notched-outline__notch{border-right:none!important}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-bottom:0}::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-bottom:0}.mat-mdc-text-field-wrapper.mdc-text-field--outlined.mdc-text-field--disabled{background:rgba(0,0,0,.15);background-size:1px 100%!important;background-repeat:repeat-x!important}.mdc-text-field--disabled .mdc-text-field__input{color:#525252}button:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)){transition:all .2s ease;cursor:pointer}button:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)):hover:not(:disabled){opacity:.9;transform:scale(1.02)}button:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)):disabled{opacity:.5;cursor:not-allowed;transform:none}::ng-deep .hide-length .mat-mdc-paginator-range-label{display:none}::ng-deep .hide-next-button .mat-mdc-tooltip-trigger.mat-mdc-paginator-navigation-next.mdc-icon-button.mat-mdc-icon-button.mat-unthemed.mat-mdc-button-base{visibility:hidden}::ng-deep .hide-next-button .mat-mdc-tooltip-trigger.mat-mdc-paginator-navigation-last.mdc-icon-button.mat-mdc-icon-button.mat-unthemed.mat-mdc-button-base.ng-star-inserted{visibility:hidden}::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field.ng-tns-c162-1.mdc-text-field--filled{width:25dvw}::ng-deep .custom-filter .mat-mdc-text-field-wrapper{width:20dvw;max-width:300px}button[matTooltip=\"Adicionar novo filtro\"],button:has(i.fa-plus){display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border:2px solid #93c5fd;background-color:#dbeafe;padding:.5rem 1.5rem;font-size:.875rem;font-weight:500;color:#2563eb;transition:all .3s;cursor:pointer;transform:translateY(0)}button[matTooltip=\"Adicionar novo filtro\"]:hover,button:has(i.fa-plus):hover{transform:translateY(-2px);border-color:#60a5fa;background-color:#bfdbfe;box-shadow:0 4px 6px #0000001a}button[matTooltip=\"Aplicar filtros\"],button:has(i.fa-search){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#16a34a;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Aplicar filtros\"]:hover,button:has(i.fa-search):hover{background-color:#15803d}button[matTooltip=\"Aplicar filtros\"]:disabled,button:has(i.fa-search):disabled{opacity:.5;cursor:not-allowed}button[matTooltip=\"Limpar filtros\"],button:has(i.fas.fa-redo-alt){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#ef4444;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Limpar filtros\"]:hover,button:has(i.fas.fa-redo-alt):hover{background-color:#dc2626}button[matTooltip=\"Exportar Tabela\"],button:has(i.fa-download){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#f97316;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Exportar Tabela\"]:hover:not(:disabled),button:has(i.fa-download):hover:not(:disabled){background-color:#ea580c}button[matTooltip=\"Exportar Tabela\"]:disabled,button:has(i.fa-download):disabled{opacity:.5;cursor:not-allowed}\n"] }]
3622
+ args: [{ selector: 'lib-table', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"data\" class=\"card-body\">\n <div class=\"flex flex-col justify-between gap-6\">\n <!-- UNIFIED CONTROL PANEL: FILTERS, SORT & ACTIONS -->\n <div\n class=\"rounded-xl border border-gray-200 bg-white p-4 shadow-lg\"\n *ngIf=\"\n data.pagination === true &&\n (dropdownItems.length > 0 ||\n sortableDropdownItems.length > 0 ||\n data.actionButton)\n \"\n >\n <!-- PANEL HEADER: Title and Custom Action -->\n <div\n class=\"mb-4 flex flex-col items-start justify-between gap-4 border-b-2 border-gray-200 pb-4 md:flex-row md:items-center\"\n >\n <!-- Left Side: Title & Main Action Button -->\n <div class=\"flex flex-wrap items-center gap-4\">\n <div class=\"flex items-center gap-2\">\n <i class=\"fa fa-filter text-xl text-blue-500\"></i>\n <span class=\"text-lg font-semibold text-gray-700\"\n >Filtros e A\u00E7\u00F5es</span\n >\n </div>\n <button\n *ngIf=\"data.actionButton && data.actionButton.condition\"\n [ngClass]=\"getActionButtonClass()\"\n [routerLink]=\"data.actionButton.routerLink\"\n (click)=\"\n data.actionButton.method ? data.actionButton.method($event) : null\n \"\n >\n <i\n *ngIf=\"data.actionButton.icon\"\n [class]=\"data.actionButton.icon\"\n ></i>\n {{ data.actionButton.label }}\n </button>\n </div>\n </div>\n\n <!-- SORT FIELD (Integrated with filters) -->\n <div class=\"mb-4\" *ngIf=\"sortableDropdownItems.length > 0\">\n <div class=\"flex flex-wrap items-center gap-3 p-2\">\n <div class=\"min-w-[200px] flex-1\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-sort-alpha-down text-cyan-600\"></i>\n <span>Ordenar por</span>\n </mat-label>\n <mat-select placeholder=\"Selecione...\" [formControl]=\"selectSort\">\n <mat-option\n *ngFor=\"let item of sortableDropdownItems\"\n [value]=\"item\"\n >\n <div class=\"flex items-center gap-2\">\n <i class=\"fa fa-sort-alpha-down text-cyan-600\"></i>\n <span>{{ item.title }}</span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <!-- FILTERS CONTENT (WITH REFINEMENTS) -->\n <div class=\"mb-4 space-y-3\" *ngIf=\"filtersForm.controls.length > 0\">\n <div\n [formGroup]=\"$any(filterGroup)\"\n *ngFor=\"let filterGroup of filtersForm.controls; let i = index\"\n class=\"flex flex-wrap items-center gap-3 p-2\"\n >\n <!-- FILTER TYPE SELECTOR -->\n <div class=\"min-w-[200px] flex-1\" *ngIf=\"dropdownItems.length > 0\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>Tipo de filtro</mat-label>\n <mat-select\n placeholder=\"Selecione o tipo...\"\n formControlName=\"selectFilter\"\n (selectionChange)=\"onSelectFilterChange()\"\n >\n <mat-option\n *ngFor=\"let item of getAvailableFilterOptions(filterGroup)\"\n [value]=\"item\"\n >\n <div class=\"flex items-center gap-2\">\n <i\n [class]=\"item.icon || 'fa fa-filter'\"\n class=\"text-sm text-blue-500\"\n ></i>\n <span>{{ item.title }}</span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- TEXT FILTER -->\n <div\n class=\"min-w-[200px] flex-1\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value?.arrange === 'filter'\n \"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-search text-gray-400\"></i>\n <span>{{\n $any(filterGroup).get(\"selectFilter\")?.value?.title ||\n \"Filtrar\"\n }}</span>\n </mat-label>\n <input\n (keyup.enter)=\"search($event)\"\n formControlName=\"typeFilter\"\n matInput\n placeholder=\"Digite para filtrar...\"\n #input\n />\n </mat-form-field>\n </div>\n\n <!-- DROPDOWN FILTER -->\n <div\n class=\"min-w-[200px] flex-1\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value &&\n $any(filterGroup)\n .get('selectFilter')\n ?.value.hasOwnProperty('items')\n \"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>{{\n $any(filterGroup).get(\"selectFilter\")?.value?.title ||\n \"Selecione\"\n }}</mat-label>\n <mat-select\n placeholder=\"Selecione...\"\n formControlName=\"selectItem\"\n multiple\n >\n <mat-option\n *ngFor=\"\n let item of $any(filterGroup).get('selectFilter')?.value\n .items\n \"\n [value]=\"item\"\n >\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- DATE FILTER -->\n <div\n class=\"min-w-[340px] flex-auto\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value?.arrange ===\n 'filterByDate'\n \"\n >\n <div\n class=\"flex flex-col items-stretch gap-3 sm:flex-row sm:items-center\"\n >\n <mat-form-field appearance=\"outline\" class=\"flex-1\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-calendar text-gray-400\"></i>\n <span>Data Inicial</span>\n </mat-label>\n <input\n type=\"text\"\n matInput\n (keydown.enter)=\"search($event)\"\n (input)=\"onDateInput($event, 'initialDate', i)\"\n formControlName=\"initialDate\"\n placeholder=\"DD/MM/AAAA\"\n maxlength=\"10\"\n />\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" class=\"flex-1\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-calendar text-gray-400\"></i>\n <span>Data Final</span>\n </mat-label>\n <input\n type=\"text\"\n (keydown.enter)=\"search($event)\"\n (input)=\"onDateInput($event, 'finalDate', i)\"\n matInput\n formControlName=\"finalDate\"\n placeholder=\"DD/MM/AAAA\"\n maxlength=\"10\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <!-- REMOVE FILTER BUTTON -->\n <div *ngIf=\"filtersForm.length > 1\" class=\"ml-auto flex-shrink-0\">\n <button\n (click)=\"removeFilter(i)\"\n class=\"flex h-10 w-10 items-center justify-center rounded-full transition-colors duration-300 hover:bg-red-100\"\n matTooltip=\"Remover filtro\"\n >\n <i class=\"fa fa-trash text-red-500 hover:text-red-600\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- PANEL FOOTER: Add Filter & Action Buttons -->\n <div\n class=\"-mb-2 flex items-start justify-between gap-4 border-t border-gray-200 pt-4\"\n >\n <!-- Add Filter Button -->\n <div *ngIf=\"dropdownItems.length > 0\">\n <button\n (click)=\"addFilter()\"\n class=\"transform rounded-full border-2 border-blue-300 bg-blue-50 px-6 py-2 text-sm font-medium text-blue-600 transition-all duration-300 hover:-translate-y-0.5 hover:border-blue-400 hover:bg-blue-100 hover:shadow-md\"\n matTooltip=\"Adicionar novo filtro\"\n >\n <i class=\"fa fa-plus mr-2\"></i>\n Adicionar Filtro\n </button>\n </div>\n\n <!-- Right Side: Search, Reset, Export -->\n <div\n class=\"flex flex-wrap gap-3 self-start sm:self-auto\"\n *ngIf=\"\n this.hasFilterableColumn === true || this.hasSortableColumn === true\n \"\n >\n <button\n (click)=\"search()\"\n type=\"button\"\n class=\"flex items-center gap-2 rounded-lg bg-green-600 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-green-700\"\n matTooltip=\"Aplicar filtros\"\n >\n <i class=\"fa fa-search\"></i>\n Pesquisar\n </button>\n\n <button\n (click)=\"resetFilter()\"\n class=\"flex items-center gap-2 rounded-lg bg-red-500 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-red-600\"\n matTooltip=\"Limpar filtros\"\n >\n <i class=\"fas fa-redo-alt\"></i>\n Resetar\n </button>\n\n <button\n *ngIf=\"data.download !== false && downloadTable\"\n class=\"flex items-center gap-2 rounded-lg bg-orange-500 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-orange-600\"\n matTooltipPosition=\"above\"\n matTooltip=\"Exportar Tabela\"\n [disabled]=\"\n this.dataSource && this.dataSource.filteredData.length <= 0\n \"\n (click)=\"\n $any(arrange) && downloadTable !== undefined\n ? downloadTable($any(arrange), data.conditions || [])\n : null\n \"\n >\n <i class=\"fa fa-download\"></i>\n Exportar\n </button>\n </div>\n </div>\n </div>\n\n <!-- UNIFIED CONTROL PANEL (for non-paginated tables): SEARCH, SORT & FILTERS -->\n <div\n class=\"rounded-xl border border-gray-200 bg-white p-4 shadow-lg\"\n *ngIf=\"\n data.pagination === false &&\n (hasFilterableColumn === true ||\n dropdownItems.length > 0 ||\n data.actionButton)\n \"\n >\n <!-- PANEL HEADER: Title and Custom Action -->\n <div\n class=\"mb-4 flex flex-col items-start justify-between gap-4 border-b-2 border-gray-200 pb-4 md:flex-row md:items-center\"\n >\n <!-- Left Side: Title & Main Action Button -->\n <div class=\"flex flex-wrap items-center gap-4\">\n <div class=\"flex items-center gap-2\">\n <i class=\"fa fa-filter text-xl text-blue-500\"></i>\n <span class=\"text-lg font-semibold text-gray-700\"\n >Filtros e A\u00E7\u00F5es</span\n >\n </div>\n <button\n *ngIf=\"data.actionButton && data.actionButton.condition\"\n [ngClass]=\"getActionButtonClass()\"\n [routerLink]=\"data.actionButton.routerLink\"\n (click)=\"\n data.actionButton.method ? data.actionButton.method($event) : null\n \"\n >\n <i\n *ngIf=\"data.actionButton.icon\"\n [class]=\"data.actionButton.icon\"\n ></i>\n {{ data.actionButton.label }}\n </button>\n </div>\n </div>\n\n <!-- SIMPLE SEARCH -->\n <div\n class=\"mb-4\"\n *ngIf=\"hasFilterableColumn === true && data.showSimpleSearch !== false\"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-search text-blue-500\"></i>\n Buscar\n </mat-label>\n <input\n matInput\n (keyup.enter)=\"search($event)\"\n (keyup)=\"applyFilter(filterInput.value)\"\n placeholder=\"Digite para filtrar...\"\n #filterInput\n />\n <mat-icon matSuffix class=\"text-gray-500\">search</mat-icon>\n </mat-form-field>\n </div>\n\n <!-- FILTERS PANEL -->\n <div *ngIf=\"dropdownItems.length > 0\">\n <!-- FILTERS CONTENT -->\n <div class=\"mb-4 space-y-3\" *ngIf=\"filtersForm.controls.length > 0\">\n <div\n [formGroup]=\"$any(filterGroup)\"\n *ngFor=\"let filterGroup of filtersForm.controls; let i = index\"\n class=\"flex flex-wrap items-center gap-3\"\n >\n <!-- FILTER TYPE SELECTOR -->\n <div class=\"min-w-[200px] flex-1\" *ngIf=\"dropdownItems.length > 0\">\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>Tipo de filtro</mat-label>\n <mat-select\n placeholder=\"Selecione o tipo...\"\n formControlName=\"selectFilter\"\n (selectionChange)=\"onSelectFilterChange()\"\n >\n <mat-option\n *ngFor=\"let item of getAvailableFilterOptions(filterGroup)\"\n [value]=\"item\"\n >\n <div class=\"flex items-center gap-2\">\n <i\n [class]=\"item.icon || 'fa fa-filter'\"\n class=\"text-sm text-blue-500\"\n ></i>\n <span>{{ item.title }}</span>\n </div>\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- TEXT FILTER -->\n <div\n class=\"min-w-[200px] flex-1\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value?.arrange ===\n 'filter'\n \"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-search text-gray-400\"></i>\n <span>{{\n $any(filterGroup).get(\"selectFilter\")?.value?.title ||\n \"Filtrar\"\n }}</span>\n </mat-label>\n <input\n (keyup.enter)=\"search($event)\"\n formControlName=\"typeFilter\"\n matInput\n placeholder=\"Digite para filtrar...\"\n #input\n />\n </mat-form-field>\n </div>\n\n <!-- DROPDOWN FILTER -->\n <div\n class=\"min-w-[200px] flex-1\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value &&\n $any(filterGroup)\n .get('selectFilter')\n ?.value.hasOwnProperty('items')\n \"\n >\n <mat-form-field appearance=\"outline\" class=\"w-full\">\n <mat-label>{{\n $any(filterGroup).get(\"selectFilter\")?.value?.title ||\n \"Selecione\"\n }}</mat-label>\n <mat-select\n placeholder=\"Selecione...\"\n formControlName=\"selectItem\"\n multiple\n >\n <mat-option\n *ngFor=\"\n let item of $any(filterGroup).get('selectFilter')?.value\n .items\n \"\n [value]=\"item\"\n >\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!-- DATE FILTER -->\n <div\n class=\"min-w-[340px] flex-auto\"\n *ngIf=\"\n $any(filterGroup).get('selectFilter')?.value?.arrange ===\n 'filterByDate'\n \"\n >\n <div\n class=\"flex flex-col items-stretch gap-3 sm:flex-row sm:items-center\"\n >\n <mat-form-field appearance=\"outline\" class=\"flex-1\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-calendar text-gray-400\"></i>\n <span>Data Inicial</span>\n </mat-label>\n <input\n type=\"text\"\n matInput\n (keydown.enter)=\"search($event)\"\n (input)=\"onDateInput($event, 'initialDate', i)\"\n (blur)=\"onDateFilterChange()\"\n formControlName=\"initialDate\"\n placeholder=\"DD/MM/AAAA\"\n maxlength=\"10\"\n />\n </mat-form-field>\n\n <mat-form-field appearance=\"outline\" class=\"flex-1\">\n <mat-label class=\"flex items-center gap-2\">\n <i class=\"fa fa-calendar text-gray-400\"></i>\n <span>Data Final</span>\n </mat-label>\n <input\n type=\"text\"\n (keydown.enter)=\"search($event)\"\n (input)=\"onDateInput($event, 'finalDate', i)\"\n (blur)=\"onDateFilterChange()\"\n matInput\n formControlName=\"finalDate\"\n placeholder=\"DD/MM/AAAA\"\n maxlength=\"10\"\n />\n </mat-form-field>\n </div>\n </div>\n\n <!-- REMOVE FILTER BUTTON -->\n <div *ngIf=\"filtersForm.length > 1\" class=\"ml-auto flex-shrink-0\">\n <button\n (click)=\"removeFilter(i)\"\n class=\"flex h-10 w-10 items-center justify-center rounded-full transition-colors duration-300 hover:bg-red-100\"\n matTooltip=\"Remover filtro\"\n >\n <i class=\"fa fa-trash text-red-500 hover:text-red-600\"></i>\n </button>\n </div>\n </div>\n </div>\n\n <!-- PANEL FOOTER: Add Filter & Actions -->\n <div\n class=\"-mb-2 flex items-start justify-between gap-4 border-t border-gray-200 pt-4\"\n >\n <!-- Add Filter Button -->\n <div *ngIf=\"dropdownItems.length > 0\">\n <button\n (click)=\"addFilter()\"\n class=\"transform rounded-full border-2 border-blue-300 bg-blue-50 px-6 py-2 text-sm font-medium text-blue-600 transition-all duration-300 hover:-translate-y-0.5 hover:border-blue-400 hover:bg-blue-100 hover:shadow-md\"\n matTooltip=\"Adicionar novo filtro\"\n >\n <i class=\"fa fa-plus mr-2\"></i>\n Adicionar Filtro\n </button>\n </div>\n\n <!-- Action Buttons -->\n <div\n class=\"flex flex-wrap gap-3 self-start sm:self-auto\"\n *ngIf=\"\n this.hasFilterableColumn === true ||\n this.hasSortableColumn === true\n \"\n >\n <button\n (click)=\"search()\"\n type=\"button\"\n class=\"flex items-center gap-2 rounded-lg bg-green-600 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-green-700\"\n matTooltip=\"Aplicar filtros\"\n >\n <i class=\"fa fa-search\"></i>\n Pesquisar\n </button>\n\n <button\n (click)=\"resetFilter()\"\n class=\"flex items-center gap-2 rounded-lg bg-red-500 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-red-600\"\n matTooltip=\"Limpar filtros\"\n >\n <i class=\"fas fa-redo-alt\"></i>\n Resetar\n </button>\n\n <button\n *ngIf=\"data.download !== false && downloadTable\"\n class=\"flex items-center gap-2 rounded-lg bg-orange-500 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-orange-600\"\n matTooltipPosition=\"above\"\n matTooltip=\"Exportar Tabela\"\n [disabled]=\"\n this.dataSource && this.dataSource.filteredData.length <= 0\n \"\n (click)=\"handleDownload()\"\n >\n <i class=\"fa fa-download\"></i>\n Exportar\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"flex flex-col\">\n <!-- TABS COMPONENT -->\n <lib-table-tabs\n *ngIf=\"data.tabs && data.tabs.tabsData && data.tabs.tabsData.length > 0\"\n [tabsData]=\"data.tabs.tabsData\"\n [selectedTab]=\"selectedTab\"\n (tabSelected)=\"onTabSelected($event)\"\n ></lib-table-tabs>\n <div\n class=\"mat-elevation-z8 w-full overflow-x-auto rounded-xl table-container\"\n >\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n #sort=\"matSort\"\n matSortActive=\"createdAt\"\n matSortDirection=\"desc\"\n >\n <ng-container\n *ngFor=\"let col of data.displayedColumns; trackBy: trackByProperty\"\n matColumnDef=\"{{ col.property }}\"\n >\n <ng-container *matHeaderCellDef>\n <!-- IF THE COLUMN IS NOT SORTABLE, THEN DON'T SHOW THE SORT BUTTONS -->\n <th\n *ngIf=\"!col.isSortable || data.pagination === true\"\n mat-header-cell\n >\n {{ col.title }}\n </th>\n <!-- IF THE COLUMN IS SORTABLE, THEN SHOW THE SORT BUTTONS -->\n <th\n *ngIf=\"col.isSortable && data.pagination === false\"\n mat-header-cell\n mat-sort-header\n >\n {{ col.title }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n (click)=\"col.method ? col.method(row) : null\"\n (mouseenter)=\"onCellMouseEnter($event, row, col)\"\n (mouseleave)=\"onCellMouseLeave()\"\n (mousemove)=\"onCellMouseMove($event)\"\n >\n <!-- CHECK IF THE COLUMN MUST BE DISPLAYED -->\n <span *ngIf=\"!col.image && !col.iconClass && !col.method\">\n <ng-container>\n <span\n *ngIf=\"\n col.charLimit &&\n row[col.property] &&\n row[col.property].length > col.charLimit;\n else withinLimit\n \"\n >\n <a\n *ngIf=\"col.hasLink === true\"\n [href]=\"row[col.property]\"\n target=\"_blank\"\n >\n {{ getDisplayValue(col, row) }}\n </a>\n <a\n *ngIf=\"col.hasLink && isString(col.hasLink)\"\n [href]=\"col.hasLink\"\n target=\"_blank\"\n >\n {{ getDisplayValue(col, row) }}\n </a>\n <span\n *ngIf=\"col.hasLink !== true && !isString(col.hasLink)\"\n >\n {{ getDisplayValue(col, row) }}\n </span>\n </span>\n </ng-container>\n <ng-template #withinLimit>\n <a\n *ngIf=\"col.hasLink === true\"\n [href]=\"row[col.property]\"\n target=\"_blank\"\n >\n {{ getDisplayValue(col, row, true) }}\n </a>\n <a\n *ngIf=\"col.hasLink && isString(col.hasLink)\"\n [href]=\"col.hasLink\"\n target=\"_blank\"\n >\n {{ getDisplayValue(col, row, true) }}\n </a>\n <span\n *ngIf=\"col.hasLink !== true && !isString(col.hasLink)\"\n >\n {{ getDisplayValue(col, row, true) }}\n </span>\n </ng-template>\n </span>\n <!------------------- IMAGE ------------------>\n <!-- Imagem com loading -->\n <div\n *ngIf=\"\n col.image && col.image.path && !col.iconClass && !col.method\n \"\n class=\"relative inline-block\"\n >\n <mat-spinner\n *ngIf=\"isImageLoading(row, col)\"\n [diameter]=\"32\"\n class=\"absolute inset-0 m-auto\"\n ></mat-spinner>\n <img\n [src]=\"col.image.path + '/' + row[col.property]\"\n [ngClass]=\"col.image.class\"\n [class.opacity-0]=\"isImageLoading(row, col)\"\n alt=\"\"\n (load)=\"onImageLoad(row, col)\"\n (error)=\"onImageError($event, row, col, col.image.default)\"\n />\n </div>\n\n <!-- Imagem com URL completa e loading -->\n <div\n *ngIf=\"\n col.image && col.image.url && !col.iconClass && !col.method\n \"\n class=\"relative inline-block\"\n >\n <mat-spinner\n *ngIf=\"isImageLoading(row, col)\"\n [diameter]=\"32\"\n class=\"absolute inset-0 m-auto\"\n ></mat-spinner>\n <img\n [src]=\"row[col.property]\"\n [ngClass]=\"col.image.class\"\n [class.opacity-0]=\"isImageLoading(row, col)\"\n alt=\"\"\n (load)=\"onImageLoad(row, col)\"\n (error)=\"onImageError($event, row, col, col.image.default)\"\n />\n </div>\n <ng-container *ngIf=\"col.iconClass\">\n <button\n *ngFor=\"let iconClass of col.iconClass\"\n (click)=\"\n iconClass.buttonMethod\n ? iconClass.buttonMethod(row, $event)\n : $event.stopPropagation()\n \"\n >\n <span\n [ngClass]=\"iconClass.class\"\n *ngIf=\"\n iconClass.condition === undefined ||\n (iconClass.condition !== undefined &&\n $any(iconClass.condition)(row))\n \"\n >{{ iconClass.text }}</span\n >\n </button>\n </ng-container>\n </td>\n </ng-container>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnProperties\"></tr>\n <tr\n [ngClass]=\"getTableRowNgClass()\"\n mat-row\n *matRowDef=\"let row; columns: columnProperties\"\n (click)=\"goToDetails(row)\"\n ></tr>\n\n <!-- ROW SHOWN WHEN THERE IS NO MATCHING DATA. -->\n <tr class=\"mat-row\" *matNoDataRow>\n <td *ngIf=\"!(isLoading$ | async)\" class=\"mat-cell p-4\" colspan=\"4\">\n Nenhum resultado encontrado para a busca\n </td>\n </tr>\n </table>\n\n <div class=\"flex justify-center\" *ngIf=\"isLoading$ | async\">\n <mat-spinner></mat-spinner>\n </div>\n\n <div class=\"paginator-container\">\n <mat-paginator\n #paginator\n [pageSizeOptions]=\"[25, 50, 100]\"\n [pageSize]=\"pageSize\"\n [length]=\"totalItems\"\n showFirstLastButtons\n aria-label=\"Select page of periodic elements\"\n (page)=\"onPageChange($event)\"\n [ngClass]=\"getPaginatorNgClass()\"\n >\n </mat-paginator>\n <!-- <div\n *ngIf=\"\n !(isLoading$ | async) &&\n dataSource?.data &&\n dataSource.data.length > 0 &&\n data?.filterFn\n \"\n class=\"page-number-display\"\n >\n {{ currentPageNumber }}\n </div> -->\n </div>\n </div>\n </div>\n </div>\n\n <!-- TOOLTIP PERSONALIZADO -->\n <lib-table-tooltip\n [state]=\"tooltipState\"\n [styles]=\"getTooltipStyles()\"\n ></lib-table-tooltip>\n</div>\n", styles: ["@charset \"UTF-8\";:host{--table-color: #1976d2;--table-text-color: white;--table-header-bg: #1976d2;--table-header-text: white;--table-scrollbar-bg: #f5f5f5;--table-scrollbar-thumb: var(--table-color)}.table-container::-webkit-scrollbar{width:10px;height:10px;background-color:var(--table-scrollbar-bg, #f5f5f5)}.table-container::-webkit-scrollbar-thumb{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));border-radius:5px}.table-container::-webkit-scrollbar-thumb:hover{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));opacity:.8}.overflow-x-auto::-webkit-scrollbar,.overflow-y-auto::-webkit-scrollbar,.overflow-auto::-webkit-scrollbar{width:10px;height:10px;background-color:var(--table-scrollbar-bg, #f5f5f5)}.overflow-x-auto::-webkit-scrollbar-thumb,.overflow-y-auto::-webkit-scrollbar-thumb,.overflow-auto::-webkit-scrollbar-thumb{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));border-radius:5px}.overflow-x-auto::-webkit-scrollbar-thumb:hover,.overflow-y-auto::-webkit-scrollbar-thumb:hover,.overflow-auto::-webkit-scrollbar-thumb:hover{background-color:var(--table-scrollbar-thumb, var(--table-color, #1976d2));opacity:.8}:host ::ng-deep .mat-table .mat-header-cell,:host ::ng-deep .mat-header-cell,:host ::ng-deep th.mat-header-cell,:host ::ng-deep .mat-mdc-table .mat-mdc-header-cell,:host ::ng-deep .mat-mdc-header-cell,:host ::ng-deep th.mat-mdc-header-cell{background-color:var(--table-header-bg, #1976d2)!important;color:var(--table-header-text, white)!important;font-weight:600}::ng-deep .fa-filter,::ng-deep i.fa-filter{color:var(--table-color, #1976d2)!important}::ng-deep .rounded-xl.border{border-color:var(--table-color, #1976d2)!important}::ng-deep .border-gray-200.rounded-xl{border-color:var(--table-color, #1976d2)!important}::ng-deep .mdc-notched-outline__notch{border-right:none!important}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-bottom:0}::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-bottom:0}.mat-mdc-text-field-wrapper.mdc-text-field--outlined.mdc-text-field--disabled{background:rgba(0,0,0,.15);background-size:1px 100%!important;background-repeat:repeat-x!important}.mdc-text-field--disabled .mdc-text-field__input{color:#525252}button:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)){transition:all .2s ease;cursor:pointer}button:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)):hover:not(:disabled){opacity:.9;transform:scale(1.02)}button:not([matTooltip=\"Adicionar novo filtro\"]):not([matTooltip=\"Aplicar filtros\"]):not([matTooltip=\"Limpar filtros\"]):not([matTooltip=\"Exportar Tabela\"]):not(:has(i.fa-plus)):not(:has(i.fa-search)):not(:has(i.fas.fa-redo-alt)):not(:has(i.fa-download)):disabled{opacity:.5;cursor:not-allowed;transform:none}::ng-deep .hide-length .mat-mdc-paginator-range-label{display:none}::ng-deep .hide-next-button .mat-mdc-tooltip-trigger.mat-mdc-paginator-navigation-next.mdc-icon-button.mat-mdc-icon-button.mat-unthemed.mat-mdc-button-base{visibility:hidden}::ng-deep .hide-next-button .mat-mdc-tooltip-trigger.mat-mdc-paginator-navigation-last.mdc-icon-button.mat-mdc-icon-button.mat-unthemed.mat-mdc-button-base.ng-star-inserted{visibility:hidden}::ng-deep .mat-mdc-text-field-wrapper.mdc-text-field.ng-tns-c162-1.mdc-text-field--filled{width:25dvw}::ng-deep .custom-filter .mat-mdc-text-field-wrapper{width:20dvw;max-width:300px}button[matTooltip=\"Adicionar novo filtro\"],button:has(i.fa-plus){display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border:2px solid #93c5fd;background-color:#dbeafe;padding:.5rem 1.5rem;font-size:.875rem;font-weight:500;color:#2563eb;transition:all .3s;cursor:pointer;transform:translateY(0)}button[matTooltip=\"Adicionar novo filtro\"]:hover,button:has(i.fa-plus):hover{transform:translateY(-2px);border-color:#60a5fa;background-color:#bfdbfe;box-shadow:0 4px 6px #0000001a}button[matTooltip=\"Aplicar filtros\"],button:has(i.fa-search){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#16a34a;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Aplicar filtros\"]:hover,button:has(i.fa-search):hover{background-color:#15803d}button[matTooltip=\"Aplicar filtros\"]:disabled,button:has(i.fa-search):disabled{opacity:.5;cursor:not-allowed}button[matTooltip=\"Limpar filtros\"],button:has(i.fas.fa-redo-alt){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#ef4444;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Limpar filtros\"]:hover,button:has(i.fas.fa-redo-alt):hover{background-color:#dc2626}button[matTooltip=\"Exportar Tabela\"],button:has(i.fa-download){display:inline-flex;align-items:center;gap:.5rem;border-radius:.5rem;background-color:#f97316;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background-color .2s;cursor:pointer;border:none}button[matTooltip=\"Exportar Tabela\"]:hover:not(:disabled),button:has(i.fa-download):hover:not(:disabled){background-color:#ea580c}button[matTooltip=\"Exportar Tabela\"]:disabled,button:has(i.fa-download):disabled{opacity:.5;cursor:not-allowed}\n"] }]
3618
3623
  }], function () { return [{ type: i1$2.Router }, { type: TableService }, { type: FilterService }, { type: TooltipService }, { type: PaginationService }, { type: i1.AngularFirestore }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, { data: [{
3619
3624
  type: Input
3620
3625
  }], downloadTable: [{