ng-firebase-table-kxp 1.2.2 → 1.2.4
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/fesm2022/ng-firebase-table-kxp.mjs +1050 -148
- package/fesm2022/ng-firebase-table-kxp.mjs.map +1 -1
- package/index.d.ts +7 -6
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component,
|
|
2
|
+
import { Component, Injectable, Optional, EventEmitter, ChangeDetectionStrategy, Output, Input, ViewChild, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i8 from '@angular/forms';
|
|
@@ -16,13 +16,15 @@ import * as i12 from '@angular/material/form-field';
|
|
|
16
16
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
17
17
|
import * as i13 from '@angular/material/input';
|
|
18
18
|
import { MatInputModule } from '@angular/material/input';
|
|
19
|
-
import * as i14 from '@angular/material/
|
|
19
|
+
import * as i14 from '@angular/material/core';
|
|
20
|
+
import { MatOptionModule } from '@angular/material/core';
|
|
21
|
+
import * as i15 from '@angular/material/select';
|
|
20
22
|
import { MatSelectModule } from '@angular/material/select';
|
|
21
|
-
import * as
|
|
23
|
+
import * as i16 from '@angular/material/tooltip';
|
|
22
24
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
23
|
-
import * as
|
|
25
|
+
import * as i17 from '@angular/material/progress-spinner';
|
|
24
26
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
25
|
-
import * as
|
|
27
|
+
import * as i18 from '@angular/material/icon';
|
|
26
28
|
import { MatIconModule } from '@angular/material/icon';
|
|
27
29
|
import * as i2 from '@angular/material/dialog';
|
|
28
30
|
import { MatDialogModule } from '@angular/material/dialog';
|
|
@@ -33,13 +35,18 @@ import * as i1 from '@angular/fire/compat/firestore';
|
|
|
33
35
|
import * as i3 from 'ngx-toastr';
|
|
34
36
|
|
|
35
37
|
class NgFirebaseTableKxpComponent {
|
|
36
|
-
static { this.ɵfac =
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵ
|
|
38
|
+
static { this.ɵfac = function NgFirebaseTableKxpComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NgFirebaseTableKxpComponent)(); }; }
|
|
39
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NgFirebaseTableKxpComponent, selectors: [["lib-ng-firebase-table-kxp"]], standalone: false, decls: 2, vars: 0, template: function NgFirebaseTableKxpComponent_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelementStart(0, "p");
|
|
41
|
+
i0.ɵɵtext(1, "ng-firebase-table-kxp works!");
|
|
42
|
+
i0.ɵɵelementEnd();
|
|
43
|
+
} }, encapsulation: 2 }); }
|
|
38
44
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NgFirebaseTableKxpComponent, [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{ selector: 'lib-ng-firebase-table-kxp', standalone: false, template: ` <p>ng-firebase-table-kxp works!</p> ` }]
|
|
48
|
+
}], null, null); })();
|
|
49
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NgFirebaseTableKxpComponent, { className: "NgFirebaseTableKxpComponent", filePath: "lib/ng-firebase-table-kxp.component.ts", lineNumber: 9 }); })();
|
|
43
50
|
|
|
44
51
|
const TABLE_DEFAULTS = {
|
|
45
52
|
SORT_FIELD: 'createdAt',
|
|
@@ -1244,18 +1251,18 @@ class TableService {
|
|
|
1244
1251
|
console.warn('Falha ao rastrear índice ausente:', trackingError);
|
|
1245
1252
|
}
|
|
1246
1253
|
}
|
|
1247
|
-
static { this.ɵfac =
|
|
1248
|
-
static { this.ɵprov = i0.ɵɵ
|
|
1254
|
+
static { this.ɵfac = function TableService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableService)(i0.ɵɵinject(i1.AngularFirestore, 8), i0.ɵɵinject(i2.MatDialog, 8), i0.ɵɵinject(i3.ToastrService, 8)); }; }
|
|
1255
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TableService, factory: TableService.ɵfac }); }
|
|
1249
1256
|
}
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1257
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableService, [{
|
|
1258
|
+
type: Injectable
|
|
1259
|
+
}], () => [{ type: i1.AngularFirestore, decorators: [{
|
|
1260
|
+
type: Optional
|
|
1261
|
+
}] }, { type: i2.MatDialog, decorators: [{
|
|
1262
|
+
type: Optional
|
|
1263
|
+
}] }, { type: i3.ToastrService, decorators: [{
|
|
1264
|
+
type: Optional
|
|
1265
|
+
}] }], null); })();
|
|
1259
1266
|
|
|
1260
1267
|
class FilterService {
|
|
1261
1268
|
constructor(tableService) {
|
|
@@ -1659,15 +1666,15 @@ class FilterService {
|
|
|
1659
1666
|
}
|
|
1660
1667
|
return dropdownItems;
|
|
1661
1668
|
}
|
|
1662
|
-
static { this.ɵfac =
|
|
1663
|
-
static { this.ɵprov = i0.ɵɵ
|
|
1669
|
+
static { this.ɵfac = function FilterService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FilterService)(i0.ɵɵinject(TableService)); }; }
|
|
1670
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FilterService, factory: FilterService.ɵfac, providedIn: 'root' }); }
|
|
1664
1671
|
}
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1672
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterService, [{
|
|
1673
|
+
type: Injectable,
|
|
1674
|
+
args: [{
|
|
1675
|
+
providedIn: 'root',
|
|
1676
|
+
}]
|
|
1677
|
+
}], () => [{ type: TableService }], null); })();
|
|
1671
1678
|
|
|
1672
1679
|
class TooltipService {
|
|
1673
1680
|
constructor() {
|
|
@@ -1798,15 +1805,15 @@ class TooltipService {
|
|
|
1798
1805
|
this.tooltipTimeout = null;
|
|
1799
1806
|
}
|
|
1800
1807
|
}
|
|
1801
|
-
static { this.ɵfac =
|
|
1802
|
-
static { this.ɵprov = i0.ɵɵ
|
|
1808
|
+
static { this.ɵfac = function TooltipService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TooltipService)(); }; }
|
|
1809
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TooltipService, factory: TooltipService.ɵfac, providedIn: 'root' }); }
|
|
1803
1810
|
}
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1811
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TooltipService, [{
|
|
1812
|
+
type: Injectable,
|
|
1813
|
+
args: [{
|
|
1814
|
+
providedIn: 'root',
|
|
1815
|
+
}]
|
|
1816
|
+
}], null, null); })();
|
|
1810
1817
|
|
|
1811
1818
|
class PaginationService {
|
|
1812
1819
|
calculateNavigation(event, currentState) {
|
|
@@ -1911,16 +1918,68 @@ class PaginationService {
|
|
|
1911
1918
|
shouldShowNextButton(hasNextPage, isPaginated) {
|
|
1912
1919
|
return hasNextPage || !isPaginated;
|
|
1913
1920
|
}
|
|
1914
|
-
static { this.ɵfac =
|
|
1915
|
-
static { this.ɵprov = i0.ɵɵ
|
|
1921
|
+
static { this.ɵfac = function PaginationService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationService)(); }; }
|
|
1922
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaginationService, factory: PaginationService.ɵfac, providedIn: 'root' }); }
|
|
1916
1923
|
}
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1924
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationService, [{
|
|
1925
|
+
type: Injectable,
|
|
1926
|
+
args: [{
|
|
1927
|
+
providedIn: 'root',
|
|
1928
|
+
}]
|
|
1929
|
+
}], null, null); })();
|
|
1923
1930
|
|
|
1931
|
+
function TableTabsComponent_div_0_ng_container_1_ng_container_2_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
1932
|
+
i0.ɵɵelementStart(0, "span", 6);
|
|
1933
|
+
i0.ɵɵtext(1);
|
|
1934
|
+
i0.ɵɵelementEnd();
|
|
1935
|
+
} if (rf & 2) {
|
|
1936
|
+
const tab_r5 = i0.ɵɵnextContext().$implicit;
|
|
1937
|
+
i0.ɵɵproperty("ngClass", tab_r5.counterClass);
|
|
1938
|
+
i0.ɵɵadvance();
|
|
1939
|
+
i0.ɵɵtextInterpolate1(" ", tab_r5.counter, " ");
|
|
1940
|
+
} }
|
|
1941
|
+
function TableTabsComponent_div_0_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
1942
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
1943
|
+
i0.ɵɵelementContainerStart(0);
|
|
1944
|
+
i0.ɵɵelementStart(1, "button", 4);
|
|
1945
|
+
i0.ɵɵlistener("click", function TableTabsComponent_div_0_ng_container_1_ng_container_2_Template_button_click_1_listener() { const j_r2 = i0.ɵɵrestoreView(_r1).index; const i_r3 = i0.ɵɵnextContext().index; const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onTabSelected(i_r3, j_r2)); });
|
|
1946
|
+
i0.ɵɵtext(2);
|
|
1947
|
+
i0.ɵɵtemplate(3, TableTabsComponent_div_0_ng_container_1_ng_container_2_span_3_Template, 2, 2, "span", 5);
|
|
1948
|
+
i0.ɵɵelementEnd();
|
|
1949
|
+
i0.ɵɵelementContainerEnd();
|
|
1950
|
+
} if (rf & 2) {
|
|
1951
|
+
const tab_r5 = ctx.$implicit;
|
|
1952
|
+
const j_r2 = ctx.index;
|
|
1953
|
+
const i_r3 = i0.ɵɵnextContext().index;
|
|
1954
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
1955
|
+
i0.ɵɵadvance();
|
|
1956
|
+
i0.ɵɵproperty("ngClass", ctx_r3.isTabSelected(ctx_r3.getRealTabIndex(i_r3, j_r2)) ? "border-b-0 brightness-110" : "");
|
|
1957
|
+
i0.ɵɵadvance();
|
|
1958
|
+
i0.ɵɵtextInterpolate1(" ", tab_r5.label, " ");
|
|
1959
|
+
i0.ɵɵadvance();
|
|
1960
|
+
i0.ɵɵproperty("ngIf", tab_r5.counter !== undefined);
|
|
1961
|
+
} }
|
|
1962
|
+
function TableTabsComponent_div_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
1963
|
+
i0.ɵɵelementContainerStart(0);
|
|
1964
|
+
i0.ɵɵelementStart(1, "div", 3);
|
|
1965
|
+
i0.ɵɵtemplate(2, TableTabsComponent_div_0_ng_container_1_ng_container_2_Template, 4, 3, "ng-container", 2);
|
|
1966
|
+
i0.ɵɵelementEnd();
|
|
1967
|
+
i0.ɵɵelementContainerEnd();
|
|
1968
|
+
} if (rf & 2) {
|
|
1969
|
+
const groupIndex_r6 = ctx.$implicit;
|
|
1970
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
1971
|
+
i0.ɵɵadvance(2);
|
|
1972
|
+
i0.ɵɵproperty("ngForOf", ctx_r3.getTabGroup(groupIndex_r6));
|
|
1973
|
+
} }
|
|
1974
|
+
function TableTabsComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
1975
|
+
i0.ɵɵelementStart(0, "div", 1);
|
|
1976
|
+
i0.ɵɵtemplate(1, TableTabsComponent_div_0_ng_container_1_Template, 3, 1, "ng-container", 2);
|
|
1977
|
+
i0.ɵɵelementEnd();
|
|
1978
|
+
} if (rf & 2) {
|
|
1979
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
1980
|
+
i0.ɵɵadvance();
|
|
1981
|
+
i0.ɵɵproperty("ngForOf", ctx_r3.getTabGroups());
|
|
1982
|
+
} }
|
|
1924
1983
|
class TableTabsComponent {
|
|
1925
1984
|
constructor() {
|
|
1926
1985
|
this.tabsData = [];
|
|
@@ -1977,20 +2036,36 @@ class TableTabsComponent {
|
|
|
1977
2036
|
isTabSelected(originalIndex) {
|
|
1978
2037
|
return this.selectedTab === originalIndex;
|
|
1979
2038
|
}
|
|
1980
|
-
static { this.ɵfac =
|
|
1981
|
-
static { this.ɵcmp = i0.ɵɵ
|
|
2039
|
+
static { this.ɵfac = function TableTabsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableTabsComponent)(); }; }
|
|
2040
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableTabsComponent, selectors: [["lib-table-tabs"]], inputs: { tabsData: "tabsData", selectedTab: "selectedTab" }, outputs: { tabSelected: "tabSelected" }, standalone: false, decls: 1, vars: 1, consts: [["class", "mx-auto flex flex-col", 4, "ngIf"], [1, "mx-auto", "flex", "flex-col"], [4, "ngFor", "ngForOf"], [1, "mx-auto", "flex", "flex-row"], [1, "border-2", "border-gray-300", "bg-gray-200", "px-4", "py-2", "font-medium", "transition", "hover:brightness-95", 3, "click", "ngClass"], ["class", "ml-2 text-xs font-bold", 3, "ngClass", 4, "ngIf"], [1, "ml-2", "text-xs", "font-bold", 3, "ngClass"]], template: function TableTabsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2041
|
+
i0.ɵɵtemplate(0, TableTabsComponent_div_0_Template, 2, 1, "div", 0);
|
|
2042
|
+
} if (rf & 2) {
|
|
2043
|
+
i0.ɵɵproperty("ngIf", ctx.tabsData && ctx.tabsData.length > 0);
|
|
2044
|
+
} }, dependencies: [i1$1.NgClass, i1$1.NgForOf, i1$1.NgIf], encapsulation: 2, changeDetection: 0 }); }
|
|
1982
2045
|
}
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
2046
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableTabsComponent, [{
|
|
2047
|
+
type: Component,
|
|
2048
|
+
args: [{ selector: 'lib-table-tabs', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mx-auto flex flex-col\" *ngIf=\"tabsData && tabsData.length > 0\">\r\n <ng-container *ngFor=\"let groupIndex of getTabGroups(); let i = index\">\r\n <div class=\"mx-auto flex flex-row\">\r\n <ng-container *ngFor=\"let tab of getTabGroup(groupIndex); let j = index\">\r\n <button\r\n class=\"border-2 border-gray-300 bg-gray-200 px-4 py-2 font-medium transition hover:brightness-95\"\r\n [ngClass]=\"\r\n isTabSelected(getRealTabIndex(i, j))\r\n ? 'border-b-0 brightness-110'\r\n : ''\r\n \"\r\n (click)=\"onTabSelected(i, j)\"\r\n >\r\n {{ tab.label }}\r\n <span\r\n *ngIf=\"tab.counter !== undefined\"\r\n class=\"ml-2 text-xs font-bold\"\r\n [ngClass]=\"tab.counterClass\"\r\n >\r\n {{ tab.counter }}\r\n </span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n" }]
|
|
2049
|
+
}], null, { tabsData: [{
|
|
2050
|
+
type: Input
|
|
2051
|
+
}], selectedTab: [{
|
|
2052
|
+
type: Input
|
|
2053
|
+
}], tabSelected: [{
|
|
2054
|
+
type: Output
|
|
2055
|
+
}] }); })();
|
|
2056
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableTabsComponent, { className: "TableTabsComponent", filePath: "lib/components/table-tabs/table-tabs.component.ts", lineNumber: 16 }); })();
|
|
1993
2057
|
|
|
2058
|
+
function TableTooltipComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
2059
|
+
i0.ɵɵelementStart(0, "div", 1);
|
|
2060
|
+
i0.ɵɵtext(1);
|
|
2061
|
+
i0.ɵɵelementEnd();
|
|
2062
|
+
} if (rf & 2) {
|
|
2063
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
2064
|
+
i0.ɵɵstyleProp("left", ctx_r0.tooltipPosition.x, "px")("top", ctx_r0.tooltipPosition.y, "px")("pointer-events", "none");
|
|
2065
|
+
i0.ɵɵproperty("ngClass", (ctx_r0.tooltipBgColor || "bg-gray-800") + " " + (ctx_r0.tooltipTextColor || "text-white"))("ngStyle", ctx_r0.styles);
|
|
2066
|
+
i0.ɵɵadvance();
|
|
2067
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.tooltipContent, "\n");
|
|
2068
|
+
} }
|
|
1994
2069
|
class TableTooltipComponent {
|
|
1995
2070
|
constructor() {
|
|
1996
2071
|
this.styles = {};
|
|
@@ -2010,18 +2085,829 @@ class TableTooltipComponent {
|
|
|
2010
2085
|
get tooltipTextColor() {
|
|
2011
2086
|
return this.state?.tooltipTextColor ?? 'text-white';
|
|
2012
2087
|
}
|
|
2013
|
-
static { this.ɵfac =
|
|
2014
|
-
static { this.ɵcmp = i0.ɵɵ
|
|
2088
|
+
static { this.ɵfac = function TableTooltipComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableTooltipComponent)(); }; }
|
|
2089
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableTooltipComponent, selectors: [["lib-table-tooltip"]], inputs: { state: "state", styles: "styles" }, standalone: false, decls: 1, vars: 1, consts: [["class", "fixed z-50 max-w-md break-words rounded-lg px-3 py-2 text-sm shadow-lg", 3, "ngClass", "ngStyle", "left", "top", "pointer-events", 4, "ngIf"], [1, "fixed", "z-50", "max-w-md", "break-words", "rounded-lg", "px-3", "py-2", "text-sm", "shadow-lg", 3, "ngClass", "ngStyle"]], template: function TableTooltipComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2090
|
+
i0.ɵɵtemplate(0, TableTooltipComponent_div_0_Template, 2, 9, "div", 0);
|
|
2091
|
+
} if (rf & 2) {
|
|
2092
|
+
i0.ɵɵproperty("ngIf", ctx.showTooltip);
|
|
2093
|
+
} }, dependencies: [i1$1.NgClass, i1$1.NgIf, i1$1.NgStyle], encapsulation: 2, changeDetection: 0 }); }
|
|
2015
2094
|
}
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2095
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableTooltipComponent, [{
|
|
2096
|
+
type: Component,
|
|
2097
|
+
args: [{ selector: 'lib-table-tooltip', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n *ngIf=\"showTooltip\"\r\n class=\"fixed z-50 max-w-md break-words rounded-lg px-3 py-2 text-sm shadow-lg\"\r\n [ngClass]=\"\r\n (tooltipBgColor || 'bg-gray-800') + ' ' + (tooltipTextColor || 'text-white')\r\n \"\r\n [ngStyle]=\"styles\"\r\n [style.left.px]=\"tooltipPosition.x\"\r\n [style.top.px]=\"tooltipPosition.y\"\r\n [style.pointer-events]=\"'none'\"\r\n>\r\n {{ tooltipContent }}\r\n</div>\r\n" }]
|
|
2098
|
+
}], null, { state: [{
|
|
2099
|
+
type: Input
|
|
2100
|
+
}], styles: [{
|
|
2101
|
+
type: Input
|
|
2102
|
+
}] }); })();
|
|
2103
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableTooltipComponent, { className: "TableTooltipComponent", filePath: "lib/components/table-tooltip/table-tooltip.component.ts", lineNumber: 10 }); })();
|
|
2024
2104
|
|
|
2105
|
+
const _c0 = () => [25, 50, 100];
|
|
2106
|
+
function TableComponent_div_0_div_2_button_7_i_1_Template(rf, ctx) { if (rf & 1) {
|
|
2107
|
+
i0.ɵɵelement(0, "i");
|
|
2108
|
+
} if (rf & 2) {
|
|
2109
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
2110
|
+
i0.ɵɵclassMap(ctx_r2.data.actionButton.icon);
|
|
2111
|
+
} }
|
|
2112
|
+
function TableComponent_div_0_div_2_button_7_Template(rf, ctx) { if (rf & 1) {
|
|
2113
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
2114
|
+
i0.ɵɵelementStart(0, "button", 34);
|
|
2115
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_button_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.data.actionButton.method ? ctx_r2.data.actionButton.method($event) : null); });
|
|
2116
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_div_2_button_7_i_1_Template, 1, 2, "i", 35);
|
|
2117
|
+
i0.ɵɵtext(2);
|
|
2118
|
+
i0.ɵɵelementEnd();
|
|
2119
|
+
} if (rf & 2) {
|
|
2120
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
2121
|
+
i0.ɵɵproperty("ngClass", ctx_r2.getActionButtonClass())("routerLink", ctx_r2.data.actionButton.routerLink);
|
|
2122
|
+
i0.ɵɵadvance();
|
|
2123
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.actionButton.icon);
|
|
2124
|
+
i0.ɵɵadvance();
|
|
2125
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.data.actionButton.label, " ");
|
|
2126
|
+
} }
|
|
2127
|
+
function TableComponent_div_0_div_2_div_8_mat_option_9_Template(rf, ctx) { if (rf & 1) {
|
|
2128
|
+
i0.ɵɵelementStart(0, "mat-option", 43)(1, "div", 25);
|
|
2129
|
+
i0.ɵɵelement(2, "i", 40);
|
|
2130
|
+
i0.ɵɵelementStart(3, "span");
|
|
2131
|
+
i0.ɵɵtext(4);
|
|
2132
|
+
i0.ɵɵelementEnd()()();
|
|
2133
|
+
} if (rf & 2) {
|
|
2134
|
+
const item_r4 = ctx.$implicit;
|
|
2135
|
+
i0.ɵɵproperty("value", item_r4);
|
|
2136
|
+
i0.ɵɵadvance(4);
|
|
2137
|
+
i0.ɵɵtextInterpolate(item_r4.title);
|
|
2138
|
+
} }
|
|
2139
|
+
function TableComponent_div_0_div_2_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
2140
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "div", 37)(2, "div", 38)(3, "mat-form-field", 39)(4, "mat-label", 25);
|
|
2141
|
+
i0.ɵɵelement(5, "i", 40);
|
|
2142
|
+
i0.ɵɵelementStart(6, "span");
|
|
2143
|
+
i0.ɵɵtext(7, "Ordenar por");
|
|
2144
|
+
i0.ɵɵelementEnd()();
|
|
2145
|
+
i0.ɵɵelementStart(8, "mat-select", 41);
|
|
2146
|
+
i0.ɵɵtemplate(9, TableComponent_div_0_div_2_div_8_mat_option_9_Template, 5, 2, "mat-option", 42);
|
|
2147
|
+
i0.ɵɵelementEnd()()()()();
|
|
2148
|
+
} if (rf & 2) {
|
|
2149
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
2150
|
+
i0.ɵɵadvance(8);
|
|
2151
|
+
i0.ɵɵproperty("formControl", ctx_r2.selectSort);
|
|
2152
|
+
i0.ɵɵadvance();
|
|
2153
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.sortableDropdownItems);
|
|
2154
|
+
} }
|
|
2155
|
+
function TableComponent_div_0_div_2_div_9_div_1_div_1_mat_option_5_Template(rf, ctx) { if (rf & 1) {
|
|
2156
|
+
i0.ɵɵelementStart(0, "mat-option", 43)(1, "div", 25);
|
|
2157
|
+
i0.ɵɵelement(2, "i", 51);
|
|
2158
|
+
i0.ɵɵelementStart(3, "span");
|
|
2159
|
+
i0.ɵɵtext(4);
|
|
2160
|
+
i0.ɵɵelementEnd()()();
|
|
2161
|
+
} if (rf & 2) {
|
|
2162
|
+
const item_r6 = ctx.$implicit;
|
|
2163
|
+
i0.ɵɵproperty("value", item_r6);
|
|
2164
|
+
i0.ɵɵadvance(2);
|
|
2165
|
+
i0.ɵɵclassMap(item_r6.icon || "fa fa-filter");
|
|
2166
|
+
i0.ɵɵadvance(2);
|
|
2167
|
+
i0.ɵɵtextInterpolate(item_r6.title);
|
|
2168
|
+
} }
|
|
2169
|
+
function TableComponent_div_0_div_2_div_9_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
2170
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
2171
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mat-form-field", 39)(2, "mat-label");
|
|
2172
|
+
i0.ɵɵtext(3, "Tipo de filtro");
|
|
2173
|
+
i0.ɵɵelementEnd();
|
|
2174
|
+
i0.ɵɵelementStart(4, "mat-select", 50);
|
|
2175
|
+
i0.ɵɵlistener("selectionChange", function TableComponent_div_0_div_2_div_9_div_1_div_1_Template_mat_select_selectionChange_4_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.onSelectFilterChange()); });
|
|
2176
|
+
i0.ɵɵtemplate(5, TableComponent_div_0_div_2_div_9_div_1_div_1_mat_option_5_Template, 5, 4, "mat-option", 42);
|
|
2177
|
+
i0.ɵɵelementEnd()()();
|
|
2178
|
+
} if (rf & 2) {
|
|
2179
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
2180
|
+
i0.ɵɵadvance(5);
|
|
2181
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.getAvailableFilterOptions());
|
|
2182
|
+
} }
|
|
2183
|
+
function TableComponent_div_0_div_2_div_9_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
2184
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
2185
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mat-form-field", 39)(2, "mat-label", 25);
|
|
2186
|
+
i0.ɵɵelement(3, "i", 52);
|
|
2187
|
+
i0.ɵɵelementStart(4, "span");
|
|
2188
|
+
i0.ɵɵtext(5);
|
|
2189
|
+
i0.ɵɵelementEnd()();
|
|
2190
|
+
i0.ɵɵelementStart(6, "input", 53, 2);
|
|
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(_r7); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.search($event)); });
|
|
2192
|
+
i0.ɵɵelementEnd()()();
|
|
2193
|
+
} if (rf & 2) {
|
|
2194
|
+
let tmp_10_0;
|
|
2195
|
+
const filterGroup_r8 = i0.ɵɵnextContext().$implicit;
|
|
2196
|
+
i0.ɵɵadvance(5);
|
|
2197
|
+
i0.ɵɵtextInterpolate(((tmp_10_0 = filterGroup_r8.get("selectFilter")) == null ? null : tmp_10_0.value == null ? null : tmp_10_0.value.title) || "Filtrar");
|
|
2198
|
+
} }
|
|
2199
|
+
function TableComponent_div_0_div_2_div_9_div_1_div_3_mat_option_5_Template(rf, ctx) { if (rf & 1) {
|
|
2200
|
+
i0.ɵɵelementStart(0, "mat-option", 43);
|
|
2201
|
+
i0.ɵɵtext(1);
|
|
2202
|
+
i0.ɵɵelementEnd();
|
|
2203
|
+
} if (rf & 2) {
|
|
2204
|
+
const item_r9 = ctx.$implicit;
|
|
2205
|
+
i0.ɵɵproperty("value", item_r9);
|
|
2206
|
+
i0.ɵɵadvance();
|
|
2207
|
+
i0.ɵɵtextInterpolate1(" ", item_r9.label, " ");
|
|
2208
|
+
} }
|
|
2209
|
+
function TableComponent_div_0_div_2_div_9_div_1_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
2210
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mat-form-field", 39)(2, "mat-label");
|
|
2211
|
+
i0.ɵɵtext(3);
|
|
2212
|
+
i0.ɵɵelementEnd();
|
|
2213
|
+
i0.ɵɵelementStart(4, "mat-select", 54);
|
|
2214
|
+
i0.ɵɵtemplate(5, TableComponent_div_0_div_2_div_9_div_1_div_3_mat_option_5_Template, 2, 2, "mat-option", 42);
|
|
2215
|
+
i0.ɵɵelementEnd()()();
|
|
2216
|
+
} if (rf & 2) {
|
|
2217
|
+
let tmp_9_0;
|
|
2218
|
+
let tmp_10_0;
|
|
2219
|
+
const filterGroup_r8 = i0.ɵɵnextContext().$implicit;
|
|
2220
|
+
i0.ɵɵadvance(3);
|
|
2221
|
+
i0.ɵɵtextInterpolate(((tmp_9_0 = filterGroup_r8.get("selectFilter")) == null ? null : tmp_9_0.value == null ? null : tmp_9_0.value.title) || "Selecione");
|
|
2222
|
+
i0.ɵɵadvance(2);
|
|
2223
|
+
i0.ɵɵproperty("ngForOf", (tmp_10_0 = filterGroup_r8.get("selectFilter")) == null ? null : tmp_10_0.value.items);
|
|
2224
|
+
} }
|
|
2225
|
+
function TableComponent_div_0_div_2_div_9_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
2226
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
2227
|
+
i0.ɵɵelementStart(0, "div", 55)(1, "div", 56)(2, "mat-form-field", 57)(3, "mat-label", 25);
|
|
2228
|
+
i0.ɵɵelement(4, "i", 58);
|
|
2229
|
+
i0.ɵɵelementStart(5, "span");
|
|
2230
|
+
i0.ɵɵtext(6, "Data Inicial");
|
|
2231
|
+
i0.ɵɵelementEnd()();
|
|
2232
|
+
i0.ɵɵelementStart(7, "input", 59);
|
|
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(_r10); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.search($event)); })("input", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_input_7_listener($event) { i0.ɵɵrestoreView(_r10); const i_r11 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.onDateInput($event, "initialDate", i_r11)); });
|
|
2234
|
+
i0.ɵɵelementEnd()();
|
|
2235
|
+
i0.ɵɵelementStart(8, "mat-form-field", 57)(9, "mat-label", 25);
|
|
2236
|
+
i0.ɵɵelement(10, "i", 58);
|
|
2237
|
+
i0.ɵɵelementStart(11, "span");
|
|
2238
|
+
i0.ɵɵtext(12, "Data Final");
|
|
2239
|
+
i0.ɵɵelementEnd()();
|
|
2240
|
+
i0.ɵɵelementStart(13, "input", 60);
|
|
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(_r10); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.search($event)); })("input", function TableComponent_div_0_div_2_div_9_div_1_div_4_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r10); const i_r11 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.onDateInput($event, "finalDate", i_r11)); });
|
|
2242
|
+
i0.ɵɵelementEnd()()()();
|
|
2243
|
+
} }
|
|
2244
|
+
function TableComponent_div_0_div_2_div_9_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
2245
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
2246
|
+
i0.ɵɵelementStart(0, "div", 61)(1, "button", 62);
|
|
2247
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_9_div_1_div_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r12); const i_r11 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.removeFilter(i_r11)); });
|
|
2248
|
+
i0.ɵɵelement(2, "i", 63);
|
|
2249
|
+
i0.ɵɵelementEnd()();
|
|
2250
|
+
} }
|
|
2251
|
+
function TableComponent_div_0_div_2_div_9_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
2252
|
+
i0.ɵɵelementStart(0, "div", 46);
|
|
2253
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_div_2_div_9_div_1_div_1_Template, 6, 1, "div", 47)(2, TableComponent_div_0_div_2_div_9_div_1_div_2_Template, 8, 1, "div", 47)(3, TableComponent_div_0_div_2_div_9_div_1_div_3_Template, 6, 2, "div", 47)(4, TableComponent_div_0_div_2_div_9_div_1_div_4_Template, 14, 0, "div", 48)(5, TableComponent_div_0_div_2_div_9_div_1_div_5_Template, 3, 0, "div", 49);
|
|
2254
|
+
i0.ɵɵelementEnd();
|
|
2255
|
+
} if (rf & 2) {
|
|
2256
|
+
let tmp_10_0;
|
|
2257
|
+
let tmp_11_0;
|
|
2258
|
+
let tmp_12_0;
|
|
2259
|
+
const filterGroup_r8 = ctx.$implicit;
|
|
2260
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
2261
|
+
i0.ɵɵproperty("formGroup", filterGroup_r8);
|
|
2262
|
+
i0.ɵɵadvance();
|
|
2263
|
+
i0.ɵɵproperty("ngIf", ctx_r2.dropdownItems.length > 0);
|
|
2264
|
+
i0.ɵɵadvance();
|
|
2265
|
+
i0.ɵɵproperty("ngIf", ((tmp_10_0 = filterGroup_r8.get("selectFilter")) == null ? null : tmp_10_0.value == null ? null : tmp_10_0.value.arrange) === "filter");
|
|
2266
|
+
i0.ɵɵadvance();
|
|
2267
|
+
i0.ɵɵproperty("ngIf", ((tmp_11_0 = filterGroup_r8.get("selectFilter")) == null ? null : tmp_11_0.value) && ((tmp_11_0 = filterGroup_r8.get("selectFilter")) == null ? null : tmp_11_0.value.hasOwnProperty("items")));
|
|
2268
|
+
i0.ɵɵadvance();
|
|
2269
|
+
i0.ɵɵproperty("ngIf", ((tmp_12_0 = filterGroup_r8.get("selectFilter")) == null ? null : tmp_12_0.value == null ? null : tmp_12_0.value.arrange) === "filterByDate");
|
|
2270
|
+
i0.ɵɵadvance();
|
|
2271
|
+
i0.ɵɵproperty("ngIf", ctx_r2.filtersForm.length > 1);
|
|
2272
|
+
} }
|
|
2273
|
+
function TableComponent_div_0_div_2_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
2274
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
2275
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_div_2_div_9_div_1_Template, 6, 6, "div", 45);
|
|
2276
|
+
i0.ɵɵelementEnd();
|
|
2277
|
+
} if (rf & 2) {
|
|
2278
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
2279
|
+
i0.ɵɵadvance();
|
|
2280
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.filtersForm.controls);
|
|
2281
|
+
} }
|
|
2282
|
+
function TableComponent_div_0_div_2_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
2283
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
2284
|
+
i0.ɵɵelementStart(0, "div")(1, "button", 64);
|
|
2285
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_11_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.addFilter()); });
|
|
2286
|
+
i0.ɵɵelement(2, "i", 65);
|
|
2287
|
+
i0.ɵɵtext(3, " Adicionar Filtro ");
|
|
2288
|
+
i0.ɵɵelementEnd()();
|
|
2289
|
+
} }
|
|
2290
|
+
function TableComponent_div_0_div_2_div_12_button_7_Template(rf, ctx) { if (rf & 1) {
|
|
2291
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
2292
|
+
i0.ɵɵelementStart(0, "button", 72);
|
|
2293
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.arrange && ctx_r2.downloadTable !== undefined ? ctx_r2.downloadTable(ctx_r2.arrange, ctx_r2.data.conditions || []) : null); });
|
|
2294
|
+
i0.ɵɵelement(1, "i", 73);
|
|
2295
|
+
i0.ɵɵtext(2, " Exportar ");
|
|
2296
|
+
i0.ɵɵelementEnd();
|
|
2297
|
+
} if (rf & 2) {
|
|
2298
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
2299
|
+
i0.ɵɵproperty("disabled", ctx_r2.dataSource && ctx_r2.dataSource.filteredData.length <= 0);
|
|
2300
|
+
} }
|
|
2301
|
+
function TableComponent_div_0_div_2_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
2302
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
2303
|
+
i0.ɵɵelementStart(0, "div", 66)(1, "button", 67);
|
|
2304
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r14); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.search()); });
|
|
2305
|
+
i0.ɵɵelement(2, "i", 68);
|
|
2306
|
+
i0.ɵɵtext(3, " Pesquisar ");
|
|
2307
|
+
i0.ɵɵelementEnd();
|
|
2308
|
+
i0.ɵɵelementStart(4, "button", 69);
|
|
2309
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_2_div_12_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r14); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.resetFilter()); });
|
|
2310
|
+
i0.ɵɵelement(5, "i", 70);
|
|
2311
|
+
i0.ɵɵtext(6, " Resetar ");
|
|
2312
|
+
i0.ɵɵelementEnd();
|
|
2313
|
+
i0.ɵɵtemplate(7, TableComponent_div_0_div_2_div_12_button_7_Template, 3, 1, "button", 71);
|
|
2314
|
+
i0.ɵɵelementEnd();
|
|
2315
|
+
} if (rf & 2) {
|
|
2316
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
2317
|
+
i0.ɵɵadvance(7);
|
|
2318
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.download !== false && ctx_r2.downloadTable);
|
|
2319
|
+
} }
|
|
2320
|
+
function TableComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
2321
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "div", 23)(2, "div", 24)(3, "div", 25);
|
|
2322
|
+
i0.ɵɵelement(4, "i", 26);
|
|
2323
|
+
i0.ɵɵelementStart(5, "span", 27);
|
|
2324
|
+
i0.ɵɵtext(6, "Filtros e A\u00E7\u00F5es");
|
|
2325
|
+
i0.ɵɵelementEnd()();
|
|
2326
|
+
i0.ɵɵtemplate(7, TableComponent_div_0_div_2_button_7_Template, 3, 4, "button", 28);
|
|
2327
|
+
i0.ɵɵelementEnd()();
|
|
2328
|
+
i0.ɵɵtemplate(8, TableComponent_div_0_div_2_div_8_Template, 10, 2, "div", 29)(9, TableComponent_div_0_div_2_div_9_Template, 2, 1, "div", 30);
|
|
2329
|
+
i0.ɵɵelementStart(10, "div", 31);
|
|
2330
|
+
i0.ɵɵtemplate(11, TableComponent_div_0_div_2_div_11_Template, 4, 0, "div", 32)(12, TableComponent_div_0_div_2_div_12_Template, 8, 1, "div", 33);
|
|
2331
|
+
i0.ɵɵelementEnd()();
|
|
2332
|
+
} if (rf & 2) {
|
|
2333
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2334
|
+
i0.ɵɵadvance(7);
|
|
2335
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.actionButton && ctx_r2.data.actionButton.condition);
|
|
2336
|
+
i0.ɵɵadvance();
|
|
2337
|
+
i0.ɵɵproperty("ngIf", ctx_r2.sortableDropdownItems.length > 0);
|
|
2338
|
+
i0.ɵɵadvance();
|
|
2339
|
+
i0.ɵɵproperty("ngIf", ctx_r2.filtersForm.controls.length > 0);
|
|
2340
|
+
i0.ɵɵadvance(2);
|
|
2341
|
+
i0.ɵɵproperty("ngIf", ctx_r2.dropdownItems.length > 0);
|
|
2342
|
+
i0.ɵɵadvance();
|
|
2343
|
+
i0.ɵɵproperty("ngIf", ctx_r2.hasFilterableColumn === true || ctx_r2.hasSortableColumn === true);
|
|
2344
|
+
} }
|
|
2345
|
+
function TableComponent_div_0_div_3_button_7_i_1_Template(rf, ctx) { if (rf & 1) {
|
|
2346
|
+
i0.ɵɵelement(0, "i");
|
|
2347
|
+
} if (rf & 2) {
|
|
2348
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
2349
|
+
i0.ɵɵclassMap(ctx_r2.data.actionButton.icon);
|
|
2350
|
+
} }
|
|
2351
|
+
function TableComponent_div_0_div_3_button_7_Template(rf, ctx) { if (rf & 1) {
|
|
2352
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
2353
|
+
i0.ɵɵelementStart(0, "button", 34);
|
|
2354
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_button_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.data.actionButton.method ? ctx_r2.data.actionButton.method($event) : null); });
|
|
2355
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_div_3_button_7_i_1_Template, 1, 2, "i", 35);
|
|
2356
|
+
i0.ɵɵtext(2);
|
|
2357
|
+
i0.ɵɵelementEnd();
|
|
2358
|
+
} if (rf & 2) {
|
|
2359
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
2360
|
+
i0.ɵɵproperty("ngClass", ctx_r2.getActionButtonClass())("routerLink", ctx_r2.data.actionButton.routerLink);
|
|
2361
|
+
i0.ɵɵadvance();
|
|
2362
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.actionButton.icon);
|
|
2363
|
+
i0.ɵɵadvance();
|
|
2364
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.data.actionButton.label, " ");
|
|
2365
|
+
} }
|
|
2366
|
+
function TableComponent_div_0_div_3_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
2367
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
2368
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "mat-form-field", 39)(2, "mat-label", 25);
|
|
2369
|
+
i0.ɵɵelement(3, "i", 74);
|
|
2370
|
+
i0.ɵɵtext(4, " Buscar ");
|
|
2371
|
+
i0.ɵɵelementEnd();
|
|
2372
|
+
i0.ɵɵelementStart(5, "input", 75, 3);
|
|
2373
|
+
i0.ɵɵlistener("keyup.enter", function TableComponent_div_0_div_3_div_8_Template_input_keyup_enter_5_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.search($event)); })("keyup", function TableComponent_div_0_div_3_div_8_Template_input_keyup_5_listener() { i0.ɵɵrestoreView(_r17); const filterInput_r18 = i0.ɵɵreference(6); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.applyFilter(filterInput_r18.value)); });
|
|
2374
|
+
i0.ɵɵelementEnd();
|
|
2375
|
+
i0.ɵɵelementStart(7, "mat-icon", 76);
|
|
2376
|
+
i0.ɵɵtext(8, "search");
|
|
2377
|
+
i0.ɵɵelementEnd()()();
|
|
2378
|
+
} }
|
|
2379
|
+
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_mat_option_5_Template(rf, ctx) { if (rf & 1) {
|
|
2380
|
+
i0.ɵɵelementStart(0, "mat-option", 43)(1, "div", 25);
|
|
2381
|
+
i0.ɵɵelement(2, "i", 51);
|
|
2382
|
+
i0.ɵɵelementStart(3, "span");
|
|
2383
|
+
i0.ɵɵtext(4);
|
|
2384
|
+
i0.ɵɵelementEnd()()();
|
|
2385
|
+
} if (rf & 2) {
|
|
2386
|
+
const item_r20 = ctx.$implicit;
|
|
2387
|
+
i0.ɵɵproperty("value", item_r20);
|
|
2388
|
+
i0.ɵɵadvance(2);
|
|
2389
|
+
i0.ɵɵclassMap(item_r20.icon || "fa fa-filter");
|
|
2390
|
+
i0.ɵɵadvance(2);
|
|
2391
|
+
i0.ɵɵtextInterpolate(item_r20.title);
|
|
2392
|
+
} }
|
|
2393
|
+
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
2394
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
2395
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mat-form-field", 39)(2, "mat-label");
|
|
2396
|
+
i0.ɵɵtext(3, "Tipo de filtro");
|
|
2397
|
+
i0.ɵɵelementEnd();
|
|
2398
|
+
i0.ɵɵelementStart(4, "mat-select", 50);
|
|
2399
|
+
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(_r19); const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.onSelectFilterChange()); });
|
|
2400
|
+
i0.ɵɵtemplate(5, TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_mat_option_5_Template, 5, 4, "mat-option", 42);
|
|
2401
|
+
i0.ɵɵelementEnd()()();
|
|
2402
|
+
} if (rf & 2) {
|
|
2403
|
+
const ctx_r2 = i0.ɵɵnextContext(6);
|
|
2404
|
+
i0.ɵɵadvance(5);
|
|
2405
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.getAvailableFilterOptions());
|
|
2406
|
+
} }
|
|
2407
|
+
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
2408
|
+
const _r21 = i0.ɵɵgetCurrentView();
|
|
2409
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mat-form-field", 39)(2, "mat-label", 25);
|
|
2410
|
+
i0.ɵɵelement(3, "i", 52);
|
|
2411
|
+
i0.ɵɵelementStart(4, "span");
|
|
2412
|
+
i0.ɵɵtext(5);
|
|
2413
|
+
i0.ɵɵelementEnd()();
|
|
2414
|
+
i0.ɵɵelementStart(6, "input", 53, 2);
|
|
2415
|
+
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(_r21); const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.search($event)); });
|
|
2416
|
+
i0.ɵɵelementEnd()()();
|
|
2417
|
+
} if (rf & 2) {
|
|
2418
|
+
let tmp_11_0;
|
|
2419
|
+
const filterGroup_r22 = i0.ɵɵnextContext().$implicit;
|
|
2420
|
+
i0.ɵɵadvance(5);
|
|
2421
|
+
i0.ɵɵtextInterpolate(((tmp_11_0 = filterGroup_r22.get("selectFilter")) == null ? null : tmp_11_0.value == null ? null : tmp_11_0.value.title) || "Filtrar");
|
|
2422
|
+
} }
|
|
2423
|
+
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_mat_option_5_Template(rf, ctx) { if (rf & 1) {
|
|
2424
|
+
i0.ɵɵelementStart(0, "mat-option", 43);
|
|
2425
|
+
i0.ɵɵtext(1);
|
|
2426
|
+
i0.ɵɵelementEnd();
|
|
2427
|
+
} if (rf & 2) {
|
|
2428
|
+
const item_r23 = ctx.$implicit;
|
|
2429
|
+
i0.ɵɵproperty("value", item_r23);
|
|
2430
|
+
i0.ɵɵadvance();
|
|
2431
|
+
i0.ɵɵtextInterpolate1(" ", item_r23.label, " ");
|
|
2432
|
+
} }
|
|
2433
|
+
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
2434
|
+
i0.ɵɵelementStart(0, "div", 38)(1, "mat-form-field", 39)(2, "mat-label");
|
|
2435
|
+
i0.ɵɵtext(3);
|
|
2436
|
+
i0.ɵɵelementEnd();
|
|
2437
|
+
i0.ɵɵelementStart(4, "mat-select", 54);
|
|
2438
|
+
i0.ɵɵtemplate(5, TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_mat_option_5_Template, 2, 2, "mat-option", 42);
|
|
2439
|
+
i0.ɵɵelementEnd()()();
|
|
2440
|
+
} if (rf & 2) {
|
|
2441
|
+
let tmp_10_0;
|
|
2442
|
+
let tmp_11_0;
|
|
2443
|
+
const filterGroup_r22 = i0.ɵɵnextContext().$implicit;
|
|
2444
|
+
i0.ɵɵadvance(3);
|
|
2445
|
+
i0.ɵɵtextInterpolate(((tmp_10_0 = filterGroup_r22.get("selectFilter")) == null ? null : tmp_10_0.value == null ? null : tmp_10_0.value.title) || "Selecione");
|
|
2446
|
+
i0.ɵɵadvance(2);
|
|
2447
|
+
i0.ɵɵproperty("ngForOf", (tmp_11_0 = filterGroup_r22.get("selectFilter")) == null ? null : tmp_11_0.value.items);
|
|
2448
|
+
} }
|
|
2449
|
+
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
2450
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
2451
|
+
i0.ɵɵelementStart(0, "div", 55)(1, "div", 56)(2, "mat-form-field", 57)(3, "mat-label", 25);
|
|
2452
|
+
i0.ɵɵelement(4, "i", 58);
|
|
2453
|
+
i0.ɵɵelementStart(5, "span");
|
|
2454
|
+
i0.ɵɵtext(6, "Data Inicial");
|
|
2455
|
+
i0.ɵɵelementEnd()();
|
|
2456
|
+
i0.ɵɵelementStart(7, "input", 79);
|
|
2457
|
+
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(_r24); const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.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(_r24); const i_r25 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.onDateInput($event, "initialDate", i_r25)); })("blur", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_blur_7_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.onDateFilterChange()); });
|
|
2458
|
+
i0.ɵɵelementEnd()();
|
|
2459
|
+
i0.ɵɵelementStart(8, "mat-form-field", 57)(9, "mat-label", 25);
|
|
2460
|
+
i0.ɵɵelement(10, "i", 58);
|
|
2461
|
+
i0.ɵɵelementStart(11, "span");
|
|
2462
|
+
i0.ɵɵtext(12, "Data Final");
|
|
2463
|
+
i0.ɵɵelementEnd()();
|
|
2464
|
+
i0.ɵɵelementStart(13, "input", 80);
|
|
2465
|
+
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(_r24); const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.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(_r24); const i_r25 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.onDateInput($event, "finalDate", i_r25)); })("blur", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template_input_blur_13_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.onDateFilterChange()); });
|
|
2466
|
+
i0.ɵɵelementEnd()()()();
|
|
2467
|
+
} }
|
|
2468
|
+
function TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
2469
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
2470
|
+
i0.ɵɵelementStart(0, "div", 61)(1, "button", 62);
|
|
2471
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r26); const i_r25 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.removeFilter(i_r25)); });
|
|
2472
|
+
i0.ɵɵelement(2, "i", 63);
|
|
2473
|
+
i0.ɵɵelementEnd()();
|
|
2474
|
+
} }
|
|
2475
|
+
function TableComponent_div_0_div_3_div_9_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
2476
|
+
i0.ɵɵelementStart(0, "div", 78);
|
|
2477
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_div_3_div_9_div_1_div_1_div_1_Template, 6, 1, "div", 47)(2, TableComponent_div_0_div_3_div_9_div_1_div_1_div_2_Template, 8, 1, "div", 47)(3, TableComponent_div_0_div_3_div_9_div_1_div_1_div_3_Template, 6, 2, "div", 47)(4, TableComponent_div_0_div_3_div_9_div_1_div_1_div_4_Template, 14, 0, "div", 48)(5, TableComponent_div_0_div_3_div_9_div_1_div_1_div_5_Template, 3, 0, "div", 49);
|
|
2478
|
+
i0.ɵɵelementEnd();
|
|
2479
|
+
} if (rf & 2) {
|
|
2480
|
+
let tmp_11_0;
|
|
2481
|
+
let tmp_12_0;
|
|
2482
|
+
let tmp_13_0;
|
|
2483
|
+
const filterGroup_r22 = ctx.$implicit;
|
|
2484
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
2485
|
+
i0.ɵɵproperty("formGroup", filterGroup_r22);
|
|
2486
|
+
i0.ɵɵadvance();
|
|
2487
|
+
i0.ɵɵproperty("ngIf", ctx_r2.dropdownItems.length > 0);
|
|
2488
|
+
i0.ɵɵadvance();
|
|
2489
|
+
i0.ɵɵproperty("ngIf", ((tmp_11_0 = filterGroup_r22.get("selectFilter")) == null ? null : tmp_11_0.value == null ? null : tmp_11_0.value.arrange) === "filter");
|
|
2490
|
+
i0.ɵɵadvance();
|
|
2491
|
+
i0.ɵɵproperty("ngIf", ((tmp_12_0 = filterGroup_r22.get("selectFilter")) == null ? null : tmp_12_0.value) && ((tmp_12_0 = filterGroup_r22.get("selectFilter")) == null ? null : tmp_12_0.value.hasOwnProperty("items")));
|
|
2492
|
+
i0.ɵɵadvance();
|
|
2493
|
+
i0.ɵɵproperty("ngIf", ((tmp_13_0 = filterGroup_r22.get("selectFilter")) == null ? null : tmp_13_0.value == null ? null : tmp_13_0.value.arrange) === "filterByDate");
|
|
2494
|
+
i0.ɵɵadvance();
|
|
2495
|
+
i0.ɵɵproperty("ngIf", ctx_r2.filtersForm.length > 1);
|
|
2496
|
+
} }
|
|
2497
|
+
function TableComponent_div_0_div_3_div_9_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
2498
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
2499
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_div_3_div_9_div_1_div_1_Template, 6, 6, "div", 77);
|
|
2500
|
+
i0.ɵɵelementEnd();
|
|
2501
|
+
} if (rf & 2) {
|
|
2502
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
2503
|
+
i0.ɵɵadvance();
|
|
2504
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.filtersForm.controls);
|
|
2505
|
+
} }
|
|
2506
|
+
function TableComponent_div_0_div_3_div_9_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
2507
|
+
const _r27 = i0.ɵɵgetCurrentView();
|
|
2508
|
+
i0.ɵɵelementStart(0, "div")(1, "button", 64);
|
|
2509
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.addFilter()); });
|
|
2510
|
+
i0.ɵɵelement(2, "i", 65);
|
|
2511
|
+
i0.ɵɵtext(3, " Adicionar Filtro ");
|
|
2512
|
+
i0.ɵɵelementEnd()();
|
|
2513
|
+
} }
|
|
2514
|
+
function TableComponent_div_0_div_3_div_9_div_4_button_7_Template(rf, ctx) { if (rf & 1) {
|
|
2515
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
2516
|
+
i0.ɵɵelementStart(0, "button", 72);
|
|
2517
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.handleDownload()); });
|
|
2518
|
+
i0.ɵɵelement(1, "i", 73);
|
|
2519
|
+
i0.ɵɵtext(2, " Exportar ");
|
|
2520
|
+
i0.ɵɵelementEnd();
|
|
2521
|
+
} if (rf & 2) {
|
|
2522
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
2523
|
+
i0.ɵɵproperty("disabled", ctx_r2.dataSource && ctx_r2.dataSource.filteredData.length <= 0);
|
|
2524
|
+
} }
|
|
2525
|
+
function TableComponent_div_0_div_3_div_9_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
2526
|
+
const _r28 = i0.ɵɵgetCurrentView();
|
|
2527
|
+
i0.ɵɵelementStart(0, "div", 66)(1, "button", 67);
|
|
2528
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r28); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.search()); });
|
|
2529
|
+
i0.ɵɵelement(2, "i", 68);
|
|
2530
|
+
i0.ɵɵtext(3, " Pesquisar ");
|
|
2531
|
+
i0.ɵɵelementEnd();
|
|
2532
|
+
i0.ɵɵelementStart(4, "button", 69);
|
|
2533
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_div_3_div_9_div_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r28); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.resetFilter()); });
|
|
2534
|
+
i0.ɵɵelement(5, "i", 70);
|
|
2535
|
+
i0.ɵɵtext(6, " Resetar ");
|
|
2536
|
+
i0.ɵɵelementEnd();
|
|
2537
|
+
i0.ɵɵtemplate(7, TableComponent_div_0_div_3_div_9_div_4_button_7_Template, 3, 1, "button", 71);
|
|
2538
|
+
i0.ɵɵelementEnd();
|
|
2539
|
+
} if (rf & 2) {
|
|
2540
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
2541
|
+
i0.ɵɵadvance(7);
|
|
2542
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.download !== false && ctx_r2.downloadTable);
|
|
2543
|
+
} }
|
|
2544
|
+
function TableComponent_div_0_div_3_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
2545
|
+
i0.ɵɵelementStart(0, "div");
|
|
2546
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_div_3_div_9_div_1_Template, 2, 1, "div", 30);
|
|
2547
|
+
i0.ɵɵelementStart(2, "div", 31);
|
|
2548
|
+
i0.ɵɵtemplate(3, TableComponent_div_0_div_3_div_9_div_3_Template, 4, 0, "div", 32)(4, TableComponent_div_0_div_3_div_9_div_4_Template, 8, 1, "div", 33);
|
|
2549
|
+
i0.ɵɵelementEnd()();
|
|
2550
|
+
} if (rf & 2) {
|
|
2551
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
2552
|
+
i0.ɵɵadvance();
|
|
2553
|
+
i0.ɵɵproperty("ngIf", ctx_r2.filtersForm.controls.length > 0);
|
|
2554
|
+
i0.ɵɵadvance(2);
|
|
2555
|
+
i0.ɵɵproperty("ngIf", ctx_r2.dropdownItems.length > 0);
|
|
2556
|
+
i0.ɵɵadvance();
|
|
2557
|
+
i0.ɵɵproperty("ngIf", ctx_r2.hasFilterableColumn === true || ctx_r2.hasSortableColumn === true);
|
|
2558
|
+
} }
|
|
2559
|
+
function TableComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
2560
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "div", 23)(2, "div", 24)(3, "div", 25);
|
|
2561
|
+
i0.ɵɵelement(4, "i", 26);
|
|
2562
|
+
i0.ɵɵelementStart(5, "span", 27);
|
|
2563
|
+
i0.ɵɵtext(6, "Filtros e A\u00E7\u00F5es");
|
|
2564
|
+
i0.ɵɵelementEnd()();
|
|
2565
|
+
i0.ɵɵtemplate(7, TableComponent_div_0_div_3_button_7_Template, 3, 4, "button", 28);
|
|
2566
|
+
i0.ɵɵelementEnd()();
|
|
2567
|
+
i0.ɵɵtemplate(8, TableComponent_div_0_div_3_div_8_Template, 9, 0, "div", 29)(9, TableComponent_div_0_div_3_div_9_Template, 5, 3, "div", 32);
|
|
2568
|
+
i0.ɵɵelementEnd();
|
|
2569
|
+
} if (rf & 2) {
|
|
2570
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2571
|
+
i0.ɵɵadvance(7);
|
|
2572
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.actionButton && ctx_r2.data.actionButton.condition);
|
|
2573
|
+
i0.ɵɵadvance();
|
|
2574
|
+
i0.ɵɵproperty("ngIf", ctx_r2.hasFilterableColumn === true && ctx_r2.data.showSimpleSearch !== false);
|
|
2575
|
+
i0.ɵɵadvance();
|
|
2576
|
+
i0.ɵɵproperty("ngIf", ctx_r2.dropdownItems.length > 0);
|
|
2577
|
+
} }
|
|
2578
|
+
function TableComponent_div_0_lib_table_tabs_5_Template(rf, ctx) { if (rf & 1) {
|
|
2579
|
+
const _r30 = i0.ɵɵgetCurrentView();
|
|
2580
|
+
i0.ɵɵelementStart(0, "lib-table-tabs", 81);
|
|
2581
|
+
i0.ɵɵlistener("tabSelected", function TableComponent_div_0_lib_table_tabs_5_Template_lib_table_tabs_tabSelected_0_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onTabSelected($event)); });
|
|
2582
|
+
i0.ɵɵelementEnd();
|
|
2583
|
+
} if (rf & 2) {
|
|
2584
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2585
|
+
i0.ɵɵproperty("tabsData", ctx_r2.data.tabs.tabsData)("selectedTab", ctx_r2.selectedTab);
|
|
2586
|
+
} }
|
|
2587
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_th_1_Template(rf, ctx) { if (rf & 1) {
|
|
2588
|
+
i0.ɵɵelementStart(0, "th", 87);
|
|
2589
|
+
i0.ɵɵtext(1);
|
|
2590
|
+
i0.ɵɵelementEnd();
|
|
2591
|
+
} if (rf & 2) {
|
|
2592
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2593
|
+
i0.ɵɵadvance();
|
|
2594
|
+
i0.ɵɵtextInterpolate1(" ", col_r31.title, " ");
|
|
2595
|
+
} }
|
|
2596
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_th_2_Template(rf, ctx) { if (rf & 1) {
|
|
2597
|
+
i0.ɵɵelementStart(0, "th", 88);
|
|
2598
|
+
i0.ɵɵtext(1);
|
|
2599
|
+
i0.ɵɵelementEnd();
|
|
2600
|
+
} if (rf & 2) {
|
|
2601
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2602
|
+
i0.ɵɵadvance();
|
|
2603
|
+
i0.ɵɵtextInterpolate1(" ", col_r31.title, " ");
|
|
2604
|
+
} }
|
|
2605
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a_1_Template(rf, ctx) { if (rf & 1) {
|
|
2606
|
+
i0.ɵɵelementStart(0, "a", 93);
|
|
2607
|
+
i0.ɵɵtext(1);
|
|
2608
|
+
i0.ɵɵelementEnd();
|
|
2609
|
+
} if (rf & 2) {
|
|
2610
|
+
const row_r33 = i0.ɵɵnextContext(3).$implicit;
|
|
2611
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2612
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2613
|
+
i0.ɵɵproperty("href", row_r33[col_r31.property], i0.ɵɵsanitizeUrl);
|
|
2614
|
+
i0.ɵɵadvance();
|
|
2615
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.getDisplayValue(col_r31, row_r33), " ");
|
|
2616
|
+
} }
|
|
2617
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a_2_Template(rf, ctx) { if (rf & 1) {
|
|
2618
|
+
i0.ɵɵelementStart(0, "a", 93);
|
|
2619
|
+
i0.ɵɵtext(1);
|
|
2620
|
+
i0.ɵɵelementEnd();
|
|
2621
|
+
} if (rf & 2) {
|
|
2622
|
+
const row_r33 = i0.ɵɵnextContext(3).$implicit;
|
|
2623
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2624
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2625
|
+
i0.ɵɵproperty("href", col_r31.hasLink, i0.ɵɵsanitizeUrl);
|
|
2626
|
+
i0.ɵɵadvance();
|
|
2627
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.getDisplayValue(col_r31, row_r33), " ");
|
|
2628
|
+
} }
|
|
2629
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
2630
|
+
i0.ɵɵelementStart(0, "span");
|
|
2631
|
+
i0.ɵɵtext(1);
|
|
2632
|
+
i0.ɵɵelementEnd();
|
|
2633
|
+
} if (rf & 2) {
|
|
2634
|
+
const row_r33 = i0.ɵɵnextContext(3).$implicit;
|
|
2635
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2636
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2637
|
+
i0.ɵɵadvance();
|
|
2638
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.getDisplayValue(col_r31, row_r33), " ");
|
|
2639
|
+
} }
|
|
2640
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
2641
|
+
i0.ɵɵelementStart(0, "span");
|
|
2642
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a_1_Template, 2, 2, "a", 92)(2, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_a_2_Template, 2, 2, "a", 92)(3, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_span_3_Template, 2, 1, "span", 32);
|
|
2643
|
+
i0.ɵɵelementEnd();
|
|
2644
|
+
} if (rf & 2) {
|
|
2645
|
+
const col_r31 = i0.ɵɵnextContext(4).$implicit;
|
|
2646
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2647
|
+
i0.ɵɵadvance();
|
|
2648
|
+
i0.ɵɵproperty("ngIf", col_r31.hasLink === true);
|
|
2649
|
+
i0.ɵɵadvance();
|
|
2650
|
+
i0.ɵɵproperty("ngIf", col_r31.hasLink && ctx_r2.isString(col_r31.hasLink));
|
|
2651
|
+
i0.ɵɵadvance();
|
|
2652
|
+
i0.ɵɵproperty("ngIf", col_r31.hasLink !== true && !ctx_r2.isString(col_r31.hasLink));
|
|
2653
|
+
} }
|
|
2654
|
+
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) {
|
|
2655
|
+
i0.ɵɵelementStart(0, "a", 93);
|
|
2656
|
+
i0.ɵɵtext(1);
|
|
2657
|
+
i0.ɵɵelementEnd();
|
|
2658
|
+
} if (rf & 2) {
|
|
2659
|
+
const row_r33 = i0.ɵɵnextContext(3).$implicit;
|
|
2660
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2661
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2662
|
+
i0.ɵɵproperty("href", row_r33[col_r31.property], i0.ɵɵsanitizeUrl);
|
|
2663
|
+
i0.ɵɵadvance();
|
|
2664
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.getDisplayValue(col_r31, row_r33, true), " ");
|
|
2665
|
+
} }
|
|
2666
|
+
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) {
|
|
2667
|
+
i0.ɵɵelementStart(0, "a", 93);
|
|
2668
|
+
i0.ɵɵtext(1);
|
|
2669
|
+
i0.ɵɵelementEnd();
|
|
2670
|
+
} if (rf & 2) {
|
|
2671
|
+
const row_r33 = i0.ɵɵnextContext(3).$implicit;
|
|
2672
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2673
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2674
|
+
i0.ɵɵproperty("href", col_r31.hasLink, i0.ɵɵsanitizeUrl);
|
|
2675
|
+
i0.ɵɵadvance();
|
|
2676
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.getDisplayValue(col_r31, row_r33, true), " ");
|
|
2677
|
+
} }
|
|
2678
|
+
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) {
|
|
2679
|
+
i0.ɵɵelementStart(0, "span");
|
|
2680
|
+
i0.ɵɵtext(1);
|
|
2681
|
+
i0.ɵɵelementEnd();
|
|
2682
|
+
} if (rf & 2) {
|
|
2683
|
+
const row_r33 = i0.ɵɵnextContext(3).$implicit;
|
|
2684
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2685
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2686
|
+
i0.ɵɵadvance();
|
|
2687
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.getDisplayValue(col_r31, row_r33, true), " ");
|
|
2688
|
+
} }
|
|
2689
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
2690
|
+
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", 92)(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_a_1_Template, 2, 2, "a", 92)(2, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_ng_template_3_span_2_Template, 2, 1, "span", 32);
|
|
2691
|
+
} if (rf & 2) {
|
|
2692
|
+
const col_r31 = i0.ɵɵnextContext(4).$implicit;
|
|
2693
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2694
|
+
i0.ɵɵproperty("ngIf", col_r31.hasLink === true);
|
|
2695
|
+
i0.ɵɵadvance();
|
|
2696
|
+
i0.ɵɵproperty("ngIf", col_r31.hasLink && ctx_r2.isString(col_r31.hasLink));
|
|
2697
|
+
i0.ɵɵadvance();
|
|
2698
|
+
i0.ɵɵproperty("ngIf", col_r31.hasLink !== true && !ctx_r2.isString(col_r31.hasLink));
|
|
2699
|
+
} }
|
|
2700
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
2701
|
+
i0.ɵɵelementStart(0, "span");
|
|
2702
|
+
i0.ɵɵelementContainerStart(1);
|
|
2703
|
+
i0.ɵɵtemplate(2, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_span_2_Template, 4, 3, "span", 91);
|
|
2704
|
+
i0.ɵɵelementContainerEnd();
|
|
2705
|
+
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, 4, i0.ɵɵtemplateRefExtractor);
|
|
2706
|
+
i0.ɵɵelementEnd();
|
|
2707
|
+
} if (rf & 2) {
|
|
2708
|
+
const withinLimit_r34 = i0.ɵɵreference(4);
|
|
2709
|
+
const row_r33 = i0.ɵɵnextContext().$implicit;
|
|
2710
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2711
|
+
i0.ɵɵadvance(2);
|
|
2712
|
+
i0.ɵɵproperty("ngIf", col_r31.charLimit && row_r33[col_r31.property] && row_r33[col_r31.property].length > col_r31.charLimit)("ngIfElse", withinLimit_r34);
|
|
2713
|
+
} }
|
|
2714
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_mat_spinner_1_Template(rf, ctx) { if (rf & 1) {
|
|
2715
|
+
i0.ɵɵelement(0, "mat-spinner", 97);
|
|
2716
|
+
} if (rf & 2) {
|
|
2717
|
+
i0.ɵɵproperty("diameter", 32);
|
|
2718
|
+
} }
|
|
2719
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
2720
|
+
const _r35 = i0.ɵɵgetCurrentView();
|
|
2721
|
+
i0.ɵɵelementStart(0, "div", 94);
|
|
2722
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_mat_spinner_1_Template, 1, 1, "mat-spinner", 95);
|
|
2723
|
+
i0.ɵɵelementStart(2, "img", 96);
|
|
2724
|
+
i0.ɵɵlistener("load", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template_img_load_2_listener() { i0.ɵɵrestoreView(_r35); const row_r33 = i0.ɵɵnextContext().$implicit; const col_r31 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onImageLoad(row_r33, col_r31)); })("error", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template_img_error_2_listener($event) { i0.ɵɵrestoreView(_r35); const row_r33 = i0.ɵɵnextContext().$implicit; const col_r31 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onImageError($event, row_r33, col_r31, col_r31.image.default)); });
|
|
2725
|
+
i0.ɵɵelementEnd()();
|
|
2726
|
+
} if (rf & 2) {
|
|
2727
|
+
const row_r33 = i0.ɵɵnextContext().$implicit;
|
|
2728
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2729
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2730
|
+
i0.ɵɵadvance();
|
|
2731
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isImageLoading(row_r33, col_r31));
|
|
2732
|
+
i0.ɵɵadvance();
|
|
2733
|
+
i0.ɵɵclassProp("opacity-0", ctx_r2.isImageLoading(row_r33, col_r31));
|
|
2734
|
+
i0.ɵɵproperty("src", col_r31.image.path + "/" + row_r33[col_r31.property], i0.ɵɵsanitizeUrl)("ngClass", col_r31.image.class);
|
|
2735
|
+
} }
|
|
2736
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_mat_spinner_1_Template(rf, ctx) { if (rf & 1) {
|
|
2737
|
+
i0.ɵɵelement(0, "mat-spinner", 97);
|
|
2738
|
+
} if (rf & 2) {
|
|
2739
|
+
i0.ɵɵproperty("diameter", 32);
|
|
2740
|
+
} }
|
|
2741
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
2742
|
+
const _r36 = i0.ɵɵgetCurrentView();
|
|
2743
|
+
i0.ɵɵelementStart(0, "div", 94);
|
|
2744
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_mat_spinner_1_Template, 1, 1, "mat-spinner", 95);
|
|
2745
|
+
i0.ɵɵelementStart(2, "img", 96);
|
|
2746
|
+
i0.ɵɵlistener("load", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template_img_load_2_listener() { i0.ɵɵrestoreView(_r36); const row_r33 = i0.ɵɵnextContext().$implicit; const col_r31 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onImageLoad(row_r33, col_r31)); })("error", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template_img_error_2_listener($event) { i0.ɵɵrestoreView(_r36); const row_r33 = i0.ɵɵnextContext().$implicit; const col_r31 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onImageError($event, row_r33, col_r31, col_r31.image.default)); });
|
|
2747
|
+
i0.ɵɵelementEnd()();
|
|
2748
|
+
} if (rf & 2) {
|
|
2749
|
+
const row_r33 = i0.ɵɵnextContext().$implicit;
|
|
2750
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2751
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2752
|
+
i0.ɵɵadvance();
|
|
2753
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isImageLoading(row_r33, col_r31));
|
|
2754
|
+
i0.ɵɵadvance();
|
|
2755
|
+
i0.ɵɵclassProp("opacity-0", ctx_r2.isImageLoading(row_r33, col_r31));
|
|
2756
|
+
i0.ɵɵproperty("src", row_r33[col_r31.property], i0.ɵɵsanitizeUrl)("ngClass", col_r31.image.class);
|
|
2757
|
+
} }
|
|
2758
|
+
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) {
|
|
2759
|
+
i0.ɵɵelementStart(0, "span", 101);
|
|
2760
|
+
i0.ɵɵtext(1);
|
|
2761
|
+
i0.ɵɵelementEnd();
|
|
2762
|
+
} if (rf & 2) {
|
|
2763
|
+
const iconClass_r38 = i0.ɵɵnextContext().$implicit;
|
|
2764
|
+
i0.ɵɵproperty("ngClass", iconClass_r38.class);
|
|
2765
|
+
i0.ɵɵadvance();
|
|
2766
|
+
i0.ɵɵtextInterpolate(iconClass_r38.text);
|
|
2767
|
+
} }
|
|
2768
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
2769
|
+
const _r37 = i0.ɵɵgetCurrentView();
|
|
2770
|
+
i0.ɵɵelementStart(0, "button", 99);
|
|
2771
|
+
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 iconClass_r38 = i0.ɵɵrestoreView(_r37).$implicit; const row_r33 = i0.ɵɵnextContext(2).$implicit; return i0.ɵɵresetView(iconClass_r38.buttonMethod ? iconClass_r38.buttonMethod(row_r33, $event) : $event.stopPropagation()); });
|
|
2772
|
+
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", 100);
|
|
2773
|
+
i0.ɵɵelementEnd();
|
|
2774
|
+
} if (rf & 2) {
|
|
2775
|
+
const iconClass_r38 = ctx.$implicit;
|
|
2776
|
+
const row_r33 = i0.ɵɵnextContext(2).$implicit;
|
|
2777
|
+
i0.ɵɵadvance();
|
|
2778
|
+
i0.ɵɵproperty("ngIf", iconClass_r38.condition === undefined || iconClass_r38.condition !== undefined && iconClass_r38.condition(row_r33));
|
|
2779
|
+
} }
|
|
2780
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
2781
|
+
i0.ɵɵelementContainerStart(0);
|
|
2782
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_button_1_Template, 2, 1, "button", 98);
|
|
2783
|
+
i0.ɵɵelementContainerEnd();
|
|
2784
|
+
} if (rf & 2) {
|
|
2785
|
+
const col_r31 = i0.ɵɵnextContext(3).$implicit;
|
|
2786
|
+
i0.ɵɵadvance();
|
|
2787
|
+
i0.ɵɵproperty("ngForOf", col_r31.iconClass);
|
|
2788
|
+
} }
|
|
2789
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template(rf, ctx) { if (rf & 1) {
|
|
2790
|
+
const _r32 = i0.ɵɵgetCurrentView();
|
|
2791
|
+
i0.ɵɵelementStart(0, "td", 89);
|
|
2792
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_click_0_listener() { const row_r33 = i0.ɵɵrestoreView(_r32).$implicit; const col_r31 = i0.ɵɵnextContext(2).$implicit; return i0.ɵɵresetView(col_r31.method ? col_r31.method(row_r33) : null); })("mouseenter", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mouseenter_0_listener($event) { const row_r33 = i0.ɵɵrestoreView(_r32).$implicit; const col_r31 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCellMouseEnter($event, row_r33, col_r31)); })("mouseleave", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mouseleave_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.onCellMouseLeave()); })("mousemove", function TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template_td_mousemove_0_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.onCellMouseMove($event)); });
|
|
2793
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_td_3_span_1_Template, 5, 2, "span", 32)(2, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_2_Template, 3, 5, "div", 90)(3, TableComponent_div_0_ng_container_9_ng_container_1_td_3_div_3_Template, 3, 5, "div", 90)(4, TableComponent_div_0_ng_container_9_ng_container_1_td_3_ng_container_4_Template, 2, 1, "ng-container", 32);
|
|
2794
|
+
i0.ɵɵelementEnd();
|
|
2795
|
+
} if (rf & 2) {
|
|
2796
|
+
const col_r31 = i0.ɵɵnextContext(2).$implicit;
|
|
2797
|
+
i0.ɵɵadvance();
|
|
2798
|
+
i0.ɵɵproperty("ngIf", !col_r31.image && !col_r31.iconClass && !col_r31.method);
|
|
2799
|
+
i0.ɵɵadvance();
|
|
2800
|
+
i0.ɵɵproperty("ngIf", col_r31.image && col_r31.image.path && !col_r31.iconClass && !col_r31.method);
|
|
2801
|
+
i0.ɵɵadvance();
|
|
2802
|
+
i0.ɵɵproperty("ngIf", col_r31.image && col_r31.image.url && !col_r31.iconClass && !col_r31.method);
|
|
2803
|
+
i0.ɵɵadvance();
|
|
2804
|
+
i0.ɵɵproperty("ngIf", col_r31.iconClass);
|
|
2805
|
+
} }
|
|
2806
|
+
function TableComponent_div_0_ng_container_9_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
2807
|
+
i0.ɵɵelementContainerStart(0);
|
|
2808
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_th_1_Template, 2, 1, "th", 84)(2, TableComponent_div_0_ng_container_9_ng_container_1_th_2_Template, 2, 1, "th", 85)(3, TableComponent_div_0_ng_container_9_ng_container_1_td_3_Template, 5, 4, "td", 86);
|
|
2809
|
+
i0.ɵɵelementContainerEnd();
|
|
2810
|
+
} if (rf & 2) {
|
|
2811
|
+
const col_r31 = i0.ɵɵnextContext().$implicit;
|
|
2812
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2813
|
+
i0.ɵɵadvance();
|
|
2814
|
+
i0.ɵɵproperty("ngIf", !col_r31.isSortable || ctx_r2.data.pagination === true);
|
|
2815
|
+
i0.ɵɵadvance();
|
|
2816
|
+
i0.ɵɵproperty("ngIf", col_r31.isSortable && ctx_r2.data.pagination === false);
|
|
2817
|
+
} }
|
|
2818
|
+
function TableComponent_div_0_ng_container_9_Template(rf, ctx) { if (rf & 1) {
|
|
2819
|
+
i0.ɵɵelementContainerStart(0, 82);
|
|
2820
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_ng_container_9_ng_container_1_Template, 4, 2, "ng-container", 83);
|
|
2821
|
+
i0.ɵɵelementContainerEnd();
|
|
2822
|
+
} if (rf & 2) {
|
|
2823
|
+
const col_r31 = ctx.$implicit;
|
|
2824
|
+
i0.ɵɵproperty("matColumnDef", i0.ɵɵinterpolate(col_r31.property));
|
|
2825
|
+
} }
|
|
2826
|
+
function TableComponent_div_0_tr_10_Template(rf, ctx) { if (rf & 1) {
|
|
2827
|
+
i0.ɵɵelement(0, "tr", 102);
|
|
2828
|
+
} }
|
|
2829
|
+
function TableComponent_div_0_tr_11_Template(rf, ctx) { if (rf & 1) {
|
|
2830
|
+
const _r39 = i0.ɵɵgetCurrentView();
|
|
2831
|
+
i0.ɵɵelementStart(0, "tr", 103);
|
|
2832
|
+
i0.ɵɵlistener("click", function TableComponent_div_0_tr_11_Template_tr_click_0_listener() { const row_r40 = i0.ɵɵrestoreView(_r39).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.goToDetails(row_r40)); });
|
|
2833
|
+
i0.ɵɵelementEnd();
|
|
2834
|
+
} if (rf & 2) {
|
|
2835
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2836
|
+
i0.ɵɵproperty("ngClass", ctx_r2.getTableRowNgClass());
|
|
2837
|
+
} }
|
|
2838
|
+
function TableComponent_div_0_tr_12_td_1_Template(rf, ctx) { if (rf & 1) {
|
|
2839
|
+
i0.ɵɵelementStart(0, "td", 106);
|
|
2840
|
+
i0.ɵɵtext(1, " Nenhum resultado encontrado para a busca ");
|
|
2841
|
+
i0.ɵɵelementEnd();
|
|
2842
|
+
} }
|
|
2843
|
+
function TableComponent_div_0_tr_12_Template(rf, ctx) { if (rf & 1) {
|
|
2844
|
+
i0.ɵɵelementStart(0, "tr", 104);
|
|
2845
|
+
i0.ɵɵtemplate(1, TableComponent_div_0_tr_12_td_1_Template, 2, 0, "td", 105);
|
|
2846
|
+
i0.ɵɵpipe(2, "async");
|
|
2847
|
+
i0.ɵɵelementEnd();
|
|
2848
|
+
} if (rf & 2) {
|
|
2849
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2850
|
+
i0.ɵɵadvance();
|
|
2851
|
+
i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(2, 1, ctx_r2.isLoading$));
|
|
2852
|
+
} }
|
|
2853
|
+
function TableComponent_div_0_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
2854
|
+
i0.ɵɵelementStart(0, "div", 107);
|
|
2855
|
+
i0.ɵɵelement(1, "mat-spinner");
|
|
2856
|
+
i0.ɵɵelementEnd();
|
|
2857
|
+
} }
|
|
2858
|
+
function TableComponent_div_0_div_18_Template(rf, ctx) { if (rf & 1) {
|
|
2859
|
+
i0.ɵɵelementStart(0, "div", 108);
|
|
2860
|
+
i0.ɵɵtext(1);
|
|
2861
|
+
i0.ɵɵelementEnd();
|
|
2862
|
+
} if (rf & 2) {
|
|
2863
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
2864
|
+
i0.ɵɵadvance();
|
|
2865
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.currentPageNumber, " ");
|
|
2866
|
+
} }
|
|
2867
|
+
function TableComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
2868
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
2869
|
+
i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
|
|
2870
|
+
i0.ɵɵtemplate(2, TableComponent_div_0_div_2_Template, 13, 5, "div", 8)(3, TableComponent_div_0_div_3_Template, 10, 3, "div", 8);
|
|
2871
|
+
i0.ɵɵelementStart(4, "div", 9);
|
|
2872
|
+
i0.ɵɵtemplate(5, TableComponent_div_0_lib_table_tabs_5_Template, 1, 2, "lib-table-tabs", 10);
|
|
2873
|
+
i0.ɵɵelementStart(6, "div", 11)(7, "table", 12, 0);
|
|
2874
|
+
i0.ɵɵtemplate(9, TableComponent_div_0_ng_container_9_Template, 2, 2, "ng-container", 13)(10, TableComponent_div_0_tr_10_Template, 1, 0, "tr", 14)(11, TableComponent_div_0_tr_11_Template, 1, 1, "tr", 15)(12, TableComponent_div_0_tr_12_Template, 3, 3, "tr", 16);
|
|
2875
|
+
i0.ɵɵelementEnd();
|
|
2876
|
+
i0.ɵɵtemplate(13, TableComponent_div_0_div_13_Template, 2, 0, "div", 17);
|
|
2877
|
+
i0.ɵɵpipe(14, "async");
|
|
2878
|
+
i0.ɵɵelementStart(15, "div", 18)(16, "mat-paginator", 19, 1);
|
|
2879
|
+
i0.ɵɵlistener("page", function TableComponent_div_0_Template_mat_paginator_page_16_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onPageChange($event)); });
|
|
2880
|
+
i0.ɵɵelementEnd();
|
|
2881
|
+
i0.ɵɵtemplate(18, TableComponent_div_0_div_18_Template, 2, 1, "div", 20);
|
|
2882
|
+
i0.ɵɵpipe(19, "async");
|
|
2883
|
+
i0.ɵɵelementEnd()()()();
|
|
2884
|
+
i0.ɵɵelement(20, "lib-table-tooltip", 21);
|
|
2885
|
+
i0.ɵɵelementEnd();
|
|
2886
|
+
} if (rf & 2) {
|
|
2887
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
2888
|
+
i0.ɵɵadvance(2);
|
|
2889
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.pagination === true && (ctx_r2.dropdownItems.length > 0 || ctx_r2.sortableDropdownItems.length > 0 || ctx_r2.data.actionButton));
|
|
2890
|
+
i0.ɵɵadvance();
|
|
2891
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.pagination === false && (ctx_r2.hasFilterableColumn === true || ctx_r2.dropdownItems.length > 0 || ctx_r2.data.actionButton));
|
|
2892
|
+
i0.ɵɵadvance(2);
|
|
2893
|
+
i0.ɵɵproperty("ngIf", ctx_r2.data.tabs && ctx_r2.data.tabs.tabsData && ctx_r2.data.tabs.tabsData.length > 0);
|
|
2894
|
+
i0.ɵɵadvance(2);
|
|
2895
|
+
i0.ɵɵproperty("dataSource", ctx_r2.dataSource);
|
|
2896
|
+
i0.ɵɵadvance(2);
|
|
2897
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.data.displayedColumns)("ngForTrackBy", ctx_r2.trackByProperty);
|
|
2898
|
+
i0.ɵɵadvance();
|
|
2899
|
+
i0.ɵɵproperty("matHeaderRowDef", ctx_r2.columnProperties);
|
|
2900
|
+
i0.ɵɵadvance();
|
|
2901
|
+
i0.ɵɵproperty("matRowDefColumns", ctx_r2.columnProperties);
|
|
2902
|
+
i0.ɵɵadvance(2);
|
|
2903
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(14, 16, ctx_r2.isLoading$));
|
|
2904
|
+
i0.ɵɵadvance(3);
|
|
2905
|
+
i0.ɵɵproperty("pageSizeOptions", i0.ɵɵpureFunction0(20, _c0))("pageSize", ctx_r2.pageSize)("length", ctx_r2.totalItems)("ngClass", ctx_r2.getPaginatorNgClass());
|
|
2906
|
+
i0.ɵɵadvance(2);
|
|
2907
|
+
i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(19, 18, ctx_r2.isLoading$) && (ctx_r2.dataSource == null ? null : ctx_r2.dataSource.data) && ctx_r2.dataSource.data.length > 0 && (ctx_r2.data == null ? null : ctx_r2.data.filterFn));
|
|
2908
|
+
i0.ɵɵadvance(2);
|
|
2909
|
+
i0.ɵɵproperty("state", ctx_r2.tooltipState)("styles", ctx_r2.getTooltipStyles());
|
|
2910
|
+
} }
|
|
2025
2911
|
class TableComponent {
|
|
2026
2912
|
// CONSTRUCTOR
|
|
2027
2913
|
constructor(router, tableService, filterService, tooltipService, paginationService, firestore, el, cdr) {
|
|
@@ -2704,47 +3590,40 @@ class TableComponent {
|
|
|
2704
3590
|
}
|
|
2705
3591
|
}
|
|
2706
3592
|
}
|
|
2707
|
-
static { this.ɵfac =
|
|
2708
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: TableComponent, isStandalone: false, selector: "lib-table", inputs: { data: "data", downloadTable: "downloadTable" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, 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:#00000026;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"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i9.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatLabel, selector: "mat-label" }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i13.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i14.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i14.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i15.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i16.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i17.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: TableTabsComponent, selector: "lib-table-tabs", inputs: ["tabsData", "selectedTab"], outputs: ["tabSelected"] }, { kind: "component", type: TableTooltipComponent, selector: "lib-table-tooltip", inputs: ["state", "styles"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3593
|
+
static { this.ɵfac = function TableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableComponent)(i0.ɵɵdirectiveInject(i1$2.Router), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(TooltipService), i0.ɵɵdirectiveInject(PaginationService), i0.ɵɵdirectiveInject(i1.AngularFirestore), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
3594
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["lib-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
|
|
3595
|
+
i0.ɵɵviewQuery(MatPaginator, 5);
|
|
3596
|
+
i0.ɵɵviewQuery(MatSort, 5);
|
|
3597
|
+
} if (rf & 2) {
|
|
3598
|
+
let _t;
|
|
3599
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.paginator = _t.first);
|
|
3600
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
|
|
3601
|
+
} }, inputs: { data: "data", downloadTable: "downloadTable" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["sort", "matSort"], ["paginator", ""], ["input", ""], ["filterInput", ""], ["withinLimit", ""], ["class", "card-body", 4, "ngIf"], [1, "card-body"], [1, "flex", "flex-col", "justify-between", "gap-6"], ["class", "rounded-xl border border-gray-200 bg-white p-4 shadow-lg", 4, "ngIf"], [1, "flex", "flex-col"], [3, "tabsData", "selectedTab", "tabSelected", 4, "ngIf"], [1, "mat-elevation-z8", "w-full", "overflow-x-auto", "rounded-xl", "table-container"], ["mat-table", "", "matSort", "", "matSortActive", "createdAt", "matSortDirection", "desc", 3, "dataSource"], [3, "matColumnDef", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 3, "ngClass", "click", 4, "matRowDef", "matRowDefColumns"], ["class", "mat-row", 4, "matNoDataRow"], ["class", "flex justify-center", 4, "ngIf"], [1, "paginator-container"], ["showFirstLastButtons", "", "aria-label", "Select page of periodic elements", 3, "page", "pageSizeOptions", "pageSize", "length", "ngClass"], ["class", "page-number-display", 4, "ngIf"], [3, "state", "styles"], [1, "rounded-xl", "border", "border-gray-200", "bg-white", "p-4", "shadow-lg"], [1, "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"], [1, "flex", "flex-wrap", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2"], [1, "fa", "fa-filter", "text-xl", "text-blue-500"], [1, "text-lg", "font-semibold", "text-gray-700"], [3, "ngClass", "routerLink", "click", 4, "ngIf"], ["class", "mb-4", 4, "ngIf"], ["class", "mb-4 space-y-3", 4, "ngIf"], [1, "-mb-2", "flex", "items-start", "justify-between", "gap-4", "border-t", "border-gray-200", "pt-4"], [4, "ngIf"], ["class", "flex flex-wrap gap-3 self-start sm:self-auto", 4, "ngIf"], [3, "click", "ngClass", "routerLink"], [3, "class", 4, "ngIf"], [1, "mb-4"], [1, "flex", "flex-wrap", "items-center", "gap-3", "p-2"], [1, "min-w-[200px]", "flex-1"], ["appearance", "outline", 1, "w-full"], [1, "fa", "fa-sort-alpha-down", "text-cyan-600"], ["placeholder", "Selecione...", 3, "formControl"], [3, "value", 4, "ngFor", "ngForOf"], [3, "value"], [1, "mb-4", "space-y-3"], ["class", "flex flex-wrap items-center gap-3 p-2", 3, "formGroup", 4, "ngFor", "ngForOf"], [1, "flex", "flex-wrap", "items-center", "gap-3", "p-2", 3, "formGroup"], ["class", "min-w-[200px] flex-1", 4, "ngIf"], ["class", "min-w-[340px] flex-auto", 4, "ngIf"], ["class", "ml-auto flex-shrink-0", 4, "ngIf"], ["placeholder", "Selecione o tipo...", "formControlName", "selectFilter", 3, "selectionChange"], [1, "text-sm", "text-blue-500"], [1, "fa", "fa-search", "text-gray-400"], ["formControlName", "typeFilter", "matInput", "", "placeholder", "Digite para filtrar...", 3, "keyup.enter"], ["placeholder", "Selecione...", "formControlName", "selectItem", "multiple", ""], [1, "min-w-[340px]", "flex-auto"], [1, "flex", "flex-col", "items-stretch", "gap-3", "sm:flex-row", "sm:items-center"], ["appearance", "outline", 1, "flex-1"], [1, "fa", "fa-calendar", "text-gray-400"], ["type", "text", "matInput", "", "formControlName", "initialDate", "placeholder", "DD/MM/AAAA", "maxlength", "10", 3, "keydown.enter", "input"], ["type", "text", "matInput", "", "formControlName", "finalDate", "placeholder", "DD/MM/AAAA", "maxlength", "10", 3, "keydown.enter", "input"], [1, "ml-auto", "flex-shrink-0"], ["matTooltip", "Remover filtro", 1, "flex", "h-10", "w-10", "items-center", "justify-center", "rounded-full", "transition-colors", "duration-300", "hover:bg-red-100", 3, "click"], [1, "fa", "fa-trash", "text-red-500", "hover:text-red-600"], ["matTooltip", "Adicionar novo filtro", 1, "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", 3, "click"], [1, "fa", "fa-plus", "mr-2"], [1, "flex", "flex-wrap", "gap-3", "self-start", "sm:self-auto"], ["type", "button", "matTooltip", "Aplicar filtros", 1, "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", 3, "click"], [1, "fa", "fa-search"], ["matTooltip", "Limpar filtros", 1, "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", 3, "click"], [1, "fas", "fa-redo-alt"], ["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", "matTooltipPosition", "above", "matTooltip", "Exportar Tabela", 3, "disabled", "click", 4, "ngIf"], ["matTooltipPosition", "above", "matTooltip", "Exportar Tabela", 1, "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", 3, "click", "disabled"], [1, "fa", "fa-download"], [1, "fa", "fa-search", "text-blue-500"], ["matInput", "", "placeholder", "Digite para filtrar...", 3, "keyup.enter", "keyup"], ["matSuffix", "", 1, "text-gray-500"], ["class", "flex flex-wrap items-center gap-3", 3, "formGroup", 4, "ngFor", "ngForOf"], [1, "flex", "flex-wrap", "items-center", "gap-3", 3, "formGroup"], ["type", "text", "matInput", "", "formControlName", "initialDate", "placeholder", "DD/MM/AAAA", "maxlength", "10", 3, "keydown.enter", "input", "blur"], ["type", "text", "matInput", "", "formControlName", "finalDate", "placeholder", "DD/MM/AAAA", "maxlength", "10", 3, "keydown.enter", "input", "blur"], [3, "tabSelected", "tabsData", "selectedTab"], [3, "matColumnDef"], [4, "matHeaderCellDef"], ["mat-header-cell", "", 4, "ngIf"], ["mat-header-cell", "", "mat-sort-header", "", 4, "ngIf"], ["mat-cell", "", 3, "click", "mouseenter", "mouseleave", "mousemove", 4, "matCellDef"], ["mat-header-cell", ""], ["mat-header-cell", "", "mat-sort-header", ""], ["mat-cell", "", 3, "click", "mouseenter", "mouseleave", "mousemove"], ["class", "relative inline-block", 4, "ngIf"], [4, "ngIf", "ngIfElse"], ["target", "_blank", 3, "href", 4, "ngIf"], ["target", "_blank", 3, "href"], [1, "relative", "inline-block"], ["class", "absolute inset-0 m-auto", 3, "diameter", 4, "ngIf"], ["alt", "", 3, "load", "error", "src", "ngClass"], [1, "absolute", "inset-0", "m-auto", 3, "diameter"], [3, "click", 4, "ngFor", "ngForOf"], [3, "click"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"], ["mat-header-row", ""], ["mat-row", "", 3, "click", "ngClass"], [1, "mat-row"], ["class", "mat-cell p-4", "colspan", "4", 4, "ngIf"], ["colspan", "4", 1, "mat-cell", "p-4"], [1, "flex", "justify-center"], [1, "page-number-display"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
|
|
3602
|
+
i0.ɵɵtemplate(0, TableComponent_div_0_Template, 21, 21, "div", 5);
|
|
3603
|
+
} if (rf & 2) {
|
|
3604
|
+
i0.ɵɵproperty("ngIf", ctx.data);
|
|
3605
|
+
} }, 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:#00000026;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 }); }
|
|
2709
3606
|
}
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
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:#00000026;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"] }]
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
3607
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
|
|
3608
|
+
type: Component,
|
|
3609
|
+
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:#00000026;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"] }]
|
|
3610
|
+
}], () => [{ type: i1$2.Router }, { type: TableService }, { type: FilterService }, { type: TooltipService }, { type: PaginationService }, { type: i1.AngularFirestore }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], { data: [{
|
|
3611
|
+
type: Input
|
|
3612
|
+
}], downloadTable: [{
|
|
3613
|
+
type: Input
|
|
3614
|
+
}], paginator: [{
|
|
3615
|
+
type: ViewChild,
|
|
3616
|
+
args: [MatPaginator]
|
|
3617
|
+
}], sort: [{
|
|
3618
|
+
type: ViewChild,
|
|
3619
|
+
args: [MatSort]
|
|
3620
|
+
}] }); })();
|
|
3621
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent", filePath: "lib/components/table/table.component.ts", lineNumber: 64 }); })();
|
|
2724
3622
|
|
|
2725
3623
|
class NgFirebaseTableKxpModule {
|
|
2726
|
-
static { this.ɵfac =
|
|
2727
|
-
static { this.ɵmod = i0.ɵɵ
|
|
2728
|
-
|
|
2729
|
-
TableTabsComponent,
|
|
2730
|
-
TableTooltipComponent], imports: [CommonModule,
|
|
2731
|
-
ReactiveFormsModule,
|
|
2732
|
-
FormsModule,
|
|
2733
|
-
RouterModule,
|
|
2734
|
-
MatTableModule,
|
|
2735
|
-
MatPaginatorModule,
|
|
2736
|
-
MatSortModule,
|
|
2737
|
-
MatFormFieldModule,
|
|
2738
|
-
MatInputModule,
|
|
2739
|
-
MatSelectModule,
|
|
2740
|
-
MatTooltipModule,
|
|
2741
|
-
MatProgressSpinnerModule,
|
|
2742
|
-
MatIconModule,
|
|
2743
|
-
MatDialogModule], exports: [NgFirebaseTableKxpComponent,
|
|
2744
|
-
TableComponent,
|
|
2745
|
-
TableTabsComponent,
|
|
2746
|
-
TableTooltipComponent] }); }
|
|
2747
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: NgFirebaseTableKxpModule, providers: [TableService, FilterService, TooltipService, PaginationService], imports: [CommonModule,
|
|
3624
|
+
static { this.ɵfac = function NgFirebaseTableKxpModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NgFirebaseTableKxpModule)(); }; }
|
|
3625
|
+
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NgFirebaseTableKxpModule }); }
|
|
3626
|
+
static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [TableService, FilterService, TooltipService, PaginationService], imports: [CommonModule,
|
|
2748
3627
|
ReactiveFormsModule,
|
|
2749
3628
|
FormsModule,
|
|
2750
3629
|
RouterModule,
|
|
@@ -2753,58 +3632,81 @@ class NgFirebaseTableKxpModule {
|
|
|
2753
3632
|
MatSortModule,
|
|
2754
3633
|
MatFormFieldModule,
|
|
2755
3634
|
MatInputModule,
|
|
3635
|
+
MatOptionModule,
|
|
2756
3636
|
MatSelectModule,
|
|
2757
3637
|
MatTooltipModule,
|
|
2758
3638
|
MatProgressSpinnerModule,
|
|
2759
3639
|
MatIconModule,
|
|
2760
3640
|
MatDialogModule] }); }
|
|
2761
3641
|
}
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
3642
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NgFirebaseTableKxpModule, [{
|
|
3643
|
+
type: NgModule,
|
|
3644
|
+
args: [{
|
|
3645
|
+
declarations: [
|
|
3646
|
+
NgFirebaseTableKxpComponent,
|
|
3647
|
+
TableComponent,
|
|
3648
|
+
TableTabsComponent,
|
|
3649
|
+
TableTooltipComponent,
|
|
3650
|
+
],
|
|
3651
|
+
imports: [
|
|
3652
|
+
CommonModule,
|
|
3653
|
+
ReactiveFormsModule,
|
|
3654
|
+
FormsModule,
|
|
3655
|
+
RouterModule,
|
|
3656
|
+
MatTableModule,
|
|
3657
|
+
MatPaginatorModule,
|
|
3658
|
+
MatSortModule,
|
|
3659
|
+
MatFormFieldModule,
|
|
3660
|
+
MatInputModule,
|
|
3661
|
+
MatOptionModule,
|
|
3662
|
+
MatSelectModule,
|
|
3663
|
+
MatTooltipModule,
|
|
3664
|
+
MatProgressSpinnerModule,
|
|
3665
|
+
MatIconModule,
|
|
3666
|
+
MatDialogModule,
|
|
3667
|
+
],
|
|
3668
|
+
exports: [
|
|
3669
|
+
NgFirebaseTableKxpComponent,
|
|
3670
|
+
TableComponent,
|
|
3671
|
+
TableTabsComponent,
|
|
3672
|
+
TableTooltipComponent,
|
|
3673
|
+
],
|
|
3674
|
+
providers: [TableService, FilterService, TooltipService, PaginationService],
|
|
3675
|
+
}]
|
|
3676
|
+
}], null, null); })();
|
|
3677
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(NgFirebaseTableKxpModule, { declarations: [NgFirebaseTableKxpComponent,
|
|
3678
|
+
TableComponent,
|
|
3679
|
+
TableTabsComponent,
|
|
3680
|
+
TableTooltipComponent], imports: [CommonModule,
|
|
3681
|
+
ReactiveFormsModule,
|
|
3682
|
+
FormsModule,
|
|
3683
|
+
RouterModule,
|
|
3684
|
+
MatTableModule,
|
|
3685
|
+
MatPaginatorModule,
|
|
3686
|
+
MatSortModule,
|
|
3687
|
+
MatFormFieldModule,
|
|
3688
|
+
MatInputModule,
|
|
3689
|
+
MatOptionModule,
|
|
3690
|
+
MatSelectModule,
|
|
3691
|
+
MatTooltipModule,
|
|
3692
|
+
MatProgressSpinnerModule,
|
|
3693
|
+
MatIconModule,
|
|
3694
|
+
MatDialogModule], exports: [NgFirebaseTableKxpComponent,
|
|
3695
|
+
TableComponent,
|
|
3696
|
+
TableTabsComponent,
|
|
3697
|
+
TableTooltipComponent] }); })();
|
|
2796
3698
|
|
|
2797
3699
|
class NgFirebaseTableKxpService {
|
|
2798
3700
|
constructor() { }
|
|
2799
|
-
static { this.ɵfac =
|
|
2800
|
-
static { this.ɵprov = i0.ɵɵ
|
|
3701
|
+
static { this.ɵfac = function NgFirebaseTableKxpService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NgFirebaseTableKxpService)(); }; }
|
|
3702
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NgFirebaseTableKxpService, factory: NgFirebaseTableKxpService.ɵfac, providedIn: 'root' }); }
|
|
2801
3703
|
}
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
3704
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NgFirebaseTableKxpService, [{
|
|
3705
|
+
type: Injectable,
|
|
3706
|
+
args: [{
|
|
3707
|
+
providedIn: 'root',
|
|
3708
|
+
}]
|
|
3709
|
+
}], () => [], null); })();
|
|
2808
3710
|
|
|
2809
3711
|
/*
|
|
2810
3712
|
* Public API Surface of ng-firebase-table-kxp
|