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