ng-firebase-table-kxp 1.2.7 → 1.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/table/table.component.mjs +185 -178
- package/esm2020/lib/services/filter.service.mjs +7 -4
- package/esm2020/lib/services/table.service.mjs +2 -2
- package/esm2020/lib/types/Table.mjs +1 -1
- package/fesm2015/ng-firebase-table-kxp.mjs +191 -180
- package/fesm2015/ng-firebase-table-kxp.mjs.map +1 -1
- package/fesm2020/ng-firebase-table-kxp.mjs +189 -179
- package/fesm2020/ng-firebase-table-kxp.mjs.map +1 -1
- package/lib/components/table/table.component.d.ts +2 -2
- package/lib/services/filter.service.d.ts +2 -2
- package/lib/types/Table.d.ts +1 -0
- package/package.json +1 -1
|
@@ -669,7 +669,7 @@ class TableService {
|
|
|
669
669
|
});
|
|
670
670
|
}
|
|
671
671
|
executeClientSideQuery(params) {
|
|
672
|
-
var _a, _b, _c;
|
|
672
|
+
var _a, _b, _c, _d;
|
|
673
673
|
return __awaiter(this, void 0, void 0, function* () {
|
|
674
674
|
// Otimizar usando pelo menos uma cláusula .where() quando possível
|
|
675
675
|
let query = this.ngFire.collection(params.collection).ref;
|
|
@@ -899,7 +899,7 @@ class TableService {
|
|
|
899
899
|
else {
|
|
900
900
|
currentClientPageIndex = params.clientPageIndex || 0;
|
|
901
901
|
}
|
|
902
|
-
const pageSize = params.batchSize;
|
|
902
|
+
const pageSize = (_d = params.fullPageSize) !== null && _d !== void 0 ? _d : params.batchSize;
|
|
903
903
|
const startIndex = currentClientPageIndex * pageSize;
|
|
904
904
|
const endIndex = startIndex + pageSize;
|
|
905
905
|
const paginatedItems = items.slice(startIndex, endIndex);
|
|
@@ -1371,8 +1371,12 @@ class FilterService {
|
|
|
1371
1371
|
/**
|
|
1372
1372
|
* Retorna as opções de filtro disponíveis
|
|
1373
1373
|
*/
|
|
1374
|
-
getAvailableFilterOptions(dropdownItems, isPaginated, filtersForm) {
|
|
1375
|
-
|
|
1374
|
+
getAvailableFilterOptions(dropdownItems, isPaginated, filtersForm, currentGroup) {
|
|
1375
|
+
var _a, _b;
|
|
1376
|
+
const currentIsDateFilter = ((_b = (_a = currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.get('selectFilter')) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.arrange) === 'filterByDate';
|
|
1377
|
+
if (isPaginated &&
|
|
1378
|
+
this.hasActiveDateFilter(filtersForm) &&
|
|
1379
|
+
!currentIsDateFilter) {
|
|
1376
1380
|
return dropdownItems.filter((item) => item.arrange !== 'filterByDate');
|
|
1377
1381
|
}
|
|
1378
1382
|
return dropdownItems;
|
|
@@ -2264,21 +2268,22 @@ function TableComponent_div_0_div_2_div_9_div_1_div_1_Template(rf, ctx) {
|
|
|
2264
2268
|
i0.ɵɵelementEnd()()();
|
|
2265
2269
|
}
|
|
2266
2270
|
if (rf & 2) {
|
|
2267
|
-
const
|
|
2271
|
+
const filterGroup_r22 = i0.ɵɵnextContext().$implicit;
|
|
2272
|
+
const ctx_r24 = i0.ɵɵnextContext(4);
|
|
2268
2273
|
i0.ɵɵadvance(5);
|
|
2269
|
-
i0.ɵɵproperty("ngForOf", ctx_r24.getAvailableFilterOptions());
|
|
2274
|
+
i0.ɵɵproperty("ngForOf", ctx_r24.getAvailableFilterOptions(filterGroup_r22));
|
|
2270
2275
|
}
|
|
2271
2276
|
}
|
|
2272
2277
|
function TableComponent_div_0_div_2_div_9_div_1_div_2_Template(rf, ctx) {
|
|
2273
2278
|
if (rf & 1) {
|
|
2274
|
-
const
|
|
2279
|
+
const _r36 = i0.ɵɵgetCurrentView();
|
|
2275
2280
|
i0.ɵɵelementStart(0, "div", 34)(1, "mat-form-field", 35)(2, "mat-label", 21);
|
|
2276
2281
|
i0.ɵɵelement(3, "i", 48);
|
|
2277
2282
|
i0.ɵɵelementStart(4, "span");
|
|
2278
2283
|
i0.ɵɵtext(5);
|
|
2279
2284
|
i0.ɵɵelementEnd()();
|
|
2280
2285
|
i0.ɵɵelementStart(6, "input", 49, 50);
|
|
2281
|
-
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(
|
|
2286
|
+
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)); });
|
|
2282
2287
|
i0.ɵɵelementEnd()()();
|
|
2283
2288
|
}
|
|
2284
2289
|
if (rf & 2) {
|
|
@@ -2295,10 +2300,10 @@ function TableComponent_div_0_div_2_div_9_div_1_div_3_mat_option_5_Template(rf,
|
|
|
2295
2300
|
i0.ɵɵelementEnd();
|
|
2296
2301
|
}
|
|
2297
2302
|
if (rf & 2) {
|
|
2298
|
-
const
|
|
2299
|
-
i0.ɵɵproperty("value",
|
|
2303
|
+
const item_r39 = ctx.$implicit;
|
|
2304
|
+
i0.ɵɵproperty("value", item_r39);
|
|
2300
2305
|
i0.ɵɵadvance(1);
|
|
2301
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2306
|
+
i0.ɵɵtextInterpolate1(" ", item_r39.label, " ");
|
|
2302
2307
|
}
|
|
2303
2308
|
}
|
|
2304
2309
|
function TableComponent_div_0_div_2_div_9_div_1_div_3_Template(rf, ctx) {
|
|
@@ -2322,14 +2327,14 @@ function TableComponent_div_0_div_2_div_9_div_1_div_3_Template(rf, ctx) {
|
|
|
2322
2327
|
}
|
|
2323
2328
|
function TableComponent_div_0_div_2_div_9_div_1_div_4_Template(rf, ctx) {
|
|
2324
2329
|
if (rf & 1) {
|
|
2325
|
-
const
|
|
2330
|
+
const _r42 = i0.ɵɵgetCurrentView();
|
|
2326
2331
|
i0.ɵɵelementStart(0, "div", 52)(1, "div", 53)(2, "mat-form-field", 54)(3, "mat-label", 21);
|
|
2327
2332
|
i0.ɵɵelement(4, "i", 55);
|
|
2328
2333
|
i0.ɵɵelementStart(5, "span");
|
|
2329
2334
|
i0.ɵɵtext(6, "Data Inicial");
|
|
2330
2335
|
i0.ɵɵelementEnd()();
|
|
2331
2336
|
i0.ɵɵelementStart(7, "input", 56);
|
|
2332
|
-
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(
|
|
2337
|
+
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)); });
|
|
2333
2338
|
i0.ɵɵelementEnd()();
|
|
2334
2339
|
i0.ɵɵelementStart(8, "mat-form-field", 54)(9, "mat-label", 21);
|
|
2335
2340
|
i0.ɵɵelement(10, "i", 55);
|
|
@@ -2337,15 +2342,15 @@ function TableComponent_div_0_div_2_div_9_div_1_div_4_Template(rf, ctx) {
|
|
|
2337
2342
|
i0.ɵɵtext(12, "Data Final");
|
|
2338
2343
|
i0.ɵɵelementEnd()();
|
|
2339
2344
|
i0.ɵɵelementStart(13, "input", 57);
|
|
2340
|
-
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(
|
|
2345
|
+
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)); });
|
|
2341
2346
|
i0.ɵɵelementEnd()()()();
|
|
2342
2347
|
}
|
|
2343
2348
|
}
|
|
2344
2349
|
function TableComponent_div_0_div_2_div_9_div_1_div_5_Template(rf, ctx) {
|
|
2345
2350
|
if (rf & 1) {
|
|
2346
|
-
const
|
|
2351
|
+
const _r50 = i0.ɵɵgetCurrentView();
|
|
2347
2352
|
i0.ɵɵelementStart(0, "div", 58)(1, "button", 59);
|
|
2348
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_9_div_1_div_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
2353
|
+
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)); });
|
|
2349
2354
|
i0.ɵɵelement(2, "i", 60);
|
|
2350
2355
|
i0.ɵɵelementEnd()();
|
|
2351
2356
|
}
|
|
@@ -2393,9 +2398,9 @@ function TableComponent_div_0_div_2_div_9_Template(rf, ctx) {
|
|
|
2393
2398
|
}
|
|
2394
2399
|
function TableComponent_div_0_div_2_div_11_Template(rf, ctx) {
|
|
2395
2400
|
if (rf & 1) {
|
|
2396
|
-
const
|
|
2401
|
+
const _r52 = i0.ɵɵgetCurrentView();
|
|
2397
2402
|
i0.ɵɵelementStart(0, "div")(1, "button", 61);
|
|
2398
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_11_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
2403
|
+
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()); });
|
|
2399
2404
|
i0.ɵɵelement(2, "i", 62);
|
|
2400
2405
|
i0.ɵɵtext(3, " Adicionar Filtro ");
|
|
2401
2406
|
i0.ɵɵelementEnd()();
|
|
@@ -2403,28 +2408,28 @@ function TableComponent_div_0_div_2_div_11_Template(rf, ctx) {
|
|
|
2403
2408
|
}
|
|
2404
2409
|
function TableComponent_div_0_div_2_div_12_button_7_Template(rf, ctx) {
|
|
2405
2410
|
if (rf & 1) {
|
|
2406
|
-
const
|
|
2411
|
+
const _r55 = i0.ɵɵgetCurrentView();
|
|
2407
2412
|
i0.ɵɵelementStart(0, "button", 69);
|
|
2408
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
2413
|
+
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); });
|
|
2409
2414
|
i0.ɵɵelement(1, "i", 70);
|
|
2410
2415
|
i0.ɵɵtext(2, " Exportar ");
|
|
2411
2416
|
i0.ɵɵelementEnd();
|
|
2412
2417
|
}
|
|
2413
2418
|
if (rf & 2) {
|
|
2414
|
-
const
|
|
2415
|
-
i0.ɵɵproperty("disabled",
|
|
2419
|
+
const ctx_r53 = i0.ɵɵnextContext(4);
|
|
2420
|
+
i0.ɵɵproperty("disabled", ctx_r53.dataSource && ctx_r53.dataSource.filteredData.length <= 0);
|
|
2416
2421
|
}
|
|
2417
2422
|
}
|
|
2418
2423
|
function TableComponent_div_0_div_2_div_12_Template(rf, ctx) {
|
|
2419
2424
|
if (rf & 1) {
|
|
2420
|
-
const
|
|
2425
|
+
const _r57 = i0.ɵɵgetCurrentView();
|
|
2421
2426
|
i0.ɵɵelementStart(0, "div", 63)(1, "button", 64);
|
|
2422
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
2427
|
+
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()); });
|
|
2423
2428
|
i0.ɵɵelement(2, "i", 65);
|
|
2424
2429
|
i0.ɵɵtext(3, " Pesquisar ");
|
|
2425
2430
|
i0.ɵɵelementEnd();
|
|
2426
2431
|
i0.ɵɵelementStart(4, "button", 66);
|
|
2427
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_Template_button_click_4_listener() { i0.ɵɵrestoreView(
|
|
2432
|
+
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()); });
|
|
2428
2433
|
i0.ɵɵelement(5, "i", 67);
|
|
2429
2434
|
i0.ɵɵtext(6, " Resetar ");
|
|
2430
2435
|
i0.ɵɵelementEnd();
|
|
@@ -2472,37 +2477,37 @@ function TableComponent_div_0_div_3_button_7_i_1_Template(rf, ctx) {
|
|
|
2472
2477
|
i0.ɵɵelement(0, "i");
|
|
2473
2478
|
}
|
|
2474
2479
|
if (rf & 2) {
|
|
2475
|
-
const
|
|
2476
|
-
i0.ɵɵclassMap(
|
|
2480
|
+
const ctx_r62 = i0.ɵɵnextContext(4);
|
|
2481
|
+
i0.ɵɵclassMap(ctx_r62.data.actionButton.icon);
|
|
2477
2482
|
}
|
|
2478
2483
|
}
|
|
2479
2484
|
function TableComponent_div_0_div_3_button_7_Template(rf, ctx) {
|
|
2480
2485
|
if (rf & 1) {
|
|
2481
|
-
const
|
|
2486
|
+
const _r64 = i0.ɵɵgetCurrentView();
|
|
2482
2487
|
i0.ɵɵelementStart(0, "button", 30);
|
|
2483
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_button_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(
|
|
2488
|
+
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); });
|
|
2484
2489
|
i0.ɵɵtemplate(1, TableComponent_div_0_div_3_button_7_i_1_Template, 1, 2, "i", 31);
|
|
2485
2490
|
i0.ɵɵtext(2);
|
|
2486
2491
|
i0.ɵɵelementEnd();
|
|
2487
2492
|
}
|
|
2488
2493
|
if (rf & 2) {
|
|
2489
|
-
const
|
|
2490
|
-
i0.ɵɵproperty("ngClass",
|
|
2494
|
+
const ctx_r59 = i0.ɵɵnextContext(3);
|
|
2495
|
+
i0.ɵɵproperty("ngClass", ctx_r59.getActionButtonClass())("routerLink", ctx_r59.data.actionButton.routerLink);
|
|
2491
2496
|
i0.ɵɵadvance(1);
|
|
2492
|
-
i0.ɵɵproperty("ngIf",
|
|
2497
|
+
i0.ɵɵproperty("ngIf", ctx_r59.data.actionButton.icon);
|
|
2493
2498
|
i0.ɵɵadvance(1);
|
|
2494
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2499
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r59.data.actionButton.label, " ");
|
|
2495
2500
|
}
|
|
2496
2501
|
}
|
|
2497
2502
|
function TableComponent_div_0_div_3_div_8_Template(rf, ctx) {
|
|
2498
2503
|
if (rf & 1) {
|
|
2499
|
-
const
|
|
2504
|
+
const _r67 = i0.ɵɵgetCurrentView();
|
|
2500
2505
|
i0.ɵɵelementStart(0, "div", 32)(1, "mat-form-field", 35)(2, "mat-label", 21);
|
|
2501
2506
|
i0.ɵɵelement(3, "i", 71);
|
|
2502
2507
|
i0.ɵɵtext(4, " Buscar ");
|
|
2503
2508
|
i0.ɵɵelementEnd();
|
|
2504
2509
|
i0.ɵɵelementStart(5, "input", 72, 73);
|
|
2505
|
-
i0.ɵɵlistener("keyup.enter", function TableComponent_div_0_div_3_div_8_Template_input_keyup_enter_5_listener($event) { i0.ɵɵrestoreView(
|
|
2510
|
+
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)); });
|
|
2506
2511
|
i0.ɵɵelementEnd();
|
|
2507
2512
|
i0.ɵɵelementStart(7, "mat-icon", 74);
|
|
2508
2513
|
i0.ɵɵtext(8, "search");
|
|
@@ -2518,48 +2523,49 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_mat_option_5_Templat
|
|
|
2518
2523
|
i0.ɵɵelementEnd()()();
|
|
2519
2524
|
}
|
|
2520
2525
|
if (rf & 2) {
|
|
2521
|
-
const
|
|
2522
|
-
i0.ɵɵproperty("value",
|
|
2526
|
+
const item_r81 = ctx.$implicit;
|
|
2527
|
+
i0.ɵɵproperty("value", item_r81);
|
|
2523
2528
|
i0.ɵɵadvance(2);
|
|
2524
|
-
i0.ɵɵclassMap(
|
|
2529
|
+
i0.ɵɵclassMap(item_r81.icon || "fa fa-filter");
|
|
2525
2530
|
i0.ɵɵadvance(2);
|
|
2526
|
-
i0.ɵɵtextInterpolate(
|
|
2531
|
+
i0.ɵɵtextInterpolate(item_r81.title);
|
|
2527
2532
|
}
|
|
2528
2533
|
}
|
|
2529
2534
|
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_Template(rf, ctx) {
|
|
2530
2535
|
if (rf & 1) {
|
|
2531
|
-
const
|
|
2536
|
+
const _r83 = i0.ɵɵgetCurrentView();
|
|
2532
2537
|
i0.ɵɵelementStart(0, "div", 34)(1, "mat-form-field", 35)(2, "mat-label");
|
|
2533
2538
|
i0.ɵɵtext(3, "Tipo de filtro");
|
|
2534
2539
|
i0.ɵɵelementEnd();
|
|
2535
2540
|
i0.ɵɵelementStart(4, "mat-select", 46);
|
|
2536
|
-
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(
|
|
2541
|
+
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()); });
|
|
2537
2542
|
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);
|
|
2538
2543
|
i0.ɵɵelementEnd()()();
|
|
2539
2544
|
}
|
|
2540
2545
|
if (rf & 2) {
|
|
2541
|
-
const
|
|
2546
|
+
const filterGroup_r73 = i0.ɵɵnextContext().$implicit;
|
|
2547
|
+
const ctx_r75 = i0.ɵɵnextContext(5);
|
|
2542
2548
|
i0.ɵɵadvance(5);
|
|
2543
|
-
i0.ɵɵproperty("ngForOf",
|
|
2549
|
+
i0.ɵɵproperty("ngForOf", ctx_r75.getAvailableFilterOptions(filterGroup_r73));
|
|
2544
2550
|
}
|
|
2545
2551
|
}
|
|
2546
2552
|
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_2_Template(rf, ctx) {
|
|
2547
2553
|
if (rf & 1) {
|
|
2548
|
-
const
|
|
2554
|
+
const _r87 = i0.ɵɵgetCurrentView();
|
|
2549
2555
|
i0.ɵɵelementStart(0, "div", 34)(1, "mat-form-field", 35)(2, "mat-label", 21);
|
|
2550
2556
|
i0.ɵɵelement(3, "i", 48);
|
|
2551
2557
|
i0.ɵɵelementStart(4, "span");
|
|
2552
2558
|
i0.ɵɵtext(5);
|
|
2553
2559
|
i0.ɵɵelementEnd()();
|
|
2554
2560
|
i0.ɵɵelementStart(6, "input", 49, 50);
|
|
2555
|
-
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(
|
|
2561
|
+
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)); });
|
|
2556
2562
|
i0.ɵɵelementEnd()()();
|
|
2557
2563
|
}
|
|
2558
2564
|
if (rf & 2) {
|
|
2559
|
-
const
|
|
2565
|
+
const filterGroup_r73 = i0.ɵɵnextContext().$implicit;
|
|
2560
2566
|
let tmp_0_0;
|
|
2561
2567
|
i0.ɵɵadvance(5);
|
|
2562
|
-
i0.ɵɵtextInterpolate(((tmp_0_0 =
|
|
2568
|
+
i0.ɵɵtextInterpolate(((tmp_0_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_0_0.value == null ? null : tmp_0_0.value.title) || "Filtrar");
|
|
2563
2569
|
}
|
|
2564
2570
|
}
|
|
2565
2571
|
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_mat_option_5_Template(rf, ctx) {
|
|
@@ -2569,10 +2575,10 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_mat_option_5_Templat
|
|
|
2569
2575
|
i0.ɵɵelementEnd();
|
|
2570
2576
|
}
|
|
2571
2577
|
if (rf & 2) {
|
|
2572
|
-
const
|
|
2573
|
-
i0.ɵɵproperty("value",
|
|
2578
|
+
const item_r90 = ctx.$implicit;
|
|
2579
|
+
i0.ɵɵproperty("value", item_r90);
|
|
2574
2580
|
i0.ɵɵadvance(1);
|
|
2575
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2581
|
+
i0.ɵɵtextInterpolate1(" ", item_r90.label, " ");
|
|
2576
2582
|
}
|
|
2577
2583
|
}
|
|
2578
2584
|
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_Template(rf, ctx) {
|
|
@@ -2585,25 +2591,25 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_Template(rf, ctx) {
|
|
|
2585
2591
|
i0.ɵɵelementEnd()()();
|
|
2586
2592
|
}
|
|
2587
2593
|
if (rf & 2) {
|
|
2588
|
-
const
|
|
2594
|
+
const filterGroup_r73 = i0.ɵɵnextContext().$implicit;
|
|
2589
2595
|
let tmp_0_0;
|
|
2590
2596
|
let tmp_1_0;
|
|
2591
2597
|
i0.ɵɵadvance(3);
|
|
2592
|
-
i0.ɵɵtextInterpolate(((tmp_0_0 =
|
|
2598
|
+
i0.ɵɵtextInterpolate(((tmp_0_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_0_0.value == null ? null : tmp_0_0.value.title) || "Selecione");
|
|
2593
2599
|
i0.ɵɵadvance(2);
|
|
2594
|
-
i0.ɵɵproperty("ngForOf", (tmp_1_0 =
|
|
2600
|
+
i0.ɵɵproperty("ngForOf", (tmp_1_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_1_0.value.items);
|
|
2595
2601
|
}
|
|
2596
2602
|
}
|
|
2597
2603
|
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template(rf, ctx) {
|
|
2598
2604
|
if (rf & 1) {
|
|
2599
|
-
const
|
|
2605
|
+
const _r93 = i0.ɵɵgetCurrentView();
|
|
2600
2606
|
i0.ɵɵelementStart(0, "div", 52)(1, "div", 53)(2, "mat-form-field", 54)(3, "mat-label", 21);
|
|
2601
2607
|
i0.ɵɵelement(4, "i", 55);
|
|
2602
2608
|
i0.ɵɵelementStart(5, "span");
|
|
2603
2609
|
i0.ɵɵtext(6, "Data Inicial");
|
|
2604
2610
|
i0.ɵɵelementEnd()();
|
|
2605
2611
|
i0.ɵɵelementStart(7, "input", 77);
|
|
2606
|
-
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(
|
|
2612
|
+
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()); });
|
|
2607
2613
|
i0.ɵɵelementEnd()();
|
|
2608
2614
|
i0.ɵɵelementStart(8, "mat-form-field", 54)(9, "mat-label", 21);
|
|
2609
2615
|
i0.ɵɵelement(10, "i", 55);
|
|
@@ -2611,15 +2617,15 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template(rf, ctx) {
|
|
|
2611
2617
|
i0.ɵɵtext(12, "Data Final");
|
|
2612
2618
|
i0.ɵɵelementEnd()();
|
|
2613
2619
|
i0.ɵɵelementStart(13, "input", 78);
|
|
2614
|
-
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(
|
|
2620
|
+
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()); });
|
|
2615
2621
|
i0.ɵɵelementEnd()()()();
|
|
2616
2622
|
}
|
|
2617
2623
|
}
|
|
2618
2624
|
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template(rf, ctx) {
|
|
2619
2625
|
if (rf & 1) {
|
|
2620
|
-
const
|
|
2626
|
+
const _r103 = i0.ɵɵgetCurrentView();
|
|
2621
2627
|
i0.ɵɵelementStart(0, "div", 58)(1, "button", 59);
|
|
2622
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
2628
|
+
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)); });
|
|
2623
2629
|
i0.ɵɵelement(2, "i", 60);
|
|
2624
2630
|
i0.ɵɵelementEnd()();
|
|
2625
2631
|
}
|
|
@@ -2635,22 +2641,22 @@ function TableComponent_div_0_div_3_div_9_div_1_div_1_Template(rf, ctx) {
|
|
|
2635
2641
|
i0.ɵɵelementEnd();
|
|
2636
2642
|
}
|
|
2637
2643
|
if (rf & 2) {
|
|
2638
|
-
const
|
|
2639
|
-
const
|
|
2644
|
+
const filterGroup_r73 = ctx.$implicit;
|
|
2645
|
+
const ctx_r72 = i0.ɵɵnextContext(5);
|
|
2640
2646
|
let tmp_2_0;
|
|
2641
2647
|
let tmp_3_0;
|
|
2642
2648
|
let tmp_4_0;
|
|
2643
|
-
i0.ɵɵproperty("formGroup",
|
|
2649
|
+
i0.ɵɵproperty("formGroup", filterGroup_r73);
|
|
2644
2650
|
i0.ɵɵadvance(1);
|
|
2645
|
-
i0.ɵɵproperty("ngIf",
|
|
2651
|
+
i0.ɵɵproperty("ngIf", ctx_r72.dropdownItems.length > 0);
|
|
2646
2652
|
i0.ɵɵadvance(1);
|
|
2647
|
-
i0.ɵɵproperty("ngIf", ((tmp_2_0 =
|
|
2653
|
+
i0.ɵɵproperty("ngIf", ((tmp_2_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_2_0.value == null ? null : tmp_2_0.value.arrange) === "filter");
|
|
2648
2654
|
i0.ɵɵadvance(1);
|
|
2649
|
-
i0.ɵɵproperty("ngIf", ((tmp_3_0 =
|
|
2655
|
+
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")));
|
|
2650
2656
|
i0.ɵɵadvance(1);
|
|
2651
|
-
i0.ɵɵproperty("ngIf", ((tmp_4_0 =
|
|
2657
|
+
i0.ɵɵproperty("ngIf", ((tmp_4_0 = filterGroup_r73.get("selectFilter")) == null ? null : tmp_4_0.value == null ? null : tmp_4_0.value.arrange) === "filterByDate");
|
|
2652
2658
|
i0.ɵɵadvance(1);
|
|
2653
|
-
i0.ɵɵproperty("ngIf",
|
|
2659
|
+
i0.ɵɵproperty("ngIf", ctx_r72.filtersForm.length > 1);
|
|
2654
2660
|
}
|
|
2655
2661
|
}
|
|
2656
2662
|
function TableComponent_div_0_div_3_div_9_div_1_Template(rf, ctx) {
|
|
@@ -2660,16 +2666,16 @@ function TableComponent_div_0_div_3_div_9_div_1_Template(rf, ctx) {
|
|
|
2660
2666
|
i0.ɵɵelementEnd();
|
|
2661
2667
|
}
|
|
2662
2668
|
if (rf & 2) {
|
|
2663
|
-
const
|
|
2669
|
+
const ctx_r69 = i0.ɵɵnextContext(4);
|
|
2664
2670
|
i0.ɵɵadvance(1);
|
|
2665
|
-
i0.ɵɵproperty("ngForOf",
|
|
2671
|
+
i0.ɵɵproperty("ngForOf", ctx_r69.filtersForm.controls);
|
|
2666
2672
|
}
|
|
2667
2673
|
}
|
|
2668
2674
|
function TableComponent_div_0_div_3_div_9_div_3_Template(rf, ctx) {
|
|
2669
2675
|
if (rf & 1) {
|
|
2670
|
-
const
|
|
2676
|
+
const _r105 = i0.ɵɵgetCurrentView();
|
|
2671
2677
|
i0.ɵɵelementStart(0, "div")(1, "button", 61);
|
|
2672
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
2678
|
+
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()); });
|
|
2673
2679
|
i0.ɵɵelement(2, "i", 62);
|
|
2674
2680
|
i0.ɵɵtext(3, " Adicionar Filtro ");
|
|
2675
2681
|
i0.ɵɵelementEnd()();
|
|
@@ -2677,28 +2683,28 @@ function TableComponent_div_0_div_3_div_9_div_3_Template(rf, ctx) {
|
|
|
2677
2683
|
}
|
|
2678
2684
|
function TableComponent_div_0_div_3_div_9_div_4_button_7_Template(rf, ctx) {
|
|
2679
2685
|
if (rf & 1) {
|
|
2680
|
-
const
|
|
2686
|
+
const _r108 = i0.ɵɵgetCurrentView();
|
|
2681
2687
|
i0.ɵɵelementStart(0, "button", 69);
|
|
2682
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
2688
|
+
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()); });
|
|
2683
2689
|
i0.ɵɵelement(1, "i", 70);
|
|
2684
2690
|
i0.ɵɵtext(2, " Exportar ");
|
|
2685
2691
|
i0.ɵɵelementEnd();
|
|
2686
2692
|
}
|
|
2687
2693
|
if (rf & 2) {
|
|
2688
|
-
const
|
|
2689
|
-
i0.ɵɵproperty("disabled",
|
|
2694
|
+
const ctx_r106 = i0.ɵɵnextContext(5);
|
|
2695
|
+
i0.ɵɵproperty("disabled", ctx_r106.dataSource && ctx_r106.dataSource.filteredData.length <= 0);
|
|
2690
2696
|
}
|
|
2691
2697
|
}
|
|
2692
2698
|
function TableComponent_div_0_div_3_div_9_div_4_Template(rf, ctx) {
|
|
2693
2699
|
if (rf & 1) {
|
|
2694
|
-
const
|
|
2700
|
+
const _r110 = i0.ɵɵgetCurrentView();
|
|
2695
2701
|
i0.ɵɵelementStart(0, "div", 63)(1, "button", 64);
|
|
2696
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
2702
|
+
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()); });
|
|
2697
2703
|
i0.ɵɵelement(2, "i", 65);
|
|
2698
2704
|
i0.ɵɵtext(3, " Pesquisar ");
|
|
2699
2705
|
i0.ɵɵelementEnd();
|
|
2700
2706
|
i0.ɵɵelementStart(4, "button", 66);
|
|
2701
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(
|
|
2707
|
+
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()); });
|
|
2702
2708
|
i0.ɵɵelement(5, "i", 67);
|
|
2703
2709
|
i0.ɵɵtext(6, " Resetar ");
|
|
2704
2710
|
i0.ɵɵelementEnd();
|
|
@@ -2706,9 +2712,9 @@ function TableComponent_div_0_div_3_div_9_div_4_Template(rf, ctx) {
|
|
|
2706
2712
|
i0.ɵɵelementEnd();
|
|
2707
2713
|
}
|
|
2708
2714
|
if (rf & 2) {
|
|
2709
|
-
const
|
|
2715
|
+
const ctx_r71 = i0.ɵɵnextContext(4);
|
|
2710
2716
|
i0.ɵɵadvance(7);
|
|
2711
|
-
i0.ɵɵproperty("ngIf",
|
|
2717
|
+
i0.ɵɵproperty("ngIf", ctx_r71.data.download !== false && ctx_r71.downloadTable);
|
|
2712
2718
|
}
|
|
2713
2719
|
}
|
|
2714
2720
|
function TableComponent_div_0_div_3_div_9_Template(rf, ctx) {
|
|
@@ -2721,13 +2727,13 @@ function TableComponent_div_0_div_3_div_9_Template(rf, ctx) {
|
|
|
2721
2727
|
i0.ɵɵelementEnd()();
|
|
2722
2728
|
}
|
|
2723
2729
|
if (rf & 2) {
|
|
2724
|
-
const
|
|
2730
|
+
const ctx_r61 = i0.ɵɵnextContext(3);
|
|
2725
2731
|
i0.ɵɵadvance(1);
|
|
2726
|
-
i0.ɵɵproperty("ngIf",
|
|
2732
|
+
i0.ɵɵproperty("ngIf", ctx_r61.filtersForm.controls.length > 0);
|
|
2727
2733
|
i0.ɵɵadvance(2);
|
|
2728
|
-
i0.ɵɵproperty("ngIf",
|
|
2734
|
+
i0.ɵɵproperty("ngIf", ctx_r61.dropdownItems.length > 0);
|
|
2729
2735
|
i0.ɵɵadvance(1);
|
|
2730
|
-
i0.ɵɵproperty("ngIf",
|
|
2736
|
+
i0.ɵɵproperty("ngIf", ctx_r61.hasFilterableColumn === true || ctx_r61.hasSortableColumn === true);
|
|
2731
2737
|
}
|
|
2732
2738
|
}
|
|
2733
2739
|
function TableComponent_div_0_div_3_Template(rf, ctx) {
|
|
@@ -2755,9 +2761,9 @@ function TableComponent_div_0_div_3_Template(rf, ctx) {
|
|
|
2755
2761
|
}
|
|
2756
2762
|
function TableComponent_div_0_lib_table_tabs_5_Template(rf, ctx) {
|
|
2757
2763
|
if (rf & 1) {
|
|
2758
|
-
const
|
|
2764
|
+
const _r113 = i0.ɵɵgetCurrentView();
|
|
2759
2765
|
i0.ɵɵelementStart(0, "lib-table-tabs", 79);
|
|
2760
|
-
i0.ɵɵlistener("tabSelected", function TableComponent_div_0_lib_table_tabs_5_Template_lib_table_tabs_tabSelected_0_listener($event) { i0.ɵɵrestoreView(
|
|
2766
|
+
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)); });
|
|
2761
2767
|
i0.ɵɵelementEnd();
|
|
2762
2768
|
}
|
|
2763
2769
|
if (rf & 2) {
|
|
@@ -2772,9 +2778,9 @@ function TableComponent_div_0_ng_container_9_ng_container_1_th_1_Template(rf, ct
|
|
|
2772
2778
|
i0.ɵɵelementEnd();
|
|
2773
2779
|
}
|
|
2774
2780
|
if (rf & 2) {
|
|
2775
|
-
const
|
|
2781
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2776
2782
|
i0.ɵɵadvance(1);
|
|
2777
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2783
|
+
i0.ɵɵtextInterpolate1(" ", col_r114.title, " ");
|
|
2778
2784
|
}
|
|
2779
2785
|
}
|
|
2780
2786
|
function TableComponent_div_0_ng_container_9_ng_container_1_th_2_Template(rf, ctx) {
|
|
@@ -2784,9 +2790,9 @@ function TableComponent_div_0_ng_container_9_ng_container_1_th_2_Template(rf, ct
|
|
|
2784
2790
|
i0.ɵɵelementEnd();
|
|
2785
2791
|
}
|
|
2786
2792
|
if (rf & 2) {
|
|
2787
|
-
const
|
|
2793
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2788
2794
|
i0.ɵɵadvance(1);
|
|
2789
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2795
|
+
i0.ɵɵtextInterpolate1(" ", col_r114.title, " ");
|
|
2790
2796
|
}
|
|
2791
2797
|
}
|
|
2792
2798
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a_1_Template(rf, ctx) {
|
|
@@ -2796,12 +2802,12 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a
|
|
|
2796
2802
|
i0.ɵɵelementEnd();
|
|
2797
2803
|
}
|
|
2798
2804
|
if (rf & 2) {
|
|
2799
|
-
const
|
|
2800
|
-
const
|
|
2801
|
-
const
|
|
2802
|
-
i0.ɵɵproperty("href",
|
|
2805
|
+
const row_r121 = i0.ɵɵnextContext(3).$implicit;
|
|
2806
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2807
|
+
const ctx_r129 = i0.ɵɵnextContext(2);
|
|
2808
|
+
i0.ɵɵproperty("href", row_r121[col_r114.property], i0.ɵɵsanitizeUrl);
|
|
2803
2809
|
i0.ɵɵadvance(1);
|
|
2804
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2810
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r129.getDisplayValue(col_r114, row_r121), " ");
|
|
2805
2811
|
}
|
|
2806
2812
|
}
|
|
2807
2813
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a_2_Template(rf, ctx) {
|
|
@@ -2811,12 +2817,12 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a
|
|
|
2811
2817
|
i0.ɵɵelementEnd();
|
|
2812
2818
|
}
|
|
2813
2819
|
if (rf & 2) {
|
|
2814
|
-
const
|
|
2815
|
-
const
|
|
2816
|
-
const
|
|
2817
|
-
i0.ɵɵproperty("href",
|
|
2820
|
+
const row_r121 = i0.ɵɵnextContext(3).$implicit;
|
|
2821
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2822
|
+
const ctx_r130 = i0.ɵɵnextContext(2);
|
|
2823
|
+
i0.ɵɵproperty("href", col_r114.hasLink, i0.ɵɵsanitizeUrl);
|
|
2818
2824
|
i0.ɵɵadvance(1);
|
|
2819
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2825
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r130.getDisplayValue(col_r114, row_r121), " ");
|
|
2820
2826
|
}
|
|
2821
2827
|
}
|
|
2822
2828
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_span_3_Template(rf, ctx) {
|
|
@@ -2826,11 +2832,11 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_s
|
|
|
2826
2832
|
i0.ɵɵelementEnd();
|
|
2827
2833
|
}
|
|
2828
2834
|
if (rf & 2) {
|
|
2829
|
-
const
|
|
2830
|
-
const
|
|
2831
|
-
const
|
|
2835
|
+
const row_r121 = i0.ɵɵnextContext(3).$implicit;
|
|
2836
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2837
|
+
const ctx_r131 = i0.ɵɵnextContext(2);
|
|
2832
2838
|
i0.ɵɵadvance(1);
|
|
2833
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2839
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r131.getDisplayValue(col_r114, row_r121), " ");
|
|
2834
2840
|
}
|
|
2835
2841
|
}
|
|
2836
2842
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_Template(rf, ctx) {
|
|
@@ -2842,14 +2848,14 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_T
|
|
|
2842
2848
|
i0.ɵɵelementEnd();
|
|
2843
2849
|
}
|
|
2844
2850
|
if (rf & 2) {
|
|
2845
|
-
const
|
|
2846
|
-
const
|
|
2851
|
+
const col_r114 = i0.ɵɵnextContext(4).$implicit;
|
|
2852
|
+
const ctx_r126 = i0.ɵɵnextContext(2);
|
|
2847
2853
|
i0.ɵɵadvance(1);
|
|
2848
|
-
i0.ɵɵproperty("ngIf",
|
|
2854
|
+
i0.ɵɵproperty("ngIf", col_r114.hasLink === true);
|
|
2849
2855
|
i0.ɵɵadvance(1);
|
|
2850
|
-
i0.ɵɵproperty("ngIf",
|
|
2856
|
+
i0.ɵɵproperty("ngIf", col_r114.hasLink && ctx_r126.isString(col_r114.hasLink));
|
|
2851
2857
|
i0.ɵɵadvance(1);
|
|
2852
|
-
i0.ɵɵproperty("ngIf",
|
|
2858
|
+
i0.ɵɵproperty("ngIf", col_r114.hasLink !== true && !ctx_r126.isString(col_r114.hasLink));
|
|
2853
2859
|
}
|
|
2854
2860
|
}
|
|
2855
2861
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_a_0_Template(rf, ctx) {
|
|
@@ -2859,12 +2865,12 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_templ
|
|
|
2859
2865
|
i0.ɵɵelementEnd();
|
|
2860
2866
|
}
|
|
2861
2867
|
if (rf & 2) {
|
|
2862
|
-
const
|
|
2863
|
-
const
|
|
2864
|
-
const
|
|
2865
|
-
i0.ɵɵproperty("href",
|
|
2868
|
+
const row_r121 = i0.ɵɵnextContext(3).$implicit;
|
|
2869
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2870
|
+
const ctx_r139 = i0.ɵɵnextContext(2);
|
|
2871
|
+
i0.ɵɵproperty("href", row_r121[col_r114.property], i0.ɵɵsanitizeUrl);
|
|
2866
2872
|
i0.ɵɵadvance(1);
|
|
2867
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2873
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r139.getDisplayValue(col_r114, row_r121, true), " ");
|
|
2868
2874
|
}
|
|
2869
2875
|
}
|
|
2870
2876
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_a_1_Template(rf, ctx) {
|
|
@@ -2874,12 +2880,12 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_templ
|
|
|
2874
2880
|
i0.ɵɵelementEnd();
|
|
2875
2881
|
}
|
|
2876
2882
|
if (rf & 2) {
|
|
2877
|
-
const
|
|
2878
|
-
const
|
|
2879
|
-
const
|
|
2880
|
-
i0.ɵɵproperty("href",
|
|
2883
|
+
const row_r121 = i0.ɵɵnextContext(3).$implicit;
|
|
2884
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2885
|
+
const ctx_r140 = i0.ɵɵnextContext(2);
|
|
2886
|
+
i0.ɵɵproperty("href", col_r114.hasLink, i0.ɵɵsanitizeUrl);
|
|
2881
2887
|
i0.ɵɵadvance(1);
|
|
2882
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2888
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r140.getDisplayValue(col_r114, row_r121, true), " ");
|
|
2883
2889
|
}
|
|
2884
2890
|
}
|
|
2885
2891
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_span_2_Template(rf, ctx) {
|
|
@@ -2889,11 +2895,11 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_templ
|
|
|
2889
2895
|
i0.ɵɵelementEnd();
|
|
2890
2896
|
}
|
|
2891
2897
|
if (rf & 2) {
|
|
2892
|
-
const
|
|
2893
|
-
const
|
|
2894
|
-
const
|
|
2898
|
+
const row_r121 = i0.ɵɵnextContext(3).$implicit;
|
|
2899
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2900
|
+
const ctx_r141 = i0.ɵɵnextContext(2);
|
|
2895
2901
|
i0.ɵɵadvance(1);
|
|
2896
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
2902
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r141.getDisplayValue(col_r114, row_r121, true), " ");
|
|
2897
2903
|
}
|
|
2898
2904
|
}
|
|
2899
2905
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_Template(rf, ctx) {
|
|
@@ -2903,13 +2909,13 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_templ
|
|
|
2903
2909
|
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);
|
|
2904
2910
|
}
|
|
2905
2911
|
if (rf & 2) {
|
|
2906
|
-
const
|
|
2907
|
-
const
|
|
2908
|
-
i0.ɵɵproperty("ngIf",
|
|
2912
|
+
const col_r114 = i0.ɵɵnextContext(4).$implicit;
|
|
2913
|
+
const ctx_r128 = i0.ɵɵnextContext(2);
|
|
2914
|
+
i0.ɵɵproperty("ngIf", col_r114.hasLink === true);
|
|
2909
2915
|
i0.ɵɵadvance(1);
|
|
2910
|
-
i0.ɵɵproperty("ngIf",
|
|
2916
|
+
i0.ɵɵproperty("ngIf", col_r114.hasLink && ctx_r128.isString(col_r114.hasLink));
|
|
2911
2917
|
i0.ɵɵadvance(1);
|
|
2912
|
-
i0.ɵɵproperty("ngIf",
|
|
2918
|
+
i0.ɵɵproperty("ngIf", col_r114.hasLink !== true && !ctx_r128.isString(col_r114.hasLink));
|
|
2913
2919
|
}
|
|
2914
2920
|
}
|
|
2915
2921
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_Template(rf, ctx) {
|
|
@@ -2922,11 +2928,11 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_Template
|
|
|
2922
2928
|
i0.ɵɵelementEnd();
|
|
2923
2929
|
}
|
|
2924
2930
|
if (rf & 2) {
|
|
2925
|
-
const
|
|
2926
|
-
const
|
|
2927
|
-
const
|
|
2931
|
+
const _r127 = i0.ɵɵreference(4);
|
|
2932
|
+
const row_r121 = i0.ɵɵnextContext().$implicit;
|
|
2933
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2928
2934
|
i0.ɵɵadvance(2);
|
|
2929
|
-
i0.ɵɵproperty("ngIf",
|
|
2935
|
+
i0.ɵɵproperty("ngIf", col_r114.charLimit && row_r121[col_r114.property] && row_r121[col_r114.property].length > col_r114.charLimit)("ngIfElse", _r127);
|
|
2930
2936
|
}
|
|
2931
2937
|
}
|
|
2932
2938
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_mat_spinner_1_Template(rf, ctx) {
|
|
@@ -2939,22 +2945,22 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_mat_spinn
|
|
|
2939
2945
|
}
|
|
2940
2946
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template(rf, ctx) {
|
|
2941
2947
|
if (rf & 1) {
|
|
2942
|
-
const
|
|
2948
|
+
const _r154 = i0.ɵɵgetCurrentView();
|
|
2943
2949
|
i0.ɵɵelementStart(0, "div", 93);
|
|
2944
2950
|
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);
|
|
2945
2951
|
i0.ɵɵelementStart(2, "img", 95);
|
|
2946
|
-
i0.ɵɵlistener("load", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template_img_load_2_listener() { i0.ɵɵrestoreView(
|
|
2952
|
+
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)); });
|
|
2947
2953
|
i0.ɵɵelementEnd()();
|
|
2948
2954
|
}
|
|
2949
2955
|
if (rf & 2) {
|
|
2950
|
-
const
|
|
2951
|
-
const
|
|
2952
|
-
const
|
|
2956
|
+
const row_r121 = i0.ɵɵnextContext().$implicit;
|
|
2957
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2958
|
+
const ctx_r123 = i0.ɵɵnextContext(2);
|
|
2953
2959
|
i0.ɵɵadvance(1);
|
|
2954
|
-
i0.ɵɵproperty("ngIf",
|
|
2960
|
+
i0.ɵɵproperty("ngIf", ctx_r123.isImageLoading(row_r121, col_r114));
|
|
2955
2961
|
i0.ɵɵadvance(1);
|
|
2956
|
-
i0.ɵɵclassProp("opacity-0",
|
|
2957
|
-
i0.ɵɵproperty("src",
|
|
2962
|
+
i0.ɵɵclassProp("opacity-0", ctx_r123.isImageLoading(row_r121, col_r114));
|
|
2963
|
+
i0.ɵɵproperty("src", col_r114.image.path + "/" + row_r121[col_r114.property], i0.ɵɵsanitizeUrl)("ngClass", col_r114.image.class);
|
|
2958
2964
|
}
|
|
2959
2965
|
}
|
|
2960
2966
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_mat_spinner_1_Template(rf, ctx) {
|
|
@@ -2967,22 +2973,22 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_mat_spinn
|
|
|
2967
2973
|
}
|
|
2968
2974
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template(rf, ctx) {
|
|
2969
2975
|
if (rf & 1) {
|
|
2970
|
-
const
|
|
2976
|
+
const _r164 = i0.ɵɵgetCurrentView();
|
|
2971
2977
|
i0.ɵɵelementStart(0, "div", 93);
|
|
2972
2978
|
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);
|
|
2973
2979
|
i0.ɵɵelementStart(2, "img", 95);
|
|
2974
|
-
i0.ɵɵlistener("load", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template_img_load_2_listener() { i0.ɵɵrestoreView(
|
|
2980
|
+
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)); });
|
|
2975
2981
|
i0.ɵɵelementEnd()();
|
|
2976
2982
|
}
|
|
2977
2983
|
if (rf & 2) {
|
|
2978
|
-
const
|
|
2979
|
-
const
|
|
2980
|
-
const
|
|
2984
|
+
const row_r121 = i0.ɵɵnextContext().$implicit;
|
|
2985
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
2986
|
+
const ctx_r124 = i0.ɵɵnextContext(2);
|
|
2981
2987
|
i0.ɵɵadvance(1);
|
|
2982
|
-
i0.ɵɵproperty("ngIf",
|
|
2988
|
+
i0.ɵɵproperty("ngIf", ctx_r124.isImageLoading(row_r121, col_r114));
|
|
2983
2989
|
i0.ɵɵadvance(1);
|
|
2984
|
-
i0.ɵɵclassProp("opacity-0",
|
|
2985
|
-
i0.ɵɵproperty("src",
|
|
2990
|
+
i0.ɵɵclassProp("opacity-0", ctx_r124.isImageLoading(row_r121, col_r114));
|
|
2991
|
+
i0.ɵɵproperty("src", row_r121[col_r114.property], i0.ɵɵsanitizeUrl)("ngClass", col_r114.image.class);
|
|
2986
2992
|
}
|
|
2987
2993
|
}
|
|
2988
2994
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_span_1_Template(rf, ctx) {
|
|
@@ -2992,25 +2998,25 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_
|
|
|
2992
2998
|
i0.ɵɵelementEnd();
|
|
2993
2999
|
}
|
|
2994
3000
|
if (rf & 2) {
|
|
2995
|
-
const
|
|
2996
|
-
i0.ɵɵproperty("ngClass",
|
|
3001
|
+
const iconClass_r172 = i0.ɵɵnextContext().$implicit;
|
|
3002
|
+
i0.ɵɵproperty("ngClass", iconClass_r172.class);
|
|
2997
3003
|
i0.ɵɵadvance(1);
|
|
2998
|
-
i0.ɵɵtextInterpolate(
|
|
3004
|
+
i0.ɵɵtextInterpolate(iconClass_r172.text);
|
|
2999
3005
|
}
|
|
3000
3006
|
}
|
|
3001
3007
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_Template(rf, ctx) {
|
|
3002
3008
|
if (rf & 1) {
|
|
3003
|
-
const
|
|
3009
|
+
const _r176 = i0.ɵɵgetCurrentView();
|
|
3004
3010
|
i0.ɵɵelementStart(0, "button", 98);
|
|
3005
|
-
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(
|
|
3011
|
+
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()); });
|
|
3006
3012
|
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);
|
|
3007
3013
|
i0.ɵɵelementEnd();
|
|
3008
3014
|
}
|
|
3009
3015
|
if (rf & 2) {
|
|
3010
|
-
const
|
|
3011
|
-
const
|
|
3016
|
+
const iconClass_r172 = ctx.$implicit;
|
|
3017
|
+
const row_r121 = i0.ɵɵnextContext(2).$implicit;
|
|
3012
3018
|
i0.ɵɵadvance(1);
|
|
3013
|
-
i0.ɵɵproperty("ngIf",
|
|
3019
|
+
i0.ɵɵproperty("ngIf", iconClass_r172.condition === undefined || iconClass_r172.condition !== undefined && iconClass_r172.condition(row_r121));
|
|
3014
3020
|
}
|
|
3015
3021
|
}
|
|
3016
3022
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_Template(rf, ctx) {
|
|
@@ -3020,16 +3026,16 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_
|
|
|
3020
3026
|
i0.ɵɵelementContainerEnd();
|
|
3021
3027
|
}
|
|
3022
3028
|
if (rf & 2) {
|
|
3023
|
-
const
|
|
3029
|
+
const col_r114 = i0.ɵɵnextContext(3).$implicit;
|
|
3024
3030
|
i0.ɵɵadvance(1);
|
|
3025
|
-
i0.ɵɵproperty("ngForOf",
|
|
3031
|
+
i0.ɵɵproperty("ngForOf", col_r114.iconClass);
|
|
3026
3032
|
}
|
|
3027
3033
|
}
|
|
3028
3034
|
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template(rf, ctx) {
|
|
3029
3035
|
if (rf & 1) {
|
|
3030
|
-
const
|
|
3036
|
+
const _r182 = i0.ɵɵgetCurrentView();
|
|
3031
3037
|
i0.ɵɵelementStart(0, "td", 87);
|
|
3032
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(
|
|
3038
|
+
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)); });
|
|
3033
3039
|
i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_Template, 5, 2, "span", 28);
|
|
3034
3040
|
i0.ɵɵtemplate(2, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template, 3, 5, "div", 88);
|
|
3035
3041
|
i0.ɵɵtemplate(3, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template, 3, 5, "div", 88);
|
|
@@ -3037,15 +3043,15 @@ function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template(rf, ct
|
|
|
3037
3043
|
i0.ɵɵelementEnd();
|
|
3038
3044
|
}
|
|
3039
3045
|
if (rf & 2) {
|
|
3040
|
-
const
|
|
3046
|
+
const col_r114 = i0.ɵɵnextContext(2).$implicit;
|
|
3041
3047
|
i0.ɵɵadvance(1);
|
|
3042
|
-
i0.ɵɵproperty("ngIf", !
|
|
3048
|
+
i0.ɵɵproperty("ngIf", !col_r114.image && !col_r114.iconClass && !col_r114.method);
|
|
3043
3049
|
i0.ɵɵadvance(1);
|
|
3044
|
-
i0.ɵɵproperty("ngIf",
|
|
3050
|
+
i0.ɵɵproperty("ngIf", col_r114.image && col_r114.image.path && !col_r114.iconClass && !col_r114.method);
|
|
3045
3051
|
i0.ɵɵadvance(1);
|
|
3046
|
-
i0.ɵɵproperty("ngIf",
|
|
3052
|
+
i0.ɵɵproperty("ngIf", col_r114.image && col_r114.image.url && !col_r114.iconClass && !col_r114.method);
|
|
3047
3053
|
i0.ɵɵadvance(1);
|
|
3048
|
-
i0.ɵɵproperty("ngIf",
|
|
3054
|
+
i0.ɵɵproperty("ngIf", col_r114.iconClass);
|
|
3049
3055
|
}
|
|
3050
3056
|
}
|
|
3051
3057
|
function TableComponent_div_0_ng_container_9_ng_container_1_Template(rf, ctx) {
|
|
@@ -3057,12 +3063,12 @@ function TableComponent_div_0_ng_container_9_ng_container_1_Template(rf, ctx) {
|
|
|
3057
3063
|
i0.ɵɵelementContainerEnd();
|
|
3058
3064
|
}
|
|
3059
3065
|
if (rf & 2) {
|
|
3060
|
-
const
|
|
3061
|
-
const
|
|
3066
|
+
const col_r114 = i0.ɵɵnextContext().$implicit;
|
|
3067
|
+
const ctx_r115 = i0.ɵɵnextContext(2);
|
|
3062
3068
|
i0.ɵɵadvance(1);
|
|
3063
|
-
i0.ɵɵproperty("ngIf", !
|
|
3069
|
+
i0.ɵɵproperty("ngIf", !col_r114.isSortable || ctx_r115.data.pagination === true);
|
|
3064
3070
|
i0.ɵɵadvance(1);
|
|
3065
|
-
i0.ɵɵproperty("ngIf",
|
|
3071
|
+
i0.ɵɵproperty("ngIf", col_r114.isSortable && ctx_r115.data.pagination === false);
|
|
3066
3072
|
}
|
|
3067
3073
|
}
|
|
3068
3074
|
function TableComponent_div_0_ng_container_9_Template(rf, ctx) {
|
|
@@ -3072,8 +3078,8 @@ function TableComponent_div_0_ng_container_9_Template(rf, ctx) {
|
|
|
3072
3078
|
i0.ɵɵelementContainerEnd();
|
|
3073
3079
|
}
|
|
3074
3080
|
if (rf & 2) {
|
|
3075
|
-
const
|
|
3076
|
-
i0.ɵɵpropertyInterpolate("matColumnDef",
|
|
3081
|
+
const col_r114 = ctx.$implicit;
|
|
3082
|
+
i0.ɵɵpropertyInterpolate("matColumnDef", col_r114.property);
|
|
3077
3083
|
}
|
|
3078
3084
|
}
|
|
3079
3085
|
function TableComponent_div_0_tr_10_Template(rf, ctx) {
|
|
@@ -3083,9 +3089,9 @@ function TableComponent_div_0_tr_10_Template(rf, ctx) {
|
|
|
3083
3089
|
}
|
|
3084
3090
|
function TableComponent_div_0_tr_11_Template(rf, ctx) {
|
|
3085
3091
|
if (rf & 1) {
|
|
3086
|
-
const
|
|
3092
|
+
const _r191 = i0.ɵɵgetCurrentView();
|
|
3087
3093
|
i0.ɵɵelementStart(0, "tr", 102);
|
|
3088
|
-
i0.ɵɵlistener("click", function TableComponent_div_0_tr_11_Template_tr_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(
|
|
3094
|
+
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)); });
|
|
3089
3095
|
i0.ɵɵelementEnd();
|
|
3090
3096
|
}
|
|
3091
3097
|
if (rf & 2) {
|
|
@@ -3123,7 +3129,7 @@ function TableComponent_div_0_div_13_Template(rf, ctx) {
|
|
|
3123
3129
|
const _c0 = function () { return [25, 50, 100]; };
|
|
3124
3130
|
function TableComponent_div_0_Template(rf, ctx) {
|
|
3125
3131
|
if (rf & 1) {
|
|
3126
|
-
const
|
|
3132
|
+
const _r194 = i0.ɵɵgetCurrentView();
|
|
3127
3133
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
|
|
3128
3134
|
i0.ɵɵtemplate(2, TableComponent_div_0_div_2_Template, 13, 5, "div", 3);
|
|
3129
3135
|
i0.ɵɵtemplate(3, TableComponent_div_0_div_3_Template, 10, 3, "div", 3);
|
|
@@ -3138,7 +3144,7 @@ function TableComponent_div_0_Template(rf, ctx) {
|
|
|
3138
3144
|
i0.ɵɵtemplate(13, TableComponent_div_0_div_13_Template, 2, 0, "div", 13);
|
|
3139
3145
|
i0.ɵɵpipe(14, "async");
|
|
3140
3146
|
i0.ɵɵelementStart(15, "div", 14)(16, "mat-paginator", 15, 16);
|
|
3141
|
-
i0.ɵɵlistener("page", function TableComponent_div_0_Template_mat_paginator_page_16_listener($event) { i0.ɵɵrestoreView(
|
|
3147
|
+
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)); });
|
|
3142
3148
|
i0.ɵɵelementEnd()()()()();
|
|
3143
3149
|
i0.ɵɵelement(18, "lib-table-tooltip", 17);
|
|
3144
3150
|
i0.ɵɵelementEnd();
|
|
@@ -3242,8 +3248,8 @@ class TableComponent {
|
|
|
3242
3248
|
hasActiveDateFilter() {
|
|
3243
3249
|
return this.filterService.hasActiveDateFilter(this.filtersForm);
|
|
3244
3250
|
}
|
|
3245
|
-
getAvailableFilterOptions() {
|
|
3246
|
-
return this.filterService.getAvailableFilterOptions(this.dropdownItems, this.data.pagination === true, this.filtersForm);
|
|
3251
|
+
getAvailableFilterOptions(currentGroup) {
|
|
3252
|
+
return this.filterService.getAvailableFilterOptions(this.dropdownItems, this.data.pagination === true, this.filtersForm, currentGroup);
|
|
3247
3253
|
}
|
|
3248
3254
|
onSelectFilterChange() {
|
|
3249
3255
|
var _a;
|
|
@@ -3540,16 +3546,20 @@ class TableComponent {
|
|
|
3540
3546
|
this.cdr.markForCheck();
|
|
3541
3547
|
});
|
|
3542
3548
|
}
|
|
3543
|
-
loadItemsPaginated(navigation = 'reload', reset = false) {
|
|
3549
|
+
loadItemsPaginated(navigation = 'reload', reset = false, fullPageSize) {
|
|
3544
3550
|
var _a;
|
|
3545
3551
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3546
3552
|
this.imageLoadingState.clear();
|
|
3547
3553
|
if (reset && ['forward', 'reload'].includes(navigation)) {
|
|
3548
3554
|
this.lastDoc = null;
|
|
3549
|
-
this.currentClientPageIndex = 0;
|
|
3550
3555
|
}
|
|
3551
3556
|
if (reset && ['backward', 'reload'].includes(navigation)) {
|
|
3552
3557
|
this.firstDoc = null;
|
|
3558
|
+
}
|
|
3559
|
+
// Só o 'reload' volta para a primeira página. Em forward/backward (inclusive
|
|
3560
|
+
// pulos com reset de cursor) o currentClientPageIndex já foi definido por
|
|
3561
|
+
// onPageChange e é essencial para o offset da paginação client-side.
|
|
3562
|
+
if (navigation === 'reload') {
|
|
3553
3563
|
this.currentClientPageIndex = 0;
|
|
3554
3564
|
}
|
|
3555
3565
|
const activeFilters = this.filterService.extractActiveFilters(this.filtersForm);
|
|
@@ -3567,6 +3577,7 @@ class TableComponent {
|
|
|
3567
3577
|
size: this.totalItems,
|
|
3568
3578
|
filterFn: this.data.filterFn,
|
|
3569
3579
|
clientPageIndex: this.currentClientPageIndex,
|
|
3580
|
+
fullPageSize: fullPageSize !== null && fullPageSize !== void 0 ? fullPageSize : this.pageSize,
|
|
3570
3581
|
};
|
|
3571
3582
|
const result = yield this.tableService.getPaginated(paginated);
|
|
3572
3583
|
this.items = result.items;
|
|
@@ -3636,7 +3647,7 @@ class TableComponent {
|
|
|
3636
3647
|
}
|
|
3637
3648
|
}
|
|
3638
3649
|
try {
|
|
3639
|
-
yield this.loadItemsPaginated(navigation.direction, navigation.resetDocs);
|
|
3650
|
+
yield this.loadItemsPaginated(navigation.direction, navigation.resetDocs, event.pageSize);
|
|
3640
3651
|
}
|
|
3641
3652
|
catch (error) {
|
|
3642
3653
|
console.error('Erro ao carregar itens paginados:', error);
|
|
@@ -3905,7 +3916,7 @@ TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableCompone
|
|
|
3905
3916
|
(function () {
|
|
3906
3917
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
|
|
3907
3918
|
type: Component,
|
|
3908
|
-
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"] }]
|
|
3919
|
+
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"] }]
|
|
3909
3920
|
}], function () { return [{ type: i1$2.Router }, { type: TableService }, { type: FilterService }, { type: TooltipService }, { type: PaginationService }, { type: i1.AngularFirestore }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, { data: [{
|
|
3910
3921
|
type: Input
|
|
3911
3922
|
}], downloadTable: [{
|