@ngx-smz/core 21.9.0-next.5 → 21.9.0-next.6
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.
|
@@ -12184,6 +12184,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
12184
12184
|
}], ctorParameters: () => [{ type: i1$3.Store }, { type: i1$3.Actions }, { type: ExcelsService }] });
|
|
12185
12185
|
|
|
12186
12186
|
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-return, @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/typedef, no-underscore-dangle, no-console, eqeqeq, @typescript-eslint/no-unused-vars, @typescript-eslint/no-useless-constructor, @typescript-eslint/explicit-member-accessibility, max-len, no-prototype-builtins, @typescript-eslint/no-shadow, @angular-eslint/component-class-suffix, @angular-eslint/no-output-on-prefix, @angular-eslint/directive-selector, @angular-eslint/directive-class-suffix, @angular-eslint/no-input-rename, @typescript-eslint/no-unsafe-function-type, brace-style, @typescript-eslint/no-unused-expressions, no-var, no-cond-assign */
|
|
12187
|
+
/**
|
|
12188
|
+
* Clique dentro de um painel do CDK Overlay (listas de `ui-select`, `ui-multi-select`, `ui-date-picker`...).
|
|
12189
|
+
* Esses paineis ficam fora do DOM do filtro, mas fazem parte dele: clicar neles nao deve fechar o painel do filtro.
|
|
12190
|
+
* Usa `composedPath` porque a opcao clicada pode ja ter sido removida do DOM quando o listener roda.
|
|
12191
|
+
*/
|
|
12192
|
+
function isInsideCdkOverlay(event) {
|
|
12193
|
+
const path = typeof event.composedPath === 'function' ? event.composedPath() : [];
|
|
12194
|
+
return path.some((node) => node instanceof Element && node.classList.contains('cdk-overlay-container'));
|
|
12195
|
+
}
|
|
12187
12196
|
/** Notificacao de cliques em overlays (para que paineis de filtro nao fechem ao interagir com outros overlays). */
|
|
12188
12197
|
class TableOverlayService {
|
|
12189
12198
|
clickSource = new Subject();
|
|
@@ -13702,12 +13711,12 @@ class Table {
|
|
|
13702
13711
|
widths.forEach((width, index) => {
|
|
13703
13712
|
const colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;
|
|
13704
13713
|
const style = `width: ${colWidth}px !important; max-width: ${colWidth}px !important;`;
|
|
13705
|
-
innerHTML += `
|
|
13706
|
-
#${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),
|
|
13707
|
-
#${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),
|
|
13708
|
-
#${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
|
|
13709
|
-
${style}
|
|
13710
|
-
}
|
|
13714
|
+
innerHTML += `
|
|
13715
|
+
#${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),
|
|
13716
|
+
#${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),
|
|
13717
|
+
#${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
|
|
13718
|
+
${style}
|
|
13719
|
+
}
|
|
13711
13720
|
`;
|
|
13712
13721
|
});
|
|
13713
13722
|
this.styleElement.innerHTML = innerHTML;
|
|
@@ -13981,12 +13990,12 @@ class Table {
|
|
|
13981
13990
|
let innerHTML = '';
|
|
13982
13991
|
widths.forEach((width, index) => {
|
|
13983
13992
|
const style = `width: ${width}px !important; max-width: ${width}px !important`;
|
|
13984
|
-
innerHTML += `
|
|
13985
|
-
#${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),
|
|
13986
|
-
#${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),
|
|
13987
|
-
#${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
|
|
13988
|
-
${style}
|
|
13989
|
-
}
|
|
13993
|
+
innerHTML += `
|
|
13994
|
+
#${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}),
|
|
13995
|
+
#${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}),
|
|
13996
|
+
#${this.id}-table > .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
|
|
13997
|
+
${style}
|
|
13998
|
+
}
|
|
13990
13999
|
`;
|
|
13991
14000
|
});
|
|
13992
14001
|
this.styleElement.innerHTML = innerHTML;
|
|
@@ -14047,33 +14056,33 @@ class Table {
|
|
|
14047
14056
|
this.responsiveStyleElement = document.createElement('style');
|
|
14048
14057
|
this.responsiveStyleElement.type = 'text/css';
|
|
14049
14058
|
document.head.appendChild(this.responsiveStyleElement);
|
|
14050
|
-
const innerHTML = `
|
|
14051
|
-
@media screen and (max-width: ${this.breakpoint}) {
|
|
14052
|
-
#${this.id}-table > .p-datatable-thead > tr > th,
|
|
14053
|
-
#${this.id}-table > .p-datatable-tfoot > tr > td {
|
|
14054
|
-
display: none !important;
|
|
14055
|
-
}
|
|
14056
|
-
|
|
14057
|
-
#${this.id}-table > .p-datatable-tbody > tr > td {
|
|
14058
|
-
width: 100% !important;
|
|
14059
|
-
align-items: center;
|
|
14060
|
-
justify-content: space-between;
|
|
14061
|
-
}
|
|
14062
|
-
|
|
14063
|
-
#${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {
|
|
14064
|
-
border: 0 none;
|
|
14065
|
-
}
|
|
14066
|
-
|
|
14067
|
-
#${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {
|
|
14068
|
-
border-top: 0;
|
|
14069
|
-
border-right: 0;
|
|
14070
|
-
border-left: 0;
|
|
14071
|
-
}
|
|
14072
|
-
|
|
14073
|
-
#${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {
|
|
14074
|
-
display: block;
|
|
14075
|
-
}
|
|
14076
|
-
}
|
|
14059
|
+
const innerHTML = `
|
|
14060
|
+
@media screen and (max-width: ${this.breakpoint}) {
|
|
14061
|
+
#${this.id}-table > .p-datatable-thead > tr > th,
|
|
14062
|
+
#${this.id}-table > .p-datatable-tfoot > tr > td {
|
|
14063
|
+
display: none !important;
|
|
14064
|
+
}
|
|
14065
|
+
|
|
14066
|
+
#${this.id}-table > .p-datatable-tbody > tr > td {
|
|
14067
|
+
width: 100% !important;
|
|
14068
|
+
align-items: center;
|
|
14069
|
+
justify-content: space-between;
|
|
14070
|
+
}
|
|
14071
|
+
|
|
14072
|
+
#${this.id}-table > .p-datatable-tbody > tr > td:not(:last-child) {
|
|
14073
|
+
border: 0 none;
|
|
14074
|
+
}
|
|
14075
|
+
|
|
14076
|
+
#${this.id}.p-datatable-gridlines > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tbody > tr > td:last-child {
|
|
14077
|
+
border-top: 0;
|
|
14078
|
+
border-right: 0;
|
|
14079
|
+
border-left: 0;
|
|
14080
|
+
}
|
|
14081
|
+
|
|
14082
|
+
#${this.id}-table > .p-datatable-tbody > tr > td > .p-column-title {
|
|
14083
|
+
display: block;
|
|
14084
|
+
}
|
|
14085
|
+
}
|
|
14077
14086
|
`;
|
|
14078
14087
|
this.responsiveStyleElement.innerHTML = innerHTML;
|
|
14079
14088
|
}
|
|
@@ -14098,243 +14107,243 @@ class Table {
|
|
|
14098
14107
|
this.destroyResponsiveStyle();
|
|
14099
14108
|
}
|
|
14100
14109
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: Table, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: TableOverlayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14101
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: Table, isStandalone: false, selector: "p-table", inputs: { frozenColumns: "frozenColumns", frozenValue: "frozenValue", style: "style", styleClass: "styleClass", tableStyle: "tableStyle", tableStyleClass: "tableStyleClass", paginator: "paginator", pageLinks: "pageLinks", rowsPerPageOptions: "rowsPerPageOptions", alwaysShowPaginator: "alwaysShowPaginator", paginatorPosition: "paginatorPosition", paginatorDropdownAppendTo: "paginatorDropdownAppendTo", paginatorDropdownScrollHeight: "paginatorDropdownScrollHeight", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: "showCurrentPageReport", showJumpToPageDropdown: "showJumpToPageDropdown", showJumpToPageInput: "showJumpToPageInput", showFirstLastIcon: "showFirstLastIcon", showPageLinks: "showPageLinks", defaultSortOrder: "defaultSortOrder", sortMode: "sortMode", resetPageOnSort: "resetPageOnSort", selectionMode: "selectionMode", selectionPageOnly: "selectionPageOnly", contextMenuSelection: "contextMenuSelection", contextMenuSelectionMode: "contextMenuSelectionMode", dataKey: "dataKey", metaKeySelection: "metaKeySelection", rowSelectable: "rowSelectable", rowTrackBy: "rowTrackBy", lazy: "lazy", lazyLoadOnInit: "lazyLoadOnInit", compareSelectionBy: "compareSelectionBy", csvSeparator: "csvSeparator", exportFilename: "exportFilename", filters: "filters", globalFilterFields: "globalFilterFields", filterDelay: "filterDelay", filterLocale: "filterLocale", expandedRowKeys: "expandedRowKeys", editingRowKeys: "editingRowKeys", rowExpandMode: "rowExpandMode", scrollable: "scrollable", scrollDirection: "scrollDirection", rowGroupMode: "rowGroupMode", scrollHeight: "scrollHeight", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", virtualScrollDelay: "virtualScrollDelay", frozenWidth: "frozenWidth", responsive: "responsive", contextMenu: "contextMenu", resizableColumns: "resizableColumns", columnResizeMode: "columnResizeMode", reorderableColumns: "reorderableColumns", loading: "loading", loadingIcon: "loadingIcon", showLoader: "showLoader", rowHover: "rowHover", stripedRows: "stripedRows", size: "size", customSort: "customSort", showInitialSortBadge: "showInitialSortBadge", autoLayout: "autoLayout", exportFunction: "exportFunction", exportHeader: "exportHeader", stateKey: "stateKey", stateStorage: "stateStorage", editMode: "editMode", groupRowsBy: "groupRowsBy", groupRowsByOrder: "groupRowsByOrder", responsiveLayout: "responsiveLayout", breakpoint: "breakpoint", virtualRowHeight: "virtualRowHeight", value: "value", columns: "columns", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", multiSortMeta: "multiSortMeta", selection: "selection", selectAll: "selectAll" }, outputs: { selectAllChange: "selectAllChange", selectionChange: "selectionChange", contextMenuSelectionChange: "contextMenuSelectionChange", onRowSelect: "onRowSelect", onRowUnselect: "onRowUnselect", onPage: "onPage", onSort: "onSort", onFilter: "onFilter", onLazyLoad: "onLazyLoad", onRowExpand: "onRowExpand", onRowCollapse: "onRowCollapse", onContextMenuSelect: "onContextMenuSelect", onColResize: "onColResize", onColReorder: "onColReorder", onRowReorder: "onRowReorder", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", sortFunction: "sortFunction", firstChange: "firstChange", rowsChange: "rowsChange", onStateSave: "onStateSave", onStateRestore: "onStateRestore" }, host: { classAttribute: "p-element" }, providers: [TableService], queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true }, { propertyName: "tableHeaderViewChild", first: true, predicate: ["thead"], descendants: true }, { propertyName: "tableFooterViewChild", first: true, predicate: ["tfoot"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
14102
|
-
<div
|
|
14103
|
-
#container
|
|
14104
|
-
[ngStyle]="style"
|
|
14105
|
-
[class]="styleClass"
|
|
14106
|
-
[ngClass]="{ 'p-datatable p-component': true, 'p-datatable-hoverable-rows': rowHover || selectionMode, 'p-datatable-scrollable': scrollable, 'p-datatable-flex-scrollable': scrollable && scrollHeight === 'flex', 'p-datatable-striped': stripedRows, 'p-datatable-sm': size === 'small', 'p-datatable-lg': size === 'large' }"
|
|
14107
|
-
[attr.id]="id"
|
|
14108
|
-
>
|
|
14109
|
-
@if (loading && showLoader) {
|
|
14110
|
-
<div class="p-datatable-loading-overlay p-component-overlay">
|
|
14111
|
-
<i [class]="'p-datatable-loading-icon fa-spin ' + loadingIcon"></i>
|
|
14112
|
-
</div>
|
|
14113
|
-
}
|
|
14114
|
-
@if (captionTemplate) {
|
|
14115
|
-
<div class="p-datatable-header">
|
|
14116
|
-
<ng-container *ngTemplateOutlet="captionTemplate"></ng-container>
|
|
14117
|
-
</div>
|
|
14118
|
-
}
|
|
14119
|
-
@if (paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')) {
|
|
14120
|
-
<ui-paginator
|
|
14121
|
-
[rows]="rows"
|
|
14122
|
-
[first]="first"
|
|
14123
|
-
[totalRecords]="totalRecords"
|
|
14124
|
-
[pageLinkSize]="pageLinks"
|
|
14125
|
-
styleClass="smz-paginator-top"
|
|
14126
|
-
[alwaysShow]="alwaysShowPaginator"
|
|
14127
|
-
(pageChanged)="onPageChange($event)"
|
|
14128
|
-
[rowsPerPageOptions]="rowsPerPageOptions"
|
|
14129
|
-
[currentPageReportTemplate]="currentPageReportTemplate"
|
|
14130
|
-
[showFirstLastIcon]="showFirstLastIcon"
|
|
14131
|
-
[showCurrentPageReport]="showCurrentPageReport"
|
|
14132
|
-
[showPageLinks]="showPageLinks"
|
|
14133
|
-
></ui-paginator>
|
|
14134
|
-
}
|
|
14135
|
-
|
|
14136
|
-
<div #wrapper class="p-datatable-wrapper" [ngStyle]="{ maxHeight: virtualScroll ? '' : scrollHeight }">
|
|
14137
|
-
<ng-container *ngTemplateOutlet="buildInTable; context: { $implicit: processedData, options: { columns } }"></ng-container>
|
|
14138
|
-
|
|
14139
|
-
<ng-template #buildInTable let-items let-scrollerOptions="options">
|
|
14140
|
-
<table
|
|
14141
|
-
#table
|
|
14142
|
-
role="table"
|
|
14143
|
-
[ngClass]="{ 'p-datatable-table': true, 'p-datatable-scrollable-table': scrollable, 'p-datatable-resizable-table': resizableColumns, 'p-datatable-resizable-table-fit': resizableColumns && columnResizeMode === 'fit' }"
|
|
14144
|
-
[class]="tableStyleClass"
|
|
14145
|
-
[style]="tableStyle"
|
|
14146
|
-
[attr.id]="id + '-table'"
|
|
14147
|
-
>
|
|
14148
|
-
<ng-container *ngTemplateOutlet="colGroupTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14149
|
-
<thead #thead class="p-datatable-thead">
|
|
14150
|
-
<ng-container *ngTemplateOutlet="headerGroupedTemplate || headerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14151
|
-
</thead>
|
|
14152
|
-
@if (frozenValue || frozenBodyTemplate) {
|
|
14153
|
-
<tbody
|
|
14154
|
-
class="p-datatable-tbody p-datatable-frozen-tbody"
|
|
14155
|
-
[value]="frozenValue"
|
|
14156
|
-
[frozenRows]="true"
|
|
14157
|
-
[pTableBody]="scrollerOptions.columns"
|
|
14158
|
-
[pTableBodyTemplate]="frozenBodyTemplate"
|
|
14159
|
-
[frozen]="true"
|
|
14160
|
-
></tbody>
|
|
14161
|
-
}
|
|
14162
|
-
<tbody
|
|
14163
|
-
class="p-datatable-tbody"
|
|
14164
|
-
[ngClass]="scrollerOptions.contentStyleClass"
|
|
14165
|
-
[style]="scrollerOptions.contentStyle"
|
|
14166
|
-
[value]="dataToRender(scrollerOptions.rows)"
|
|
14167
|
-
[pTableBody]="scrollerOptions.columns"
|
|
14168
|
-
[pTableBodyTemplate]="bodyTemplate"
|
|
14169
|
-
[scrollerOptions]="scrollerOptions"
|
|
14170
|
-
></tbody>
|
|
14171
|
-
@if (scrollerOptions.spacerStyle) {
|
|
14172
|
-
<tbody [style]="'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'" class="p-datatable-scroller-spacer"></tbody>
|
|
14173
|
-
}
|
|
14174
|
-
@if (footerGroupedTemplate || footerTemplate) {
|
|
14175
|
-
<tfoot #tfoot class="p-datatable-tfoot">
|
|
14176
|
-
<ng-container *ngTemplateOutlet="footerGroupedTemplate || footerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14177
|
-
</tfoot>
|
|
14178
|
-
}
|
|
14179
|
-
</table>
|
|
14180
|
-
</ng-template>
|
|
14181
|
-
</div>
|
|
14182
|
-
|
|
14183
|
-
@if (paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')) {
|
|
14184
|
-
<ui-paginator
|
|
14185
|
-
[rows]="rows"
|
|
14186
|
-
[first]="first"
|
|
14187
|
-
[totalRecords]="totalRecords"
|
|
14188
|
-
[pageLinkSize]="pageLinks"
|
|
14189
|
-
styleClass="smz-paginator-bottom"
|
|
14190
|
-
[alwaysShow]="alwaysShowPaginator"
|
|
14191
|
-
(pageChanged)="onPageChange($event)"
|
|
14192
|
-
[rowsPerPageOptions]="rowsPerPageOptions"
|
|
14193
|
-
[currentPageReportTemplate]="currentPageReportTemplate"
|
|
14194
|
-
[showFirstLastIcon]="showFirstLastIcon"
|
|
14195
|
-
[showCurrentPageReport]="showCurrentPageReport"
|
|
14196
|
-
[showPageLinks]="showPageLinks"
|
|
14197
|
-
></ui-paginator>
|
|
14198
|
-
}
|
|
14199
|
-
|
|
14200
|
-
@if (summaryTemplate) {
|
|
14201
|
-
<div class="p-datatable-footer">
|
|
14202
|
-
<ng-container *ngTemplateOutlet="summaryTemplate"></ng-container>
|
|
14203
|
-
</div>
|
|
14204
|
-
}
|
|
14205
|
-
|
|
14206
|
-
@if (resizableColumns) {
|
|
14207
|
-
<div #resizeHelper class="p-column-resizer-helper" style="display:none"></div>
|
|
14208
|
-
}
|
|
14209
|
-
@if (reorderableColumns) {
|
|
14210
|
-
<span #reorderIndicatorUp class="fa-solid fa-arrow-down p-datatable-reorder-indicator-up" style="display: none;"></span>
|
|
14211
|
-
}
|
|
14212
|
-
@if (reorderableColumns) {
|
|
14213
|
-
<span #reorderIndicatorDown class="fa-solid fa-arrow-up p-datatable-reorder-indicator-down" style="display: none;"></span>
|
|
14214
|
-
}
|
|
14215
|
-
</div>
|
|
14216
|
-
`, isInline: true, styles: [".p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:1}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}.p-datatable{color:rgb(var(--smz-color-fg));font-family:var(--smz-font-sans);font-size:var(--smz-text-md)}.p-datatable-table{border-collapse:separate;background:rgb(var(--smz-color-surface-1))}.p-datatable-thead>tr>th,.p-datatable-tfoot>tr>td{padding:.75rem 1rem;text-align:left;font-weight:600;background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-tfoot>tr>td{border-top:1px solid rgb(var(--smz-color-line));border-bottom:0}.p-datatable-tbody>tr{background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));transition:background-color var(--smz-duration)}.p-datatable-tbody>tr>td{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-datatable-row-selected):hover{background:rgb(var(--smz-color-surface-3))}.p-datatable-tbody>tr.p-datatable-row-selected,.p-datatable-tbody>tr.p-highlight{background:rgb(var(--smz-color-primary) / .12);color:rgb(var(--smz-color-fg))}.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:rgb(var(--smz-color-surface-0))}.p-datatable-gridlines .p-datatable-thead>tr>th,.p-datatable-gridlines .p-datatable-tbody>tr>td,.p-datatable-gridlines .p-datatable-tfoot>tr>td{border:1px solid rgb(var(--smz-color-line));border-width:0 0 1px 1px}.p-datatable-gridlines .p-datatable-thead>tr>th:last-child,.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child,.p-datatable-gridlines .p-datatable-tfoot>tr>td:last-child{border-right-width:1px}.p-datatable-sm .p-datatable-thead>tr>th,.p-datatable-sm .p-datatable-tbody>tr>td,.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.375rem .75rem}.p-datatable-lg .p-datatable-thead>tr>th,.p-datatable-lg .p-datatable-tbody>tr>td,.p-datatable-lg .p-datatable-tfoot>tr>td{padding:1.1rem 1.25rem}.p-datatable-header,.p-datatable-footer{padding:.75rem 1rem;background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-footer{border-top:1px solid rgb(var(--smz-color-line));border-bottom:0}.p-datatable .p-sortable-column:hover{background:rgb(var(--smz-color-surface-3))}.p-datatable .p-sortable-column:focus-visible{outline:2px solid rgb(var(--smz-color-focus));outline-offset:-2px}.p-datatable .p-datatable-loading-overlay{background:rgb(var(--smz-color-surface-1) / .6);color:rgb(var(--smz-color-primary))}.p-datatable .p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-datatable .p-checkbox,.p-datatable .p-radiobutton{position:relative;display:inline-flex;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-checkbox-box,.p-datatable .p-radiobutton-box{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:1px solid rgb(var(--smz-color-line-strong));background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-on-primary));transition:background-color var(--smz-duration),border-color var(--smz-duration),box-shadow var(--smz-duration)}.p-datatable .p-checkbox-box{border-radius:.3rem}.p-datatable .p-radiobutton-box{border-radius:9999px}.p-datatable .p-checkbox-box.p-highlight,.p-datatable .p-radiobutton-box.p-highlight{background:rgb(var(--smz-color-primary));border-color:rgb(var(--smz-color-primary))}.p-datatable .p-checkbox-box.p-focus,.p-datatable .p-radiobutton-box.p-focus{box-shadow:0 0 0 2px rgb(var(--smz-color-focus) / .45)}.p-datatable .p-checkbox-box.p-disabled,.p-datatable .p-radiobutton-box.p-disabled{opacity:.5;cursor:not-allowed}.p-datatable .p-checkbox-icon{font-size:.7rem;line-height:1}.p-datatable .p-radiobutton-icon{width:.5rem;height:.5rem;border-radius:9999px;background:rgb(var(--smz-color-on-primary));opacity:0}.p-datatable .p-radiobutton-box.p-highlight .p-radiobutton-icon{opacity:1}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => SmzPaginatorComponent), selector: "ui-paginator", inputs: ["first", "rows", "totalRecords", "pageLinkSize", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "alwaysShow", "showPageLinks", "styleClass", "dropdownAppendTo", "showFirstLastIcon"], outputs: ["firstChange", "rowsChange", "pageChanged"] }, { kind: "component", type: i0.forwardRef(() => TableBody), selector: "[pTableBody]", inputs: ["pTableBody", "pTableBodyTemplate", "value", "frozen", "frozenRows", "scrollerOptions"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
14110
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: Table, isStandalone: false, selector: "p-table", inputs: { frozenColumns: "frozenColumns", frozenValue: "frozenValue", style: "style", styleClass: "styleClass", tableStyle: "tableStyle", tableStyleClass: "tableStyleClass", paginator: "paginator", pageLinks: "pageLinks", rowsPerPageOptions: "rowsPerPageOptions", alwaysShowPaginator: "alwaysShowPaginator", paginatorPosition: "paginatorPosition", paginatorDropdownAppendTo: "paginatorDropdownAppendTo", paginatorDropdownScrollHeight: "paginatorDropdownScrollHeight", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: "showCurrentPageReport", showJumpToPageDropdown: "showJumpToPageDropdown", showJumpToPageInput: "showJumpToPageInput", showFirstLastIcon: "showFirstLastIcon", showPageLinks: "showPageLinks", defaultSortOrder: "defaultSortOrder", sortMode: "sortMode", resetPageOnSort: "resetPageOnSort", selectionMode: "selectionMode", selectionPageOnly: "selectionPageOnly", contextMenuSelection: "contextMenuSelection", contextMenuSelectionMode: "contextMenuSelectionMode", dataKey: "dataKey", metaKeySelection: "metaKeySelection", rowSelectable: "rowSelectable", rowTrackBy: "rowTrackBy", lazy: "lazy", lazyLoadOnInit: "lazyLoadOnInit", compareSelectionBy: "compareSelectionBy", csvSeparator: "csvSeparator", exportFilename: "exportFilename", filters: "filters", globalFilterFields: "globalFilterFields", filterDelay: "filterDelay", filterLocale: "filterLocale", expandedRowKeys: "expandedRowKeys", editingRowKeys: "editingRowKeys", rowExpandMode: "rowExpandMode", scrollable: "scrollable", scrollDirection: "scrollDirection", rowGroupMode: "rowGroupMode", scrollHeight: "scrollHeight", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", virtualScrollDelay: "virtualScrollDelay", frozenWidth: "frozenWidth", responsive: "responsive", contextMenu: "contextMenu", resizableColumns: "resizableColumns", columnResizeMode: "columnResizeMode", reorderableColumns: "reorderableColumns", loading: "loading", loadingIcon: "loadingIcon", showLoader: "showLoader", rowHover: "rowHover", stripedRows: "stripedRows", size: "size", customSort: "customSort", showInitialSortBadge: "showInitialSortBadge", autoLayout: "autoLayout", exportFunction: "exportFunction", exportHeader: "exportHeader", stateKey: "stateKey", stateStorage: "stateStorage", editMode: "editMode", groupRowsBy: "groupRowsBy", groupRowsByOrder: "groupRowsByOrder", responsiveLayout: "responsiveLayout", breakpoint: "breakpoint", virtualRowHeight: "virtualRowHeight", value: "value", columns: "columns", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", multiSortMeta: "multiSortMeta", selection: "selection", selectAll: "selectAll" }, outputs: { selectAllChange: "selectAllChange", selectionChange: "selectionChange", contextMenuSelectionChange: "contextMenuSelectionChange", onRowSelect: "onRowSelect", onRowUnselect: "onRowUnselect", onPage: "onPage", onSort: "onSort", onFilter: "onFilter", onLazyLoad: "onLazyLoad", onRowExpand: "onRowExpand", onRowCollapse: "onRowCollapse", onContextMenuSelect: "onContextMenuSelect", onColResize: "onColResize", onColReorder: "onColReorder", onRowReorder: "onRowReorder", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", sortFunction: "sortFunction", firstChange: "firstChange", rowsChange: "rowsChange", onStateSave: "onStateSave", onStateRestore: "onStateRestore" }, host: { classAttribute: "p-element" }, providers: [TableService], queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true }, { propertyName: "tableHeaderViewChild", first: true, predicate: ["thead"], descendants: true }, { propertyName: "tableFooterViewChild", first: true, predicate: ["tfoot"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
14111
|
+
<div
|
|
14112
|
+
#container
|
|
14113
|
+
[ngStyle]="style"
|
|
14114
|
+
[class]="styleClass"
|
|
14115
|
+
[ngClass]="{ 'p-datatable p-component': true, 'p-datatable-hoverable-rows': rowHover || selectionMode, 'p-datatable-scrollable': scrollable, 'p-datatable-flex-scrollable': scrollable && scrollHeight === 'flex', 'p-datatable-striped': stripedRows, 'p-datatable-sm': size === 'small', 'p-datatable-lg': size === 'large' }"
|
|
14116
|
+
[attr.id]="id"
|
|
14117
|
+
>
|
|
14118
|
+
@if (loading && showLoader) {
|
|
14119
|
+
<div class="p-datatable-loading-overlay p-component-overlay">
|
|
14120
|
+
<i [class]="'p-datatable-loading-icon fa-spin ' + loadingIcon"></i>
|
|
14121
|
+
</div>
|
|
14122
|
+
}
|
|
14123
|
+
@if (captionTemplate) {
|
|
14124
|
+
<div class="p-datatable-header">
|
|
14125
|
+
<ng-container *ngTemplateOutlet="captionTemplate"></ng-container>
|
|
14126
|
+
</div>
|
|
14127
|
+
}
|
|
14128
|
+
@if (paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')) {
|
|
14129
|
+
<ui-paginator
|
|
14130
|
+
[rows]="rows"
|
|
14131
|
+
[first]="first"
|
|
14132
|
+
[totalRecords]="totalRecords"
|
|
14133
|
+
[pageLinkSize]="pageLinks"
|
|
14134
|
+
styleClass="smz-paginator-top"
|
|
14135
|
+
[alwaysShow]="alwaysShowPaginator"
|
|
14136
|
+
(pageChanged)="onPageChange($event)"
|
|
14137
|
+
[rowsPerPageOptions]="rowsPerPageOptions"
|
|
14138
|
+
[currentPageReportTemplate]="currentPageReportTemplate"
|
|
14139
|
+
[showFirstLastIcon]="showFirstLastIcon"
|
|
14140
|
+
[showCurrentPageReport]="showCurrentPageReport"
|
|
14141
|
+
[showPageLinks]="showPageLinks"
|
|
14142
|
+
></ui-paginator>
|
|
14143
|
+
}
|
|
14144
|
+
|
|
14145
|
+
<div #wrapper class="p-datatable-wrapper" [ngStyle]="{ maxHeight: virtualScroll ? '' : scrollHeight }">
|
|
14146
|
+
<ng-container *ngTemplateOutlet="buildInTable; context: { $implicit: processedData, options: { columns } }"></ng-container>
|
|
14147
|
+
|
|
14148
|
+
<ng-template #buildInTable let-items let-scrollerOptions="options">
|
|
14149
|
+
<table
|
|
14150
|
+
#table
|
|
14151
|
+
role="table"
|
|
14152
|
+
[ngClass]="{ 'p-datatable-table': true, 'p-datatable-scrollable-table': scrollable, 'p-datatable-resizable-table': resizableColumns, 'p-datatable-resizable-table-fit': resizableColumns && columnResizeMode === 'fit' }"
|
|
14153
|
+
[class]="tableStyleClass"
|
|
14154
|
+
[style]="tableStyle"
|
|
14155
|
+
[attr.id]="id + '-table'"
|
|
14156
|
+
>
|
|
14157
|
+
<ng-container *ngTemplateOutlet="colGroupTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14158
|
+
<thead #thead class="p-datatable-thead">
|
|
14159
|
+
<ng-container *ngTemplateOutlet="headerGroupedTemplate || headerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14160
|
+
</thead>
|
|
14161
|
+
@if (frozenValue || frozenBodyTemplate) {
|
|
14162
|
+
<tbody
|
|
14163
|
+
class="p-datatable-tbody p-datatable-frozen-tbody"
|
|
14164
|
+
[value]="frozenValue"
|
|
14165
|
+
[frozenRows]="true"
|
|
14166
|
+
[pTableBody]="scrollerOptions.columns"
|
|
14167
|
+
[pTableBodyTemplate]="frozenBodyTemplate"
|
|
14168
|
+
[frozen]="true"
|
|
14169
|
+
></tbody>
|
|
14170
|
+
}
|
|
14171
|
+
<tbody
|
|
14172
|
+
class="p-datatable-tbody"
|
|
14173
|
+
[ngClass]="scrollerOptions.contentStyleClass"
|
|
14174
|
+
[style]="scrollerOptions.contentStyle"
|
|
14175
|
+
[value]="dataToRender(scrollerOptions.rows)"
|
|
14176
|
+
[pTableBody]="scrollerOptions.columns"
|
|
14177
|
+
[pTableBodyTemplate]="bodyTemplate"
|
|
14178
|
+
[scrollerOptions]="scrollerOptions"
|
|
14179
|
+
></tbody>
|
|
14180
|
+
@if (scrollerOptions.spacerStyle) {
|
|
14181
|
+
<tbody [style]="'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'" class="p-datatable-scroller-spacer"></tbody>
|
|
14182
|
+
}
|
|
14183
|
+
@if (footerGroupedTemplate || footerTemplate) {
|
|
14184
|
+
<tfoot #tfoot class="p-datatable-tfoot">
|
|
14185
|
+
<ng-container *ngTemplateOutlet="footerGroupedTemplate || footerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14186
|
+
</tfoot>
|
|
14187
|
+
}
|
|
14188
|
+
</table>
|
|
14189
|
+
</ng-template>
|
|
14190
|
+
</div>
|
|
14191
|
+
|
|
14192
|
+
@if (paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')) {
|
|
14193
|
+
<ui-paginator
|
|
14194
|
+
[rows]="rows"
|
|
14195
|
+
[first]="first"
|
|
14196
|
+
[totalRecords]="totalRecords"
|
|
14197
|
+
[pageLinkSize]="pageLinks"
|
|
14198
|
+
styleClass="smz-paginator-bottom"
|
|
14199
|
+
[alwaysShow]="alwaysShowPaginator"
|
|
14200
|
+
(pageChanged)="onPageChange($event)"
|
|
14201
|
+
[rowsPerPageOptions]="rowsPerPageOptions"
|
|
14202
|
+
[currentPageReportTemplate]="currentPageReportTemplate"
|
|
14203
|
+
[showFirstLastIcon]="showFirstLastIcon"
|
|
14204
|
+
[showCurrentPageReport]="showCurrentPageReport"
|
|
14205
|
+
[showPageLinks]="showPageLinks"
|
|
14206
|
+
></ui-paginator>
|
|
14207
|
+
}
|
|
14208
|
+
|
|
14209
|
+
@if (summaryTemplate) {
|
|
14210
|
+
<div class="p-datatable-footer">
|
|
14211
|
+
<ng-container *ngTemplateOutlet="summaryTemplate"></ng-container>
|
|
14212
|
+
</div>
|
|
14213
|
+
}
|
|
14214
|
+
|
|
14215
|
+
@if (resizableColumns) {
|
|
14216
|
+
<div #resizeHelper class="p-column-resizer-helper" style="display:none"></div>
|
|
14217
|
+
}
|
|
14218
|
+
@if (reorderableColumns) {
|
|
14219
|
+
<span #reorderIndicatorUp class="fa-solid fa-arrow-down p-datatable-reorder-indicator-up" style="display: none;"></span>
|
|
14220
|
+
}
|
|
14221
|
+
@if (reorderableColumns) {
|
|
14222
|
+
<span #reorderIndicatorDown class="fa-solid fa-arrow-up p-datatable-reorder-indicator-down" style="display: none;"></span>
|
|
14223
|
+
}
|
|
14224
|
+
</div>
|
|
14225
|
+
`, isInline: true, styles: [".p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:1}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}.p-datatable{color:rgb(var(--smz-color-fg));font-family:var(--smz-font-sans);font-size:var(--smz-text-md)}.p-datatable-table{border-collapse:separate;background:rgb(var(--smz-color-surface-1))}.p-datatable-thead>tr>th,.p-datatable-tfoot>tr>td{padding:.75rem 1rem;text-align:left;font-weight:600;background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-tfoot>tr>td{border-top:1px solid rgb(var(--smz-color-line));border-bottom:0}.p-datatable-tbody>tr{background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));transition:background-color var(--smz-duration)}.p-datatable-tbody>tr>td{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-datatable-row-selected):hover{background:rgb(var(--smz-color-surface-3))}.p-datatable-tbody>tr.p-datatable-row-selected,.p-datatable-tbody>tr.p-highlight{background:rgb(var(--smz-color-primary) / .12);color:rgb(var(--smz-color-fg))}.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:rgb(var(--smz-color-surface-0))}.p-datatable-gridlines .p-datatable-thead>tr>th,.p-datatable-gridlines .p-datatable-tbody>tr>td,.p-datatable-gridlines .p-datatable-tfoot>tr>td{border:1px solid rgb(var(--smz-color-line));border-width:0 0 1px 1px}.p-datatable-gridlines .p-datatable-thead>tr>th:last-child,.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child,.p-datatable-gridlines .p-datatable-tfoot>tr>td:last-child{border-right-width:1px}.p-datatable-sm .p-datatable-thead>tr>th,.p-datatable-sm .p-datatable-tbody>tr>td,.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.375rem .75rem}.p-datatable-lg .p-datatable-thead>tr>th,.p-datatable-lg .p-datatable-tbody>tr>td,.p-datatable-lg .p-datatable-tfoot>tr>td{padding:1.1rem 1.25rem}.p-datatable-header,.p-datatable-footer{padding:.75rem 1rem;background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-footer{border-top:1px solid rgb(var(--smz-color-line));border-bottom:0}.p-datatable .p-sortable-column:hover{background:rgb(var(--smz-color-surface-3))}.p-datatable .p-sortable-column:focus-visible{outline:2px solid rgb(var(--smz-color-focus));outline-offset:-2px}.p-datatable .p-datatable-loading-overlay{background:rgb(var(--smz-color-surface-1) / .6);color:rgb(var(--smz-color-primary))}.p-datatable .p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-datatable .p-checkbox,.p-datatable .p-radiobutton{position:relative;display:inline-flex;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-checkbox-box,.p-datatable .p-radiobutton-box{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:1px solid rgb(var(--smz-color-line-strong));background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-on-primary));transition:background-color var(--smz-duration),border-color var(--smz-duration),box-shadow var(--smz-duration)}.p-datatable .p-checkbox-box{border-radius:.3rem}.p-datatable .p-radiobutton-box{border-radius:9999px}.p-datatable .p-checkbox-box.p-highlight,.p-datatable .p-radiobutton-box.p-highlight{background:rgb(var(--smz-color-primary));border-color:rgb(var(--smz-color-primary))}.p-datatable .p-checkbox-box.p-focus,.p-datatable .p-radiobutton-box.p-focus{box-shadow:0 0 0 2px rgb(var(--smz-color-focus) / .45)}.p-datatable .p-checkbox-box.p-disabled,.p-datatable .p-radiobutton-box.p-disabled{opacity:.5;cursor:not-allowed}.p-datatable .p-checkbox-icon{font-size:.7rem;line-height:1}.p-datatable .p-radiobutton-icon{width:.5rem;height:.5rem;border-radius:9999px;background:rgb(var(--smz-color-on-primary));opacity:0}.p-datatable .p-radiobutton-box.p-highlight .p-radiobutton-icon{opacity:1}.p-datatable-thead>tr>th.p-highlight{background:rgb(var(--smz-color-primary) / .1);color:rgb(var(--smz-color-primary))}.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:rgb(var(--smz-color-surface-3) / .5)}.p-datatable-sm .p-datatable-thead>tr>th,.p-datatable-sm .p-datatable-tbody>tr>td,.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.5rem}.p-column-filter-menu-button,.p-column-filter-clear-button{width:2rem;height:2rem;border-radius:9999px;color:rgb(var(--smz-color-fg-muted));background:transparent;border:0;cursor:pointer;transition:background-color var(--smz-duration)}.p-column-filter-menu-button:hover,.p-column-filter-clear-button:hover{background:rgb(var(--smz-color-surface-3));color:rgb(var(--smz-color-fg))}.p-column-filter-overlay{min-width:14rem;padding:.5rem;background:rgb(var(--smz-color-surface-2));color:rgb(var(--smz-color-fg));border:1px solid rgb(var(--smz-color-line));border-radius:var(--smz-radius-overlay);box-shadow:var(--smz-shadow-overlay);font-family:var(--smz-font-sans);font-size:var(--smz-text-md)}.p-column-filter-overlay .p-column-filter-row-items,.p-column-filter-overlay .p-column-filter-constraint{padding:.25rem 0}.p-column-filter-overlay .p-column-filter-row-item{padding:.5rem .75rem;border-radius:var(--smz-radius-control);cursor:pointer}.p-column-filter-overlay .p-column-filter-row-item:hover,.p-column-filter-overlay .p-column-filter-row-item.p-highlight{background:rgb(var(--smz-color-surface-3))}.p-column-filter-overlay .p-column-filter-buttonbar{padding:.5rem 0 0;border-top:1px solid rgb(var(--smz-color-line))}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(() => SmzPaginatorComponent), selector: "ui-paginator", inputs: ["first", "rows", "totalRecords", "pageLinkSize", "rowsPerPageOptions", "showCurrentPageReport", "currentPageReportTemplate", "alwaysShow", "showPageLinks", "styleClass", "dropdownAppendTo", "showFirstLastIcon"], outputs: ["firstChange", "rowsChange", "pageChanged"] }, { kind: "component", type: i0.forwardRef(() => TableBody), selector: "[pTableBody]", inputs: ["pTableBody", "pTableBodyTemplate", "value", "frozen", "frozenRows", "scrollerOptions"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
14217
14226
|
}
|
|
14218
14227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: Table, decorators: [{
|
|
14219
14228
|
type: Component,
|
|
14220
|
-
args: [{ selector: 'p-table', template: `
|
|
14221
|
-
<div
|
|
14222
|
-
#container
|
|
14223
|
-
[ngStyle]="style"
|
|
14224
|
-
[class]="styleClass"
|
|
14225
|
-
[ngClass]="{ 'p-datatable p-component': true, 'p-datatable-hoverable-rows': rowHover || selectionMode, 'p-datatable-scrollable': scrollable, 'p-datatable-flex-scrollable': scrollable && scrollHeight === 'flex', 'p-datatable-striped': stripedRows, 'p-datatable-sm': size === 'small', 'p-datatable-lg': size === 'large' }"
|
|
14226
|
-
[attr.id]="id"
|
|
14227
|
-
>
|
|
14228
|
-
@if (loading && showLoader) {
|
|
14229
|
-
<div class="p-datatable-loading-overlay p-component-overlay">
|
|
14230
|
-
<i [class]="'p-datatable-loading-icon fa-spin ' + loadingIcon"></i>
|
|
14231
|
-
</div>
|
|
14232
|
-
}
|
|
14233
|
-
@if (captionTemplate) {
|
|
14234
|
-
<div class="p-datatable-header">
|
|
14235
|
-
<ng-container *ngTemplateOutlet="captionTemplate"></ng-container>
|
|
14236
|
-
</div>
|
|
14237
|
-
}
|
|
14238
|
-
@if (paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')) {
|
|
14239
|
-
<ui-paginator
|
|
14240
|
-
[rows]="rows"
|
|
14241
|
-
[first]="first"
|
|
14242
|
-
[totalRecords]="totalRecords"
|
|
14243
|
-
[pageLinkSize]="pageLinks"
|
|
14244
|
-
styleClass="smz-paginator-top"
|
|
14245
|
-
[alwaysShow]="alwaysShowPaginator"
|
|
14246
|
-
(pageChanged)="onPageChange($event)"
|
|
14247
|
-
[rowsPerPageOptions]="rowsPerPageOptions"
|
|
14248
|
-
[currentPageReportTemplate]="currentPageReportTemplate"
|
|
14249
|
-
[showFirstLastIcon]="showFirstLastIcon"
|
|
14250
|
-
[showCurrentPageReport]="showCurrentPageReport"
|
|
14251
|
-
[showPageLinks]="showPageLinks"
|
|
14252
|
-
></ui-paginator>
|
|
14253
|
-
}
|
|
14254
|
-
|
|
14255
|
-
<div #wrapper class="p-datatable-wrapper" [ngStyle]="{ maxHeight: virtualScroll ? '' : scrollHeight }">
|
|
14256
|
-
<ng-container *ngTemplateOutlet="buildInTable; context: { $implicit: processedData, options: { columns } }"></ng-container>
|
|
14257
|
-
|
|
14258
|
-
<ng-template #buildInTable let-items let-scrollerOptions="options">
|
|
14259
|
-
<table
|
|
14260
|
-
#table
|
|
14261
|
-
role="table"
|
|
14262
|
-
[ngClass]="{ 'p-datatable-table': true, 'p-datatable-scrollable-table': scrollable, 'p-datatable-resizable-table': resizableColumns, 'p-datatable-resizable-table-fit': resizableColumns && columnResizeMode === 'fit' }"
|
|
14263
|
-
[class]="tableStyleClass"
|
|
14264
|
-
[style]="tableStyle"
|
|
14265
|
-
[attr.id]="id + '-table'"
|
|
14266
|
-
>
|
|
14267
|
-
<ng-container *ngTemplateOutlet="colGroupTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14268
|
-
<thead #thead class="p-datatable-thead">
|
|
14269
|
-
<ng-container *ngTemplateOutlet="headerGroupedTemplate || headerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14270
|
-
</thead>
|
|
14271
|
-
@if (frozenValue || frozenBodyTemplate) {
|
|
14272
|
-
<tbody
|
|
14273
|
-
class="p-datatable-tbody p-datatable-frozen-tbody"
|
|
14274
|
-
[value]="frozenValue"
|
|
14275
|
-
[frozenRows]="true"
|
|
14276
|
-
[pTableBody]="scrollerOptions.columns"
|
|
14277
|
-
[pTableBodyTemplate]="frozenBodyTemplate"
|
|
14278
|
-
[frozen]="true"
|
|
14279
|
-
></tbody>
|
|
14280
|
-
}
|
|
14281
|
-
<tbody
|
|
14282
|
-
class="p-datatable-tbody"
|
|
14283
|
-
[ngClass]="scrollerOptions.contentStyleClass"
|
|
14284
|
-
[style]="scrollerOptions.contentStyle"
|
|
14285
|
-
[value]="dataToRender(scrollerOptions.rows)"
|
|
14286
|
-
[pTableBody]="scrollerOptions.columns"
|
|
14287
|
-
[pTableBodyTemplate]="bodyTemplate"
|
|
14288
|
-
[scrollerOptions]="scrollerOptions"
|
|
14289
|
-
></tbody>
|
|
14290
|
-
@if (scrollerOptions.spacerStyle) {
|
|
14291
|
-
<tbody [style]="'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'" class="p-datatable-scroller-spacer"></tbody>
|
|
14292
|
-
}
|
|
14293
|
-
@if (footerGroupedTemplate || footerTemplate) {
|
|
14294
|
-
<tfoot #tfoot class="p-datatable-tfoot">
|
|
14295
|
-
<ng-container *ngTemplateOutlet="footerGroupedTemplate || footerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14296
|
-
</tfoot>
|
|
14297
|
-
}
|
|
14298
|
-
</table>
|
|
14299
|
-
</ng-template>
|
|
14300
|
-
</div>
|
|
14301
|
-
|
|
14302
|
-
@if (paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')) {
|
|
14303
|
-
<ui-paginator
|
|
14304
|
-
[rows]="rows"
|
|
14305
|
-
[first]="first"
|
|
14306
|
-
[totalRecords]="totalRecords"
|
|
14307
|
-
[pageLinkSize]="pageLinks"
|
|
14308
|
-
styleClass="smz-paginator-bottom"
|
|
14309
|
-
[alwaysShow]="alwaysShowPaginator"
|
|
14310
|
-
(pageChanged)="onPageChange($event)"
|
|
14311
|
-
[rowsPerPageOptions]="rowsPerPageOptions"
|
|
14312
|
-
[currentPageReportTemplate]="currentPageReportTemplate"
|
|
14313
|
-
[showFirstLastIcon]="showFirstLastIcon"
|
|
14314
|
-
[showCurrentPageReport]="showCurrentPageReport"
|
|
14315
|
-
[showPageLinks]="showPageLinks"
|
|
14316
|
-
></ui-paginator>
|
|
14317
|
-
}
|
|
14318
|
-
|
|
14319
|
-
@if (summaryTemplate) {
|
|
14320
|
-
<div class="p-datatable-footer">
|
|
14321
|
-
<ng-container *ngTemplateOutlet="summaryTemplate"></ng-container>
|
|
14322
|
-
</div>
|
|
14323
|
-
}
|
|
14324
|
-
|
|
14325
|
-
@if (resizableColumns) {
|
|
14326
|
-
<div #resizeHelper class="p-column-resizer-helper" style="display:none"></div>
|
|
14327
|
-
}
|
|
14328
|
-
@if (reorderableColumns) {
|
|
14329
|
-
<span #reorderIndicatorUp class="fa-solid fa-arrow-down p-datatable-reorder-indicator-up" style="display: none;"></span>
|
|
14330
|
-
}
|
|
14331
|
-
@if (reorderableColumns) {
|
|
14332
|
-
<span #reorderIndicatorDown class="fa-solid fa-arrow-up p-datatable-reorder-indicator-down" style="display: none;"></span>
|
|
14333
|
-
}
|
|
14334
|
-
</div>
|
|
14229
|
+
args: [{ selector: 'p-table', template: `
|
|
14230
|
+
<div
|
|
14231
|
+
#container
|
|
14232
|
+
[ngStyle]="style"
|
|
14233
|
+
[class]="styleClass"
|
|
14234
|
+
[ngClass]="{ 'p-datatable p-component': true, 'p-datatable-hoverable-rows': rowHover || selectionMode, 'p-datatable-scrollable': scrollable, 'p-datatable-flex-scrollable': scrollable && scrollHeight === 'flex', 'p-datatable-striped': stripedRows, 'p-datatable-sm': size === 'small', 'p-datatable-lg': size === 'large' }"
|
|
14235
|
+
[attr.id]="id"
|
|
14236
|
+
>
|
|
14237
|
+
@if (loading && showLoader) {
|
|
14238
|
+
<div class="p-datatable-loading-overlay p-component-overlay">
|
|
14239
|
+
<i [class]="'p-datatable-loading-icon fa-spin ' + loadingIcon"></i>
|
|
14240
|
+
</div>
|
|
14241
|
+
}
|
|
14242
|
+
@if (captionTemplate) {
|
|
14243
|
+
<div class="p-datatable-header">
|
|
14244
|
+
<ng-container *ngTemplateOutlet="captionTemplate"></ng-container>
|
|
14245
|
+
</div>
|
|
14246
|
+
}
|
|
14247
|
+
@if (paginator && (paginatorPosition === 'top' || paginatorPosition == 'both')) {
|
|
14248
|
+
<ui-paginator
|
|
14249
|
+
[rows]="rows"
|
|
14250
|
+
[first]="first"
|
|
14251
|
+
[totalRecords]="totalRecords"
|
|
14252
|
+
[pageLinkSize]="pageLinks"
|
|
14253
|
+
styleClass="smz-paginator-top"
|
|
14254
|
+
[alwaysShow]="alwaysShowPaginator"
|
|
14255
|
+
(pageChanged)="onPageChange($event)"
|
|
14256
|
+
[rowsPerPageOptions]="rowsPerPageOptions"
|
|
14257
|
+
[currentPageReportTemplate]="currentPageReportTemplate"
|
|
14258
|
+
[showFirstLastIcon]="showFirstLastIcon"
|
|
14259
|
+
[showCurrentPageReport]="showCurrentPageReport"
|
|
14260
|
+
[showPageLinks]="showPageLinks"
|
|
14261
|
+
></ui-paginator>
|
|
14262
|
+
}
|
|
14263
|
+
|
|
14264
|
+
<div #wrapper class="p-datatable-wrapper" [ngStyle]="{ maxHeight: virtualScroll ? '' : scrollHeight }">
|
|
14265
|
+
<ng-container *ngTemplateOutlet="buildInTable; context: { $implicit: processedData, options: { columns } }"></ng-container>
|
|
14266
|
+
|
|
14267
|
+
<ng-template #buildInTable let-items let-scrollerOptions="options">
|
|
14268
|
+
<table
|
|
14269
|
+
#table
|
|
14270
|
+
role="table"
|
|
14271
|
+
[ngClass]="{ 'p-datatable-table': true, 'p-datatable-scrollable-table': scrollable, 'p-datatable-resizable-table': resizableColumns, 'p-datatable-resizable-table-fit': resizableColumns && columnResizeMode === 'fit' }"
|
|
14272
|
+
[class]="tableStyleClass"
|
|
14273
|
+
[style]="tableStyle"
|
|
14274
|
+
[attr.id]="id + '-table'"
|
|
14275
|
+
>
|
|
14276
|
+
<ng-container *ngTemplateOutlet="colGroupTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14277
|
+
<thead #thead class="p-datatable-thead">
|
|
14278
|
+
<ng-container *ngTemplateOutlet="headerGroupedTemplate || headerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14279
|
+
</thead>
|
|
14280
|
+
@if (frozenValue || frozenBodyTemplate) {
|
|
14281
|
+
<tbody
|
|
14282
|
+
class="p-datatable-tbody p-datatable-frozen-tbody"
|
|
14283
|
+
[value]="frozenValue"
|
|
14284
|
+
[frozenRows]="true"
|
|
14285
|
+
[pTableBody]="scrollerOptions.columns"
|
|
14286
|
+
[pTableBodyTemplate]="frozenBodyTemplate"
|
|
14287
|
+
[frozen]="true"
|
|
14288
|
+
></tbody>
|
|
14289
|
+
}
|
|
14290
|
+
<tbody
|
|
14291
|
+
class="p-datatable-tbody"
|
|
14292
|
+
[ngClass]="scrollerOptions.contentStyleClass"
|
|
14293
|
+
[style]="scrollerOptions.contentStyle"
|
|
14294
|
+
[value]="dataToRender(scrollerOptions.rows)"
|
|
14295
|
+
[pTableBody]="scrollerOptions.columns"
|
|
14296
|
+
[pTableBodyTemplate]="bodyTemplate"
|
|
14297
|
+
[scrollerOptions]="scrollerOptions"
|
|
14298
|
+
></tbody>
|
|
14299
|
+
@if (scrollerOptions.spacerStyle) {
|
|
14300
|
+
<tbody [style]="'height: calc(' + scrollerOptions.spacerStyle.height + ' - ' + scrollerOptions.rows.length * scrollerOptions.itemSize + 'px);'" class="p-datatable-scroller-spacer"></tbody>
|
|
14301
|
+
}
|
|
14302
|
+
@if (footerGroupedTemplate || footerTemplate) {
|
|
14303
|
+
<tfoot #tfoot class="p-datatable-tfoot">
|
|
14304
|
+
<ng-container *ngTemplateOutlet="footerGroupedTemplate || footerTemplate; context: { $implicit: scrollerOptions.columns }"></ng-container>
|
|
14305
|
+
</tfoot>
|
|
14306
|
+
}
|
|
14307
|
+
</table>
|
|
14308
|
+
</ng-template>
|
|
14309
|
+
</div>
|
|
14310
|
+
|
|
14311
|
+
@if (paginator && (paginatorPosition === 'bottom' || paginatorPosition == 'both')) {
|
|
14312
|
+
<ui-paginator
|
|
14313
|
+
[rows]="rows"
|
|
14314
|
+
[first]="first"
|
|
14315
|
+
[totalRecords]="totalRecords"
|
|
14316
|
+
[pageLinkSize]="pageLinks"
|
|
14317
|
+
styleClass="smz-paginator-bottom"
|
|
14318
|
+
[alwaysShow]="alwaysShowPaginator"
|
|
14319
|
+
(pageChanged)="onPageChange($event)"
|
|
14320
|
+
[rowsPerPageOptions]="rowsPerPageOptions"
|
|
14321
|
+
[currentPageReportTemplate]="currentPageReportTemplate"
|
|
14322
|
+
[showFirstLastIcon]="showFirstLastIcon"
|
|
14323
|
+
[showCurrentPageReport]="showCurrentPageReport"
|
|
14324
|
+
[showPageLinks]="showPageLinks"
|
|
14325
|
+
></ui-paginator>
|
|
14326
|
+
}
|
|
14327
|
+
|
|
14328
|
+
@if (summaryTemplate) {
|
|
14329
|
+
<div class="p-datatable-footer">
|
|
14330
|
+
<ng-container *ngTemplateOutlet="summaryTemplate"></ng-container>
|
|
14331
|
+
</div>
|
|
14332
|
+
}
|
|
14333
|
+
|
|
14334
|
+
@if (resizableColumns) {
|
|
14335
|
+
<div #resizeHelper class="p-column-resizer-helper" style="display:none"></div>
|
|
14336
|
+
}
|
|
14337
|
+
@if (reorderableColumns) {
|
|
14338
|
+
<span #reorderIndicatorUp class="fa-solid fa-arrow-down p-datatable-reorder-indicator-up" style="display: none;"></span>
|
|
14339
|
+
}
|
|
14340
|
+
@if (reorderableColumns) {
|
|
14341
|
+
<span #reorderIndicatorDown class="fa-solid fa-arrow-up p-datatable-reorder-indicator-down" style="display: none;"></span>
|
|
14342
|
+
}
|
|
14343
|
+
</div>
|
|
14335
14344
|
`, providers: [TableService], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
|
|
14336
14345
|
class: 'p-element'
|
|
14337
|
-
}, standalone: false, styles: [".p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:1}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}.p-datatable{color:rgb(var(--smz-color-fg));font-family:var(--smz-font-sans);font-size:var(--smz-text-md)}.p-datatable-table{border-collapse:separate;background:rgb(var(--smz-color-surface-1))}.p-datatable-thead>tr>th,.p-datatable-tfoot>tr>td{padding:.75rem 1rem;text-align:left;font-weight:600;background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-tfoot>tr>td{border-top:1px solid rgb(var(--smz-color-line));border-bottom:0}.p-datatable-tbody>tr{background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));transition:background-color var(--smz-duration)}.p-datatable-tbody>tr>td{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-datatable-row-selected):hover{background:rgb(var(--smz-color-surface-3))}.p-datatable-tbody>tr.p-datatable-row-selected,.p-datatable-tbody>tr.p-highlight{background:rgb(var(--smz-color-primary) / .12);color:rgb(var(--smz-color-fg))}.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:rgb(var(--smz-color-surface-0))}.p-datatable-gridlines .p-datatable-thead>tr>th,.p-datatable-gridlines .p-datatable-tbody>tr>td,.p-datatable-gridlines .p-datatable-tfoot>tr>td{border:1px solid rgb(var(--smz-color-line));border-width:0 0 1px 1px}.p-datatable-gridlines .p-datatable-thead>tr>th:last-child,.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child,.p-datatable-gridlines .p-datatable-tfoot>tr>td:last-child{border-right-width:1px}.p-datatable-sm .p-datatable-thead>tr>th,.p-datatable-sm .p-datatable-tbody>tr>td,.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.375rem .75rem}.p-datatable-lg .p-datatable-thead>tr>th,.p-datatable-lg .p-datatable-tbody>tr>td,.p-datatable-lg .p-datatable-tfoot>tr>td{padding:1.1rem 1.25rem}.p-datatable-header,.p-datatable-footer{padding:.75rem 1rem;background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-footer{border-top:1px solid rgb(var(--smz-color-line));border-bottom:0}.p-datatable .p-sortable-column:hover{background:rgb(var(--smz-color-surface-3))}.p-datatable .p-sortable-column:focus-visible{outline:2px solid rgb(var(--smz-color-focus));outline-offset:-2px}.p-datatable .p-datatable-loading-overlay{background:rgb(var(--smz-color-surface-1) / .6);color:rgb(var(--smz-color-primary))}.p-datatable .p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-datatable .p-checkbox,.p-datatable .p-radiobutton{position:relative;display:inline-flex;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-checkbox-box,.p-datatable .p-radiobutton-box{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:1px solid rgb(var(--smz-color-line-strong));background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-on-primary));transition:background-color var(--smz-duration),border-color var(--smz-duration),box-shadow var(--smz-duration)}.p-datatable .p-checkbox-box{border-radius:.3rem}.p-datatable .p-radiobutton-box{border-radius:9999px}.p-datatable .p-checkbox-box.p-highlight,.p-datatable .p-radiobutton-box.p-highlight{background:rgb(var(--smz-color-primary));border-color:rgb(var(--smz-color-primary))}.p-datatable .p-checkbox-box.p-focus,.p-datatable .p-radiobutton-box.p-focus{box-shadow:0 0 0 2px rgb(var(--smz-color-focus) / .45)}.p-datatable .p-checkbox-box.p-disabled,.p-datatable .p-radiobutton-box.p-disabled{opacity:.5;cursor:not-allowed}.p-datatable .p-checkbox-icon{font-size:.7rem;line-height:1}.p-datatable .p-radiobutton-icon{width:.5rem;height:.5rem;border-radius:9999px;background:rgb(var(--smz-color-on-primary));opacity:0}.p-datatable .p-radiobutton-box.p-highlight .p-radiobutton-icon{opacity:1}\n"] }]
|
|
14346
|
+
}, standalone: false, styles: [".p-datatable{position:relative}.p-datatable>.p-datatable-wrapper{overflow:auto}.p-datatable-table{border-spacing:0px;width:100%}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable>.p-datatable-wrapper{position:relative}.p-datatable-scrollable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable>.p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable-table>.p-datatable-tbody>.p-rowgroup-header{position:sticky;z-index:1}.p-datatable-resizable-table>.p-datatable-thead>tr>th,.p-datatable-resizable-table>.p-datatable-tfoot>tr>td,.p-datatable-resizable-table>.p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable-table>.p-datatable-thead>tr>th.p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-table-fit>.p-datatable-thead>tr>th.p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable-tbody>tr>td>.p-column-title{display:none}.p-datatable-scroller-spacer{display:flex}.p-datatable .p-scroller .p-scroller-loading{transform:none!important;min-height:0;position:sticky;top:0;left:0}.p-datatable{color:rgb(var(--smz-color-fg));font-family:var(--smz-font-sans);font-size:var(--smz-text-md)}.p-datatable-table{border-collapse:separate;background:rgb(var(--smz-color-surface-1))}.p-datatable-thead>tr>th,.p-datatable-tfoot>tr>td{padding:.75rem 1rem;text-align:left;font-weight:600;background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-tfoot>tr>td{border-top:1px solid rgb(var(--smz-color-line));border-bottom:0}.p-datatable-tbody>tr{background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));transition:background-color var(--smz-duration)}.p-datatable-tbody>tr>td{padding:.75rem 1rem;border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-hoverable-rows .p-datatable-tbody>tr:not(.p-datatable-row-selected):hover{background:rgb(var(--smz-color-surface-3))}.p-datatable-tbody>tr.p-datatable-row-selected,.p-datatable-tbody>tr.p-highlight{background:rgb(var(--smz-color-primary) / .12);color:rgb(var(--smz-color-fg))}.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:rgb(var(--smz-color-surface-0))}.p-datatable-gridlines .p-datatable-thead>tr>th,.p-datatable-gridlines .p-datatable-tbody>tr>td,.p-datatable-gridlines .p-datatable-tfoot>tr>td{border:1px solid rgb(var(--smz-color-line));border-width:0 0 1px 1px}.p-datatable-gridlines .p-datatable-thead>tr>th:last-child,.p-datatable-gridlines .p-datatable-tbody>tr>td:last-child,.p-datatable-gridlines .p-datatable-tfoot>tr>td:last-child{border-right-width:1px}.p-datatable-sm .p-datatable-thead>tr>th,.p-datatable-sm .p-datatable-tbody>tr>td,.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.375rem .75rem}.p-datatable-lg .p-datatable-thead>tr>th,.p-datatable-lg .p-datatable-tbody>tr>td,.p-datatable-lg .p-datatable-tfoot>tr>td{padding:1.1rem 1.25rem}.p-datatable-header,.p-datatable-footer{padding:.75rem 1rem;background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-fg));border-bottom:1px solid rgb(var(--smz-color-line))}.p-datatable-footer{border-top:1px solid rgb(var(--smz-color-line));border-bottom:0}.p-datatable .p-sortable-column:hover{background:rgb(var(--smz-color-surface-3))}.p-datatable .p-sortable-column:focus-visible{outline:2px solid rgb(var(--smz-color-focus));outline-offset:-2px}.p-datatable .p-datatable-loading-overlay{background:rgb(var(--smz-color-surface-1) / .6);color:rgb(var(--smz-color-primary))}.p-datatable .p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-datatable .p-checkbox,.p-datatable .p-radiobutton{position:relative;display:inline-flex;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-checkbox-box,.p-datatable .p-radiobutton-box{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:1px solid rgb(var(--smz-color-line-strong));background:rgb(var(--smz-color-surface-1));color:rgb(var(--smz-color-on-primary));transition:background-color var(--smz-duration),border-color var(--smz-duration),box-shadow var(--smz-duration)}.p-datatable .p-checkbox-box{border-radius:.3rem}.p-datatable .p-radiobutton-box{border-radius:9999px}.p-datatable .p-checkbox-box.p-highlight,.p-datatable .p-radiobutton-box.p-highlight{background:rgb(var(--smz-color-primary));border-color:rgb(var(--smz-color-primary))}.p-datatable .p-checkbox-box.p-focus,.p-datatable .p-radiobutton-box.p-focus{box-shadow:0 0 0 2px rgb(var(--smz-color-focus) / .45)}.p-datatable .p-checkbox-box.p-disabled,.p-datatable .p-radiobutton-box.p-disabled{opacity:.5;cursor:not-allowed}.p-datatable .p-checkbox-icon{font-size:.7rem;line-height:1}.p-datatable .p-radiobutton-icon{width:.5rem;height:.5rem;border-radius:9999px;background:rgb(var(--smz-color-on-primary));opacity:0}.p-datatable .p-radiobutton-box.p-highlight .p-radiobutton-icon{opacity:1}.p-datatable-thead>tr>th.p-highlight{background:rgb(var(--smz-color-primary) / .1);color:rgb(var(--smz-color-primary))}.p-datatable-striped .p-datatable-tbody>tr:nth-child(2n){background:rgb(var(--smz-color-surface-3) / .5)}.p-datatable-sm .p-datatable-thead>tr>th,.p-datatable-sm .p-datatable-tbody>tr>td,.p-datatable-sm .p-datatable-tfoot>tr>td{padding:.5rem}.p-column-filter-menu-button,.p-column-filter-clear-button{width:2rem;height:2rem;border-radius:9999px;color:rgb(var(--smz-color-fg-muted));background:transparent;border:0;cursor:pointer;transition:background-color var(--smz-duration)}.p-column-filter-menu-button:hover,.p-column-filter-clear-button:hover{background:rgb(var(--smz-color-surface-3));color:rgb(var(--smz-color-fg))}.p-column-filter-overlay{min-width:14rem;padding:.5rem;background:rgb(var(--smz-color-surface-2));color:rgb(var(--smz-color-fg));border:1px solid rgb(var(--smz-color-line));border-radius:var(--smz-radius-overlay);box-shadow:var(--smz-shadow-overlay);font-family:var(--smz-font-sans);font-size:var(--smz-text-md)}.p-column-filter-overlay .p-column-filter-row-items,.p-column-filter-overlay .p-column-filter-constraint{padding:.25rem 0}.p-column-filter-overlay .p-column-filter-row-item{padding:.5rem .75rem;border-radius:var(--smz-radius-control);cursor:pointer}.p-column-filter-overlay .p-column-filter-row-item:hover,.p-column-filter-overlay .p-column-filter-row-item.p-highlight{background:rgb(var(--smz-color-surface-3))}.p-column-filter-overlay .p-column-filter-buttonbar{padding:.5rem 0 0;border-top:1px solid rgb(var(--smz-color-line))}\n"] }]
|
|
14338
14347
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: TableService }, { type: i0.ChangeDetectorRef }, { type: TableOverlayService }], propDecorators: { frozenColumns: [{
|
|
14339
14348
|
type: Input
|
|
14340
14349
|
}], frozenValue: [{
|
|
@@ -14700,188 +14709,188 @@ class TableBody {
|
|
|
14700
14709
|
return getItemOptions ? getItemOptions(index).index : index;
|
|
14701
14710
|
}
|
|
14702
14711
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TableBody, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
14703
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: TableBody, isStandalone: false, selector: "[pTableBody]", inputs: { columns: ["pTableBody", "columns"], template: ["pTableBodyTemplate", "template"], value: "value", frozen: "frozen", frozenRows: "frozenRows", scrollerOptions: "scrollerOptions" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
14704
|
-
@if (!dt.expandedRowTemplate) {
|
|
14705
|
-
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14706
|
-
@if (dt.groupHeaderTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, rowIndex)) {
|
|
14707
|
-
<ng-container role="row">
|
|
14708
|
-
<ng-container
|
|
14709
|
-
*ngTemplateOutlet="dt.groupHeaderTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14710
|
-
></ng-container>
|
|
14711
|
-
</ng-container>
|
|
14712
|
-
}
|
|
14713
|
-
@if (dt.rowGroupMode !== 'rowspan') {
|
|
14714
|
-
<ng-container
|
|
14715
|
-
*ngTemplateOutlet="rowData ? template : dt.loadingBodyTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14716
|
-
></ng-container>
|
|
14717
|
-
}
|
|
14718
|
-
@if (dt.rowGroupMode === 'rowspan') {
|
|
14719
|
-
<ng-container
|
|
14720
|
-
*ngTemplateOutlet="
|
|
14721
|
-
rowData ? template : dt.loadingBodyTemplate;
|
|
14722
|
-
context: {
|
|
14723
|
-
$implicit: rowData,
|
|
14724
|
-
rowIndex: getRowIndex(rowIndex),
|
|
14725
|
-
columns: columns,
|
|
14726
|
-
editing: dt.editMode === 'row' && dt.isRowEditing(rowData),
|
|
14727
|
-
frozen: frozen,
|
|
14728
|
-
rowgroup: shouldRenderRowspan(value, rowData, rowIndex),
|
|
14729
|
-
rowspan: calculateRowGroupSize(value, rowData, rowIndex)
|
|
14730
|
-
}
|
|
14731
|
-
"
|
|
14732
|
-
></ng-container>
|
|
14733
|
-
}
|
|
14734
|
-
@if (dt.groupFooterTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, rowIndex)) {
|
|
14735
|
-
<ng-container role="row">
|
|
14736
|
-
<ng-container
|
|
14737
|
-
*ngTemplateOutlet="dt.groupFooterTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14738
|
-
></ng-container>
|
|
14739
|
-
</ng-container>
|
|
14740
|
-
}
|
|
14741
|
-
}
|
|
14742
|
-
}
|
|
14743
|
-
@if (dt.expandedRowTemplate && !(frozen && dt.frozenExpandedRowTemplate)) {
|
|
14744
|
-
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14745
|
-
@if (!dt.groupHeaderTemplate) {
|
|
14746
|
-
<ng-container
|
|
14747
|
-
*ngTemplateOutlet="template; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14748
|
-
></ng-container>
|
|
14749
|
-
}
|
|
14750
|
-
@if (dt.groupHeaderTemplate && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, getRowIndex(rowIndex))) {
|
|
14751
|
-
<ng-container role="row">
|
|
14752
|
-
<ng-container
|
|
14753
|
-
*ngTemplateOutlet="
|
|
14754
|
-
dt.groupHeaderTemplate;
|
|
14755
|
-
context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }
|
|
14756
|
-
"
|
|
14757
|
-
></ng-container>
|
|
14758
|
-
</ng-container>
|
|
14759
|
-
}
|
|
14760
|
-
@if (dt.isRowExpanded(rowData)) {
|
|
14761
|
-
<ng-container *ngTemplateOutlet="dt.expandedRowTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, frozen: frozen }"></ng-container>
|
|
14762
|
-
@if (dt.groupFooterTemplate && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, getRowIndex(rowIndex))) {
|
|
14763
|
-
<ng-container role="row">
|
|
14764
|
-
<ng-container
|
|
14765
|
-
*ngTemplateOutlet="
|
|
14766
|
-
dt.groupFooterTemplate;
|
|
14767
|
-
context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }
|
|
14768
|
-
"
|
|
14769
|
-
></ng-container>
|
|
14770
|
-
</ng-container>
|
|
14771
|
-
}
|
|
14772
|
-
}
|
|
14773
|
-
}
|
|
14774
|
-
}
|
|
14775
|
-
@if (dt.frozenExpandedRowTemplate && frozen) {
|
|
14776
|
-
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14777
|
-
<ng-container
|
|
14778
|
-
*ngTemplateOutlet="template; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14779
|
-
></ng-container>
|
|
14780
|
-
@if (dt.isRowExpanded(rowData)) {
|
|
14781
|
-
<ng-container *ngTemplateOutlet="dt.frozenExpandedRowTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, frozen: frozen }"></ng-container>
|
|
14782
|
-
}
|
|
14783
|
-
}
|
|
14784
|
-
}
|
|
14785
|
-
@if (dt.loading) {
|
|
14786
|
-
<ng-container *ngTemplateOutlet="dt.loadingBodyTemplate; context: { $implicit: columns, frozen: frozen }"></ng-container>
|
|
14787
|
-
}
|
|
14788
|
-
@if (dt.isEmpty() && !dt.loading) {
|
|
14789
|
-
<ng-container *ngTemplateOutlet="dt.emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }"></ng-container>
|
|
14790
|
-
}
|
|
14712
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: TableBody, isStandalone: false, selector: "[pTableBody]", inputs: { columns: ["pTableBody", "columns"], template: ["pTableBodyTemplate", "template"], value: "value", frozen: "frozen", frozenRows: "frozenRows", scrollerOptions: "scrollerOptions" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
14713
|
+
@if (!dt.expandedRowTemplate) {
|
|
14714
|
+
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14715
|
+
@if (dt.groupHeaderTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, rowIndex)) {
|
|
14716
|
+
<ng-container role="row">
|
|
14717
|
+
<ng-container
|
|
14718
|
+
*ngTemplateOutlet="dt.groupHeaderTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14719
|
+
></ng-container>
|
|
14720
|
+
</ng-container>
|
|
14721
|
+
}
|
|
14722
|
+
@if (dt.rowGroupMode !== 'rowspan') {
|
|
14723
|
+
<ng-container
|
|
14724
|
+
*ngTemplateOutlet="rowData ? template : dt.loadingBodyTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14725
|
+
></ng-container>
|
|
14726
|
+
}
|
|
14727
|
+
@if (dt.rowGroupMode === 'rowspan') {
|
|
14728
|
+
<ng-container
|
|
14729
|
+
*ngTemplateOutlet="
|
|
14730
|
+
rowData ? template : dt.loadingBodyTemplate;
|
|
14731
|
+
context: {
|
|
14732
|
+
$implicit: rowData,
|
|
14733
|
+
rowIndex: getRowIndex(rowIndex),
|
|
14734
|
+
columns: columns,
|
|
14735
|
+
editing: dt.editMode === 'row' && dt.isRowEditing(rowData),
|
|
14736
|
+
frozen: frozen,
|
|
14737
|
+
rowgroup: shouldRenderRowspan(value, rowData, rowIndex),
|
|
14738
|
+
rowspan: calculateRowGroupSize(value, rowData, rowIndex)
|
|
14739
|
+
}
|
|
14740
|
+
"
|
|
14741
|
+
></ng-container>
|
|
14742
|
+
}
|
|
14743
|
+
@if (dt.groupFooterTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, rowIndex)) {
|
|
14744
|
+
<ng-container role="row">
|
|
14745
|
+
<ng-container
|
|
14746
|
+
*ngTemplateOutlet="dt.groupFooterTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14747
|
+
></ng-container>
|
|
14748
|
+
</ng-container>
|
|
14749
|
+
}
|
|
14750
|
+
}
|
|
14751
|
+
}
|
|
14752
|
+
@if (dt.expandedRowTemplate && !(frozen && dt.frozenExpandedRowTemplate)) {
|
|
14753
|
+
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14754
|
+
@if (!dt.groupHeaderTemplate) {
|
|
14755
|
+
<ng-container
|
|
14756
|
+
*ngTemplateOutlet="template; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14757
|
+
></ng-container>
|
|
14758
|
+
}
|
|
14759
|
+
@if (dt.groupHeaderTemplate && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, getRowIndex(rowIndex))) {
|
|
14760
|
+
<ng-container role="row">
|
|
14761
|
+
<ng-container
|
|
14762
|
+
*ngTemplateOutlet="
|
|
14763
|
+
dt.groupHeaderTemplate;
|
|
14764
|
+
context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }
|
|
14765
|
+
"
|
|
14766
|
+
></ng-container>
|
|
14767
|
+
</ng-container>
|
|
14768
|
+
}
|
|
14769
|
+
@if (dt.isRowExpanded(rowData)) {
|
|
14770
|
+
<ng-container *ngTemplateOutlet="dt.expandedRowTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, frozen: frozen }"></ng-container>
|
|
14771
|
+
@if (dt.groupFooterTemplate && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, getRowIndex(rowIndex))) {
|
|
14772
|
+
<ng-container role="row">
|
|
14773
|
+
<ng-container
|
|
14774
|
+
*ngTemplateOutlet="
|
|
14775
|
+
dt.groupFooterTemplate;
|
|
14776
|
+
context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }
|
|
14777
|
+
"
|
|
14778
|
+
></ng-container>
|
|
14779
|
+
</ng-container>
|
|
14780
|
+
}
|
|
14781
|
+
}
|
|
14782
|
+
}
|
|
14783
|
+
}
|
|
14784
|
+
@if (dt.frozenExpandedRowTemplate && frozen) {
|
|
14785
|
+
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14786
|
+
<ng-container
|
|
14787
|
+
*ngTemplateOutlet="template; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14788
|
+
></ng-container>
|
|
14789
|
+
@if (dt.isRowExpanded(rowData)) {
|
|
14790
|
+
<ng-container *ngTemplateOutlet="dt.frozenExpandedRowTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, frozen: frozen }"></ng-container>
|
|
14791
|
+
}
|
|
14792
|
+
}
|
|
14793
|
+
}
|
|
14794
|
+
@if (dt.loading) {
|
|
14795
|
+
<ng-container *ngTemplateOutlet="dt.loadingBodyTemplate; context: { $implicit: columns, frozen: frozen }"></ng-container>
|
|
14796
|
+
}
|
|
14797
|
+
@if (dt.isEmpty() && !dt.loading) {
|
|
14798
|
+
<ng-container *ngTemplateOutlet="dt.emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }"></ng-container>
|
|
14799
|
+
}
|
|
14791
14800
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
14792
14801
|
}
|
|
14793
14802
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TableBody, decorators: [{
|
|
14794
14803
|
type: Component,
|
|
14795
14804
|
args: [{
|
|
14796
14805
|
selector: '[pTableBody]',
|
|
14797
|
-
template: `
|
|
14798
|
-
@if (!dt.expandedRowTemplate) {
|
|
14799
|
-
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14800
|
-
@if (dt.groupHeaderTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, rowIndex)) {
|
|
14801
|
-
<ng-container role="row">
|
|
14802
|
-
<ng-container
|
|
14803
|
-
*ngTemplateOutlet="dt.groupHeaderTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14804
|
-
></ng-container>
|
|
14805
|
-
</ng-container>
|
|
14806
|
-
}
|
|
14807
|
-
@if (dt.rowGroupMode !== 'rowspan') {
|
|
14808
|
-
<ng-container
|
|
14809
|
-
*ngTemplateOutlet="rowData ? template : dt.loadingBodyTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14810
|
-
></ng-container>
|
|
14811
|
-
}
|
|
14812
|
-
@if (dt.rowGroupMode === 'rowspan') {
|
|
14813
|
-
<ng-container
|
|
14814
|
-
*ngTemplateOutlet="
|
|
14815
|
-
rowData ? template : dt.loadingBodyTemplate;
|
|
14816
|
-
context: {
|
|
14817
|
-
$implicit: rowData,
|
|
14818
|
-
rowIndex: getRowIndex(rowIndex),
|
|
14819
|
-
columns: columns,
|
|
14820
|
-
editing: dt.editMode === 'row' && dt.isRowEditing(rowData),
|
|
14821
|
-
frozen: frozen,
|
|
14822
|
-
rowgroup: shouldRenderRowspan(value, rowData, rowIndex),
|
|
14823
|
-
rowspan: calculateRowGroupSize(value, rowData, rowIndex)
|
|
14824
|
-
}
|
|
14825
|
-
"
|
|
14826
|
-
></ng-container>
|
|
14827
|
-
}
|
|
14828
|
-
@if (dt.groupFooterTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, rowIndex)) {
|
|
14829
|
-
<ng-container role="row">
|
|
14830
|
-
<ng-container
|
|
14831
|
-
*ngTemplateOutlet="dt.groupFooterTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14832
|
-
></ng-container>
|
|
14833
|
-
</ng-container>
|
|
14834
|
-
}
|
|
14835
|
-
}
|
|
14836
|
-
}
|
|
14837
|
-
@if (dt.expandedRowTemplate && !(frozen && dt.frozenExpandedRowTemplate)) {
|
|
14838
|
-
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14839
|
-
@if (!dt.groupHeaderTemplate) {
|
|
14840
|
-
<ng-container
|
|
14841
|
-
*ngTemplateOutlet="template; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14842
|
-
></ng-container>
|
|
14843
|
-
}
|
|
14844
|
-
@if (dt.groupHeaderTemplate && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, getRowIndex(rowIndex))) {
|
|
14845
|
-
<ng-container role="row">
|
|
14846
|
-
<ng-container
|
|
14847
|
-
*ngTemplateOutlet="
|
|
14848
|
-
dt.groupHeaderTemplate;
|
|
14849
|
-
context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }
|
|
14850
|
-
"
|
|
14851
|
-
></ng-container>
|
|
14852
|
-
</ng-container>
|
|
14853
|
-
}
|
|
14854
|
-
@if (dt.isRowExpanded(rowData)) {
|
|
14855
|
-
<ng-container *ngTemplateOutlet="dt.expandedRowTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, frozen: frozen }"></ng-container>
|
|
14856
|
-
@if (dt.groupFooterTemplate && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, getRowIndex(rowIndex))) {
|
|
14857
|
-
<ng-container role="row">
|
|
14858
|
-
<ng-container
|
|
14859
|
-
*ngTemplateOutlet="
|
|
14860
|
-
dt.groupFooterTemplate;
|
|
14861
|
-
context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }
|
|
14862
|
-
"
|
|
14863
|
-
></ng-container>
|
|
14864
|
-
</ng-container>
|
|
14865
|
-
}
|
|
14866
|
-
}
|
|
14867
|
-
}
|
|
14868
|
-
}
|
|
14869
|
-
@if (dt.frozenExpandedRowTemplate && frozen) {
|
|
14870
|
-
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14871
|
-
<ng-container
|
|
14872
|
-
*ngTemplateOutlet="template; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14873
|
-
></ng-container>
|
|
14874
|
-
@if (dt.isRowExpanded(rowData)) {
|
|
14875
|
-
<ng-container *ngTemplateOutlet="dt.frozenExpandedRowTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, frozen: frozen }"></ng-container>
|
|
14876
|
-
}
|
|
14877
|
-
}
|
|
14878
|
-
}
|
|
14879
|
-
@if (dt.loading) {
|
|
14880
|
-
<ng-container *ngTemplateOutlet="dt.loadingBodyTemplate; context: { $implicit: columns, frozen: frozen }"></ng-container>
|
|
14881
|
-
}
|
|
14882
|
-
@if (dt.isEmpty() && !dt.loading) {
|
|
14883
|
-
<ng-container *ngTemplateOutlet="dt.emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }"></ng-container>
|
|
14884
|
-
}
|
|
14806
|
+
template: `
|
|
14807
|
+
@if (!dt.expandedRowTemplate) {
|
|
14808
|
+
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14809
|
+
@if (dt.groupHeaderTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, rowIndex)) {
|
|
14810
|
+
<ng-container role="row">
|
|
14811
|
+
<ng-container
|
|
14812
|
+
*ngTemplateOutlet="dt.groupHeaderTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14813
|
+
></ng-container>
|
|
14814
|
+
</ng-container>
|
|
14815
|
+
}
|
|
14816
|
+
@if (dt.rowGroupMode !== 'rowspan') {
|
|
14817
|
+
<ng-container
|
|
14818
|
+
*ngTemplateOutlet="rowData ? template : dt.loadingBodyTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14819
|
+
></ng-container>
|
|
14820
|
+
}
|
|
14821
|
+
@if (dt.rowGroupMode === 'rowspan') {
|
|
14822
|
+
<ng-container
|
|
14823
|
+
*ngTemplateOutlet="
|
|
14824
|
+
rowData ? template : dt.loadingBodyTemplate;
|
|
14825
|
+
context: {
|
|
14826
|
+
$implicit: rowData,
|
|
14827
|
+
rowIndex: getRowIndex(rowIndex),
|
|
14828
|
+
columns: columns,
|
|
14829
|
+
editing: dt.editMode === 'row' && dt.isRowEditing(rowData),
|
|
14830
|
+
frozen: frozen,
|
|
14831
|
+
rowgroup: shouldRenderRowspan(value, rowData, rowIndex),
|
|
14832
|
+
rowspan: calculateRowGroupSize(value, rowData, rowIndex)
|
|
14833
|
+
}
|
|
14834
|
+
"
|
|
14835
|
+
></ng-container>
|
|
14836
|
+
}
|
|
14837
|
+
@if (dt.groupFooterTemplate && !dt.virtualScroll && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, rowIndex)) {
|
|
14838
|
+
<ng-container role="row">
|
|
14839
|
+
<ng-container
|
|
14840
|
+
*ngTemplateOutlet="dt.groupFooterTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14841
|
+
></ng-container>
|
|
14842
|
+
</ng-container>
|
|
14843
|
+
}
|
|
14844
|
+
}
|
|
14845
|
+
}
|
|
14846
|
+
@if (dt.expandedRowTemplate && !(frozen && dt.frozenExpandedRowTemplate)) {
|
|
14847
|
+
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14848
|
+
@if (!dt.groupHeaderTemplate) {
|
|
14849
|
+
<ng-container
|
|
14850
|
+
*ngTemplateOutlet="template; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14851
|
+
></ng-container>
|
|
14852
|
+
}
|
|
14853
|
+
@if (dt.groupHeaderTemplate && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupHeader(value, rowData, getRowIndex(rowIndex))) {
|
|
14854
|
+
<ng-container role="row">
|
|
14855
|
+
<ng-container
|
|
14856
|
+
*ngTemplateOutlet="
|
|
14857
|
+
dt.groupHeaderTemplate;
|
|
14858
|
+
context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }
|
|
14859
|
+
"
|
|
14860
|
+
></ng-container>
|
|
14861
|
+
</ng-container>
|
|
14862
|
+
}
|
|
14863
|
+
@if (dt.isRowExpanded(rowData)) {
|
|
14864
|
+
<ng-container *ngTemplateOutlet="dt.expandedRowTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, frozen: frozen }"></ng-container>
|
|
14865
|
+
@if (dt.groupFooterTemplate && dt.rowGroupMode === 'subheader' && shouldRenderRowGroupFooter(value, rowData, getRowIndex(rowIndex))) {
|
|
14866
|
+
<ng-container role="row">
|
|
14867
|
+
<ng-container
|
|
14868
|
+
*ngTemplateOutlet="
|
|
14869
|
+
dt.groupFooterTemplate;
|
|
14870
|
+
context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }
|
|
14871
|
+
"
|
|
14872
|
+
></ng-container>
|
|
14873
|
+
</ng-container>
|
|
14874
|
+
}
|
|
14875
|
+
}
|
|
14876
|
+
}
|
|
14877
|
+
}
|
|
14878
|
+
@if (dt.frozenExpandedRowTemplate && frozen) {
|
|
14879
|
+
@for (rowData of value; track $any(dt.rowTrackBy)(rowIndex, rowData); let rowIndex = $index) {
|
|
14880
|
+
<ng-container
|
|
14881
|
+
*ngTemplateOutlet="template; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, expanded: dt.isRowExpanded(rowData), editing: dt.editMode === 'row' && dt.isRowEditing(rowData), frozen: frozen }"
|
|
14882
|
+
></ng-container>
|
|
14883
|
+
@if (dt.isRowExpanded(rowData)) {
|
|
14884
|
+
<ng-container *ngTemplateOutlet="dt.frozenExpandedRowTemplate; context: { $implicit: rowData, rowIndex: getRowIndex(rowIndex), columns: columns, frozen: frozen }"></ng-container>
|
|
14885
|
+
}
|
|
14886
|
+
}
|
|
14887
|
+
}
|
|
14888
|
+
@if (dt.loading) {
|
|
14889
|
+
<ng-container *ngTemplateOutlet="dt.loadingBodyTemplate; context: { $implicit: columns, frozen: frozen }"></ng-container>
|
|
14890
|
+
}
|
|
14891
|
+
@if (dt.isEmpty() && !dt.loading) {
|
|
14892
|
+
<ng-container *ngTemplateOutlet="dt.emptyMessageTemplate; context: { $implicit: columns, frozen: frozen }"></ng-container>
|
|
14893
|
+
}
|
|
14885
14894
|
`,
|
|
14886
14895
|
changeDetection: ChangeDetectionStrategy.Default,
|
|
14887
14896
|
encapsulation: ViewEncapsulation.None,
|
|
@@ -15125,22 +15134,22 @@ class SortIcon {
|
|
|
15125
15134
|
}
|
|
15126
15135
|
}
|
|
15127
15136
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SortIcon, deps: [{ token: Table }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
15128
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SortIcon, isStandalone: false, selector: "p-sortIcon", inputs: { field: "field" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
15129
|
-
<i class="p-sortable-column-icon fa-solid fa-fw" [ngClass]="{ 'fa-arrow-up-short-wide': sortOrder === 1, 'fa-arrow-down-wide-short': sortOrder === -1, 'fa-sort': sortOrder === 0 }"></i>
|
|
15130
|
-
@if (isMultiSorted()) {
|
|
15131
|
-
<span class="p-sortable-column-badge">{{ getBadgeValue() }}</span>
|
|
15132
|
-
}
|
|
15137
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SortIcon, isStandalone: false, selector: "p-sortIcon", inputs: { field: "field" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
15138
|
+
<i class="p-sortable-column-icon fa-solid fa-fw" [ngClass]="{ 'fa-arrow-up-short-wide': sortOrder === 1, 'fa-arrow-down-wide-short': sortOrder === -1, 'fa-sort': sortOrder === 0 }"></i>
|
|
15139
|
+
@if (isMultiSorted()) {
|
|
15140
|
+
<span class="p-sortable-column-badge">{{ getBadgeValue() }}</span>
|
|
15141
|
+
}
|
|
15133
15142
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
15134
15143
|
}
|
|
15135
15144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SortIcon, decorators: [{
|
|
15136
15145
|
type: Component,
|
|
15137
15146
|
args: [{
|
|
15138
15147
|
selector: 'p-sortIcon',
|
|
15139
|
-
template: `
|
|
15140
|
-
<i class="p-sortable-column-icon fa-solid fa-fw" [ngClass]="{ 'fa-arrow-up-short-wide': sortOrder === 1, 'fa-arrow-down-wide-short': sortOrder === -1, 'fa-sort': sortOrder === 0 }"></i>
|
|
15141
|
-
@if (isMultiSorted()) {
|
|
15142
|
-
<span class="p-sortable-column-badge">{{ getBadgeValue() }}</span>
|
|
15143
|
-
}
|
|
15148
|
+
template: `
|
|
15149
|
+
<i class="p-sortable-column-icon fa-solid fa-fw" [ngClass]="{ 'fa-arrow-up-short-wide': sortOrder === 1, 'fa-arrow-down-wide-short': sortOrder === -1, 'fa-sort': sortOrder === 0 }"></i>
|
|
15150
|
+
@if (isMultiSorted()) {
|
|
15151
|
+
<span class="p-sortable-column-badge">{{ getBadgeValue() }}</span>
|
|
15152
|
+
}
|
|
15144
15153
|
`,
|
|
15145
15154
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
15146
15155
|
encapsulation: ViewEncapsulation.None,
|
|
@@ -16133,26 +16142,26 @@ class CellEditor {
|
|
|
16133
16142
|
return (this.dt.editingCell && this.editableColumn && this.dt.editingCell === this.editableColumn.el.nativeElement) || (this.editableRow && this.dt.editMode === 'row' && this.dt.isRowEditing(this.editableRow.data));
|
|
16134
16143
|
}
|
|
16135
16144
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: CellEditor, deps: [{ token: Table }, { token: EditableColumn, optional: true }, { token: EditableRow, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
16136
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: CellEditor, isStandalone: false, selector: "p-cellEditor", host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], ngImport: i0, template: `
|
|
16137
|
-
@if (editing) {
|
|
16138
|
-
<ng-container *ngTemplateOutlet="inputTemplate"></ng-container>
|
|
16139
|
-
}
|
|
16140
|
-
@if (!editing) {
|
|
16141
|
-
<ng-container *ngTemplateOutlet="outputTemplate"></ng-container>
|
|
16142
|
-
}
|
|
16145
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: CellEditor, isStandalone: false, selector: "p-cellEditor", host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], ngImport: i0, template: `
|
|
16146
|
+
@if (editing) {
|
|
16147
|
+
<ng-container *ngTemplateOutlet="inputTemplate"></ng-container>
|
|
16148
|
+
}
|
|
16149
|
+
@if (!editing) {
|
|
16150
|
+
<ng-container *ngTemplateOutlet="outputTemplate"></ng-container>
|
|
16151
|
+
}
|
|
16143
16152
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
16144
16153
|
}
|
|
16145
16154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: CellEditor, decorators: [{
|
|
16146
16155
|
type: Component,
|
|
16147
16156
|
args: [{
|
|
16148
16157
|
selector: 'p-cellEditor',
|
|
16149
|
-
template: `
|
|
16150
|
-
@if (editing) {
|
|
16151
|
-
<ng-container *ngTemplateOutlet="inputTemplate"></ng-container>
|
|
16152
|
-
}
|
|
16153
|
-
@if (!editing) {
|
|
16154
|
-
<ng-container *ngTemplateOutlet="outputTemplate"></ng-container>
|
|
16155
|
-
}
|
|
16158
|
+
template: `
|
|
16159
|
+
@if (editing) {
|
|
16160
|
+
<ng-container *ngTemplateOutlet="inputTemplate"></ng-container>
|
|
16161
|
+
}
|
|
16162
|
+
@if (!editing) {
|
|
16163
|
+
<ng-container *ngTemplateOutlet="outputTemplate"></ng-container>
|
|
16164
|
+
}
|
|
16156
16165
|
`,
|
|
16157
16166
|
encapsulation: ViewEncapsulation.None,
|
|
16158
16167
|
host: {
|
|
@@ -16214,30 +16223,30 @@ class TableRadioButton {
|
|
|
16214
16223
|
}
|
|
16215
16224
|
}
|
|
16216
16225
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TableRadioButton, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
16217
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: TableRadioButton, isStandalone: false, selector: "p-tableRadioButton", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
16218
|
-
<div class="p-radiobutton p-component" [ngClass]="{ 'p-radiobutton-focused': focused, 'p-radiobutton-disabled': disabled }" (click)="onClick($event)">
|
|
16219
|
-
<div class="p-hidden-accessible">
|
|
16220
|
-
<input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.aria-label]="ariaLabel" />
|
|
16221
|
-
</div>
|
|
16222
|
-
<div #box [ngClass]="{ 'p-radiobutton-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="radio" [attr.aria-checked]="checked">
|
|
16223
|
-
<div class="p-radiobutton-icon"></div>
|
|
16224
|
-
</div>
|
|
16225
|
-
</div>
|
|
16226
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: TableRadioButton, isStandalone: false, selector: "p-tableRadioButton", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
16227
|
+
<div class="p-radiobutton p-component" [ngClass]="{ 'p-radiobutton-focused': focused, 'p-radiobutton-disabled': disabled }" (click)="onClick($event)">
|
|
16228
|
+
<div class="p-hidden-accessible">
|
|
16229
|
+
<input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.aria-label]="ariaLabel" />
|
|
16230
|
+
</div>
|
|
16231
|
+
<div #box [ngClass]="{ 'p-radiobutton-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="radio" [attr.aria-checked]="checked">
|
|
16232
|
+
<div class="p-radiobutton-icon"></div>
|
|
16233
|
+
</div>
|
|
16234
|
+
</div>
|
|
16226
16235
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
16227
16236
|
}
|
|
16228
16237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TableRadioButton, decorators: [{
|
|
16229
16238
|
type: Component,
|
|
16230
16239
|
args: [{
|
|
16231
16240
|
selector: 'p-tableRadioButton',
|
|
16232
|
-
template: `
|
|
16233
|
-
<div class="p-radiobutton p-component" [ngClass]="{ 'p-radiobutton-focused': focused, 'p-radiobutton-disabled': disabled }" (click)="onClick($event)">
|
|
16234
|
-
<div class="p-hidden-accessible">
|
|
16235
|
-
<input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.aria-label]="ariaLabel" />
|
|
16236
|
-
</div>
|
|
16237
|
-
<div #box [ngClass]="{ 'p-radiobutton-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="radio" [attr.aria-checked]="checked">
|
|
16238
|
-
<div class="p-radiobutton-icon"></div>
|
|
16239
|
-
</div>
|
|
16240
|
-
</div>
|
|
16241
|
+
template: `
|
|
16242
|
+
<div class="p-radiobutton p-component" [ngClass]="{ 'p-radiobutton-focused': focused, 'p-radiobutton-disabled': disabled }" (click)="onClick($event)">
|
|
16243
|
+
<div class="p-hidden-accessible">
|
|
16244
|
+
<input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.aria-label]="ariaLabel" />
|
|
16245
|
+
</div>
|
|
16246
|
+
<div #box [ngClass]="{ 'p-radiobutton-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="radio" [attr.aria-checked]="checked">
|
|
16247
|
+
<div class="p-radiobutton-icon"></div>
|
|
16248
|
+
</div>
|
|
16249
|
+
</div>
|
|
16241
16250
|
`,
|
|
16242
16251
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16243
16252
|
encapsulation: ViewEncapsulation.None,
|
|
@@ -16306,30 +16315,30 @@ class TableCheckbox {
|
|
|
16306
16315
|
}
|
|
16307
16316
|
}
|
|
16308
16317
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TableCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
16309
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: TableCheckbox, isStandalone: false, selector: "p-tableCheckbox", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", required: "required", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
16310
|
-
<div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': disabled }" (click)="onClick($event)">
|
|
16311
|
-
<div class="p-hidden-accessible">
|
|
16312
|
-
<input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.required]="required" [attr.aria-label]="ariaLabel" />
|
|
16313
|
-
</div>
|
|
16314
|
-
<div #box [ngClass]="{ 'p-checkbox-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
|
|
16315
|
-
<span class="p-checkbox-icon" [ngClass]="{ 'fa-solid fa-check': checked }"></span>
|
|
16316
|
-
</div>
|
|
16317
|
-
</div>
|
|
16318
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: TableCheckbox, isStandalone: false, selector: "p-tableCheckbox", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", required: "required", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
16319
|
+
<div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': disabled }" (click)="onClick($event)">
|
|
16320
|
+
<div class="p-hidden-accessible">
|
|
16321
|
+
<input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.required]="required" [attr.aria-label]="ariaLabel" />
|
|
16322
|
+
</div>
|
|
16323
|
+
<div #box [ngClass]="{ 'p-checkbox-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
|
|
16324
|
+
<span class="p-checkbox-icon" [ngClass]="{ 'fa-solid fa-check': checked }"></span>
|
|
16325
|
+
</div>
|
|
16326
|
+
</div>
|
|
16318
16327
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
16319
16328
|
}
|
|
16320
16329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TableCheckbox, decorators: [{
|
|
16321
16330
|
type: Component,
|
|
16322
16331
|
args: [{
|
|
16323
16332
|
selector: 'p-tableCheckbox',
|
|
16324
|
-
template: `
|
|
16325
|
-
<div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': disabled }" (click)="onClick($event)">
|
|
16326
|
-
<div class="p-hidden-accessible">
|
|
16327
|
-
<input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.required]="required" [attr.aria-label]="ariaLabel" />
|
|
16328
|
-
</div>
|
|
16329
|
-
<div #box [ngClass]="{ 'p-checkbox-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
|
|
16330
|
-
<span class="p-checkbox-icon" [ngClass]="{ 'fa-solid fa-check': checked }"></span>
|
|
16331
|
-
</div>
|
|
16332
|
-
</div>
|
|
16333
|
+
template: `
|
|
16334
|
+
<div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': disabled }" (click)="onClick($event)">
|
|
16335
|
+
<div class="p-hidden-accessible">
|
|
16336
|
+
<input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled" [attr.required]="required" [attr.aria-label]="ariaLabel" />
|
|
16337
|
+
</div>
|
|
16338
|
+
<div #box [ngClass]="{ 'p-checkbox-box p-component': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': disabled }" role="checkbox" [attr.aria-checked]="checked">
|
|
16339
|
+
<span class="p-checkbox-icon" [ngClass]="{ 'fa-solid fa-check': checked }"></span>
|
|
16340
|
+
</div>
|
|
16341
|
+
</div>
|
|
16333
16342
|
`,
|
|
16334
16343
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16335
16344
|
encapsulation: ViewEncapsulation.None,
|
|
@@ -16417,30 +16426,30 @@ class TableHeaderCheckbox {
|
|
|
16417
16426
|
}
|
|
16418
16427
|
}
|
|
16419
16428
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TableHeaderCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
16420
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: TableHeaderCheckbox, isStandalone: false, selector: "p-tableHeaderCheckbox", inputs: { disabled: "disabled", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
16421
|
-
<div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': isDisabled() }" (click)="onClick($event)">
|
|
16422
|
-
<div class="p-hidden-accessible">
|
|
16423
|
-
<input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="isDisabled()" [attr.aria-label]="ariaLabel" />
|
|
16424
|
-
</div>
|
|
16425
|
-
<div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': isDisabled() }" role="checkbox" [attr.aria-checked]="checked">
|
|
16426
|
-
<span class="p-checkbox-icon" [ngClass]="{ 'fa-solid fa-check': checked }"></span>
|
|
16427
|
-
</div>
|
|
16428
|
-
</div>
|
|
16429
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.1", type: TableHeaderCheckbox, isStandalone: false, selector: "p-tableHeaderCheckbox", inputs: { disabled: "disabled", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
16430
|
+
<div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': isDisabled() }" (click)="onClick($event)">
|
|
16431
|
+
<div class="p-hidden-accessible">
|
|
16432
|
+
<input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="isDisabled()" [attr.aria-label]="ariaLabel" />
|
|
16433
|
+
</div>
|
|
16434
|
+
<div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': isDisabled() }" role="checkbox" [attr.aria-checked]="checked">
|
|
16435
|
+
<span class="p-checkbox-icon" [ngClass]="{ 'fa-solid fa-check': checked }"></span>
|
|
16436
|
+
</div>
|
|
16437
|
+
</div>
|
|
16429
16438
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
16430
16439
|
}
|
|
16431
16440
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: TableHeaderCheckbox, decorators: [{
|
|
16432
16441
|
type: Component,
|
|
16433
16442
|
args: [{
|
|
16434
16443
|
selector: 'p-tableHeaderCheckbox',
|
|
16435
|
-
template: `
|
|
16436
|
-
<div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': isDisabled() }" (click)="onClick($event)">
|
|
16437
|
-
<div class="p-hidden-accessible">
|
|
16438
|
-
<input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="isDisabled()" [attr.aria-label]="ariaLabel" />
|
|
16439
|
-
</div>
|
|
16440
|
-
<div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': isDisabled() }" role="checkbox" [attr.aria-checked]="checked">
|
|
16441
|
-
<span class="p-checkbox-icon" [ngClass]="{ 'fa-solid fa-check': checked }"></span>
|
|
16442
|
-
</div>
|
|
16443
|
-
</div>
|
|
16444
|
+
template: `
|
|
16445
|
+
<div class="p-checkbox p-component" [ngClass]="{ 'p-checkbox-focused': focused, 'p-checkbox-disabled': isDisabled() }" (click)="onClick($event)">
|
|
16446
|
+
<div class="p-hidden-accessible">
|
|
16447
|
+
<input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="isDisabled()" [attr.aria-label]="ariaLabel" />
|
|
16448
|
+
</div>
|
|
16449
|
+
<div #box [ngClass]="{ 'p-checkbox-box': true, 'p-highlight': checked, 'p-focus': focused, 'p-disabled': isDisabled() }" role="checkbox" [attr.aria-checked]="checked">
|
|
16450
|
+
<span class="p-checkbox-icon" [ngClass]="{ 'fa-solid fa-check': checked }"></span>
|
|
16451
|
+
</div>
|
|
16452
|
+
</div>
|
|
16444
16453
|
`,
|
|
16445
16454
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16446
16455
|
encapsulation: ViewEncapsulation.None,
|
|
@@ -16894,7 +16903,8 @@ class ColumnFilter {
|
|
|
16894
16903
|
return false;
|
|
16895
16904
|
}
|
|
16896
16905
|
isOutsideClicked(event) {
|
|
16897
|
-
return !(
|
|
16906
|
+
return !(isInsideCdkOverlay(event) ||
|
|
16907
|
+
this.overlay.isSameNode(event.target) ||
|
|
16898
16908
|
this.overlay.contains(event.target) ||
|
|
16899
16909
|
this.icon.nativeElement.isSameNode(event.target) ||
|
|
16900
16910
|
this.icon.nativeElement.contains(event.target) ||
|
|
@@ -16986,260 +16996,260 @@ class ColumnFilter {
|
|
|
16986
16996
|
}
|
|
16987
16997
|
}
|
|
16988
16998
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ColumnFilter, deps: [{ token: i0.ElementRef }, { token: Table }, { token: i0.Renderer2 }, { token: i2.SmzLocaleService }, { token: TableOverlayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16989
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ColumnFilter, isStandalone: false, selector: "p-columnFilter", inputs: { field: "field", type: "type", display: "display", showMenu: "showMenu", matchMode: "matchMode", operator: "operator", showOperator: "showOperator", showClearButton: "showClearButton", showApplyButton: "showApplyButton", showMatchModes: "showMatchModes", showAddButton: "showAddButton", hideOnClear: "hideOnClear", placeholder: "placeholder", matchModeOptions: "matchModeOptions", maxConstraints: "maxConstraints", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: "useGrouping", showButtons: "showButtons", showTime: "showTime" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], viewQueries: [{ propertyName: "icon", first: true, predicate: ["icon"], descendants: true }], ngImport: i0, template: `
|
|
16990
|
-
<div class="p-column-filter" [ngClass]="{ 'p-column-filter-row': display === 'row', 'p-column-filter-menu': display === 'menu' }">
|
|
16991
|
-
@if (display === 'row') {
|
|
16992
|
-
<p-columnFilterFormElement
|
|
16993
|
-
class="p-fluid"
|
|
16994
|
-
[type]="type"
|
|
16995
|
-
[field]="field"
|
|
16996
|
-
[filterConstraint]="$any(dt.filters[field])"
|
|
16997
|
-
[filterTemplate]="filterTemplate"
|
|
16998
|
-
[placeholder]="placeholder"
|
|
16999
|
-
[minFractionDigits]="minFractionDigits"
|
|
17000
|
-
[maxFractionDigits]="maxFractionDigits"
|
|
17001
|
-
[prefix]="prefix"
|
|
17002
|
-
[suffix]="suffix"
|
|
17003
|
-
[locale]="locale"
|
|
17004
|
-
[localeMatcher]="localeMatcher"
|
|
17005
|
-
[currency]="currency"
|
|
17006
|
-
[currencyDisplay]="currencyDisplay"
|
|
17007
|
-
[useGrouping]="useGrouping"
|
|
17008
|
-
[showButtons]="showButtons"
|
|
17009
|
-
[showTime]="showTime"
|
|
17010
|
-
></p-columnFilterFormElement>
|
|
17011
|
-
}
|
|
17012
|
-
@if (showMenuButton) {
|
|
17013
|
-
<button
|
|
17014
|
-
#icon
|
|
17015
|
-
type="button"
|
|
17016
|
-
class="p-column-filter-menu-button p-link"
|
|
17017
|
-
aria-haspopup="true"
|
|
17018
|
-
[attr.aria-expanded]="overlayVisible"
|
|
17019
|
-
[ngClass]="{ 'p-column-filter-menu-button-open': overlayVisible, 'p-column-filter-menu-button-active': hasFilter() }"
|
|
17020
|
-
(click)="toggleMenu()"
|
|
17021
|
-
(keydown)="onToggleButtonKeyDown($event)"
|
|
17022
|
-
>
|
|
17023
|
-
<span class="fa-solid fa-filter p-filter-icon"></span>
|
|
17024
|
-
</button>
|
|
17025
|
-
}
|
|
17026
|
-
@if (showClearButton && display === 'row') {
|
|
17027
|
-
<button #icon [ngClass]="{ 'p-hidden-space': !hasRowFilter() }" type="button" class="p-column-filter-clear-button p-link" (click)="clearFilter()">
|
|
17028
|
-
<span class="fa-solid fa-filter-circle-xmark"></span>
|
|
17029
|
-
</button>
|
|
17030
|
-
}
|
|
17031
|
-
@if (showMenu && overlayVisible) {
|
|
17032
|
-
<div
|
|
17033
|
-
[ngClass]="{ 'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': display === 'menu' }"
|
|
17034
|
-
(click)="onContentClick()"
|
|
17035
|
-
[@overlayAnimation]="'visible'"
|
|
17036
|
-
(@overlayAnimation.start)="onOverlayAnimationStart($event)"
|
|
17037
|
-
(@overlayAnimation.done)="onOverlayAnimationEnd($event)"
|
|
17038
|
-
(keydown.escape)="onEscape()"
|
|
17039
|
-
>
|
|
17040
|
-
<ng-container *ngTemplateOutlet="headerTemplate; context: { $implicit: field }"></ng-container>
|
|
17041
|
-
@if (display === 'row') {
|
|
17042
|
-
<ul class="p-column-filter-row-items">
|
|
17043
|
-
@for (matchMode of matchModes; track matchMode; let i = $index) {
|
|
17044
|
-
<li
|
|
17045
|
-
class="p-column-filter-row-item"
|
|
17046
|
-
(click)="onRowMatchModeChange(matchMode.value)"
|
|
17047
|
-
(keydown)="onRowMatchModeKeyDown($event)"
|
|
17048
|
-
(keydown.enter)="this.onRowMatchModeChange(matchMode.value)"
|
|
17049
|
-
[ngClass]="{ 'p-highlight': isRowMatchModeSelected(matchMode.value) }"
|
|
17050
|
-
[attr.tabindex]="i === 0 ? '0' : null"
|
|
17051
|
-
>
|
|
17052
|
-
{{ matchMode.label }}
|
|
17053
|
-
</li>
|
|
17054
|
-
}
|
|
17055
|
-
<li class="p-column-filter-separator"></li>
|
|
17056
|
-
<li class="p-column-filter-row-item" (click)="onRowClearItemClick()" (keydown)="onRowMatchModeKeyDown($event)" (keydown.enter)="onRowClearItemClick()">{{ noFilterLabel }}</li>
|
|
17057
|
-
</ul>
|
|
17058
|
-
} @else {
|
|
17059
|
-
@if (isShowOperator) {
|
|
17060
|
-
<div class="p-column-filter-operator">
|
|
17061
|
-
<ui-select [options]="operatorOptions" [ngModel]="operator" (ngModelChange)="onOperatorChange($event)" styleClass="p-column-filter-operator-dropdown"></ui-select>
|
|
17062
|
-
</div>
|
|
17063
|
-
}
|
|
17064
|
-
<div class="p-column-filter-constraints">
|
|
17065
|
-
@for (fieldConstraint of fieldConstraints; track
|
|
17066
|
-
<div class="p-column-filter-constraint">
|
|
17067
|
-
@if (showMatchModes && matchModes) {
|
|
17068
|
-
<ui-select [options]="matchModes" [ngModel]="fieldConstraint.matchMode" (ngModelChange)="onMenuMatchModeChange($event, fieldConstraint)" styleClass="p-column-filter-matchmode-dropdown"></ui-select>
|
|
17069
|
-
}
|
|
17070
|
-
<p-columnFilterFormElement
|
|
17071
|
-
[type]="type"
|
|
17072
|
-
[field]="field"
|
|
17073
|
-
[filterConstraint]="fieldConstraint"
|
|
17074
|
-
[filterTemplate]="filterTemplate"
|
|
17075
|
-
[placeholder]="placeholder"
|
|
17076
|
-
[minFractionDigits]="minFractionDigits"
|
|
17077
|
-
[maxFractionDigits]="maxFractionDigits"
|
|
17078
|
-
[prefix]="prefix"
|
|
17079
|
-
[suffix]="suffix"
|
|
17080
|
-
[locale]="locale"
|
|
17081
|
-
[localeMatcher]="localeMatcher"
|
|
17082
|
-
[currency]="currency"
|
|
17083
|
-
[currencyDisplay]="currencyDisplay"
|
|
17084
|
-
[useGrouping]="useGrouping"
|
|
17085
|
-
[showTime]="showTime"
|
|
17086
|
-
></p-columnFilterFormElement>
|
|
17087
|
-
<div>
|
|
17088
|
-
@if (showRemoveIcon) {
|
|
17089
|
-
<button type="button" smzButton icon="fa-solid fa-trash" class="p-column-filter-remove-button" (click)="removeConstraint(fieldConstraint)" smzRipple [label]="removeRuleButtonLabel" variant="text" severity="danger" size="sm"></button>
|
|
17090
|
-
}
|
|
17091
|
-
</div>
|
|
17092
|
-
</div>
|
|
17093
|
-
}
|
|
17094
|
-
</div>
|
|
17095
|
-
@if (isShowAddConstraint) {
|
|
17096
|
-
<div class="p-column-filter-add-rule">
|
|
17097
|
-
<button type="button" smzButton [label]="addRuleButtonLabel" icon="fa-solid fa-plus" class="p-column-filter-add-button" (click)="addConstraint()" smzRipple variant="text" size="sm"></button>
|
|
17098
|
-
</div>
|
|
17099
|
-
}
|
|
17100
|
-
<div class="p-column-filter-buttonbar">
|
|
17101
|
-
@if (showClearButton) {
|
|
17102
|
-
<button type="button" smzButton (click)="clearFilter()" [label]="clearButtonLabel" smzRipple variant="outlined" size="sm"></button>
|
|
17103
|
-
}
|
|
17104
|
-
@if (showApplyButton) {
|
|
17105
|
-
<button type="button" smzButton (click)="applyFilter()" [label]="applyButtonLabel" smzRipple size="sm"></button>
|
|
17106
|
-
}
|
|
17107
|
-
</div>
|
|
17108
|
-
}
|
|
17109
|
-
<ng-container *ngTemplateOutlet="footerTemplate; context: { $implicit: field }"></ng-container>
|
|
17110
|
-
</div>
|
|
17111
|
-
}
|
|
17112
|
-
</div>
|
|
16999
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ColumnFilter, isStandalone: false, selector: "p-columnFilter", inputs: { field: "field", type: "type", display: "display", showMenu: "showMenu", matchMode: "matchMode", operator: "operator", showOperator: "showOperator", showClearButton: "showClearButton", showApplyButton: "showApplyButton", showMatchModes: "showMatchModes", showAddButton: "showAddButton", hideOnClear: "hideOnClear", placeholder: "placeholder", matchModeOptions: "matchModeOptions", maxConstraints: "maxConstraints", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: "useGrouping", showButtons: "showButtons", showTime: "showTime" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], viewQueries: [{ propertyName: "icon", first: true, predicate: ["icon"], descendants: true }], ngImport: i0, template: `
|
|
17000
|
+
<div class="p-column-filter" [ngClass]="{ 'p-column-filter-row': display === 'row', 'p-column-filter-menu': display === 'menu' }">
|
|
17001
|
+
@if (display === 'row') {
|
|
17002
|
+
<p-columnFilterFormElement
|
|
17003
|
+
class="p-fluid"
|
|
17004
|
+
[type]="type"
|
|
17005
|
+
[field]="field"
|
|
17006
|
+
[filterConstraint]="$any(dt.filters[field])"
|
|
17007
|
+
[filterTemplate]="filterTemplate"
|
|
17008
|
+
[placeholder]="placeholder"
|
|
17009
|
+
[minFractionDigits]="minFractionDigits"
|
|
17010
|
+
[maxFractionDigits]="maxFractionDigits"
|
|
17011
|
+
[prefix]="prefix"
|
|
17012
|
+
[suffix]="suffix"
|
|
17013
|
+
[locale]="locale"
|
|
17014
|
+
[localeMatcher]="localeMatcher"
|
|
17015
|
+
[currency]="currency"
|
|
17016
|
+
[currencyDisplay]="currencyDisplay"
|
|
17017
|
+
[useGrouping]="useGrouping"
|
|
17018
|
+
[showButtons]="showButtons"
|
|
17019
|
+
[showTime]="showTime"
|
|
17020
|
+
></p-columnFilterFormElement>
|
|
17021
|
+
}
|
|
17022
|
+
@if (showMenuButton) {
|
|
17023
|
+
<button
|
|
17024
|
+
#icon
|
|
17025
|
+
type="button"
|
|
17026
|
+
class="p-column-filter-menu-button p-link"
|
|
17027
|
+
aria-haspopup="true"
|
|
17028
|
+
[attr.aria-expanded]="overlayVisible"
|
|
17029
|
+
[ngClass]="{ 'p-column-filter-menu-button-open': overlayVisible, 'p-column-filter-menu-button-active': hasFilter() }"
|
|
17030
|
+
(click)="toggleMenu()"
|
|
17031
|
+
(keydown)="onToggleButtonKeyDown($event)"
|
|
17032
|
+
>
|
|
17033
|
+
<span class="fa-solid fa-filter p-filter-icon"></span>
|
|
17034
|
+
</button>
|
|
17035
|
+
}
|
|
17036
|
+
@if (showClearButton && display === 'row') {
|
|
17037
|
+
<button #icon [ngClass]="{ 'p-hidden-space': !hasRowFilter() }" type="button" class="p-column-filter-clear-button p-link" (click)="clearFilter()">
|
|
17038
|
+
<span class="fa-solid fa-filter-circle-xmark"></span>
|
|
17039
|
+
</button>
|
|
17040
|
+
}
|
|
17041
|
+
@if (showMenu && overlayVisible) {
|
|
17042
|
+
<div
|
|
17043
|
+
[ngClass]="{ 'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': display === 'menu' }"
|
|
17044
|
+
(click)="onContentClick()"
|
|
17045
|
+
[@overlayAnimation]="'visible'"
|
|
17046
|
+
(@overlayAnimation.start)="onOverlayAnimationStart($event)"
|
|
17047
|
+
(@overlayAnimation.done)="onOverlayAnimationEnd($event)"
|
|
17048
|
+
(keydown.escape)="onEscape()"
|
|
17049
|
+
>
|
|
17050
|
+
<ng-container *ngTemplateOutlet="headerTemplate; context: { $implicit: field }"></ng-container>
|
|
17051
|
+
@if (display === 'row') {
|
|
17052
|
+
<ul class="p-column-filter-row-items">
|
|
17053
|
+
@for (matchMode of matchModes; track matchMode.value; let i = $index) {
|
|
17054
|
+
<li
|
|
17055
|
+
class="p-column-filter-row-item"
|
|
17056
|
+
(click)="onRowMatchModeChange(matchMode.value)"
|
|
17057
|
+
(keydown)="onRowMatchModeKeyDown($event)"
|
|
17058
|
+
(keydown.enter)="this.onRowMatchModeChange(matchMode.value)"
|
|
17059
|
+
[ngClass]="{ 'p-highlight': isRowMatchModeSelected(matchMode.value) }"
|
|
17060
|
+
[attr.tabindex]="i === 0 ? '0' : null"
|
|
17061
|
+
>
|
|
17062
|
+
{{ matchMode.label }}
|
|
17063
|
+
</li>
|
|
17064
|
+
}
|
|
17065
|
+
<li class="p-column-filter-separator"></li>
|
|
17066
|
+
<li class="p-column-filter-row-item" (click)="onRowClearItemClick()" (keydown)="onRowMatchModeKeyDown($event)" (keydown.enter)="onRowClearItemClick()">{{ noFilterLabel }}</li>
|
|
17067
|
+
</ul>
|
|
17068
|
+
} @else {
|
|
17069
|
+
@if (isShowOperator) {
|
|
17070
|
+
<div class="p-column-filter-operator">
|
|
17071
|
+
<ui-select [options]="operatorOptions" [ngModel]="operator" (ngModelChange)="onOperatorChange($event)" styleClass="p-column-filter-operator-dropdown"></ui-select>
|
|
17072
|
+
</div>
|
|
17073
|
+
}
|
|
17074
|
+
<div class="p-column-filter-constraints">
|
|
17075
|
+
@for (fieldConstraint of fieldConstraints; track $index; let i = $index) {
|
|
17076
|
+
<div class="p-column-filter-constraint">
|
|
17077
|
+
@if (showMatchModes && matchModes) {
|
|
17078
|
+
<ui-select [options]="matchModes" [ngModel]="fieldConstraint.matchMode" (ngModelChange)="onMenuMatchModeChange($event, fieldConstraint)" styleClass="p-column-filter-matchmode-dropdown"></ui-select>
|
|
17079
|
+
}
|
|
17080
|
+
<p-columnFilterFormElement
|
|
17081
|
+
[type]="type"
|
|
17082
|
+
[field]="field"
|
|
17083
|
+
[filterConstraint]="fieldConstraint"
|
|
17084
|
+
[filterTemplate]="filterTemplate"
|
|
17085
|
+
[placeholder]="placeholder"
|
|
17086
|
+
[minFractionDigits]="minFractionDigits"
|
|
17087
|
+
[maxFractionDigits]="maxFractionDigits"
|
|
17088
|
+
[prefix]="prefix"
|
|
17089
|
+
[suffix]="suffix"
|
|
17090
|
+
[locale]="locale"
|
|
17091
|
+
[localeMatcher]="localeMatcher"
|
|
17092
|
+
[currency]="currency"
|
|
17093
|
+
[currencyDisplay]="currencyDisplay"
|
|
17094
|
+
[useGrouping]="useGrouping"
|
|
17095
|
+
[showTime]="showTime"
|
|
17096
|
+
></p-columnFilterFormElement>
|
|
17097
|
+
<div>
|
|
17098
|
+
@if (showRemoveIcon) {
|
|
17099
|
+
<button type="button" smzButton icon="fa-solid fa-trash" class="p-column-filter-remove-button" (click)="removeConstraint(fieldConstraint)" smzRipple [label]="removeRuleButtonLabel" variant="text" severity="danger" size="sm"></button>
|
|
17100
|
+
}
|
|
17101
|
+
</div>
|
|
17102
|
+
</div>
|
|
17103
|
+
}
|
|
17104
|
+
</div>
|
|
17105
|
+
@if (isShowAddConstraint) {
|
|
17106
|
+
<div class="p-column-filter-add-rule">
|
|
17107
|
+
<button type="button" smzButton [label]="addRuleButtonLabel" icon="fa-solid fa-plus" class="p-column-filter-add-button" (click)="addConstraint()" smzRipple variant="text" size="sm"></button>
|
|
17108
|
+
</div>
|
|
17109
|
+
}
|
|
17110
|
+
<div class="p-column-filter-buttonbar">
|
|
17111
|
+
@if (showClearButton) {
|
|
17112
|
+
<button type="button" smzButton (click)="clearFilter()" [label]="clearButtonLabel" smzRipple variant="outlined" size="sm"></button>
|
|
17113
|
+
}
|
|
17114
|
+
@if (showApplyButton) {
|
|
17115
|
+
<button type="button" smzButton (click)="applyFilter()" [label]="applyButtonLabel" smzRipple size="sm"></button>
|
|
17116
|
+
}
|
|
17117
|
+
</div>
|
|
17118
|
+
}
|
|
17119
|
+
<ng-container *ngTemplateOutlet="footerTemplate; context: { $implicit: field }"></ng-container>
|
|
17120
|
+
</div>
|
|
17121
|
+
}
|
|
17122
|
+
</div>
|
|
17113
17123
|
`, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(() => SmzSelectComponent), selector: "ui-select", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "dataKey", "placeholder", "filter", "filterBy", "filterMatchMode", "filterPlaceholder", "showClear", "emptyMessage", "emptyFilterMessage", "styleClass", "inputId", "ariaLabel", "appendTo"], outputs: ["changed", "showed", "hidden"] }, { kind: "directive", type: i0.forwardRef(() => i1$1.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i1$1.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i0.forwardRef(() => SmzButtonComponent), selector: "button[smzButton], a[smzButton]", inputs: ["label", "icon", "iconPosition", "severity", "variant", "size", "text", "outlined", "rounded", "loading", "styleClass"] }, { kind: "component", type: i0.forwardRef(() => ColumnFilterFormElement), selector: "p-columnFilterFormElement", inputs: ["field", "type", "filterConstraint", "filterTemplate", "placeholder", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showTime", "showButtons"] }], animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])], encapsulation: i0.ViewEncapsulation.None });
|
|
17114
17124
|
}
|
|
17115
17125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ColumnFilter, decorators: [{
|
|
17116
17126
|
type: Component,
|
|
17117
17127
|
args: [{
|
|
17118
17128
|
selector: 'p-columnFilter',
|
|
17119
|
-
template: `
|
|
17120
|
-
<div class="p-column-filter" [ngClass]="{ 'p-column-filter-row': display === 'row', 'p-column-filter-menu': display === 'menu' }">
|
|
17121
|
-
@if (display === 'row') {
|
|
17122
|
-
<p-columnFilterFormElement
|
|
17123
|
-
class="p-fluid"
|
|
17124
|
-
[type]="type"
|
|
17125
|
-
[field]="field"
|
|
17126
|
-
[filterConstraint]="$any(dt.filters[field])"
|
|
17127
|
-
[filterTemplate]="filterTemplate"
|
|
17128
|
-
[placeholder]="placeholder"
|
|
17129
|
-
[minFractionDigits]="minFractionDigits"
|
|
17130
|
-
[maxFractionDigits]="maxFractionDigits"
|
|
17131
|
-
[prefix]="prefix"
|
|
17132
|
-
[suffix]="suffix"
|
|
17133
|
-
[locale]="locale"
|
|
17134
|
-
[localeMatcher]="localeMatcher"
|
|
17135
|
-
[currency]="currency"
|
|
17136
|
-
[currencyDisplay]="currencyDisplay"
|
|
17137
|
-
[useGrouping]="useGrouping"
|
|
17138
|
-
[showButtons]="showButtons"
|
|
17139
|
-
[showTime]="showTime"
|
|
17140
|
-
></p-columnFilterFormElement>
|
|
17141
|
-
}
|
|
17142
|
-
@if (showMenuButton) {
|
|
17143
|
-
<button
|
|
17144
|
-
#icon
|
|
17145
|
-
type="button"
|
|
17146
|
-
class="p-column-filter-menu-button p-link"
|
|
17147
|
-
aria-haspopup="true"
|
|
17148
|
-
[attr.aria-expanded]="overlayVisible"
|
|
17149
|
-
[ngClass]="{ 'p-column-filter-menu-button-open': overlayVisible, 'p-column-filter-menu-button-active': hasFilter() }"
|
|
17150
|
-
(click)="toggleMenu()"
|
|
17151
|
-
(keydown)="onToggleButtonKeyDown($event)"
|
|
17152
|
-
>
|
|
17153
|
-
<span class="fa-solid fa-filter p-filter-icon"></span>
|
|
17154
|
-
</button>
|
|
17155
|
-
}
|
|
17156
|
-
@if (showClearButton && display === 'row') {
|
|
17157
|
-
<button #icon [ngClass]="{ 'p-hidden-space': !hasRowFilter() }" type="button" class="p-column-filter-clear-button p-link" (click)="clearFilter()">
|
|
17158
|
-
<span class="fa-solid fa-filter-circle-xmark"></span>
|
|
17159
|
-
</button>
|
|
17160
|
-
}
|
|
17161
|
-
@if (showMenu && overlayVisible) {
|
|
17162
|
-
<div
|
|
17163
|
-
[ngClass]="{ 'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': display === 'menu' }"
|
|
17164
|
-
(click)="onContentClick()"
|
|
17165
|
-
[@overlayAnimation]="'visible'"
|
|
17166
|
-
(@overlayAnimation.start)="onOverlayAnimationStart($event)"
|
|
17167
|
-
(@overlayAnimation.done)="onOverlayAnimationEnd($event)"
|
|
17168
|
-
(keydown.escape)="onEscape()"
|
|
17169
|
-
>
|
|
17170
|
-
<ng-container *ngTemplateOutlet="headerTemplate; context: { $implicit: field }"></ng-container>
|
|
17171
|
-
@if (display === 'row') {
|
|
17172
|
-
<ul class="p-column-filter-row-items">
|
|
17173
|
-
@for (matchMode of matchModes; track matchMode; let i = $index) {
|
|
17174
|
-
<li
|
|
17175
|
-
class="p-column-filter-row-item"
|
|
17176
|
-
(click)="onRowMatchModeChange(matchMode.value)"
|
|
17177
|
-
(keydown)="onRowMatchModeKeyDown($event)"
|
|
17178
|
-
(keydown.enter)="this.onRowMatchModeChange(matchMode.value)"
|
|
17179
|
-
[ngClass]="{ 'p-highlight': isRowMatchModeSelected(matchMode.value) }"
|
|
17180
|
-
[attr.tabindex]="i === 0 ? '0' : null"
|
|
17181
|
-
>
|
|
17182
|
-
{{ matchMode.label }}
|
|
17183
|
-
</li>
|
|
17184
|
-
}
|
|
17185
|
-
<li class="p-column-filter-separator"></li>
|
|
17186
|
-
<li class="p-column-filter-row-item" (click)="onRowClearItemClick()" (keydown)="onRowMatchModeKeyDown($event)" (keydown.enter)="onRowClearItemClick()">{{ noFilterLabel }}</li>
|
|
17187
|
-
</ul>
|
|
17188
|
-
} @else {
|
|
17189
|
-
@if (isShowOperator) {
|
|
17190
|
-
<div class="p-column-filter-operator">
|
|
17191
|
-
<ui-select [options]="operatorOptions" [ngModel]="operator" (ngModelChange)="onOperatorChange($event)" styleClass="p-column-filter-operator-dropdown"></ui-select>
|
|
17192
|
-
</div>
|
|
17193
|
-
}
|
|
17194
|
-
<div class="p-column-filter-constraints">
|
|
17195
|
-
@for (fieldConstraint of fieldConstraints; track
|
|
17196
|
-
<div class="p-column-filter-constraint">
|
|
17197
|
-
@if (showMatchModes && matchModes) {
|
|
17198
|
-
<ui-select [options]="matchModes" [ngModel]="fieldConstraint.matchMode" (ngModelChange)="onMenuMatchModeChange($event, fieldConstraint)" styleClass="p-column-filter-matchmode-dropdown"></ui-select>
|
|
17199
|
-
}
|
|
17200
|
-
<p-columnFilterFormElement
|
|
17201
|
-
[type]="type"
|
|
17202
|
-
[field]="field"
|
|
17203
|
-
[filterConstraint]="fieldConstraint"
|
|
17204
|
-
[filterTemplate]="filterTemplate"
|
|
17205
|
-
[placeholder]="placeholder"
|
|
17206
|
-
[minFractionDigits]="minFractionDigits"
|
|
17207
|
-
[maxFractionDigits]="maxFractionDigits"
|
|
17208
|
-
[prefix]="prefix"
|
|
17209
|
-
[suffix]="suffix"
|
|
17210
|
-
[locale]="locale"
|
|
17211
|
-
[localeMatcher]="localeMatcher"
|
|
17212
|
-
[currency]="currency"
|
|
17213
|
-
[currencyDisplay]="currencyDisplay"
|
|
17214
|
-
[useGrouping]="useGrouping"
|
|
17215
|
-
[showTime]="showTime"
|
|
17216
|
-
></p-columnFilterFormElement>
|
|
17217
|
-
<div>
|
|
17218
|
-
@if (showRemoveIcon) {
|
|
17219
|
-
<button type="button" smzButton icon="fa-solid fa-trash" class="p-column-filter-remove-button" (click)="removeConstraint(fieldConstraint)" smzRipple [label]="removeRuleButtonLabel" variant="text" severity="danger" size="sm"></button>
|
|
17220
|
-
}
|
|
17221
|
-
</div>
|
|
17222
|
-
</div>
|
|
17223
|
-
}
|
|
17224
|
-
</div>
|
|
17225
|
-
@if (isShowAddConstraint) {
|
|
17226
|
-
<div class="p-column-filter-add-rule">
|
|
17227
|
-
<button type="button" smzButton [label]="addRuleButtonLabel" icon="fa-solid fa-plus" class="p-column-filter-add-button" (click)="addConstraint()" smzRipple variant="text" size="sm"></button>
|
|
17228
|
-
</div>
|
|
17229
|
-
}
|
|
17230
|
-
<div class="p-column-filter-buttonbar">
|
|
17231
|
-
@if (showClearButton) {
|
|
17232
|
-
<button type="button" smzButton (click)="clearFilter()" [label]="clearButtonLabel" smzRipple variant="outlined" size="sm"></button>
|
|
17233
|
-
}
|
|
17234
|
-
@if (showApplyButton) {
|
|
17235
|
-
<button type="button" smzButton (click)="applyFilter()" [label]="applyButtonLabel" smzRipple size="sm"></button>
|
|
17236
|
-
}
|
|
17237
|
-
</div>
|
|
17238
|
-
}
|
|
17239
|
-
<ng-container *ngTemplateOutlet="footerTemplate; context: { $implicit: field }"></ng-container>
|
|
17240
|
-
</div>
|
|
17241
|
-
}
|
|
17242
|
-
</div>
|
|
17129
|
+
template: `
|
|
17130
|
+
<div class="p-column-filter" [ngClass]="{ 'p-column-filter-row': display === 'row', 'p-column-filter-menu': display === 'menu' }">
|
|
17131
|
+
@if (display === 'row') {
|
|
17132
|
+
<p-columnFilterFormElement
|
|
17133
|
+
class="p-fluid"
|
|
17134
|
+
[type]="type"
|
|
17135
|
+
[field]="field"
|
|
17136
|
+
[filterConstraint]="$any(dt.filters[field])"
|
|
17137
|
+
[filterTemplate]="filterTemplate"
|
|
17138
|
+
[placeholder]="placeholder"
|
|
17139
|
+
[minFractionDigits]="minFractionDigits"
|
|
17140
|
+
[maxFractionDigits]="maxFractionDigits"
|
|
17141
|
+
[prefix]="prefix"
|
|
17142
|
+
[suffix]="suffix"
|
|
17143
|
+
[locale]="locale"
|
|
17144
|
+
[localeMatcher]="localeMatcher"
|
|
17145
|
+
[currency]="currency"
|
|
17146
|
+
[currencyDisplay]="currencyDisplay"
|
|
17147
|
+
[useGrouping]="useGrouping"
|
|
17148
|
+
[showButtons]="showButtons"
|
|
17149
|
+
[showTime]="showTime"
|
|
17150
|
+
></p-columnFilterFormElement>
|
|
17151
|
+
}
|
|
17152
|
+
@if (showMenuButton) {
|
|
17153
|
+
<button
|
|
17154
|
+
#icon
|
|
17155
|
+
type="button"
|
|
17156
|
+
class="p-column-filter-menu-button p-link"
|
|
17157
|
+
aria-haspopup="true"
|
|
17158
|
+
[attr.aria-expanded]="overlayVisible"
|
|
17159
|
+
[ngClass]="{ 'p-column-filter-menu-button-open': overlayVisible, 'p-column-filter-menu-button-active': hasFilter() }"
|
|
17160
|
+
(click)="toggleMenu()"
|
|
17161
|
+
(keydown)="onToggleButtonKeyDown($event)"
|
|
17162
|
+
>
|
|
17163
|
+
<span class="fa-solid fa-filter p-filter-icon"></span>
|
|
17164
|
+
</button>
|
|
17165
|
+
}
|
|
17166
|
+
@if (showClearButton && display === 'row') {
|
|
17167
|
+
<button #icon [ngClass]="{ 'p-hidden-space': !hasRowFilter() }" type="button" class="p-column-filter-clear-button p-link" (click)="clearFilter()">
|
|
17168
|
+
<span class="fa-solid fa-filter-circle-xmark"></span>
|
|
17169
|
+
</button>
|
|
17170
|
+
}
|
|
17171
|
+
@if (showMenu && overlayVisible) {
|
|
17172
|
+
<div
|
|
17173
|
+
[ngClass]="{ 'p-column-filter-overlay p-component p-fluid': true, 'p-column-filter-overlay-menu': display === 'menu' }"
|
|
17174
|
+
(click)="onContentClick()"
|
|
17175
|
+
[@overlayAnimation]="'visible'"
|
|
17176
|
+
(@overlayAnimation.start)="onOverlayAnimationStart($event)"
|
|
17177
|
+
(@overlayAnimation.done)="onOverlayAnimationEnd($event)"
|
|
17178
|
+
(keydown.escape)="onEscape()"
|
|
17179
|
+
>
|
|
17180
|
+
<ng-container *ngTemplateOutlet="headerTemplate; context: { $implicit: field }"></ng-container>
|
|
17181
|
+
@if (display === 'row') {
|
|
17182
|
+
<ul class="p-column-filter-row-items">
|
|
17183
|
+
@for (matchMode of matchModes; track matchMode.value; let i = $index) {
|
|
17184
|
+
<li
|
|
17185
|
+
class="p-column-filter-row-item"
|
|
17186
|
+
(click)="onRowMatchModeChange(matchMode.value)"
|
|
17187
|
+
(keydown)="onRowMatchModeKeyDown($event)"
|
|
17188
|
+
(keydown.enter)="this.onRowMatchModeChange(matchMode.value)"
|
|
17189
|
+
[ngClass]="{ 'p-highlight': isRowMatchModeSelected(matchMode.value) }"
|
|
17190
|
+
[attr.tabindex]="i === 0 ? '0' : null"
|
|
17191
|
+
>
|
|
17192
|
+
{{ matchMode.label }}
|
|
17193
|
+
</li>
|
|
17194
|
+
}
|
|
17195
|
+
<li class="p-column-filter-separator"></li>
|
|
17196
|
+
<li class="p-column-filter-row-item" (click)="onRowClearItemClick()" (keydown)="onRowMatchModeKeyDown($event)" (keydown.enter)="onRowClearItemClick()">{{ noFilterLabel }}</li>
|
|
17197
|
+
</ul>
|
|
17198
|
+
} @else {
|
|
17199
|
+
@if (isShowOperator) {
|
|
17200
|
+
<div class="p-column-filter-operator">
|
|
17201
|
+
<ui-select [options]="operatorOptions" [ngModel]="operator" (ngModelChange)="onOperatorChange($event)" styleClass="p-column-filter-operator-dropdown"></ui-select>
|
|
17202
|
+
</div>
|
|
17203
|
+
}
|
|
17204
|
+
<div class="p-column-filter-constraints">
|
|
17205
|
+
@for (fieldConstraint of fieldConstraints; track $index; let i = $index) {
|
|
17206
|
+
<div class="p-column-filter-constraint">
|
|
17207
|
+
@if (showMatchModes && matchModes) {
|
|
17208
|
+
<ui-select [options]="matchModes" [ngModel]="fieldConstraint.matchMode" (ngModelChange)="onMenuMatchModeChange($event, fieldConstraint)" styleClass="p-column-filter-matchmode-dropdown"></ui-select>
|
|
17209
|
+
}
|
|
17210
|
+
<p-columnFilterFormElement
|
|
17211
|
+
[type]="type"
|
|
17212
|
+
[field]="field"
|
|
17213
|
+
[filterConstraint]="fieldConstraint"
|
|
17214
|
+
[filterTemplate]="filterTemplate"
|
|
17215
|
+
[placeholder]="placeholder"
|
|
17216
|
+
[minFractionDigits]="minFractionDigits"
|
|
17217
|
+
[maxFractionDigits]="maxFractionDigits"
|
|
17218
|
+
[prefix]="prefix"
|
|
17219
|
+
[suffix]="suffix"
|
|
17220
|
+
[locale]="locale"
|
|
17221
|
+
[localeMatcher]="localeMatcher"
|
|
17222
|
+
[currency]="currency"
|
|
17223
|
+
[currencyDisplay]="currencyDisplay"
|
|
17224
|
+
[useGrouping]="useGrouping"
|
|
17225
|
+
[showTime]="showTime"
|
|
17226
|
+
></p-columnFilterFormElement>
|
|
17227
|
+
<div>
|
|
17228
|
+
@if (showRemoveIcon) {
|
|
17229
|
+
<button type="button" smzButton icon="fa-solid fa-trash" class="p-column-filter-remove-button" (click)="removeConstraint(fieldConstraint)" smzRipple [label]="removeRuleButtonLabel" variant="text" severity="danger" size="sm"></button>
|
|
17230
|
+
}
|
|
17231
|
+
</div>
|
|
17232
|
+
</div>
|
|
17233
|
+
}
|
|
17234
|
+
</div>
|
|
17235
|
+
@if (isShowAddConstraint) {
|
|
17236
|
+
<div class="p-column-filter-add-rule">
|
|
17237
|
+
<button type="button" smzButton [label]="addRuleButtonLabel" icon="fa-solid fa-plus" class="p-column-filter-add-button" (click)="addConstraint()" smzRipple variant="text" size="sm"></button>
|
|
17238
|
+
</div>
|
|
17239
|
+
}
|
|
17240
|
+
<div class="p-column-filter-buttonbar">
|
|
17241
|
+
@if (showClearButton) {
|
|
17242
|
+
<button type="button" smzButton (click)="clearFilter()" [label]="clearButtonLabel" smzRipple variant="outlined" size="sm"></button>
|
|
17243
|
+
}
|
|
17244
|
+
@if (showApplyButton) {
|
|
17245
|
+
<button type="button" smzButton (click)="applyFilter()" [label]="applyButtonLabel" smzRipple size="sm"></button>
|
|
17246
|
+
}
|
|
17247
|
+
</div>
|
|
17248
|
+
}
|
|
17249
|
+
<ng-container *ngTemplateOutlet="footerTemplate; context: { $implicit: field }"></ng-container>
|
|
17250
|
+
</div>
|
|
17251
|
+
}
|
|
17252
|
+
</div>
|
|
17243
17253
|
`,
|
|
17244
17254
|
animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({ opacity: 0 }))])])],
|
|
17245
17255
|
encapsulation: ViewEncapsulation.None,
|
|
@@ -17342,16 +17352,54 @@ class ColumnFilterFormElement {
|
|
|
17342
17352
|
this.dt._filter();
|
|
17343
17353
|
};
|
|
17344
17354
|
}
|
|
17355
|
+
pendingFilter = null;
|
|
17356
|
+
/**
|
|
17357
|
+
* Sem botao "Aplicar" (padrao dos filtros do smz), qualquer mudanca de valor filtra a tabela:
|
|
17358
|
+
* texto e numero com debounce, data e booleano na hora. Com o botao, so booleano/vazio filtram (comportamento do PrimeNG).
|
|
17359
|
+
*/
|
|
17345
17360
|
onModelChange(value) {
|
|
17346
17361
|
this.filterConstraint.value = value;
|
|
17347
17362
|
if (this.type === 'boolean' || value === '') {
|
|
17363
|
+
this.cancelPendingFilter();
|
|
17348
17364
|
this.dt._filter();
|
|
17349
17365
|
}
|
|
17366
|
+
else if (!this.colFilter.showApplyButton) {
|
|
17367
|
+
this.cancelPendingFilter();
|
|
17368
|
+
if (this.type === 'date') {
|
|
17369
|
+
this.dt._filter();
|
|
17370
|
+
}
|
|
17371
|
+
else {
|
|
17372
|
+
this.pendingFilter = setTimeout(() => {
|
|
17373
|
+
this.pendingFilter = null;
|
|
17374
|
+
this.dt._filter();
|
|
17375
|
+
this.dt.cd?.markForCheck();
|
|
17376
|
+
}, 300);
|
|
17377
|
+
}
|
|
17378
|
+
}
|
|
17350
17379
|
}
|
|
17351
17380
|
onTextInputEnterKeyDown(event) {
|
|
17381
|
+
this.cancelPendingFilter();
|
|
17352
17382
|
this.dt._filter();
|
|
17353
17383
|
event.preventDefault();
|
|
17354
17384
|
}
|
|
17385
|
+
cancelPendingFilter() {
|
|
17386
|
+
if (this.pendingFilter !== null) {
|
|
17387
|
+
clearTimeout(this.pendingFilter);
|
|
17388
|
+
this.pendingFilter = null;
|
|
17389
|
+
}
|
|
17390
|
+
}
|
|
17391
|
+
/** Fechar o painel antes do debounce terminar nao pode perder o filtro digitado: aplica o que estava pendente. */
|
|
17392
|
+
ngOnDestroy() {
|
|
17393
|
+
if (this.pendingFilter !== null) {
|
|
17394
|
+
this.cancelPendingFilter();
|
|
17395
|
+
// Estamos no meio de uma deteccao de mudancas (o painel acabou de fechar): filtra depois dela e agenda uma nova.
|
|
17396
|
+
const table = this.dt;
|
|
17397
|
+
queueMicrotask(() => {
|
|
17398
|
+
table._filter();
|
|
17399
|
+
table.cd.markForCheck();
|
|
17400
|
+
});
|
|
17401
|
+
}
|
|
17402
|
+
}
|
|
17355
17403
|
onNumericInputKeyDown(event) {
|
|
17356
17404
|
if (event.key === 'Enter') {
|
|
17357
17405
|
this.dt._filter();
|
|
@@ -17359,94 +17407,94 @@ class ColumnFilterFormElement {
|
|
|
17359
17407
|
}
|
|
17360
17408
|
}
|
|
17361
17409
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ColumnFilterFormElement, deps: [{ token: Table }, { token: ColumnFilter }], target: i0.ɵɵFactoryTarget.Component });
|
|
17362
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ColumnFilterFormElement, isStandalone: false, selector: "p-columnFilterFormElement", inputs: { field: "field", type: "type", filterConstraint: "filterConstraint", filterTemplate: "filterTemplate", placeholder: "placeholder", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: "useGrouping", showTime: "showTime", showButtons: "showButtons" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
17363
|
-
@if (filterTemplate) {
|
|
17364
|
-
<ng-container
|
|
17365
|
-
*ngTemplateOutlet="
|
|
17366
|
-
filterTemplate;
|
|
17367
|
-
context: {
|
|
17368
|
-
$implicit: filterConstraint.value,
|
|
17369
|
-
filterCallback: filterCallback,
|
|
17370
|
-
type: type,
|
|
17371
|
-
field: field,
|
|
17372
|
-
filterConstraint: filterConstraint,
|
|
17373
|
-
placeholder: placeholder,
|
|
17374
|
-
minFractionDigits: minFractionDigits,
|
|
17375
|
-
maxFractionDigits: maxFractionDigits,
|
|
17376
|
-
prefix: prefix,
|
|
17377
|
-
suffix: suffix,
|
|
17378
|
-
locale: locale,
|
|
17379
|
-
localeMatcher: localeMatcher,
|
|
17380
|
-
currency: currency,
|
|
17381
|
-
currencyDisplay: currencyDisplay,
|
|
17382
|
-
useGrouping: useGrouping,
|
|
17383
|
-
showButtons: showButtons
|
|
17384
|
-
}
|
|
17385
|
-
"
|
|
17386
|
-
></ng-container>
|
|
17387
|
-
} @else {
|
|
17388
|
-
@switch (type) {
|
|
17389
|
-
@case ('text') {
|
|
17390
|
-
<input type="text" smzInputText [value]="filterConstraint?.value" (input)="onModelChange($any($event.target).value)" (keydown.enter)="onTextInputEnterKeyDown($any($event))" [attr.placeholder]="placeholder" />
|
|
17391
|
-
}
|
|
17392
|
-
@case ('numeric') {
|
|
17393
|
-
<ui-input-number [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (keyDown)="onNumericInputKeyDown($event)" [showButtons]="showButtons" [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder" [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></ui-input-number>
|
|
17394
|
-
}
|
|
17395
|
-
@case ('boolean') {
|
|
17396
|
-
<ui-checkbox [ngModel]="filterConstraint?.value" [binary]="false" (ngModelChange)="onModelChange($event)"></ui-checkbox>
|
|
17397
|
-
}
|
|
17398
|
-
@case ('date') {
|
|
17399
|
-
<ui-date-picker [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" [showTime]="showTime"></ui-date-picker>
|
|
17400
|
-
}
|
|
17401
|
-
}
|
|
17402
|
-
}
|
|
17410
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: ColumnFilterFormElement, isStandalone: false, selector: "p-columnFilterFormElement", inputs: { field: "field", type: "type", filterConstraint: "filterConstraint", filterTemplate: "filterTemplate", placeholder: "placeholder", minFractionDigits: "minFractionDigits", maxFractionDigits: "maxFractionDigits", prefix: "prefix", suffix: "suffix", locale: "locale", localeMatcher: "localeMatcher", currency: "currency", currencyDisplay: "currencyDisplay", useGrouping: "useGrouping", showTime: "showTime", showButtons: "showButtons" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
17411
|
+
@if (filterTemplate) {
|
|
17412
|
+
<ng-container
|
|
17413
|
+
*ngTemplateOutlet="
|
|
17414
|
+
filterTemplate;
|
|
17415
|
+
context: {
|
|
17416
|
+
$implicit: filterConstraint.value,
|
|
17417
|
+
filterCallback: filterCallback,
|
|
17418
|
+
type: type,
|
|
17419
|
+
field: field,
|
|
17420
|
+
filterConstraint: filterConstraint,
|
|
17421
|
+
placeholder: placeholder,
|
|
17422
|
+
minFractionDigits: minFractionDigits,
|
|
17423
|
+
maxFractionDigits: maxFractionDigits,
|
|
17424
|
+
prefix: prefix,
|
|
17425
|
+
suffix: suffix,
|
|
17426
|
+
locale: locale,
|
|
17427
|
+
localeMatcher: localeMatcher,
|
|
17428
|
+
currency: currency,
|
|
17429
|
+
currencyDisplay: currencyDisplay,
|
|
17430
|
+
useGrouping: useGrouping,
|
|
17431
|
+
showButtons: showButtons
|
|
17432
|
+
}
|
|
17433
|
+
"
|
|
17434
|
+
></ng-container>
|
|
17435
|
+
} @else {
|
|
17436
|
+
@switch (type) {
|
|
17437
|
+
@case ('text') {
|
|
17438
|
+
<input type="text" smzInputText [value]="filterConstraint?.value" (input)="onModelChange($any($event.target).value)" (keydown.enter)="onTextInputEnterKeyDown($any($event))" [attr.placeholder]="placeholder" />
|
|
17439
|
+
}
|
|
17440
|
+
@case ('numeric') {
|
|
17441
|
+
<ui-input-number [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (keyDown)="onNumericInputKeyDown($event)" [showButtons]="showButtons" [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder" [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></ui-input-number>
|
|
17442
|
+
}
|
|
17443
|
+
@case ('boolean') {
|
|
17444
|
+
<ui-checkbox [ngModel]="filterConstraint?.value" [binary]="false" (ngModelChange)="onModelChange($event)"></ui-checkbox>
|
|
17445
|
+
}
|
|
17446
|
+
@case ('date') {
|
|
17447
|
+
<ui-date-picker [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" [showTime]="showTime"></ui-date-picker>
|
|
17448
|
+
}
|
|
17449
|
+
}
|
|
17450
|
+
}
|
|
17403
17451
|
`, isInline: true, dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1.NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => SmzInputTextDirective), selector: "input[smzInputText]", inputs: ["size", "invalid"] }, { kind: "component", type: i0.forwardRef(() => SmzCheckboxComponent), selector: "ui-checkbox", inputs: ["label", "inputId", "value", "binary", "name"], outputs: ["changed"] }, { kind: "directive", type: i0.forwardRef(() => i1$1.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i1$1.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i0.forwardRef(() => SmzDatePickerComponent), selector: "ui-date-picker", inputs: ["selectionMode", "dateFormat", "showTime", "timeOnly", "showSeconds", "hourFormat", "minDate", "maxDate", "showButtonBar", "showIcon", "showOnFocus", "keepInvalid", "readonlyInput", "placeholder", "inputId", "styleClass", "appendTo", "touchUI", "focusTrap"], outputs: ["selected", "cleared", "opened", "closed", "blurred"] }, { kind: "component", type: i0.forwardRef(() => SmzInputNumberComponent), selector: "ui-input-number", inputs: ["mode", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "step", "prefix", "suffix", "showButtons", "showClear", "allowEmpty", "placeholder", "readonly", "inputId"], outputs: ["inputed", "keyDown", "blurred", "focused"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
17404
17452
|
}
|
|
17405
17453
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: ColumnFilterFormElement, decorators: [{
|
|
17406
17454
|
type: Component,
|
|
17407
17455
|
args: [{
|
|
17408
17456
|
selector: 'p-columnFilterFormElement',
|
|
17409
|
-
template: `
|
|
17410
|
-
@if (filterTemplate) {
|
|
17411
|
-
<ng-container
|
|
17412
|
-
*ngTemplateOutlet="
|
|
17413
|
-
filterTemplate;
|
|
17414
|
-
context: {
|
|
17415
|
-
$implicit: filterConstraint.value,
|
|
17416
|
-
filterCallback: filterCallback,
|
|
17417
|
-
type: type,
|
|
17418
|
-
field: field,
|
|
17419
|
-
filterConstraint: filterConstraint,
|
|
17420
|
-
placeholder: placeholder,
|
|
17421
|
-
minFractionDigits: minFractionDigits,
|
|
17422
|
-
maxFractionDigits: maxFractionDigits,
|
|
17423
|
-
prefix: prefix,
|
|
17424
|
-
suffix: suffix,
|
|
17425
|
-
locale: locale,
|
|
17426
|
-
localeMatcher: localeMatcher,
|
|
17427
|
-
currency: currency,
|
|
17428
|
-
currencyDisplay: currencyDisplay,
|
|
17429
|
-
useGrouping: useGrouping,
|
|
17430
|
-
showButtons: showButtons
|
|
17431
|
-
}
|
|
17432
|
-
"
|
|
17433
|
-
></ng-container>
|
|
17434
|
-
} @else {
|
|
17435
|
-
@switch (type) {
|
|
17436
|
-
@case ('text') {
|
|
17437
|
-
<input type="text" smzInputText [value]="filterConstraint?.value" (input)="onModelChange($any($event.target).value)" (keydown.enter)="onTextInputEnterKeyDown($any($event))" [attr.placeholder]="placeholder" />
|
|
17438
|
-
}
|
|
17439
|
-
@case ('numeric') {
|
|
17440
|
-
<ui-input-number [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (keyDown)="onNumericInputKeyDown($event)" [showButtons]="showButtons" [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder" [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></ui-input-number>
|
|
17441
|
-
}
|
|
17442
|
-
@case ('boolean') {
|
|
17443
|
-
<ui-checkbox [ngModel]="filterConstraint?.value" [binary]="false" (ngModelChange)="onModelChange($event)"></ui-checkbox>
|
|
17444
|
-
}
|
|
17445
|
-
@case ('date') {
|
|
17446
|
-
<ui-date-picker [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" [showTime]="showTime"></ui-date-picker>
|
|
17447
|
-
}
|
|
17448
|
-
}
|
|
17449
|
-
}
|
|
17457
|
+
template: `
|
|
17458
|
+
@if (filterTemplate) {
|
|
17459
|
+
<ng-container
|
|
17460
|
+
*ngTemplateOutlet="
|
|
17461
|
+
filterTemplate;
|
|
17462
|
+
context: {
|
|
17463
|
+
$implicit: filterConstraint.value,
|
|
17464
|
+
filterCallback: filterCallback,
|
|
17465
|
+
type: type,
|
|
17466
|
+
field: field,
|
|
17467
|
+
filterConstraint: filterConstraint,
|
|
17468
|
+
placeholder: placeholder,
|
|
17469
|
+
minFractionDigits: minFractionDigits,
|
|
17470
|
+
maxFractionDigits: maxFractionDigits,
|
|
17471
|
+
prefix: prefix,
|
|
17472
|
+
suffix: suffix,
|
|
17473
|
+
locale: locale,
|
|
17474
|
+
localeMatcher: localeMatcher,
|
|
17475
|
+
currency: currency,
|
|
17476
|
+
currencyDisplay: currencyDisplay,
|
|
17477
|
+
useGrouping: useGrouping,
|
|
17478
|
+
showButtons: showButtons
|
|
17479
|
+
}
|
|
17480
|
+
"
|
|
17481
|
+
></ng-container>
|
|
17482
|
+
} @else {
|
|
17483
|
+
@switch (type) {
|
|
17484
|
+
@case ('text') {
|
|
17485
|
+
<input type="text" smzInputText [value]="filterConstraint?.value" (input)="onModelChange($any($event.target).value)" (keydown.enter)="onTextInputEnterKeyDown($any($event))" [attr.placeholder]="placeholder" />
|
|
17486
|
+
}
|
|
17487
|
+
@case ('numeric') {
|
|
17488
|
+
<ui-input-number [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (keyDown)="onNumericInputKeyDown($event)" [showButtons]="showButtons" [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder" [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></ui-input-number>
|
|
17489
|
+
}
|
|
17490
|
+
@case ('boolean') {
|
|
17491
|
+
<ui-checkbox [ngModel]="filterConstraint?.value" [binary]="false" (ngModelChange)="onModelChange($event)"></ui-checkbox>
|
|
17492
|
+
}
|
|
17493
|
+
@case ('date') {
|
|
17494
|
+
<ui-date-picker [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" [showTime]="showTime"></ui-date-picker>
|
|
17495
|
+
}
|
|
17496
|
+
}
|
|
17497
|
+
}
|
|
17450
17498
|
`,
|
|
17451
17499
|
encapsulation: ViewEncapsulation.None,
|
|
17452
17500
|
host: {
|
|
@@ -17998,6 +18046,8 @@ class SmzColumnFilterComponent {
|
|
|
17998
18046
|
showAddButton = true;
|
|
17999
18047
|
showMatchModes = true;
|
|
18000
18048
|
showOperator = true;
|
|
18049
|
+
/** Padrao `false`: todos os filtros de coluna do smz aplicam na hora (sem botao "Aplicar"), de forma consistente. */
|
|
18050
|
+
showApplyButton = false;
|
|
18001
18051
|
type = 'text';
|
|
18002
18052
|
showTime = false;
|
|
18003
18053
|
documentClickListener;
|
|
@@ -18040,7 +18090,7 @@ class SmzColumnFilterComponent {
|
|
|
18040
18090
|
}
|
|
18041
18091
|
}
|
|
18042
18092
|
isOutsideClicked(event) {
|
|
18043
|
-
return !(this.columnFilter.overlay.isSameNode(event.target) || this.columnFilter.overlay.contains(event.target));
|
|
18093
|
+
return !(isInsideCdkOverlay(event) || this.columnFilter.overlay.isSameNode(event.target) || this.columnFilter.overlay.contains(event.target));
|
|
18044
18094
|
}
|
|
18045
18095
|
hide() {
|
|
18046
18096
|
this.columnFilter.hide();
|
|
@@ -18051,7 +18101,7 @@ class SmzColumnFilterComponent {
|
|
|
18051
18101
|
this.unbindDocumentClickListener();
|
|
18052
18102
|
}
|
|
18053
18103
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzColumnFilterComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
18054
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzColumnFilterComponent, isStandalone: false, selector: "smz-column-filter", inputs: { currency: "currency", display: "display", field: "field", matchMode: "matchMode", showAddButton: "showAddButton", showMatchModes: "showMatchModes", showOperator: "showOperator", type: "type", showTime: "showTime" }, queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], viewQueries: [{ propertyName: "columnFilter", first: true, predicate: ColumnFilter, descendants: true }], ngImport: i0, template: `
|
|
18104
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzColumnFilterComponent, isStandalone: false, selector: "smz-column-filter", inputs: { currency: "currency", display: "display", field: "field", matchMode: "matchMode", showAddButton: "showAddButton", showMatchModes: "showMatchModes", showOperator: "showOperator", showApplyButton: "showApplyButton", type: "type", showTime: "showTime" }, queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], viewQueries: [{ propertyName: "columnFilter", first: true, predicate: ColumnFilter, descendants: true }], ngImport: i0, template: `
|
|
18055
18105
|
<div (click)="bindDocumentClickListener()">
|
|
18056
18106
|
<p-columnFilter
|
|
18057
18107
|
[currency]="currency"
|
|
@@ -18061,6 +18111,7 @@ class SmzColumnFilterComponent {
|
|
|
18061
18111
|
[showAddButton]="showAddButton"
|
|
18062
18112
|
[showMatchModes]="showMatchModes"
|
|
18063
18113
|
[showOperator]="showOperator"
|
|
18114
|
+
[showApplyButton]="showApplyButton"
|
|
18064
18115
|
[type]="type">
|
|
18065
18116
|
<!-- TODO: [showTime]="showTime" -->
|
|
18066
18117
|
|
|
@@ -18093,6 +18144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
18093
18144
|
[showAddButton]="showAddButton"
|
|
18094
18145
|
[showMatchModes]="showMatchModes"
|
|
18095
18146
|
[showOperator]="showOperator"
|
|
18147
|
+
[showApplyButton]="showApplyButton"
|
|
18096
18148
|
[type]="type">
|
|
18097
18149
|
<!-- TODO: [showTime]="showTime" -->
|
|
18098
18150
|
|
|
@@ -18132,6 +18184,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
|
|
|
18132
18184
|
type: Input
|
|
18133
18185
|
}], showOperator: [{
|
|
18134
18186
|
type: Input
|
|
18187
|
+
}], showApplyButton: [{
|
|
18188
|
+
type: Input
|
|
18135
18189
|
}], type: [{
|
|
18136
18190
|
type: Input
|
|
18137
18191
|
}], showTime: [{
|
|
@@ -22505,7 +22559,7 @@ class SmzTableComponent {
|
|
|
22505
22559
|
this.tableHelper.clear(this.tableKey);
|
|
22506
22560
|
}
|
|
22507
22561
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzTableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: TableEditableService }, { token: TableFormsService }, { token: TableHelperService }, { token: i1$3.Store }, { token: SmzExcelService }], target: i0.ɵɵFactoryTarget.Component });
|
|
22508
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzTableComponent, isStandalone: false, selector: "smz-ui-table", inputs: { state: "state", items: "items", loading: "loading" }, outputs: { selectionChange: "selectionChange", filterChange: "filterChange", columnVisibilityChange: "columnVisibilityChange", create: "create", update: "update", delete: "delete" }, host: { properties: { "attr.data-testid": "this.hostTestId" } }, providers: [TableEditableService, TableFormsService], queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: ["dt"], descendants: true }, { propertyName: "columnMultiselect", first: true, predicate: ["columnMultiselect"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (state | tableContext; as context) {\n @if ((context.state.emptyFeedback != null && (context.state.emptyFeedback.extraInfo || context.state.emptyFeedback.image || context.state.emptyFeedback.actionButtons)) && (items != null && items.length === 0) && context.state.emptyFeedback.isFeatured) {\n <smz-data-info\n [attr.data-testid]=\"buildTableTestId('empty')\"\n [image]=\"context.state.emptyFeedback.image\"\n [message]=\"context.state.emptyFeedback.message\"\n [callbackInfo]=\"context.state.emptyFeedback.extraInfo\"\n [actions]=\"context.state.emptyFeedback.actionButtons\">\n <ng-template smzTemplate=\"actions\">\n <ng-container *ngTemplateOutlet=\"emptyActionsTemplate; context: { $implicit: {} }\"></ng-container>\n </ng-template>\n </smz-data-info>\n } @else {\n <ng-container *ngVar=\"state.source?.items$ != null ? (state.source.items$ | async) : null as observableSource\">\n <ng-container *ngVar=\"state.source?.signalItems != null ? state.source.signalItems() : null as signalSource\">\n @if (((observableSource ?? signalSource ?? items) | cloneTableItems : context: tableKey: context.state.rowExpansion.sincronize); as clonedData) {\n <p-table #dt\n dataKey=\"id\"\n editMode=\"row\"\n [stripedRows]=\"context.state.styles.striped\"\n [value]=\"clonedData.items\"\n [(selection)]=\"selectedItems\"\n [tableStyleClass]=\"context.state.styles.tableStyleClass\"\n [size]=\"context.state.styles.size === 'extra-small' ? 'small' : context.state.styles.size === 'small' ? 'small' : context.state.styles.size === 'large' ? 'large' : undefined\"\n [class]=\"'p-datatable-smz-ui-table' + (context.state.styles.showGrid ? ' p-datatable-gridlines' : '') + (context.state.styles.size === 'extra-small' ? ' p-datatable-xs' : '') + (context.state.styles.size === 'small' ? ' p-datatable-sm' : '') + (context.state.styles.size === 'large' ? ' p-datatable-lg' : '')\"\n [rowHover]=\"context.state.actions.rowBehavior.hoverable\"\n [rows]=\"context.state.pagination.rows\"\n [first]=\"context.state.pagination.state.first\"\n [showCurrentPageReport]=\"context.state.pagination.pageReport.isVisible\"\n [rowsPerPageOptions]=\"context.state.pagination.rowsPerPageOptions\"\n [loading]=\"loading || isViewportInitializing\"\n [style.visibility]=\"isViewportInitializing ? 'hidden' : null\"\n [paginator]=\"context.state.pagination.isVisible\"\n paginatorDropdownAppendTo=\"body\"\n [currentPageReportTemplate]=\"context.state.locale.paginator.template\"\n [sortField]=\"context.state.sort.field\"\n [sortMode]=\"context.state.sort.mode\"\n [sortOrder]=\"context.state.sort.order\"\n [multiSortMeta]=\"context.state.sort.multiSortMeta\"\n [scrollable]=\"context.state.viewport.scrollable\"\n [scrollHeight]=\"context.state.viewport.scrollHeight\"\n [filterDelay]=\"0\"\n [globalFilterFields]=\"context.globalFilter\"\n [columns]=\"context.visibleColumns\"\n [frozenColumns]=\"context.frozenColumns\"\n [frozenWidth]=\"context.state.frozen.isEnabled ? context.state.frozen.width : null\"\n [resizableColumns]=\"context.state.viewport.resizableColumns\"\n [columnResizeMode]=\"context.state.viewport.columnResizeMode\"\n (onPage)=\"onPage($event)\"\n (onFilter)=\"onFilter($event)\"\n (selectionChange)=\"emitSelection($event)\"\n >\n @if (context.state.caption.isVisible) {\n <ng-template smzTemplate=\"caption\">\n <div class=\"grid grid-nogutter items-center gap-2\" [attr.data-testid]=\"buildTableTestId('caption')\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\n @if (context.state.caption.title != null) {\n <div class=\"col database-title\" [attr.data-testid]=\"buildTableTestId('title')\" [innerHTML]=\"context.state.caption.title\"></div>\n }\n <ng-container *ngTemplateOutlet=\"captionTemplate; context: { $implicit: dt }\"></ng-container>\n <smz-table-caption-buttons [buttons]=\"context.state.caption.buttons\" [tableTestId]=\"state.tableTestId\"></smz-table-caption-buttons>\n @if (context.state.caption.exportToPdf.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('export-pdf')\" [label]=\"context.state.locale.exportToPdf.label\" icon=\"fa-solid fa-file-pdf\" (click)=\"exportToPdf(context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.caption.exportToExcel.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('export-excel')\" [label]=\"context.state.locale.exportToExcel.label\" icon=\"fa-solid fa-file-excel\" (click)=\"exportToExcel(table, context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.editable.creation.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('create')\" [label]=\"context.state.editable.creation.buttonLabel\" icon=\"fa-solid fa-plus\" (click)=\"editableService.onRowCreateInit(table, context.columns)\" [disabled]=\"clonedData.showSkeleton || editableService.isEditing || editableService.isCreating || context.state.editable.creation.isButtonDisabled\" variant=\"outlined\"></button>\n }\n @if (context.state.caption.rowSelection.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('row-selection')\" [label]=\"context.state.locale.rowSelection.label\" icon=\"fa-solid fa-check-double\" (click)=\"onRowSelection(context)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.rowExpansion.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('row-expansion')\" [label]=\"context.state.rowExpansion.label\" icon=\"fa-solid fa-list\" (click)=\"onRowExpansion(context)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.caption.clearFilters.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('clear-filters')\" [label]=\"context.state.locale.clearFilters.label\" icon=\"fa-solid fa-filter-circle-xmark\" (click)=\"clear(table, context)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.caption.columnVisibility.showDropdownSelector) {\n <ui-multi-select #columnMultiselect [attr.data-testid]=\"buildTableTestId('column-visibility')\" class=\"ml-2 col-12 md:col-2\" styleClass=\"w-full\" appendTo=\"body\" [options]=\"context.hideableColumns\" [(ngModel)]=\"selectedColumns\" [placeholder]=\"context.state.locale.columnVisibility.placeholder\" [selectedItemsLabel]=\"context.state.locale.columnVisibility.selectedItemsLabel\" optionLabel=\"name\" dataKey=\"field\" optionLabel=\"header\" [filter]=\"true\" (panelHide)=\"updateColumnsVisibility(true)\" [smzTooltip]=\"context.state.locale.columnVisibility.pTooltip\">\n </ui-multi-select>\n }\n @if (context.state.caption.globalFilter.isVisible) {\n <ui-icon-field class=\"col-12\" [ngClass]=\"{ 'md:col-2': !context.state.caption.globalFilter.expanded }\">\n <ui-input-icon styleClass=\"fa-solid fa-magnifying-glass\"></ui-input-icon>\n <input #inputGlobal [(ngModel)]=\"globalSearchInput\" smzInputText type=\"text\" styleClass=\"database-global-search\" (input)=\"updateGlobalFilter(inputGlobal.value)\" [disabled]=\"clonedData.showSkeleton\" [placeholder]=\"context.state.locale.globalFilter.placeholder\" [attr.data-testid]=\"buildTableTestId('search')\" />\n </ui-icon-field>\n }\n </div>\n @if (toolbarTemplate != null) {\n <div class=\"grid grid-nogutter items-center mt-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\n <ng-container *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: dt }\"></ng-container>\n </div>\n }\n </ng-template>\n }\n <ng-template smzTemplate=\"header\" let-columns>\n <tr [ngClass]=\"{ 'invisible-header': !context.state.header.isVisible }\">\n @if (context.state.caption.rowSelection.isEnabled) {\n <th [ngStyle]=\"context.state.caption.rowSelection.ngStyle\">\n @if (!context.state.actions.batchActions.isVisible) {\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n }\n </th>\n }\n @if (context.state.rowExpansion.isEnabled) {\n <th [ngStyle]=\"context.state.rowExpansion.ngStyle\"></th>\n }\n @for (col of columns; track col.field) {\n @if (context.state.viewport.resizableColumns) {\n @if (col.isOrderable) {\n <th [pSortableColumn]=\"col.sortField\" pResizableColumn [attr.data-testid]=\"buildColumnTestId(col.field)\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </th>\n }\n @if (!col.isOrderable) {\n <th pResizableColumn [attr.data-testid]=\"buildColumnTestId(col.field)\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </th>\n }\n } @else {\n @if (col.isOrderable) {\n <th [pSortableColumn]=\"col.sortField\" [attr.data-testid]=\"buildColumnTestId(col.field)\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </th>\n }\n @if (!col.isOrderable) {\n <th [attr.data-testid]=\"buildColumnTestId(col.field)\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </th>\n }\n }\n <ng-template #headerContent>\n <div class=\"flex justify-start items-center\">\n <span class=\"mr-1\">{{ col.header }}</span>\n @if (col.showHeaderActions) {\n <smz-table-header-actions clickStopPropagation class=\"ml-1 mt-1\" [col]=\"col\"></smz-table-header-actions>\n }\n @if (!clonedData.showSkeleton && col.isOrderable) {\n <p-sortIcon [field]=\"col.sortField\"></p-sortIcon>\n }\n @if (!clonedData.showSkeleton) {\n @switch (col.filter.type) {\n @case (filterTypes.currency) {\n <smz-column-filter type=\"numeric\" currency=\"BRL\" [field]=\"col.filterField\"></smz-column-filter>\n }\n @case (filterTypes.numeric) {\n <smz-column-filter type=\"numeric\" [field]=\"col.filterField\"></smz-column-filter>\n }\n @case (filterTypes.date) {\n <smz-column-filter type=\"date\" [field]=\"col.filterField\" [showTime]=\"col.filter.showTime\"></smz-column-filter>\n }\n @case (filterTypes.text) {\n <smz-column-filter type=\"text\" [field]=\"col.filterField\"></smz-column-filter>\n }\n @case (filterTypes.boolean) {\n <smz-column-filter type=\"boolean\" [field]=\"col.filterField\"></smz-column-filter>\n }\n @case (filterTypes.dropdown) {\n @if (col.filterField | filterObject; as filterField) {\n <smz-column-filter [field]=\"filterField + '.id'\" matchMode=\"dropdown\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\n <ng-template smzTemplate=\"header\">\n <div class=\"px-3 pt-3 pb-0\">\n <span class=\"p-text-bold\">{{ col.header }}</span>\n </div>\n </ng-template>\n <ng-template smzTemplate=\"filter\" let-value let-filter=\"filter\">\n <ui-select appendTo=\"body\" [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (changed)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></ui-select>\n </ng-template>\n </smz-column-filter>\n }\n }\n @case (filterTypes.multiselect) {\n @if (col.filterField | filterObject; as filterField) {\n <smz-column-filter [field]=\"filterField\" matchMode=\"in\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\n <ng-template smzTemplate=\"header\">\n <div class=\"px-3 pt-3 pb-0\">\n <span class=\"p-text-bold\">{{ col.header }}</span>\n </div>\n </ng-template>\n <ng-template smzTemplate=\"filter\" let-value let-filter=\"filter\">\n <ui-multi-select [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (changed)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></ui-multi-select>\n </ng-template>\n </smz-column-filter>\n }\n }\n @case (filterTypes.multiselect_array) {\n @if (col.filterField | filterObject; as filterField) {\n <smz-column-filter [field]=\"filterField\" matchMode=\"array-some\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\n <ng-template smzTemplate=\"header\">\n <div class=\"px-3 pt-3 pb-0\">\n <span class=\"p-text-bold\">{{ col.header }}</span>\n </div>\n </ng-template>\n <ng-template smzTemplate=\"filter\" let-value let-filter=\"filter\">\n <ui-multi-select [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : true\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (changed)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></ui-multi-select>\n </ng-template>\n </smz-column-filter>\n }\n }\n @case (filterTypes.multiselect_string) {\n @if (col.filterField | filterObject; as filterField) {\n <smz-column-filter [field]=\"filterField\" matchMode=\"multiselectByString\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\n <ng-template smzTemplate=\"header\">\n <div class=\"px-3 pt-3 pb-0\">\n <span class=\"p-text-bold\">{{ col.header }}</span>\n </div>\n </ng-template>\n <ng-template smzTemplate=\"filter\" let-value let-filter=\"filter\">\n <ui-multi-select [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField : filterField : null : true : false : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (changed)=\"filter($event.value)\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></ui-multi-select>\n </ng-template>\n </smz-column-filter>\n }\n }\n }\n }\n @if (context.state.caption.columnVisibility.showColumnHideButton) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-eye-slash\" (click)=\"hideColumn(col, context)\" [rounded]=\"true\" variant=\"text\" styleClass=\"p-button-plain\"></button>\n }\n </div>\n </ng-template>\n }\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible|| context.state.editable.isEditable) {\n <th [ngStyle]=\"context.state.editable.isEditable ? context.state.editable.ngStyle : context.state.actions.customActions.ngStyle\"></th>\n }\n </tr>\n @if (context.state.actions.batchActions.isVisible) {\n <tr>\n <th [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\"\n [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\n <div class=\"grid grid-nogutter items-center justify-start\">\n <p-tableHeaderCheckbox class=\"mr-4\"></p-tableHeaderCheckbox>\n @if (selectedItems?.length > 0) {\n @for (batchItem of context.state.actions.batchActions.items; track batchItem.label) {\n @if (batchItem.visible) {\n <button smzButton [label]=\"batchItem.label\" class=\"animate__animated animate__fadeIn\" [styleClass]=\"'p-button-plain ' + (batchItem.styleClass)\" [icon]=\"batchItem.icon\" (click)=\"batchItem.command(selectedItems); selectedItems = [];\" [disabled]=\"batchItem.disabled\" [smzTooltip]=\"batchItem.tooltip\" [rounded]=\"true\" variant=\"text\"></button>\n }\n }\n }\n </div>\n </th>\n </tr>\n }\n </ng-template>\n <ng-template smzTemplate=\"body\" let-item let-editing=\"editing\" let-rowIndex=\"rowIndex\" let-columns=\"columns\">\n <tr #editableRowElement\n [pEditableRow]=\"item\"\n tableItemAction\n [isClickable]=\"context.state.actions.rowBehavior.isClickable\"\n [callback]=\"context.state.actions.rowBehavior.clickCallback\"\n [expandRowOnClick]=\"context.state.actions.rowBehavior.expandRowOnClick\"\n [item]=\"item\"\n class=\"p-selectable-row\"\n [attr.data-testid]=\"buildRowTestId(item, rowIndex)\"\n [ngClass]=\"{ 'highlight-row': item?.id === state.actions.rowBehavior.highlights, 'preserve-in-small': state.actions.rowBehavior.preserveLayoutInSmallDevices }\"\n >\n @if (context.state.caption.rowSelection.isEnabled && !clonedData.showSkeleton) {\n <td\n clickStopPropagation\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\"\n [ngStyle]=\"context.state.caption.rowSelection.ngStyle\"\n >\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n }\n @if (context.state.rowExpansion.isEnabled && !clonedData.showSkeleton) {\n <td\n clickStopPropagation\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading, 'grid grid-nogutter justify-start items-center gap-2': context.state.rowExpansion.highlightNewItems && item._isNew }\"\n [ngStyle]=\"context.state.rowExpansion.ngStyle\"\n >\n <button smzButton type=\"button\" class=\"smz-table-row-expansion-toggle\" [icon]=\"item._isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'\" (click)=\"item._isExpanded = !item._isExpanded; item._isNew = false\" variant=\"text\" [rounded]=\"true\" size=\"sm\"></button>\n @if (context.state.rowExpansion.highlightNewItems && item._isNew) {\n <div class=\"rounded bg-cyan-400 text-sm text-white px-2 py-0 smz-table-new-tag\" (click)=\"item._isNew = false\">{{ context.state.rowExpansion.highlightLabel }}</div>\n }\n </td>\n }\n @for (col of columns; track col.field) {\n @if (clonedData.showSkeleton) {\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngStyle]=\"col.content.ngStyle\"><ui-skeleton width=\"100%\" height=\"1rem\"></ui-skeleton></td>\n } @else {\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [attr.data-testid]=\"buildCellTestId(item, rowIndex, col.field)\" [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\" [ngStyle]=\"col.content.ngStyle\">\n <span class=\"p-column-title\">{{ col.header }}</span>\n <p-cellEditor>\n <!-- CELULAR COM EDITOR -->\n <ng-template smzTemplate=\"input\">\n @switch (col.editable.type) {\n @case (editableTypes.none) {\n <smz-table-content class=\"cursor-default\" [ngClass]=\"col.content.contentStyleClass\" [col]=\"col\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\"></smz-table-content>\n }\n @case (editableTypes.custom) {\n <ng-container *ngTemplateOutlet=\"editableTemplate; context: { $implicit: item, col: col }\"></ng-container>\n }\n <!-- INPUT TEXT -->\n @case (editableTypes.text) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <input smzInputText type=\"text\" [formControl]=\"$any(control)\" style=\"width: 100%;\">\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT NUMBER -->\n @case (editableTypes.number) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <ui-input-number *ngVar=\"col.editable.data as numberData\" [formControl]=\"$any(control)\" [mode]=\"numberData.mode\" [minFractionDigits]=\"numberData.minFractionDigits\" [maxFractionDigits]=\"numberData.maxFractionDigits\" [currency]=\"numberData.currency\" [useGrouping]=\"numberData.useGrouping\" [allowEmpty]=\"numberData.allowEmpty\" [showClear]=\"numberData.showClear\" [showButtons]=\"numberData.showButtons\" [prefix]=\"numberData.prefix\" [suffix]=\"numberData.suffix\">\n </ui-input-number>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT SWITCH -->\n @case (editableTypes.switch) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <ui-toggle-switch [formControl]=\"$any(control)\"></ui-toggle-switch>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT TEXT AREA -->\n @case (editableTypes.area) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <textarea smzTextarea type=\"text\" [formControl]=\"$any(control)\" [rows]=\"$any(col.editable.data).rows\" required style=\"width: 100%;\"></textarea>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT DROPDOWN -->\n @case (editableTypes.dropdown) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <ui-select appendTo=\"body\" [formControl]=\"$any(control)\" styleClass=\"w-full\" [options]=\"col.editable.data | editableSource\" optionLabel=\"name\" dataKey=\"id\" [placeholder]=\"$any(col.editable.data).placeholder\" [showClear]=\"!col.editable.validatorsPreset?.isRequired\" [filter]=\"true\"></ui-select>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT CALENDAR -->\n @case (editableTypes.calendar) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <ui-date-picker [formControl]=\"$any(control)\" appendTo=\"body\" styleClass=\"w-full\" [ngClass]=\"{ 'pl-5': !control.valid }\"></ui-date-picker>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n }\n </ng-template>\n <!-- CELULAR COM CONTE\u00DADO -->\n <ng-template smzTemplate=\"output\">\n <smz-table-content\n [col]=\"col\"\n [smzTooltip]=\"col.content.tooltip != null ? col.content.tooltip(item) : null\"\n tooltipPosition=\"left\"\n [ngClass]=\"col.content.contentStyleClass\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\">\n </smz-table-content>\n </ng-template>\n </p-cellEditor>\n </td>\n }\n }\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) {\n <td [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\n <div class=\"grid grid-nogutter items-center justify-center\">\n @if (clonedData.showSkeleton) {\n <div class=\"w-full\">\n <ui-skeleton width=\"100%\" height=\"1rem\"></ui-skeleton>\n </div>\n } @else {\n <!-- SEM EDITAR -->\n @if (!editing) {\n @if (context.state.editable.update.isButtonVisible) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-pencil\" (click)=\"editableService.onRowEditInit(item)\" class=\"mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.update.isButtonDisabled || (!context.state.editable.update.condition(item))\" pInitEditableRow [rounded]=\"true\" variant=\"text\"></button>\n }\n @if (context.state.editable.remove.isButtonVisible) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-trash\" (click)=\"editableService.onRowRemove($event, table, item)\" class=\"mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.remove.isButtonDisabled || (!context.state.editable.remove.condition(item))\" [rounded]=\"true\" variant=\"text\" severity=\"secondary\"></button>\n }\n }\n <!-- EDITANDO -->\n @if (editing) {\n @if (editableService.context[item.id]; as editableContext) {\n <!-- COM LOADING -->\n @if (editableContext.isLoading) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-rotate fa-spin\" [disabled]=\"true\" class=\"mr-2\" [rounded]=\"true\" variant=\"text\" styleClass=\"p-button-info\"></button>\n }\n <!-- SEM LOADING -->\n @if (!editableContext.isLoading) {\n <!-- EDITANDO -->\n @if (!editableContext.hasErrors) {\n <!-- CRIANDO -->\n @if (item._context?.isCreating) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-check\" (click)=\"editableService.onRowCreateSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"mr-2\" [rounded]=\"true\" variant=\"text\" severity=\"success\"></button>\n <button smzButton type=\"button\" icon=\"fa-solid fa-xmark\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n }\n <!-- ATUALIZANDO -->\n @if (item._context?.isUpdating) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-check\" (click)=\"editableService.onRowEditSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"mr-2\" [rounded]=\"true\" variant=\"text\" severity=\"success\"></button>\n <button smzButton type=\"button\" icon=\"fa-solid fa-xmark\" (click)=\"editableService.onRowEditCancel($event, table, item)\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n }\n }\n <!-- COM ERRORS -->\n @if (editableContext.hasErrors) {\n <ui-popover #errorsOverlay appendTo=\"body\" [style]=\"{ width: '450px' }\">\n <div [innerHtml]=\"editableContext.errors | contentErrors\"></div>\n </ui-popover>\n <button smzButton type=\"button\" icon=\"fas fa-exclamation-triangle\" [disabled]=\"false\" class=\"mr-2\" (click)=\"errorsOverlay.toggle($event)\" size=\"sm\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n <!-- CRIANDO -->\n @if (item._context?.isCreating) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-xmark\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" size=\"sm\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n }\n <!-- ATUALIZANDO -->\n @if (item._context?.isUpdating) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-xmark\" (click)=\"editableService.onRowEditCancel($event, table, item)\" size=\"sm\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n }\n }\n }\n }\n }\n <!-- CUSTOM MENU -->\n @if (context.state.actions.customActions.isVisible && !editing) {\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: item }\"></ng-container>\n }\n <!-- MENU -->\n @if (context.state.actions.menu.isVisible && !editing) {\n <smz-menu [callback]=\"context.state.actions.menu.callback\" [items]=\"context.state.actions.menu.items\" [data]=\"item\" [behavior]=\"context.state.actions.menu.behavior\" [ngClass]=\"{ 'ml-2': context.state.actions.customActions.isVisible }\" [icon]=\"context.state.actions.menu.styles.icon\" [styleClass]=\"context.state.actions.menu.styles.styleClass\" [buttonClass]=\"context.state.actions.menu.styles.buttonClass\" [testId]=\"buildRowMenuTestId(item, rowIndex)\"></smz-menu>\n }\n }\n </div>\n </td>\n }\n </tr>\n @if (item?._isExpanded) {\n <tr>\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\">\n <ng-container *ngTemplateOutlet=\"rowContentTemplate; context: { $implicit: item }\"></ng-container>\n </td>\n </tr>\n }\n </ng-template>\n <ng-template smzTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\" [ngStyle]=\"{ 'text-align': 'center' }\">\n <div [innerHtml]=\"context.state.emptyFeedback.message\"></div>\n @if (context.state.caption.clearFilters.isButtonVisible && hasFilters()) {\n <button smzButton [label]=\"context.state.locale.clearFilters.label\" class=\"mt-3\" icon=\"fa-solid fa-filter-circle-xmark\" (click)=\"clear(table, context)\" variant=\"outlined\"></button>\n }\n </td>\n </tr>\n </ng-template>\n </p-table>\n }\n </ng-container>\n </ng-container>\n }\n} @else {\n @if (emptyStateTemplate != null) {\n <ng-container *ngTemplateOutlet=\"emptyStateTemplate; context: { $implicit: {} }\"></ng-container>\n }\n}\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.SmzTemplateDirective, selector: "ng-template[smzTemplate]", inputs: ["smzTemplate"] }, { kind: "component", type: Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "stripedRows", "size", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: CellEditor, selector: "p-cellEditor" }, { kind: "component", type: SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: EditableRow, selector: "[pEditableRow]", inputs: ["pEditableRow", "pEditableRowDisabled"] }, { kind: "directive", type: InitEditableRow, selector: "[pInitEditableRow]" }, { kind: "component", type: i2.SmzButtonComponent, selector: "button[smzButton], a[smzButton]", inputs: ["label", "icon", "iconPosition", "severity", "variant", "size", "text", "outlined", "rounded", "loading", "styleClass"] }, { kind: "directive", type: i2.SmzInputTextDirective, selector: "input[smzInputText]", inputs: ["size", "invalid"] }, { kind: "component", type: i2.SmzMultiSelectComponent, selector: "ui-multi-select", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "dataKey", "placeholder", "filter", "filterBy", "filterMatchMode", "filterPlaceholder", "showClear", "showToggleAll", "emptyMessage", "emptyFilterMessage", "maxSelectedLabels", "selectedItemsLabel", "panelStyle", "styleClass", "inputId", "autofocusFilter", "appendTo", "display"], outputs: ["changed", "panelHide", "panelShow"] }, { kind: "component", type: i2.SmzSelectComponent, selector: "ui-select", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "dataKey", "placeholder", "filter", "filterBy", "filterMatchMode", "filterPlaceholder", "showClear", "emptyMessage", "emptyFilterMessage", "styleClass", "inputId", "ariaLabel", "appendTo"], outputs: ["changed", "showed", "hidden"] }, { kind: "component", type: i2.SmzDatePickerComponent, selector: "ui-date-picker", inputs: ["selectionMode", "dateFormat", "showTime", "timeOnly", "showSeconds", "hourFormat", "minDate", "maxDate", "showButtonBar", "showIcon", "showOnFocus", "keepInvalid", "readonlyInput", "placeholder", "inputId", "styleClass", "appendTo", "touchUI", "focusTrap"], outputs: ["selected", "cleared", "opened", "closed", "blurred"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TableItemActionsDirective, selector: "[tableItemAction]", inputs: ["isClickable", "item", "callback", "expandRowOnClick"] }, { kind: "directive", type: ClickStopPropagationDirective, selector: "[clickStopPropagation]" }, { kind: "component", type: SmzDataInfoComponent, selector: "smz-data-info", inputs: ["image", "message", "actions", "callbackInfo", "callbackLabel"], outputs: ["clicked"] }, { kind: "directive", type: i2.SmzTooltipDirective, selector: "[smzTooltip]", inputs: ["smzTooltip", "tooltipPosition", "showDelay", "hideDelay", "tooltipEvent", "escape", "tooltipStyleClass", "tooltipZIndex", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: i2.SmzSkeletonComponent, selector: "ui-skeleton", inputs: ["shape", "width", "height"] }, { kind: "directive", type: i2.SmzTextareaDirective, selector: "textarea[smzTextarea]", inputs: ["invalid", "autoResize"] }, { kind: "component", type: i2.SmzPopoverComponent, selector: "ui-popover", inputs: ["style", "styleClass", "dismissable", "autoZIndex", "appendTo"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.SmzToggleSwitchComponent, selector: "ui-toggle-switch", inputs: ["name"], outputs: ["changed"] }, { kind: "component", type: i2.SmzInputNumberComponent, selector: "ui-input-number", inputs: ["mode", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "step", "prefix", "suffix", "showButtons", "showClear", "allowEmpty", "placeholder", "readonly", "inputId"], outputs: ["inputed", "keyDown", "blurred", "focused"] }, { kind: "component", type: SmzMenuComponent, selector: "smz-menu", inputs: ["items", "callback", "data", "buttonClass", "styleClass", "icon", "behavior", "testId"] }, { kind: "directive", type: NgVar, selector: "[ngVar]", inputs: ["ngVar"] }, { kind: "component", type: i2.SmzIconFieldComponent, selector: "ui-icon-field" }, { kind: "component", type: i2.SmzInputIconComponent, selector: "ui-input-icon", inputs: ["styleClass"] }, { kind: "component", type: SmzColumnFilterComponent, selector: "smz-column-filter", inputs: ["currency", "display", "field", "matchMode", "showAddButton", "showMatchModes", "showOperator", "type", "showTime"] }, { kind: "component", type: SmzTableValidationMessagesComponent, selector: "smz-table-validation-messages", inputs: ["errors", "messages", "isFormInvalid", "isFormDirty"] }, { kind: "component", type: SmzTableContentComponent, selector: "smz-table-content", inputs: ["col", "contentTypes", "item", "rowIndex", "contentTemplate"] }, { kind: "component", type: SmzTableCaptionButtonsComponent, selector: "smz-table-caption-buttons", inputs: ["buttons", "tableTestId"] }, { kind: "component", type: SmzTableHeaderActionsComponent, selector: "smz-table-header-actions", inputs: ["col"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: UniqueFilterPipe, name: "uniqueFilter" }, { kind: "pipe", type: SmzTableContextPipe, name: "tableContext" }, { kind: "pipe", type: SmzFilterObjectPipe, name: "filterObject" }, { kind: "pipe", type: SmzCloneTableItemsPipe, name: "cloneTableItems" }, { kind: "pipe", type: SmzEditableSourcePipe, name: "editableSource" }, { kind: "pipe", type: SmzContentErrorsPipe, name: "contentErrors" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22562
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.1", type: SmzTableComponent, isStandalone: false, selector: "smz-ui-table", inputs: { state: "state", items: "items", loading: "loading" }, outputs: { selectionChange: "selectionChange", filterChange: "filterChange", columnVisibilityChange: "columnVisibilityChange", create: "create", update: "update", delete: "delete" }, host: { properties: { "attr.data-testid": "this.hostTestId" } }, providers: [TableEditableService, TableFormsService], queries: [{ propertyName: "templates", predicate: SmzTemplateDirective }], viewQueries: [{ propertyName: "table", first: true, predicate: ["dt"], descendants: true }, { propertyName: "columnMultiselect", first: true, predicate: ["columnMultiselect"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (state | tableContext; as context) {\n @if ((context.state.emptyFeedback != null && (context.state.emptyFeedback.extraInfo || context.state.emptyFeedback.image || context.state.emptyFeedback.actionButtons)) && (items != null && items.length === 0) && context.state.emptyFeedback.isFeatured) {\n <smz-data-info\n [attr.data-testid]=\"buildTableTestId('empty')\"\n [image]=\"context.state.emptyFeedback.image\"\n [message]=\"context.state.emptyFeedback.message\"\n [callbackInfo]=\"context.state.emptyFeedback.extraInfo\"\n [actions]=\"context.state.emptyFeedback.actionButtons\">\n <ng-template smzTemplate=\"actions\">\n <ng-container *ngTemplateOutlet=\"emptyActionsTemplate; context: { $implicit: {} }\"></ng-container>\n </ng-template>\n </smz-data-info>\n } @else {\n <ng-container *ngVar=\"state.source?.items$ != null ? (state.source.items$ | async) : null as observableSource\">\n <ng-container *ngVar=\"state.source?.signalItems != null ? state.source.signalItems() : null as signalSource\">\n @if (((observableSource ?? signalSource ?? items) | cloneTableItems : context: tableKey: context.state.rowExpansion.sincronize); as clonedData) {\n <p-table #dt\n dataKey=\"id\"\n editMode=\"row\"\n [stripedRows]=\"context.state.styles.striped\"\n [value]=\"clonedData.items\"\n [(selection)]=\"selectedItems\"\n [tableStyleClass]=\"context.state.styles.tableStyleClass\"\n [size]=\"context.state.styles.size === 'extra-small' ? 'small' : context.state.styles.size === 'small' ? 'small' : context.state.styles.size === 'large' ? 'large' : undefined\"\n [class]=\"'p-datatable-smz-ui-table' + (context.state.styles.showGrid ? ' p-datatable-gridlines' : '') + (context.state.styles.size === 'extra-small' ? ' p-datatable-xs' : '') + (context.state.styles.size === 'small' ? ' p-datatable-sm' : '') + (context.state.styles.size === 'large' ? ' p-datatable-lg' : '')\"\n [rowHover]=\"context.state.actions.rowBehavior.hoverable\"\n [rows]=\"context.state.pagination.rows\"\n [first]=\"context.state.pagination.state.first\"\n [showCurrentPageReport]=\"context.state.pagination.pageReport.isVisible\"\n [rowsPerPageOptions]=\"context.state.pagination.rowsPerPageOptions\"\n [loading]=\"loading || isViewportInitializing\"\n [style.visibility]=\"isViewportInitializing ? 'hidden' : null\"\n [paginator]=\"context.state.pagination.isVisible\"\n paginatorDropdownAppendTo=\"body\"\n [currentPageReportTemplate]=\"context.state.locale.paginator.template\"\n [sortField]=\"context.state.sort.field\"\n [sortMode]=\"context.state.sort.mode\"\n [sortOrder]=\"context.state.sort.order\"\n [multiSortMeta]=\"context.state.sort.multiSortMeta\"\n [scrollable]=\"context.state.viewport.scrollable\"\n [scrollHeight]=\"context.state.viewport.scrollHeight\"\n [filterDelay]=\"0\"\n [globalFilterFields]=\"context.globalFilter\"\n [columns]=\"context.visibleColumns\"\n [frozenColumns]=\"context.frozenColumns\"\n [frozenWidth]=\"context.state.frozen.isEnabled ? context.state.frozen.width : null\"\n [resizableColumns]=\"context.state.viewport.resizableColumns\"\n [columnResizeMode]=\"context.state.viewport.columnResizeMode\"\n (onPage)=\"onPage($event)\"\n (onFilter)=\"onFilter($event)\"\n (selectionChange)=\"emitSelection($event)\"\n >\n @if (context.state.caption.isVisible) {\n <ng-template smzTemplate=\"caption\">\n <div class=\"grid grid-nogutter items-center gap-2\" [attr.data-testid]=\"buildTableTestId('caption')\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\n @if (context.state.caption.title != null) {\n <div class=\"col database-title\" [attr.data-testid]=\"buildTableTestId('title')\" [innerHTML]=\"context.state.caption.title\"></div>\n }\n <ng-container *ngTemplateOutlet=\"captionTemplate; context: { $implicit: dt }\"></ng-container>\n <smz-table-caption-buttons [buttons]=\"context.state.caption.buttons\" [tableTestId]=\"state.tableTestId\"></smz-table-caption-buttons>\n @if (context.state.caption.exportToPdf.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('export-pdf')\" [label]=\"context.state.locale.exportToPdf.label\" icon=\"fa-solid fa-file-pdf\" (click)=\"exportToPdf(context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.caption.exportToExcel.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('export-excel')\" [label]=\"context.state.locale.exportToExcel.label\" icon=\"fa-solid fa-file-excel\" (click)=\"exportToExcel(table, context, clonedData.items)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.editable.creation.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('create')\" [label]=\"context.state.editable.creation.buttonLabel\" icon=\"fa-solid fa-plus\" (click)=\"editableService.onRowCreateInit(table, context.columns)\" [disabled]=\"clonedData.showSkeleton || editableService.isEditing || editableService.isCreating || context.state.editable.creation.isButtonDisabled\" variant=\"outlined\"></button>\n }\n @if (context.state.caption.rowSelection.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('row-selection')\" [label]=\"context.state.locale.rowSelection.label\" icon=\"fa-solid fa-check-double\" (click)=\"onRowSelection(context)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.rowExpansion.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('row-expansion')\" [label]=\"context.state.rowExpansion.label\" icon=\"fa-solid fa-list\" (click)=\"onRowExpansion(context)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.caption.clearFilters.isButtonVisible) {\n <button smzButton [attr.data-testid]=\"buildTableTestId('clear-filters')\" [label]=\"context.state.locale.clearFilters.label\" icon=\"fa-solid fa-filter-circle-xmark\" (click)=\"clear(table, context)\" [disabled]=\"clonedData.showSkeleton\" variant=\"outlined\"></button>\n }\n @if (context.state.caption.columnVisibility.showDropdownSelector) {\n <ui-multi-select #columnMultiselect [attr.data-testid]=\"buildTableTestId('column-visibility')\" class=\"ml-2 col-12 md:col-2\" styleClass=\"w-full\" appendTo=\"body\" [options]=\"context.hideableColumns\" [(ngModel)]=\"selectedColumns\" [placeholder]=\"context.state.locale.columnVisibility.placeholder\" [selectedItemsLabel]=\"context.state.locale.columnVisibility.selectedItemsLabel\" optionLabel=\"name\" dataKey=\"field\" optionLabel=\"header\" [filter]=\"true\" (panelHide)=\"updateColumnsVisibility(true)\" [smzTooltip]=\"context.state.locale.columnVisibility.pTooltip\">\n </ui-multi-select>\n }\n @if (context.state.caption.globalFilter.isVisible) {\n <ui-icon-field class=\"col-12\" [ngClass]=\"{ 'md:col-2': !context.state.caption.globalFilter.expanded }\">\n <ui-input-icon styleClass=\"fa-solid fa-magnifying-glass\"></ui-input-icon>\n <input #inputGlobal [(ngModel)]=\"globalSearchInput\" smzInputText type=\"text\" styleClass=\"database-global-search\" (input)=\"updateGlobalFilter(inputGlobal.value)\" [disabled]=\"clonedData.showSkeleton\" [placeholder]=\"context.state.locale.globalFilter.placeholder\" [attr.data-testid]=\"buildTableTestId('search')\" />\n </ui-icon-field>\n }\n </div>\n @if (toolbarTemplate != null) {\n <div class=\"grid grid-nogutter items-center mt-2\" [ngClass]=\"'justify-' + context.state.caption.toolbarAlignment\">\n <ng-container *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: dt }\"></ng-container>\n </div>\n }\n </ng-template>\n }\n <ng-template smzTemplate=\"header\" let-columns>\n <tr [ngClass]=\"{ 'invisible-header': !context.state.header.isVisible }\">\n @if (context.state.caption.rowSelection.isEnabled) {\n <th [ngStyle]=\"context.state.caption.rowSelection.ngStyle\">\n @if (!context.state.actions.batchActions.isVisible) {\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n }\n </th>\n }\n @if (context.state.rowExpansion.isEnabled) {\n <th [ngStyle]=\"context.state.rowExpansion.ngStyle\"></th>\n }\n @for (col of columns; track col.field) {\n @if (context.state.viewport.resizableColumns) {\n @if (col.isOrderable) {\n <th [pSortableColumn]=\"col.sortField\" pResizableColumn [attr.data-testid]=\"buildColumnTestId(col.field)\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </th>\n }\n @if (!col.isOrderable) {\n <th pResizableColumn [attr.data-testid]=\"buildColumnTestId(col.field)\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </th>\n }\n } @else {\n @if (col.isOrderable) {\n <th [pSortableColumn]=\"col.sortField\" [attr.data-testid]=\"buildColumnTestId(col.field)\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </th>\n }\n @if (!col.isOrderable) {\n <th [attr.data-testid]=\"buildColumnTestId(col.field)\" [ngStyle]=\"col.content.ngStyle\" [ngClass]=\"col.headerStyleClass\">\n <ng-container *ngTemplateOutlet=\"headerContent\"></ng-container>\n </th>\n }\n }\n <ng-template #headerContent>\n <div class=\"flex justify-start items-center\">\n <span class=\"mr-1\">{{ col.header }}</span>\n @if (col.showHeaderActions) {\n <smz-table-header-actions clickStopPropagation class=\"ml-1 mt-1\" [col]=\"col\"></smz-table-header-actions>\n }\n @if (!clonedData.showSkeleton && col.isOrderable) {\n <p-sortIcon [field]=\"col.sortField\"></p-sortIcon>\n }\n @if (!clonedData.showSkeleton) {\n @switch (col.filter.type) {\n @case (filterTypes.currency) {\n <smz-column-filter type=\"numeric\" currency=\"BRL\" [field]=\"col.filterField\"></smz-column-filter>\n }\n @case (filterTypes.numeric) {\n <smz-column-filter type=\"numeric\" [field]=\"col.filterField\"></smz-column-filter>\n }\n @case (filterTypes.date) {\n <smz-column-filter type=\"date\" [field]=\"col.filterField\" [showTime]=\"col.filter.showTime\"></smz-column-filter>\n }\n @case (filterTypes.text) {\n <smz-column-filter type=\"text\" [field]=\"col.filterField\"></smz-column-filter>\n }\n @case (filterTypes.boolean) {\n <smz-column-filter type=\"boolean\" [field]=\"col.filterField\"></smz-column-filter>\n }\n @case (filterTypes.dropdown) {\n @if (col.filterField | filterObject; as filterField) {\n <smz-column-filter [field]=\"filterField + '.id'\" matchMode=\"dropdown\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\n <ng-template smzTemplate=\"header\">\n <div class=\"px-3 pt-3 pb-0\">\n <span class=\"p-text-bold\">{{ col.header }}</span>\n </div>\n </ng-template>\n <ng-template smzTemplate=\"filter\" let-value let-filter=\"filter\">\n <ui-select appendTo=\"body\" [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (changed)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></ui-select>\n </ng-template>\n </smz-column-filter>\n }\n }\n @case (filterTypes.multiselect) {\n @if (col.filterField | filterObject; as filterField) {\n <smz-column-filter [field]=\"filterField\" matchMode=\"in\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\n <ng-template smzTemplate=\"header\">\n <div class=\"px-3 pt-3 pb-0\">\n <span class=\"p-text-bold\">{{ col.header }}</span>\n </div>\n </ng-template>\n <ng-template smzTemplate=\"filter\" let-value let-filter=\"filter\">\n <ui-multi-select [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (changed)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\"></ui-multi-select>\n </ng-template>\n </smz-column-filter>\n }\n }\n @case (filterTypes.multiselect_array) {\n @if (col.filterField | filterObject; as filterField) {\n <smz-column-filter [field]=\"filterField\" matchMode=\"array-some\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\n <ng-template smzTemplate=\"header\">\n <div class=\"px-3 pt-3 pb-0\">\n <span class=\"p-text-bold\">{{ col.header }}</span>\n </div>\n </ng-template>\n <ng-template smzTemplate=\"filter\" let-value let-filter=\"filter\">\n <ui-multi-select [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField + '.id' : filterField : null : 'name' : true\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (changed)=\"filter($event.value)\" optionLabel=\"name\" dataKey=\"id\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></ui-multi-select>\n </ng-template>\n </smz-column-filter>\n }\n }\n @case (filterTypes.multiselect_string) {\n @if (col.filterField | filterObject; as filterField) {\n <smz-column-filter [field]=\"filterField\" matchMode=\"multiselectByString\" [showMatchModes]=\"false\" [showOperator]=\"false\" [showAddButton]=\"false\">\n <ng-template smzTemplate=\"header\">\n <div class=\"px-3 pt-3 pb-0\">\n <span class=\"p-text-bold\">{{ col.header }}</span>\n </div>\n </ng-template>\n <ng-template smzTemplate=\"filter\" let-value let-filter=\"filter\">\n <ui-multi-select [ngModel]=\"value\" [options]=\"(clonedData.items != null ? clonedData.items : []) | uniqueFilter : filterField : filterField : null : true : false : false\" [placeholder]=\"context.state.locale.dropdownFilter.placeholder\" (changed)=\"filter($event.value)\" [maxSelectedLabels]=\"2\" [selectedItemsLabel]=\"'{0}'\"></ui-multi-select>\n </ng-template>\n </smz-column-filter>\n }\n }\n }\n }\n @if (context.state.caption.columnVisibility.showColumnHideButton) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-eye-slash\" (click)=\"hideColumn(col, context)\" [rounded]=\"true\" variant=\"text\" styleClass=\"p-button-plain\"></button>\n }\n </div>\n </ng-template>\n }\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible|| context.state.editable.isEditable) {\n <th [ngStyle]=\"context.state.editable.isEditable ? context.state.editable.ngStyle : context.state.actions.customActions.ngStyle\"></th>\n }\n </tr>\n @if (context.state.actions.batchActions.isVisible) {\n <tr>\n <th [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\"\n [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\n <div class=\"grid grid-nogutter items-center justify-start\">\n <p-tableHeaderCheckbox class=\"mr-4\"></p-tableHeaderCheckbox>\n @if (selectedItems?.length > 0) {\n @for (batchItem of context.state.actions.batchActions.items; track batchItem.label) {\n @if (batchItem.visible) {\n <button smzButton [label]=\"batchItem.label\" class=\"animate__animated animate__fadeIn\" [styleClass]=\"'p-button-plain ' + (batchItem.styleClass)\" [icon]=\"batchItem.icon\" (click)=\"batchItem.command(selectedItems); selectedItems = [];\" [disabled]=\"batchItem.disabled\" [smzTooltip]=\"batchItem.tooltip\" [rounded]=\"true\" variant=\"text\"></button>\n }\n }\n }\n </div>\n </th>\n </tr>\n }\n </ng-template>\n <ng-template smzTemplate=\"body\" let-item let-editing=\"editing\" let-rowIndex=\"rowIndex\" let-columns=\"columns\">\n <tr #editableRowElement\n [pEditableRow]=\"item\"\n tableItemAction\n [isClickable]=\"context.state.actions.rowBehavior.isClickable\"\n [callback]=\"context.state.actions.rowBehavior.clickCallback\"\n [expandRowOnClick]=\"context.state.actions.rowBehavior.expandRowOnClick\"\n [item]=\"item\"\n class=\"p-selectable-row\"\n [attr.data-testid]=\"buildRowTestId(item, rowIndex)\"\n [ngClass]=\"{ 'highlight-row': item?.id === state.actions.rowBehavior.highlights, 'preserve-in-small': state.actions.rowBehavior.preserveLayoutInSmallDevices }\"\n >\n @if (context.state.caption.rowSelection.isEnabled && !clonedData.showSkeleton) {\n <td\n clickStopPropagation\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\"\n [ngStyle]=\"context.state.caption.rowSelection.ngStyle\"\n >\n <p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\n </td>\n }\n @if (context.state.rowExpansion.isEnabled && !clonedData.showSkeleton) {\n <td\n clickStopPropagation\n class=\"{{ state.actions.rowBehavior.cellStyleClass }}\"\n [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading, 'grid grid-nogutter justify-start items-center gap-2': context.state.rowExpansion.highlightNewItems && item._isNew }\"\n [ngStyle]=\"context.state.rowExpansion.ngStyle\"\n >\n <button smzButton type=\"button\" class=\"smz-table-row-expansion-toggle\" [icon]=\"item._isExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'\" (click)=\"item._isExpanded = !item._isExpanded; item._isNew = false\" variant=\"text\" [rounded]=\"true\" size=\"sm\"></button>\n @if (context.state.rowExpansion.highlightNewItems && item._isNew) {\n <div class=\"rounded bg-cyan-400 text-sm text-white px-2 py-0 smz-table-new-tag\" (click)=\"item._isNew = false\">{{ context.state.rowExpansion.highlightLabel }}</div>\n }\n </td>\n }\n @for (col of columns; track col.field) {\n @if (clonedData.showSkeleton) {\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [ngStyle]=\"col.content.ngStyle\"><ui-skeleton width=\"100%\" height=\"1rem\"></ui-skeleton></td>\n } @else {\n <td class=\"{{ state.actions.rowBehavior.cellStyleClass }}\" [attr.data-testid]=\"buildCellTestId(item, rowIndex, col.field)\" [ngClass]=\"{ 'opacity-50 pointer-events-none': editableService.context[item.id]?.hasErrors || editableService.context[item.id]?.isLoading }\" [ngStyle]=\"col.content.ngStyle\">\n <span class=\"p-column-title\">{{ col.header }}</span>\n <p-cellEditor>\n <!-- CELULAR COM EDITOR -->\n <ng-template smzTemplate=\"input\">\n @switch (col.editable.type) {\n @case (editableTypes.none) {\n <smz-table-content class=\"cursor-default\" [ngClass]=\"col.content.contentStyleClass\" [col]=\"col\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\"></smz-table-content>\n }\n @case (editableTypes.custom) {\n <ng-container *ngTemplateOutlet=\"editableTemplate; context: { $implicit: item, col: col }\"></ng-container>\n }\n <!-- INPUT TEXT -->\n @case (editableTypes.text) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <input smzInputText type=\"text\" [formControl]=\"$any(control)\" style=\"width: 100%;\">\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT NUMBER -->\n @case (editableTypes.number) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <ui-input-number *ngVar=\"col.editable.data as numberData\" [formControl]=\"$any(control)\" [mode]=\"numberData.mode\" [minFractionDigits]=\"numberData.minFractionDigits\" [maxFractionDigits]=\"numberData.maxFractionDigits\" [currency]=\"numberData.currency\" [useGrouping]=\"numberData.useGrouping\" [allowEmpty]=\"numberData.allowEmpty\" [showClear]=\"numberData.showClear\" [showButtons]=\"numberData.showButtons\" [prefix]=\"numberData.prefix\" [suffix]=\"numberData.suffix\">\n </ui-input-number>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT SWITCH -->\n @case (editableTypes.switch) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <ui-toggle-switch [formControl]=\"$any(control)\"></ui-toggle-switch>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT TEXT AREA -->\n @case (editableTypes.area) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <textarea smzTextarea type=\"text\" [formControl]=\"$any(control)\" [rows]=\"$any(col.editable.data).rows\" required style=\"width: 100%;\"></textarea>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT DROPDOWN -->\n @case (editableTypes.dropdown) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <ui-select appendTo=\"body\" [formControl]=\"$any(control)\" styleClass=\"w-full\" [options]=\"col.editable.data | editableSource\" optionLabel=\"name\" dataKey=\"id\" [placeholder]=\"$any(col.editable.data).placeholder\" [showClear]=\"!col.editable.validatorsPreset?.isRequired\" [filter]=\"true\"></ui-select>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n <!-- INPUT CALENDAR -->\n @case (editableTypes.calendar) {\n @if (editableService.context[item.id]?.form; as form) {\n @if (form.controls[col.editable.property]; as control) {\n <div class=\"relative w-full\">\n <ui-date-picker [formControl]=\"$any(control)\" appendTo=\"body\" styleClass=\"w-full\" [ngClass]=\"{ 'pl-5': !control.valid }\"></ui-date-picker>\n <smz-table-validation-messages [errors]=\"control.errors\" [messages]=\"uiConfig.dialogs.forms.validationMessages\" [isFormInvalid]=\"form.invalid\" [isFormDirty]=\"form.dirty\"></smz-table-validation-messages>\n </div>\n }\n }\n }\n }\n </ng-template>\n <!-- CELULAR COM CONTE\u00DADO -->\n <ng-template smzTemplate=\"output\">\n <smz-table-content\n [col]=\"col\"\n [smzTooltip]=\"col.content.tooltip != null ? col.content.tooltip(item) : null\"\n tooltipPosition=\"left\"\n [ngClass]=\"col.content.contentStyleClass\" [contentTypes]=\"contentTypes\" [item]=\"item\" [rowIndex]=\"rowIndex\" [contentTemplate]=\"contentTemplate\">\n </smz-table-content>\n </ng-template>\n </p-cellEditor>\n </td>\n }\n }\n @if (context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) {\n <td [ngStyle]=\"context.state.actions.customActions.ngStyle\" class=\"px-0\">\n <div class=\"grid grid-nogutter items-center justify-center\">\n @if (clonedData.showSkeleton) {\n <div class=\"w-full\">\n <ui-skeleton width=\"100%\" height=\"1rem\"></ui-skeleton>\n </div>\n } @else {\n <!-- SEM EDITAR -->\n @if (!editing) {\n @if (context.state.editable.update.isButtonVisible) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-pencil\" (click)=\"editableService.onRowEditInit(item)\" class=\"mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.update.isButtonDisabled || (!context.state.editable.update.condition(item))\" pInitEditableRow [rounded]=\"true\" variant=\"text\"></button>\n }\n @if (context.state.editable.remove.isButtonVisible) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-trash\" (click)=\"editableService.onRowRemove($event, table, item)\" class=\"mx-1\" [disabled]=\"editableService.isEditing || editableService.isCreating || context.state.editable.remove.isButtonDisabled || (!context.state.editable.remove.condition(item))\" [rounded]=\"true\" variant=\"text\" severity=\"secondary\"></button>\n }\n }\n <!-- EDITANDO -->\n @if (editing) {\n @if (editableService.context[item.id]; as editableContext) {\n <!-- COM LOADING -->\n @if (editableContext.isLoading) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-rotate fa-spin\" [disabled]=\"true\" class=\"mr-2\" [rounded]=\"true\" variant=\"text\" styleClass=\"p-button-info\"></button>\n }\n <!-- SEM LOADING -->\n @if (!editableContext.isLoading) {\n <!-- EDITANDO -->\n @if (!editableContext.hasErrors) {\n <!-- CRIANDO -->\n @if (item._context?.isCreating) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-check\" (click)=\"editableService.onRowCreateSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"mr-2\" [rounded]=\"true\" variant=\"text\" severity=\"success\"></button>\n <button smzButton type=\"button\" icon=\"fa-solid fa-xmark\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n }\n <!-- ATUALIZANDO -->\n @if (item._context?.isUpdating) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-check\" (click)=\"editableService.onRowEditSave($event, table, editableRowElement, item)\" [disabled]=\"!editableContext.hasChanged || !editableService.context[item.id]?.form.valid\" class=\"mr-2\" [rounded]=\"true\" variant=\"text\" severity=\"success\"></button>\n <button smzButton type=\"button\" icon=\"fa-solid fa-xmark\" (click)=\"editableService.onRowEditCancel($event, table, item)\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n }\n }\n <!-- COM ERRORS -->\n @if (editableContext.hasErrors) {\n <ui-popover #errorsOverlay appendTo=\"body\" [style]=\"{ width: '450px' }\">\n <div [innerHtml]=\"editableContext.errors | contentErrors\"></div>\n </ui-popover>\n <button smzButton type=\"button\" icon=\"fas fa-exclamation-triangle\" [disabled]=\"false\" class=\"mr-2\" (click)=\"errorsOverlay.toggle($event)\" size=\"sm\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n <!-- CRIANDO -->\n @if (item._context?.isCreating) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-xmark\" (click)=\"editableService.onRowCreateCancel($event, table, item)\" size=\"sm\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n }\n <!-- ATUALIZANDO -->\n @if (item._context?.isUpdating) {\n <button smzButton type=\"button\" icon=\"fa-solid fa-xmark\" (click)=\"editableService.onRowEditCancel($event, table, item)\" size=\"sm\" [rounded]=\"true\" variant=\"text\" severity=\"danger\"></button>\n }\n }\n }\n }\n }\n <!-- CUSTOM MENU -->\n @if (context.state.actions.customActions.isVisible && !editing) {\n <ng-container *ngTemplateOutlet=\"actionsTemplate; context: { $implicit: item }\"></ng-container>\n }\n <!-- MENU -->\n @if (context.state.actions.menu.isVisible && !editing) {\n <smz-menu [callback]=\"context.state.actions.menu.callback\" [items]=\"context.state.actions.menu.items\" [data]=\"item\" [behavior]=\"context.state.actions.menu.behavior\" [ngClass]=\"{ 'ml-2': context.state.actions.customActions.isVisible }\" [icon]=\"context.state.actions.menu.styles.icon\" [styleClass]=\"context.state.actions.menu.styles.styleClass\" [buttonClass]=\"context.state.actions.menu.styles.buttonClass\" [testId]=\"buildRowMenuTestId(item, rowIndex)\"></smz-menu>\n }\n }\n </div>\n </td>\n }\n </tr>\n @if (item?._isExpanded) {\n <tr>\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\">\n <ng-container *ngTemplateOutlet=\"rowContentTemplate; context: { $implicit: item }\"></ng-container>\n </td>\n </tr>\n }\n </ng-template>\n <ng-template smzTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length + ((context.state.actions.menu.isVisible || context.state.actions.customActions.isVisible || context.state.editable.isEditable) ? 1 : 0) + (context.state.caption.rowSelection.isEnabled ? 1 : 0) + (context.state.rowExpansion.isEnabled ? 1 : 0)\" [ngStyle]=\"{ 'text-align': 'center' }\">\n <div [innerHtml]=\"context.state.emptyFeedback.message\"></div>\n @if (context.state.caption.clearFilters.isButtonVisible && hasFilters()) {\n <button smzButton [label]=\"context.state.locale.clearFilters.label\" class=\"mt-3\" icon=\"fa-solid fa-filter-circle-xmark\" (click)=\"clear(table, context)\" variant=\"outlined\"></button>\n }\n </td>\n </tr>\n </ng-template>\n </p-table>\n }\n </ng-container>\n </ng-container>\n }\n} @else {\n @if (emptyStateTemplate != null) {\n <ng-container *ngTemplateOutlet=\"emptyStateTemplate; context: { $implicit: {} }\"></ng-container>\n }\n}\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.SmzTemplateDirective, selector: "ng-template[smzTemplate]", inputs: ["smzTemplate"] }, { kind: "component", type: Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "stripedRows", "size", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: CellEditor, selector: "p-cellEditor" }, { kind: "component", type: SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "directive", type: EditableRow, selector: "[pEditableRow]", inputs: ["pEditableRow", "pEditableRowDisabled"] }, { kind: "directive", type: InitEditableRow, selector: "[pInitEditableRow]" }, { kind: "component", type: i2.SmzButtonComponent, selector: "button[smzButton], a[smzButton]", inputs: ["label", "icon", "iconPosition", "severity", "variant", "size", "text", "outlined", "rounded", "loading", "styleClass"] }, { kind: "directive", type: i2.SmzInputTextDirective, selector: "input[smzInputText]", inputs: ["size", "invalid"] }, { kind: "component", type: i2.SmzMultiSelectComponent, selector: "ui-multi-select", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "dataKey", "placeholder", "filter", "filterBy", "filterMatchMode", "filterPlaceholder", "showClear", "showToggleAll", "emptyMessage", "emptyFilterMessage", "maxSelectedLabels", "selectedItemsLabel", "panelStyle", "styleClass", "inputId", "autofocusFilter", "appendTo", "display"], outputs: ["changed", "panelHide", "panelShow"] }, { kind: "component", type: i2.SmzSelectComponent, selector: "ui-select", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "dataKey", "placeholder", "filter", "filterBy", "filterMatchMode", "filterPlaceholder", "showClear", "emptyMessage", "emptyFilterMessage", "styleClass", "inputId", "ariaLabel", "appendTo"], outputs: ["changed", "showed", "hidden"] }, { kind: "component", type: i2.SmzDatePickerComponent, selector: "ui-date-picker", inputs: ["selectionMode", "dateFormat", "showTime", "timeOnly", "showSeconds", "hourFormat", "minDate", "maxDate", "showButtonBar", "showIcon", "showOnFocus", "keepInvalid", "readonlyInput", "placeholder", "inputId", "styleClass", "appendTo", "touchUI", "focusTrap"], outputs: ["selected", "cleared", "opened", "closed", "blurred"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TableItemActionsDirective, selector: "[tableItemAction]", inputs: ["isClickable", "item", "callback", "expandRowOnClick"] }, { kind: "directive", type: ClickStopPropagationDirective, selector: "[clickStopPropagation]" }, { kind: "component", type: SmzDataInfoComponent, selector: "smz-data-info", inputs: ["image", "message", "actions", "callbackInfo", "callbackLabel"], outputs: ["clicked"] }, { kind: "directive", type: i2.SmzTooltipDirective, selector: "[smzTooltip]", inputs: ["smzTooltip", "tooltipPosition", "showDelay", "hideDelay", "tooltipEvent", "escape", "tooltipStyleClass", "tooltipZIndex", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: i2.SmzSkeletonComponent, selector: "ui-skeleton", inputs: ["shape", "width", "height"] }, { kind: "directive", type: i2.SmzTextareaDirective, selector: "textarea[smzTextarea]", inputs: ["invalid", "autoResize"] }, { kind: "component", type: i2.SmzPopoverComponent, selector: "ui-popover", inputs: ["style", "styleClass", "dismissable", "autoZIndex", "appendTo"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.SmzToggleSwitchComponent, selector: "ui-toggle-switch", inputs: ["name"], outputs: ["changed"] }, { kind: "component", type: i2.SmzInputNumberComponent, selector: "ui-input-number", inputs: ["mode", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "step", "prefix", "suffix", "showButtons", "showClear", "allowEmpty", "placeholder", "readonly", "inputId"], outputs: ["inputed", "keyDown", "blurred", "focused"] }, { kind: "component", type: SmzMenuComponent, selector: "smz-menu", inputs: ["items", "callback", "data", "buttonClass", "styleClass", "icon", "behavior", "testId"] }, { kind: "directive", type: NgVar, selector: "[ngVar]", inputs: ["ngVar"] }, { kind: "component", type: i2.SmzIconFieldComponent, selector: "ui-icon-field" }, { kind: "component", type: i2.SmzInputIconComponent, selector: "ui-input-icon", inputs: ["styleClass"] }, { kind: "component", type: SmzColumnFilterComponent, selector: "smz-column-filter", inputs: ["currency", "display", "field", "matchMode", "showAddButton", "showMatchModes", "showOperator", "showApplyButton", "type", "showTime"] }, { kind: "component", type: SmzTableValidationMessagesComponent, selector: "smz-table-validation-messages", inputs: ["errors", "messages", "isFormInvalid", "isFormDirty"] }, { kind: "component", type: SmzTableContentComponent, selector: "smz-table-content", inputs: ["col", "contentTypes", "item", "rowIndex", "contentTemplate"] }, { kind: "component", type: SmzTableCaptionButtonsComponent, selector: "smz-table-caption-buttons", inputs: ["buttons", "tableTestId"] }, { kind: "component", type: SmzTableHeaderActionsComponent, selector: "smz-table-header-actions", inputs: ["col"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: UniqueFilterPipe, name: "uniqueFilter" }, { kind: "pipe", type: SmzTableContextPipe, name: "tableContext" }, { kind: "pipe", type: SmzFilterObjectPipe, name: "filterObject" }, { kind: "pipe", type: SmzCloneTableItemsPipe, name: "cloneTableItems" }, { kind: "pipe", type: SmzEditableSourcePipe, name: "editableSource" }, { kind: "pipe", type: SmzContentErrorsPipe, name: "contentErrors" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22509
22563
|
}
|
|
22510
22564
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImport: i0, type: SmzTableComponent, decorators: [{
|
|
22511
22565
|
type: Component,
|
|
@@ -22628,7 +22682,7 @@ class SmzColumnFilter2Component {
|
|
|
22628
22682
|
}
|
|
22629
22683
|
isOutsideClicked(event) {
|
|
22630
22684
|
const overlay = this['overlay'];
|
|
22631
|
-
const result = !(overlay.isSameNode(event.target) || overlay.contains(event.target));
|
|
22685
|
+
const result = !(isInsideCdkOverlay(event) || overlay.isSameNode(event.target) || overlay.contains(event.target));
|
|
22632
22686
|
if (result) {
|
|
22633
22687
|
setTimeout(() => {
|
|
22634
22688
|
this['cdf'].markForCheck();
|
|
@@ -57084,5 +57138,5 @@ __decorate([
|
|
|
57084
57138
|
* Generated bundle index. Do not edit.
|
|
57085
57139
|
*/
|
|
57086
57140
|
|
|
57087
|
-
export { AUTHORIZATION_HEADER, AccessControlService, ActionDispatchDirective, ApplicationActions, ApplicationSelectors, ApplicationState, AsPipe, AthenaLayout, AthenaLayoutComponent, AthenaLayoutModule, AuthClaimDefinitions, AuthHandler, AuthService, AuthenticationActions, AuthenticationSelectors, AuthenticationService, AuthenticationState, AuthorizationService, AxisOverflowDirection, AxisOverflowType, AxisPosition, BaseApiService, BoilerplateService, BreadcrumbService, CLAIMS_PAGE_ROUTE, CLAIMS_PATH, CLAIMS_STATE_NAME, CONTENT_ENCODING_HEADER, CachedRouteReuseStrategy, CalendarComponent, CalendarPipe, CanAccess, CancelEditableRow, CellEditor, ChartType, CheckBoxComponent, CheckBoxGroupComponent, ClaimAccessType, ClaimAccessTypeDescription, ClaimAccessTypeValues, ClaimsActions, ClaimsModule, ClaimsSelectors, ClaimsState, ClickStopPropagationDirective, ClickStopPropagationModule, ClonePipe, ColorPallete, ColorPickerComponent, ColumnFilter, ColumnFilterFormElement, Confirmable, ContextMenuRow, CreateLinearChart, CreateRadialChart, CustomError, CustomNgForDirective, CustomNgForModule, DATABASE_REQUIRED_ACTIONS, DATABASE_STATES, DECORATOR_APPLIED, DEFAULT_AUTHENTICATION_ENDPOINTS_ROUTES, DEFAULT_AUTHORIZATION_ENDPOINTS_ROUTES, DatabaseActions, DatabaseSelectors, DatabaseState, DatasetType, DeepWrapper, DescribeAnyPipe, DescribeArrayPipe, DescribeSimpleNamedPipe, DialogContentManagerComponent, DialogService, DropdownComponent, DynamicDialogComponent, DynamicDialogConfig, DynamicDialogInjector, DynamicDialogModule, DynamicDialogRef, ERROR_HANDLING_TYPE_HEADER, EditableColumn, EditableRow, ExcelsUiActions, FEATURE_STATES, FeaturesActions, FeaturesSelectors, FeaturesState, FileUploadComponent, FilterContains, FirstOrDefaultPipe, FormGroupComponent, FormSubmitComponent, FrozenColumn, GenericInjectComponentDirective, GetElementById, GetElementsByParentId, GlobalActions, GlobalFilter, GlobalInjector, GlobalLoaderComponent, GlobalLoaderModule, GlobalState, GroupingType, HephaestusLayout, HephaestusLayoutComponent, HephaestusLayoutModule, HephaestusProviderModule, HostElement, HttpErrorHandler, IGNORE_ERROR_HANDLING, InViewportMetadata, InitEditableRow, InjectComponentDirective, InjectComponentService, InjectContentAppModule, InjectContentDirective, InjectContentService, InputBlurDetectionModule, InputChangeDetectionDirective, InputClearExtensionDirective, InputCurrencyComponent, InputListComponent, InputMaskComponent, InputNumberComponent, InputPasswordComponent, InputSwitchComponent, InputTagAreaComponent, InputTextAreaComponent, InputTextComponent, InputTreeComponent, IsVisiblePipe, IsVisiblePipeModule, JoinPipe, LOADING_BEHAVIOR_HEADER, LOCAL_LOADING_TAG_HEADER, LayoutUiActions, LayoutUiSelectors, LayoutUiState, LegacyAuthenticationSelectors, LinearChartBuilder, LinkedDropdownComponent, LinkedMultiSelectComponent, LoggingScope, LoggingService, MAIN_LAYOUT_PATH, MentionableTextareaComponent, MenuHelperService, MenuType, MergeClonePipe, MergeClonePipeModule, MultiSelectComponent, NG_ON_INIT, NewAthenaLayout, NewAthenaLayoutComponent, NewAthenaLayoutModule, NewAthenaProviderModule, NgCloneDirective, NgCloneModule, NgIfLandscapeDirective, NgIfLandscapeDirectiveModule, NgIfPortraitDirective, NgIfPortraitDirectiveModule, NgVar, NgVarContext, NgVarModule, NgxRbkUtilsConfig, NgxRbkUtilsModule, NgxSmzCardsModule, NgxSmzCommentsModule, NgxSmzDataInfoModule, NgxSmzDataPipesModule, NgxSmzDialogsModule, NgxSmzDockModule, NgxSmzDocumentsModule, NgxSmzFaqsModule, NgxSmzFormsModule, NgxSmzLayoutsModule, NgxSmzMenuModule, NgxSmzMultiTablesModule, NgxSmzRouterParamsModule, NgxSmzSafeImageModule, NgxSmzServerImageModule, NgxSmzServerImageToBase64Module, NgxSmzSideContentModule, NgxSmzTablesModule, NgxSmzTreeWithDetailsModule, NgxSmzTreesModule, NgxSmzUiBlockModule, NgxSmzUiComponent, NgxSmzUiConfig, NgxSmzUiGuidesModule, NgxSmzUiModule, NgxSmzViewportModule, NotificationFolder, NotificationFolderStatus, NotificationStatus, NotificationType, NotificationTypeClass, NotificationsUiActions, NotificationsUiSelectors, PrettyJsonPipe$1 as PrettyJsonPipe, PrettyJsonPipeModule, PrimeConfigService, REFRESH_TOKEN_BEHAVIOR_HEADER, RESTORE_STATE_ON_ERROR_HEADER, ROLES_PAGE_ROUTE, ROLES_PATH, ROLES_STATE_NAME, RadialChartBuilder, RadioButtonComponent, RbkAccessControlModule, RbkAuthGuard, RbkCanAccessAnyPipe, RbkCanAccessPipe, RbkClaimGuardDirective, RbkDatabaseStateGuard, RbkFeatureStateGuard, RbkPipesModule, RbkTableFilterClearDirectivesModule, RegistrySmzUiConfiguration, ReorderableColumn, ReorderableRow, ReorderableRowHandle, RepositoryForm, ResizableColumn, RoleMode, RoleModeDescription, RoleModeValues, RoleSource, RoleSourceDescription, RoleSourceValues, RolesActions, RolesModule, RolesSelectors, RolesState, RouterParamsActions, RouterParamsSelectors, RowGroupHeader, RowToggler, SMZ_CORE_LOGGING_CONFIG, SMZ_UI_ENVIRONMENT_CONFIG, SafeHtmlPipe$2 as SafeHtmlPipe, SafeImageDirective, SafeUrlPipe$1 as SafeUrlPipe, SaveEditableRow, SelectableRow, SelectableRowDblClick, SelectorPipe, ServerImageDirective, ServerImageToBase64Directive, ServerPathPipe, SetTemplateClasses, SetTemplateClassesPipe, SidebarState, SimpleCalendarPipe, SmzActionDispatchModule, SmzAuthorizationDeactivatedUsersTableBuilder, SmzAuthorizationUsersTableBuilder, SmzBaseColumnBuilder, SmzBaseEditableBuilder, SmzBreakpoints, SmzBuilderUtilities, SmzCardsBuilder, SmzCardsComponent, SmzCardsContentType, SmzCardsInjectableComponentBuilder, SmzCardsTemplate, SmzCardsView, SmzChartComponent, SmzChartModule, SmzClipboardService, SmzColumnCollectionBuilder, SmzCommentsBuilder, SmzCommentsComponent, SmzCommentsSectionComponent, SmzContentTheme, SmzContentThemes, SmzContentType, SmzControlType, SmzCoreLogging, SmzCurrencyColumnBuilder, SmzCustomColumnBuilder, SmzDataInfoComponent, SmzDataTransformColumnBuilder, SmzDataTransformTreePipe, SmzDateColumnBuilder, SmzDialogBuilder, SmzDialogComponentBuilder, SmzDialogFormBuilder, SmzDialogTableBuilder, SmzDialogsConfig, SmzDialogsPresets, SmzDialogsService, SmzDockComponent, SmzDockService, SmzDocumentBaseCellBuilder, SmzDocumentBuilder, SmzDocumentComponent, SmzDocumentsService, SmzDragDropModule, SmzDraggable, SmzDropdownEditableBuilder, SmzDroppable, SmzDynamicDialogConfig, SmzEasyBaseColumnBuilder, SmzEasyColumnCollectionBuilder, SmzEasyCustomColumnBuilder, SmzEasyDataTransformColumnBuilder, SmzEasyDateColumnBuilder, SmzEasyMenuTableBuilder, SmzEasyTableBuilder, SmzEasyTableComponent, SmzEasyTableContentType, SmzEasyTableModule, SmzEasyTextColumnBuilder, SmzEditableCollectionBuilder, SmzEditableTableBuilder, SmzEditableType, SmzEnvironment, SmzExcelColorDefinitions, SmzExcelDataDefinitions, SmzExcelFontDefinitions, SmzExcelService, SmzExcelSortOrderDefinitions, SmzExcelThemeDefinitions, SmzExcelTypeDefinitions, SmzExcelsBuilder, SmzExportDialogComponent, SmzExportDialogModule, SmzExportDialogService, SmzExportableContentSource, SmzExportableContentType, SmzFaqsComponent, SmzFaqsConfig, SmzFilterType, SmzFlattenMenuPipe, SmzFlipCardContext, SmzFormBuilder, SmzFormViewdata, SmzFormsConfig, SmzFormsPresets, SmzFormsRepositoryService, SmzGaugeBuilder, SmzGaugeComponent, SmzGaugeThresholdBuilder, SmzGetDataPipe, SmzGridItemComponent, SmzHelpDialogService, SmzHtmlViewerComponent, SmzHtmlViewerModule, SmzIconColumnBuilder, SmzIconMessageComponent, SmzInfoDateComponent, SmzInfoDateModule, SmzInitialPipe, SmzInputAutocompleteTagArea, SmzInputTextModule, SmzInputTextPipe, SmzLayoutsConfig, SmzLoader, SmzLoaders, SmzLoginBuilder, SmzLoginComponent, SmzLoginModule, SmzMenuBuilder, SmzMenuComponent, SmzMenuCreationBuilder, SmzMenuCreationItemBuilder, SmzMenuItemActionsDirective, SmzMenuItemBuilder, SmzMenuItemEasyTableBuilder, SmzMenuItemTableBuilder, SmzMenuTableBuilder, SmzMessagesModule, SmzMultiTablesBuilder, SmzMultiTablesComponent, SmzNotificationsComponent, SmzNotificationsModule, SmzNumberEditableBuilder, SmzPresets, SmzProxyStore, SmzResponsiveBreakpointsDirective, SmzResponsiveBreakpointsDirectiveModule, SmzResponsiveComponent, SmzRouteDatas, SmzRouteParams, SmzRouteQueryParams, SmzSideContentComponent, SmzSideContentDefault, SmzSincronizeTablePipe, SmzSmartTag, SmzSmartTagModule, SmzSubmitComponent, SmzSvgBuilder, SmzSvgComponent, SmzSvgFeatureBuilder, SmzSvgModule, SmzSvgPinBuilder, SmzSvgRootBuilder, SmzSvgWorldCoordinates, SmzSwitchEditableBuilder, SmzTableBuilder, SmzTableComponent, SmzTablesConfig, SmzTagMessage, SmzTailPipe, SmzTemplatesPipeModule, SmzTenantSwitchComponent, SmzTextColumnBuilder, SmzTextEditableBuilder, SmzTextPattern, SmzTimelineBuilder, SmzTimelineComponent, SmzToastComponent, SmzTooltipTouchSupportModule, SmzTreeBuilder, SmzTreeComponent, SmzTreeDragAndDropBuilder, SmzTreeDropBuilder, SmzTreeDynamicMenuBuilder, SmzTreeDynamicMenuItemBuilder, SmzTreeEmptyFeedbackBuilder, SmzTreeMenuBuilder, SmzTreeMenuItemBuilder, SmzTreeToolbarBuilder, SmzTreeToolbarButtonBuilder, SmzTreeToolbarButtonCollectionBuilder, SmzTreeWithDetailsBuilder, SmzTreeWithDetailsComponent, SmzUiBlockComponent, SmzUiBlockDirective, SmzUiBlockService, SmzUiBuilder, SmzUiEnvironment, SmzUiGuidesBuilder, SmzUiGuidesService, SmzViewportDirective, SmzViewportService, SortIcon, SortableColumn, StandaloneInjectComponentDirective, StateBuilderPipe, TENANTS_PAGE_ROUTE, TENANTS_PATH, TENANTS_STATE_NAME, Table, TableBody, TableCheckbox, TableClearExtensionDirective, TableHeaderCheckbox, TableHelperService, TableModule, TableOverlayService, TableRadioButton, TableService, TenantAuthenticationSelectors, TenantsActions, TenantsModule, TenantsSelectors, TenantsState, ThemeManagerService, TitleService, ToastActions, ToastService, TooltipTouchSupportDirective, TreeHelperService, TreeHelpers, Tunnel, UI_DEFINITIONS_STATE_NAME, UI_LOCALIZATION_STATE_NAME, USERS_PAGE_ROUTE, USERS_PATH, USERS_STATE_NAME, USER_ID_HEADER, LayoutUiActions as UiActions, UiDefinitionsDbActions, UiDefinitionsDbSelectors, UiDefinitionsDbState, UiDefinitionsService, UiLocalizationDbActions, UiLocalizationDbSelectors, UiLocalizationDbState, UiLocalizationService, LayoutUiSelectors as UiSelectors, UniqueFilterPipe, UrlCheckerPipe, UrlCheckerPipeModule, UsersActions, UsersModule, UsersSelectors, UsersState, WINDOWS_AUTHENTICATION_HEADER, Wait, applyTableContentNgStyle, b64toBlob, base64ToFile, breakLinesForHtml, buildAuthenticationEndpointsRoutes, buildAuthenticationUrl, buildAuthorizationEndpointsRoutes, buildLoginPageUrl, buildServerApiUrl, buildSmzDialogCustomButtonTestId, buildSmzDialogTestId, buildSmzDialogTopbarButtonTestId, buildSmzTableTestId, buildState, capitalizeFirstLetter, capitalizeWithSlash, captureAttemptedRoute, clearArray, clearAttemptedRoute, clone, cloneAndRemoveProperties, cloneAndRemoveProperty, compare, compareInsensitive, completeSubjectOnTheInstance, composeAttemptedRoute, consumeAttemptedRoute, convertFormCreationFeature, convertFormFeature, convertFormFeatureFromInputData, convertFormUpdateFeature, count, createObjectFromString, createRound, createSubjectOnTheInstance, dataURLtoFile, databaseSmzAccessStates, debounce, deepClone, deepEqual, deepIndexOf, deepMerge, defaultFormsModuleConfig, defaultState, downloadBase64File, downloadFromServerUrl, downloadFromUrl, empty, every, executeSmzMenuItem, executeTextPattern, featureSmzAccessStates, fixDate$1 as fixDate, fixDateProperties, fixDates, flatten, flattenObject, getAuthenticationInitialState, getCleanApplicationState, getFirst, getFirstElement, getFirstElements, getFormInputFromDialog, getGlobalInitialState, getInitialApplicationState, getInitialDatabaseStoreState, getInitialState$8 as getInitialState, getLastElements, getPreset, getProperty, getSymbol, getTreeNodeFromKey, getUiDefinitionsInitialState, getUiLocalizationInitialState, getUsersInitialState, getValidatorsForInput, handleBase64, isArray, isConvertibleToNumber, isDeepObject, isEmpty$1 as isEmpty, isFunction$1 as isFunction, isInteger, isNil, isNull$1 as isNull, isNullOrEmptyString, isNumber$1 as isNumber, isNumberFinite$1 as isNumberFinite, isNumeric, isObject$2 as isObject, isObjectHelper, isPositive, isSimpleNamedEntity, isString$1 as isString, isUndefined$1 as isUndefined, isValidAttemptedRoute, isWithinTime, leftPad, longestStringInArray, mapParamsToObject, markAsDecorated, mergeClone, mergeDeep, nameof, namesof, ngxsModuleForFeatureFaqsDbState, ngxsModuleForFeatureUiAthenaLayoutState, ngxsModuleForFeatureUiHephaestusLayoutState, ngxsModuleForFeatureUiNewAthenaLayoutState, normalizeDateToUtc, orderArrayByProperty, pad, peekAttemptedRoute, provideSmzCoreLogging, provideSmzEnvironment, rbkSafeHtmlPipe, removeElementFromArray, replaceAll, replaceArrayItem, replaceArrayPartialItem, replaceItem, replaceNgOnInit, resolvePostLoginUrl, resolveSmzTableRowId, rightPad, routerModuleForChildUsersModule, routerParamsDispatch, routerParamsListener, setNestedObject, shorten, showConfirmation, showDialog, showMarkdownDialog, showMessage, showObjectDialog, showPersistentDialog, shuffle, slugSmzDialogTestIdKey, slugSmzTableTestIdKey, sortArray, sortArrayOfObjects, sortArrayOfStrings, sortMenuItemsByLabel, sum, synchronizeNodes, synchronizeRow, synchronizeTable, synchronizeTrees, takeUntil, takeWhile, toDecimal, toSimpleNamedEntity, toString, unwrapDeep, upperFirst, uuidv4, wrapDeep };
|
|
57141
|
+
export { AUTHORIZATION_HEADER, AccessControlService, ActionDispatchDirective, ApplicationActions, ApplicationSelectors, ApplicationState, AsPipe, AthenaLayout, AthenaLayoutComponent, AthenaLayoutModule, AuthClaimDefinitions, AuthHandler, AuthService, AuthenticationActions, AuthenticationSelectors, AuthenticationService, AuthenticationState, AuthorizationService, AxisOverflowDirection, AxisOverflowType, AxisPosition, BaseApiService, BoilerplateService, BreadcrumbService, CLAIMS_PAGE_ROUTE, CLAIMS_PATH, CLAIMS_STATE_NAME, CONTENT_ENCODING_HEADER, CachedRouteReuseStrategy, CalendarComponent, CalendarPipe, CanAccess, CancelEditableRow, CellEditor, ChartType, CheckBoxComponent, CheckBoxGroupComponent, ClaimAccessType, ClaimAccessTypeDescription, ClaimAccessTypeValues, ClaimsActions, ClaimsModule, ClaimsSelectors, ClaimsState, ClickStopPropagationDirective, ClickStopPropagationModule, ClonePipe, ColorPallete, ColorPickerComponent, ColumnFilter, ColumnFilterFormElement, Confirmable, ContextMenuRow, CreateLinearChart, CreateRadialChart, CustomError, CustomNgForDirective, CustomNgForModule, DATABASE_REQUIRED_ACTIONS, DATABASE_STATES, DECORATOR_APPLIED, DEFAULT_AUTHENTICATION_ENDPOINTS_ROUTES, DEFAULT_AUTHORIZATION_ENDPOINTS_ROUTES, DatabaseActions, DatabaseSelectors, DatabaseState, DatasetType, DeepWrapper, DescribeAnyPipe, DescribeArrayPipe, DescribeSimpleNamedPipe, DialogContentManagerComponent, DialogService, DropdownComponent, DynamicDialogComponent, DynamicDialogConfig, DynamicDialogInjector, DynamicDialogModule, DynamicDialogRef, ERROR_HANDLING_TYPE_HEADER, EditableColumn, EditableRow, ExcelsUiActions, FEATURE_STATES, FeaturesActions, FeaturesSelectors, FeaturesState, FileUploadComponent, FilterContains, FirstOrDefaultPipe, FormGroupComponent, FormSubmitComponent, FrozenColumn, GenericInjectComponentDirective, GetElementById, GetElementsByParentId, GlobalActions, GlobalFilter, GlobalInjector, GlobalLoaderComponent, GlobalLoaderModule, GlobalState, GroupingType, HephaestusLayout, HephaestusLayoutComponent, HephaestusLayoutModule, HephaestusProviderModule, HostElement, HttpErrorHandler, IGNORE_ERROR_HANDLING, InViewportMetadata, InitEditableRow, InjectComponentDirective, InjectComponentService, InjectContentAppModule, InjectContentDirective, InjectContentService, InputBlurDetectionModule, InputChangeDetectionDirective, InputClearExtensionDirective, InputCurrencyComponent, InputListComponent, InputMaskComponent, InputNumberComponent, InputPasswordComponent, InputSwitchComponent, InputTagAreaComponent, InputTextAreaComponent, InputTextComponent, InputTreeComponent, IsVisiblePipe, IsVisiblePipeModule, JoinPipe, LOADING_BEHAVIOR_HEADER, LOCAL_LOADING_TAG_HEADER, LayoutUiActions, LayoutUiSelectors, LayoutUiState, LegacyAuthenticationSelectors, LinearChartBuilder, LinkedDropdownComponent, LinkedMultiSelectComponent, LoggingScope, LoggingService, MAIN_LAYOUT_PATH, MentionableTextareaComponent, MenuHelperService, MenuType, MergeClonePipe, MergeClonePipeModule, MultiSelectComponent, NG_ON_INIT, NewAthenaLayout, NewAthenaLayoutComponent, NewAthenaLayoutModule, NewAthenaProviderModule, NgCloneDirective, NgCloneModule, NgIfLandscapeDirective, NgIfLandscapeDirectiveModule, NgIfPortraitDirective, NgIfPortraitDirectiveModule, NgVar, NgVarContext, NgVarModule, NgxRbkUtilsConfig, NgxRbkUtilsModule, NgxSmzCardsModule, NgxSmzCommentsModule, NgxSmzDataInfoModule, NgxSmzDataPipesModule, NgxSmzDialogsModule, NgxSmzDockModule, NgxSmzDocumentsModule, NgxSmzFaqsModule, NgxSmzFormsModule, NgxSmzLayoutsModule, NgxSmzMenuModule, NgxSmzMultiTablesModule, NgxSmzRouterParamsModule, NgxSmzSafeImageModule, NgxSmzServerImageModule, NgxSmzServerImageToBase64Module, NgxSmzSideContentModule, NgxSmzTablesModule, NgxSmzTreeWithDetailsModule, NgxSmzTreesModule, NgxSmzUiBlockModule, NgxSmzUiComponent, NgxSmzUiConfig, NgxSmzUiGuidesModule, NgxSmzUiModule, NgxSmzViewportModule, NotificationFolder, NotificationFolderStatus, NotificationStatus, NotificationType, NotificationTypeClass, NotificationsUiActions, NotificationsUiSelectors, PrettyJsonPipe$1 as PrettyJsonPipe, PrettyJsonPipeModule, PrimeConfigService, REFRESH_TOKEN_BEHAVIOR_HEADER, RESTORE_STATE_ON_ERROR_HEADER, ROLES_PAGE_ROUTE, ROLES_PATH, ROLES_STATE_NAME, RadialChartBuilder, RadioButtonComponent, RbkAccessControlModule, RbkAuthGuard, RbkCanAccessAnyPipe, RbkCanAccessPipe, RbkClaimGuardDirective, RbkDatabaseStateGuard, RbkFeatureStateGuard, RbkPipesModule, RbkTableFilterClearDirectivesModule, RegistrySmzUiConfiguration, ReorderableColumn, ReorderableRow, ReorderableRowHandle, RepositoryForm, ResizableColumn, RoleMode, RoleModeDescription, RoleModeValues, RoleSource, RoleSourceDescription, RoleSourceValues, RolesActions, RolesModule, RolesSelectors, RolesState, RouterParamsActions, RouterParamsSelectors, RowGroupHeader, RowToggler, SMZ_CORE_LOGGING_CONFIG, SMZ_UI_ENVIRONMENT_CONFIG, SafeHtmlPipe$2 as SafeHtmlPipe, SafeImageDirective, SafeUrlPipe$1 as SafeUrlPipe, SaveEditableRow, SelectableRow, SelectableRowDblClick, SelectorPipe, ServerImageDirective, ServerImageToBase64Directive, ServerPathPipe, SetTemplateClasses, SetTemplateClassesPipe, SidebarState, SimpleCalendarPipe, SmzActionDispatchModule, SmzAuthorizationDeactivatedUsersTableBuilder, SmzAuthorizationUsersTableBuilder, SmzBaseColumnBuilder, SmzBaseEditableBuilder, SmzBreakpoints, SmzBuilderUtilities, SmzCardsBuilder, SmzCardsComponent, SmzCardsContentType, SmzCardsInjectableComponentBuilder, SmzCardsTemplate, SmzCardsView, SmzChartComponent, SmzChartModule, SmzClipboardService, SmzColumnCollectionBuilder, SmzCommentsBuilder, SmzCommentsComponent, SmzCommentsSectionComponent, SmzContentTheme, SmzContentThemes, SmzContentType, SmzControlType, SmzCoreLogging, SmzCurrencyColumnBuilder, SmzCustomColumnBuilder, SmzDataInfoComponent, SmzDataTransformColumnBuilder, SmzDataTransformTreePipe, SmzDateColumnBuilder, SmzDialogBuilder, SmzDialogComponentBuilder, SmzDialogFormBuilder, SmzDialogTableBuilder, SmzDialogsConfig, SmzDialogsPresets, SmzDialogsService, SmzDockComponent, SmzDockService, SmzDocumentBaseCellBuilder, SmzDocumentBuilder, SmzDocumentComponent, SmzDocumentsService, SmzDragDropModule, SmzDraggable, SmzDropdownEditableBuilder, SmzDroppable, SmzDynamicDialogConfig, SmzEasyBaseColumnBuilder, SmzEasyColumnCollectionBuilder, SmzEasyCustomColumnBuilder, SmzEasyDataTransformColumnBuilder, SmzEasyDateColumnBuilder, SmzEasyMenuTableBuilder, SmzEasyTableBuilder, SmzEasyTableComponent, SmzEasyTableContentType, SmzEasyTableModule, SmzEasyTextColumnBuilder, SmzEditableCollectionBuilder, SmzEditableTableBuilder, SmzEditableType, SmzEnvironment, SmzExcelColorDefinitions, SmzExcelDataDefinitions, SmzExcelFontDefinitions, SmzExcelService, SmzExcelSortOrderDefinitions, SmzExcelThemeDefinitions, SmzExcelTypeDefinitions, SmzExcelsBuilder, SmzExportDialogComponent, SmzExportDialogModule, SmzExportDialogService, SmzExportableContentSource, SmzExportableContentType, SmzFaqsComponent, SmzFaqsConfig, SmzFilterType, SmzFlattenMenuPipe, SmzFlipCardContext, SmzFormBuilder, SmzFormViewdata, SmzFormsConfig, SmzFormsPresets, SmzFormsRepositoryService, SmzGaugeBuilder, SmzGaugeComponent, SmzGaugeThresholdBuilder, SmzGetDataPipe, SmzGridItemComponent, SmzHelpDialogService, SmzHtmlViewerComponent, SmzHtmlViewerModule, SmzIconColumnBuilder, SmzIconMessageComponent, SmzInfoDateComponent, SmzInfoDateModule, SmzInitialPipe, SmzInputAutocompleteTagArea, SmzInputTextModule, SmzInputTextPipe, SmzLayoutsConfig, SmzLoader, SmzLoaders, SmzLoginBuilder, SmzLoginComponent, SmzLoginModule, SmzMenuBuilder, SmzMenuComponent, SmzMenuCreationBuilder, SmzMenuCreationItemBuilder, SmzMenuItemActionsDirective, SmzMenuItemBuilder, SmzMenuItemEasyTableBuilder, SmzMenuItemTableBuilder, SmzMenuTableBuilder, SmzMessagesModule, SmzMultiTablesBuilder, SmzMultiTablesComponent, SmzNotificationsComponent, SmzNotificationsModule, SmzNumberEditableBuilder, SmzPresets, SmzProxyStore, SmzResponsiveBreakpointsDirective, SmzResponsiveBreakpointsDirectiveModule, SmzResponsiveComponent, SmzRouteDatas, SmzRouteParams, SmzRouteQueryParams, SmzSideContentComponent, SmzSideContentDefault, SmzSincronizeTablePipe, SmzSmartTag, SmzSmartTagModule, SmzSubmitComponent, SmzSvgBuilder, SmzSvgComponent, SmzSvgFeatureBuilder, SmzSvgModule, SmzSvgPinBuilder, SmzSvgRootBuilder, SmzSvgWorldCoordinates, SmzSwitchEditableBuilder, SmzTableBuilder, SmzTableComponent, SmzTablesConfig, SmzTagMessage, SmzTailPipe, SmzTemplatesPipeModule, SmzTenantSwitchComponent, SmzTextColumnBuilder, SmzTextEditableBuilder, SmzTextPattern, SmzTimelineBuilder, SmzTimelineComponent, SmzToastComponent, SmzTooltipTouchSupportModule, SmzTreeBuilder, SmzTreeComponent, SmzTreeDragAndDropBuilder, SmzTreeDropBuilder, SmzTreeDynamicMenuBuilder, SmzTreeDynamicMenuItemBuilder, SmzTreeEmptyFeedbackBuilder, SmzTreeMenuBuilder, SmzTreeMenuItemBuilder, SmzTreeToolbarBuilder, SmzTreeToolbarButtonBuilder, SmzTreeToolbarButtonCollectionBuilder, SmzTreeWithDetailsBuilder, SmzTreeWithDetailsComponent, SmzUiBlockComponent, SmzUiBlockDirective, SmzUiBlockService, SmzUiBuilder, SmzUiEnvironment, SmzUiGuidesBuilder, SmzUiGuidesService, SmzViewportDirective, SmzViewportService, SortIcon, SortableColumn, StandaloneInjectComponentDirective, StateBuilderPipe, TENANTS_PAGE_ROUTE, TENANTS_PATH, TENANTS_STATE_NAME, Table, TableBody, TableCheckbox, TableClearExtensionDirective, TableHeaderCheckbox, TableHelperService, TableModule, TableOverlayService, TableRadioButton, TableService, TenantAuthenticationSelectors, TenantsActions, TenantsModule, TenantsSelectors, TenantsState, ThemeManagerService, TitleService, ToastActions, ToastService, TooltipTouchSupportDirective, TreeHelperService, TreeHelpers, Tunnel, UI_DEFINITIONS_STATE_NAME, UI_LOCALIZATION_STATE_NAME, USERS_PAGE_ROUTE, USERS_PATH, USERS_STATE_NAME, USER_ID_HEADER, LayoutUiActions as UiActions, UiDefinitionsDbActions, UiDefinitionsDbSelectors, UiDefinitionsDbState, UiDefinitionsService, UiLocalizationDbActions, UiLocalizationDbSelectors, UiLocalizationDbState, UiLocalizationService, LayoutUiSelectors as UiSelectors, UniqueFilterPipe, UrlCheckerPipe, UrlCheckerPipeModule, UsersActions, UsersModule, UsersSelectors, UsersState, WINDOWS_AUTHENTICATION_HEADER, Wait, applyTableContentNgStyle, b64toBlob, base64ToFile, breakLinesForHtml, buildAuthenticationEndpointsRoutes, buildAuthenticationUrl, buildAuthorizationEndpointsRoutes, buildLoginPageUrl, buildServerApiUrl, buildSmzDialogCustomButtonTestId, buildSmzDialogTestId, buildSmzDialogTopbarButtonTestId, buildSmzTableTestId, buildState, capitalizeFirstLetter, capitalizeWithSlash, captureAttemptedRoute, clearArray, clearAttemptedRoute, clone, cloneAndRemoveProperties, cloneAndRemoveProperty, compare, compareInsensitive, completeSubjectOnTheInstance, composeAttemptedRoute, consumeAttemptedRoute, convertFormCreationFeature, convertFormFeature, convertFormFeatureFromInputData, convertFormUpdateFeature, count, createObjectFromString, createRound, createSubjectOnTheInstance, dataURLtoFile, databaseSmzAccessStates, debounce, deepClone, deepEqual, deepIndexOf, deepMerge, defaultFormsModuleConfig, defaultState, downloadBase64File, downloadFromServerUrl, downloadFromUrl, empty, every, executeSmzMenuItem, executeTextPattern, featureSmzAccessStates, fixDate$1 as fixDate, fixDateProperties, fixDates, flatten, flattenObject, getAuthenticationInitialState, getCleanApplicationState, getFirst, getFirstElement, getFirstElements, getFormInputFromDialog, getGlobalInitialState, getInitialApplicationState, getInitialDatabaseStoreState, getInitialState$8 as getInitialState, getLastElements, getPreset, getProperty, getSymbol, getTreeNodeFromKey, getUiDefinitionsInitialState, getUiLocalizationInitialState, getUsersInitialState, getValidatorsForInput, handleBase64, isArray, isConvertibleToNumber, isDeepObject, isEmpty$1 as isEmpty, isFunction$1 as isFunction, isInsideCdkOverlay, isInteger, isNil, isNull$1 as isNull, isNullOrEmptyString, isNumber$1 as isNumber, isNumberFinite$1 as isNumberFinite, isNumeric, isObject$2 as isObject, isObjectHelper, isPositive, isSimpleNamedEntity, isString$1 as isString, isUndefined$1 as isUndefined, isValidAttemptedRoute, isWithinTime, leftPad, longestStringInArray, mapParamsToObject, markAsDecorated, mergeClone, mergeDeep, nameof, namesof, ngxsModuleForFeatureFaqsDbState, ngxsModuleForFeatureUiAthenaLayoutState, ngxsModuleForFeatureUiHephaestusLayoutState, ngxsModuleForFeatureUiNewAthenaLayoutState, normalizeDateToUtc, orderArrayByProperty, pad, peekAttemptedRoute, provideSmzCoreLogging, provideSmzEnvironment, rbkSafeHtmlPipe, removeElementFromArray, replaceAll, replaceArrayItem, replaceArrayPartialItem, replaceItem, replaceNgOnInit, resolvePostLoginUrl, resolveSmzTableRowId, rightPad, routerModuleForChildUsersModule, routerParamsDispatch, routerParamsListener, setNestedObject, shorten, showConfirmation, showDialog, showMarkdownDialog, showMessage, showObjectDialog, showPersistentDialog, shuffle, slugSmzDialogTestIdKey, slugSmzTableTestIdKey, sortArray, sortArrayOfObjects, sortArrayOfStrings, sortMenuItemsByLabel, sum, synchronizeNodes, synchronizeRow, synchronizeTable, synchronizeTrees, takeUntil, takeWhile, toDecimal, toSimpleNamedEntity, toString, unwrapDeep, upperFirst, uuidv4, wrapDeep };
|
|
57088
57142
|
//# sourceMappingURL=ngx-smz-core.mjs.map
|