{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChildren, Directive, HostListener, Optional, NgModule } from '@angular/core';\nimport * as i4 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i9 from '@angular/forms';\nimport { FormsModule } from '@angular/forms';\nimport * as i1 from 'primeng/api';\nimport { FilterOperator, FilterMatchMode, PrimeTemplate, TranslationKeys, SharedModule } from 'primeng/api';\nimport * as i2 from 'primeng/paginator';\nimport { PaginatorModule } from 'primeng/paginator';\nimport * as i8 from 'primeng/inputtext';\nimport { InputTextModule } from 'primeng/inputtext';\nimport * as i11 from 'primeng/button';\nimport { ButtonModule } from 'primeng/button';\nimport { SelectButtonModule } from 'primeng/selectbutton';\nimport * as i6 from 'primeng/tristatecheckbox';\nimport { TriStateCheckboxModule } from 'primeng/tristatecheckbox';\nimport * as i7 from 'primeng/calendar';\nimport { CalendarModule } from 'primeng/calendar';\nimport * as i5 from 'primeng/inputnumber';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport * as i10 from 'primeng/dropdown';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { UniqueComponentId, ObjectUtils, ZIndexUtils } from 'primeng/utils';\nimport { Subject } from 'rxjs';\nimport * as i3 from '@angular/cdk/scrolling';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { trigger, transition, style, animate } from '@angular/animations';\nconst _c0 = [\"container\"];\nconst _c1 = [\"resizeHelper\"];\nconst _c2 = [\"reorderIndicatorUp\"];\nconst _c3 = [\"reorderIndicatorDown\"];\nconst _c4 = [\"wrapper\"];\nconst _c5 = [\"table\"];\nconst _c6 = [\"tableHeader\"];\n\nfunction Table_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵelement(1, \"i\");\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵclassMap(\"p-datatable-loading-icon pi-spin \" + ctx_r1.loadingIcon);\n }\n}\n\nfunction Table_div_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction Table_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 15);\n i0.ɵɵtemplate(1, Table_div_3_ng_container_1_Template, 1, 0, \"ng-container\", 16);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.captionTemplate);\n }\n}\n\nfunction Table_p_paginator_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r14 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"p-paginator\", 17);\n i0.ɵɵlistener(\"onPageChange\", function Table_p_paginator_4_Template_p_paginator_onPageChange_0_listener($event) {\n i0.ɵɵrestoreView(_r14);\n const ctx_r13 = i0.ɵɵnextContext();\n return ctx_r13.onPageChange($event);\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"rows\", ctx_r3.rows)(\"first\", ctx_r3.first)(\"totalRecords\", ctx_r3.totalRecords)(\"pageLinkSize\", ctx_r3.pageLinks)(\"alwaysShow\", ctx_r3.alwaysShowPaginator)(\"rowsPerPageOptions\", ctx_r3.rowsPerPageOptions)(\"templateLeft\", ctx_r3.paginatorLeftTemplate)(\"templateRight\", ctx_r3.paginatorRightTemplate)(\"dropdownAppendTo\", ctx_r3.paginatorDropdownAppendTo)(\"dropdownScrollHeight\", ctx_r3.paginatorDropdownScrollHeight)(\"currentPageReportTemplate\", ctx_r3.currentPageReportTemplate)(\"showFirstLastIcon\", ctx_r3.showFirstLastIcon)(\"dropdownItemTemplate\", ctx_r3.paginatorDropdownItemTemplate)(\"showCurrentPageReport\", ctx_r3.showCurrentPageReport)(\"showJumpToPageDropdown\", ctx_r3.showJumpToPageDropdown)(\"showJumpToPageInput\", ctx_r3.showJumpToPageInput)(\"showPageLinks\", ctx_r3.showPageLinks);\n }\n}\n\nfunction Table_table_7_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction Table_table_7_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction Table_table_7_tbody_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"tbody\", 25);\n }\n\n if (rf & 2) {\n const ctx_r18 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"value\", ctx_r18.frozenValue)(\"frozenRows\", true)(\"pTableBody\", ctx_r18.columns)(\"pTableBodyTemplate\", ctx_r18.frozenBodyTemplate)(\"frozen\", true);\n }\n}\n\nfunction Table_table_7_tfoot_7_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c7 = function (a0) {\n return {\n $implicit: a0\n };\n};\n\nfunction Table_table_7_tfoot_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tfoot\", 26);\n i0.ɵɵtemplate(1, Table_table_7_tfoot_7_ng_container_1_Template, 1, 0, \"ng-container\", 20);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r19 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r19.footerGroupedTemplate || ctx_r19.footerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c7, ctx_r19.columns));\n }\n}\n\nfunction Table_table_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 18, 19);\n i0.ɵɵtemplate(2, Table_table_7_ng_container_2_Template, 1, 0, \"ng-container\", 20);\n i0.ɵɵelementStart(3, \"thead\", 21);\n i0.ɵɵtemplate(4, Table_table_7_ng_container_4_Template, 1, 0, \"ng-container\", 20);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, Table_table_7_tbody_5_Template, 1, 5, \"tbody\", 22);\n i0.ɵɵelement(6, \"tbody\", 23);\n i0.ɵɵtemplate(7, Table_table_7_tfoot_7_Template, 2, 4, \"tfoot\", 24);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r5.tableStyleClass)(\"ngStyle\", ctx_r5.tableStyle);\n i0.ɵɵattribute(\"id\", ctx_r5.id + \"-table\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.colGroupTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(12, _c7, ctx_r5.columns));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.headerGroupedTemplate || ctx_r5.headerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(14, _c7, ctx_r5.columns));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r5.frozenValue || ctx_r5.frozenBodyTemplate);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"value\", ctx_r5.dataToRender)(\"pTableBody\", ctx_r5.columns)(\"pTableBodyTemplate\", ctx_r5.bodyTemplate);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r5.footerGroupedTemplate || ctx_r5.footerTemplate);\n }\n}\n\nfunction Table_cdk_virtual_scroll_viewport_8_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction Table_cdk_virtual_scroll_viewport_8_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction Table_cdk_virtual_scroll_viewport_8_tbody_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"tbody\", 25);\n }\n\n if (rf & 2) {\n const ctx_r25 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"value\", ctx_r25.frozenValue)(\"frozenRows\", true)(\"pTableBody\", ctx_r25.columns)(\"pTableBodyTemplate\", ctx_r25.bodyTemplate)(\"frozen\", true);\n }\n}\n\nfunction Table_cdk_virtual_scroll_viewport_8_tfoot_9_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction Table_cdk_virtual_scroll_viewport_8_tfoot_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tfoot\", 26);\n i0.ɵɵtemplate(1, Table_cdk_virtual_scroll_viewport_8_tfoot_9_ng_container_1_Template, 1, 0, \"ng-container\", 20);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r26 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r26.footerGroupedTemplate || ctx_r26.footerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c7, ctx_r26.columns));\n }\n}\n\nfunction Table_cdk_virtual_scroll_viewport_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r29 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"cdk-virtual-scroll-viewport\", 27);\n i0.ɵɵlistener(\"scrolledIndexChange\", function Table_cdk_virtual_scroll_viewport_8_Template_cdk_virtual_scroll_viewport_scrolledIndexChange_0_listener($event) {\n i0.ɵɵrestoreView(_r29);\n const ctx_r28 = i0.ɵɵnextContext();\n return ctx_r28.onScrollIndexChange($event);\n });\n i0.ɵɵelementStart(1, \"table\", 18, 19);\n i0.ɵɵtemplate(3, Table_cdk_virtual_scroll_viewport_8_ng_container_3_Template, 1, 0, \"ng-container\", 20);\n i0.ɵɵelementStart(4, \"thead\", 21, 28);\n i0.ɵɵtemplate(6, Table_cdk_virtual_scroll_viewport_8_ng_container_6_Template, 1, 0, \"ng-container\", 20);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, Table_cdk_virtual_scroll_viewport_8_tbody_7_Template, 1, 5, \"tbody\", 22);\n i0.ɵɵelement(8, \"tbody\", 23);\n i0.ɵɵtemplate(9, Table_cdk_virtual_scroll_viewport_8_tfoot_9_Template, 2, 4, \"tfoot\", 24);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"height\", ctx_r6.scrollHeight !== \"flex\" ? ctx_r6.scrollHeight : undefined);\n i0.ɵɵproperty(\"itemSize\", ctx_r6.virtualRowHeight)(\"minBufferPx\", ctx_r6.minBufferPx)(\"maxBufferPx\", ctx_r6.maxBufferPx);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngClass\", ctx_r6.tableStyleClass)(\"ngStyle\", ctx_r6.tableStyle);\n i0.ɵɵattribute(\"id\", ctx_r6.id + \"-table\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.colGroupTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(17, _c7, ctx_r6.columns));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.headerGroupedTemplate || ctx_r6.headerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(19, _c7, ctx_r6.columns));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r6.frozenValue || ctx_r6.frozenBodyTemplate);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"value\", ctx_r6.dataToRender)(\"pTableBody\", ctx_r6.columns)(\"pTableBodyTemplate\", ctx_r6.bodyTemplate);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r6.footerGroupedTemplate || ctx_r6.footerTemplate);\n }\n}\n\nfunction Table_p_paginator_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r31 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"p-paginator\", 29);\n i0.ɵɵlistener(\"onPageChange\", function Table_p_paginator_9_Template_p_paginator_onPageChange_0_listener($event) {\n i0.ɵɵrestoreView(_r31);\n const ctx_r30 = i0.ɵɵnextContext();\n return ctx_r30.onPageChange($event);\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"rows\", ctx_r7.rows)(\"first\", ctx_r7.first)(\"totalRecords\", ctx_r7.totalRecords)(\"pageLinkSize\", ctx_r7.pageLinks)(\"alwaysShow\", ctx_r7.alwaysShowPaginator)(\"rowsPerPageOptions\", ctx_r7.rowsPerPageOptions)(\"templateLeft\", ctx_r7.paginatorLeftTemplate)(\"templateRight\", ctx_r7.paginatorRightTemplate)(\"dropdownAppendTo\", ctx_r7.paginatorDropdownAppendTo)(\"dropdownScrollHeight\", ctx_r7.paginatorDropdownScrollHeight)(\"currentPageReportTemplate\", ctx_r7.currentPageReportTemplate)(\"showFirstLastIcon\", ctx_r7.showFirstLastIcon)(\"dropdownItemTemplate\", ctx_r7.paginatorDropdownItemTemplate)(\"showCurrentPageReport\", ctx_r7.showCurrentPageReport)(\"showJumpToPageDropdown\", ctx_r7.showJumpToPageDropdown)(\"showJumpToPageInput\", ctx_r7.showJumpToPageInput)(\"showPageLinks\", ctx_r7.showPageLinks);\n }\n}\n\nfunction Table_div_10_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction Table_div_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 30);\n i0.ɵɵtemplate(1, Table_div_10_ng_container_1_Template, 1, 0, \"ng-container\", 16);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r8 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r8.summaryTemplate);\n }\n}\n\nfunction Table_div_11_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 31, 32);\n }\n}\n\nfunction Table_span_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 33, 34);\n }\n}\n\nfunction Table_span_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 35, 36);\n }\n}\n\nconst _c8 = function (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) {\n return {\n \"p-datatable p-component\": true,\n \"p-datatable-hoverable-rows\": a1,\n \"p-datatable-auto-layout\": a2,\n \"p-datatable-resizable\": a3,\n \"p-datatable-resizable-fit\": a4,\n \"p-datatable-scrollable\": a5,\n \"p-datatable-scrollable-vertical\": a6,\n \"p-datatable-scrollable-horizontal\": a7,\n \"p-datatable-scrollable-both\": a8,\n \"p-datatable-flex-scrollable\": a9,\n \"p-datatable-responsive-stack\": a10,\n \"p-datatable-responsive-scroll\": a11,\n \"p-datatable-responsive\": a12,\n \"p-datatable-grouped-header\": a13,\n \"p-datatable-grouped-footer\": a14\n };\n};\n\nconst _c9 = function (a0) {\n return {\n height: a0\n };\n};\n\nconst _c10 = [\"pTableBody\", \"\"];\n\nfunction TableBody_ng_container_0_ng_template_1_ng_container_0_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c11 = function (a0, a1, a2, a3, a4) {\n return {\n $implicit: a0,\n rowIndex: a1,\n columns: a2,\n editing: a3,\n frozen: a4\n };\n};\n\nfunction TableBody_ng_container_0_ng_template_1_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r14 = i0.ɵɵnextContext();\n const rowData_r7 = ctx_r14.$implicit;\n const rowIndex_r8 = ctx_r14.index;\n const ctx_r9 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r9.dt.groupHeaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction5(2, _c11, rowData_r7, ctx_r9.dt.paginator ? ctx_r9.dt.first + rowIndex_r8 : rowIndex_r8, ctx_r9.columns, ctx_r9.dt.editMode === \"row\" && ctx_r9.dt.isRowEditing(rowData_r7), ctx_r9.frozen));\n }\n}\n\nfunction TableBody_ng_container_0_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_0_ng_template_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r16 = i0.ɵɵnextContext();\n const rowData_r7 = ctx_r16.$implicit;\n const rowIndex_r8 = ctx_r16.index;\n const ctx_r10 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r10.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction5(2, _c11, rowData_r7, ctx_r10.dt.paginator ? ctx_r10.dt.first + rowIndex_r8 : rowIndex_r8, ctx_r10.columns, ctx_r10.dt.editMode === \"row\" && ctx_r10.dt.isRowEditing(rowData_r7), ctx_r10.frozen));\n }\n}\n\nfunction TableBody_ng_container_0_ng_template_1_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c12 = function (a0, a1, a2, a3, a4, a5, a6) {\n return {\n $implicit: a0,\n rowIndex: a1,\n columns: a2,\n editing: a3,\n frozen: a4,\n rowgroup: a5,\n rowspan: a6\n };\n};\n\nfunction TableBody_ng_container_0_ng_template_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r18 = i0.ɵɵnextContext();\n const rowData_r7 = ctx_r18.$implicit;\n const rowIndex_r8 = ctx_r18.index;\n const ctx_r11 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r11.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction7(2, _c12, rowData_r7, ctx_r11.dt.paginator ? ctx_r11.dt.first + rowIndex_r8 : rowIndex_r8, ctx_r11.columns, ctx_r11.dt.editMode === \"row\" && ctx_r11.dt.isRowEditing(rowData_r7), ctx_r11.frozen, ctx_r11.shouldRenderRowspan(ctx_r11.value, rowData_r7, rowIndex_r8), ctx_r11.calculateRowGroupSize(ctx_r11.value, rowData_r7, rowIndex_r8)));\n }\n}\n\nfunction TableBody_ng_container_0_ng_template_1_ng_container_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_0_ng_template_1_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r20 = i0.ɵɵnextContext();\n const rowData_r7 = ctx_r20.$implicit;\n const rowIndex_r8 = ctx_r20.index;\n const ctx_r12 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r12.dt.groupFooterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction5(2, _c11, rowData_r7, ctx_r12.dt.paginator ? ctx_r12.dt.first + rowIndex_r8 : rowIndex_r8, ctx_r12.columns, ctx_r12.dt.editMode === \"row\" && ctx_r12.dt.isRowEditing(rowData_r7), ctx_r12.frozen));\n }\n}\n\nfunction TableBody_ng_container_0_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_0_ng_template_1_ng_container_0_Template, 2, 8, \"ng-container\", 2);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_ng_container_1_Template, 2, 8, \"ng-container\", 0);\n i0.ɵɵtemplate(2, TableBody_ng_container_0_ng_template_1_ng_container_2_Template, 2, 10, \"ng-container\", 0);\n i0.ɵɵtemplate(3, TableBody_ng_container_0_ng_template_1_ng_container_3_Template, 2, 8, \"ng-container\", 2);\n }\n\n if (rf & 2) {\n const rowData_r7 = ctx.$implicit;\n const rowIndex_r8 = ctx.index;\n const ctx_r6 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r6.dt.groupHeaderTemplate && ctx_r6.dt.rowGroupMode === \"subheader\" && ctx_r6.shouldRenderRowGroupHeader(ctx_r6.value, rowData_r7, rowIndex_r8));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r6.dt.rowGroupMode !== \"rowspan\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r6.dt.rowGroupMode === \"rowspan\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r6.dt.groupFooterTemplate && ctx_r6.dt.rowGroupMode === \"subheader\" && ctx_r6.shouldRenderRowGroupFooter(ctx_r6.value, rowData_r7, rowIndex_r8));\n }\n}\n\nfunction TableBody_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_0_ng_template_1_Template, 4, 4, \"ng-template\", 1);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", ctx_r0.value)(\"ngForTrackBy\", ctx_r0.dt.rowTrackBy);\n }\n}\n\nfunction TableBody_ng_container_1_ng_template_1_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_1_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_1_ng_template_1_ng_container_0_Template, 1, 0, \"ng-container\", 4);\n }\n\n if (rf & 2) {\n const rowData_r22 = ctx.$implicit;\n const rowIndex_r23 = ctx.index;\n const ctx_r21 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", rowData_r22 ? ctx_r21.template : ctx_r21.dt.loadingBodyTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction5(2, _c11, rowData_r22, ctx_r21.dt.paginator ? ctx_r21.dt.first + rowIndex_r23 : rowIndex_r23, ctx_r21.columns, ctx_r21.dt.editMode === \"row\" && ctx_r21.dt.isRowEditing(rowData_r22), ctx_r21.frozen));\n }\n}\n\nfunction TableBody_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_1_ng_template_1_Template, 1, 8, \"ng-template\", 5);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"cdkVirtualForOf\", ctx_r1.value)(\"cdkVirtualForTrackBy\", ctx_r1.dt.rowTrackBy)(\"cdkVirtualForTemplateCacheSize\", 0);\n }\n}\n\nfunction TableBody_ng_container_2_ng_template_1_ng_container_0_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c13 = function (a0, a1, a2, a3, a4, a5) {\n return {\n $implicit: a0,\n rowIndex: a1,\n columns: a2,\n expanded: a3,\n editing: a4,\n frozen: a5\n };\n};\n\nfunction TableBody_ng_container_2_ng_template_1_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_2_ng_template_1_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r32 = i0.ɵɵnextContext();\n const rowData_r26 = ctx_r32.$implicit;\n const rowIndex_r27 = ctx_r32.index;\n const ctx_r28 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r28.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(2, _c13, rowData_r26, ctx_r28.dt.paginator ? ctx_r28.dt.first + rowIndex_r27 : rowIndex_r27, ctx_r28.columns, ctx_r28.dt.isRowExpanded(rowData_r26), ctx_r28.dt.editMode === \"row\" && ctx_r28.dt.isRowEditing(rowData_r26), ctx_r28.frozen));\n }\n}\n\nfunction TableBody_ng_container_2_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_2_ng_template_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, TableBody_ng_container_2_ng_template_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r34 = i0.ɵɵnextContext();\n const rowData_r26 = ctx_r34.$implicit;\n const rowIndex_r27 = ctx_r34.index;\n const ctx_r29 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r29.dt.groupHeaderTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(2, _c13, rowData_r26, ctx_r29.dt.paginator ? ctx_r29.dt.first + rowIndex_r27 : rowIndex_r27, ctx_r29.columns, ctx_r29.dt.isRowExpanded(rowData_r26), ctx_r29.dt.editMode === \"row\" && ctx_r29.dt.isRowEditing(rowData_r26), ctx_r29.frozen));\n }\n}\n\nfunction TableBody_ng_container_2_ng_template_1_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_2_ng_template_1_ng_container_2_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_2_ng_template_1_ng_container_2_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, TableBody_ng_container_2_ng_template_1_ng_container_2_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r38 = i0.ɵɵnextContext(2);\n const rowData_r26 = ctx_r38.$implicit;\n const rowIndex_r27 = ctx_r38.index;\n const ctx_r36 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r36.dt.groupFooterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(2, _c13, rowData_r26, ctx_r36.dt.paginator ? ctx_r36.dt.first + rowIndex_r27 : rowIndex_r27, ctx_r36.columns, ctx_r36.dt.isRowExpanded(rowData_r26), ctx_r36.dt.editMode === \"row\" && ctx_r36.dt.isRowEditing(rowData_r26), ctx_r36.frozen));\n }\n}\n\nconst _c14 = function (a0, a1, a2, a3) {\n return {\n $implicit: a0,\n rowIndex: a1,\n columns: a2,\n frozen: a3\n };\n};\n\nfunction TableBody_ng_container_2_ng_template_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_2_ng_template_1_ng_container_2_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵtemplate(2, TableBody_ng_container_2_ng_template_1_ng_container_2_ng_container_2_Template, 2, 9, \"ng-container\", 2);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r39 = i0.ɵɵnextContext();\n const rowData_r26 = ctx_r39.$implicit;\n const rowIndex_r27 = ctx_r39.index;\n const ctx_r30 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r30.dt.expandedRowTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction4(3, _c14, rowData_r26, ctx_r30.dt.paginator ? ctx_r30.dt.first + rowIndex_r27 : rowIndex_r27, ctx_r30.columns, ctx_r30.frozen));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r30.dt.groupFooterTemplate && ctx_r30.dt.rowGroupMode === \"subheader\" && ctx_r30.shouldRenderRowGroupFooter(ctx_r30.value, rowData_r26, rowIndex_r27));\n }\n}\n\nfunction TableBody_ng_container_2_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_2_ng_template_1_ng_container_0_Template, 2, 9, \"ng-container\", 0);\n i0.ɵɵtemplate(1, TableBody_ng_container_2_ng_template_1_ng_container_1_Template, 2, 9, \"ng-container\", 2);\n i0.ɵɵtemplate(2, TableBody_ng_container_2_ng_template_1_ng_container_2_Template, 3, 8, \"ng-container\", 0);\n }\n\n if (rf & 2) {\n const rowData_r26 = ctx.$implicit;\n const rowIndex_r27 = ctx.index;\n const ctx_r25 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r25.dt.groupHeaderTemplate);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r25.dt.groupHeaderTemplate && ctx_r25.dt.rowGroupMode === \"subheader\" && ctx_r25.shouldRenderRowGroupHeader(ctx_r25.value, rowData_r26, rowIndex_r27));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r25.dt.isRowExpanded(rowData_r26));\n }\n}\n\nfunction TableBody_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_2_ng_template_1_Template, 3, 3, \"ng-template\", 1);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.value)(\"ngForTrackBy\", ctx_r2.dt.rowTrackBy);\n }\n}\n\nfunction TableBody_ng_container_3_ng_template_1_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_3_ng_template_1_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_3_ng_template_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_3_ng_template_1_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r46 = i0.ɵɵnextContext();\n const rowData_r41 = ctx_r46.$implicit;\n const rowIndex_r42 = ctx_r46.index;\n const ctx_r44 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r44.dt.frozenExpandedRowTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction4(2, _c14, rowData_r41, ctx_r44.dt.paginator ? ctx_r44.dt.first + rowIndex_r42 : rowIndex_r42, ctx_r44.columns, ctx_r44.frozen));\n }\n}\n\nfunction TableBody_ng_container_3_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_3_ng_template_1_ng_container_0_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵtemplate(1, TableBody_ng_container_3_ng_template_1_ng_container_1_Template, 2, 7, \"ng-container\", 0);\n }\n\n if (rf & 2) {\n const rowData_r41 = ctx.$implicit;\n const rowIndex_r42 = ctx.index;\n const ctx_r40 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r40.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(3, _c13, rowData_r41, ctx_r40.dt.paginator ? ctx_r40.dt.first + rowIndex_r42 : rowIndex_r42, ctx_r40.columns, ctx_r40.dt.isRowExpanded(rowData_r41), ctx_r40.dt.editMode === \"row\" && ctx_r40.dt.isRowEditing(rowData_r41), ctx_r40.frozen));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r40.dt.isRowExpanded(rowData_r41));\n }\n}\n\nfunction TableBody_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_3_ng_template_1_Template, 2, 10, \"ng-template\", 1);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", ctx_r3.value)(\"ngForTrackBy\", ctx_r3.dt.rowTrackBy);\n }\n}\n\nfunction TableBody_ng_container_4_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c15 = function (a0, a1) {\n return {\n $implicit: a0,\n frozen: a1\n };\n};\n\nfunction TableBody_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_4_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.dt.loadingBodyTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c15, ctx_r4.columns, ctx_r4.frozen));\n }\n}\n\nfunction TableBody_ng_container_5_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction TableBody_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBody_ng_container_5_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.dt.emptyMessageTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c15, ctx_r5.columns, ctx_r5.frozen));\n }\n}\n\nfunction SortIcon_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 2);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r0.getBadgeValue());\n }\n}\n\nconst _c16 = function (a0, a1, a2) {\n return {\n \"pi-sort-amount-up-alt\": a0,\n \"pi-sort-amount-down\": a1,\n \"pi-sort-alt\": a2\n };\n};\n\nfunction CellEditor_ng_container_0_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction CellEditor_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, CellEditor_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 1);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.inputTemplate);\n }\n}\n\nfunction CellEditor_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nfunction CellEditor_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, CellEditor_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 1);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.outputTemplate);\n }\n}\n\nconst _c17 = [\"box\"];\n\nconst _c18 = function (a1, a2) {\n return {\n \"p-radiobutton-box p-component\": true,\n \"p-highlight\": a1,\n \"p-disabled\": a2\n };\n};\n\nconst _c19 = function (a1, a2) {\n return {\n \"p-checkbox-box p-component\": true,\n \"p-highlight\": a1,\n \"p-disabled\": a2\n };\n};\n\nconst _c20 = function (a0) {\n return {\n \"pi pi-check\": a0\n };\n};\n\nconst _c21 = function (a1, a2) {\n return {\n \"p-checkbox-box\": true,\n \"p-highlight\": a1,\n \"p-disabled\": a2\n };\n};\n\nfunction ColumnFilterFormElement_ng_container_0_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c22 = function (a0, a1) {\n return {\n $implicit: a0,\n filterCallback: a1\n };\n};\n\nfunction ColumnFilterFormElement_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, ColumnFilterFormElement_ng_container_0_ng_container_1_Template, 1, 0, \"ng-container\", 2);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.filterTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c22, ctx_r0.filterConstraint.value, ctx_r0.filterCallback));\n }\n}\n\nfunction ColumnFilterFormElement_ng_template_1_input_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"input\", 7);\n i0.ɵɵlistener(\"input\", function ColumnFilterFormElement_ng_template_1_input_1_Template_input_input_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r8 = i0.ɵɵnextContext(2);\n return ctx_r8.onModelChange($event.target.value);\n })(\"keydown.enter\", function ColumnFilterFormElement_ng_template_1_input_1_Template_input_keydown_enter_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r10 = i0.ɵɵnextContext(2);\n return ctx_r10.onTextInputEnterKeyDown($event);\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"value\", ctx_r4.filterConstraint == null ? null : ctx_r4.filterConstraint.value);\n i0.ɵɵattribute(\"placeholder\", ctx_r4.placeholder);\n }\n}\n\nfunction ColumnFilterFormElement_ng_template_1_p_inputNumber_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"p-inputNumber\", 8);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilterFormElement_ng_template_1_p_inputNumber_2_Template_p_inputNumber_ngModelChange_0_listener($event) {\n i0.ɵɵrestoreView(_r12);\n const ctx_r11 = i0.ɵɵnextContext(2);\n return ctx_r11.onModelChange($event);\n })(\"onKeyDown\", function ColumnFilterFormElement_ng_template_1_p_inputNumber_2_Template_p_inputNumber_onKeyDown_0_listener($event) {\n i0.ɵɵrestoreView(_r12);\n const ctx_r13 = i0.ɵɵnextContext(2);\n return ctx_r13.onNumericInputKeyDown($event);\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngModel\", ctx_r5.filterConstraint == null ? null : ctx_r5.filterConstraint.value)(\"showButtons\", true)(\"minFractionDigits\", ctx_r5.minFractionDigits)(\"maxFractionDigits\", ctx_r5.maxFractionDigits)(\"prefix\", ctx_r5.prefix)(\"suffix\", ctx_r5.suffix)(\"placeholder\", ctx_r5.placeholder)(\"mode\", ctx_r5.currency ? \"currency\" : \"decimal\")(\"locale\", ctx_r5.locale)(\"localeMatcher\", ctx_r5.localeMatcher)(\"currency\", ctx_r5.currency)(\"currencyDisplay\", ctx_r5.currencyDisplay)(\"useGrouping\", ctx_r5.useGrouping);\n i0.ɵɵattribute(\"placeholder\", ctx_r5.placeholder);\n }\n}\n\nfunction ColumnFilterFormElement_ng_template_1_p_triStateCheckbox_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"p-triStateCheckbox\", 9);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilterFormElement_ng_template_1_p_triStateCheckbox_3_Template_p_triStateCheckbox_ngModelChange_0_listener($event) {\n i0.ɵɵrestoreView(_r15);\n const ctx_r14 = i0.ɵɵnextContext(2);\n return ctx_r14.onModelChange($event);\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngModel\", ctx_r6.filterConstraint == null ? null : ctx_r6.filterConstraint.value);\n }\n}\n\nfunction ColumnFilterFormElement_ng_template_1_p_calendar_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"p-calendar\", 9);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilterFormElement_ng_template_1_p_calendar_4_Template_p_calendar_ngModelChange_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const ctx_r16 = i0.ɵɵnextContext(2);\n return ctx_r16.onModelChange($event);\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngModel\", ctx_r7.filterConstraint == null ? null : ctx_r7.filterConstraint.value);\n }\n}\n\nfunction ColumnFilterFormElement_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 3);\n i0.ɵɵtemplate(1, ColumnFilterFormElement_ng_template_1_input_1_Template, 1, 2, \"input\", 4);\n i0.ɵɵtemplate(2, ColumnFilterFormElement_ng_template_1_p_inputNumber_2_Template, 1, 14, \"p-inputNumber\", 5);\n i0.ɵɵtemplate(3, ColumnFilterFormElement_ng_template_1_p_triStateCheckbox_3_Template, 1, 1, \"p-triStateCheckbox\", 6);\n i0.ɵɵtemplate(4, ColumnFilterFormElement_ng_template_1_p_calendar_4_Template, 1, 1, \"p-calendar\", 6);\n i0.ɵɵelementContainerEnd();\n }\n\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngSwitch\", ctx_r2.type);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngSwitchCase\", \"text\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngSwitchCase\", \"numeric\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngSwitchCase\", \"boolean\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngSwitchCase\", \"date\");\n }\n}\n\nconst _c23 = [\"icon\"];\n\nfunction ColumnFilter_p_columnFilterFormElement_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"p-columnFilterFormElement\", 5);\n }\n\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"type\", ctx_r0.type)(\"field\", ctx_r0.field)(\"filterConstraint\", ctx_r0.dt.filters[ctx_r0.field])(\"filterTemplate\", ctx_r0.filterTemplate)(\"placeholder\", ctx_r0.placeholder)(\"minFractionDigits\", ctx_r0.minFractionDigits)(\"maxFractionDigits\", ctx_r0.maxFractionDigits)(\"prefix\", ctx_r0.prefix)(\"suffix\", ctx_r0.suffix)(\"locale\", ctx_r0.locale)(\"localeMatcher\", ctx_r0.localeMatcher)(\"currency\", ctx_r0.currency)(\"currencyDisplay\", ctx_r0.currencyDisplay)(\"useGrouping\", ctx_r0.useGrouping);\n }\n}\n\nconst _c24 = function (a0, a1) {\n return {\n \"p-column-filter-menu-button-open\": a0,\n \"p-column-filter-menu-button-active\": a1\n };\n};\n\nfunction ColumnFilter_button_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"button\", 6, 7);\n i0.ɵɵlistener(\"click\", function ColumnFilter_button_2_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r5 = i0.ɵɵnextContext();\n return ctx_r5.toggleMenu();\n })(\"keydown\", function ColumnFilter_button_2_Template_button_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r7 = i0.ɵɵnextContext();\n return ctx_r7.onToggleButtonKeyDown($event);\n });\n i0.ɵɵelement(2, \"span\", 8);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(2, _c24, ctx_r1.overlayVisible, ctx_r1.hasFilter()));\n i0.ɵɵattribute(\"aria-expanded\", ctx_r1.overlayVisible);\n }\n}\n\nconst _c25 = function (a0) {\n return {\n \"p-hidden-space\": a0\n };\n};\n\nfunction ColumnFilter_button_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"button\", 9, 7);\n i0.ɵɵlistener(\"click\", function ColumnFilter_button_3_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r9 = i0.ɵɵnextContext();\n return ctx_r9.clearFilter();\n });\n i0.ɵɵelement(2, \"span\", 10);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(1, _c25, !ctx_r2.hasRowFilter()));\n }\n}\n\nfunction ColumnFilter_div_4_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c26 = function (a0) {\n return {\n \"p-highlight\": a0\n };\n};\n\nfunction ColumnFilter_div_4_ul_2_li_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r20 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"li\", 19);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_ul_2_li_1_Template_li_click_0_listener() {\n const restoredCtx = i0.ɵɵrestoreView(_r20);\n const matchMode_r17 = restoredCtx.$implicit;\n const ctx_r19 = i0.ɵɵnextContext(3);\n return ctx_r19.onRowMatchModeChange(matchMode_r17.value);\n })(\"keydown\", function ColumnFilter_div_4_ul_2_li_1_Template_li_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r20);\n const ctx_r21 = i0.ɵɵnextContext(3);\n return ctx_r21.onRowMatchModeKeyDown($event);\n })(\"keydown.enter\", function ColumnFilter_div_4_ul_2_li_1_Template_li_keydown_enter_0_listener() {\n const restoredCtx = i0.ɵɵrestoreView(_r20);\n const matchMode_r17 = restoredCtx.$implicit;\n const ctx_r22 = i0.ɵɵnextContext(3);\n return ctx_r22.onRowMatchModeChange(matchMode_r17.value);\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const matchMode_r17 = ctx.$implicit;\n const i_r18 = ctx.index;\n const ctx_r16 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(3, _c26, ctx_r16.isRowMatchModeSelected(matchMode_r17.value)));\n i0.ɵɵattribute(\"tabindex\", i_r18 === 0 ? \"0\" : null);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(matchMode_r17.label);\n }\n}\n\nfunction ColumnFilter_div_4_ul_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r24 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"ul\", 15);\n i0.ɵɵtemplate(1, ColumnFilter_div_4_ul_2_li_1_Template, 2, 5, \"li\", 16);\n i0.ɵɵelement(2, \"li\", 17);\n i0.ɵɵelementStart(3, \"li\", 18);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_ul_2_Template_li_click_3_listener() {\n i0.ɵɵrestoreView(_r24);\n const ctx_r23 = i0.ɵɵnextContext(2);\n return ctx_r23.onRowClearItemClick();\n })(\"keydown\", function ColumnFilter_div_4_ul_2_Template_li_keydown_3_listener($event) {\n i0.ɵɵrestoreView(_r24);\n const ctx_r25 = i0.ɵɵnextContext(2);\n return ctx_r25.onRowMatchModeKeyDown($event);\n })(\"keydown.enter\", function ColumnFilter_div_4_ul_2_Template_li_keydown_enter_3_listener() {\n i0.ɵɵrestoreView(_r24);\n const ctx_r26 = i0.ɵɵnextContext(2);\n return ctx_r26.onRowClearItemClick();\n });\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r12 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngForOf\", ctx_r12.matchModes);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx_r12.noFilterLabel);\n }\n}\n\nfunction ColumnFilter_div_4_ng_template_3_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r33 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"div\", 27);\n i0.ɵɵelementStart(1, \"p-dropdown\", 28);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilter_div_4_ng_template_3_div_0_Template_p_dropdown_ngModelChange_1_listener($event) {\n i0.ɵɵrestoreView(_r33);\n const ctx_r32 = i0.ɵɵnextContext(3);\n return ctx_r32.onOperatorChange($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r27 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"options\", ctx_r27.operatorOptions)(\"ngModel\", ctx_r27.operator);\n }\n}\n\nfunction ColumnFilter_div_4_ng_template_3_div_2_p_dropdown_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r40 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"p-dropdown\", 33);\n i0.ɵɵlistener(\"ngModelChange\", function ColumnFilter_div_4_ng_template_3_div_2_p_dropdown_1_Template_p_dropdown_ngModelChange_0_listener($event) {\n i0.ɵɵrestoreView(_r40);\n const fieldConstraint_r34 = i0.ɵɵnextContext().$implicit;\n const ctx_r38 = i0.ɵɵnextContext(3);\n return ctx_r38.onMenuMatchModeChange($event, fieldConstraint_r34);\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const fieldConstraint_r34 = i0.ɵɵnextContext().$implicit;\n const ctx_r36 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"options\", ctx_r36.matchModes)(\"ngModel\", fieldConstraint_r34.matchMode);\n }\n}\n\nfunction ColumnFilter_div_4_ng_template_3_div_2_button_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r44 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"button\", 34);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_ng_template_3_div_2_button_4_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r44);\n const fieldConstraint_r34 = i0.ɵɵnextContext().$implicit;\n const ctx_r42 = i0.ɵɵnextContext(3);\n return ctx_r42.removeConstraint(fieldConstraint_r34);\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r37 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"label\", ctx_r37.removeRuleButtonLabel);\n }\n}\n\nfunction ColumnFilter_div_4_ng_template_3_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 29);\n i0.ɵɵtemplate(1, ColumnFilter_div_4_ng_template_3_div_2_p_dropdown_1_Template, 1, 2, \"p-dropdown\", 30);\n i0.ɵɵelement(2, \"p-columnFilterFormElement\", 31);\n i0.ɵɵelementStart(3, \"div\");\n i0.ɵɵtemplate(4, ColumnFilter_div_4_ng_template_3_div_2_button_4_Template, 1, 1, \"button\", 32);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const fieldConstraint_r34 = ctx.$implicit;\n const ctx_r28 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r28.showMatchModes && ctx_r28.matchModes);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"type\", ctx_r28.type)(\"field\", ctx_r28.field)(\"filterConstraint\", fieldConstraint_r34)(\"filterTemplate\", ctx_r28.filterTemplate)(\"placeholder\", ctx_r28.placeholder)(\"minFractionDigits\", ctx_r28.minFractionDigits)(\"maxFractionDigits\", ctx_r28.maxFractionDigits)(\"prefix\", ctx_r28.prefix)(\"suffix\", ctx_r28.suffix)(\"locale\", ctx_r28.locale)(\"localeMatcher\", ctx_r28.localeMatcher)(\"currency\", ctx_r28.currency)(\"currencyDisplay\", ctx_r28.currencyDisplay)(\"useGrouping\", ctx_r28.useGrouping);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r28.showRemoveIcon);\n }\n}\n\nfunction ColumnFilter_div_4_ng_template_3_div_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r46 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"div\", 35);\n i0.ɵɵelementStart(1, \"button\", 36);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_ng_template_3_div_3_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r46);\n const ctx_r45 = i0.ɵɵnextContext(3);\n return ctx_r45.addConstraint();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r29 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"label\", ctx_r29.addRuleButtonLabel);\n }\n}\n\nfunction ColumnFilter_div_4_ng_template_3_button_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r48 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"button\", 37);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_ng_template_3_button_5_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r48);\n const ctx_r47 = i0.ɵɵnextContext(3);\n return ctx_r47.clearFilter();\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r30 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"label\", ctx_r30.clearButtonLabel);\n }\n}\n\nfunction ColumnFilter_div_4_ng_template_3_button_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r50 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"button\", 38);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_ng_template_3_button_6_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r50);\n const ctx_r49 = i0.ɵɵnextContext(3);\n return ctx_r49.applyFilter();\n });\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r31 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"label\", ctx_r31.applyButtonLabel);\n }\n}\n\nfunction ColumnFilter_div_4_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilter_div_4_ng_template_3_div_0_Template, 2, 2, \"div\", 20);\n i0.ɵɵelementStart(1, \"div\", 21);\n i0.ɵɵtemplate(2, ColumnFilter_div_4_ng_template_3_div_2_Template, 5, 16, \"div\", 22);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, ColumnFilter_div_4_ng_template_3_div_3_Template, 2, 1, \"div\", 23);\n i0.ɵɵelementStart(4, \"div\", 24);\n i0.ɵɵtemplate(5, ColumnFilter_div_4_ng_template_3_button_5_Template, 1, 1, \"button\", 25);\n i0.ɵɵtemplate(6, ColumnFilter_div_4_ng_template_3_button_6_Template, 1, 1, \"button\", 26);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const ctx_r14 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r14.isShowOperator);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r14.fieldConstraints);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r14.isShowAddConstraint);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r14.showClearButton);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r14.showApplyButton);\n }\n}\n\nfunction ColumnFilter_div_4_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\n\nconst _c27 = function (a1) {\n return {\n \"p-column-filter-overlay p-component p-fluid\": true,\n \"p-column-filter-overlay-menu\": a1\n };\n};\n\nfunction ColumnFilter_div_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r52 = i0.ɵɵgetCurrentView();\n\n i0.ɵɵelementStart(0, \"div\", 11);\n i0.ɵɵlistener(\"click\", function ColumnFilter_div_4_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r52);\n const ctx_r51 = i0.ɵɵnextContext();\n return ctx_r51.onContentClick();\n })(\"@overlayAnimation.start\", function ColumnFilter_div_4_Template_div_animation_overlayAnimation_start_0_listener($event) {\n i0.ɵɵrestoreView(_r52);\n const ctx_r53 = i0.ɵɵnextContext();\n return ctx_r53.onOverlayAnimationStart($event);\n })(\"@overlayAnimation.done\", function ColumnFilter_div_4_Template_div_animation_overlayAnimation_done_0_listener($event) {\n i0.ɵɵrestoreView(_r52);\n const ctx_r54 = i0.ɵɵnextContext();\n return ctx_r54.onOverlayAnimationEnd($event);\n })(\"keydown.escape\", function ColumnFilter_div_4_Template_div_keydown_escape_0_listener() {\n i0.ɵɵrestoreView(_r52);\n const ctx_r55 = i0.ɵɵnextContext();\n return ctx_r55.onEscape();\n });\n i0.ɵɵtemplate(1, ColumnFilter_div_4_ng_container_1_Template, 1, 0, \"ng-container\", 12);\n i0.ɵɵtemplate(2, ColumnFilter_div_4_ul_2_Template, 5, 2, \"ul\", 13);\n i0.ɵɵtemplate(3, ColumnFilter_div_4_ng_template_3_Template, 7, 5, \"ng-template\", null, 14, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵtemplate(5, ColumnFilter_div_4_ng_container_5_Template, 1, 0, \"ng-container\", 12);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n const _r13 = i0.ɵɵreference(4);\n\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(8, _c27, ctx_r3.display === \"menu\"))(\"@overlayAnimation\", \"visible\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.headerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(10, _c7, ctx_r3.field));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r3.display === \"row\")(\"ngIfElse\", _r13);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.footerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(12, _c7, ctx_r3.field));\n }\n}\n\nconst _c28 = function (a0, a1) {\n return {\n \"p-column-filter-row\": a0,\n \"p-column-filter-menu\": a1\n };\n};\n\nclass TableService {\n constructor() {\n this.sortSource = new Subject();\n this.selectionSource = new Subject();\n this.contextMenuSource = new Subject();\n this.valueSource = new Subject();\n this.totalRecordsSource = new Subject();\n this.columnsSource = new Subject();\n this.resetSource = new Subject();\n this.sortSource$ = this.sortSource.asObservable();\n this.selectionSource$ = this.selectionSource.asObservable();\n this.contextMenuSource$ = this.contextMenuSource.asObservable();\n this.valueSource$ = this.valueSource.asObservable();\n this.totalRecordsSource$ = this.totalRecordsSource.asObservable();\n this.columnsSource$ = this.columnsSource.asObservable();\n this.resetSource$ = this.resetSource.asObservable();\n }\n\n onSort(sortMeta) {\n this.sortSource.next(sortMeta);\n }\n\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n\n onResetChange() {\n this.resetSource.next(null);\n }\n\n onContextMenu(data) {\n this.contextMenuSource.next(data);\n }\n\n onValueChange(value) {\n this.valueSource.next(value);\n }\n\n onTotalRecordsChange(value) {\n this.totalRecordsSource.next(value);\n }\n\n onColumnsChange(columns) {\n this.columnsSource.next(columns);\n }\n\n}\n\nTableService.ɵfac = function TableService_Factory(t) {\n return new (t || TableService)();\n};\n\nTableService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TableService,\n factory: TableService.ɵfac\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableService, [{\n type: Injectable\n }], null, null);\n})();\n\nclass Table {\n constructor(el, zone, tableService, cd, filterService, overlayService) {\n this.el = el;\n this.zone = zone;\n this.tableService = tableService;\n this.cd = cd;\n this.filterService = filterService;\n this.overlayService = overlayService;\n this.pageLinks = 5;\n this.alwaysShowPaginator = true;\n this.paginatorPosition = 'bottom';\n this.paginatorDropdownScrollHeight = '200px';\n this.currentPageReportTemplate = '{currentPage} of {totalPages}';\n this.showFirstLastIcon = true;\n this.showPageLinks = true;\n this.defaultSortOrder = 1;\n this.sortMode = 'single';\n this.resetPageOnSort = true;\n this.selectionChange = new EventEmitter();\n this.contextMenuSelectionChange = new EventEmitter();\n this.contextMenuSelectionMode = \"separate\";\n\n this.rowTrackBy = (index, item) => item;\n\n this.lazy = false;\n this.lazyLoadOnInit = true;\n this.compareSelectionBy = 'deepEquals';\n this.csvSeparator = ',';\n this.exportFilename = 'download';\n this.filters = {};\n this.filterDelay = 300;\n this.expandedRowKeys = {};\n this.editingRowKeys = {};\n this.rowExpandMode = 'multiple';\n this.scrollDirection = \"vertical\";\n this.virtualScrollDelay = 250;\n this.virtualRowHeight = 28;\n this.columnResizeMode = 'fit';\n this.loadingIcon = 'pi pi-spinner';\n this.showLoader = true;\n this.showInitialSortBadge = true;\n this.stateStorage = 'session';\n this.editMode = 'cell';\n this.groupRowsByOrder = 1;\n this.responsiveLayout = 'stack';\n this.breakpoint = '960px';\n this.onRowSelect = new EventEmitter();\n this.onRowUnselect = new EventEmitter();\n this.onPage = new EventEmitter();\n this.onSort = new EventEmitter();\n this.onFilter = new EventEmitter();\n this.onLazyLoad = new EventEmitter();\n this.onRowExpand = new EventEmitter();\n this.onRowCollapse = new EventEmitter();\n this.onContextMenuSelect = new EventEmitter();\n this.onColResize = new EventEmitter();\n this.onColReorder = new EventEmitter();\n this.onRowReorder = new EventEmitter();\n this.onEditInit = new EventEmitter();\n this.onEditComplete = new EventEmitter();\n this.onEditCancel = new EventEmitter();\n this.onHeaderCheckboxToggle = new EventEmitter();\n this.sortFunction = new EventEmitter();\n this.firstChange = new EventEmitter();\n this.rowsChange = new EventEmitter();\n this.onStateSave = new EventEmitter();\n this.onStateRestore = new EventEmitter();\n this._value = [];\n this._totalRecords = 0;\n this._first = 0;\n this.selectionKeys = {};\n this._sortOrder = 1;\n this.columnResizing = false;\n this.rowGroupHeaderStyleObject = {};\n this.id = UniqueComponentId();\n }\n\n ngOnInit() {\n if (this.lazy && this.lazyLoadOnInit) {\n if (!this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n }\n\n if (this.responsiveLayout === 'stack' && !this.scrollable) {\n this.createResponsiveStyle();\n }\n\n this.initialized = true;\n }\n\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'headergrouped':\n this.headerGroupedTemplate = item.template;\n break;\n\n case 'body':\n this.bodyTemplate = item.template;\n break;\n\n case 'loadingbody':\n this.loadingBodyTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n case 'footergrouped':\n this.footerGroupedTemplate = item.template;\n break;\n\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n\n case 'rowexpansion':\n this.expandedRowTemplate = item.template;\n break;\n\n case 'groupheader':\n this.groupHeaderTemplate = item.template;\n break;\n\n case 'rowspan':\n this.rowspanTemplate = item.template;\n break;\n\n case 'groupfooter':\n this.groupFooterTemplate = item.template;\n break;\n\n case 'frozenrows':\n this.frozenRowsTemplate = item.template;\n break;\n\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n\n case 'frozenrowexpansion':\n this.frozenExpandedRowTemplate = item.template;\n break;\n\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.isStateful() && this.resizableColumns) {\n this.restoreColumnWidths();\n }\n\n if (this.scrollable && this.virtualScroll) {\n this.virtualScrollSubscription = this.virtualScrollBody.renderedRangeStream.subscribe(range => {\n let top = range.start * this.virtualRowHeight * -1;\n this.tableHeaderViewChild.nativeElement.style.top = top + 'px';\n });\n }\n }\n\n ngOnChanges(simpleChange) {\n if (simpleChange.value) {\n if (this.isStateful() && !this.stateRestored) {\n this.restoreState();\n }\n\n this._value = simpleChange.value.currentValue;\n\n if (!this.lazy) {\n this.totalRecords = this._value ? this._value.length : 0;\n if (this.sortMode == 'single' && (this.sortField || this.groupRowsBy)) this.sortSingle();else if (this.sortMode == 'multiple' && (this.multiSortMeta || this.groupRowsBy)) this.sortMultiple();else if (this.hasFilter()) //sort already filters\n this._filter();\n }\n\n this.tableService.onValueChange(simpleChange.value.currentValue);\n }\n\n if (simpleChange.columns) {\n this._columns = simpleChange.columns.currentValue;\n this.tableService.onColumnsChange(simpleChange.columns.currentValue);\n\n if (this._columns && this.isStateful() && this.reorderableColumns && !this.columnOrderStateRestored) {\n this.restoreColumnOrder();\n }\n }\n\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue; //avoid triggering lazy load prior to lazy initialization at onInit\n\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.groupRowsBy) {\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue; //avoid triggering lazy load prior to lazy initialization at onInit\n\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.groupRowsByOrder) {\n //avoid triggering lazy load prior to lazy initialization at onInit\n if (!this.lazy || this.initialized) {\n if (this.sortMode === 'single') {\n this.sortSingle();\n }\n }\n }\n\n if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n\n if (this.sortMode === 'multiple' && (this.initialized || !this.lazy && !this.virtualScroll)) {\n this.sortMultiple();\n }\n }\n\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n\n this.preventSelectionSetterPropagation = false;\n }\n }\n\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n }\n\n get columns() {\n return this._columns;\n }\n\n set columns(cols) {\n this._columns = cols;\n }\n\n get first() {\n return this._first;\n }\n\n set first(val) {\n this._first = val;\n }\n\n get rows() {\n return this._rows;\n }\n\n set rows(val) {\n this._rows = val;\n }\n\n get totalRecords() {\n return this._totalRecords;\n }\n\n set totalRecords(val) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n\n get sortField() {\n return this._sortField;\n }\n\n set sortField(val) {\n this._sortField = val;\n }\n\n get sortOrder() {\n return this._sortOrder;\n }\n\n set sortOrder(val) {\n this._sortOrder = val;\n }\n\n get multiSortMeta() {\n return this._multiSortMeta;\n }\n\n set multiSortMeta(val) {\n this._multiSortMeta = val;\n }\n\n get selection() {\n return this._selection;\n }\n\n set selection(val) {\n this._selection = val;\n }\n\n get dataToRender() {\n let data = this.filteredValue || this.value;\n return data ? this.paginator && !this.lazy ? data.slice(this.first, this.first + this.rows) : data : [];\n }\n\n updateSelectionKeys() {\n if (this.dataKey && this._selection) {\n this.selectionKeys = {};\n\n if (Array.isArray(this._selection)) {\n for (let data of this._selection) {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(data, this.dataKey))] = 1;\n }\n } else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection, this.dataKey))] = 1;\n }\n }\n }\n\n onPageChange(event) {\n this.first = event.first;\n this.rows = event.rows;\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n this.onPage.emit({\n first: this.first,\n rows: this.rows\n });\n this.firstChange.emit(this.first);\n this.rowsChange.emit(this.rows);\n this.tableService.onValueChange(this.value);\n\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.anchorRowIndex = null;\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n sort(event) {\n let originalEvent = event.originalEvent;\n\n if (this.sortMode === 'single') {\n this._sortOrder = this.sortField === event.field ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n this.sortSingle();\n }\n\n if (this.sortMode === 'multiple') {\n let metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n let sortMeta = this.getSortMeta(event.field);\n\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [{\n field: event.field,\n order: sortMeta.order * -1\n }];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n } else {\n sortMeta.order = sortMeta.order * -1;\n }\n } else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n }\n }\n\n this._multiSortMeta.push({\n field: event.field,\n order: this.defaultSortOrder\n });\n }\n\n this.sortMultiple();\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.anchorRowIndex = null;\n }\n\n sortSingle() {\n let field = this.sortField || this.groupRowsBy;\n let order = this.sortField ? this.sortOrder : this.groupRowsByOrder;\n\n if (this.groupRowsBy && this.sortField && this.groupRowsBy !== this.sortField) {\n this._multiSortMeta = [this.getGroupRowsMeta(), {\n field: this.sortField,\n order: this.sortOrder\n }];\n this.sortMultiple();\n return;\n }\n\n if (field && order) {\n if (this.restoringSort) {\n this.restoringSort = false;\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n field: field,\n order: order\n });\n } else {\n this.value.sort((data1, data2) => {\n let value1 = ObjectUtils.resolveFieldData(data1, field);\n let value2 = ObjectUtils.resolveFieldData(data2, field);\n let result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2);else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return order * result;\n });\n this._value = [...this.value];\n }\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n let sortMeta = {\n field: field,\n order: order\n };\n this.onSort.emit(sortMeta);\n this.tableService.onSort(sortMeta);\n }\n }\n\n sortMultiple() {\n if (this.groupRowsBy) {\n if (!this._multiSortMeta) this._multiSortMeta = [this.getGroupRowsMeta()];else if (this.multiSortMeta[0].field !== this.groupRowsBy) this._multiSortMeta = [this.getGroupRowsMeta(), ...this._multiSortMeta];\n }\n\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value) {\n if (this.customSort) {\n this.sortFunction.emit({\n data: this.value,\n mode: this.sortMode,\n multiSortMeta: this.multiSortMeta\n });\n } else {\n this.value.sort((data1, data2) => {\n return this.multisortField(data1, data2, this.multiSortMeta, 0);\n });\n this._value = [...this.value];\n }\n\n if (this.hasFilter()) {\n this._filter();\n }\n }\n\n this.onSort.emit({\n multisortmeta: this.multiSortMeta\n });\n this.tableService.onSort(this.multiSortMeta);\n }\n }\n\n multisortField(data1, data2, multiSortMeta, index) {\n let value1 = ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n let value2 = ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n let result = null;\n if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && value1 != value2) {\n return multiSortMeta[index].order * value1.localeCompare(value2);\n }\n } else {\n result = value1 < value2 ? -1 : 1;\n }\n\n if (value1 == value2) {\n return multiSortMeta.length - 1 > index ? this.multisortField(data1, data2, multiSortMeta, index + 1) : 0;\n }\n\n return multiSortMeta[index].order * result;\n }\n\n getSortMeta(field) {\n if (this.multiSortMeta && this.multiSortMeta.length) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field === field) {\n return this.multiSortMeta[i];\n }\n }\n }\n\n return null;\n }\n\n isSorted(field) {\n if (this.sortMode === 'single') {\n return this.sortField && this.sortField === field;\n } else if (this.sortMode === 'multiple') {\n let sorted = false;\n\n if (this.multiSortMeta) {\n for (let i = 0; i < this.multiSortMeta.length; i++) {\n if (this.multiSortMeta[i].field == field) {\n sorted = true;\n break;\n }\n }\n }\n\n return sorted;\n }\n }\n\n handleRowClick(event) {\n let target = event.originalEvent.target;\n let targetNode = target.nodeName;\n let parentNode = target.parentElement && target.parentElement.nodeName;\n\n if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' || parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' || DomHandler.hasClass(event.originalEvent.target, 'p-clickable')) {\n return;\n }\n\n if (this.selectionMode) {\n this.preventSelectionSetterPropagation = true;\n\n if (this.isMultipleSelectionMode() && event.originalEvent.shiftKey && this.anchorRowIndex != null) {\n DomHandler.clearSelection();\n\n if (this.rangeRowIndex != null) {\n this.clearSelectionRange(event.originalEvent);\n }\n\n this.rangeRowIndex = event.rowIndex;\n this.selectRange(event.originalEvent, event.rowIndex);\n } else {\n let rowData = event.rowData;\n let selected = this.isSelected(rowData);\n let metaSelection = this.rowTouched ? false : this.metaKeySelection;\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.anchorRowIndex = event.rowIndex;\n this.rangeRowIndex = event.rowIndex;\n\n if (metaSelection) {\n let metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(null);\n } else {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row'\n });\n } else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowData;\n this.selectionChange.emit(rowData);\n\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection || [];\n } else {\n this._selection = [];\n this.selectionKeys = {};\n }\n\n this._selection = [...this.selection, rowData];\n this.selectionChange.emit(this.selection);\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: event.rowIndex\n });\n }\n } else {\n if (this.selectionMode === 'single') {\n if (selected) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: event.rowIndex\n });\n } else {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: event.rowIndex\n });\n\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n } else if (this.selectionMode === 'multiple') {\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: event.rowIndex\n });\n\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n } else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n type: 'row',\n index: event.rowIndex\n });\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.rowTouched = false;\n }\n\n handleRowTouchEnd(event) {\n this.rowTouched = true;\n }\n\n handleRowRightClick(event) {\n if (this.contextMenu) {\n const rowData = event.rowData;\n\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.onContextMenuSelect.emit({\n originalEvent: event.originalEvent,\n data: rowData,\n index: event.rowIndex\n });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(rowData);\n } else if (this.contextMenuSelectionMode === 'joint') {\n this.preventSelectionSetterPropagation = true;\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n\n if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = rowData;\n this.selectionChange.emit(rowData);\n\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n } else if (this.isMultipleSelectionMode()) {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n\n this.tableService.onSelectionChange();\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({\n originalEvent: event,\n data: rowData,\n index: event.rowIndex\n });\n }\n }\n }\n\n selectRange(event, rowIndex) {\n let rangeStart, rangeEnd;\n\n if (this.anchorRowIndex > rowIndex) {\n rangeStart = rowIndex;\n rangeEnd = this.anchorRowIndex;\n } else if (this.anchorRowIndex < rowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = rowIndex;\n } else {\n rangeStart = rowIndex;\n rangeEnd = rowIndex;\n }\n\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n\n let rangeRowsData = [];\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];\n\n if (!this.isSelected(rangeRowData)) {\n rangeRowsData.push(rangeRowData);\n this._selection = [...this.selection, rangeRowData];\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event,\n data: rangeRowsData,\n type: 'row'\n });\n }\n\n clearSelectionRange(event) {\n let rangeStart, rangeEnd;\n\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n } else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n } else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.value[i];\n let selectionIndex = this.findIndexInSelection(rangeRowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;\n\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n\n this.onRowUnselect.emit({\n originalEvent: event,\n data: rangeRowData,\n type: 'row'\n });\n }\n }\n\n isSelected(rowData) {\n if (rowData && this.selection) {\n if (this.dataKey) {\n return this.selectionKeys[ObjectUtils.resolveFieldData(rowData, this.dataKey)] !== undefined;\n } else {\n if (this.selection instanceof Array) return this.findIndexInSelection(rowData) > -1;else return this.equals(rowData, this.selection);\n }\n }\n\n return false;\n }\n\n findIndexInSelection(rowData) {\n let index = -1;\n\n if (this.selection && this.selection.length) {\n for (let i = 0; i < this.selection.length; i++) {\n if (this.equals(rowData, this.selection[i])) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n toggleRowWithRadio(event, rowData) {\n this.preventSelectionSetterPropagation = true;\n\n if (this.selection != rowData) {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'radiobutton'\n });\n\n if (this.dataKey) {\n this.selectionKeys = {};\n this.selectionKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] = 1;\n }\n } else {\n this._selection = null;\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'radiobutton'\n });\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowWithCheckbox(event, rowData) {\n this.selection = this.selection || [];\n let selected = this.isSelected(rowData);\n let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;\n this.preventSelectionSetterPropagation = true;\n\n if (selected) {\n let selectionIndex = this.findIndexInSelection(rowData);\n this._selection = this.selection.filter((val, i) => i != selectionIndex);\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\n\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n } else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({\n originalEvent: event.originalEvent,\n index: event.rowIndex,\n data: rowData,\n type: 'checkbox'\n });\n\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n\n this.tableService.onSelectionChange();\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n toggleRowsWithCheckbox(event, check) {\n this._selection = check ? this.filteredValue ? this.filteredValue.slice() : this.value.slice() : [];\n this.preventSelectionSetterPropagation = true;\n this.updateSelectionKeys();\n this.selectionChange.emit(this._selection);\n this.tableService.onSelectionChange();\n this.onHeaderCheckboxToggle.emit({\n originalEvent: event,\n checked: check\n });\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n equals(data1, data2) {\n return this.compareSelectionBy === 'equals' ? data1 === data2 : ObjectUtils.equals(data1, data2, this.dataKey);\n }\n /* Legacy Filtering for custom elements */\n\n\n filter(value, field, matchMode) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n\n if (!this.isFilterBlank(value)) {\n this.filters[field] = {\n value: value,\n matchMode: matchMode\n };\n } else if (this.filters[field]) {\n delete this.filters[field];\n }\n\n this.filterTimeout = setTimeout(() => {\n this._filter();\n\n this.filterTimeout = null;\n }, this.filterDelay);\n this.anchorRowIndex = null;\n }\n\n filterGlobal(value, matchMode) {\n this.filter(value, 'global', matchMode);\n }\n\n isFilterBlank(filter) {\n if (filter !== null && filter !== undefined) {\n if (typeof filter === 'string' && filter.trim().length == 0 || filter instanceof Array && filter.length == 0) return true;else return false;\n }\n\n return true;\n }\n\n _filter() {\n if (!this.restoringFilter) {\n this.first = 0;\n this.firstChange.emit(this.first);\n }\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n if (!this.value) {\n return;\n }\n\n if (!this.hasFilter()) {\n this.filteredValue = null;\n\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n } else {\n let globalFilterFieldsArray;\n\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields) throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');else globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n\n this.filteredValue = [];\n\n for (let i = 0; i < this.value.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\n\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop) && prop !== 'global') {\n localFiltered = true;\n let filterField = prop;\n let filterMeta = this.filters[filterField];\n\n if (Array.isArray(filterMeta)) {\n for (let meta of filterMeta) {\n localMatch = this.executeLocalFilter(filterField, this.value[i], meta);\n\n if (meta.operator === FilterOperator.OR && localMatch || meta.operator === FilterOperator.AND && !localMatch) {\n break;\n }\n }\n } else {\n localMatch = this.executeLocalFilter(filterField, this.value[i], filterMeta);\n }\n\n if (!localMatch) {\n break;\n }\n }\n }\n\n if (this.filters['global'] && !globalMatch && globalFilterFieldsArray) {\n for (let j = 0; j < globalFilterFieldsArray.length; j++) {\n let globalFilterField = globalFilterFieldsArray[j].field || globalFilterFieldsArray[j];\n globalMatch = this.filterService.filters[this.filters['global'].matchMode](ObjectUtils.resolveFieldData(this.value[i], globalFilterField), this.filters['global'].value, this.filterLocale);\n\n if (globalMatch) {\n break;\n }\n }\n }\n\n let matches;\n\n if (this.filters['global']) {\n matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n } else {\n matches = localFiltered && localMatch;\n }\n\n if (matches) {\n this.filteredValue.push(this.value[i]);\n }\n }\n\n if (this.filteredValue.length === this.value.length) {\n this.filteredValue = null;\n }\n\n if (this.paginator) {\n this.totalRecords = this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0;\n }\n }\n }\n\n this.onFilter.emit({\n filters: this.filters,\n filteredValue: this.filteredValue || this.value\n });\n this.tableService.onValueChange(this.value);\n\n if (this.isStateful() && !this.restoringFilter) {\n this.saveState();\n }\n\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n\n this.cd.markForCheck();\n\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n\n executeLocalFilter(field, rowData, filterMeta) {\n let filterValue = filterMeta.value;\n let filterMatchMode = filterMeta.matchMode || FilterMatchMode.STARTS_WITH;\n let dataFieldValue = ObjectUtils.resolveFieldData(rowData, field);\n let filterConstraint = this.filterService.filters[filterMatchMode];\n return filterConstraint(dataFieldValue, filterValue, this.filterLocale);\n }\n\n hasFilter() {\n let empty = true;\n\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n\n return !empty;\n }\n\n createLazyLoadMetadata() {\n return {\n first: this.first,\n rows: this.rows,\n sortField: this.sortField,\n sortOrder: this.sortOrder,\n filters: this.filters,\n globalFilter: this.filters && this.filters['global'] ? this.filters['global'].value : null,\n multiSortMeta: this.multiSortMeta\n };\n }\n\n clear() {\n this._sortField = null;\n this._sortOrder = this.defaultSortOrder;\n this._multiSortMeta = null;\n this.tableService.onSort(null);\n this.filteredValue = null;\n this.tableService.onResetChange();\n this.first = 0;\n this.firstChange.emit(this.first);\n\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else {\n this.totalRecords = this._value ? this._value.length : 0;\n }\n }\n\n reset() {\n this.clear();\n }\n\n exportCSV(options) {\n let data;\n let csv = '';\n let columns = this.frozenColumns ? [...this.frozenColumns, ...this.columns] : this.columns;\n\n if (options && options.selectionOnly) {\n data = this.selection || [];\n } else {\n data = this.filteredValue || this.value;\n\n if (this.frozenValue) {\n data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n } //headers\n\n\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (column.exportable !== false && column.field) {\n csv += '\"' + (column.header || column.field) + '\"';\n\n if (i < columns.length - 1) {\n csv += this.csvSeparator;\n }\n }\n } //body\n\n\n data.forEach((record, i) => {\n csv += '\\n';\n\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n\n if (column.exportable !== false && column.field) {\n let cellData = ObjectUtils.resolveFieldData(record, column.field);\n\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: column.field\n });\n } else cellData = String(cellData).replace(/\"/g, '\"\"');\n } else cellData = '';\n\n csv += '\"' + cellData + '\"';\n\n if (i < columns.length - 1) {\n csv += this.csvSeparator;\n }\n }\n }\n });\n let blob = new Blob([csv], {\n type: 'text/csv;charset=utf-8;'\n });\n let link = document.createElement(\"a\");\n link.style.display = 'none';\n document.body.appendChild(link);\n\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.exportFilename + '.csv');\n link.click();\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n\n document.body.removeChild(link);\n }\n\n resetScrollTop() {\n if (this.virtualScroll) this.scrollToVirtualIndex(0);else this.scrollTo({\n top: 0\n });\n }\n\n scrollToVirtualIndex(index) {\n if (this.virtualScrollBody) {\n this.virtualScrollBody.scrollToIndex(index);\n }\n }\n\n onScrollIndexChange(index) {\n if (this.lazy) {\n if (this.virtualScrollTimeout) {\n clearTimeout(this.virtualScrollTimeout);\n }\n\n this.virtualScrollTimeout = setTimeout(() => {\n let page = Math.floor(index / this.rows);\n let virtualScrollOffset = page === 0 ? 0 : (page - 1) * this.rows;\n let virtualScrollChunkSize = page === 0 ? this.rows * 2 : this.rows * 3;\n\n if (page !== this.virtualPage) {\n this.virtualPage = page;\n this.onLazyLoad.emit({\n first: virtualScrollOffset,\n rows: virtualScrollChunkSize,\n sortField: this.sortField,\n sortOrder: this.sortOrder,\n filters: this.filters,\n globalFilter: this.filters && this.filters['global'] ? this.filters['global'].value : null,\n multiSortMeta: this.multiSortMeta\n });\n }\n }, this.virtualScrollDelay);\n }\n }\n\n scrollTo(options) {\n if (this.virtualScrollBody) {\n this.virtualScrollBody.scrollTo(options);\n } else {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n } else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\n }\n }\n }\n\n updateEditingCell(cell, data, field, index) {\n this.editingCell = cell;\n this.editingCellData = data;\n this.editingCellField = field;\n this.editingCellRowIndex = index;\n this.bindDocumentEditListener();\n }\n\n isEditingCellValid() {\n return this.editingCell && DomHandler.find(this.editingCell, '.ng-invalid.ng-dirty').length === 0;\n }\n\n bindDocumentEditListener() {\n if (!this.documentEditListener) {\n this.documentEditListener = event => {\n if (this.editingCell && !this.selfClick && this.isEditingCellValid()) {\n DomHandler.removeClass(this.editingCell, 'p-cell-editing');\n this.editingCell = null;\n this.onEditComplete.emit({\n field: this.editingCellField,\n data: this.editingCellData,\n originalEvent: event,\n index: this.editingCellRowIndex\n });\n this.editingCellField = null;\n this.editingCellData = null;\n this.editingCellRowIndex = null;\n this.unbindDocumentEditListener();\n this.cd.markForCheck();\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.documentEditListener);\n }\n }\n\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n }\n }\n\n initRowEdit(rowData) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n this.editingRowKeys[dataKeyValue] = true;\n }\n\n saveRowEdit(rowData, rowElement) {\n if (DomHandler.find(rowElement, '.ng-invalid.ng-dirty').length === 0) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n }\n\n cancelRowEdit(rowData) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n\n toggleRow(rowData, event) {\n if (!this.dataKey) {\n throw new Error('dataKey must be defined to use row expansion');\n }\n\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n\n if (this.expandedRowKeys[dataKeyValue] != null) {\n delete this.expandedRowKeys[dataKeyValue];\n this.onRowCollapse.emit({\n originalEvent: event,\n data: rowData\n });\n } else {\n if (this.rowExpandMode === 'single') {\n this.expandedRowKeys = {};\n }\n\n this.expandedRowKeys[dataKeyValue] = true;\n this.onRowExpand.emit({\n originalEvent: event,\n data: rowData\n });\n }\n\n if (event) {\n event.preventDefault();\n }\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n isRowExpanded(rowData) {\n return this.expandedRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n\n isRowEditing(rowData) {\n return this.editingRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n }\n\n onColumnResizeBegin(event) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild.nativeElement).left;\n this.resizeColumnElement = event.target.parentElement;\n this.columnResizing = true;\n this.lastResizerHelperX = event.pageX - containerLeft + this.containerViewChild.nativeElement.scrollLeft;\n this.onColumnResize(event);\n event.preventDefault();\n }\n\n onColumnResize(event) {\n let containerLeft = DomHandler.getOffset(this.containerViewChild.nativeElement).left;\n DomHandler.addClass(this.containerViewChild.nativeElement, 'p-unselectable-text');\n this.resizeHelperViewChild.nativeElement.style.height = this.containerViewChild.nativeElement.offsetHeight + 'px';\n this.resizeHelperViewChild.nativeElement.style.top = 0 + 'px';\n this.resizeHelperViewChild.nativeElement.style.left = event.pageX - containerLeft + this.containerViewChild.nativeElement.scrollLeft + 'px';\n this.resizeHelperViewChild.nativeElement.style.display = 'block';\n }\n\n onColumnResizeEnd() {\n let delta = this.resizeHelperViewChild.nativeElement.offsetLeft - this.lastResizerHelperX;\n let columnWidth = this.resizeColumnElement.offsetWidth;\n let newColumnWidth = columnWidth + delta;\n let minWidth = this.resizeColumnElement.style.minWidth || 15;\n\n if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n if (!this.scrollable) {\n this.resizeColumnElement.style.width = newColumnWidth + 'px';\n\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n } else {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\n }\n } else if (this.columnResizeMode === 'expand') {\n let tableWidth = this.tableViewChild.nativeElement.offsetWidth + delta;\n this.tableViewChild.nativeElement.style.minWidth = tableWidth + 'px';\n this.resizeColumnElement.style.width = newColumnWidth + 'px';\n if (!this.scrollable) this.tableViewChild.nativeElement.style.width = tableWidth + 'px';else this.resizeTableCells(newColumnWidth, null);\n }\n\n this.onColResize.emit({\n element: this.resizeColumnElement,\n delta: delta\n });\n\n if (this.isStateful()) {\n this.saveState();\n }\n }\n\n this.resizeHelperViewChild.nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild.nativeElement, 'p-unselectable-text');\n }\n\n resizeTableCells(newColumnWidth, nextColumnWidth) {\n let colIndex = DomHandler.index(this.resizeColumnElement);\n let widths = [];\n const tableHead = DomHandler.findSingle(this.containerViewChild.nativeElement, '.p-datatable-thead');\n let headers = DomHandler.find(tableHead, 'tr > th');\n headers.forEach(header => widths.push(DomHandler.getOuterWidth(header)));\n this.destroyStyleElement();\n this.createStyleElement();\n let innerHTML = '';\n widths.forEach((width, index) => {\n let colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n innerHTML += `\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}) {\n flex: 0 0 ${colWidth}px !important;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}) {\n flex: 0 0 ${colWidth}px !important;\n }\n `;\n });\n this.styleElement.innerHTML = innerHTML;\n }\n\n onColumnDragStart(event, columnElement) {\n this.reorderIconWidth = DomHandler.getHiddenElementOuterWidth(this.reorderIndicatorUpViewChild.nativeElement);\n this.reorderIconHeight = DomHandler.getHiddenElementOuterHeight(this.reorderIndicatorDownViewChild.nativeElement);\n this.draggedColumn = columnElement;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onColumnDragEnter(event, dropHeader) {\n if (this.reorderableColumns && this.draggedColumn && dropHeader) {\n event.preventDefault();\n let containerOffset = DomHandler.getOffset(this.containerViewChild.nativeElement);\n let dropHeaderOffset = DomHandler.getOffset(dropHeader);\n\n if (this.draggedColumn != dropHeader) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropHeader, 'preorderablecolumn');\n let targetLeft = dropHeaderOffset.left - containerOffset.left;\n let targetTop = containerOffset.top - dropHeaderOffset.top;\n let columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n this.reorderIndicatorUpViewChild.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top - (this.reorderIconHeight - 1) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n\n if (event.pageX > columnCenter) {\n this.reorderIndicatorUpViewChild.nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.reorderIconWidth / 2) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(this.reorderIconWidth / 2) + 'px';\n this.dropPosition = 1;\n } else {\n this.reorderIndicatorUpViewChild.nativeElement.style.left = targetLeft - Math.ceil(this.reorderIconWidth / 2) + 'px';\n this.reorderIndicatorDownViewChild.nativeElement.style.left = targetLeft - Math.ceil(this.reorderIconWidth / 2) + 'px';\n this.dropPosition = -1;\n }\n\n if (dropIndex - dragIndex === 1 && this.dropPosition === -1 || dropIndex - dragIndex === -1 && this.dropPosition === 1) {\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'none';\n } else {\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'block';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'block';\n }\n } else {\n event.dataTransfer.dropEffect = 'none';\n }\n }\n }\n\n onColumnDragLeave(event) {\n if (this.reorderableColumns && this.draggedColumn) {\n event.preventDefault();\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'none';\n }\n }\n\n onColumnDrop(event, dropColumn) {\n event.preventDefault();\n\n if (this.draggedColumn) {\n let dragIndex = DomHandler.indexWithinGroup(this.draggedColumn, 'preorderablecolumn');\n let dropIndex = DomHandler.indexWithinGroup(dropColumn, 'preorderablecolumn');\n let allowDrop = dragIndex != dropIndex;\n\n if (allowDrop && (dropIndex - dragIndex == 1 && this.dropPosition === -1 || dragIndex - dropIndex == 1 && this.dropPosition === 1)) {\n allowDrop = false;\n }\n\n if (allowDrop && dropIndex < dragIndex && this.dropPosition === 1) {\n dropIndex = dropIndex + 1;\n }\n\n if (allowDrop && dropIndex > dragIndex && this.dropPosition === -1) {\n dropIndex = dropIndex - 1;\n }\n\n if (allowDrop) {\n ObjectUtils.reorderArray(this.columns, dragIndex, dropIndex);\n this.onColReorder.emit({\n dragIndex: dragIndex,\n dropIndex: dropIndex,\n columns: this.columns\n });\n\n if (this.isStateful()) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.saveState();\n });\n });\n }\n }\n\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'none';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'none';\n this.draggedColumn.draggable = false;\n this.draggedColumn = null;\n this.dropPosition = null;\n }\n }\n\n onRowDragStart(event, index) {\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\n }\n\n onRowDragOver(event, index, rowElement) {\n if (this.rowDragging && this.draggedRowIndex !== index) {\n let rowY = DomHandler.getOffset(rowElement).top + DomHandler.getWindowScrollTop();\n let pageY = event.pageY;\n let rowMidY = rowY + DomHandler.getOuterHeight(rowElement) / 2;\n let prevRowElement = rowElement.previousElementSibling;\n\n if (pageY < rowMidY) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n this.droppedRowIndex = index;\n if (prevRowElement) DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n } else {\n if (prevRowElement) DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');else DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n\n onRowDragLeave(event, rowElement) {\n let prevRowElement = rowElement.previousElementSibling;\n\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\n }\n\n onRowDrop(event, rowElement) {\n if (this.droppedRowIndex != null) {\n let dropIndex = this.draggedRowIndex > this.droppedRowIndex ? this.droppedRowIndex : this.droppedRowIndex === 0 ? 0 : this.droppedRowIndex - 1;\n ObjectUtils.reorderArray(this.value, this.draggedRowIndex, dropIndex);\n this.onRowReorder.emit({\n dragIndex: this.draggedRowIndex,\n dropIndex: dropIndex\n });\n } //cleanup\n\n\n this.onRowDragLeave(event, rowElement);\n this.onRowDragEnd(event);\n }\n\n isEmpty() {\n let data = this.filteredValue || this.value;\n return data == null || data.length == 0;\n }\n\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n\n case 'session':\n return window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n }\n\n isStateful() {\n return this.stateKey != null;\n }\n\n saveState() {\n const storage = this.getStorage();\n let state = {};\n\n if (this.paginator) {\n state.first = this.first;\n state.rows = this.rows;\n }\n\n if (this.sortField) {\n state.sortField = this.sortField;\n state.sortOrder = this.sortOrder;\n }\n\n if (this.multiSortMeta) {\n state.multiSortMeta = this.multiSortMeta;\n }\n\n if (this.hasFilter()) {\n state.filters = this.filters;\n }\n\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n\n if (this.reorderableColumns) {\n this.saveColumnOrder(state);\n }\n\n if (this.selection) {\n state.selection = this.selection;\n }\n\n if (Object.keys(this.expandedRowKeys).length) {\n state.expandedRowKeys = this.expandedRowKeys;\n }\n\n storage.setItem(this.stateKey, JSON.stringify(state));\n this.onStateSave.emit(state);\n }\n\n clearState() {\n const storage = this.getStorage();\n\n if (this.stateKey) {\n storage.removeItem(this.stateKey);\n }\n }\n\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n const dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n\n const reviver = function (key, value) {\n if (typeof value === \"string\" && dateFormat.test(value)) {\n return new Date(value);\n }\n\n return value;\n };\n\n if (stateString) {\n let state = JSON.parse(stateString, reviver);\n\n if (this.paginator) {\n if (this.first !== undefined) {\n this.first = state.first;\n this.firstChange.emit(this.first);\n }\n\n if (this.rows !== undefined) {\n this.rows = state.rows;\n this.rowsChange.emit(this.rows);\n }\n }\n\n if (state.sortField) {\n this.restoringSort = true;\n this._sortField = state.sortField;\n this._sortOrder = state.sortOrder;\n }\n\n if (state.multiSortMeta) {\n this.restoringSort = true;\n this._multiSortMeta = state.multiSortMeta;\n }\n\n if (state.filters) {\n this.restoringFilter = true;\n this.filters = state.filters;\n }\n\n if (this.resizableColumns) {\n this.columnWidthsState = state.columnWidths;\n this.tableWidthState = state.tableWidth;\n }\n\n if (state.expandedRowKeys) {\n this.expandedRowKeys = state.expandedRowKeys;\n }\n\n if (state.selection) {\n Promise.resolve(null).then(() => this.selectionChange.emit(state.selection));\n }\n\n this.stateRestored = true;\n this.onStateRestore.emit(state);\n }\n }\n\n saveColumnWidths(state) {\n let widths = [];\n let headers = DomHandler.find(this.containerViewChild.nativeElement, '.p-datatable-thead > tr > th');\n headers.forEach(header => widths.push(DomHandler.getOuterWidth(header)));\n state.columnWidths = widths.join(',');\n\n if (this.columnResizeMode === 'expand') {\n state.tableWidth = DomHandler.getOuterWidth(this.tableViewChild.nativeElement) + 'px';\n }\n }\n\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\n\n if (this.columnResizeMode === 'expand' && this.tableWidthState) {\n this.tableViewChild.nativeElement.style.width = this.tableWidthState;\n this.tableViewChild.nativeElement.style.minWidth = this.tableWidthState;\n this.containerViewChild.nativeElement.style.width = this.tableWidthState;\n }\n\n this.createStyleElement();\n\n if (this.scrollable && widths && widths.length > 0) {\n let innerHTML = '';\n widths.forEach((width, index) => {\n innerHTML += `\n #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}) {\n flex: 0 0 ${width}px;\n }\n\n #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}) {\n flex: 0 0 ${width}px;\n }\n `;\n });\n this.styleElement.innerHTML = innerHTML;\n } else {\n DomHandler.find(this.tableViewChild.nativeElement, '.p-datatable-thead > tr > th').forEach((header, index) => {\n header.style.width = widths[index] + 'px';\n });\n }\n }\n }\n\n saveColumnOrder(state) {\n if (this.columns) {\n let columnOrder = [];\n this.columns.map(column => {\n columnOrder.push(column.field || column.key);\n });\n state.columnOrder = columnOrder;\n }\n }\n\n restoreColumnOrder() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n\n if (stateString) {\n let state = JSON.parse(stateString);\n let columnOrder = state.columnOrder;\n\n if (columnOrder) {\n let reorderedColumns = [];\n columnOrder.map(key => {\n let col = this.findColumnByKey(key);\n\n if (col) {\n reorderedColumns.push(col);\n }\n });\n this.columnOrderStateRestored = true;\n this.columns = reorderedColumns;\n }\n }\n }\n\n findColumnByKey(key) {\n if (this.columns) {\n for (let col of this.columns) {\n if (col.key === key || col.field === key) return col;else continue;\n }\n } else {\n return null;\n }\n }\n\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n document.head.appendChild(this.styleElement);\n }\n\n getGroupRowsMeta() {\n return {\n field: this.groupRowsBy,\n order: this.groupRowsByOrder\n };\n }\n\n createResponsiveStyle() {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = document.createElement('style');\n this.responsiveStyleElement.type = 'text/css';\n document.head.appendChild(this.responsiveStyleElement);\n let innerHTML = `\n@media screen and (max-width: ${this.breakpoint}) {\n #${this.id} .p-datatable-thead > tr > th,\n #${this.id} .p-datatable-tfoot > tr > td {\n display: none !important;\n }\n\n #${this.id} .p-datatable-tbody > tr > td {\n display: flex;\n width: 100% !important;\n align-items: center;\n justify-content: space-between;\n }\n\n #${this.id} .p-datatable-tbody > tr > td:not(:last-child) {\n border: 0 none;\n }\n\n #${this.id}.p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\n border-top: 0;\n border-right: 0;\n border-left: 0;\n }\n\n #${this.id} .p-datatable-tbody > tr > td > .p-column-title {\n display: block;\n }\n}\n`;\n this.responsiveStyleElement.innerHTML = innerHTML;\n }\n }\n\n destroyResponsiveStyle() {\n if (this.responsiveStyleElement) {\n document.head.removeChild(this.responsiveStyleElement);\n this.responsiveStyleElement = null;\n }\n }\n\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n\n if (this.virtualScrollSubscription) {\n this.virtualScrollSubscription.unsubscribe();\n }\n\n this.destroyStyleElement();\n this.destroyResponsiveStyle();\n }\n\n}\n\nTable.ɵfac = function Table_Factory(t) {\n return new (t || Table)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.FilterService), i0.ɵɵdirectiveInject(i1.OverlayService));\n};\n\nTable.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Table,\n selectors: [[\"p-table\"]],\n contentQueries: function Table_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function Table_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(_c2, 5);\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(CdkVirtualScrollViewport, 5);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resizeHelperViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reorderIndicatorUpViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.reorderIndicatorDownViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.wrapperViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tableViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tableHeaderViewChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.virtualScrollBody = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n frozenColumns: \"frozenColumns\",\n frozenValue: \"frozenValue\",\n style: \"style\",\n styleClass: \"styleClass\",\n tableStyle: \"tableStyle\",\n tableStyleClass: \"tableStyleClass\",\n paginator: \"paginator\",\n pageLinks: \"pageLinks\",\n rowsPerPageOptions: \"rowsPerPageOptions\",\n alwaysShowPaginator: \"alwaysShowPaginator\",\n paginatorPosition: \"paginatorPosition\",\n paginatorDropdownAppendTo: \"paginatorDropdownAppendTo\",\n paginatorDropdownScrollHeight: \"paginatorDropdownScrollHeight\",\n currentPageReportTemplate: \"currentPageReportTemplate\",\n showCurrentPageReport: \"showCurrentPageReport\",\n showJumpToPageDropdown: \"showJumpToPageDropdown\",\n showJumpToPageInput: \"showJumpToPageInput\",\n showFirstLastIcon: \"showFirstLastIcon\",\n showPageLinks: \"showPageLinks\",\n defaultSortOrder: \"defaultSortOrder\",\n sortMode: \"sortMode\",\n resetPageOnSort: \"resetPageOnSort\",\n selectionMode: \"selectionMode\",\n contextMenuSelection: \"contextMenuSelection\",\n contextMenuSelectionMode: \"contextMenuSelectionMode\",\n dataKey: \"dataKey\",\n metaKeySelection: \"metaKeySelection\",\n rowTrackBy: \"rowTrackBy\",\n lazy: \"lazy\",\n lazyLoadOnInit: \"lazyLoadOnInit\",\n compareSelectionBy: \"compareSelectionBy\",\n csvSeparator: \"csvSeparator\",\n exportFilename: \"exportFilename\",\n filters: \"filters\",\n globalFilterFields: \"globalFilterFields\",\n filterDelay: \"filterDelay\",\n filterLocale: \"filterLocale\",\n expandedRowKeys: \"expandedRowKeys\",\n editingRowKeys: \"editingRowKeys\",\n rowExpandMode: \"rowExpandMode\",\n scrollable: \"scrollable\",\n scrollDirection: \"scrollDirection\",\n rowGroupMode: \"rowGroupMode\",\n scrollHeight: \"scrollHeight\",\n virtualScroll: \"virtualScroll\",\n virtualScrollDelay: \"virtualScrollDelay\",\n virtualRowHeight: \"virtualRowHeight\",\n frozenWidth: \"frozenWidth\",\n responsive: \"responsive\",\n contextMenu: \"contextMenu\",\n resizableColumns: \"resizableColumns\",\n columnResizeMode: \"columnResizeMode\",\n reorderableColumns: \"reorderableColumns\",\n loading: \"loading\",\n loadingIcon: \"loadingIcon\",\n showLoader: \"showLoader\",\n rowHover: \"rowHover\",\n customSort: \"customSort\",\n showInitialSortBadge: \"showInitialSortBadge\",\n autoLayout: \"autoLayout\",\n exportFunction: \"exportFunction\",\n stateKey: \"stateKey\",\n stateStorage: \"stateStorage\",\n editMode: \"editMode\",\n groupRowsBy: \"groupRowsBy\",\n groupRowsByOrder: \"groupRowsByOrder\",\n minBufferPx: \"minBufferPx\",\n maxBufferPx: \"maxBufferPx\",\n responsiveLayout: \"responsiveLayout\",\n breakpoint: \"breakpoint\",\n value: \"value\",\n columns: \"columns\",\n first: \"first\",\n rows: \"rows\",\n totalRecords: \"totalRecords\",\n sortField: \"sortField\",\n sortOrder: \"sortOrder\",\n multiSortMeta: \"multiSortMeta\",\n selection: \"selection\"\n },\n outputs: {\n selectionChange: \"selectionChange\",\n contextMenuSelectionChange: \"contextMenuSelectionChange\",\n onRowSelect: \"onRowSelect\",\n onRowUnselect: \"onRowUnselect\",\n onPage: \"onPage\",\n onSort: \"onSort\",\n onFilter: \"onFilter\",\n onLazyLoad: \"onLazyLoad\",\n onRowExpand: \"onRowExpand\",\n onRowCollapse: \"onRowCollapse\",\n onContextMenuSelect: \"onContextMenuSelect\",\n onColResize: \"onColResize\",\n onColReorder: \"onColReorder\",\n onRowReorder: \"onRowReorder\",\n onEditInit: \"onEditInit\",\n onEditComplete: \"onEditComplete\",\n onEditCancel: \"onEditCancel\",\n onHeaderCheckboxToggle: \"onHeaderCheckboxToggle\",\n sortFunction: \"sortFunction\",\n firstChange: \"firstChange\",\n rowsChange: \"rowsChange\",\n onStateSave: \"onStateSave\",\n onStateRestore: \"onStateRestore\"\n },\n features: [i0.ɵɵProvidersFeature([TableService]), i0.ɵɵNgOnChangesFeature],\n decls: 14,\n vars: 33,\n consts: [[3, \"ngStyle\", \"ngClass\"], [\"container\", \"\"], [\"class\", \"p-datatable-loading-overlay p-component-overlay\", 4, \"ngIf\"], [\"class\", \"p-datatable-header\", 4, \"ngIf\"], [\"styleClass\", \"p-paginator-top\", 3, \"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"alwaysShow\", \"rowsPerPageOptions\", \"templateLeft\", \"templateRight\", \"dropdownAppendTo\", \"dropdownScrollHeight\", \"currentPageReportTemplate\", \"showFirstLastIcon\", \"dropdownItemTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showPageLinks\", \"onPageChange\", 4, \"ngIf\"], [1, \"p-datatable-wrapper\", 3, \"ngStyle\"], [\"wrapper\", \"\"], [\"role\", \"table\", \"class\", \"p-datatable-table\", 3, \"ngClass\", \"ngStyle\", 4, \"ngIf\"], [\"tabindex\", \"0\", \"class\", \"p-datatable-virtual-scrollable-body\", 3, \"itemSize\", \"height\", \"minBufferPx\", \"maxBufferPx\", \"scrolledIndexChange\", 4, \"ngIf\"], [\"styleClass\", \"p-paginator-bottom\", 3, \"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"alwaysShow\", \"rowsPerPageOptions\", \"templateLeft\", \"templateRight\", \"dropdownAppendTo\", \"dropdownScrollHeight\", \"currentPageReportTemplate\", \"showFirstLastIcon\", \"dropdownItemTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showPageLinks\", \"onPageChange\", 4, \"ngIf\"], [\"class\", \"p-datatable-footer\", 4, \"ngIf\"], [\"class\", \"p-column-resizer-helper\", \"style\", \"display:none\", 4, \"ngIf\"], [\"class\", \"pi pi-arrow-down p-datatable-reorder-indicator-up\", \"style\", \"display:none\", 4, \"ngIf\"], [\"class\", \"pi pi-arrow-up p-datatable-reorder-indicator-down\", \"style\", \"display:none\", 4, \"ngIf\"], [1, \"p-datatable-loading-overlay\", \"p-component-overlay\"], [1, \"p-datatable-header\"], [4, \"ngTemplateOutlet\"], [\"styleClass\", \"p-paginator-top\", 3, \"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"alwaysShow\", \"rowsPerPageOptions\", \"templateLeft\", \"templateRight\", \"dropdownAppendTo\", \"dropdownScrollHeight\", \"currentPageReportTemplate\", \"showFirstLastIcon\", \"dropdownItemTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showPageLinks\", \"onPageChange\"], [\"role\", \"table\", 1, \"p-datatable-table\", 3, \"ngClass\", \"ngStyle\"], [\"table\", \"\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-datatable-thead\"], [\"class\", \"p-datatable-tbody p-datatable-frozen-tbody\", 3, \"value\", \"frozenRows\", \"pTableBody\", \"pTableBodyTemplate\", \"frozen\", 4, \"ngIf\"], [1, \"p-datatable-tbody\", 3, \"value\", \"pTableBody\", \"pTableBodyTemplate\"], [\"class\", \"p-datatable-tfoot\", 4, \"ngIf\"], [1, \"p-datatable-tbody\", \"p-datatable-frozen-tbody\", 3, \"value\", \"frozenRows\", \"pTableBody\", \"pTableBodyTemplate\", \"frozen\"], [1, \"p-datatable-tfoot\"], [\"tabindex\", \"0\", 1, \"p-datatable-virtual-scrollable-body\", 3, \"itemSize\", \"minBufferPx\", \"maxBufferPx\", \"scrolledIndexChange\"], [\"tableHeader\", \"\"], [\"styleClass\", \"p-paginator-bottom\", 3, \"rows\", \"first\", \"totalRecords\", \"pageLinkSize\", \"alwaysShow\", \"rowsPerPageOptions\", \"templateLeft\", \"templateRight\", \"dropdownAppendTo\", \"dropdownScrollHeight\", \"currentPageReportTemplate\", \"showFirstLastIcon\", \"dropdownItemTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showPageLinks\", \"onPageChange\"], [1, \"p-datatable-footer\"], [1, \"p-column-resizer-helper\", 2, \"display\", \"none\"], [\"resizeHelper\", \"\"], [1, \"pi\", \"pi-arrow-down\", \"p-datatable-reorder-indicator-up\", 2, \"display\", \"none\"], [\"reorderIndicatorUp\", \"\"], [1, \"pi\", \"pi-arrow-up\", \"p-datatable-reorder-indicator-down\", 2, \"display\", \"none\"], [\"reorderIndicatorDown\", \"\"]],\n template: function Table_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵtemplate(2, Table_div_2_Template, 2, 2, \"div\", 2);\n i0.ɵɵtemplate(3, Table_div_3_Template, 2, 1, \"div\", 3);\n i0.ɵɵtemplate(4, Table_p_paginator_4_Template, 1, 17, \"p-paginator\", 4);\n i0.ɵɵelementStart(5, \"div\", 5, 6);\n i0.ɵɵtemplate(7, Table_table_7_Template, 8, 16, \"table\", 7);\n i0.ɵɵtemplate(8, Table_cdk_virtual_scroll_viewport_8_Template, 10, 21, \"cdk-virtual-scroll-viewport\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, Table_p_paginator_9_Template, 1, 17, \"p-paginator\", 9);\n i0.ɵɵtemplate(10, Table_div_10_Template, 2, 1, \"div\", 10);\n i0.ɵɵtemplate(11, Table_div_11_Template, 2, 0, \"div\", 11);\n i0.ɵɵtemplate(12, Table_span_12_Template, 2, 0, \"span\", 12);\n i0.ɵɵtemplate(13, Table_span_13_Template, 2, 0, \"span\", 13);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", i0.ɵɵpureFunctionV(16, _c8, [ctx.rowHover || ctx.selectionMode, ctx.autoLayout, ctx.resizableColumns, ctx.resizableColumns && ctx.columnResizeMode === \"fit\", ctx.scrollable, ctx.scrollable && ctx.scrollDirection === \"vertical\", ctx.scrollable && ctx.scrollDirection === \"horizontal\", ctx.scrollable && ctx.scrollDirection === \"both\", ctx.scrollable && ctx.scrollHeight === \"flex\", ctx.responsiveLayout === \"stack\", ctx.responsiveLayout === \"scroll\", ctx.responsive, ctx.headerGroupedTemplate != null, ctx.footerGroupedTemplate != null]));\n i0.ɵɵattribute(\"id\", ctx.id);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.loading && ctx.showLoader);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.captionTemplate);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.paginator && (ctx.paginatorPosition === \"top\" || ctx.paginatorPosition == \"both\"));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(31, _c9, ctx.scrollHeight));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.virtualScroll);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.virtualScroll);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.paginator && (ctx.paginatorPosition === \"bottom\" || ctx.paginatorPosition == \"both\"));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.summaryTemplate);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.resizableColumns);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.reorderableColumns);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.reorderableColumns);\n }\n },\n directives: function () {\n return [i4.NgStyle, i4.NgClass, i4.NgIf, i4.NgTemplateOutlet, i2.Paginator, TableBody, i3.CdkVirtualScrollViewport, i3.CdkFixedSizeVirtualScroll];\n },\n styles: [\".p-datatable{position:relative}.p-datatable table{border-collapse:collapse;min-width:100%;table-layout:fixed}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;-ms-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-auto-layout>.p-datatable-wrapper{overflow-x:auto}.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper{overflow-x:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper>table,.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable .p-datatable-wrapper{position:relative;overflow:auto}.p-datatable-scrollable .p-datatable-thead,.p-datatable-scrollable .p-datatable-tbody,.p-datatable-scrollable .p-datatable-tfoot{display:block}.p-datatable-scrollable .p-datatable-thead>tr,.p-datatable-scrollable .p-datatable-tbody>tr,.p-datatable-scrollable .p-datatable-tfoot>tr{display:flex;flex-wrap:nowrap;width:100%}.p-datatable-scrollable .p-datatable-thead>tr>th,.p-datatable-scrollable .p-datatable-tbody>tr>td,.p-datatable-scrollable .p-datatable-tfoot>tr>td{display:flex;flex:1 1 0;align-items:center}.p-datatable-scrollable .p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable .p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable .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-scrollable-both .p-datatable-thead>tr>th,.p-datatable-scrollable-both .p-datatable-tbody>tr>td,.p-datatable-scrollable-both .p-datatable-tfoot>tr>td,.p-datatable-scrollable-horizontal .p-datatable-thead>tr>th .p-datatable-scrollable-horizontal .p-datatable-tbody>tr>td,.p-datatable-scrollable-horizontal .p-datatable-tfoot>tr>td{flex:0 0 auto}.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 .p-rowgroup-header{position:sticky;z-index:1}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot{display:table;border-collapse:collapse;width:100%;table-layout:fixed}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr{display:table-row}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr>th,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr>td{display:table-cell}.p-datatable-flex-scrollable{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-flex-scrollable .p-datatable-virtual-scrollable-body{flex:1}.p-datatable-resizable>.p-datatable-wrapper{overflow-x:auto}.p-datatable-resizable .p-datatable-thead>tr>th,.p-datatable-resizable .p-datatable-tfoot>tr>td,.p-datatable-resizable .p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable .p-resizable-column{background-clip:padding-box;position:relative}.p-datatable-resizable-fit .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;display:none}.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 .p-datatable-tbody>tr>td>.p-column-title{display:none}cdk-virtual-scroll-viewport{outline:0 none}\\n\"],\n encapsulation: 2\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Table, [{\n type: Component,\n args: [{\n selector: 'p-table',\n template: `\n