{"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
\n
\n \n
\n
\n \n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n\n
\n \n
\n\n
\n \n \n
\n `,\n providers: [TableService],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\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 }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: TableService\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.FilterService\n }, {\n type: i1.OverlayService\n }];\n }, {\n frozenColumns: [{\n type: Input\n }],\n frozenValue: [{\n type: Input\n }],\n style: [{\n type: Input\n }],\n styleClass: [{\n type: Input\n }],\n tableStyle: [{\n type: Input\n }],\n tableStyleClass: [{\n type: Input\n }],\n paginator: [{\n type: Input\n }],\n pageLinks: [{\n type: Input\n }],\n rowsPerPageOptions: [{\n type: Input\n }],\n alwaysShowPaginator: [{\n type: Input\n }],\n paginatorPosition: [{\n type: Input\n }],\n paginatorDropdownAppendTo: [{\n type: Input\n }],\n paginatorDropdownScrollHeight: [{\n type: Input\n }],\n currentPageReportTemplate: [{\n type: Input\n }],\n showCurrentPageReport: [{\n type: Input\n }],\n showJumpToPageDropdown: [{\n type: Input\n }],\n showJumpToPageInput: [{\n type: Input\n }],\n showFirstLastIcon: [{\n type: Input\n }],\n showPageLinks: [{\n type: Input\n }],\n defaultSortOrder: [{\n type: Input\n }],\n sortMode: [{\n type: Input\n }],\n resetPageOnSort: [{\n type: Input\n }],\n selectionMode: [{\n type: Input\n }],\n selectionChange: [{\n type: Output\n }],\n contextMenuSelection: [{\n type: Input\n }],\n contextMenuSelectionChange: [{\n type: Output\n }],\n contextMenuSelectionMode: [{\n type: Input\n }],\n dataKey: [{\n type: Input\n }],\n metaKeySelection: [{\n type: Input\n }],\n rowTrackBy: [{\n type: Input\n }],\n lazy: [{\n type: Input\n }],\n lazyLoadOnInit: [{\n type: Input\n }],\n compareSelectionBy: [{\n type: Input\n }],\n csvSeparator: [{\n type: Input\n }],\n exportFilename: [{\n type: Input\n }],\n filters: [{\n type: Input\n }],\n globalFilterFields: [{\n type: Input\n }],\n filterDelay: [{\n type: Input\n }],\n filterLocale: [{\n type: Input\n }],\n expandedRowKeys: [{\n type: Input\n }],\n editingRowKeys: [{\n type: Input\n }],\n rowExpandMode: [{\n type: Input\n }],\n scrollable: [{\n type: Input\n }],\n scrollDirection: [{\n type: Input\n }],\n rowGroupMode: [{\n type: Input\n }],\n scrollHeight: [{\n type: Input\n }],\n virtualScroll: [{\n type: Input\n }],\n virtualScrollDelay: [{\n type: Input\n }],\n virtualRowHeight: [{\n type: Input\n }],\n frozenWidth: [{\n type: Input\n }],\n responsive: [{\n type: Input\n }],\n contextMenu: [{\n type: Input\n }],\n resizableColumns: [{\n type: Input\n }],\n columnResizeMode: [{\n type: Input\n }],\n reorderableColumns: [{\n type: Input\n }],\n loading: [{\n type: Input\n }],\n loadingIcon: [{\n type: Input\n }],\n showLoader: [{\n type: Input\n }],\n rowHover: [{\n type: Input\n }],\n customSort: [{\n type: Input\n }],\n showInitialSortBadge: [{\n type: Input\n }],\n autoLayout: [{\n type: Input\n }],\n exportFunction: [{\n type: Input\n }],\n stateKey: [{\n type: Input\n }],\n stateStorage: [{\n type: Input\n }],\n editMode: [{\n type: Input\n }],\n groupRowsBy: [{\n type: Input\n }],\n groupRowsByOrder: [{\n type: Input\n }],\n minBufferPx: [{\n type: Input\n }],\n maxBufferPx: [{\n type: Input\n }],\n responsiveLayout: [{\n type: Input\n }],\n breakpoint: [{\n type: Input\n }],\n onRowSelect: [{\n type: Output\n }],\n onRowUnselect: [{\n type: Output\n }],\n onPage: [{\n type: Output\n }],\n onSort: [{\n type: Output\n }],\n onFilter: [{\n type: Output\n }],\n onLazyLoad: [{\n type: Output\n }],\n onRowExpand: [{\n type: Output\n }],\n onRowCollapse: [{\n type: Output\n }],\n onContextMenuSelect: [{\n type: Output\n }],\n onColResize: [{\n type: Output\n }],\n onColReorder: [{\n type: Output\n }],\n onRowReorder: [{\n type: Output\n }],\n onEditInit: [{\n type: Output\n }],\n onEditComplete: [{\n type: Output\n }],\n onEditCancel: [{\n type: Output\n }],\n onHeaderCheckboxToggle: [{\n type: Output\n }],\n sortFunction: [{\n type: Output\n }],\n firstChange: [{\n type: Output\n }],\n rowsChange: [{\n type: Output\n }],\n onStateSave: [{\n type: Output\n }],\n onStateRestore: [{\n type: Output\n }],\n containerViewChild: [{\n type: ViewChild,\n args: ['container']\n }],\n resizeHelperViewChild: [{\n type: ViewChild,\n args: ['resizeHelper']\n }],\n reorderIndicatorUpViewChild: [{\n type: ViewChild,\n args: ['reorderIndicatorUp']\n }],\n reorderIndicatorDownViewChild: [{\n type: ViewChild,\n args: ['reorderIndicatorDown']\n }],\n wrapperViewChild: [{\n type: ViewChild,\n args: ['wrapper']\n }],\n tableViewChild: [{\n type: ViewChild,\n args: ['table']\n }],\n tableHeaderViewChild: [{\n type: ViewChild,\n args: ['tableHeader']\n }],\n virtualScrollBody: [{\n type: ViewChild,\n args: [CdkVirtualScrollViewport]\n }],\n templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }],\n value: [{\n type: Input\n }],\n columns: [{\n type: Input\n }],\n first: [{\n type: Input\n }],\n rows: [{\n type: Input\n }],\n totalRecords: [{\n type: Input\n }],\n sortField: [{\n type: Input\n }],\n sortOrder: [{\n type: Input\n }],\n multiSortMeta: [{\n type: Input\n }],\n selection: [{\n type: Input\n }]\n });\n})();\n\nclass TableBody {\n constructor(dt, tableService, cd, el) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.el = el;\n this.subscription = this.dt.tableService.valueSource$.subscribe(() => {\n if (this.dt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n\n get value() {\n return this._value;\n }\n\n set value(val) {\n this._value = val;\n\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n\n ngAfterViewInit() {\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n\n shouldRenderRowGroupHeader(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - 1];\n\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n }\n\n shouldRenderRowGroupFooter(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowData = value[i + 1];\n\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== nextRowFieldData;\n } else {\n return true;\n }\n }\n\n shouldRenderRowspan(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - 1];\n\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n } else {\n return true;\n }\n }\n\n calculateRowGroupSize(value, rowData, index) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = value[++index];\n\n if (nextRowData) {\n nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n } else {\n break;\n }\n }\n\n return groupRowSpan === 1 ? null : groupRowSpan;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n updateFrozenRowStickyPosition() {\n this.el.nativeElement.style.top = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling) + 'px';\n }\n\n updateFrozenRowGroupHeaderStickyPosition() {\n if (this.el.nativeElement.previousElementSibling) {\n let tableHeaderHeight = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling);\n this.dt.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n }\n }\n\n}\n\nTableBody.ɵfac = function TableBody_Factory(t) {\n return new (t || TableBody)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n};\n\nTableBody.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TableBody,\n selectors: [[\"\", \"pTableBody\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n columns: [\"pTableBody\", \"columns\"],\n template: [\"pTableBodyTemplate\", \"template\"],\n value: \"value\",\n frozen: \"frozen\",\n frozenRows: \"frozenRows\"\n },\n attrs: _c10,\n decls: 6,\n vars: 6,\n consts: [[4, \"ngIf\"], [\"ngFor\", \"\", 3, \"ngForOf\", \"ngForTrackBy\"], [\"role\", \"row\", 4, \"ngIf\"], [\"role\", \"row\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"cdkVirtualFor\", \"\", 3, \"cdkVirtualForOf\", \"cdkVirtualForTrackBy\", \"cdkVirtualForTemplateCacheSize\"]],\n template: function TableBody_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TableBody_ng_container_0_Template, 2, 2, \"ng-container\", 0);\n i0.ɵɵtemplate(1, TableBody_ng_container_1_Template, 2, 3, \"ng-container\", 0);\n i0.ɵɵtemplate(2, TableBody_ng_container_2_Template, 2, 2, \"ng-container\", 0);\n i0.ɵɵtemplate(3, TableBody_ng_container_3_Template, 2, 2, \"ng-container\", 0);\n i0.ɵɵtemplate(4, TableBody_ng_container_4_Template, 2, 5, \"ng-container\", 0);\n i0.ɵɵtemplate(5, TableBody_ng_container_5_Template, 2, 5, \"ng-container\", 0);\n }\n\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.dt.expandedRowTemplate && !ctx.dt.virtualScroll);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", !ctx.dt.expandedRowTemplate && ctx.dt.virtualScroll);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.dt.expandedRowTemplate && !(ctx.frozen && ctx.dt.frozenExpandedRowTemplate));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.dt.frozenExpandedRowTemplate && ctx.frozen);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.dt.loading);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.dt.isEmpty() && !ctx.dt.loading);\n }\n },\n directives: [i4.NgIf, i4.NgForOf, i4.NgTemplateOutlet, i3.CdkVirtualForOf],\n encapsulation: 2\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableBody, [{\n type: Component,\n args: [{\n selector: '[pTableBody]',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: TableService\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }];\n }, {\n columns: [{\n type: Input,\n args: [\"pTableBody\"]\n }],\n template: [{\n type: Input,\n args: [\"pTableBodyTemplate\"]\n }],\n value: [{\n type: Input\n }],\n frozen: [{\n type: Input\n }],\n frozenRows: [{\n type: Input\n }]\n });\n})();\n\nclass RowGroupHeader {\n constructor(dt) {\n this.dt = dt;\n }\n\n get getFrozenRowGroupHeaderStickyPosition() {\n return this.dt.rowGroupHeaderStyleObject ? this.dt.rowGroupHeaderStyleObject.top : '';\n }\n\n}\n\nRowGroupHeader.ɵfac = function RowGroupHeader_Factory(t) {\n return new (t || RowGroupHeader)(i0.ɵɵdirectiveInject(Table));\n};\n\nRowGroupHeader.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RowGroupHeader,\n selectors: [[\"\", \"pRowGroupHeader\", \"\"]],\n hostAttrs: [1, \"p-rowgroup-header\", \"p-element\"],\n hostVars: 2,\n hostBindings: function RowGroupHeader_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"top\", ctx.getFrozenRowGroupHeaderStickyPosition);\n }\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RowGroupHeader, [{\n type: Directive,\n args: [{\n selector: '[pRowGroupHeader]',\n host: {\n 'class': 'p-rowgroup-header p-element',\n '[style.top]': \"getFrozenRowGroupHeaderStickyPosition\"\n }\n }]\n }], function () {\n return [{\n type: Table\n }];\n }, null);\n})();\n\nclass FrozenColumn {\n constructor(el) {\n this.el = el;\n this.alignFrozen = \"left\";\n this._frozen = true;\n }\n\n get frozen() {\n return this._frozen;\n }\n\n set frozen(val) {\n this._frozen = val;\n this.updateStickyPosition();\n }\n\n ngAfterViewInit() {\n this.updateStickyPosition();\n }\n\n updateStickyPosition() {\n if (this._frozen) {\n if (this.alignFrozen === 'right') {\n let right = 0;\n let next = this.el.nativeElement.nextElementSibling;\n\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right);\n }\n\n this.el.nativeElement.style.right = right + 'px';\n } else {\n let left = 0;\n let prev = this.el.nativeElement.previousElementSibling;\n\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left);\n }\n\n this.el.nativeElement.style.left = left + 'px';\n }\n\n let filterRow = this.el.nativeElement.parentElement.nextElementSibling;\n\n if (filterRow) {\n let index = DomHandler.index(this.el.nativeElement);\n\n if (filterRow.children && filterRow.children[index]) {\n filterRow.children[index].style.left = this.el.nativeElement.style.left;\n filterRow.children[index].style.right = this.el.nativeElement.style.right;\n }\n }\n }\n }\n\n}\n\nFrozenColumn.ɵfac = function FrozenColumn_Factory(t) {\n return new (t || FrozenColumn)(i0.ɵɵdirectiveInject(i0.ElementRef));\n};\n\nFrozenColumn.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FrozenColumn,\n selectors: [[\"\", \"pFrozenColumn\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostVars: 2,\n hostBindings: function FrozenColumn_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"p-frozen-column\", ctx.frozen);\n }\n },\n inputs: {\n frozen: \"frozen\",\n alignFrozen: \"alignFrozen\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FrozenColumn, [{\n type: Directive,\n args: [{\n selector: '[pFrozenColumn]',\n host: {\n 'class': 'p-element',\n '[class.p-frozen-column]': 'frozen'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, {\n frozen: [{\n type: Input\n }],\n alignFrozen: [{\n type: Input\n }]\n });\n})();\n\nclass SortableColumn {\n constructor(dt) {\n this.dt = dt;\n\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n\n updateSortState() {\n this.sorted = this.dt.isSorted(this.field);\n this.sortOrder = this.sorted ? this.dt.sortOrder === 1 ? 'ascending' : 'descending' : 'none';\n }\n\n onClick(event) {\n if (this.isEnabled() && !this.isFilterElement(event.target)) {\n this.updateSortState();\n this.dt.sort({\n originalEvent: event,\n field: this.field\n });\n DomHandler.clearSelection();\n }\n }\n\n onEnterKey(event) {\n this.onClick(event);\n }\n\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n\n isFilterElement(element) {\n return DomHandler.hasClass(element, 'pi-filter-icon') || DomHandler.hasClass(element, 'p-column-filter-menu-button');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\nSortableColumn.ɵfac = function SortableColumn_Factory(t) {\n return new (t || SortableColumn)(i0.ɵɵdirectiveInject(Table));\n};\n\nSortableColumn.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SortableColumn,\n selectors: [[\"\", \"pSortableColumn\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostVars: 7,\n hostBindings: function SortableColumn_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function SortableColumn_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n })(\"keydown.enter\", function SortableColumn_keydown_enter_HostBindingHandler($event) {\n return ctx.onEnterKey($event);\n });\n }\n\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.isEnabled() ? \"0\" : null)(\"role\", \"columnheader\")(\"aria-sort\", ctx.sortOrder);\n i0.ɵɵclassProp(\"p-sortable-column\", ctx.isEnabled())(\"p-highlight\", ctx.sorted);\n }\n },\n inputs: {\n field: [\"pSortableColumn\", \"field\"],\n pSortableColumnDisabled: \"pSortableColumnDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SortableColumn, [{\n type: Directive,\n args: [{\n selector: '[pSortableColumn]',\n host: {\n 'class': 'p-element',\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-highlight]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'sortOrder'\n }\n }]\n }], function () {\n return [{\n type: Table\n }];\n }, {\n field: [{\n type: Input,\n args: [\"pSortableColumn\"]\n }],\n pSortableColumnDisabled: [{\n type: Input\n }],\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }],\n onEnterKey: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }]\n });\n})();\n\nclass SortIcon {\n constructor(dt, cd) {\n this.dt = dt;\n this.cd = cd;\n this.subscription = this.dt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n });\n }\n\n ngOnInit() {\n this.updateSortState();\n }\n\n onClick(event) {\n event.preventDefault();\n }\n\n updateSortState() {\n if (this.dt.sortMode === 'single') {\n this.sortOrder = this.dt.isSorted(this.field) ? this.dt.sortOrder : 0;\n } else if (this.dt.sortMode === 'multiple') {\n let sortMeta = this.dt.getSortMeta(this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n\n this.cd.markForCheck();\n }\n\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dt._multiSortMeta;\n let index = -1;\n\n if (multiSortMeta && this.dt.sortMode === 'multiple' && (this.dt.showInitialSortBadge || multiSortMeta.length > 1)) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n let meta = multiSortMeta[i];\n\n if (meta.field === this.field || meta.field === this.field) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n return this.dt.groupRowsBy && index > -1 ? index : index + 1;\n }\n\n isMultiSorted() {\n return this.dt.sortMode === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\nSortIcon.ɵfac = function SortIcon_Factory(t) {\n return new (t || SortIcon)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\n\nSortIcon.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SortIcon,\n selectors: [[\"p-sortIcon\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n field: \"field\"\n },\n decls: 2,\n vars: 6,\n consts: [[1, \"p-sortable-column-icon\", \"pi\", \"pi-fw\", 3, \"ngClass\"], [\"class\", \"p-sortable-column-badge\", 4, \"ngIf\"], [1, \"p-sortable-column-badge\"]],\n template: function SortIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"i\", 0);\n i0.ɵɵtemplate(1, SortIcon_span_1_Template, 2, 1, \"span\", 1);\n }\n\n if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(2, _c16, ctx.sortOrder === 1, ctx.sortOrder === -1, ctx.sortOrder === 0));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.isMultiSorted());\n }\n },\n directives: [i4.NgClass, i4.NgIf],\n encapsulation: 2,\n changeDetection: 0\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SortIcon, [{\n type: Component,\n args: [{\n selector: 'p-sortIcon',\n template: `\n \n {{getBadgeValue()}}\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n field: [{\n type: Input\n }]\n });\n})();\n\nclass SelectableRow {\n constructor(dt, tableService) {\n this.dt = dt;\n this.tableService = tableService;\n\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n onTouchEnd(event) {\n if (this.isEnabled()) {\n this.dt.handleRowTouchEnd(event);\n }\n }\n\n onArrowDownKeyDown(event) {\n if (!this.isEnabled()) {\n return;\n }\n\n const row = event.currentTarget;\n const nextRow = this.findNextSelectableRow(row);\n\n if (nextRow) {\n nextRow.focus();\n }\n\n event.preventDefault();\n }\n\n onArrowUpKeyDown(event) {\n if (!this.isEnabled()) {\n return;\n }\n\n const row = event.currentTarget;\n const prevRow = this.findPrevSelectableRow(row);\n\n if (prevRow) {\n prevRow.focus();\n }\n\n event.preventDefault();\n }\n\n onEnterKeyDown(event) {\n if (!this.isEnabled()) {\n return;\n }\n\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n\n onPageDownKeyDown() {\n if (this.dt.virtualScroll) {\n this.dt.virtualScrollBody.elementRef.nativeElement.focus();\n }\n }\n\n onSpaceKeydown() {\n if (this.dt.virtualScroll && !this.dt.editingCell) {\n this.dt.virtualScrollBody.elementRef.nativeElement.focus();\n }\n }\n\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n\n if (nextRow) {\n if (DomHandler.hasClass(nextRow, 'p-selectable-row')) return nextRow;else return this.findNextSelectableRow(nextRow);\n } else {\n return null;\n }\n }\n\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n\n if (prevRow) {\n if (DomHandler.hasClass(prevRow, 'p-selectable-row')) return prevRow;else return this.findPrevSelectableRow(prevRow);\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\nSelectableRow.ɵfac = function SelectableRow_Factory(t) {\n return new (t || SelectableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService));\n};\n\nSelectableRow.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SelectableRow,\n selectors: [[\"\", \"pSelectableRow\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostVars: 5,\n hostBindings: function SelectableRow_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function SelectableRow_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n })(\"touchend\", function SelectableRow_touchend_HostBindingHandler($event) {\n return ctx.onTouchEnd($event);\n })(\"keydown.arrowdown\", function SelectableRow_keydown_arrowdown_HostBindingHandler($event) {\n return ctx.onArrowDownKeyDown($event);\n })(\"keydown.arrowup\", function SelectableRow_keydown_arrowup_HostBindingHandler($event) {\n return ctx.onArrowUpKeyDown($event);\n })(\"keydown.enter\", function SelectableRow_keydown_enter_HostBindingHandler($event) {\n return ctx.onEnterKeyDown($event);\n })(\"keydown.shift.enter\", function SelectableRow_keydown_shift_enter_HostBindingHandler($event) {\n return ctx.onEnterKeyDown($event);\n })(\"keydown.meta.enter\", function SelectableRow_keydown_meta_enter_HostBindingHandler($event) {\n return ctx.onEnterKeyDown($event);\n })(\"keydown.pagedown\", function SelectableRow_keydown_pagedown_HostBindingHandler() {\n return ctx.onPageDownKeyDown();\n })(\"keydown.pageup\", function SelectableRow_keydown_pageup_HostBindingHandler() {\n return ctx.onPageDownKeyDown();\n })(\"keydown.home\", function SelectableRow_keydown_home_HostBindingHandler() {\n return ctx.onPageDownKeyDown();\n })(\"keydown.end\", function SelectableRow_keydown_end_HostBindingHandler() {\n return ctx.onPageDownKeyDown();\n })(\"keydown.space\", function SelectableRow_keydown_space_HostBindingHandler() {\n return ctx.onSpaceKeydown();\n });\n }\n\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.isEnabled() ? 0 : undefined);\n i0.ɵɵclassProp(\"p-selectable-row\", ctx.isEnabled())(\"p-highlight\", ctx.selected);\n }\n },\n inputs: {\n data: [\"pSelectableRow\", \"data\"],\n index: [\"pSelectableRowIndex\", \"index\"],\n pSelectableRowDisabled: \"pSelectableRowDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectableRow, [{\n type: Directive,\n args: [{\n selector: '[pSelectableRow]',\n host: {\n 'class': 'p-element',\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: TableService\n }];\n }, {\n data: [{\n type: Input,\n args: [\"pSelectableRow\"]\n }],\n index: [{\n type: Input,\n args: [\"pSelectableRowIndex\"]\n }],\n pSelectableRowDisabled: [{\n type: Input\n }],\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }],\n onTouchEnd: [{\n type: HostListener,\n args: ['touchend', ['$event']]\n }],\n onArrowDownKeyDown: [{\n type: HostListener,\n args: ['keydown.arrowdown', ['$event']]\n }],\n onArrowUpKeyDown: [{\n type: HostListener,\n args: ['keydown.arrowup', ['$event']]\n }],\n onEnterKeyDown: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.shift.enter', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.meta.enter', ['$event']]\n }],\n onPageDownKeyDown: [{\n type: HostListener,\n args: ['keydown.pagedown']\n }, {\n type: HostListener,\n args: ['keydown.pageup']\n }, {\n type: HostListener,\n args: ['keydown.home']\n }, {\n type: HostListener,\n args: ['keydown.end']\n }],\n onSpaceKeydown: [{\n type: HostListener,\n args: ['keydown.space']\n }]\n });\n})();\n\nclass SelectableRowDblClick {\n constructor(dt, tableService) {\n this.dt = dt;\n this.tableService = tableService;\n\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\nSelectableRowDblClick.ɵfac = function SelectableRowDblClick_Factory(t) {\n return new (t || SelectableRowDblClick)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService));\n};\n\nSelectableRowDblClick.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SelectableRowDblClick,\n selectors: [[\"\", \"pSelectableRowDblClick\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostVars: 4,\n hostBindings: function SelectableRowDblClick_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"dblclick\", function SelectableRowDblClick_dblclick_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n\n if (rf & 2) {\n i0.ɵɵclassProp(\"p-selectable-row\", ctx.isEnabled())(\"p-highlight\", ctx.selected);\n }\n },\n inputs: {\n data: [\"pSelectableRowDblClick\", \"data\"],\n index: [\"pSelectableRowIndex\", \"index\"],\n pSelectableRowDisabled: \"pSelectableRowDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectableRowDblClick, [{\n type: Directive,\n args: [{\n selector: '[pSelectableRowDblClick]',\n host: {\n 'class': 'p-element',\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: TableService\n }];\n }, {\n data: [{\n type: Input,\n args: [\"pSelectableRowDblClick\"]\n }],\n index: [{\n type: Input,\n args: [\"pSelectableRowIndex\"]\n }],\n pSelectableRowDisabled: [{\n type: Input\n }],\n onClick: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }]\n });\n})();\n\nclass ContextMenuRow {\n constructor(dt, tableService, el) {\n this.dt = dt;\n this.tableService = tableService;\n this.el = el;\n\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.contextMenuSource$.subscribe(data => {\n this.selected = this.dt.equals(this.data, data);\n });\n }\n }\n\n onContextMenu(event) {\n if (this.isEnabled()) {\n this.dt.handleRowRightClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n this.el.nativeElement.focus();\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pContextMenuRowDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\nContextMenuRow.ɵfac = function ContextMenuRow_Factory(t) {\n return new (t || ContextMenuRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ElementRef));\n};\n\nContextMenuRow.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ContextMenuRow,\n selectors: [[\"\", \"pContextMenuRow\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostVars: 3,\n hostBindings: function ContextMenuRow_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"contextmenu\", function ContextMenuRow_contextmenu_HostBindingHandler($event) {\n return ctx.onContextMenu($event);\n });\n }\n\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.isEnabled() ? 0 : undefined);\n i0.ɵɵclassProp(\"p-highlight-contextmenu\", ctx.selected);\n }\n },\n inputs: {\n data: [\"pContextMenuRow\", \"data\"],\n index: [\"pContextMenuRowIndex\", \"index\"],\n pContextMenuRowDisabled: \"pContextMenuRowDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ContextMenuRow, [{\n type: Directive,\n args: [{\n selector: '[pContextMenuRow]',\n host: {\n 'class': 'p-element',\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: TableService\n }, {\n type: i0.ElementRef\n }];\n }, {\n data: [{\n type: Input,\n args: [\"pContextMenuRow\"]\n }],\n index: [{\n type: Input,\n args: [\"pContextMenuRowIndex\"]\n }],\n pContextMenuRowDisabled: [{\n type: Input\n }],\n onContextMenu: [{\n type: HostListener,\n args: ['contextmenu', ['$event']]\n }]\n });\n})();\n\nclass RowToggler {\n constructor(dt) {\n this.dt = dt;\n }\n\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n }\n }\n\n isEnabled() {\n return this.pRowTogglerDisabled !== true;\n }\n\n}\n\nRowToggler.ɵfac = function RowToggler_Factory(t) {\n return new (t || RowToggler)(i0.ɵɵdirectiveInject(Table));\n};\n\nRowToggler.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RowToggler,\n selectors: [[\"\", \"pRowToggler\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function RowToggler_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function RowToggler_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n },\n inputs: {\n data: [\"pRowToggler\", \"data\"],\n pRowTogglerDisabled: \"pRowTogglerDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RowToggler, [{\n type: Directive,\n args: [{\n selector: '[pRowToggler]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }];\n }, {\n data: [{\n type: Input,\n args: ['pRowToggler']\n }],\n pRowTogglerDisabled: [{\n type: Input\n }],\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }]\n });\n})();\n\nclass ResizableColumn {\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-resizable-column');\n this.resizer = document.createElement('span');\n this.resizer.className = 'p-column-resizer';\n this.el.nativeElement.appendChild(this.resizer);\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.onMouseDown.bind(this);\n this.resizer.addEventListener('mousedown', this.resizerMouseDownListener);\n });\n }\n }\n\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.onDocumentMouseMove.bind(this);\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseUpListener = this.onDocumentMouseUp.bind(this);\n document.addEventListener('mouseup', this.documentMouseUpListener);\n });\n }\n\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n }\n\n onMouseDown(event) {\n if (event.which === 1) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n }\n\n onDocumentMouseMove(event) {\n this.dt.onColumnResize(event);\n }\n\n onDocumentMouseUp(event) {\n this.dt.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n\n isEnabled() {\n return this.pResizableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizer.removeEventListener('mousedown', this.resizerMouseDownListener);\n }\n\n this.unbindDocumentEvents();\n }\n\n}\n\nResizableColumn.ɵfac = function ResizableColumn_Factory(t) {\n return new (t || ResizableColumn)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n};\n\nResizableColumn.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ResizableColumn,\n selectors: [[\"\", \"pResizableColumn\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n pResizableColumnDisabled: \"pResizableColumnDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ResizableColumn, [{\n type: Directive,\n args: [{\n selector: '[pResizableColumn]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }];\n }, {\n pResizableColumnDisabled: [{\n type: Input\n }]\n });\n})();\n\nclass ReorderableColumn {\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.onMouseDown.bind(this);\n this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n this.dragStartListener = this.onDragStart.bind(this);\n this.el.nativeElement.addEventListener('dragstart', this.dragStartListener);\n this.dragOverListener = this.onDragEnter.bind(this);\n this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n this.dragEnterListener = this.onDragEnter.bind(this);\n this.el.nativeElement.addEventListener('dragenter', this.dragEnterListener);\n this.dragLeaveListener = this.onDragLeave.bind(this);\n this.el.nativeElement.addEventListener('dragleave', this.dragLeaveListener);\n });\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n document.removeEventListener('mousedown', this.mouseDownListener);\n this.mouseDownListener = null;\n }\n\n if (this.dragOverListener) {\n document.removeEventListener('dragover', this.dragOverListener);\n this.dragOverListener = null;\n }\n\n if (this.dragEnterListener) {\n document.removeEventListener('dragenter', this.dragEnterListener);\n this.dragEnterListener = null;\n }\n\n if (this.dragEnterListener) {\n document.removeEventListener('dragenter', this.dragEnterListener);\n this.dragEnterListener = null;\n }\n\n if (this.dragLeaveListener) {\n document.removeEventListener('dragleave', this.dragLeaveListener);\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-column-resizer')) this.el.nativeElement.draggable = false;else this.el.nativeElement.draggable = true;\n }\n\n onDragStart(event) {\n this.dt.onColumnDragStart(event, this.el.nativeElement);\n }\n\n onDragOver(event) {\n event.preventDefault();\n }\n\n onDragEnter(event) {\n this.dt.onColumnDragEnter(event, this.el.nativeElement);\n }\n\n onDragLeave(event) {\n this.dt.onColumnDragLeave(event);\n }\n\n onDrop(event) {\n if (this.isEnabled()) {\n this.dt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n\n isEnabled() {\n return this.pReorderableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n this.unbindEvents();\n }\n\n}\n\nReorderableColumn.ɵfac = function ReorderableColumn_Factory(t) {\n return new (t || ReorderableColumn)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n};\n\nReorderableColumn.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ReorderableColumn,\n selectors: [[\"\", \"pReorderableColumn\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function ReorderableColumn_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"drop\", function ReorderableColumn_drop_HostBindingHandler($event) {\n return ctx.onDrop($event);\n });\n }\n },\n inputs: {\n pReorderableColumnDisabled: \"pReorderableColumnDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ReorderableColumn, [{\n type: Directive,\n args: [{\n selector: '[pReorderableColumn]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }];\n }, {\n pReorderableColumnDisabled: [{\n type: Input\n }],\n onDrop: [{\n type: HostListener,\n args: ['drop', ['$event']]\n }]\n });\n})();\n\nclass EditableColumn {\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.selfClick = true;\n\n if (this.dt.editingCell) {\n if (this.dt.editingCell !== this.el.nativeElement) {\n if (!this.dt.isEditingCellValid()) {\n return;\n }\n\n this.closeEditingCell(true, event);\n this.openCell();\n }\n } else {\n this.openCell();\n }\n }\n }\n\n openCell() {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, this.rowIndex);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.dt.onEditInit.emit({\n field: this.field,\n data: this.data,\n index: this.rowIndex\n });\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusCellSelector = this.pFocusCellSelector || 'input, textarea, select';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n });\n\n this.overlayEventListener = e => {\n if (this.el && this.el.nativeElement.contains(e.target)) {\n this.dt.selfClick = true;\n }\n };\n\n this.dt.overlaySubscription = this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener);\n }\n\n closeEditingCell(completed, event) {\n if (completed) this.dt.onEditComplete.emit({\n field: this.dt.editingCellField,\n data: this.dt.editingCellData,\n originalEvent: event,\n index: this.dt.editingCellRowIndex\n });else this.dt.onEditCancel.emit({\n field: this.dt.editingCellField,\n data: this.dt.editingCellData,\n originalEvent: event,\n index: this.dt.editingCellRowIndex\n });\n DomHandler.removeClass(this.dt.editingCell, 'p-cell-editing');\n this.dt.editingCell = null;\n this.dt.editingCellData = null;\n this.dt.editingCellField = null;\n this.dt.unbindDocumentEditListener();\n\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n\n onEnterKeyDown(event) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n event.preventDefault();\n }\n }\n\n onEscapeKeyDown(event) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(false, event);\n }\n\n event.preventDefault();\n }\n }\n\n onShiftKeyDown(event) {\n if (this.isEnabled()) {\n if (event.shiftKey) this.moveToPreviousCell(event);else {\n this.moveToNextCell(event);\n }\n }\n }\n\n onArrowDown(event) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findNextEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n onArrowUp(event) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findPrevEditableColumnByIndex(currentCell, cellIndex);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n\n event.preventDefault();\n }\n }\n }\n\n onArrowLeft(event) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n\n onArrowRight(event) {\n if (this.isEnabled()) {\n this.moveToNextCell(event);\n }\n }\n\n findCell(element) {\n if (element) {\n let cell = element;\n\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n\n return cell;\n } else {\n return null;\n }\n }\n\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column')) return prevCell;else return this.findPreviousEditableColumn(prevCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column')) return nextCell;else return this.findNextEditableColumn(nextCell);\n } else {\n return null;\n }\n }\n\n findNextEditableColumnByIndex(cell, index) {\n let nextRow = cell.parentElement.nextElementSibling;\n\n if (nextRow) {\n let nextCell = nextRow.children[index];\n\n if (nextCell && DomHandler.hasClass(nextCell, 'p-editable-column')) {\n return nextCell;\n }\n\n return null;\n } else {\n return null;\n }\n }\n\n findPrevEditableColumnByIndex(cell, index) {\n let prevRow = cell.parentElement.previousElementSibling;\n\n if (prevRow) {\n let prevCell = prevRow.children[index];\n\n if (prevCell && DomHandler.hasClass(prevCell, 'p-editable-column')) {\n return prevCell;\n }\n\n return null;\n } else {\n return null;\n }\n }\n\n isEnabled() {\n return this.pEditableColumnDisabled !== true;\n }\n\n ngOnDestroy() {\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n\n}\n\nEditableColumn.ɵfac = function EditableColumn_Factory(t) {\n return new (t || EditableColumn)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n};\n\nEditableColumn.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: EditableColumn,\n selectors: [[\"\", \"pEditableColumn\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function EditableColumn_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function EditableColumn_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n })(\"keydown.enter\", function EditableColumn_keydown_enter_HostBindingHandler($event) {\n return ctx.onEnterKeyDown($event);\n })(\"keydown.escape\", function EditableColumn_keydown_escape_HostBindingHandler($event) {\n return ctx.onEscapeKeyDown($event);\n })(\"keydown.tab\", function EditableColumn_keydown_tab_HostBindingHandler($event) {\n return ctx.onShiftKeyDown($event);\n })(\"keydown.shift.tab\", function EditableColumn_keydown_shift_tab_HostBindingHandler($event) {\n return ctx.onShiftKeyDown($event);\n })(\"keydown.meta.tab\", function EditableColumn_keydown_meta_tab_HostBindingHandler($event) {\n return ctx.onShiftKeyDown($event);\n })(\"keydown.arrowdown\", function EditableColumn_keydown_arrowdown_HostBindingHandler($event) {\n return ctx.onArrowDown($event);\n })(\"keydown.arrowup\", function EditableColumn_keydown_arrowup_HostBindingHandler($event) {\n return ctx.onArrowUp($event);\n })(\"keydown.arrowleft\", function EditableColumn_keydown_arrowleft_HostBindingHandler($event) {\n return ctx.onArrowLeft($event);\n })(\"keydown.arrowright\", function EditableColumn_keydown_arrowright_HostBindingHandler($event) {\n return ctx.onArrowRight($event);\n });\n }\n },\n inputs: {\n data: [\"pEditableColumn\", \"data\"],\n field: [\"pEditableColumnField\", \"field\"],\n rowIndex: [\"pEditableColumnRowIndex\", \"rowIndex\"],\n pEditableColumnDisabled: \"pEditableColumnDisabled\",\n pFocusCellSelector: \"pFocusCellSelector\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EditableColumn, [{\n type: Directive,\n args: [{\n selector: '[pEditableColumn]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }];\n }, {\n data: [{\n type: Input,\n args: [\"pEditableColumn\"]\n }],\n field: [{\n type: Input,\n args: [\"pEditableColumnField\"]\n }],\n rowIndex: [{\n type: Input,\n args: [\"pEditableColumnRowIndex\"]\n }],\n pEditableColumnDisabled: [{\n type: Input\n }],\n pFocusCellSelector: [{\n type: Input\n }],\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }],\n onEnterKeyDown: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }],\n onEscapeKeyDown: [{\n type: HostListener,\n args: ['keydown.escape', ['$event']]\n }],\n onShiftKeyDown: [{\n type: HostListener,\n args: ['keydown.tab', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.shift.tab', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.meta.tab', ['$event']]\n }],\n onArrowDown: [{\n type: HostListener,\n args: ['keydown.arrowdown', ['$event']]\n }],\n onArrowUp: [{\n type: HostListener,\n args: ['keydown.arrowup', ['$event']]\n }],\n onArrowLeft: [{\n type: HostListener,\n args: ['keydown.arrowleft', ['$event']]\n }],\n onArrowRight: [{\n type: HostListener,\n args: ['keydown.arrowright', ['$event']]\n }]\n });\n})();\n\nclass EditableRow {\n constructor(el) {\n this.el = el;\n }\n\n isEnabled() {\n return this.pEditableRowDisabled !== true;\n }\n\n}\n\nEditableRow.ɵfac = function EditableRow_Factory(t) {\n return new (t || EditableRow)(i0.ɵɵdirectiveInject(i0.ElementRef));\n};\n\nEditableRow.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: EditableRow,\n selectors: [[\"\", \"pEditableRow\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n data: [\"pEditableRow\", \"data\"],\n pEditableRowDisabled: \"pEditableRowDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EditableRow, [{\n type: Directive,\n args: [{\n selector: '[pEditableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, {\n data: [{\n type: Input,\n args: [\"pEditableRow\"]\n }],\n pEditableRowDisabled: [{\n type: Input\n }]\n });\n})();\n\nclass InitEditableRow {\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n\n onClick(event) {\n this.dt.initRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n\n}\n\nInitEditableRow.ɵfac = function InitEditableRow_Factory(t) {\n return new (t || InitEditableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(EditableRow));\n};\n\nInitEditableRow.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InitEditableRow,\n selectors: [[\"\", \"pInitEditableRow\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function InitEditableRow_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function InitEditableRow_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InitEditableRow, [{\n type: Directive,\n args: [{\n selector: '[pInitEditableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: EditableRow\n }];\n }, {\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }]\n });\n})();\n\nclass SaveEditableRow {\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n\n onClick(event) {\n this.dt.saveRowEdit(this.editableRow.data, this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n\n}\n\nSaveEditableRow.ɵfac = function SaveEditableRow_Factory(t) {\n return new (t || SaveEditableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(EditableRow));\n};\n\nSaveEditableRow.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SaveEditableRow,\n selectors: [[\"\", \"pSaveEditableRow\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function SaveEditableRow_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function SaveEditableRow_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SaveEditableRow, [{\n type: Directive,\n args: [{\n selector: '[pSaveEditableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: EditableRow\n }];\n }, {\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }]\n });\n})();\n\nclass CancelEditableRow {\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n\n onClick(event) {\n this.dt.cancelRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n\n}\n\nCancelEditableRow.ɵfac = function CancelEditableRow_Factory(t) {\n return new (t || CancelEditableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(EditableRow));\n};\n\nCancelEditableRow.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CancelEditableRow,\n selectors: [[\"\", \"pCancelEditableRow\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function CancelEditableRow_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function CancelEditableRow_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CancelEditableRow, [{\n type: Directive,\n args: [{\n selector: '[pCancelEditableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: EditableRow\n }];\n }, {\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }]\n });\n})();\n\nclass CellEditor {\n constructor(dt, editableColumn, editableRow) {\n this.dt = dt;\n this.editableColumn = editableColumn;\n this.editableRow = editableRow;\n }\n\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n\n get editing() {\n return this.dt.editingCell && this.editableColumn && this.dt.editingCell === this.editableColumn.el.nativeElement || this.editableRow && this.dt.editMode === 'row' && this.dt.isRowEditing(this.editableRow.data);\n }\n\n}\n\nCellEditor.ɵfac = function CellEditor_Factory(t) {\n return new (t || CellEditor)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(EditableColumn, 8), i0.ɵɵdirectiveInject(EditableRow, 8));\n};\n\nCellEditor.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CellEditor,\n selectors: [[\"p-cellEditor\"]],\n contentQueries: function CellEditor_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 hostAttrs: [1, \"p-element\"],\n decls: 2,\n vars: 2,\n consts: [[4, \"ngIf\"], [4, \"ngTemplateOutlet\"]],\n template: function CellEditor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, CellEditor_ng_container_0_Template, 2, 1, \"ng-container\", 0);\n i0.ɵɵtemplate(1, CellEditor_ng_container_1_Template, 2, 1, \"ng-container\", 0);\n }\n\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.editing);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", !ctx.editing);\n }\n },\n directives: [i4.NgIf, i4.NgTemplateOutlet],\n encapsulation: 2\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CellEditor, [{\n type: Component,\n args: [{\n selector: 'p-cellEditor',\n template: `\n \n \n \n \n \n \n `,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: EditableColumn,\n decorators: [{\n type: Optional\n }]\n }, {\n type: EditableRow,\n decorators: [{\n type: Optional\n }]\n }];\n }, {\n templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }]\n });\n})();\n\nclass TableRadioButton {\n constructor(dt, tableService, cd) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event) {\n if (!this.disabled) {\n this.dt.toggleRowWithRadio({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\nTableRadioButton.ɵfac = function TableRadioButton_Factory(t) {\n return new (t || TableRadioButton)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\n\nTableRadioButton.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TableRadioButton,\n selectors: [[\"p-tableRadioButton\"]],\n viewQuery: function TableRadioButton_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c17, 5);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.boxViewChild = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n disabled: \"disabled\",\n value: \"value\",\n index: \"index\",\n inputId: \"inputId\",\n name: \"name\",\n ariaLabel: \"ariaLabel\"\n },\n decls: 6,\n vars: 10,\n consts: [[1, \"p-radiobutton\", \"p-component\", 3, \"click\"], [1, \"p-hidden-accessible\"], [\"type\", \"radio\", 3, \"checked\", \"disabled\", \"focus\", \"blur\"], [\"role\", \"radio\", 3, \"ngClass\"], [\"box\", \"\"], [1, \"p-radiobutton-icon\"]],\n template: function TableRadioButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function TableRadioButton_Template_div_click_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵelementStart(2, \"input\", 2);\n i0.ɵɵlistener(\"focus\", function TableRadioButton_Template_input_focus_2_listener() {\n return ctx.onFocus();\n })(\"blur\", function TableRadioButton_Template_input_blur_2_listener() {\n return ctx.onBlur();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 3, 4);\n i0.ɵɵelement(5, \"div\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"name\", ctx.name)(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(7, _c18, ctx.checked, ctx.disabled));\n i0.ɵɵattribute(\"aria-checked\", ctx.checked);\n }\n },\n directives: [i4.NgClass],\n encapsulation: 2,\n changeDetection: 0\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableRadioButton, [{\n type: Component,\n args: [{\n selector: 'p-tableRadioButton',\n template: `\n
\n
\n \n
\n
\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: TableService\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n disabled: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n index: [{\n type: Input\n }],\n inputId: [{\n type: Input\n }],\n name: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input\n }],\n boxViewChild: [{\n type: ViewChild,\n args: ['box']\n }]\n });\n})();\n\nclass TableCheckbox {\n constructor(dt, tableService, cd) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.cd.markForCheck();\n });\n }\n\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n\n onClick(event) {\n if (!this.disabled) {\n this.dt.toggleRowWithCheckbox({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n\nTableCheckbox.ɵfac = function TableCheckbox_Factory(t) {\n return new (t || TableCheckbox)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\n\nTableCheckbox.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TableCheckbox,\n selectors: [[\"p-tableCheckbox\"]],\n viewQuery: function TableCheckbox_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c17, 5);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.boxViewChild = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n disabled: \"disabled\",\n value: \"value\",\n index: \"index\",\n inputId: \"inputId\",\n name: \"name\",\n required: \"required\",\n ariaLabel: \"ariaLabel\"\n },\n decls: 6,\n vars: 14,\n consts: [[1, \"p-checkbox\", \"p-component\", 3, \"click\"], [1, \"p-hidden-accessible\"], [\"type\", \"checkbox\", 3, \"checked\", \"disabled\", \"focus\", \"blur\"], [\"role\", \"checkbox\", 3, \"ngClass\"], [\"box\", \"\"], [1, \"p-checkbox-icon\", 3, \"ngClass\"]],\n template: function TableCheckbox_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function TableCheckbox_Template_div_click_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵelementStart(2, \"input\", 2);\n i0.ɵɵlistener(\"focus\", function TableCheckbox_Template_input_focus_2_listener() {\n return ctx.onFocus();\n })(\"blur\", function TableCheckbox_Template_input_blur_2_listener() {\n return ctx.onBlur();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 3, 4);\n i0.ɵɵelement(5, \"span\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"name\", ctx.name)(\"required\", ctx.required)(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(9, _c19, ctx.checked, ctx.disabled));\n i0.ɵɵattribute(\"aria-checked\", ctx.checked);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(12, _c20, ctx.checked));\n }\n },\n directives: [i4.NgClass],\n encapsulation: 2,\n changeDetection: 0\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableCheckbox, [{\n type: Component,\n args: [{\n selector: 'p-tableCheckbox',\n template: `\n
\n
\n \n
\n
\n \n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: TableService\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n disabled: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n index: [{\n type: Input\n }],\n inputId: [{\n type: Input\n }],\n name: [{\n type: Input\n }],\n required: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input\n }],\n boxViewChild: [{\n type: ViewChild,\n args: ['box']\n }]\n });\n})();\n\nclass TableHeaderCheckbox {\n constructor(dt, tableService, cd) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n onClick(event) {\n if (!this.disabled) {\n if (this.dt.value && this.dt.value.length > 0) {\n this.dt.toggleRowsWithCheckbox(event, !this.checked);\n }\n }\n\n DomHandler.clearSelection();\n }\n\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n\n isDisabled() {\n return this.disabled || !this.dt.value || !this.dt.value.length;\n }\n\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n\n updateCheckedState() {\n this.cd.markForCheck();\n\n if (this.dt.filteredValue && !this.dt.lazy) {\n const val = this.dt.filteredValue;\n return val && val.length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.isAllFilteredValuesChecked();\n } else {\n const val = this.dt.value;\n const length = this.dt.lazy ? this.dt._totalRecords : val ? val.length : 0;\n return val && length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.dt.selection.length === length;\n }\n }\n\n isAllFilteredValuesChecked() {\n if (!this.dt.filteredValue) {\n return false;\n } else {\n for (let rowData of this.dt.filteredValue) {\n if (!this.dt.isSelected(rowData)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n}\n\nTableHeaderCheckbox.ɵfac = function TableHeaderCheckbox_Factory(t) {\n return new (t || TableHeaderCheckbox)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(TableService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\n\nTableHeaderCheckbox.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TableHeaderCheckbox,\n selectors: [[\"p-tableHeaderCheckbox\"]],\n viewQuery: function TableHeaderCheckbox_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c17, 5);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.boxViewChild = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n disabled: \"disabled\",\n inputId: \"inputId\",\n name: \"name\",\n ariaLabel: \"ariaLabel\"\n },\n decls: 7,\n vars: 13,\n consts: [[1, \"p-checkbox\", \"p-component\", 3, \"click\"], [1, \"p-hidden-accessible\"], [\"type\", \"checkbox\", 3, \"checked\", \"disabled\", \"focus\", \"blur\"], [\"cb\", \"\"], [\"role\", \"checkbox\", 3, \"ngClass\"], [\"box\", \"\"], [1, \"p-checkbox-icon\", 3, \"ngClass\"]],\n template: function TableHeaderCheckbox_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function TableHeaderCheckbox_Template_div_click_0_listener($event) {\n return ctx.onClick($event);\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵelementStart(2, \"input\", 2, 3);\n i0.ɵɵlistener(\"focus\", function TableHeaderCheckbox_Template_input_focus_2_listener() {\n return ctx.onFocus();\n })(\"blur\", function TableHeaderCheckbox_Template_input_blur_2_listener() {\n return ctx.onBlur();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 4, 5);\n i0.ɵɵelement(6, \"span\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"checked\", ctx.checked)(\"disabled\", ctx.isDisabled());\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"name\", ctx.name)(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(8, _c21, ctx.checked, ctx.isDisabled()));\n i0.ɵɵattribute(\"aria-checked\", ctx.checked);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(11, _c20, ctx.checked));\n }\n },\n directives: [i4.NgClass],\n encapsulation: 2,\n changeDetection: 0\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableHeaderCheckbox, [{\n type: Component,\n args: [{\n selector: 'p-tableHeaderCheckbox',\n template: `\n
\n
\n \n
\n
\n \n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: TableService\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n boxViewChild: [{\n type: ViewChild,\n args: ['box']\n }],\n disabled: [{\n type: Input\n }],\n inputId: [{\n type: Input\n }],\n name: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input\n }]\n });\n})();\n\nclass ReorderableRowHandle {\n constructor(el) {\n this.el = el;\n }\n\n ngAfterViewInit() {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderablerow-handle');\n }\n\n}\n\nReorderableRowHandle.ɵfac = function ReorderableRowHandle_Factory(t) {\n return new (t || ReorderableRowHandle)(i0.ɵɵdirectiveInject(i0.ElementRef));\n};\n\nReorderableRowHandle.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ReorderableRowHandle,\n selectors: [[\"\", \"pReorderableRowHandle\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n index: [\"pReorderableRowHandle\", \"index\"]\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ReorderableRowHandle, [{\n type: Directive,\n args: [{\n selector: '[pReorderableRowHandle]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, {\n index: [{\n type: Input,\n args: [\"pReorderableRowHandle\"]\n }]\n });\n})();\n\nclass ReorderableRow {\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.onMouseDown.bind(this);\n this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n this.dragStartListener = this.onDragStart.bind(this);\n this.el.nativeElement.addEventListener('dragstart', this.dragStartListener);\n this.dragEndListener = this.onDragEnd.bind(this);\n this.el.nativeElement.addEventListener('dragend', this.dragEndListener);\n this.dragOverListener = this.onDragOver.bind(this);\n this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n this.dragLeaveListener = this.onDragLeave.bind(this);\n this.el.nativeElement.addEventListener('dragleave', this.dragLeaveListener);\n });\n }\n\n unbindEvents() {\n if (this.mouseDownListener) {\n document.removeEventListener('mousedown', this.mouseDownListener);\n this.mouseDownListener = null;\n }\n\n if (this.dragStartListener) {\n document.removeEventListener('dragstart', this.dragStartListener);\n this.dragStartListener = null;\n }\n\n if (this.dragEndListener) {\n document.removeEventListener('dragend', this.dragEndListener);\n this.dragEndListener = null;\n }\n\n if (this.dragOverListener) {\n document.removeEventListener('dragover', this.dragOverListener);\n this.dragOverListener = null;\n }\n\n if (this.dragLeaveListener) {\n document.removeEventListener('dragleave', this.dragLeaveListener);\n this.dragLeaveListener = null;\n }\n }\n\n onMouseDown(event) {\n if (DomHandler.hasClass(event.target, 'p-datatable-reorderablerow-handle')) this.el.nativeElement.draggable = true;else this.el.nativeElement.draggable = false;\n }\n\n onDragStart(event) {\n this.dt.onRowDragStart(event, this.index);\n }\n\n onDragEnd(event) {\n this.dt.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n\n onDragOver(event) {\n this.dt.onRowDragOver(event, this.index, this.el.nativeElement);\n event.preventDefault();\n }\n\n onDragLeave(event) {\n this.dt.onRowDragLeave(event, this.el.nativeElement);\n }\n\n isEnabled() {\n return this.pReorderableRowDisabled !== true;\n }\n\n onDrop(event) {\n if (this.isEnabled() && this.dt.rowDragging) {\n this.dt.onRowDrop(event, this.el.nativeElement);\n }\n\n event.preventDefault();\n }\n\n}\n\nReorderableRow.ɵfac = function ReorderableRow_Factory(t) {\n return new (t || ReorderableRow)(i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n};\n\nReorderableRow.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ReorderableRow,\n selectors: [[\"\", \"pReorderableRow\", \"\"]],\n hostAttrs: [1, \"p-element\"],\n hostBindings: function ReorderableRow_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"drop\", function ReorderableRow_drop_HostBindingHandler($event) {\n return ctx.onDrop($event);\n });\n }\n },\n inputs: {\n index: [\"pReorderableRow\", \"index\"],\n pReorderableRowDisabled: \"pReorderableRowDisabled\"\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ReorderableRow, [{\n type: Directive,\n args: [{\n selector: '[pReorderableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }, {\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }];\n }, {\n index: [{\n type: Input,\n args: [\"pReorderableRow\"]\n }],\n pReorderableRowDisabled: [{\n type: Input\n }],\n onDrop: [{\n type: HostListener,\n args: ['drop', ['$event']]\n }]\n });\n})();\n\nclass ColumnFilterFormElement {\n constructor(dt) {\n this.dt = dt;\n this.useGrouping = true;\n }\n\n ngOnInit() {\n this.filterCallback = value => {\n this.filterConstraint.value = value;\n\n this.dt._filter();\n };\n }\n\n onModelChange(value) {\n this.filterConstraint.value = value;\n\n if (this.type === 'boolean' || value === '') {\n this.dt._filter();\n }\n }\n\n onTextInputEnterKeyDown(event) {\n this.dt._filter();\n\n event.preventDefault();\n }\n\n onNumericInputKeyDown(event) {\n if (event.key === 'Enter') {\n this.dt._filter();\n\n event.preventDefault();\n }\n }\n\n}\n\nColumnFilterFormElement.ɵfac = function ColumnFilterFormElement_Factory(t) {\n return new (t || ColumnFilterFormElement)(i0.ɵɵdirectiveInject(Table));\n};\n\nColumnFilterFormElement.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnFilterFormElement,\n selectors: [[\"p-columnFilterFormElement\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n field: \"field\",\n type: \"type\",\n filterConstraint: \"filterConstraint\",\n filterTemplate: \"filterTemplate\",\n placeholder: \"placeholder\",\n minFractionDigits: \"minFractionDigits\",\n maxFractionDigits: \"maxFractionDigits\",\n prefix: \"prefix\",\n suffix: \"suffix\",\n locale: \"locale\",\n localeMatcher: \"localeMatcher\",\n currency: \"currency\",\n currencyDisplay: \"currencyDisplay\",\n useGrouping: \"useGrouping\"\n },\n decls: 3,\n vars: 2,\n consts: [[4, \"ngIf\", \"ngIfElse\"], [\"builtInElement\", \"\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"ngSwitch\"], [\"type\", \"text\", \"pInputText\", \"\", 3, \"value\", \"input\", \"keydown.enter\", 4, \"ngSwitchCase\"], [3, \"ngModel\", \"showButtons\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"placeholder\", \"mode\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\", \"ngModelChange\", \"onKeyDown\", 4, \"ngSwitchCase\"], [3, \"ngModel\", \"ngModelChange\", 4, \"ngSwitchCase\"], [\"type\", \"text\", \"pInputText\", \"\", 3, \"value\", \"input\", \"keydown.enter\"], [3, \"ngModel\", \"showButtons\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"placeholder\", \"mode\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\", \"ngModelChange\", \"onKeyDown\"], [3, \"ngModel\", \"ngModelChange\"]],\n template: function ColumnFilterFormElement_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnFilterFormElement_ng_container_0_Template, 2, 5, \"ng-container\", 0);\n i0.ɵɵtemplate(1, ColumnFilterFormElement_ng_template_1_Template, 5, 5, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n }\n\n if (rf & 2) {\n const _r1 = i0.ɵɵreference(2);\n\n i0.ɵɵproperty(\"ngIf\", ctx.filterTemplate)(\"ngIfElse\", _r1);\n }\n },\n directives: [i4.NgIf, i4.NgTemplateOutlet, i4.NgSwitch, i4.NgSwitchCase, i8.InputText, i5.InputNumber, i9.NgControlStatus, i9.NgModel, i6.TriStateCheckbox, i7.Calendar],\n encapsulation: 2\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColumnFilterFormElement, [{\n type: Component,\n args: [{\n selector: 'p-columnFilterFormElement',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n `,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: Table\n }];\n }, {\n field: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n filterConstraint: [{\n type: Input\n }],\n filterTemplate: [{\n type: Input\n }],\n placeholder: [{\n type: Input\n }],\n minFractionDigits: [{\n type: Input\n }],\n maxFractionDigits: [{\n type: Input\n }],\n prefix: [{\n type: Input\n }],\n suffix: [{\n type: Input\n }],\n locale: [{\n type: Input\n }],\n localeMatcher: [{\n type: Input\n }],\n currency: [{\n type: Input\n }],\n currencyDisplay: [{\n type: Input\n }],\n useGrouping: [{\n type: Input\n }]\n });\n})();\n\nclass ColumnFilter {\n constructor(el, dt, renderer, config, overlayService) {\n this.el = el;\n this.dt = dt;\n this.renderer = renderer;\n this.config = config;\n this.overlayService = overlayService;\n this.type = 'text';\n this.display = 'row';\n this.showMenu = true;\n this.operator = FilterOperator.AND;\n this.showOperator = true;\n this.showClearButton = true;\n this.showApplyButton = true;\n this.showMatchModes = true;\n this.showAddButton = true;\n this.hideOnClear = false;\n this.maxConstraints = 2;\n this.useGrouping = true;\n }\n\n ngOnInit() {\n if (!this.dt.filters[this.field]) {\n this.initFieldFilterConstraint();\n }\n\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n this.resetSubscription = this.dt.tableService.resetSource$.subscribe(() => {\n this.clearFilter();\n });\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n }\n\n generateMatchModeOptions() {\n var _a;\n\n this.matchModes = this.matchModeOptions || ((_a = this.config.filterMatchModeOptions[this.type]) === null || _a === void 0 ? void 0 : _a.map(key => {\n return {\n label: this.config.getTranslation(key),\n value: key\n };\n }));\n }\n\n generateOperatorOptions() {\n this.operatorOptions = [{\n label: this.config.getTranslation(TranslationKeys.MATCH_ALL),\n value: FilterOperator.AND\n }, {\n label: this.config.getTranslation(TranslationKeys.MATCH_ANY),\n value: FilterOperator.OR\n }];\n }\n\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'filter':\n this.filterTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.filterTemplate = item.template;\n break;\n }\n });\n }\n\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n this.dt.filters[this.field] = this.display == 'row' ? {\n value: null,\n matchMode: defaultMatchMode\n } : [{\n value: null,\n matchMode: defaultMatchMode,\n operator: this.operator\n }];\n }\n\n onMenuMatchModeChange(value, filterMeta) {\n filterMeta.matchMode = value;\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n onRowMatchModeChange(matchMode) {\n this.dt.filters[this.field].matchMode = matchMode;\n\n this.dt._filter();\n\n this.hide();\n }\n\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n\n switch (event.key) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n\n event.preventDefault();\n break;\n }\n }\n\n onRowClearItemClick() {\n this.clearFilter();\n this.hide();\n }\n\n isRowMatchModeSelected(matchMode) {\n return this.dt.filters[this.field].matchMode === matchMode;\n }\n\n addConstraint() {\n this.dt.filters[this.field].push({\n value: null,\n matchMode: this.getDefaultMatchMode(),\n operator: this.getDefaultOperator()\n });\n\n this.dt._filter();\n }\n\n removeConstraint(filterMeta) {\n this.dt.filters[this.field] = this.dt.filters[this.field].filter(meta => meta !== filterMeta);\n\n this.dt._filter();\n }\n\n onOperatorChange(value) {\n this.dt.filters[this.field].forEach(filterMeta => {\n filterMeta.operator = value;\n this.operator = value;\n });\n\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n\n toggleMenu() {\n this.overlayVisible = !this.overlayVisible;\n }\n\n onToggleButtonKeyDown(event) {\n switch (event.key) {\n case 'Escape':\n case 'Tab':\n this.overlayVisible = false;\n break;\n\n case 'ArrowDown':\n if (this.overlayVisible) {\n let focusable = DomHandler.getFocusableElements(this.overlay);\n\n if (focusable) {\n focusable[0].focus();\n }\n\n event.preventDefault();\n } else if (event.altKey) {\n this.overlayVisible = true;\n event.preventDefault();\n }\n\n break;\n }\n }\n\n onEscape() {\n this.overlayVisible = false;\n this.icon.nativeElement.focus();\n }\n\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n if (nextItem) return DomHandler.hasClass(nextItem, 'p-column-filter-separator') ? this.findNextItem(nextItem) : nextItem;else return item.parentElement.firstElementChild;\n }\n\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n if (prevItem) return DomHandler.hasClass(prevItem, 'p-column-filter-separator') ? this.findPrevItem(prevItem) : prevItem;else return item.parentElement.lastElementChild;\n }\n\n onContentClick() {\n this.selfClick = true;\n }\n\n onOverlayAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n document.body.appendChild(this.overlay);\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n DomHandler.absolutePosition(this.overlay, this.icon.nativeElement);\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n\n this.overlayEventListener = e => {\n if (this.overlay && this.overlay.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);\n break;\n\n case 'void':\n this.onOverlayHide();\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n\n break;\n }\n }\n\n onOverlayAnimationEnd(event) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\n break;\n }\n }\n\n getDefaultMatchMode() {\n if (this.matchMode) {\n return this.matchMode;\n } else {\n if (this.type === 'text') return FilterMatchMode.STARTS_WITH;else if (this.type === 'numeric') return FilterMatchMode.EQUALS;else if (this.type === 'date') return FilterMatchMode.DATE_IS;else return FilterMatchMode.CONTAINS;\n }\n }\n\n getDefaultOperator() {\n return this.dt.filters ? this.dt.filters[this.field][0].operator : this.operator;\n }\n\n hasRowFilter() {\n return this.dt.filters[this.field] && !this.dt.isFilterBlank(this.dt.filters[this.field].value);\n }\n\n get fieldConstraints() {\n return this.dt.filters ? this.dt.filters[this.field] : null;\n }\n\n get showRemoveIcon() {\n return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;\n }\n\n get showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n }\n\n get isShowOperator() {\n return this.showOperator && this.type !== 'boolean';\n }\n\n get isShowAddConstraint() {\n return this.showAddButton && this.type !== 'boolean' && this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints;\n }\n\n get applyButtonLabel() {\n return this.config.getTranslation(TranslationKeys.APPLY);\n }\n\n get clearButtonLabel() {\n return this.config.getTranslation(TranslationKeys.CLEAR);\n }\n\n get addRuleButtonLabel() {\n return this.config.getTranslation(TranslationKeys.ADD_RULE);\n }\n\n get removeRuleButtonLabel() {\n return this.config.getTranslation(TranslationKeys.REMOVE_RULE);\n }\n\n get noFilterLabel() {\n return this.config.getTranslation(TranslationKeys.NO_FILTER);\n }\n\n hasFilter() {\n let fieldFilter = this.dt.filters[this.field];\n\n if (fieldFilter) {\n if (Array.isArray(fieldFilter)) return !this.dt.isFilterBlank(fieldFilter[0].value);else return !this.dt.isFilterBlank(fieldFilter.value);\n }\n\n return false;\n }\n\n isOutsideClicked(event) {\n return !(this.overlay.isSameNode(event.target) || this.overlay.contains(event.target) || this.icon.nativeElement.isSameNode(event.target) || this.icon.nativeElement.contains(event.target) || DomHandler.hasClass(event.target, 'p-column-filter-add-button') || DomHandler.hasClass(event.target.parentElement, 'p-column-filter-add-button') || DomHandler.hasClass(event.target, 'p-column-filter-remove-button') || DomHandler.hasClass(event.target.parentElement, 'p-column-filter-remove-button'));\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', event => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event)) {\n this.hide();\n }\n\n this.selfClick = false;\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n this.selfClick = false;\n }\n }\n\n bindDocumentResizeListener() {\n this.documentResizeListener = () => this.hide();\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.icon.nativeElement, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n hide() {\n this.overlayVisible = false;\n }\n\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n\n clearFilter() {\n this.initFieldFilterConstraint();\n\n this.dt._filter();\n\n if (this.hideOnClear) this.hide();\n }\n\n applyFilter() {\n this.dt._filter();\n\n this.hide();\n }\n\n ngOnDestroy() {\n if (this.overlay) {\n this.el.nativeElement.appendChild(this.overlay);\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n if (this.resetSubscription) {\n this.resetSubscription.unsubscribe();\n }\n\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n\n}\n\nColumnFilter.ɵfac = function ColumnFilter_Factory(t) {\n return new (t || ColumnFilter)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(Table), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.PrimeNGConfig), i0.ɵɵdirectiveInject(i1.OverlayService));\n};\n\nColumnFilter.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnFilter,\n selectors: [[\"p-columnFilter\"]],\n contentQueries: function ColumnFilter_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 ColumnFilter_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c23, 5);\n }\n\n if (rf & 2) {\n let _t;\n\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.icon = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n field: \"field\",\n type: \"type\",\n display: \"display\",\n showMenu: \"showMenu\",\n matchMode: \"matchMode\",\n operator: \"operator\",\n showOperator: \"showOperator\",\n showClearButton: \"showClearButton\",\n showApplyButton: \"showApplyButton\",\n showMatchModes: \"showMatchModes\",\n showAddButton: \"showAddButton\",\n hideOnClear: \"hideOnClear\",\n placeholder: \"placeholder\",\n matchModeOptions: \"matchModeOptions\",\n maxConstraints: \"maxConstraints\",\n minFractionDigits: \"minFractionDigits\",\n maxFractionDigits: \"maxFractionDigits\",\n prefix: \"prefix\",\n suffix: \"suffix\",\n locale: \"locale\",\n localeMatcher: \"localeMatcher\",\n currency: \"currency\",\n currencyDisplay: \"currencyDisplay\",\n useGrouping: \"useGrouping\"\n },\n decls: 5,\n vars: 8,\n consts: [[1, \"p-column-filter\", 3, \"ngClass\"], [\"class\", \"p-fluid\", 3, \"type\", \"field\", \"filterConstraint\", \"filterTemplate\", \"placeholder\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\", 4, \"ngIf\"], [\"type\", \"button\", \"class\", \"p-column-filter-menu-button p-link\", \"aria-haspopup\", \"true\", 3, \"ngClass\", \"click\", \"keydown\", 4, \"ngIf\"], [\"type\", \"button\", \"class\", \"p-column-filter-clear-button p-link\", 3, \"ngClass\", \"click\", 4, \"ngIf\"], [3, \"ngClass\", \"click\", \"keydown.escape\", 4, \"ngIf\"], [1, \"p-fluid\", 3, \"type\", \"field\", \"filterConstraint\", \"filterTemplate\", \"placeholder\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\"], [\"type\", \"button\", \"aria-haspopup\", \"true\", 1, \"p-column-filter-menu-button\", \"p-link\", 3, \"ngClass\", \"click\", \"keydown\"], [\"icon\", \"\"], [1, \"pi\", \"pi-filter-icon\", \"pi-filter\"], [\"type\", \"button\", 1, \"p-column-filter-clear-button\", \"p-link\", 3, \"ngClass\", \"click\"], [1, \"pi\", \"pi-filter-slash\"], [3, \"ngClass\", \"click\", \"keydown.escape\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"p-column-filter-row-items\", 4, \"ngIf\", \"ngIfElse\"], [\"menu\", \"\"], [1, \"p-column-filter-row-items\"], [\"class\", \"p-column-filter-row-item\", 3, \"ngClass\", \"click\", \"keydown\", \"keydown.enter\", 4, \"ngFor\", \"ngForOf\"], [1, \"p-column-filter-separator\"], [1, \"p-column-filter-row-item\", 3, \"click\", \"keydown\", \"keydown.enter\"], [1, \"p-column-filter-row-item\", 3, \"ngClass\", \"click\", \"keydown\", \"keydown.enter\"], [\"class\", \"p-column-filter-operator\", 4, \"ngIf\"], [1, \"p-column-filter-constraints\"], [\"class\", \"p-column-filter-constraint\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"p-column-filter-add-rule\", 4, \"ngIf\"], [1, \"p-column-filter-buttonbar\"], [\"type\", \"button\", \"pButton\", \"\", \"class\", \"p-button-outlined\", \"pRipple\", \"\", 3, \"label\", \"click\", 4, \"ngIf\"], [\"type\", \"button\", \"pButton\", \"\", \"pRipple\", \"\", 3, \"label\", \"click\", 4, \"ngIf\"], [1, \"p-column-filter-operator\"], [\"styleClass\", \"p-column-filter-operator-dropdown\", 3, \"options\", \"ngModel\", \"ngModelChange\"], [1, \"p-column-filter-constraint\"], [\"styleClass\", \"p-column-filter-matchmode-dropdown\", 3, \"options\", \"ngModel\", \"ngModelChange\", 4, \"ngIf\"], [3, \"type\", \"field\", \"filterConstraint\", \"filterTemplate\", \"placeholder\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\"], [\"type\", \"button\", \"pButton\", \"\", \"icon\", \"pi pi-trash\", \"class\", \"p-column-filter-remove-button p-button-text p-button-danger p-button-sm\", \"pRipple\", \"\", 3, \"label\", \"click\", 4, \"ngIf\"], [\"styleClass\", \"p-column-filter-matchmode-dropdown\", 3, \"options\", \"ngModel\", \"ngModelChange\"], [\"type\", \"button\", \"pButton\", \"\", \"icon\", \"pi pi-trash\", \"pRipple\", \"\", 1, \"p-column-filter-remove-button\", \"p-button-text\", \"p-button-danger\", \"p-button-sm\", 3, \"label\", \"click\"], [1, \"p-column-filter-add-rule\"], [\"type\", \"button\", \"pButton\", \"\", \"icon\", \"pi pi-plus\", \"pRipple\", \"\", 1, \"p-column-filter-add-button\", \"p-button-text\", \"p-button-sm\", 3, \"label\", \"click\"], [\"type\", \"button\", \"pButton\", \"\", \"pRipple\", \"\", 1, \"p-button-outlined\", 3, \"label\", \"click\"], [\"type\", \"button\", \"pButton\", \"\", \"pRipple\", \"\", 3, \"label\", \"click\"]],\n template: function ColumnFilter_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, ColumnFilter_p_columnFilterFormElement_1_Template, 1, 14, \"p-columnFilterFormElement\", 1);\n i0.ɵɵtemplate(2, ColumnFilter_button_2_Template, 3, 5, \"button\", 2);\n i0.ɵɵtemplate(3, ColumnFilter_button_3_Template, 3, 3, \"button\", 3);\n i0.ɵɵtemplate(4, ColumnFilter_div_4_Template, 6, 14, \"div\", 4);\n i0.ɵɵelementEnd();\n }\n\n if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(5, _c28, ctx.display === \"row\", ctx.display === \"menu\"));\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.display === \"row\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.showMenuButton);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.showClearButton && ctx.display === \"row\");\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx.showMenu && ctx.overlayVisible);\n }\n },\n directives: [i4.NgClass, i4.NgIf, ColumnFilterFormElement, i4.NgTemplateOutlet, i4.NgForOf, i10.Dropdown, i9.NgControlStatus, i9.NgModel, i11.ButtonDirective],\n encapsulation: 2,\n data: {\n animation: [trigger('overlayAnimation', [transition(':enter', [style({\n opacity: 0,\n transform: 'scaleY(0.8)'\n }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({\n opacity: 0\n }))])])]\n }\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColumnFilter, [{\n type: Component,\n args: [{\n selector: 'p-columnFilter',\n template: `\n
\n \n \n \n
\n \n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n
\n
\n `,\n animations: [trigger('overlayAnimation', [transition(':enter', [style({\n opacity: 0,\n transform: 'scaleY(0.8)'\n }), animate('.12s cubic-bezier(0, 0, 0.2, 1)')]), transition(':leave', [animate('.1s linear', style({\n opacity: 0\n }))])])],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: Table\n }, {\n type: i0.Renderer2\n }, {\n type: i1.PrimeNGConfig\n }, {\n type: i1.OverlayService\n }];\n }, {\n field: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n display: [{\n type: Input\n }],\n showMenu: [{\n type: Input\n }],\n matchMode: [{\n type: Input\n }],\n operator: [{\n type: Input\n }],\n showOperator: [{\n type: Input\n }],\n showClearButton: [{\n type: Input\n }],\n showApplyButton: [{\n type: Input\n }],\n showMatchModes: [{\n type: Input\n }],\n showAddButton: [{\n type: Input\n }],\n hideOnClear: [{\n type: Input\n }],\n placeholder: [{\n type: Input\n }],\n matchModeOptions: [{\n type: Input\n }],\n maxConstraints: [{\n type: Input\n }],\n minFractionDigits: [{\n type: Input\n }],\n maxFractionDigits: [{\n type: Input\n }],\n prefix: [{\n type: Input\n }],\n suffix: [{\n type: Input\n }],\n locale: [{\n type: Input\n }],\n localeMatcher: [{\n type: Input\n }],\n currency: [{\n type: Input\n }],\n currencyDisplay: [{\n type: Input\n }],\n useGrouping: [{\n type: Input\n }],\n icon: [{\n type: ViewChild,\n args: ['icon']\n }],\n templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }]\n });\n})();\n\nclass TableModule {}\n\nTableModule.ɵfac = function TableModule_Factory(t) {\n return new (t || TableModule)();\n};\n\nTableModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TableModule\n});\nTableModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, PaginatorModule, InputTextModule, DropdownModule, ScrollingModule, FormsModule, ButtonModule, SelectButtonModule, CalendarModule, InputNumberModule, TriStateCheckboxModule], SharedModule, ScrollingModule]\n});\n\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TableModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, PaginatorModule, InputTextModule, DropdownModule, ScrollingModule, FormsModule, ButtonModule, SelectButtonModule, CalendarModule, InputNumberModule, TriStateCheckboxModule],\n exports: [Table, SharedModule, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ScrollingModule, ColumnFilter],\n declarations: [Table, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, TableBody, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement]\n }]\n }], null, null);\n})();\n/**\n * Generated bundle index. Do not edit.\n */\n\n\nexport { CancelEditableRow, CellEditor, ColumnFilter, ColumnFilterFormElement, ContextMenuRow, EditableColumn, EditableRow, FrozenColumn, InitEditableRow, ReorderableColumn, ReorderableRow, ReorderableRowHandle, ResizableColumn, RowGroupHeader, RowToggler, SaveEditableRow, SelectableRow, SelectableRowDblClick, SortIcon, SortableColumn, Table, TableBody, TableCheckbox, TableHeaderCheckbox, TableModule, TableRadioButton, TableService };","map":{"version":3,"sources":["C:/Users/DELL/Desktop/bachelor-thesis/trip-planner-front/node_modules/primeng/fesm2015/primeng-table.mjs"],"names":["i0","Injectable","EventEmitter","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","Output","ViewChild","ContentChildren","Directive","HostListener","Optional","NgModule","i4","CommonModule","i9","FormsModule","i1","FilterOperator","FilterMatchMode","PrimeTemplate","TranslationKeys","SharedModule","i2","PaginatorModule","i8","InputTextModule","i11","ButtonModule","SelectButtonModule","i6","TriStateCheckboxModule","i7","CalendarModule","i5","InputNumberModule","i10","DropdownModule","DomHandler","ConnectedOverlayScrollHandler","UniqueComponentId","ObjectUtils","ZIndexUtils","Subject","i3","CdkVirtualScrollViewport","ScrollingModule","trigger","transition","style","animate","TableService","constructor","sortSource","selectionSource","contextMenuSource","valueSource","totalRecordsSource","columnsSource","resetSource","sortSource$","asObservable","selectionSource$","contextMenuSource$","valueSource$","totalRecordsSource$","columnsSource$","resetSource$","onSort","sortMeta","next","onSelectionChange","onResetChange","onContextMenu","data","onValueChange","value","onTotalRecordsChange","onColumnsChange","columns","ɵfac","ɵprov","type","Table","el","zone","tableService","cd","filterService","overlayService","pageLinks","alwaysShowPaginator","paginatorPosition","paginatorDropdownScrollHeight","currentPageReportTemplate","showFirstLastIcon","showPageLinks","defaultSortOrder","sortMode","resetPageOnSort","selectionChange","contextMenuSelectionChange","contextMenuSelectionMode","rowTrackBy","index","item","lazy","lazyLoadOnInit","compareSelectionBy","csvSeparator","exportFilename","filters","filterDelay","expandedRowKeys","editingRowKeys","rowExpandMode","scrollDirection","virtualScrollDelay","virtualRowHeight","columnResizeMode","loadingIcon","showLoader","showInitialSortBadge","stateStorage","editMode","groupRowsByOrder","responsiveLayout","breakpoint","onRowSelect","onRowUnselect","onPage","onFilter","onLazyLoad","onRowExpand","onRowCollapse","onContextMenuSelect","onColResize","onColReorder","onRowReorder","onEditInit","onEditComplete","onEditCancel","onHeaderCheckboxToggle","sortFunction","firstChange","rowsChange","onStateSave","onStateRestore","_value","_totalRecords","_first","selectionKeys","_sortOrder","columnResizing","rowGroupHeaderStyleObject","id","ngOnInit","virtualScroll","emit","createLazyLoadMetadata","restoringFilter","scrollable","createResponsiveStyle","initialized","ngAfterContentInit","templates","forEach","getType","captionTemplate","template","headerTemplate","headerGroupedTemplate","bodyTemplate","loadingBodyTemplate","footerTemplate","footerGroupedTemplate","summaryTemplate","colGroupTemplate","expandedRowTemplate","groupHeaderTemplate","rowspanTemplate","groupFooterTemplate","frozenRowsTemplate","frozenHeaderTemplate","frozenBodyTemplate","frozenFooterTemplate","frozenColGroupTemplate","frozenExpandedRowTemplate","emptyMessageTemplate","paginatorLeftTemplate","paginatorRightTemplate","paginatorDropdownItemTemplate","ngAfterViewInit","isStateful","resizableColumns","restoreColumnWidths","virtualScrollSubscription","virtualScrollBody","renderedRangeStream","subscribe","range","top","start","tableHeaderViewChild","nativeElement","ngOnChanges","simpleChange","stateRestored","restoreState","currentValue","totalRecords","length","sortField","groupRowsBy","sortSingle","multiSortMeta","sortMultiple","hasFilter","_filter","_columns","reorderableColumns","columnOrderStateRestored","restoreColumnOrder","_sortField","sortOrder","_multiSortMeta","selection","_selection","preventSelectionSetterPropagation","updateSelectionKeys","val","cols","first","rows","_rows","dataToRender","filteredValue","paginator","slice","dataKey","Array","isArray","String","resolveFieldData","onPageChange","event","saveState","anchorRowIndex","resetScrollTop","sort","originalEvent","field","metaKey","ctrlKey","getSortMeta","order","push","getGroupRowsMeta","restoringSort","customSort","mode","data1","data2","value1","value2","result","localeCompare","multisortField","multisortmeta","i","isSorted","sorted","handleRowClick","target","targetNode","nodeName","parentNode","parentElement","hasClass","selectionMode","isMultipleSelectionMode","shiftKey","clearSelection","rangeRowIndex","clearSelectionRange","rowIndex","selectRange","rowData","selected","isSelected","metaSelection","rowTouched","metaKeySelection","dataKeyValue","isSingleSelectionMode","selectionIndex","findIndexInSelection","filter","handleRowTouchEnd","handleRowRightClick","contextMenu","contextMenuSelection","show","rangeStart","rangeEnd","rangeRowsData","rangeRowData","undefined","equals","toggleRowWithRadio","toggleRowWithCheckbox","toggleRowsWithCheckbox","check","checked","matchMode","filterTimeout","clearTimeout","isFilterBlank","setTimeout","filterGlobal","trim","globalFilterFieldsArray","globalFilterFields","Error","localMatch","globalMatch","localFiltered","prop","hasOwnProperty","filterField","filterMeta","meta","executeLocalFilter","operator","OR","AND","j","globalFilterField","filterLocale","matches","markForCheck","filterValue","filterMatchMode","STARTS_WITH","dataFieldValue","filterConstraint","empty","globalFilter","clear","reset","exportCSV","options","csv","frozenColumns","selectionOnly","frozenValue","column","exportable","header","record","cellData","exportFunction","replace","blob","Blob","link","document","createElement","display","body","appendChild","download","setAttribute","URL","createObjectURL","click","window","open","encodeURI","removeChild","scrollToVirtualIndex","scrollTo","scrollToIndex","onScrollIndexChange","virtualScrollTimeout","page","Math","floor","virtualScrollOffset","virtualScrollChunkSize","virtualPage","wrapperViewChild","scrollLeft","left","scrollTop","updateEditingCell","cell","editingCell","editingCellData","editingCellField","editingCellRowIndex","bindDocumentEditListener","isEditingCellValid","find","documentEditListener","selfClick","removeClass","unbindDocumentEditListener","overlaySubscription","unsubscribe","addEventListener","removeEventListener","initRowEdit","saveRowEdit","rowElement","cancelRowEdit","toggleRow","preventDefault","isRowExpanded","isRowEditing","onColumnResizeBegin","containerLeft","getOffset","containerViewChild","resizeColumnElement","lastResizerHelperX","pageX","onColumnResize","addClass","resizeHelperViewChild","height","offsetHeight","onColumnResizeEnd","delta","offsetLeft","columnWidth","offsetWidth","newColumnWidth","minWidth","nextColumn","nextElementSibling","nextColumnWidth","width","resizeTableCells","tableWidth","tableViewChild","element","colIndex","widths","tableHead","findSingle","headers","getOuterWidth","destroyStyleElement","createStyleElement","innerHTML","colWidth","styleElement","onColumnDragStart","columnElement","reorderIconWidth","getHiddenElementOuterWidth","reorderIndicatorUpViewChild","reorderIconHeight","getHiddenElementOuterHeight","reorderIndicatorDownViewChild","draggedColumn","dataTransfer","setData","onColumnDragEnter","dropHeader","containerOffset","dropHeaderOffset","dragIndex","indexWithinGroup","dropIndex","targetLeft","targetTop","columnCenter","ceil","dropPosition","dropEffect","onColumnDragLeave","onColumnDrop","dropColumn","allowDrop","reorderArray","runOutsideAngular","draggable","onRowDragStart","rowDragging","draggedRowIndex","onRowDragOver","rowY","getWindowScrollTop","pageY","rowMidY","getOuterHeight","prevRowElement","previousElementSibling","droppedRowIndex","onRowDragLeave","onRowDragEnd","onRowDrop","isEmpty","getBlockableElement","children","getStorage","localStorage","sessionStorage","stateKey","storage","state","saveColumnWidths","saveColumnOrder","Object","keys","setItem","JSON","stringify","clearState","removeItem","stateString","getItem","dateFormat","reviver","key","test","Date","parse","columnWidthsState","columnWidths","tableWidthState","Promise","resolve","then","join","split","columnOrder","map","reorderedColumns","col","findColumnByKey","head","responsiveStyleElement","destroyResponsiveStyle","ngOnDestroy","ElementRef","NgZone","ChangeDetectorRef","FilterService","OverlayService","ɵcmp","NgStyle","NgClass","NgIf","NgTemplateOutlet","Paginator","TableBody","CdkFixedSizeVirtualScroll","args","selector","providers","changeDetection","Default","encapsulation","None","host","styles","styleClass","tableStyle","tableStyleClass","rowsPerPageOptions","paginatorDropdownAppendTo","showCurrentPageReport","showJumpToPageDropdown","showJumpToPageInput","rowGroupMode","scrollHeight","frozenWidth","responsive","loading","rowHover","autoLayout","minBufferPx","maxBufferPx","dt","subscription","detectChanges","frozenRows","updateFrozenRowStickyPosition","updateFrozenRowGroupHeaderStickyPosition","shouldRenderRowGroupHeader","currentRowFieldData","prevRowData","previousRowFieldData","shouldRenderRowGroupFooter","nextRowData","nextRowFieldData","shouldRenderRowspan","calculateRowGroupSize","groupRowSpan","tableHeaderHeight","NgForOf","CdkVirtualForOf","frozen","RowGroupHeader","getFrozenRowGroupHeaderStickyPosition","ɵdir","FrozenColumn","alignFrozen","_frozen","updateStickyPosition","right","parseFloat","prev","filterRow","SortableColumn","isEnabled","updateSortState","onClick","isFilterElement","onEnterKey","pSortableColumnDisabled","SortIcon","getMultiSortMetaIndex","getBadgeValue","isMultiSorted","OnPush","SelectableRow","onTouchEnd","onArrowDownKeyDown","row","currentTarget","nextRow","findNextSelectableRow","focus","onArrowUpKeyDown","prevRow","findPrevSelectableRow","onEnterKeyDown","onPageDownKeyDown","elementRef","onSpaceKeydown","pSelectableRowDisabled","SelectableRowDblClick","ContextMenuRow","pContextMenuRowDisabled","RowToggler","pRowTogglerDisabled","ResizableColumn","resizer","className","resizerMouseDownListener","onMouseDown","bind","bindDocumentEvents","documentMouseMoveListener","onDocumentMouseMove","documentMouseUpListener","onDocumentMouseUp","unbindDocumentEvents","which","pResizableColumnDisabled","ReorderableColumn","bindEvents","mouseDownListener","dragStartListener","onDragStart","dragOverListener","onDragEnter","dragEnterListener","dragLeaveListener","onDragLeave","unbindEvents","onDragOver","onDrop","pReorderableColumnDisabled","EditableColumn","closeEditingCell","openCell","focusCellSelector","pFocusCellSelector","focusableElement","overlayEventListener","e","contains","clickObservable","completed","onEscapeKeyDown","onShiftKeyDown","moveToPreviousCell","moveToNextCell","onArrowDown","currentCell","findCell","cellIndex","targetCell","findNextEditableColumnByIndex","invokeElementMethod","onArrowUp","findPrevEditableColumnByIndex","onArrowLeft","onArrowRight","findPreviousEditableColumn","findNextEditableColumn","prevCell","previousRow","lastElementChild","nextCell","firstElementChild","pEditableColumnDisabled","EditableRow","pEditableRowDisabled","InitEditableRow","editableRow","SaveEditableRow","CancelEditableRow","CellEditor","editableColumn","inputTemplate","outputTemplate","editing","decorators","TableRadioButton","disabled","onFocus","boxViewChild","onBlur","inputId","name","ariaLabel","TableCheckbox","required","TableHeaderCheckbox","valueChangeSubscription","updateCheckedState","selectionChangeSubscription","isDisabled","isAllFilteredValuesChecked","ReorderableRowHandle","ReorderableRow","droppable","dragEndListener","onDragEnd","pReorderableRowDisabled","ColumnFilterFormElement","useGrouping","filterCallback","onModelChange","onTextInputEnterKeyDown","onNumericInputKeyDown","NgSwitch","NgSwitchCase","InputText","InputNumber","NgControlStatus","NgModel","TriStateCheckbox","Calendar","filterTemplate","placeholder","minFractionDigits","maxFractionDigits","prefix","suffix","locale","localeMatcher","currency","currencyDisplay","ColumnFilter","renderer","config","showMenu","showOperator","showClearButton","showApplyButton","showMatchModes","showAddButton","hideOnClear","maxConstraints","initFieldFilterConstraint","translationSubscription","translationObserver","generateMatchModeOptions","generateOperatorOptions","resetSubscription","clearFilter","_a","matchModes","matchModeOptions","filterMatchModeOptions","label","getTranslation","operatorOptions","MATCH_ALL","MATCH_ANY","defaultMatchMode","getDefaultMatchMode","onMenuMatchModeChange","onRowMatchModeChange","hide","onRowMatchModeKeyDown","nextItem","findNextItem","removeAttribute","tabIndex","prevItem","findPrevItem","onRowClearItemClick","isRowMatchModeSelected","addConstraint","getDefaultOperator","removeConstraint","onOperatorChange","toggleMenu","overlayVisible","onToggleButtonKeyDown","focusable","getFocusableElements","overlay","altKey","onEscape","icon","onContentClick","onOverlayAnimationStart","toState","set","zIndex","absolutePosition","bindDocumentClickListener","bindDocumentResizeListener","bindScrollListener","onOverlayHide","onOverlayAnimationEnd","EQUALS","DATE_IS","CONTAINS","hasRowFilter","fieldConstraints","showRemoveIcon","showMenuButton","isShowOperator","isShowAddConstraint","applyButtonLabel","APPLY","clearButtonLabel","CLEAR","addRuleButtonLabel","ADD_RULE","removeRuleButtonLabel","REMOVE_RULE","noFilterLabel","NO_FILTER","fieldFilter","isOutsideClicked","isSameNode","documentClickListener","documentTarget","ownerDocument","listen","unbindDocumentClickListener","documentResizeListener","unbindDocumentResizeListener","scrollHandler","unbindScrollListener","applyFilter","Renderer2","PrimeNGConfig","Dropdown","ButtonDirective","opacity","transform","animations","TableModule","ɵmod","ɵinj","imports","exports","declarations"],"mappings":"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","sourcesContent":["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';\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 onSort(sortMeta) {\n this.sortSource.next(sortMeta);\n }\n onSelectionChange() {\n this.selectionSource.next(null);\n }\n onResetChange() {\n this.resetSource.next(null);\n }\n onContextMenu(data) {\n this.contextMenuSource.next(data);\n }\n onValueChange(value) {\n this.valueSource.next(value);\n }\n onTotalRecordsChange(value) {\n this.totalRecordsSource.next(value);\n }\n onColumnsChange(columns) {\n this.columnsSource.next(columns);\n }\n}\nTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableService, decorators: [{\n type: Injectable\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 this.rowTrackBy = (index, item) => item;\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 ngOnInit() {\n if (this.lazy && this.lazyLoadOnInit) {\n if (!this.virtualScroll) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n }\n if (this.responsiveLayout === 'stack' && !this.scrollable) {\n this.createResponsiveStyle();\n }\n this.initialized = true;\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'caption':\n this.captionTemplate = item.template;\n break;\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'headergrouped':\n this.headerGroupedTemplate = item.template;\n break;\n case 'body':\n this.bodyTemplate = item.template;\n break;\n case 'loadingbody':\n this.loadingBodyTemplate = item.template;\n break;\n case 'footer':\n this.footerTemplate = item.template;\n break;\n case 'footergrouped':\n this.footerGroupedTemplate = item.template;\n break;\n case 'summary':\n this.summaryTemplate = item.template;\n break;\n case 'colgroup':\n this.colGroupTemplate = item.template;\n break;\n case 'rowexpansion':\n this.expandedRowTemplate = item.template;\n break;\n case 'groupheader':\n this.groupHeaderTemplate = item.template;\n break;\n case 'rowspan':\n this.rowspanTemplate = item.template;\n break;\n case 'groupfooter':\n this.groupFooterTemplate = item.template;\n break;\n case 'frozenrows':\n this.frozenRowsTemplate = item.template;\n break;\n case 'frozenheader':\n this.frozenHeaderTemplate = item.template;\n break;\n case 'frozenbody':\n this.frozenBodyTemplate = item.template;\n break;\n case 'frozenfooter':\n this.frozenFooterTemplate = item.template;\n break;\n case 'frozencolgroup':\n this.frozenColGroupTemplate = item.template;\n break;\n case 'frozenrowexpansion':\n this.frozenExpandedRowTemplate = item.template;\n break;\n case 'emptymessage':\n this.emptyMessageTemplate = item.template;\n break;\n case 'paginatorleft':\n this.paginatorLeftTemplate = item.template;\n break;\n case 'paginatorright':\n this.paginatorRightTemplate = item.template;\n break;\n case 'paginatordropdownitem':\n this.paginatorDropdownItemTemplate = item.template;\n break;\n }\n });\n }\n ngAfterViewInit() {\n if (this.isStateful() && this.resizableColumns) {\n this.restoreColumnWidths();\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 ngOnChanges(simpleChange) {\n if (simpleChange.value) {\n if (this.isStateful() && !this.stateRestored) {\n this.restoreState();\n }\n this._value = simpleChange.value.currentValue;\n if (!this.lazy) {\n this.totalRecords = (this._value ? this._value.length : 0);\n if (this.sortMode == 'single' && (this.sortField || this.groupRowsBy))\n this.sortSingle();\n else if (this.sortMode == 'multiple' && (this.multiSortMeta || this.groupRowsBy))\n this.sortMultiple();\n else if (this.hasFilter()) //sort already filters\n this._filter();\n }\n this.tableService.onValueChange(simpleChange.value.currentValue);\n }\n if (simpleChange.columns) {\n this._columns = simpleChange.columns.currentValue;\n this.tableService.onColumnsChange(simpleChange.columns.currentValue);\n if (this._columns && this.isStateful() && this.reorderableColumns && !this.columnOrderStateRestored) {\n this.restoreColumnOrder();\n }\n }\n if (simpleChange.sortField) {\n this._sortField = simpleChange.sortField.currentValue;\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 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 if (simpleChange.sortOrder) {\n this._sortOrder = simpleChange.sortOrder.currentValue;\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 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 if (simpleChange.multiSortMeta) {\n this._multiSortMeta = simpleChange.multiSortMeta.currentValue;\n if (this.sortMode === 'multiple' && (this.initialized || (!this.lazy && !this.virtualScroll))) {\n this.sortMultiple();\n }\n }\n if (simpleChange.selection) {\n this._selection = simpleChange.selection.currentValue;\n if (!this.preventSelectionSetterPropagation) {\n this.updateSelectionKeys();\n this.tableService.onSelectionChange();\n }\n this.preventSelectionSetterPropagation = false;\n }\n }\n get value() {\n return this._value;\n }\n set value(val) {\n this._value = val;\n }\n get columns() {\n return this._columns;\n }\n set columns(cols) {\n this._columns = cols;\n }\n get first() {\n return this._first;\n }\n set first(val) {\n this._first = val;\n }\n get rows() {\n return this._rows;\n }\n set rows(val) {\n this._rows = val;\n }\n get totalRecords() {\n return this._totalRecords;\n }\n set totalRecords(val) {\n this._totalRecords = val;\n this.tableService.onTotalRecordsChange(this._totalRecords);\n }\n get sortField() {\n return this._sortField;\n }\n set sortField(val) {\n this._sortField = val;\n }\n get sortOrder() {\n return this._sortOrder;\n }\n set sortOrder(val) {\n this._sortOrder = val;\n }\n get multiSortMeta() {\n return this._multiSortMeta;\n }\n set multiSortMeta(val) {\n this._multiSortMeta = val;\n }\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._selection = val;\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 updateSelectionKeys() {\n if (this.dataKey && this._selection) {\n this.selectionKeys = {};\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 }\n else {\n this.selectionKeys[String(ObjectUtils.resolveFieldData(this._selection, this.dataKey))] = 1;\n }\n }\n }\n onPageChange(event) {\n this.first = event.first;\n this.rows = event.rows;\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\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 if (this.isStateful()) {\n this.saveState();\n }\n this.anchorRowIndex = null;\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n sort(event) {\n let originalEvent = event.originalEvent;\n if (this.sortMode === 'single') {\n this._sortOrder = (this.sortField === event.field) ? this.sortOrder * -1 : this.defaultSortOrder;\n this._sortField = event.field;\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n this.sortSingle();\n }\n if (this.sortMode === 'multiple') {\n let metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n let sortMeta = this.getSortMeta(event.field);\n if (sortMeta) {\n if (!metaKey) {\n this._multiSortMeta = [{ field: event.field, order: sortMeta.order * -1 }];\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n if (this.scrollable) {\n this.resetScrollTop();\n }\n }\n }\n else {\n sortMeta.order = sortMeta.order * -1;\n }\n }\n else {\n if (!metaKey || !this.multiSortMeta) {\n this._multiSortMeta = [];\n if (this.resetPageOnSort) {\n this._first = 0;\n this.firstChange.emit(this._first);\n }\n }\n this._multiSortMeta.push({ field: event.field, order: this.defaultSortOrder });\n }\n this.sortMultiple();\n }\n if (this.isStateful()) {\n this.saveState();\n }\n this.anchorRowIndex = null;\n }\n sortSingle() {\n let field = this.sortField || this.groupRowsBy;\n let order = this.sortField ? this.sortOrder : this.groupRowsByOrder;\n if (this.groupRowsBy && this.sortField && this.groupRowsBy !== this.sortField) {\n this._multiSortMeta = [this.getGroupRowsMeta(), { field: this.sortField, order: this.sortOrder }];\n this.sortMultiple();\n return;\n }\n if (field && order) {\n if (this.restoringSort) {\n this.restoringSort = false;\n }\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\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 }\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)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2);\n else\n result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\n return (order * result);\n });\n this._value = [...this.value];\n }\n if (this.hasFilter()) {\n this._filter();\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 sortMultiple() {\n if (this.groupRowsBy) {\n if (!this._multiSortMeta)\n this._multiSortMeta = [this.getGroupRowsMeta()];\n else if (this.multiSortMeta[0].field !== this.groupRowsBy)\n this._multiSortMeta = [this.getGroupRowsMeta(), ...this._multiSortMeta];\n }\n if (this.multiSortMeta) {\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\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 }\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 if (this.hasFilter()) {\n this._filter();\n }\n }\n this.onSort.emit({\n multisortmeta: this.multiSortMeta\n });\n this.tableService.onSort(this.multiSortMeta);\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)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 == 'string' || value1 instanceof String) {\n if (value1.localeCompare && (value1 != value2)) {\n return (multiSortMeta[index].order * value1.localeCompare(value2));\n }\n }\n else {\n result = (value1 < value2) ? -1 : 1;\n }\n if (value1 == value2) {\n return (multiSortMeta.length - 1) > (index) ? (this.multisortField(data1, data2, multiSortMeta, index + 1)) : 0;\n }\n return (multiSortMeta[index].order * result);\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 return null;\n }\n isSorted(field) {\n if (this.sortMode === 'single') {\n return (this.sortField && this.sortField === field);\n }\n else if (this.sortMode === 'multiple') {\n let sorted = false;\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 return sorted;\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 if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' ||\n parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' ||\n (DomHandler.hasClass(event.originalEvent.target, 'p-clickable'))) {\n return;\n }\n if (this.selectionMode) {\n this.preventSelectionSetterPropagation = true;\n if (this.isMultipleSelectionMode() && event.originalEvent.shiftKey && this.anchorRowIndex != null) {\n DomHandler.clearSelection();\n if (this.rangeRowIndex != null) {\n this.clearSelectionRange(event.originalEvent);\n }\n this.rangeRowIndex = event.rowIndex;\n this.selectRange(event.originalEvent, event.rowIndex);\n }\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 if (metaSelection) {\n let metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n this._selection = null;\n this.selectionKeys = {};\n this.selectionChange.emit(null);\n }\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 if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row' });\n }\n else {\n if (this.isSingleSelectionMode()) {\n this._selection = rowData;\n this.selectionChange.emit(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (this.isMultipleSelectionMode()) {\n if (metaKey) {\n this._selection = this.selection || [];\n }\n else {\n this._selection = [];\n this.selectionKeys = {};\n }\n this._selection = [...this.selection, rowData];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', 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({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n }\n else {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\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({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n }\n }\n this.tableService.onSelectionChange();\n if (this.isStateful()) {\n this.saveState();\n }\n }\n this.rowTouched = false;\n }\n handleRowTouchEnd(event) {\n this.rowTouched = true;\n }\n handleRowRightClick(event) {\n if (this.contextMenu) {\n const rowData = event.rowData;\n if (this.contextMenuSelectionMode === 'separate') {\n this.contextMenuSelection = rowData;\n this.contextMenuSelectionChange.emit(rowData);\n this.onContextMenuSelect.emit({ originalEvent: event.originalEvent, data: rowData, index: event.rowIndex });\n this.contextMenu.show(event.originalEvent);\n this.tableService.onContextMenu(rowData);\n }\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 if (!selected) {\n if (this.isSingleSelectionMode()) {\n this.selection = rowData;\n this.selectionChange.emit(rowData);\n if (dataKeyValue) {\n this.selectionKeys = {};\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n else if (this.isMultipleSelectionMode()) {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n this.tableService.onSelectionChange();\n this.contextMenu.show(event.originalEvent);\n this.onContextMenuSelect.emit({ originalEvent: event, data: rowData, index: event.rowIndex });\n }\n }\n }\n selectRange(event, rowIndex) {\n let rangeStart, rangeEnd;\n if (this.anchorRowIndex > rowIndex) {\n rangeStart = rowIndex;\n rangeEnd = this.anchorRowIndex;\n }\n else if (this.anchorRowIndex < rowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = rowIndex;\n }\n else {\n rangeStart = rowIndex;\n rangeEnd = rowIndex;\n }\n if (this.lazy && this.paginator) {\n rangeStart -= this.first;\n rangeEnd -= this.first;\n }\n let rangeRowsData = [];\n for (let i = rangeStart; i <= rangeEnd; i++) {\n let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];\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 if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n }\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event, data: rangeRowsData, type: 'row' });\n }\n clearSelectionRange(event) {\n let rangeStart, rangeEnd;\n if (this.rangeRowIndex > this.anchorRowIndex) {\n rangeStart = this.anchorRowIndex;\n rangeEnd = this.rangeRowIndex;\n }\n else if (this.rangeRowIndex < this.anchorRowIndex) {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.anchorRowIndex;\n }\n else {\n rangeStart = this.rangeRowIndex;\n rangeEnd = this.rangeRowIndex;\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 if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n this.onRowUnselect.emit({ originalEvent: event, data: rangeRowData, type: 'row' });\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 }\n else {\n if (this.selection instanceof Array)\n return this.findIndexInSelection(rowData) > -1;\n else\n return this.equals(rowData, this.selection);\n }\n }\n return false;\n }\n findIndexInSelection(rowData) {\n let index = -1;\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 return index;\n }\n toggleRowWithRadio(event, rowData) {\n this.preventSelectionSetterPropagation = true;\n if (this.selection != rowData) {\n this._selection = rowData;\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'radiobutton' });\n if (this.dataKey) {\n this.selectionKeys = {};\n this.selectionKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] = 1;\n }\n }\n else {\n this._selection = null;\n this.selectionChange.emit(this.selection);\n this.onRowUnselect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'radiobutton' });\n }\n this.tableService.onSelectionChange();\n if (this.isStateful()) {\n this.saveState();\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 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({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'checkbox' });\n if (dataKeyValue) {\n delete this.selectionKeys[dataKeyValue];\n }\n }\n else {\n this._selection = this.selection ? [...this.selection, rowData] : [rowData];\n this.selectionChange.emit(this.selection);\n this.onRowSelect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'checkbox' });\n if (dataKeyValue) {\n this.selectionKeys[dataKeyValue] = 1;\n }\n }\n this.tableService.onSelectionChange();\n if (this.isStateful()) {\n this.saveState();\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({ originalEvent: event, checked: check });\n if (this.isStateful()) {\n this.saveState();\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 filter(value, field, matchMode) {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n if (!this.isFilterBlank(value)) {\n this.filters[field] = { value: value, matchMode: matchMode };\n }\n else if (this.filters[field]) {\n delete this.filters[field];\n }\n this.filterTimeout = setTimeout(() => {\n this._filter();\n this.filterTimeout = null;\n }, this.filterDelay);\n this.anchorRowIndex = null;\n }\n filterGlobal(value, matchMode) {\n this.filter(value, 'global', matchMode);\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))\n return true;\n else\n return false;\n }\n return true;\n }\n _filter() {\n if (!this.restoringFilter) {\n this.first = 0;\n this.firstChange.emit(this.first);\n }\n if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n if (!this.value) {\n return;\n }\n if (!this.hasFilter()) {\n this.filteredValue = null;\n if (this.paginator) {\n this.totalRecords = this.value ? this.value.length : 0;\n }\n }\n else {\n let globalFilterFieldsArray;\n if (this.filters['global']) {\n if (!this.columns && !this.globalFilterFields)\n throw new Error('Global filtering requires dynamic columns or globalFilterFields to be defined.');\n else\n globalFilterFieldsArray = this.globalFilterFields || this.columns;\n }\n this.filteredValue = [];\n for (let i = 0; i < this.value.length; i++) {\n let localMatch = true;\n let globalMatch = false;\n let localFiltered = false;\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 if (Array.isArray(filterMeta)) {\n for (let meta of filterMeta) {\n localMatch = this.executeLocalFilter(filterField, this.value[i], meta);\n if ((meta.operator === FilterOperator.OR && localMatch) || (meta.operator === FilterOperator.AND && !localMatch)) {\n break;\n }\n }\n }\n else {\n localMatch = this.executeLocalFilter(filterField, this.value[i], filterMeta);\n }\n if (!localMatch) {\n break;\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 if (globalMatch) {\n break;\n }\n }\n }\n let matches;\n if (this.filters['global']) {\n matches = localFiltered ? (localFiltered && localMatch && globalMatch) : globalMatch;\n }\n else {\n matches = localFiltered && localMatch;\n }\n if (matches) {\n this.filteredValue.push(this.value[i]);\n }\n }\n if (this.filteredValue.length === this.value.length) {\n this.filteredValue = null;\n }\n if (this.paginator) {\n this.totalRecords = this.filteredValue ? this.filteredValue.length : this.value ? this.value.length : 0;\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 if (this.isStateful() && !this.restoringFilter) {\n this.saveState();\n }\n if (this.restoringFilter) {\n this.restoringFilter = false;\n }\n this.cd.markForCheck();\n if (this.scrollable) {\n this.resetScrollTop();\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 hasFilter() {\n let empty = true;\n for (let prop in this.filters) {\n if (this.filters.hasOwnProperty(prop)) {\n empty = false;\n break;\n }\n }\n return !empty;\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 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 if (this.lazy) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n else {\n this.totalRecords = (this._value ? this._value.length : 0);\n }\n }\n reset() {\n this.clear();\n }\n exportCSV(options) {\n let data;\n let csv = '';\n let columns = this.frozenColumns ? [...this.frozenColumns, ...this.columns] : this.columns;\n if (options && options.selectionOnly) {\n data = this.selection || [];\n }\n else {\n data = this.filteredValue || this.value;\n if (this.frozenValue) {\n data = data ? [...this.frozenValue, ...data] : this.frozenValue;\n }\n }\n //headers\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n if (column.exportable !== false && column.field) {\n csv += '\"' + (column.header || column.field) + '\"';\n if (i < (columns.length - 1)) {\n csv += this.csvSeparator;\n }\n }\n }\n //body\n data.forEach((record, i) => {\n csv += '\\n';\n for (let i = 0; i < columns.length; i++) {\n let column = columns[i];\n if (column.exportable !== false && column.field) {\n let cellData = ObjectUtils.resolveFieldData(record, column.field);\n if (cellData != null) {\n if (this.exportFunction) {\n cellData = this.exportFunction({\n data: cellData,\n field: column.field\n });\n }\n else\n cellData = String(cellData).replace(/\"/g, '\"\"');\n }\n else\n cellData = '';\n csv += '\"' + cellData + '\"';\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 if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', this.exportFilename + '.csv');\n link.click();\n }\n else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n resetScrollTop() {\n if (this.virtualScroll)\n this.scrollToVirtualIndex(0);\n else\n this.scrollTo({ top: 0 });\n }\n scrollToVirtualIndex(index) {\n if (this.virtualScrollBody) {\n this.virtualScrollBody.scrollToIndex(index);\n }\n }\n onScrollIndexChange(index) {\n if (this.lazy) {\n if (this.virtualScrollTimeout) {\n clearTimeout(this.virtualScrollTimeout);\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 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 scrollTo(options) {\n if (this.virtualScrollBody) {\n this.virtualScrollBody.scrollTo(options);\n }\n else {\n if (this.wrapperViewChild.nativeElement.scrollTo) {\n this.wrapperViewChild.nativeElement.scrollTo(options);\n }\n else {\n this.wrapperViewChild.nativeElement.scrollLeft = options.left;\n this.wrapperViewChild.nativeElement.scrollTop = options.top;\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 isEditingCellValid() {\n return (this.editingCell && DomHandler.find(this.editingCell, '.ng-invalid.ng-dirty').length === 0);\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({ field: this.editingCellField, data: this.editingCellData, originalEvent: event, index: this.editingCellRowIndex });\n this.editingCellField = null;\n this.editingCellData = null;\n this.editingCellRowIndex = null;\n this.unbindDocumentEditListener();\n this.cd.markForCheck();\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n this.selfClick = false;\n };\n document.addEventListener('click', this.documentEditListener);\n }\n }\n unbindDocumentEditListener() {\n if (this.documentEditListener) {\n document.removeEventListener('click', this.documentEditListener);\n this.documentEditListener = null;\n }\n }\n initRowEdit(rowData) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n this.editingRowKeys[dataKeyValue] = true;\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 cancelRowEdit(rowData) {\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n delete this.editingRowKeys[dataKeyValue];\n }\n toggleRow(rowData, event) {\n if (!this.dataKey) {\n throw new Error('dataKey must be defined to use row expansion');\n }\n let dataKeyValue = String(ObjectUtils.resolveFieldData(rowData, this.dataKey));\n if (this.expandedRowKeys[dataKeyValue] != null) {\n delete this.expandedRowKeys[dataKeyValue];\n this.onRowCollapse.emit({\n originalEvent: event,\n data: rowData\n });\n }\n else {\n if (this.rowExpandMode === 'single') {\n this.expandedRowKeys = {};\n }\n this.expandedRowKeys[dataKeyValue] = true;\n this.onRowExpand.emit({\n originalEvent: event,\n data: rowData\n });\n }\n if (event) {\n event.preventDefault();\n }\n if (this.isStateful()) {\n this.saveState();\n }\n }\n isRowExpanded(rowData) {\n return this.expandedRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n isRowEditing(rowData) {\n return this.editingRowKeys[String(ObjectUtils.resolveFieldData(rowData, this.dataKey))] === true;\n }\n isSingleSelectionMode() {\n return this.selectionMode === 'single';\n }\n isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\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 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 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 if (newColumnWidth >= minWidth) {\n if (this.columnResizeMode === 'fit') {\n let nextColumn = this.resizeColumnElement.nextElementSibling;\n let nextColumnWidth = nextColumn.offsetWidth - delta;\n if (newColumnWidth > 15 && nextColumnWidth > 15) {\n if (!this.scrollable) {\n this.resizeColumnElement.style.width = newColumnWidth + 'px';\n if (nextColumn) {\n nextColumn.style.width = nextColumnWidth + 'px';\n }\n }\n else {\n this.resizeTableCells(newColumnWidth, nextColumnWidth);\n }\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)\n this.tableViewChild.nativeElement.style.width = tableWidth + 'px';\n else\n this.resizeTableCells(newColumnWidth, null);\n }\n this.onColResize.emit({\n element: this.resizeColumnElement,\n delta: delta\n });\n if (this.isStateful()) {\n this.saveState();\n }\n }\n this.resizeHelperViewChild.nativeElement.style.display = 'none';\n DomHandler.removeClass(this.containerViewChild.nativeElement, 'p-unselectable-text');\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 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 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 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 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 }\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 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 }\n else {\n this.reorderIndicatorUpViewChild.nativeElement.style.display = 'block';\n this.reorderIndicatorDownViewChild.nativeElement.style.display = 'block';\n }\n }\n else {\n event.dataTransfer.dropEffect = 'none';\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 onColumnDrop(event, dropColumn) {\n event.preventDefault();\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 if (allowDrop && ((dropIndex - dragIndex == 1 && this.dropPosition === -1) || (dragIndex - dropIndex == 1 && this.dropPosition === 1))) {\n allowDrop = false;\n }\n if (allowDrop && ((dropIndex < dragIndex && this.dropPosition === 1))) {\n dropIndex = dropIndex + 1;\n }\n if (allowDrop && ((dropIndex > dragIndex && this.dropPosition === -1))) {\n dropIndex = dropIndex - 1;\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 if (this.isStateful()) {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.saveState();\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 onRowDragStart(event, index) {\n this.rowDragging = true;\n this.draggedRowIndex = index;\n event.dataTransfer.setData('text', 'b'); // For firefox\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 if (pageY < rowMidY) {\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n this.droppedRowIndex = index;\n if (prevRowElement)\n DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n }\n else {\n if (prevRowElement)\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n else\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n this.droppedRowIndex = index + 1;\n DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n }\n }\n }\n onRowDragLeave(event, rowElement) {\n let prevRowElement = rowElement.previousElementSibling;\n if (prevRowElement) {\n DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n }\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n }\n onRowDragEnd(event) {\n this.rowDragging = false;\n this.draggedRowIndex = null;\n this.droppedRowIndex = null;\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 }\n //cleanup\n this.onRowDragLeave(event, rowElement);\n this.onRowDragEnd(event);\n }\n isEmpty() {\n let data = this.filteredValue || this.value;\n return data == null || data.length == 0;\n }\n getBlockableElement() {\n return this.el.nativeElement.children[0];\n }\n getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n case 'session':\n return window.sessionStorage;\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 isStateful() {\n return this.stateKey != null;\n }\n saveState() {\n const storage = this.getStorage();\n let state = {};\n if (this.paginator) {\n state.first = this.first;\n state.rows = this.rows;\n }\n if (this.sortField) {\n state.sortField = this.sortField;\n state.sortOrder = this.sortOrder;\n }\n if (this.multiSortMeta) {\n state.multiSortMeta = this.multiSortMeta;\n }\n if (this.hasFilter()) {\n state.filters = this.filters;\n }\n if (this.resizableColumns) {\n this.saveColumnWidths(state);\n }\n if (this.reorderableColumns) {\n this.saveColumnOrder(state);\n }\n if (this.selection) {\n state.selection = this.selection;\n }\n if (Object.keys(this.expandedRowKeys).length) {\n state.expandedRowKeys = this.expandedRowKeys;\n }\n storage.setItem(this.stateKey, JSON.stringify(state));\n this.onStateSave.emit(state);\n }\n clearState() {\n const storage = this.getStorage();\n if (this.stateKey) {\n storage.removeItem(this.stateKey);\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 const reviver = function (key, value) {\n if (typeof value === \"string\" && dateFormat.test(value)) {\n return new Date(value);\n }\n return value;\n };\n if (stateString) {\n let state = JSON.parse(stateString, reviver);\n if (this.paginator) {\n if (this.first !== undefined) {\n this.first = state.first;\n this.firstChange.emit(this.first);\n }\n if (this.rows !== undefined) {\n this.rows = state.rows;\n this.rowsChange.emit(this.rows);\n }\n }\n if (state.sortField) {\n this.restoringSort = true;\n this._sortField = state.sortField;\n this._sortOrder = state.sortOrder;\n }\n if (state.multiSortMeta) {\n this.restoringSort = true;\n this._multiSortMeta = state.multiSortMeta;\n }\n if (state.filters) {\n this.restoringFilter = true;\n this.filters = state.filters;\n }\n if (this.resizableColumns) {\n this.columnWidthsState = state.columnWidths;\n this.tableWidthState = state.tableWidth;\n }\n if (state.expandedRowKeys) {\n this.expandedRowKeys = state.expandedRowKeys;\n }\n if (state.selection) {\n Promise.resolve(null).then(() => this.selectionChange.emit(state.selection));\n }\n this.stateRestored = true;\n this.onStateRestore.emit(state);\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 if (this.columnResizeMode === 'expand') {\n state.tableWidth = DomHandler.getOuterWidth(this.tableViewChild.nativeElement) + 'px';\n }\n }\n restoreColumnWidths() {\n if (this.columnWidthsState) {\n let widths = this.columnWidthsState.split(',');\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 this.createStyleElement();\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 }\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 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 restoreColumnOrder() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey);\n if (stateString) {\n let state = JSON.parse(stateString);\n let columnOrder = state.columnOrder;\n if (columnOrder) {\n let reorderedColumns = [];\n columnOrder.map(key => {\n let col = this.findColumnByKey(key);\n if (col) {\n reorderedColumns.push(col);\n }\n });\n this.columnOrderStateRestored = true;\n this.columns = reorderedColumns;\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)\n return col;\n else\n continue;\n }\n }\n else {\n return null;\n }\n }\n createStyleElement() {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n document.head.appendChild(this.styleElement);\n }\n getGroupRowsMeta() {\n return { field: this.groupRowsBy, order: this.groupRowsByOrder };\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 destroyResponsiveStyle() {\n if (this.responsiveStyleElement) {\n document.head.removeChild(this.responsiveStyleElement);\n this.responsiveStyleElement = null;\n }\n }\n destroyStyleElement() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n ngOnDestroy() {\n this.unbindDocumentEditListener();\n this.editingCell = null;\n this.initialized = null;\n if (this.virtualScrollSubscription) {\n this.virtualScrollSubscription.unsubscribe();\n }\n this.destroyStyleElement();\n this.destroyResponsiveStyle();\n }\n}\nTable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: Table, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: i1.FilterService }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });\nTable.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: Table, selector: \"p-table\", inputs: { frozenColumns: \"frozenColumns\", frozenValue: \"frozenValue\", style: \"style\", styleClass: \"styleClass\", tableStyle: \"tableStyle\", tableStyleClass: \"tableStyleClass\", paginator: \"paginator\", pageLinks: \"pageLinks\", rowsPerPageOptions: \"rowsPerPageOptions\", alwaysShowPaginator: \"alwaysShowPaginator\", paginatorPosition: \"paginatorPosition\", paginatorDropdownAppendTo: \"paginatorDropdownAppendTo\", paginatorDropdownScrollHeight: \"paginatorDropdownScrollHeight\", currentPageReportTemplate: \"currentPageReportTemplate\", showCurrentPageReport: \"showCurrentPageReport\", showJumpToPageDropdown: \"showJumpToPageDropdown\", showJumpToPageInput: \"showJumpToPageInput\", showFirstLastIcon: \"showFirstLastIcon\", showPageLinks: \"showPageLinks\", defaultSortOrder: \"defaultSortOrder\", sortMode: \"sortMode\", resetPageOnSort: \"resetPageOnSort\", selectionMode: \"selectionMode\", contextMenuSelection: \"contextMenuSelection\", contextMenuSelectionMode: \"contextMenuSelectionMode\", dataKey: \"dataKey\", metaKeySelection: \"metaKeySelection\", rowTrackBy: \"rowTrackBy\", lazy: \"lazy\", lazyLoadOnInit: \"lazyLoadOnInit\", compareSelectionBy: \"compareSelectionBy\", csvSeparator: \"csvSeparator\", exportFilename: \"exportFilename\", filters: \"filters\", globalFilterFields: \"globalFilterFields\", filterDelay: \"filterDelay\", filterLocale: \"filterLocale\", expandedRowKeys: \"expandedRowKeys\", editingRowKeys: \"editingRowKeys\", rowExpandMode: \"rowExpandMode\", scrollable: \"scrollable\", scrollDirection: \"scrollDirection\", rowGroupMode: \"rowGroupMode\", scrollHeight: \"scrollHeight\", virtualScroll: \"virtualScroll\", virtualScrollDelay: \"virtualScrollDelay\", virtualRowHeight: \"virtualRowHeight\", frozenWidth: \"frozenWidth\", responsive: \"responsive\", contextMenu: \"contextMenu\", resizableColumns: \"resizableColumns\", columnResizeMode: \"columnResizeMode\", reorderableColumns: \"reorderableColumns\", loading: \"loading\", loadingIcon: \"loadingIcon\", showLoader: \"showLoader\", rowHover: \"rowHover\", customSort: \"customSort\", showInitialSortBadge: \"showInitialSortBadge\", autoLayout: \"autoLayout\", exportFunction: \"exportFunction\", stateKey: \"stateKey\", stateStorage: \"stateStorage\", editMode: \"editMode\", groupRowsBy: \"groupRowsBy\", groupRowsByOrder: \"groupRowsByOrder\", minBufferPx: \"minBufferPx\", maxBufferPx: \"maxBufferPx\", responsiveLayout: \"responsiveLayout\", breakpoint: \"breakpoint\", value: \"value\", columns: \"columns\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", sortField: \"sortField\", sortOrder: \"sortOrder\", multiSortMeta: \"multiSortMeta\", selection: \"selection\" }, outputs: { selectionChange: \"selectionChange\", contextMenuSelectionChange: \"contextMenuSelectionChange\", onRowSelect: \"onRowSelect\", onRowUnselect: \"onRowUnselect\", onPage: \"onPage\", onSort: \"onSort\", onFilter: \"onFilter\", onLazyLoad: \"onLazyLoad\", onRowExpand: \"onRowExpand\", onRowCollapse: \"onRowCollapse\", onContextMenuSelect: \"onContextMenuSelect\", onColResize: \"onColResize\", onColReorder: \"onColReorder\", onRowReorder: \"onRowReorder\", onEditInit: \"onEditInit\", onEditComplete: \"onEditComplete\", onEditCancel: \"onEditCancel\", onHeaderCheckboxToggle: \"onHeaderCheckboxToggle\", sortFunction: \"sortFunction\", firstChange: \"firstChange\", rowsChange: \"rowsChange\", onStateSave: \"onStateSave\", onStateRestore: \"onStateRestore\" }, host: { classAttribute: \"p-element\" }, providers: [TableService], queries: [{ propertyName: \"templates\", predicate: PrimeTemplate }], viewQueries: [{ propertyName: \"containerViewChild\", first: true, predicate: [\"container\"], descendants: true }, { propertyName: \"resizeHelperViewChild\", first: true, predicate: [\"resizeHelper\"], descendants: true }, { propertyName: \"reorderIndicatorUpViewChild\", first: true, predicate: [\"reorderIndicatorUp\"], descendants: true }, { propertyName: \"reorderIndicatorDownViewChild\", first: true, predicate: [\"reorderIndicatorDown\"], descendants: true }, { propertyName: \"wrapperViewChild\", first: true, predicate: [\"wrapper\"], descendants: true }, { propertyName: \"tableViewChild\", first: true, predicate: [\"table\"], descendants: true }, { propertyName: \"tableHeaderViewChild\", first: true, predicate: [\"tableHeader\"], descendants: true }, { propertyName: \"virtualScrollBody\", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n
\n
\n \n
\n
\n \n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n\n
\n \n
\n\n
\n \n \n
\n `, isInline: true, 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\"], components: [{ type: i0.forwardRef(function () { return i2.Paginator; }), selector: \"p-paginator\", inputs: [\"pageLinkSize\", \"style\", \"styleClass\", \"alwaysShow\", \"templateLeft\", \"templateRight\", \"dropdownAppendTo\", \"dropdownScrollHeight\", \"currentPageReportTemplate\", \"showCurrentPageReport\", \"showFirstLastIcon\", \"totalRecords\", \"rows\", \"rowsPerPageOptions\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showPageLinks\", \"dropdownItemTemplate\", \"first\"], outputs: [\"onPageChange\"] }, { type: i0.forwardRef(function () { return TableBody; }), selector: \"[pTableBody]\", inputs: [\"pTableBody\", \"pTableBodyTemplate\", \"value\", \"frozen\", \"frozenRows\"] }, { type: i0.forwardRef(function () { return i3.CdkVirtualScrollViewport; }), selector: \"cdk-virtual-scroll-viewport\", inputs: [\"orientation\", \"appendOnly\"], outputs: [\"scrolledIndexChange\"] }], directives: [{ type: i0.forwardRef(function () { return i4.NgStyle; }), selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i0.forwardRef(function () { return i4.NgClass; }), selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i0.forwardRef(function () { return i4.NgIf; }), selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i0.forwardRef(function () { return i4.NgTemplateOutlet; }), selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }, { type: i0.forwardRef(function () { return i3.CdkFixedSizeVirtualScroll; }), selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: [\"itemSize\", \"minBufferPx\", \"maxBufferPx\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: Table, decorators: [{\n type: Component,\n args: [{ selector: 'p-table', template: `\n
\n
\n \n
\n
\n \n
\n \n\n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n\n \n\n
\n \n
\n\n
\n \n \n
\n `, providers: [TableService], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {\n 'class': 'p-element'\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 }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: TableService }, { type: i0.ChangeDetectorRef }, { type: i1.FilterService }, { type: i1.OverlayService }]; }, propDecorators: { frozenColumns: [{\n type: Input\n }], frozenValue: [{\n type: Input\n }], style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], tableStyle: [{\n type: Input\n }], tableStyleClass: [{\n type: Input\n }], paginator: [{\n type: Input\n }], pageLinks: [{\n type: Input\n }], rowsPerPageOptions: [{\n type: Input\n }], alwaysShowPaginator: [{\n type: Input\n }], paginatorPosition: [{\n type: Input\n }], paginatorDropdownAppendTo: [{\n type: Input\n }], paginatorDropdownScrollHeight: [{\n type: Input\n }], currentPageReportTemplate: [{\n type: Input\n }], showCurrentPageReport: [{\n type: Input\n }], showJumpToPageDropdown: [{\n type: Input\n }], showJumpToPageInput: [{\n type: Input\n }], showFirstLastIcon: [{\n type: Input\n }], showPageLinks: [{\n type: Input\n }], defaultSortOrder: [{\n type: Input\n }], sortMode: [{\n type: Input\n }], resetPageOnSort: [{\n type: Input\n }], selectionMode: [{\n type: Input\n }], selectionChange: [{\n type: Output\n }], contextMenuSelection: [{\n type: Input\n }], contextMenuSelectionChange: [{\n type: Output\n }], contextMenuSelectionMode: [{\n type: Input\n }], dataKey: [{\n type: Input\n }], metaKeySelection: [{\n type: Input\n }], rowTrackBy: [{\n type: Input\n }], lazy: [{\n type: Input\n }], lazyLoadOnInit: [{\n type: Input\n }], compareSelectionBy: [{\n type: Input\n }], csvSeparator: [{\n type: Input\n }], exportFilename: [{\n type: Input\n }], filters: [{\n type: Input\n }], globalFilterFields: [{\n type: Input\n }], filterDelay: [{\n type: Input\n }], filterLocale: [{\n type: Input\n }], expandedRowKeys: [{\n type: Input\n }], editingRowKeys: [{\n type: Input\n }], rowExpandMode: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], scrollDirection: [{\n type: Input\n }], rowGroupMode: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], virtualScroll: [{\n type: Input\n }], virtualScrollDelay: [{\n type: Input\n }], virtualRowHeight: [{\n type: Input\n }], frozenWidth: [{\n type: Input\n }], responsive: [{\n type: Input\n }], contextMenu: [{\n type: Input\n }], resizableColumns: [{\n type: Input\n }], columnResizeMode: [{\n type: Input\n }], reorderableColumns: [{\n type: Input\n }], loading: [{\n type: Input\n }], loadingIcon: [{\n type: Input\n }], showLoader: [{\n type: Input\n }], rowHover: [{\n type: Input\n }], customSort: [{\n type: Input\n }], showInitialSortBadge: [{\n type: Input\n }], autoLayout: [{\n type: Input\n }], exportFunction: [{\n type: Input\n }], stateKey: [{\n type: Input\n }], stateStorage: [{\n type: Input\n }], editMode: [{\n type: Input\n }], groupRowsBy: [{\n type: Input\n }], groupRowsByOrder: [{\n type: Input\n }], minBufferPx: [{\n type: Input\n }], maxBufferPx: [{\n type: Input\n }], responsiveLayout: [{\n type: Input\n }], breakpoint: [{\n type: Input\n }], onRowSelect: [{\n type: Output\n }], onRowUnselect: [{\n type: Output\n }], onPage: [{\n type: Output\n }], onSort: [{\n type: Output\n }], onFilter: [{\n type: Output\n }], onLazyLoad: [{\n type: Output\n }], onRowExpand: [{\n type: Output\n }], onRowCollapse: [{\n type: Output\n }], onContextMenuSelect: [{\n type: Output\n }], onColResize: [{\n type: Output\n }], onColReorder: [{\n type: Output\n }], onRowReorder: [{\n type: Output\n }], onEditInit: [{\n type: Output\n }], onEditComplete: [{\n type: Output\n }], onEditCancel: [{\n type: Output\n }], onHeaderCheckboxToggle: [{\n type: Output\n }], sortFunction: [{\n type: Output\n }], firstChange: [{\n type: Output\n }], rowsChange: [{\n type: Output\n }], onStateSave: [{\n type: Output\n }], onStateRestore: [{\n type: Output\n }], containerViewChild: [{\n type: ViewChild,\n args: ['container']\n }], resizeHelperViewChild: [{\n type: ViewChild,\n args: ['resizeHelper']\n }], reorderIndicatorUpViewChild: [{\n type: ViewChild,\n args: ['reorderIndicatorUp']\n }], reorderIndicatorDownViewChild: [{\n type: ViewChild,\n args: ['reorderIndicatorDown']\n }], wrapperViewChild: [{\n type: ViewChild,\n args: ['wrapper']\n }], tableViewChild: [{\n type: ViewChild,\n args: ['table']\n }], tableHeaderViewChild: [{\n type: ViewChild,\n args: ['tableHeader']\n }], virtualScrollBody: [{\n type: ViewChild,\n args: [CdkVirtualScrollViewport]\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }], value: [{\n type: Input\n }], columns: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], sortField: [{\n type: Input\n }], sortOrder: [{\n type: Input\n }], multiSortMeta: [{\n type: Input\n }], selection: [{\n type: Input\n }] } });\nclass TableBody {\n constructor(dt, tableService, cd, el) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.el = el;\n this.subscription = this.dt.tableService.valueSource$.subscribe(() => {\n if (this.dt.virtualScroll) {\n this.cd.detectChanges();\n }\n });\n }\n get value() {\n return this._value;\n }\n set value(val) {\n this._value = val;\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n ngAfterViewInit() {\n if (this.frozenRows) {\n this.updateFrozenRowStickyPosition();\n }\n if (this.dt.scrollable && this.dt.rowGroupMode === 'subheader') {\n this.updateFrozenRowGroupHeaderStickyPosition();\n }\n }\n shouldRenderRowGroupHeader(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - 1];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n }\n else {\n return true;\n }\n }\n shouldRenderRowGroupFooter(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowData = value[i + 1];\n if (nextRowData) {\n let nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== nextRowFieldData;\n }\n else {\n return true;\n }\n }\n shouldRenderRowspan(value, rowData, i) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let prevRowData = value[i - 1];\n if (prevRowData) {\n let previousRowFieldData = ObjectUtils.resolveFieldData(prevRowData, this.dt.groupRowsBy);\n return currentRowFieldData !== previousRowFieldData;\n }\n else {\n return true;\n }\n }\n calculateRowGroupSize(value, rowData, index) {\n let currentRowFieldData = ObjectUtils.resolveFieldData(rowData, this.dt.groupRowsBy);\n let nextRowFieldData = currentRowFieldData;\n let groupRowSpan = 0;\n while (currentRowFieldData === nextRowFieldData) {\n groupRowSpan++;\n let nextRowData = value[++index];\n if (nextRowData) {\n nextRowFieldData = ObjectUtils.resolveFieldData(nextRowData, this.dt.groupRowsBy);\n }\n else {\n break;\n }\n }\n return groupRowSpan === 1 ? null : groupRowSpan;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n updateFrozenRowStickyPosition() {\n this.el.nativeElement.style.top = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling) + 'px';\n }\n updateFrozenRowGroupHeaderStickyPosition() {\n if (this.el.nativeElement.previousElementSibling) {\n let tableHeaderHeight = DomHandler.getOuterHeight(this.el.nativeElement.previousElementSibling);\n this.dt.rowGroupHeaderStyleObject.top = tableHeaderHeight + 'px';\n }\n }\n}\nTableBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableBody, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nTableBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: TableBody, selector: \"[pTableBody]\", inputs: { columns: [\"pTableBody\", \"columns\"], template: [\"pTableBodyTemplate\", \"template\"], value: \"value\", frozen: \"frozen\", frozenRows: \"frozenRows\" }, host: { classAttribute: \"p-element\" }, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }, { type: i3.CdkVirtualForOf, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: [\"cdkVirtualForOf\", \"cdkVirtualForTrackBy\", \"cdkVirtualForTemplate\", \"cdkVirtualForTemplateCacheSize\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableBody, decorators: [{\n type: Component,\n args: [{\n selector: '[pTableBody]',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { columns: [{\n type: Input,\n args: [\"pTableBody\"]\n }], template: [{\n type: Input,\n args: [\"pTableBodyTemplate\"]\n }], value: [{\n type: Input\n }], frozen: [{\n type: Input\n }], frozenRows: [{\n type: Input\n }] } });\nclass RowGroupHeader {\n constructor(dt) {\n this.dt = dt;\n }\n get getFrozenRowGroupHeaderStickyPosition() {\n return this.dt.rowGroupHeaderStyleObject ? this.dt.rowGroupHeaderStyleObject.top : '';\n }\n}\nRowGroupHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: RowGroupHeader, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });\nRowGroupHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: RowGroupHeader, selector: \"[pRowGroupHeader]\", host: { properties: { \"style.top\": \"getFrozenRowGroupHeaderStickyPosition\" }, classAttribute: \"p-rowgroup-header p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: RowGroupHeader, decorators: [{\n type: Directive,\n args: [{\n selector: '[pRowGroupHeader]',\n host: {\n 'class': 'p-rowgroup-header p-element',\n '[style.top]': \"getFrozenRowGroupHeaderStickyPosition\"\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }]; } });\nclass FrozenColumn {\n constructor(el) {\n this.el = el;\n this.alignFrozen = \"left\";\n this._frozen = true;\n }\n get frozen() {\n return this._frozen;\n }\n set frozen(val) {\n this._frozen = val;\n this.updateStickyPosition();\n }\n ngAfterViewInit() {\n this.updateStickyPosition();\n }\n updateStickyPosition() {\n if (this._frozen) {\n if (this.alignFrozen === 'right') {\n let right = 0;\n let next = this.el.nativeElement.nextElementSibling;\n if (next) {\n right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right);\n }\n this.el.nativeElement.style.right = right + 'px';\n }\n else {\n let left = 0;\n let prev = this.el.nativeElement.previousElementSibling;\n if (prev) {\n left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left);\n }\n this.el.nativeElement.style.left = left + 'px';\n }\n let filterRow = this.el.nativeElement.parentElement.nextElementSibling;\n if (filterRow) {\n let index = DomHandler.index(this.el.nativeElement);\n if (filterRow.children && filterRow.children[index]) {\n filterRow.children[index].style.left = this.el.nativeElement.style.left;\n filterRow.children[index].style.right = this.el.nativeElement.style.right;\n }\n }\n }\n }\n}\nFrozenColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FrozenColumn, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nFrozenColumn.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: FrozenColumn, selector: \"[pFrozenColumn]\", inputs: { frozen: \"frozen\", alignFrozen: \"alignFrozen\" }, host: { properties: { \"class.p-frozen-column\": \"frozen\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: FrozenColumn, decorators: [{\n type: Directive,\n args: [{\n selector: '[pFrozenColumn]',\n host: {\n 'class': 'p-element',\n '[class.p-frozen-column]': 'frozen'\n }\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { frozen: [{\n type: Input\n }], alignFrozen: [{\n type: Input\n }] } });\nclass SortableColumn {\n constructor(dt) {\n this.dt = dt;\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n });\n }\n }\n ngOnInit() {\n if (this.isEnabled()) {\n this.updateSortState();\n }\n }\n updateSortState() {\n this.sorted = this.dt.isSorted(this.field);\n this.sortOrder = this.sorted ? (this.dt.sortOrder === 1 ? 'ascending' : 'descending') : 'none';\n }\n onClick(event) {\n if (this.isEnabled() && !this.isFilterElement(event.target)) {\n this.updateSortState();\n this.dt.sort({\n originalEvent: event,\n field: this.field\n });\n DomHandler.clearSelection();\n }\n }\n onEnterKey(event) {\n this.onClick(event);\n }\n isEnabled() {\n return this.pSortableColumnDisabled !== true;\n }\n isFilterElement(element) {\n return DomHandler.hasClass(element, 'pi-filter-icon') || DomHandler.hasClass(element, 'p-column-filter-menu-button');\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nSortableColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SortableColumn, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });\nSortableColumn.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: SortableColumn, selector: \"[pSortableColumn]\", inputs: { field: [\"pSortableColumn\", \"field\"], pSortableColumnDisabled: \"pSortableColumnDisabled\" }, host: { listeners: { \"click\": \"onClick($event)\", \"keydown.enter\": \"onEnterKey($event)\" }, properties: { \"class.p-sortable-column\": \"isEnabled()\", \"class.p-highlight\": \"sorted\", \"attr.tabindex\": \"isEnabled() ? \\\"0\\\" : null\", \"attr.role\": \"\\\"columnheader\\\"\", \"attr.aria-sort\": \"sortOrder\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SortableColumn, decorators: [{\n type: Directive,\n args: [{\n selector: '[pSortableColumn]',\n host: {\n 'class': 'p-element',\n '[class.p-sortable-column]': 'isEnabled()',\n '[class.p-highlight]': 'sorted',\n '[attr.tabindex]': 'isEnabled() ? \"0\" : null',\n '[attr.role]': '\"columnheader\"',\n '[attr.aria-sort]': 'sortOrder'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }]; }, propDecorators: { field: [{\n type: Input,\n args: [\"pSortableColumn\"]\n }], pSortableColumnDisabled: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onEnterKey: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }] } });\nclass SortIcon {\n constructor(dt, cd) {\n this.dt = dt;\n this.cd = cd;\n this.subscription = this.dt.tableService.sortSource$.subscribe(sortMeta => {\n this.updateSortState();\n });\n }\n ngOnInit() {\n this.updateSortState();\n }\n onClick(event) {\n event.preventDefault();\n }\n updateSortState() {\n if (this.dt.sortMode === 'single') {\n this.sortOrder = this.dt.isSorted(this.field) ? this.dt.sortOrder : 0;\n }\n else if (this.dt.sortMode === 'multiple') {\n let sortMeta = this.dt.getSortMeta(this.field);\n this.sortOrder = sortMeta ? sortMeta.order : 0;\n }\n this.cd.markForCheck();\n }\n getMultiSortMetaIndex() {\n let multiSortMeta = this.dt._multiSortMeta;\n let index = -1;\n if (multiSortMeta && this.dt.sortMode === 'multiple' && (this.dt.showInitialSortBadge || multiSortMeta.length > 1)) {\n for (let i = 0; i < multiSortMeta.length; i++) {\n let meta = multiSortMeta[i];\n if (meta.field === this.field || meta.field === this.field) {\n index = i;\n break;\n }\n }\n }\n return index;\n }\n getBadgeValue() {\n let index = this.getMultiSortMetaIndex();\n return this.dt.groupRowsBy && index > -1 ? index : index + 1;\n }\n isMultiSorted() {\n return this.dt.sortMode === 'multiple' && this.getMultiSortMetaIndex() > -1;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nSortIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SortIcon, deps: [{ token: Table }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nSortIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: SortIcon, selector: \"p-sortIcon\", inputs: { field: \"field\" }, host: { classAttribute: \"p-element\" }, ngImport: i0, template: `\n \n {{getBadgeValue()}}\n `, isInline: true, directives: [{ type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SortIcon, decorators: [{\n type: Component,\n args: [{\n selector: 'p-sortIcon',\n template: `\n \n {{getBadgeValue()}}\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { field: [{\n type: Input\n }] } });\nclass SelectableRow {\n constructor(dt, tableService) {\n this.dt = dt;\n this.tableService = tableService;\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n onTouchEnd(event) {\n if (this.isEnabled()) {\n this.dt.handleRowTouchEnd(event);\n }\n }\n onArrowDownKeyDown(event) {\n if (!this.isEnabled()) {\n return;\n }\n const row = event.currentTarget;\n const nextRow = this.findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n event.preventDefault();\n }\n onArrowUpKeyDown(event) {\n if (!this.isEnabled()) {\n return;\n }\n const row = event.currentTarget;\n const prevRow = this.findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n event.preventDefault();\n }\n onEnterKeyDown(event) {\n if (!this.isEnabled()) {\n return;\n }\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n onPageDownKeyDown() {\n if (this.dt.virtualScroll) {\n this.dt.virtualScrollBody.elementRef.nativeElement.focus();\n }\n }\n onSpaceKeydown() {\n if (this.dt.virtualScroll && !this.dt.editingCell) {\n this.dt.virtualScrollBody.elementRef.nativeElement.focus();\n }\n }\n findNextSelectableRow(row) {\n let nextRow = row.nextElementSibling;\n if (nextRow) {\n if (DomHandler.hasClass(nextRow, 'p-selectable-row'))\n return nextRow;\n else\n return this.findNextSelectableRow(nextRow);\n }\n else {\n return null;\n }\n }\n findPrevSelectableRow(row) {\n let prevRow = row.previousElementSibling;\n if (prevRow) {\n if (DomHandler.hasClass(prevRow, 'p-selectable-row'))\n return prevRow;\n else\n return this.findPrevSelectableRow(prevRow);\n }\n else {\n return null;\n }\n }\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nSelectableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SelectableRow, deps: [{ token: Table }, { token: TableService }], target: i0.ɵɵFactoryTarget.Directive });\nSelectableRow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: SelectableRow, selector: \"[pSelectableRow]\", inputs: { data: [\"pSelectableRow\", \"data\"], index: [\"pSelectableRowIndex\", \"index\"], pSelectableRowDisabled: \"pSelectableRowDisabled\" }, host: { listeners: { \"click\": \"onClick($event)\", \"touchend\": \"onTouchEnd($event)\", \"keydown.arrowdown\": \"onArrowDownKeyDown($event)\", \"keydown.arrowup\": \"onArrowUpKeyDown($event)\", \"keydown.enter\": \"onEnterKeyDown($event)\", \"keydown.shift.enter\": \"onEnterKeyDown($event)\", \"keydown.meta.enter\": \"onEnterKeyDown($event)\", \"keydown.pagedown\": \"onPageDownKeyDown()\", \"keydown.pageup\": \"onPageDownKeyDown()\", \"keydown.home\": \"onPageDownKeyDown()\", \"keydown.end\": \"onPageDownKeyDown()\", \"keydown.space\": \"onSpaceKeydown()\" }, properties: { \"class.p-selectable-row\": \"isEnabled()\", \"class.p-highlight\": \"selected\", \"attr.tabindex\": \"isEnabled() ? 0 : undefined\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SelectableRow, decorators: [{\n type: Directive,\n args: [{\n selector: '[pSelectableRow]',\n host: {\n 'class': 'p-element',\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: TableService }]; }, propDecorators: { data: [{\n type: Input,\n args: [\"pSelectableRow\"]\n }], index: [{\n type: Input,\n args: [\"pSelectableRowIndex\"]\n }], pSelectableRowDisabled: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onTouchEnd: [{\n type: HostListener,\n args: ['touchend', ['$event']]\n }], onArrowDownKeyDown: [{\n type: HostListener,\n args: ['keydown.arrowdown', ['$event']]\n }], onArrowUpKeyDown: [{\n type: HostListener,\n args: ['keydown.arrowup', ['$event']]\n }], onEnterKeyDown: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.shift.enter', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.meta.enter', ['$event']]\n }], onPageDownKeyDown: [{\n type: HostListener,\n args: ['keydown.pagedown']\n }, {\n type: HostListener,\n args: ['keydown.pageup']\n }, {\n type: HostListener,\n args: ['keydown.home']\n }, {\n type: HostListener,\n args: ['keydown.end']\n }], onSpaceKeydown: [{\n type: HostListener,\n args: ['keydown.space']\n }] } });\nclass SelectableRowDblClick {\n constructor(dt, tableService) {\n this.dt = dt;\n this.tableService = tableService;\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.selected = this.dt.isSelected(this.data);\n });\n }\n }\n ngOnInit() {\n if (this.isEnabled()) {\n this.selected = this.dt.isSelected(this.data);\n }\n }\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.handleRowClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n }\n }\n isEnabled() {\n return this.pSelectableRowDisabled !== true;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nSelectableRowDblClick.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SelectableRowDblClick, deps: [{ token: Table }, { token: TableService }], target: i0.ɵɵFactoryTarget.Directive });\nSelectableRowDblClick.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: SelectableRowDblClick, selector: \"[pSelectableRowDblClick]\", inputs: { data: [\"pSelectableRowDblClick\", \"data\"], index: [\"pSelectableRowIndex\", \"index\"], pSelectableRowDisabled: \"pSelectableRowDisabled\" }, host: { listeners: { \"dblclick\": \"onClick($event)\" }, properties: { \"class.p-selectable-row\": \"isEnabled()\", \"class.p-highlight\": \"selected\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SelectableRowDblClick, decorators: [{\n type: Directive,\n args: [{\n selector: '[pSelectableRowDblClick]',\n host: {\n 'class': 'p-element',\n '[class.p-selectable-row]': 'isEnabled()',\n '[class.p-highlight]': 'selected'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: TableService }]; }, propDecorators: { data: [{\n type: Input,\n args: [\"pSelectableRowDblClick\"]\n }], index: [{\n type: Input,\n args: [\"pSelectableRowIndex\"]\n }], pSelectableRowDisabled: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }] } });\nclass ContextMenuRow {\n constructor(dt, tableService, el) {\n this.dt = dt;\n this.tableService = tableService;\n this.el = el;\n if (this.isEnabled()) {\n this.subscription = this.dt.tableService.contextMenuSource$.subscribe((data) => {\n this.selected = this.dt.equals(this.data, data);\n });\n }\n }\n onContextMenu(event) {\n if (this.isEnabled()) {\n this.dt.handleRowRightClick({\n originalEvent: event,\n rowData: this.data,\n rowIndex: this.index\n });\n this.el.nativeElement.focus();\n event.preventDefault();\n }\n }\n isEnabled() {\n return this.pContextMenuRowDisabled !== true;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nContextMenuRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ContextMenuRow, deps: [{ token: Table }, { token: TableService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nContextMenuRow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ContextMenuRow, selector: \"[pContextMenuRow]\", inputs: { data: [\"pContextMenuRow\", \"data\"], index: [\"pContextMenuRowIndex\", \"index\"], pContextMenuRowDisabled: \"pContextMenuRowDisabled\" }, host: { listeners: { \"contextmenu\": \"onContextMenu($event)\" }, properties: { \"class.p-highlight-contextmenu\": \"selected\", \"attr.tabindex\": \"isEnabled() ? 0 : undefined\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ContextMenuRow, decorators: [{\n type: Directive,\n args: [{\n selector: '[pContextMenuRow]',\n host: {\n 'class': 'p-element',\n '[class.p-highlight-contextmenu]': 'selected',\n '[attr.tabindex]': 'isEnabled() ? 0 : undefined'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ElementRef }]; }, propDecorators: { data: [{\n type: Input,\n args: [\"pContextMenuRow\"]\n }], index: [{\n type: Input,\n args: [\"pContextMenuRowIndex\"]\n }], pContextMenuRowDisabled: [{\n type: Input\n }], onContextMenu: [{\n type: HostListener,\n args: ['contextmenu', ['$event']]\n }] } });\nclass RowToggler {\n constructor(dt) {\n this.dt = dt;\n }\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n }\n }\n isEnabled() {\n return this.pRowTogglerDisabled !== true;\n }\n}\nRowToggler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: RowToggler, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Directive });\nRowToggler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: RowToggler, selector: \"[pRowToggler]\", inputs: { data: [\"pRowToggler\", \"data\"], pRowTogglerDisabled: \"pRowTogglerDisabled\" }, host: { listeners: { \"click\": \"onClick($event)\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: RowToggler, decorators: [{\n type: Directive,\n args: [{\n selector: '[pRowToggler]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }]; }, propDecorators: { data: [{\n type: Input,\n args: ['pRowToggler']\n }], pRowTogglerDisabled: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\nclass ResizableColumn {\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-resizable-column');\n this.resizer = document.createElement('span');\n this.resizer.className = 'p-column-resizer';\n this.el.nativeElement.appendChild(this.resizer);\n this.zone.runOutsideAngular(() => {\n this.resizerMouseDownListener = this.onMouseDown.bind(this);\n this.resizer.addEventListener('mousedown', this.resizerMouseDownListener);\n });\n }\n }\n bindDocumentEvents() {\n this.zone.runOutsideAngular(() => {\n this.documentMouseMoveListener = this.onDocumentMouseMove.bind(this);\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseUpListener = this.onDocumentMouseUp.bind(this);\n document.addEventListener('mouseup', this.documentMouseUpListener);\n });\n }\n unbindDocumentEvents() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n }\n onMouseDown(event) {\n if (event.which === 1) {\n this.dt.onColumnResizeBegin(event);\n this.bindDocumentEvents();\n }\n }\n onDocumentMouseMove(event) {\n this.dt.onColumnResize(event);\n }\n onDocumentMouseUp(event) {\n this.dt.onColumnResizeEnd();\n this.unbindDocumentEvents();\n }\n isEnabled() {\n return this.pResizableColumnDisabled !== true;\n }\n ngOnDestroy() {\n if (this.resizerMouseDownListener) {\n this.resizer.removeEventListener('mousedown', this.resizerMouseDownListener);\n }\n this.unbindDocumentEvents();\n }\n}\nResizableColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ResizableColumn, deps: [{ token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nResizableColumn.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ResizableColumn, selector: \"[pResizableColumn]\", inputs: { pResizableColumnDisabled: \"pResizableColumnDisabled\" }, host: { classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ResizableColumn, decorators: [{\n type: Directive,\n args: [{\n selector: '[pResizableColumn]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { pResizableColumnDisabled: [{\n type: Input\n }] } });\nclass ReorderableColumn {\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.bindEvents();\n }\n }\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.onMouseDown.bind(this);\n this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n this.dragStartListener = this.onDragStart.bind(this);\n this.el.nativeElement.addEventListener('dragstart', this.dragStartListener);\n this.dragOverListener = this.onDragEnter.bind(this);\n this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n this.dragEnterListener = this.onDragEnter.bind(this);\n this.el.nativeElement.addEventListener('dragenter', this.dragEnterListener);\n this.dragLeaveListener = this.onDragLeave.bind(this);\n this.el.nativeElement.addEventListener('dragleave', this.dragLeaveListener);\n });\n }\n unbindEvents() {\n if (this.mouseDownListener) {\n document.removeEventListener('mousedown', this.mouseDownListener);\n this.mouseDownListener = null;\n }\n if (this.dragOverListener) {\n document.removeEventListener('dragover', this.dragOverListener);\n this.dragOverListener = null;\n }\n if (this.dragEnterListener) {\n document.removeEventListener('dragenter', this.dragEnterListener);\n this.dragEnterListener = null;\n }\n if (this.dragEnterListener) {\n document.removeEventListener('dragenter', this.dragEnterListener);\n this.dragEnterListener = null;\n }\n if (this.dragLeaveListener) {\n document.removeEventListener('dragleave', this.dragLeaveListener);\n this.dragLeaveListener = null;\n }\n }\n onMouseDown(event) {\n if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || DomHandler.hasClass(event.target, 'p-column-resizer'))\n this.el.nativeElement.draggable = false;\n else\n this.el.nativeElement.draggable = true;\n }\n onDragStart(event) {\n this.dt.onColumnDragStart(event, this.el.nativeElement);\n }\n onDragOver(event) {\n event.preventDefault();\n }\n onDragEnter(event) {\n this.dt.onColumnDragEnter(event, this.el.nativeElement);\n }\n onDragLeave(event) {\n this.dt.onColumnDragLeave(event);\n }\n onDrop(event) {\n if (this.isEnabled()) {\n this.dt.onColumnDrop(event, this.el.nativeElement);\n }\n }\n isEnabled() {\n return this.pReorderableColumnDisabled !== true;\n }\n ngOnDestroy() {\n this.unbindEvents();\n }\n}\nReorderableColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ReorderableColumn, deps: [{ token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nReorderableColumn.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ReorderableColumn, selector: \"[pReorderableColumn]\", inputs: { pReorderableColumnDisabled: \"pReorderableColumnDisabled\" }, host: { listeners: { \"drop\": \"onDrop($event)\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ReorderableColumn, decorators: [{\n type: Directive,\n args: [{\n selector: '[pReorderableColumn]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { pReorderableColumnDisabled: [{\n type: Input\n }], onDrop: [{\n type: HostListener,\n args: ['drop', ['$event']]\n }] } });\nclass EditableColumn {\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n ngAfterViewInit() {\n if (this.isEnabled()) {\n DomHandler.addClass(this.el.nativeElement, 'p-editable-column');\n }\n }\n onClick(event) {\n if (this.isEnabled()) {\n this.dt.selfClick = true;\n if (this.dt.editingCell) {\n if (this.dt.editingCell !== this.el.nativeElement) {\n if (!this.dt.isEditingCellValid()) {\n return;\n }\n this.closeEditingCell(true, event);\n this.openCell();\n }\n }\n else {\n this.openCell();\n }\n }\n }\n openCell() {\n this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field, this.rowIndex);\n DomHandler.addClass(this.el.nativeElement, 'p-cell-editing');\n this.dt.onEditInit.emit({ field: this.field, data: this.data, index: this.rowIndex });\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n let focusCellSelector = this.pFocusCellSelector || 'input, textarea, select';\n let focusableElement = DomHandler.findSingle(this.el.nativeElement, focusCellSelector);\n if (focusableElement) {\n focusableElement.focus();\n }\n }, 50);\n });\n this.overlayEventListener = (e) => {\n if (this.el && this.el.nativeElement.contains(e.target)) {\n this.dt.selfClick = true;\n }\n };\n this.dt.overlaySubscription = this.dt.overlayService.clickObservable.subscribe(this.overlayEventListener);\n }\n closeEditingCell(completed, event) {\n if (completed)\n this.dt.onEditComplete.emit({ field: this.dt.editingCellField, data: this.dt.editingCellData, originalEvent: event, index: this.dt.editingCellRowIndex });\n else\n this.dt.onEditCancel.emit({ field: this.dt.editingCellField, data: this.dt.editingCellData, originalEvent: event, index: this.dt.editingCellRowIndex });\n DomHandler.removeClass(this.dt.editingCell, 'p-cell-editing');\n this.dt.editingCell = null;\n this.dt.editingCellData = null;\n this.dt.editingCellField = null;\n this.dt.unbindDocumentEditListener();\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n onEnterKeyDown(event) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n event.preventDefault();\n }\n }\n onEscapeKeyDown(event) {\n if (this.isEnabled()) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(false, event);\n }\n event.preventDefault();\n }\n }\n onShiftKeyDown(event) {\n if (this.isEnabled()) {\n if (event.shiftKey)\n this.moveToPreviousCell(event);\n else {\n this.moveToNextCell(event);\n }\n }\n }\n onArrowDown(event) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findNextEditableColumnByIndex(currentCell, cellIndex);\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n event.preventDefault();\n }\n }\n }\n onArrowUp(event) {\n if (this.isEnabled()) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let cellIndex = DomHandler.index(currentCell);\n let targetCell = this.findPrevEditableColumnByIndex(currentCell, cellIndex);\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n }\n event.preventDefault();\n }\n }\n }\n onArrowLeft(event) {\n if (this.isEnabled()) {\n this.moveToPreviousCell(event);\n }\n }\n onArrowRight(event) {\n if (this.isEnabled()) {\n this.moveToNextCell(event);\n }\n }\n findCell(element) {\n if (element) {\n let cell = element;\n while (cell && !DomHandler.hasClass(cell, 'p-cell-editing')) {\n cell = cell.parentElement;\n }\n return cell;\n }\n else {\n return null;\n }\n }\n moveToPreviousCell(event) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findPreviousEditableColumn(currentCell);\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n moveToNextCell(event) {\n let currentCell = this.findCell(event.target);\n if (currentCell) {\n let targetCell = this.findNextEditableColumn(currentCell);\n if (targetCell) {\n if (this.dt.isEditingCellValid()) {\n this.closeEditingCell(true, event);\n }\n DomHandler.invokeElementMethod(event.target, 'blur');\n DomHandler.invokeElementMethod(targetCell, 'click');\n event.preventDefault();\n }\n }\n }\n findPreviousEditableColumn(cell) {\n let prevCell = cell.previousElementSibling;\n if (!prevCell) {\n let previousRow = cell.parentElement.previousElementSibling;\n if (previousRow) {\n prevCell = previousRow.lastElementChild;\n }\n }\n if (prevCell) {\n if (DomHandler.hasClass(prevCell, 'p-editable-column'))\n return prevCell;\n else\n return this.findPreviousEditableColumn(prevCell);\n }\n else {\n return null;\n }\n }\n findNextEditableColumn(cell) {\n let nextCell = cell.nextElementSibling;\n if (!nextCell) {\n let nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n nextCell = nextRow.firstElementChild;\n }\n }\n if (nextCell) {\n if (DomHandler.hasClass(nextCell, 'p-editable-column'))\n return nextCell;\n else\n return this.findNextEditableColumn(nextCell);\n }\n else {\n return null;\n }\n }\n findNextEditableColumnByIndex(cell, index) {\n let nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n let nextCell = nextRow.children[index];\n if (nextCell && DomHandler.hasClass(nextCell, 'p-editable-column')) {\n return nextCell;\n }\n return null;\n }\n else {\n return null;\n }\n }\n findPrevEditableColumnByIndex(cell, index) {\n let prevRow = cell.parentElement.previousElementSibling;\n if (prevRow) {\n let prevCell = prevRow.children[index];\n if (prevCell && DomHandler.hasClass(prevCell, 'p-editable-column')) {\n return prevCell;\n }\n return null;\n }\n else {\n return null;\n }\n }\n isEnabled() {\n return this.pEditableColumnDisabled !== true;\n }\n ngOnDestroy() {\n if (this.dt.overlaySubscription) {\n this.dt.overlaySubscription.unsubscribe();\n }\n }\n}\nEditableColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: EditableColumn, deps: [{ token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nEditableColumn.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: EditableColumn, selector: \"[pEditableColumn]\", inputs: { data: [\"pEditableColumn\", \"data\"], field: [\"pEditableColumnField\", \"field\"], rowIndex: [\"pEditableColumnRowIndex\", \"rowIndex\"], pEditableColumnDisabled: \"pEditableColumnDisabled\", pFocusCellSelector: \"pFocusCellSelector\" }, host: { listeners: { \"click\": \"onClick($event)\", \"keydown.enter\": \"onEnterKeyDown($event)\", \"keydown.escape\": \"onEscapeKeyDown($event)\", \"keydown.tab\": \"onShiftKeyDown($event)\", \"keydown.shift.tab\": \"onShiftKeyDown($event)\", \"keydown.meta.tab\": \"onShiftKeyDown($event)\", \"keydown.arrowdown\": \"onArrowDown($event)\", \"keydown.arrowup\": \"onArrowUp($event)\", \"keydown.arrowleft\": \"onArrowLeft($event)\", \"keydown.arrowright\": \"onArrowRight($event)\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: EditableColumn, decorators: [{\n type: Directive,\n args: [{\n selector: '[pEditableColumn]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { data: [{\n type: Input,\n args: [\"pEditableColumn\"]\n }], field: [{\n type: Input,\n args: [\"pEditableColumnField\"]\n }], rowIndex: [{\n type: Input,\n args: [\"pEditableColumnRowIndex\"]\n }], pEditableColumnDisabled: [{\n type: Input\n }], pFocusCellSelector: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onEnterKeyDown: [{\n type: HostListener,\n args: ['keydown.enter', ['$event']]\n }], onEscapeKeyDown: [{\n type: HostListener,\n args: ['keydown.escape', ['$event']]\n }], onShiftKeyDown: [{\n type: HostListener,\n args: ['keydown.tab', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.shift.tab', ['$event']]\n }, {\n type: HostListener,\n args: ['keydown.meta.tab', ['$event']]\n }], onArrowDown: [{\n type: HostListener,\n args: ['keydown.arrowdown', ['$event']]\n }], onArrowUp: [{\n type: HostListener,\n args: ['keydown.arrowup', ['$event']]\n }], onArrowLeft: [{\n type: HostListener,\n args: ['keydown.arrowleft', ['$event']]\n }], onArrowRight: [{\n type: HostListener,\n args: ['keydown.arrowright', ['$event']]\n }] } });\nclass EditableRow {\n constructor(el) {\n this.el = el;\n }\n isEnabled() {\n return this.pEditableRowDisabled !== true;\n }\n}\nEditableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: EditableRow, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nEditableRow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: EditableRow, selector: \"[pEditableRow]\", inputs: { data: [\"pEditableRow\", \"data\"], pEditableRowDisabled: \"pEditableRowDisabled\" }, host: { classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: EditableRow, decorators: [{\n type: Directive,\n args: [{\n selector: '[pEditableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { data: [{\n type: Input,\n args: [\"pEditableRow\"]\n }], pEditableRowDisabled: [{\n type: Input\n }] } });\nclass InitEditableRow {\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n onClick(event) {\n this.dt.initRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n}\nInitEditableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: InitEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });\nInitEditableRow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: InitEditableRow, selector: \"[pInitEditableRow]\", host: { listeners: { \"click\": \"onClick($event)\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: InitEditableRow, decorators: [{\n type: Directive,\n args: [{\n selector: '[pInitEditableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: EditableRow }]; }, propDecorators: { onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\nclass SaveEditableRow {\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n onClick(event) {\n this.dt.saveRowEdit(this.editableRow.data, this.editableRow.el.nativeElement);\n event.preventDefault();\n }\n}\nSaveEditableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SaveEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });\nSaveEditableRow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: SaveEditableRow, selector: \"[pSaveEditableRow]\", host: { listeners: { \"click\": \"onClick($event)\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: SaveEditableRow, decorators: [{\n type: Directive,\n args: [{\n selector: '[pSaveEditableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: EditableRow }]; }, propDecorators: { onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\nclass CancelEditableRow {\n constructor(dt, editableRow) {\n this.dt = dt;\n this.editableRow = editableRow;\n }\n onClick(event) {\n this.dt.cancelRowEdit(this.editableRow.data);\n event.preventDefault();\n }\n}\nCancelEditableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: CancelEditableRow, deps: [{ token: Table }, { token: EditableRow }], target: i0.ɵɵFactoryTarget.Directive });\nCancelEditableRow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: CancelEditableRow, selector: \"[pCancelEditableRow]\", host: { listeners: { \"click\": \"onClick($event)\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: CancelEditableRow, decorators: [{\n type: Directive,\n args: [{\n selector: '[pCancelEditableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: EditableRow }]; }, propDecorators: { onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\nclass CellEditor {\n constructor(dt, editableColumn, editableRow) {\n this.dt = dt;\n this.editableColumn = editableColumn;\n this.editableRow = editableRow;\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'input':\n this.inputTemplate = item.template;\n break;\n case 'output':\n this.outputTemplate = item.template;\n break;\n }\n });\n }\n get editing() {\n return (this.dt.editingCell && this.editableColumn && this.dt.editingCell === this.editableColumn.el.nativeElement) ||\n (this.editableRow && this.dt.editMode === 'row' && this.dt.isRowEditing(this.editableRow.data));\n }\n}\nCellEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: CellEditor, deps: [{ token: Table }, { token: EditableColumn, optional: true }, { token: EditableRow, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nCellEditor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: CellEditor, selector: \"p-cellEditor\", host: { classAttribute: \"p-element\" }, queries: [{ propertyName: \"templates\", predicate: PrimeTemplate }], ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: CellEditor, decorators: [{\n type: Component,\n args: [{\n selector: 'p-cellEditor',\n template: `\n \n \n \n \n \n \n `,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () {\n return [{ type: Table }, { type: EditableColumn, decorators: [{\n type: Optional\n }] }, { type: EditableRow, decorators: [{\n type: Optional\n }] }];\n }, propDecorators: { templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] } });\nclass TableRadioButton {\n constructor(dt, tableService, cd) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.cd.markForCheck();\n });\n }\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n onClick(event) {\n if (!this.disabled) {\n this.dt.toggleRowWithRadio({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n DomHandler.clearSelection();\n }\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nTableRadioButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableRadioButton, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nTableRadioButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: TableRadioButton, selector: \"p-tableRadioButton\", inputs: { disabled: \"disabled\", value: \"value\", index: \"index\", inputId: \"inputId\", name: \"name\", ariaLabel: \"ariaLabel\" }, host: { classAttribute: \"p-element\" }, viewQueries: [{ propertyName: \"boxViewChild\", first: true, predicate: [\"box\"], descendants: true }], ngImport: i0, template: `\n
\n
\n \n
\n
\n
\n
\n
\n `, isInline: true, directives: [{ type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableRadioButton, decorators: [{\n type: Component,\n args: [{\n selector: 'p-tableRadioButton',\n template: `\n
\n
\n \n
\n
\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{\n type: Input\n }], value: [{\n type: Input\n }], index: [{\n type: Input\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], boxViewChild: [{\n type: ViewChild,\n args: ['box']\n }] } });\nclass TableCheckbox {\n constructor(dt, tableService, cd) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.subscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.dt.isSelected(this.value);\n this.cd.markForCheck();\n });\n }\n ngOnInit() {\n this.checked = this.dt.isSelected(this.value);\n }\n onClick(event) {\n if (!this.disabled) {\n this.dt.toggleRowWithCheckbox({\n originalEvent: event,\n rowIndex: this.index\n }, this.value);\n }\n DomHandler.clearSelection();\n }\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\nTableCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nTableCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: TableCheckbox, selector: \"p-tableCheckbox\", inputs: { disabled: \"disabled\", value: \"value\", index: \"index\", inputId: \"inputId\", name: \"name\", required: \"required\", ariaLabel: \"ariaLabel\" }, host: { classAttribute: \"p-element\" }, viewQueries: [{ propertyName: \"boxViewChild\", first: true, predicate: [\"box\"], descendants: true }], ngImport: i0, template: `\n
\n
\n \n
\n
\n \n
\n
\n `, isInline: true, directives: [{ type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'p-tableCheckbox',\n template: `\n
\n
\n \n
\n
\n \n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{\n type: Input\n }], value: [{\n type: Input\n }], index: [{\n type: Input\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], required: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], boxViewChild: [{\n type: ViewChild,\n args: ['box']\n }] } });\nclass TableHeaderCheckbox {\n constructor(dt, tableService, cd) {\n this.dt = dt;\n this.tableService = tableService;\n this.cd = cd;\n this.valueChangeSubscription = this.dt.tableService.valueSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n this.selectionChangeSubscription = this.dt.tableService.selectionSource$.subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n onClick(event) {\n if (!this.disabled) {\n if (this.dt.value && this.dt.value.length > 0) {\n this.dt.toggleRowsWithCheckbox(event, !this.checked);\n }\n }\n DomHandler.clearSelection();\n }\n onFocus() {\n DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n onBlur() {\n DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');\n }\n isDisabled() {\n return this.disabled || !this.dt.value || !this.dt.value.length;\n }\n ngOnDestroy() {\n if (this.selectionChangeSubscription) {\n this.selectionChangeSubscription.unsubscribe();\n }\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n updateCheckedState() {\n this.cd.markForCheck();\n if (this.dt.filteredValue && !this.dt.lazy) {\n const val = this.dt.filteredValue;\n return (val && val.length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.isAllFilteredValuesChecked());\n }\n else {\n const val = this.dt.value;\n const length = this.dt.lazy ? this.dt._totalRecords : val ? val.length : 0;\n return (val && length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.dt.selection.length === length);\n }\n }\n isAllFilteredValuesChecked() {\n if (!this.dt.filteredValue) {\n return false;\n }\n else {\n for (let rowData of this.dt.filteredValue) {\n if (!this.dt.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\nTableHeaderCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableHeaderCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nTableHeaderCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: TableHeaderCheckbox, selector: \"p-tableHeaderCheckbox\", inputs: { disabled: \"disabled\", inputId: \"inputId\", name: \"name\", ariaLabel: \"ariaLabel\" }, host: { classAttribute: \"p-element\" }, viewQueries: [{ propertyName: \"boxViewChild\", first: true, predicate: [\"box\"], descendants: true }], ngImport: i0, template: `\n
\n
\n \n
\n
\n \n
\n
\n `, isInline: true, directives: [{ type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableHeaderCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'p-tableHeaderCheckbox',\n template: `\n
\n
\n \n
\n
\n \n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { boxViewChild: [{\n type: ViewChild,\n args: ['box']\n }], disabled: [{\n type: Input\n }], inputId: [{\n type: Input\n }], name: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }] } });\nclass ReorderableRowHandle {\n constructor(el) {\n this.el = el;\n }\n ngAfterViewInit() {\n DomHandler.addClass(this.el.nativeElement, 'p-datatable-reorderablerow-handle');\n }\n}\nReorderableRowHandle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ReorderableRowHandle, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nReorderableRowHandle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ReorderableRowHandle, selector: \"[pReorderableRowHandle]\", inputs: { index: [\"pReorderableRowHandle\", \"index\"] }, host: { classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ReorderableRowHandle, decorators: [{\n type: Directive,\n args: [{\n selector: '[pReorderableRowHandle]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { index: [{\n type: Input,\n args: [\"pReorderableRowHandle\"]\n }] } });\nclass ReorderableRow {\n constructor(dt, el, zone) {\n this.dt = dt;\n this.el = el;\n this.zone = zone;\n }\n ngAfterViewInit() {\n if (this.isEnabled()) {\n this.el.nativeElement.droppable = true;\n this.bindEvents();\n }\n }\n bindEvents() {\n this.zone.runOutsideAngular(() => {\n this.mouseDownListener = this.onMouseDown.bind(this);\n this.el.nativeElement.addEventListener('mousedown', this.mouseDownListener);\n this.dragStartListener = this.onDragStart.bind(this);\n this.el.nativeElement.addEventListener('dragstart', this.dragStartListener);\n this.dragEndListener = this.onDragEnd.bind(this);\n this.el.nativeElement.addEventListener('dragend', this.dragEndListener);\n this.dragOverListener = this.onDragOver.bind(this);\n this.el.nativeElement.addEventListener('dragover', this.dragOverListener);\n this.dragLeaveListener = this.onDragLeave.bind(this);\n this.el.nativeElement.addEventListener('dragleave', this.dragLeaveListener);\n });\n }\n unbindEvents() {\n if (this.mouseDownListener) {\n document.removeEventListener('mousedown', this.mouseDownListener);\n this.mouseDownListener = null;\n }\n if (this.dragStartListener) {\n document.removeEventListener('dragstart', this.dragStartListener);\n this.dragStartListener = null;\n }\n if (this.dragEndListener) {\n document.removeEventListener('dragend', this.dragEndListener);\n this.dragEndListener = null;\n }\n if (this.dragOverListener) {\n document.removeEventListener('dragover', this.dragOverListener);\n this.dragOverListener = null;\n }\n if (this.dragLeaveListener) {\n document.removeEventListener('dragleave', this.dragLeaveListener);\n this.dragLeaveListener = null;\n }\n }\n onMouseDown(event) {\n if (DomHandler.hasClass(event.target, 'p-datatable-reorderablerow-handle'))\n this.el.nativeElement.draggable = true;\n else\n this.el.nativeElement.draggable = false;\n }\n onDragStart(event) {\n this.dt.onRowDragStart(event, this.index);\n }\n onDragEnd(event) {\n this.dt.onRowDragEnd(event);\n this.el.nativeElement.draggable = false;\n }\n onDragOver(event) {\n this.dt.onRowDragOver(event, this.index, this.el.nativeElement);\n event.preventDefault();\n }\n onDragLeave(event) {\n this.dt.onRowDragLeave(event, this.el.nativeElement);\n }\n isEnabled() {\n return this.pReorderableRowDisabled !== true;\n }\n onDrop(event) {\n if (this.isEnabled() && this.dt.rowDragging) {\n this.dt.onRowDrop(event, this.el.nativeElement);\n }\n event.preventDefault();\n }\n}\nReorderableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ReorderableRow, deps: [{ token: Table }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nReorderableRow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ReorderableRow, selector: \"[pReorderableRow]\", inputs: { index: [\"pReorderableRow\", \"index\"], pReorderableRowDisabled: \"pReorderableRowDisabled\" }, host: { listeners: { \"drop\": \"onDrop($event)\" }, classAttribute: \"p-element\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ReorderableRow, decorators: [{\n type: Directive,\n args: [{\n selector: '[pReorderableRow]',\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { index: [{\n type: Input,\n args: [\"pReorderableRow\"]\n }], pReorderableRowDisabled: [{\n type: Input\n }], onDrop: [{\n type: HostListener,\n args: ['drop', ['$event']]\n }] } });\nclass ColumnFilterFormElement {\n constructor(dt) {\n this.dt = dt;\n this.useGrouping = true;\n }\n ngOnInit() {\n this.filterCallback = value => {\n this.filterConstraint.value = value;\n this.dt._filter();\n };\n }\n onModelChange(value) {\n this.filterConstraint.value = value;\n if (this.type === 'boolean' || value === '') {\n this.dt._filter();\n }\n }\n onTextInputEnterKeyDown(event) {\n this.dt._filter();\n event.preventDefault();\n }\n onNumericInputKeyDown(event) {\n if (event.key === 'Enter') {\n this.dt._filter();\n event.preventDefault();\n }\n }\n}\nColumnFilterFormElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ColumnFilterFormElement, deps: [{ token: Table }], target: i0.ɵɵFactoryTarget.Component });\nColumnFilterFormElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ColumnFilterFormElement, selector: \"p-columnFilterFormElement\", inputs: { field: \"field\", type: \"type\", filterConstraint: \"filterConstraint\", filterTemplate: \"filterTemplate\", placeholder: \"placeholder\", minFractionDigits: \"minFractionDigits\", maxFractionDigits: \"maxFractionDigits\", prefix: \"prefix\", suffix: \"suffix\", locale: \"locale\", localeMatcher: \"localeMatcher\", currency: \"currency\", currencyDisplay: \"currencyDisplay\", useGrouping: \"useGrouping\" }, host: { classAttribute: \"p-element\" }, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, components: [{ type: i5.InputNumber, selector: \"p-inputNumber\", inputs: [\"showButtons\", \"format\", \"buttonLayout\", \"inputId\", \"styleClass\", \"style\", \"placeholder\", \"size\", \"maxlength\", \"tabindex\", \"title\", \"ariaLabel\", \"ariaRequired\", \"name\", \"required\", \"autocomplete\", \"min\", \"max\", \"incrementButtonClass\", \"decrementButtonClass\", \"incrementButtonIcon\", \"decrementButtonIcon\", \"readonly\", \"step\", \"allowEmpty\", \"locale\", \"localeMatcher\", \"mode\", \"currency\", \"currencyDisplay\", \"useGrouping\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"inputStyle\", \"inputStyleClass\", \"disabled\"], outputs: [\"onInput\", \"onFocus\", \"onBlur\", \"onKeyDown\"] }, { type: i6.TriStateCheckbox, selector: \"p-triStateCheckbox\", inputs: [\"disabled\", \"name\", \"ariaLabelledBy\", \"tabindex\", \"inputId\", \"style\", \"styleClass\", \"label\", \"readonly\", \"checkboxTrueIcon\", \"checkboxFalseIcon\"], outputs: [\"onChange\"] }, { type: i7.Calendar, selector: \"p-calendar\", inputs: [\"style\", \"styleClass\", \"inputStyle\", \"inputId\", \"name\", \"inputStyleClass\", \"placeholder\", \"ariaLabelledBy\", \"iconAriaLabel\", \"disabled\", \"dateFormat\", \"multipleSeparator\", \"rangeSeparator\", \"inline\", \"showOtherMonths\", \"selectOtherMonths\", \"showIcon\", \"icon\", \"appendTo\", \"readonlyInput\", \"shortYearCutoff\", \"monthNavigator\", \"yearNavigator\", \"hourFormat\", \"timeOnly\", \"stepHour\", \"stepMinute\", \"stepSecond\", \"showSeconds\", \"required\", \"showOnFocus\", \"showWeek\", \"dataType\", \"selectionMode\", \"maxDateCount\", \"showButtonBar\", \"todayButtonStyleClass\", \"clearButtonStyleClass\", \"autoZIndex\", \"baseZIndex\", \"panelStyleClass\", \"panelStyle\", \"keepInvalid\", \"hideOnDateTimeSelect\", \"numberOfMonths\", \"view\", \"touchUI\", \"timeSeparator\", \"focusTrap\", \"firstDayOfWeek\", \"showTransitionOptions\", \"hideTransitionOptions\", \"tabindex\", \"defaultDate\", \"minDate\", \"maxDate\", \"disabledDates\", \"disabledDays\", \"yearRange\", \"showTime\", \"locale\"], outputs: [\"onFocus\", \"onBlur\", \"onClose\", \"onSelect\", \"onInput\", \"onTodayClick\", \"onClearClick\", \"onMonthChange\", \"onYearChange\", \"onClickOutside\", \"onShow\"] }], directives: [{ type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }, { type: i4.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { type: i4.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { type: i8.InputText, selector: \"[pInputText]\" }, { type: i9.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i9.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ColumnFilterFormElement, decorators: [{\n type: Component,\n args: [{\n selector: 'p-columnFilterFormElement',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n `,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: Table }]; }, propDecorators: { field: [{\n type: Input\n }], type: [{\n type: Input\n }], filterConstraint: [{\n type: Input\n }], filterTemplate: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], minFractionDigits: [{\n type: Input\n }], maxFractionDigits: [{\n type: Input\n }], prefix: [{\n type: Input\n }], suffix: [{\n type: Input\n }], locale: [{\n type: Input\n }], localeMatcher: [{\n type: Input\n }], currency: [{\n type: Input\n }], currencyDisplay: [{\n type: Input\n }], useGrouping: [{\n type: Input\n }] } });\nclass ColumnFilter {\n constructor(el, dt, renderer, config, overlayService) {\n this.el = el;\n this.dt = dt;\n this.renderer = renderer;\n this.config = config;\n this.overlayService = overlayService;\n this.type = 'text';\n this.display = 'row';\n this.showMenu = true;\n this.operator = FilterOperator.AND;\n this.showOperator = true;\n this.showClearButton = true;\n this.showApplyButton = true;\n this.showMatchModes = true;\n this.showAddButton = true;\n this.hideOnClear = false;\n this.maxConstraints = 2;\n this.useGrouping = true;\n }\n ngOnInit() {\n if (!this.dt.filters[this.field]) {\n this.initFieldFilterConstraint();\n }\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n });\n this.resetSubscription = this.dt.tableService.resetSource$.subscribe(() => {\n this.clearFilter();\n });\n this.generateMatchModeOptions();\n this.generateOperatorOptions();\n }\n generateMatchModeOptions() {\n var _a;\n this.matchModes = this.matchModeOptions ||\n ((_a = this.config.filterMatchModeOptions[this.type]) === null || _a === void 0 ? void 0 : _a.map(key => {\n return { label: this.config.getTranslation(key), value: key };\n }));\n }\n generateOperatorOptions() {\n this.operatorOptions = [\n { label: this.config.getTranslation(TranslationKeys.MATCH_ALL), value: FilterOperator.AND },\n { label: this.config.getTranslation(TranslationKeys.MATCH_ANY), value: FilterOperator.OR }\n ];\n }\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'header':\n this.headerTemplate = item.template;\n break;\n case 'filter':\n this.filterTemplate = item.template;\n break;\n case 'footer':\n this.footerTemplate = item.template;\n break;\n default:\n this.filterTemplate = item.template;\n break;\n }\n });\n }\n initFieldFilterConstraint() {\n let defaultMatchMode = this.getDefaultMatchMode();\n this.dt.filters[this.field] = this.display == 'row' ? { value: null, matchMode: defaultMatchMode } : [{ value: null, matchMode: defaultMatchMode, operator: this.operator }];\n }\n onMenuMatchModeChange(value, filterMeta) {\n filterMeta.matchMode = value;\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n onRowMatchModeChange(matchMode) {\n this.dt.filters[this.field].matchMode = matchMode;\n this.dt._filter();\n this.hide();\n }\n onRowMatchModeKeyDown(event) {\n let item = event.target;\n switch (event.key) {\n case 'ArrowDown':\n var nextItem = this.findNextItem(item);\n if (nextItem) {\n item.removeAttribute('tabindex');\n nextItem.tabIndex = '0';\n nextItem.focus();\n }\n event.preventDefault();\n break;\n case 'ArrowUp':\n var prevItem = this.findPrevItem(item);\n if (prevItem) {\n item.removeAttribute('tabindex');\n prevItem.tabIndex = '0';\n prevItem.focus();\n }\n event.preventDefault();\n break;\n }\n }\n onRowClearItemClick() {\n this.clearFilter();\n this.hide();\n }\n isRowMatchModeSelected(matchMode) {\n return this.dt.filters[this.field].matchMode === matchMode;\n }\n addConstraint() {\n this.dt.filters[this.field].push({ value: null, matchMode: this.getDefaultMatchMode(), operator: this.getDefaultOperator() });\n this.dt._filter();\n }\n removeConstraint(filterMeta) {\n this.dt.filters[this.field] = this.dt.filters[this.field].filter(meta => meta !== filterMeta);\n this.dt._filter();\n }\n onOperatorChange(value) {\n this.dt.filters[this.field].forEach(filterMeta => {\n filterMeta.operator = value;\n this.operator = value;\n });\n if (!this.showApplyButton) {\n this.dt._filter();\n }\n }\n toggleMenu() {\n this.overlayVisible = !this.overlayVisible;\n }\n onToggleButtonKeyDown(event) {\n switch (event.key) {\n case 'Escape':\n case 'Tab':\n this.overlayVisible = false;\n break;\n case 'ArrowDown':\n if (this.overlayVisible) {\n let focusable = DomHandler.getFocusableElements(this.overlay);\n if (focusable) {\n focusable[0].focus();\n }\n event.preventDefault();\n }\n else if (event.altKey) {\n this.overlayVisible = true;\n event.preventDefault();\n }\n break;\n }\n }\n onEscape() {\n this.overlayVisible = false;\n this.icon.nativeElement.focus();\n }\n findNextItem(item) {\n let nextItem = item.nextElementSibling;\n if (nextItem)\n return DomHandler.hasClass(nextItem, 'p-column-filter-separator') ? this.findNextItem(nextItem) : nextItem;\n else\n return item.parentElement.firstElementChild;\n }\n findPrevItem(item) {\n let prevItem = item.previousElementSibling;\n if (prevItem)\n return DomHandler.hasClass(prevItem, 'p-column-filter-separator') ? this.findPrevItem(prevItem) : prevItem;\n else\n return item.parentElement.lastElementChild;\n }\n onContentClick() {\n this.selfClick = true;\n }\n onOverlayAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n document.body.appendChild(this.overlay);\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n DomHandler.absolutePosition(this.overlay, this.icon.nativeElement);\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n this.overlayEventListener = (e) => {\n if (this.overlay && this.overlay.contains(e.target)) {\n this.selfClick = true;\n }\n };\n this.overlaySubscription = this.overlayService.clickObservable.subscribe(this.overlayEventListener);\n break;\n case 'void':\n this.onOverlayHide();\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n break;\n }\n }\n onOverlayAnimationEnd(event) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\n break;\n }\n }\n getDefaultMatchMode() {\n if (this.matchMode) {\n return this.matchMode;\n }\n else {\n if (this.type === 'text')\n return FilterMatchMode.STARTS_WITH;\n else if (this.type === 'numeric')\n return FilterMatchMode.EQUALS;\n else if (this.type === 'date')\n return FilterMatchMode.DATE_IS;\n else\n return FilterMatchMode.CONTAINS;\n }\n }\n getDefaultOperator() {\n return this.dt.filters ? this.dt.filters[this.field][0].operator : this.operator;\n }\n hasRowFilter() {\n return this.dt.filters[this.field] && !this.dt.isFilterBlank(this.dt.filters[this.field].value);\n }\n get fieldConstraints() {\n return this.dt.filters ? this.dt.filters[this.field] : null;\n }\n get showRemoveIcon() {\n return this.fieldConstraints ? this.fieldConstraints.length > 1 : false;\n }\n get showMenuButton() {\n return this.showMenu && (this.display === 'row' ? this.type !== 'boolean' : true);\n }\n get isShowOperator() {\n return this.showOperator && this.type !== 'boolean';\n }\n get isShowAddConstraint() {\n return this.showAddButton && this.type !== 'boolean' && (this.fieldConstraints && this.fieldConstraints.length < this.maxConstraints);\n }\n get applyButtonLabel() {\n return this.config.getTranslation(TranslationKeys.APPLY);\n }\n get clearButtonLabel() {\n return this.config.getTranslation(TranslationKeys.CLEAR);\n }\n get addRuleButtonLabel() {\n return this.config.getTranslation(TranslationKeys.ADD_RULE);\n }\n get removeRuleButtonLabel() {\n return this.config.getTranslation(TranslationKeys.REMOVE_RULE);\n }\n get noFilterLabel() {\n return this.config.getTranslation(TranslationKeys.NO_FILTER);\n }\n hasFilter() {\n let fieldFilter = this.dt.filters[this.field];\n if (fieldFilter) {\n if (Array.isArray(fieldFilter))\n return !this.dt.isFilterBlank(fieldFilter[0].value);\n else\n return !this.dt.isFilterBlank(fieldFilter.value);\n }\n return false;\n }\n isOutsideClicked(event) {\n return !(this.overlay.isSameNode(event.target) || this.overlay.contains(event.target)\n || this.icon.nativeElement.isSameNode(event.target) || this.icon.nativeElement.contains(event.target)\n || DomHandler.hasClass(event.target, 'p-column-filter-add-button') || DomHandler.hasClass(event.target.parentElement, 'p-column-filter-add-button')\n || DomHandler.hasClass(event.target, 'p-column-filter-remove-button') || DomHandler.hasClass(event.target.parentElement, 'p-column-filter-remove-button'));\n }\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n const documentTarget = this.el ? this.el.nativeElement.ownerDocument : 'document';\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', event => {\n if (this.overlayVisible && !this.selfClick && this.isOutsideClicked(event)) {\n this.hide();\n }\n this.selfClick = false;\n });\n }\n }\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n this.selfClick = false;\n }\n }\n bindDocumentResizeListener() {\n this.documentResizeListener = () => this.hide();\n window.addEventListener('resize', this.documentResizeListener);\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.icon.nativeElement, () => {\n if (this.overlayVisible) {\n this.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n hide() {\n this.overlayVisible = false;\n }\n onOverlayHide() {\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n clearFilter() {\n this.initFieldFilterConstraint();\n this.dt._filter();\n if (this.hideOnClear)\n this.hide();\n }\n applyFilter() {\n this.dt._filter();\n this.hide();\n }\n ngOnDestroy() {\n if (this.overlay) {\n this.el.nativeElement.appendChild(this.overlay);\n ZIndexUtils.clear(this.overlay);\n this.onOverlayHide();\n }\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n if (this.resetSubscription) {\n this.resetSubscription.unsubscribe();\n }\n if (this.overlaySubscription) {\n this.overlaySubscription.unsubscribe();\n }\n }\n}\nColumnFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ColumnFilter, deps: [{ token: i0.ElementRef }, { token: Table }, { token: i0.Renderer2 }, { token: i1.PrimeNGConfig }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });\nColumnFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: ColumnFilter, selector: \"p-columnFilter\", inputs: { field: \"field\", type: \"type\", display: \"display\", showMenu: \"showMenu\", matchMode: \"matchMode\", operator: \"operator\", showOperator: \"showOperator\", showClearButton: \"showClearButton\", showApplyButton: \"showApplyButton\", showMatchModes: \"showMatchModes\", showAddButton: \"showAddButton\", hideOnClear: \"hideOnClear\", placeholder: \"placeholder\", matchModeOptions: \"matchModeOptions\", maxConstraints: \"maxConstraints\", minFractionDigits: \"minFractionDigits\", maxFractionDigits: \"maxFractionDigits\", prefix: \"prefix\", suffix: \"suffix\", locale: \"locale\", localeMatcher: \"localeMatcher\", currency: \"currency\", currencyDisplay: \"currencyDisplay\", useGrouping: \"useGrouping\" }, host: { classAttribute: \"p-element\" }, queries: [{ propertyName: \"templates\", predicate: PrimeTemplate }], viewQueries: [{ propertyName: \"icon\", first: true, predicate: [\"icon\"], descendants: true }], ngImport: i0, template: `\n
\n \n \n \n
\n \n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n
\n
\n `, isInline: true, components: [{ type: ColumnFilterFormElement, selector: \"p-columnFilterFormElement\", inputs: [\"field\", \"type\", \"filterConstraint\", \"filterTemplate\", \"placeholder\", \"minFractionDigits\", \"maxFractionDigits\", \"prefix\", \"suffix\", \"locale\", \"localeMatcher\", \"currency\", \"currencyDisplay\", \"useGrouping\"] }, { type: i10.Dropdown, selector: \"p-dropdown\", inputs: [\"scrollHeight\", \"filter\", \"name\", \"style\", \"panelStyle\", \"styleClass\", \"panelStyleClass\", \"readonly\", \"required\", \"editable\", \"appendTo\", \"tabindex\", \"placeholder\", \"filterPlaceholder\", \"filterLocale\", \"inputId\", \"selectId\", \"dataKey\", \"filterBy\", \"autofocus\", \"resetFilterOnHide\", \"dropdownIcon\", \"optionLabel\", \"optionValue\", \"optionDisabled\", \"optionGroupLabel\", \"optionGroupChildren\", \"autoDisplayFirst\", \"group\", \"showClear\", \"emptyFilterMessage\", \"emptyMessage\", \"virtualScroll\", \"itemSize\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"ariaFilterLabel\", \"ariaLabelledBy\", \"filterMatchMode\", \"maxlength\", \"tooltip\", \"tooltipPosition\", \"tooltipPositionStyle\", \"tooltipStyleClass\", \"autofocusFilter\", \"disabled\", \"options\", \"filterValue\"], outputs: [\"onChange\", \"onFilter\", \"onFocus\", \"onBlur\", \"onClick\", \"onShow\", \"onHide\", \"onClear\"] }], directives: [{ type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }, { type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i9.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i9.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { type: i11.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"label\", \"icon\", \"loading\"] }], animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'scaleY(0.8)' }),\n animate('.12s cubic-bezier(0, 0, 0.2, 1)')\n ]),\n transition(':leave', [\n animate('.1s linear', style({ opacity: 0 }))\n ])\n ])\n ], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: ColumnFilter, decorators: [{\n type: Component,\n args: [{\n selector: 'p-columnFilter',\n template: `\n
\n \n \n \n
\n \n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n
\n
\n `,\n animations: [\n trigger('overlayAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'scaleY(0.8)' }),\n animate('.12s cubic-bezier(0, 0, 0.2, 1)')\n ]),\n transition(':leave', [\n animate('.1s linear', style({ opacity: 0 }))\n ])\n ])\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'p-element'\n }\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Table }, { type: i0.Renderer2 }, { type: i1.PrimeNGConfig }, { type: i1.OverlayService }]; }, propDecorators: { field: [{\n type: Input\n }], type: [{\n type: Input\n }], display: [{\n type: Input\n }], showMenu: [{\n type: Input\n }], matchMode: [{\n type: Input\n }], operator: [{\n type: Input\n }], showOperator: [{\n type: Input\n }], showClearButton: [{\n type: Input\n }], showApplyButton: [{\n type: Input\n }], showMatchModes: [{\n type: Input\n }], showAddButton: [{\n type: Input\n }], hideOnClear: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], matchModeOptions: [{\n type: Input\n }], maxConstraints: [{\n type: Input\n }], minFractionDigits: [{\n type: Input\n }], maxFractionDigits: [{\n type: Input\n }], prefix: [{\n type: Input\n }], suffix: [{\n type: Input\n }], locale: [{\n type: Input\n }], localeMatcher: [{\n type: Input\n }], currency: [{\n type: Input\n }], currencyDisplay: [{\n type: Input\n }], useGrouping: [{\n type: Input\n }], icon: [{\n type: ViewChild,\n args: ['icon']\n }], templates: [{\n type: ContentChildren,\n args: [PrimeTemplate]\n }] } });\nclass TableModule {\n}\nTableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nTableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableModule, declarations: [Table, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, TableBody, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement], imports: [CommonModule, PaginatorModule, InputTextModule, DropdownModule, ScrollingModule, FormsModule, ButtonModule, SelectButtonModule, CalendarModule, InputNumberModule, TriStateCheckboxModule], exports: [Table, SharedModule, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, SortIcon, TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ScrollingModule, ColumnFilter] });\nTableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableModule, imports: [[CommonModule, PaginatorModule, InputTextModule, DropdownModule, ScrollingModule, FormsModule, ButtonModule, SelectButtonModule, CalendarModule, InputNumberModule, TriStateCheckboxModule], SharedModule,\n ScrollingModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: TableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, PaginatorModule, InputTextModule, DropdownModule, ScrollingModule, FormsModule, ButtonModule, SelectButtonModule, CalendarModule, InputNumberModule, TriStateCheckboxModule],\n exports: [Table, SharedModule, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, SortIcon,\n TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ScrollingModule, ColumnFilter],\n declarations: [Table, SortableColumn, FrozenColumn, RowGroupHeader, SelectableRow, RowToggler, ContextMenuRow, ResizableColumn, ReorderableColumn, EditableColumn, CellEditor, TableBody, SortIcon,\n TableRadioButton, TableCheckbox, TableHeaderCheckbox, ReorderableRowHandle, ReorderableRow, SelectableRowDblClick, EditableRow, InitEditableRow, SaveEditableRow, CancelEditableRow, ColumnFilter, ColumnFilterFormElement]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CancelEditableRow, CellEditor, ColumnFilter, ColumnFilterFormElement, ContextMenuRow, EditableColumn, EditableRow, FrozenColumn, InitEditableRow, ReorderableColumn, ReorderableRow, ReorderableRowHandle, ResizableColumn, RowGroupHeader, RowToggler, SaveEditableRow, SelectableRow, SelectableRowDblClick, SortIcon, SortableColumn, Table, TableBody, TableCheckbox, TableHeaderCheckbox, TableModule, TableRadioButton, TableService };\n"]},"metadata":{},"sourceType":"module"}