{"version":3,"sources":["node_modules/@progress/kendo-angular-gantt/fesm2020/progress-kendo-angular-gantt.mjs","node_modules/@progress/kendo-angular-treelist/fesm2020/progress-kendo-angular-treelist.mjs","node_modules/@progress/kendo-date-math/dist/es2015/first-day-in-week.js","node_modules/@progress/kendo-angular-pager/fesm2020/progress-kendo-angular-pager.mjs"],"sourcesContent":["/**-----------------------------------------------------------------------------------------\n* Copyright © 2024 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport * as i0 from '@angular/core';\nimport { Injectable, Directive, Input, EventEmitter, Inject, LOCALE_ID, HostBinding, ViewChild, forwardRef, Component, ViewContainerRef, Output, Optional, QueryList, SkipSelf, Host, ContentChildren, ContentChild, HostListener, isDevMode, NgModule } from '@angular/core';\nimport { ColumnBase, ColumnComponent, ColumnGroupComponent, SpanColumnComponent, TreeListSpacerComponent, DataBoundTreeComponent, ExpandableTreeComponent, TreeListComponent, CustomMessagesComponent as CustomMessagesComponent$2, FlatBindingDirective, HierarchyBindingDirective, ExpandableDirective, ColumnResizingService } from '@progress/kendo-angular-treelist';\nimport { cloneDate, addWeeks, firstDayInWeek, addDays, lastDayOfMonth, getDate, firstDayOfMonth, addMonths, lastMonthOfYear, MS_PER_HOUR, MS_PER_DAY, isEqual } from '@progress/kendo-date-math';\nimport { Subject, Subscription, fromEvent, forkJoin, EMPTY, isObservable, of } from 'rxjs';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { Keys, isDocumentAvailable, closestInScope, matchesClasses, EventsOutsideAngularDirective, DraggableDirective, PreventableEvent, anyChanged, closest, isFocusable, focusableSelector, isVisible, shouldShowValidationUI, hasObservers, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';\nimport { map, distinctUntilChanged, take, switchMap, expand, reduce, filter } from 'rxjs/operators';\nimport { getter, touchEnabled } from '@progress/kendo-common';\nimport * as i1 from '@progress/kendo-angular-intl';\nimport { IntlService } from '@progress/kendo-angular-intl';\nimport { __decorate, __param, __metadata } from 'tslib';\nimport { orderBy } from '@progress/kendo-data-query';\nimport { xIcon, plusIcon, minusIcon, saveIcon, cancelOutlineIcon, trashIcon } from '@progress/kendo-svg-icons';\nimport { NgClass, NgIf, NgTemplateOutlet, NgFor } from '@angular/common';\nimport { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';\nimport * as i1$1 from '@progress/kendo-angular-l10n';\nimport { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport * as i4 from '@angular/forms';\nimport { FormArray, FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';\nimport { GridComponent, SelectionDirective, ToolbarTemplateDirective as ToolbarTemplateDirective$1, ColumnComponent as ColumnComponent$1, CellTemplateDirective as CellTemplateDirective$1 } from '@progress/kendo-angular-grid';\nimport { ButtonComponent, ButtonGroupComponent, DropDownButtonComponent } from '@progress/kendo-angular-buttons';\nimport { DropDownListComponent } from '@progress/kendo-angular-dropdowns';\nimport { FormFieldComponent, TextBoxDirective, NumericTextBoxComponent } from '@progress/kendo-angular-inputs';\nimport { LabelComponent } from '@progress/kendo-angular-label';\nimport { DateTimePickerComponent, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService as NavigationService$1, TimePickerDOMService, HoursService, MinutesService, SecondsService, MillisecondsService, DayPeriodService } from '@progress/kendo-angular-dateinputs';\nimport { DialogComponent, CustomMessagesComponent as CustomMessagesComponent$1, DialogActionsComponent, DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';\nimport { TabStripComponent, TabStripTabComponent, TabContentDirective, SplitterComponent, SplitterPaneComponent } from '@progress/kendo-angular-layout';\nimport * as i3 from '@progress/kendo-angular-popup';\nimport { PopupService } from '@progress/kendo-angular-popup';\n\n/**\n * @hidden\n */\nconst _c0 = [\"task\"];\nconst _c1 = a0 => ({\n $implicit: a0\n});\nconst _c2 = a0 => ({\n click: a0\n});\nconst _c3 = (a0, a1) => ({\n $implicit: a0,\n elementWidth: a1\n});\nfunction GanttTaskComponent_ng_container_2_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.mapper.extractFromTask(ctx_r0.dataItem, \"title\"), \" \");\n }\n}\nfunction GanttTaskComponent_ng_container_2_ng_template_5_Template(rf, ctx) {}\nfunction GanttTaskComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"div\", 4);\n i0.ɵɵelementStart(2, \"div\", 5)(3, \"div\", 6);\n i0.ɵɵtemplate(4, GanttTaskComponent_ng_container_2_ng_container_4_Template, 2, 1, \"ng-container\", 7)(5, GanttTaskComponent_ng_container_2_ng_template_5_Template, 0, 0, \"ng-template\", 8, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"span\", 9)(8, \"span\", 10);\n i0.ɵɵelement(9, \"kendo-icon-wrapper\", 11);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const taskContent_r2 = i0.ɵɵreference(6);\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx_r0.completionOverlayWidth, \"px\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.taskContentTemplate)(\"ngIfElse\", taskContent_r2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.taskContentTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(9, _c1, ctx_r0.dataItem));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"kendoEventsOutsideAngular\", i0.ɵɵpureFunction1(11, _c2, ctx_r0.onTaskDelete))(\"scope\", ctx_r0);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"svgIcon\", ctx_r0.xIcon);\n }\n}\nfunction GanttTaskComponent_3_ng_template_0_Template(rf, ctx) {}\nfunction GanttTaskComponent_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, GanttTaskComponent_3_ng_template_0_Template, 0, 0, \"ng-template\", 8);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.taskTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c3, ctx_r0.dataItem, ctx_r0.taskWidth));\n }\n}\nfunction GanttTaskComponent_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"div\", 12)(2, \"div\", 13);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"k-display-block\", ctx_r0.touchEnabled);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"k-display-block\", ctx_r0.touchEnabled);\n }\n}\nfunction GanttSummaryTaskComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵelement(1, \"div\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"width\", ctx_r0.taskWidth, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx_r0.completionOverlayWidth, \"px\");\n }\n}\nfunction GanttSummaryTaskComponent_ng_template_3_Template(rf, ctx) {}\nfunction GanttSummaryTaskComponent_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"div\", 8)(2, \"div\", 9);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"k-display-block\", ctx_r0.touchEnabled);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"k-display-block\", ctx_r0.touchEnabled);\n }\n}\nfunction GanttMilestoneTaskComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"div\", 3)(2, \"div\", 4);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"k-display-block\", ctx_r0.touchEnabled);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"k-display-block\", ctx_r0.touchEnabled);\n }\n}\nconst _c4 = [\"timelineRow\"];\nconst _c5 = [\"kendoGanttTasksTableBody\", \"\"];\nfunction GanttTasksTableBodyComponent_tr_0_kendo_gantt_milestone_task_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-gantt-milestone-task\", 6);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const item_r2 = ctx_r0.$implicit;\n const index_r3 = ctx_r0.index;\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"dataItem\", item_r2.data)(\"level\", item_r2.level)(\"activeView\", ctx_r3.activeView)(\"taskClass\", ctx_r3.taskClass)(\"selectable\", ctx_r3.selectable)(\"isSelected\", ctx_r3.isTaskSelected)(\"index\", index_r3)(\"renderDependencyDragClues\", ctx_r3.renderDependencyDragClues);\n }\n}\nfunction GanttTasksTableBodyComponent_tr_0_ng_template_4_kendo_gantt_summary_task_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-gantt-summary-task\", 9);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n const item_r2 = ctx_r0.$implicit;\n const index_r3 = ctx_r0.index;\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"dataItem\", item_r2.data)(\"level\", item_r2.level)(\"template\", ctx_r3.summaryTaskTemplate)(\"activeView\", ctx_r3.activeView)(\"taskClass\", ctx_r3.taskClass)(\"selectable\", ctx_r3.selectable)(\"isSelected\", ctx_r3.isTaskSelected)(\"isExpanded\", ctx_r3.isExpanded)(\"index\", index_r3)(\"renderDependencyDragClues\", ctx_r3.renderDependencyDragClues);\n }\n}\nfunction GanttTasksTableBodyComponent_tr_0_ng_template_4_kendo_gantt_task_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-gantt-task\", 10);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n const item_r2 = ctx_r0.$implicit;\n const index_r3 = ctx_r0.index;\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"dataItem\", item_r2.data)(\"level\", item_r2.level)(\"taskContentTemplate\", ctx_r3.taskContentTemplate)(\"taskTemplate\", ctx_r3.taskTemplate)(\"activeView\", ctx_r3.activeView)(\"taskClass\", ctx_r3.taskClass)(\"selectable\", ctx_r3.selectable)(\"isSelected\", ctx_r3.isTaskSelected)(\"index\", index_r3)(\"renderDependencyDragClues\", ctx_r3.renderDependencyDragClues);\n }\n}\nfunction GanttTasksTableBodyComponent_tr_0_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, GanttTasksTableBodyComponent_tr_0_ng_template_4_kendo_gantt_summary_task_0_Template, 1, 10, \"kendo-gantt-summary-task\", 7)(1, GanttTasksTableBodyComponent_tr_0_ng_template_4_kendo_gantt_task_1_Template, 1, 10, \"kendo-gantt-task\", 8);\n }\n if (rf & 2) {\n const item_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"ngIf\", item_r2.hasChildren);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !item_r2.hasChildren);\n }\n}\nfunction GanttTasksTableBodyComponent_tr_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\", 3, 0)(2, \"td\", 4);\n i0.ɵɵtemplate(3, GanttTasksTableBodyComponent_tr_0_kendo_gantt_milestone_task_3_Template, 1, 8, \"kendo-gantt-milestone-task\", 5)(4, GanttTasksTableBodyComponent_tr_0_ng_template_4_Template, 2, 2, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r2 = ctx.$implicit;\n const task_r5 = i0.ɵɵreference(5);\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r3.isMileStone(item_r2))(\"ngIfElse\", task_r5);\n }\n}\nconst _c6 = [\"kendoGanttHeaderTableBody\", \"\"];\nfunction GanttHeaderTableBodyComponent_td_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 2);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r1 = ctx.$implicit;\n i0.ɵɵattribute(\"colspan\", item_r1.span);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(item_r1.text);\n }\n}\nfunction GanttHeaderTableBodyComponent_td_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 2);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r2 = ctx.$implicit;\n i0.ɵɵattribute(\"colspan\", item_r2.span === 7 ? item_r2.span : 1)(\"title\", item_r2.text);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(item_r2.text);\n }\n}\nconst _c7 = [\"timelineContent\"];\nconst _c8 = [\"timelineColumns\"];\nconst _c9 = [\"timelineHeaderWrap\"];\nconst _c10 = [\"tasksContainer\"];\nconst _c11 = [\"dragPopupContainer\"];\nconst _c12 = [\"dependencyDragCreatePolyline\"];\nfunction GanttTimelineComponent_tr_11_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\");\n i0.ɵɵelement(1, \"td\", 24);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const i_r2 = ctx.index;\n i0.ɵɵclassMapInterpolate1(\"k-table-row\", i_r2 % 2 ? \" k-alt k-table-alt-row\" : \"\", \"\");\n }\n}\nfunction GanttTimelineComponent_col_15_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"col\");\n }\n}\nfunction GanttTimelineComponent_td_18_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"td\", 24);\n }\n if (rf & 2) {\n const item_r3 = ctx.$implicit;\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"k-nonwork-hour\", ctx_r3.isNonWorking(item_r3));\n }\n}\nfunction GanttTimelineComponent__svg_polyline_23_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"polyline\", 25);\n }\n if (rf & 2) {\n const dependency_r5 = ctx.$implicit;\n i0.ɵɵproperty(\"dependency\", dependency_r5);\n }\n}\nconst _c13 = () => ({\n mode: \"single\"\n});\nfunction DependenciesTableComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 5);\n i0.ɵɵlistener(\"click\", function DependenciesTableComponent_ng_template_1_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.addHandler());\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"button\", 6);\n i0.ɵɵlistener(\"click\", function DependenciesTableComponent_ng_template_1_Template_button_click_2_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.removeHandler());\n });\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"svgIcon\", ctx_r1.plusIcon);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getText(\"taskEditingDependenciesAddButtonText\"), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"svgIcon\", ctx_r1.minusIcon)(\"disabled\", ctx_r1.selectedKeys.length === 0);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.getText(\"taskEditingDependenciesRemoveButtonText\"), \" \");\n }\n}\nfunction DependenciesTableComponent_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-dropdownlist\", 7);\n }\n if (rf & 2) {\n const column_r3 = ctx.column;\n const rowIndex_r4 = ctx.rowIndex;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", ctx_r1.tasks)(\"valuePrimitive\", true)(\"formControl\", ctx_r1.getFormControl(rowIndex_r4, column_r3.field));\n }\n}\nfunction DependenciesTableComponent_ng_template_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-dropdownlist\", 8);\n }\n if (rf & 2) {\n const column_r5 = ctx.column;\n const rowIndex_r6 = ctx.rowIndex;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", ctx_r1.dependencyTypes)(\"valuePrimitive\", true)(\"formControl\", ctx_r1.getFormControl(rowIndex_r6, column_r5.field));\n }\n}\nfunction TaskFieldsComponent_kendo_formfield_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-formfield\");\n i0.ɵɵelement(1, \"kendo-label\", 8)(2, \"input\", 9, 0);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const title_r1 = i0.ɵɵreference(3);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", title_r1)(\"text\", ctx_r1.getText(\"titleFieldInputLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formControlName\", ctx_r1.mapper.taskFields.title);\n }\n}\nfunction TaskFieldsComponent_kendo_formfield_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-formfield\");\n i0.ɵɵelement(1, \"kendo-label\", 8)(2, \"kendo-datetimepicker\", 10, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const start_r3 = i0.ɵɵreference(3);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"width\", 49, \"%\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", start_r3)(\"text\", ctx_r1.getText(\"startFieldInputLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formControlName\", ctx_r1.mapper.taskFields.start);\n }\n}\nfunction TaskFieldsComponent_kendo_formfield_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-formfield\");\n i0.ɵɵelement(1, \"kendo-label\", 8)(2, \"kendo-datetimepicker\", 10, 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const end_r4 = i0.ɵɵreference(3);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"width\", 49, \"%\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", end_r4)(\"text\", ctx_r1.getText(\"endFieldInputLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formControlName\", ctx_r1.mapper.taskFields.end);\n }\n}\nfunction TaskFieldsComponent_kendo_formfield_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-formfield\");\n i0.ɵɵelement(1, \"kendo-label\", 8)(2, \"kendo-numerictextbox\", 11, 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const completionRatio_r5 = i0.ɵɵreference(3);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"width\", 49, \"%\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", completionRatio_r5)(\"text\", ctx_r1.getText(\"completionRatioFieldInputLabel\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formControlName\", ctx_r1.mapper.taskFields.completionRatio)(\"min\", 0)(\"max\", 1)(\"decimals\", 2)(\"step\", 0.01);\n }\n}\nfunction EditDialogComponent_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-gantt-task-fields\");\n }\n}\nfunction EditDialogComponent_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-gantt-dependencies-table\", 10);\n i0.ɵɵtwoWayListener(\"dependenciesChange\", function EditDialogComponent_ng_template_6_Template_kendo_gantt_dependencies_table_dependenciesChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.predecessors, $event) || (ctx_r1.predecessors = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"tasks\", ctx_r1.loadedTasks);\n i0.ɵɵtwoWayProperty(\"dependencies\", ctx_r1.predecessors);\n }\n}\nfunction EditDialogComponent_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-gantt-dependencies-table\", 11);\n i0.ɵɵtwoWayListener(\"dependenciesChange\", function EditDialogComponent_ng_template_8_Template_kendo_gantt_dependencies_table_dependenciesChange_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.successors, $event) || (ctx_r1.successors = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"tasks\", ctx_r1.loadedTasks);\n i0.ɵɵtwoWayProperty(\"dependencies\", ctx_r1.successors);\n }\n}\nfunction ViewSelectorComponent_option_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const view_r1 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", view_r1);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.getViewTypeText(view_r1));\n }\n}\nfunction ViewSelectorComponent_button_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 5);\n i0.ɵɵlistener(\"click\", function ViewSelectorComponent_button_3_Template_button_click_0_listener() {\n const view_r4 = i0.ɵɵrestoreView(_r3).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClick(view_r4));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const view_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"selected\", view_r4 === ctx_r1.activeView);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.getViewTypeText(view_r4));\n }\n}\nfunction ToolbarComponent_ng_container_0_kendo_gantt_add_task_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-gantt-add-task\");\n }\n}\nfunction ToolbarComponent_ng_container_0_kendo_gantt_view_selector_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-gantt-view-selector\", 3);\n i0.ɵɵlistener(\"activeViewChange\", function ToolbarComponent_ng_container_0_kendo_gantt_view_selector_3_Template_kendo_gantt_view_selector_activeViewChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.handleViewChange($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"views\", ctx_r1.views)(\"activeView\", ctx_r1.activeView);\n }\n}\nfunction ToolbarComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, ToolbarComponent_ng_container_0_kendo_gantt_add_task_1_Template, 1, 0, \"kendo-gantt-add-task\", 0);\n i0.ɵɵelement(2, \"span\", 1);\n i0.ɵɵtemplate(3, ToolbarComponent_ng_container_0_kendo_gantt_view_selector_3_Template, 1, 2, \"kendo-gantt-view-selector\", 2);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showAddTask);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showViewSelector);\n }\n}\nfunction ToolbarComponent_1_ng_template_0_Template(rf, ctx) {}\nfunction ToolbarComponent_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ToolbarComponent_1_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.toolbarTemplateRef)(\"ngTemplateOutletContext\", ctx_r1.context);\n }\n}\nconst _c14 = a0 => ({\n dblclick: a0\n});\nconst _c15 = (a0, a1, a2, a3) => ({\n click: a0,\n contextmenu: a1,\n dblclick: a2,\n mousedown: a3\n});\nfunction GanttComponent_kendo_gantt_toolbar_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-gantt-toolbar\", 12);\n i0.ɵɵlistener(\"activeViewChange\", function GanttComponent_kendo_gantt_toolbar_1_Template_kendo_gantt_toolbar_activeViewChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeActiveView($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"showAddTask\", ctx_r1.toolbarSettings.addTaskTool === \"top\" || ctx_r1.toolbarSettings.addTaskTool === \"both\")(\"showViewSelector\", ctx_r1.toolbarSettings.viewSelectorTool === \"top\" || ctx_r1.toolbarSettings.viewSelectorTool === \"both\")(\"toolbarTemplate\", ctx_r1.toolbarTemplate)(\"views\", ctx_r1.viewTypes)(\"activeView\", ctx_r1.activeView)(\"navigable\", ctx_r1.navigable);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.toolbarAriaLabel);\n }\n}\nfunction GanttComponent_kendo_gantt_timeline_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-gantt-timeline\", 13);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"renderDependencyDragClues\", ctx_r1.renderDependencyDragClues)(\"dragScrollSettings\", ctx_r1.dragScrollSettings)(\"rows\", ctx_r1.viewItems)(\"slots\", ctx_r1.timelineSlots)(\"currentTimeMarker\", ctx_r1.activeViewCurrentTimeMarker)(\"groupSlots\", ctx_r1.timelineGroupSlots)(\"tableWidth\", ctx_r1.tableWidth)(\"activeView\", ctx_r1.activeView)(\"taskContentTemplate\", ctx_r1.taskContentTemplate == null ? null : ctx_r1.taskContentTemplate.templateRef)(\"taskTemplate\", ctx_r1.taskTemplate == null ? null : ctx_r1.taskTemplate.templateRef)(\"summaryTaskTemplate\", ctx_r1.summaryTaskTemplate == null ? null : ctx_r1.summaryTaskTemplate.templateRef)(\"taskClass\", ctx_r1.taskClass)(\"dependencies\", ctx_r1.dependencies)(\"isExpanded\", ctx_r1.isExpanded)(\"selectable\", ctx_r1.selectable)(\"isTaskSelected\", ctx_r1.isTaskSelected)(\"kendoEventsOutsideAngular\", i0.ɵɵpureFunction4(18, _c15, ctx_r1.handleTimelineClick, ctx_r1.handleTimelineRightClick, ctx_r1.handleTimelineDblClick, ctx_r1.handleTimelineMouseDown))(\"scope\", ctx_r1);\n }\n}\nfunction GanttComponent_kendo_gantt_toolbar_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-gantt-toolbar\", 14);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"showAddTask\", ctx_r1.toolbarSettings.addTaskTool === \"bottom\" || ctx_r1.toolbarSettings.addTaskTool === \"both\")(\"showViewSelector\", ctx_r1.toolbarSettings.viewSelectorTool === \"bottom\" || ctx_r1.toolbarSettings.viewSelectorTool === \"both\")(\"toolbarTemplate\", ctx_r1.toolbarTemplate)(\"views\", ctx_r1.viewTypes)(\"activeView\", ctx_r1.activeView)(\"navigable\", ctx_r1.navigable);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.toolbarAriaLabel);\n }\n}\nfunction GanttComponent_kendo_gantt_edit_dialog_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-gantt-edit-dialog\", 15);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", ctx_r1.data);\n }\n}\nfunction GanttComponent_kendo_dialog_11_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-dialog\", 16);\n i0.ɵɵlistener(\"close\", function GanttComponent_kendo_dialog_11_Template_kendo_dialog_close_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.handleConfirmationDialogClose());\n });\n i0.ɵɵelementStart(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"kendo-dialog-actions\", 17);\n i0.ɵɵelement(4, \"kendo-treelist-spacer\");\n i0.ɵɵelementStart(5, \"button\", 18);\n i0.ɵɵlistener(\"click\", function GanttComponent_kendo_dialog_11_Template_button_click_5_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.handleDeleteConfirmation());\n });\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"button\", 19);\n i0.ɵɵlistener(\"click\", function GanttComponent_kendo_dialog_11_Template_button_click_7_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.handleConfirmationDialogClose());\n });\n i0.ɵɵtext(8);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"width\", 575)(\"height\", 170)(\"title\", ctx_r1.getText(\"confirmationDialogTitle\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.getText(\"confirmationDialogContent\"));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"primary\", true);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.getText(\"deleteButtonText\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.getText(\"cancelButtonText\"));\n }\n}\nfunction GanttComponent_div_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 20);\n }\n}\nconst packageMetadata = {\n name: '@progress/kendo-angular-gantt',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1728372706,\n version: '16.11.0',\n licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'\n};\n\n// TODO: add those keys to `import { Keys } from '@progress/kendo-angular-common';`\nvar NumpadKeys = /*#__PURE__*/function (NumpadKeys) {\n NumpadKeys[NumpadKeys[\"Digit1\"] = 97] = \"Digit1\";\n NumpadKeys[NumpadKeys[\"Digit2\"] = 98] = \"Digit2\";\n NumpadKeys[NumpadKeys[\"Digit3\"] = 99] = \"Digit3\";\n NumpadKeys[NumpadKeys[\"Digit4\"] = 100] = \"Digit4\";\n return NumpadKeys;\n}(NumpadKeys || {});\n/**\n * @hidden\n */\nconst isArrowUpDownKey = keyCode => [Keys.ArrowUp, Keys.ArrowDown].some(arrowKeyCode => keyCode === arrowKeyCode);\n/**\n * @hidden\n */\nconst isNavigationKey = keyCode => [Keys.ArrowUp, Keys.ArrowDown, Keys.Home, Keys.End].some(navigationKeyCode => keyCode === navigationKeyCode);\n/**\n * @hidden\n */\nconst isExpandCollapseKey = (keyCode, altKey) => {\n return altKey && [Keys.ArrowLeft, Keys.ArrowRight].some(navigationKeyCode => keyCode === navigationKeyCode);\n};\n/**\n * @hidden\n */\nconst isViewDigitKey = keyCode => [Keys.Digit1, NumpadKeys.Digit1, Keys.Digit2, NumpadKeys.Digit2, Keys.Digit3, NumpadKeys.Digit3, Keys.Digit4, NumpadKeys.Digit4].some(digitKeyCode => keyCode === digitKeyCode);\n/**\n * @hidden\n *\n * Returns the corresponding view index for the pressed digit key (Digit 1 => 0, Digit 2 => 1, etc.).\n */\nconst getIndexFromViewDigitKeyCode = keyCode => {\n switch (keyCode) {\n case NumpadKeys.Digit1:\n case Keys.Digit1:\n return 0;\n case NumpadKeys.Digit2:\n case Keys.Digit2:\n return 1;\n case NumpadKeys.Digit3:\n case Keys.Digit3:\n return 2;\n case NumpadKeys.Digit4:\n case Keys.Digit4:\n return 3;\n default:\n return null;\n }\n};\n\n/**\n * @hidden\n */\nlet ScrollSyncService = /*#__PURE__*/(() => {\n class ScrollSyncService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new Subject();\n this.elements = [];\n this.subscriptions = new Subscription();\n this.subscriptions.add(this.changes.subscribe(args => {\n this.scroll(args);\n }));\n }\n registerElement(el, sourceType) {\n this.elements.push({\n element: el,\n sourceType\n });\n if (sourceType === \"timeline\" || sourceType === \"treelist\") {\n this.ngZone.runOutsideAngular(() => {\n const obs = fromEvent(el, 'scroll').pipe(map(({\n target: {\n scrollTop,\n scrollLeft\n }\n }) => ({\n scrollTop,\n scrollLeft,\n sourceType\n })));\n const comparisonFn = sourceType === 'timeline' ? (x, y) => x.scrollTop === y.scrollTop && x.scrollLeft === y.scrollLeft : (x, y) => x.scrollTop === y.scrollTop;\n this.subscriptions.add(obs.pipe(distinctUntilChanged(comparisonFn)).subscribe(event => this.changes.next(event)));\n });\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.elements = null;\n }\n syncScrollTop(sourceType, targetType) {\n const source = this.elements.find(element => element.sourceType === sourceType);\n const target = this.elements.find(element => element.sourceType === targetType);\n // Need to wait for the splitter pane's content to be rendered\n this.ngZone.onStable.pipe(take(1)).subscribe(() => target.element.scrollTop = source.element.scrollTop);\n }\n resetTimelineScrollLeft() {\n const source = this.elements.find(element => element.sourceType === 'timeline');\n source.element.scrollLeft = 0;\n }\n scroll({\n scrollTop,\n scrollLeft,\n sourceType\n }) {\n this.ngZone.runOutsideAngular(() => {\n if (sourceType === 'timeline') {\n const header = this.elements.find(element => element.sourceType === 'header').element;\n header.scrollLeft = scrollLeft;\n if (!this.syncingTimeline) {\n this.syncingTreeList = true;\n const treelist = this.elements.find(element => element.sourceType === 'treelist').element;\n treelist.scrollTop = scrollTop;\n }\n this.syncingTimeline = false;\n }\n if (sourceType === 'treelist') {\n if (!this.syncingTreeList) {\n this.syncingTimeline = true;\n const timeline = this.elements.find(element => element.sourceType === 'timeline').element;\n timeline.scrollTop = scrollTop;\n }\n this.syncingTreeList = false;\n }\n });\n }\n }\n ScrollSyncService.ɵfac = function ScrollSyncService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScrollSyncService)(i0.ɵɵinject(i0.NgZone));\n };\n ScrollSyncService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollSyncService,\n factory: ScrollSyncService.ɵfac\n });\n return ScrollSyncService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst DEFAULT_DEPENDENCY_MODEL_FIELDS = Object.freeze({\n toId: 'toId',\n fromId: 'fromId',\n id: 'id',\n type: 'type'\n});\n\n/**\n * @hidden\n */\nconst DEFAULT_TASK_MODEL_FIELDS = Object.freeze({\n id: 'id',\n start: 'start',\n end: 'end',\n title: 'title',\n completionRatio: 'completionRatio',\n children: 'children'\n});\n\n/**\n * The dependency type when two tasks are connected.\n *\n * The supported values are:\n * * `FF`—from 'finish' to 'finish'\n * * `FS`—from 'finish' to 'start'\n * * `SS`—from 'start' to 'start'\n * * `SF`—from 'start' to 'finish'\n */\nvar DependencyType = /*#__PURE__*/function (DependencyType) {\n DependencyType[DependencyType[\"FF\"] = 0] = \"FF\";\n DependencyType[DependencyType[\"FS\"] = 1] = \"FS\";\n DependencyType[DependencyType[\"SF\"] = 2] = \"SF\";\n DependencyType[DependencyType[\"SS\"] = 3] = \"SS\"; // task B can't start before task A starts\n return DependencyType;\n}(DependencyType || {});\n/**\n * @hidden\n */\nconst isWorkDay = (date, start, end) => {\n return date.getDay() >= start && date.getDay() <= end;\n};\n/**\n * @hidden\n */\nconst isWorkHour = (date, start, end) => {\n return date.getHours() >= start && date.getHours() <= end;\n};\n/**\n * @hidden\n */\nconst isPresent = item => item !== null && item !== undefined;\n/**\n * @hidden\n *\n * Normalized the data to an array in case a falsy value is passed\n * or a TreeListDataResult object (applicable for the data-binding directives).\n */\nconst normalizeGanttData = data => {\n if (!isPresent(data)) {\n return [];\n } else if (Array.isArray(data.data)) {\n return data.data;\n } else {\n return data;\n }\n};\n/**\n * @hidden\n */\nconst isArray = value => Array.isArray(value);\n/**\n * @hidden\n *\n * Returns a new date with the specified hours, minutes, seconds and millliseconds set.\n * Only the hours are required, the rest of the params are set to `0` by default.\n */\nconst setTime$1 = (date, hours, minutes = 0, seconds = 0, milliseconds = 0) => {\n if (!isPresent(date)) {\n return null;\n }\n const result = cloneDate(date);\n result.setHours(hours);\n result.setMinutes(minutes);\n result.setSeconds(seconds);\n result.setMilliseconds(milliseconds);\n return result;\n};\n/**\n * @hidden\n *\n * Returns the last day of a week.\n * @param standingPoint - Any day of the target week.\n * @param firstWeekDay - The week's starting day (e.g. Monday, Tuesday, etc.)\n */\nconst lastDayOfWeek = (standingPoint, firstWeekDay) => {\n const followingWeek = addWeeks(standingPoint, 1);\n const firstDayOfFollowingWeek = firstDayInWeek(followingWeek, firstWeekDay);\n const lastDayOfTargetWeek = addDays(firstDayOfFollowingWeek, -1);\n return lastDayOfTargetWeek;\n};\n/**\n * @hidden\n *\n * Returns the total number of days in a month\n */\nconst getTotalDaysInMonth = date => {\n return lastDayOfMonth(date).getDate();\n};\n/**\n * @hidden\n *\n * Returns the total number of months between two dates\n * by excluding the months of the dates themselves.\n */\nconst getTotalMonthsInBetween = (start, end) => {\n const diff = end.getMonth() - start.getMonth() + 12 * (end.getFullYear() - start.getFullYear());\n return diff <= 1 ? 0 : diff - 1;\n};\n/**\n * Persists the initially resolved scrollbar width value.\n */\nlet SCROLLBAR_WIDTH;\n/**\n * @hidden\n *\n * Gets the default scrollbar width accoring to the current environment.\n */\nconst scrollbarWidth = () => {\n if (!isDocumentAvailable()) {\n return;\n }\n // calculate scrollbar width only once, then return the cached value\n if (isNaN(SCROLLBAR_WIDTH)) {\n const div = document.createElement('div');\n div.style.cssText = 'overflow: scroll; overflow-x: hidden; zoom: 1; clear: both; display: block;';\n div.innerHTML = ' ';\n document.body.appendChild(div);\n SCROLLBAR_WIDTH = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return SCROLLBAR_WIDTH;\n};\n/**\n * @hidden\n */\nconst isColumnGroup = column => column.isColumnGroup;\n/**\n * @hidden\n */\nconst isNumber = contender => typeof contender === 'number' && !isNaN(contender);\n/**\n * @hidden\n */\nconst isString = contender => typeof contender === 'string';\n/**\n * @hidden\n *\n * Gets the closest timeline task wrapper element from an event target.\n * Restricts the search up to the provided parent element from the second param.\n */\nconst getClosestTaskWrapper = (element, parentScope) => {\n return closestInScope(element, matchesClasses('k-task-wrap'), parentScope);\n};\n/**\n * @hidden\n *\n * Checks whether the queried item or its parent items has a `k-task-wrap` selector.\n * Restricts the search up to the provided parent element from the second param.\n */\nconst isTaskWrapper = (contender, parentScope) => {\n const taskWrapper = closestInScope(contender, matchesClasses('k-task-wrap'), parentScope);\n return isPresent(taskWrapper);\n};\n/**\n * @hidden\n *\n * Gets the closest timeline task element from an event target.\n * Restricts the search up to the provided parent element from the second param.\n */\nconst getClosestTask = (element, parentScope) => {\n return closestInScope(element, matchesClasses('k-task'), parentScope);\n};\n/**\n * @hidden\n *\n * Gets the closest timeline task element index from an event target.\n * Uses the `data-task-index` attribute assigned to each task.\n * Restricts the search up to the provided parent element from the second param.\n */\nconst getClosestTaskIndex = (element, parentScope) => {\n const task = closestInScope(element, matchesClasses('k-task-wrap'), parentScope);\n if (!isPresent(task)) {\n return null;\n }\n return Number(task.getAttribute('data-task-index'));\n};\n/**\n * @hidden\n *\n * Checks whether the queried item or its parent items has a `k-task` selector.\n * Restricts the search up to the provided parent element from the second param.\n */\nconst isTask = (contender, parentScope) => {\n const task = closestInScope(contender, matchesClasses('k-task'), parentScope);\n return isPresent(task);\n};\n/**\n * @hidden\n *\n * Checks whether the queried item or its parent items has a `k-toolbar` selector.\n * Restricts the search up to the provided parent element from the second param.\n */\nconst isToolbar = (contender, parentScope) => {\n const toolbar = closestInScope(contender, matchesClasses('k-gantt-toolbar'), parentScope);\n return isPresent(toolbar);\n};\n/**\n * @hidden\n *\n * Checks whether the queried item or its parent items has a `k-task-actions` selector - used for the clear button.\n * Restricts the search up to the provided parent element from the second param.\n */\nconst isClearButton = (contender, parentScope) => {\n const clearButtonContainer = closestInScope(contender, matchesClasses('k-task-actions'), parentScope);\n return isPresent(clearButtonContainer);\n};\n/**\n * @hidden\n *\n * Checks whether the queried item has a `k-task-dot` selector - used for the dependency drag clues.\n */\nconst isDependencyDragClue = element => {\n if (!isPresent(element)) {\n return false;\n }\n return element.classList.contains('k-task-dot');\n};\n/**\n * @hidden\n *\n * Checks whether the queried item has a `k-task-dot` & `k-task-start` selector - used for the dependency drag start clues.\n */\nconst isDependencyDragStartClue = element => {\n if (!isPresent(element)) {\n return false;\n }\n return element.classList.contains('k-task-dot') && element.classList.contains('k-task-start');\n};\n/**\n * @hidden\n *\n * Gets the `DependencyType` for an attempted dependency create from the provided two elements.\n * The two linked drag clue HTML elements are used to extract this data (via their CSS classes).\n */\nconst getDependencyTypeFromTargetTasks = (fromTaskClue, toTaskClue) => {\n if (!isDependencyDragClue(fromTaskClue) || !isDependencyDragClue(toTaskClue)) {\n return null;\n }\n const fromTaskType = isDependencyDragStartClue(fromTaskClue) ? 'S' : 'F';\n const toTaskType = isDependencyDragStartClue(toTaskClue) ? 'S' : 'F';\n const dependencyTypeName = `${fromTaskType}${toTaskType}`;\n switch (dependencyTypeName) {\n case 'FF':\n return DependencyType.FF;\n case 'FS':\n return DependencyType.FS;\n case 'SF':\n return DependencyType.SF;\n case 'SS':\n return DependencyType.SS;\n default:\n return null;\n }\n};\n/**\n * @hidden\n *\n * Checks whether the two provided drag clues belong to the same task element.\n */\nconst sameTaskClues = (fromTaskClue, toTaskClue, parentScope) => {\n if (!isPresent(fromTaskClue) || !isPresent(toTaskClue)) {\n return false;\n }\n const fromTaskWrapper = getClosestTaskWrapper(fromTaskClue, parentScope);\n const toTaskWrapper = getClosestTaskWrapper(toTaskClue, parentScope);\n return fromTaskWrapper === toTaskWrapper;\n};\n/**\n * @hidden\n *\n * Fits a contender number between a min and max range.\n * If the contender is below the min value, the min value is returned.\n * If the contender is above the max value, the max value is returned.\n */\nconst fitToRange = (contender, min, max) => {\n if (!isPresent(contender) || contender < min) {\n return min;\n } else if (contender > max) {\n return max;\n } else {\n return contender;\n }\n};\n/**\n * @hidden\n *\n * Checks whether either of the two provided tasks is a parent of the other.\n */\nconst areParentChild = (taskA, taskB) => {\n let parentChildRelationship = false;\n let taskAParent = taskA;\n while (isPresent(taskAParent) && isPresent(taskAParent.data)) {\n if (taskAParent.data === taskB.data) {\n parentChildRelationship = true;\n break;\n }\n taskAParent = taskAParent.parent;\n }\n let taskBParent = taskB;\n while (!parentChildRelationship && isPresent(taskBParent) && isPresent(taskBParent.data)) {\n if (taskBParent.data === taskA.data) {\n parentChildRelationship = true;\n break;\n }\n taskBParent = taskBParent.parent;\n }\n return parentChildRelationship;\n};\n/**\n * @hidden\n *\n * Extracts an element from the provided client coords.\n * Using the `event.target` is not reliable under mobile devices with the current implementation of the draggable, so use this instead.\n */\nconst elementFromPoint = (clientX, clientY) => {\n if (!isDocumentAvailable()) {\n return null;\n }\n return document.elementFromPoint(clientX, clientY);\n};\n\n/**\n * @hidden\n */\nlet MappingService = /*#__PURE__*/(() => {\n class MappingService {\n constructor() {\n this._taskFields = {\n ...DEFAULT_TASK_MODEL_FIELDS\n };\n this._dependencyFields = {\n ...DEFAULT_DEPENDENCY_MODEL_FIELDS\n };\n }\n /**\n * Gets or sets the model fields for the task data items.\n * Uses the default values for fields which are not specified.\n */\n set taskFields(fields) {\n this._taskFields = {\n ...DEFAULT_TASK_MODEL_FIELDS,\n ...fields\n };\n }\n get taskFields() {\n return this._taskFields;\n }\n /**\n * Gets or sets the model fields for the depenency data items.\n * Uses the default values for fields which are not specified.\n */\n set dependencyFields(fields) {\n this._dependencyFields = {\n ...DEFAULT_DEPENDENCY_MODEL_FIELDS,\n ...fields\n };\n }\n get dependencyFields() {\n return this._dependencyFields;\n }\n /**\n * Retrieves the value for the specified task field.\n * Supports nested fields as well (e.g. 'manager.id').\n */\n extractFromTask(dataItem, field) {\n if (!isPresent(this.taskFields)) {\n return null;\n }\n return getter(this.taskFields[field])(dataItem);\n }\n /**\n * Retrieves the value for the specified dependency field.\n * Supports nested fields as well (e.g. 'manager.id').\n */\n extractFromDependency(dataItem, field) {\n if (!isPresent(this.dependencyFields)) {\n return null;\n }\n return getter(this.dependencyFields[field])(dataItem);\n }\n }\n MappingService.ɵfac = function MappingService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MappingService)();\n };\n MappingService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MappingService,\n factory: MappingService.ɵfac\n });\n return MappingService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet DependencyDomService = /*#__PURE__*/(() => {\n class DependencyDomService {\n constructor(mapper) {\n this.mapper = mapper;\n this.notifier = new Subject();\n /**\n * Maps each rendered task to its HTML element.\n * Uses the task ID field value as key.\n */\n this.tasks = new Map();\n }\n /**\n * Emits each time some of the tasks or the view have changed.\n * Fires also on the first change of the table rows and the parent container.\n */\n get taskChanges() {\n return this.notifier.asObservable();\n }\n get dependencyDomArgs() {\n return {\n tasks: this.tasks,\n contentContainer: this.contentContainer,\n timelineRow: this.timelineRow\n };\n }\n ngOnDestroy() {\n this.tasks.clear();\n this.tasks = null;\n this.contentContainer = null;\n }\n registerTimelineRow(timelineRow) {\n this.timelineRow = timelineRow;\n this.notifyChanges();\n }\n registerContentContainer(contentContainer) {\n this.contentContainer = contentContainer;\n this.notifyChanges();\n }\n registerTask(task, element) {\n const id = this.mapper.extractFromTask(task, 'id');\n this.tasks.set(id, element);\n this.notifyChanges();\n }\n unregisterTask(task) {\n const id = this.mapper.extractFromTask(task, 'id');\n this.tasks.delete(id);\n this.notifyChanges();\n }\n /**\n * Notifies all dependency directives that a change in one of the elements has occured.\n */\n notifyChanges() {\n this.notifier.next(this.dependencyDomArgs);\n }\n }\n DependencyDomService.ɵfac = function DependencyDomService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DependencyDomService)(i0.ɵɵinject(MappingService));\n };\n DependencyDomService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DependencyDomService,\n factory: DependencyDomService.ɵfac\n });\n return DependencyDomService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst MS_PER_SECOND = 1000;\nconst MS_PER_MINUTE = 60 * MS_PER_SECOND;\n/**\n * @hidden\n */\nlet CurrentTimeMarkerService = /*#__PURE__*/(() => {\n class CurrentTimeMarkerService {\n constructor(renderer, cdr) {\n this.renderer = renderer;\n this.cdr = cdr;\n this.slots = [];\n this.rows = [];\n this.now = new Date(Date.now());\n this.createTimeMarker = () => {\n if (!isDocumentAvailable()) {\n return;\n }\n this.removeTimeMarker();\n if (this.slotIndex >= 0) {\n this.now = new Date(Date.now());\n this.timeMarkerDiv = this.renderer.createElement('div');\n this.renderer.addClass(this.timeMarkerDiv, 'k-current-time');\n this.renderer.setStyle(this.timeMarkerDiv, 'width', '1px');\n this.renderer.setStyle(this.timeMarkerDiv, 'top', '0px');\n this.renderer.setStyle(this.timeMarkerDiv, `${this.rtl ? 'right' : 'left'}`, this.deltaOffset + 'px');\n this.renderer.appendChild(this.container.nativeElement, this.timeMarkerDiv);\n this.renderer.setStyle(this.timeMarkerDiv, 'height', this.height + 'px');\n this.currentTimeTimeout = setTimeout(this.createTimeMarker, this.interval || MS_PER_MINUTE);\n }\n };\n }\n get deltaOffset() {\n if (this.slotIndex >= 0) {\n const total = this.slots[this.slotIndex].end.getTime() - this.slots[this.slotIndex].start.getTime();\n if (total > 0) {\n const currentTimeValue = this.now.getTime() - this.slots[this.slotIndex].start.getTime();\n const fractionInsideCell = currentTimeValue / total;\n const deltaOffsetToSlot = this.slotIndex * this.slotWidth;\n const deltaOffsetInsideSlot = fractionInsideCell * this.slotWidth;\n return deltaOffsetToSlot + deltaOffsetInsideSlot;\n }\n return 0;\n }\n }\n get slotWidth() {\n return this.slots[0]?.slotWidth;\n }\n get slotIndex() {\n return this.slots.indexOf(this.slots.find(slot => slot.start <= this.now && slot.end > this.now));\n }\n get height() {\n return this.rows.length * this.rowHeight;\n }\n get interval() {\n if (typeof this.currentTimeMarker === 'boolean') {\n return MS_PER_MINUTE;\n }\n return this.currentTimeMarker?.updateInterval || MS_PER_MINUTE;\n }\n ngOnDestroy() {\n clearTimeout(this.currentTimeTimeout);\n }\n removeTimeMarker() {\n if (this.timeMarkerDiv) {\n this.renderer.removeChild(this.container.nativeElement, this.timeMarkerDiv);\n clearTimeout(this.currentTimeTimeout);\n this.cdr.detectChanges();\n }\n }\n }\n CurrentTimeMarkerService.ɵfac = function CurrentTimeMarkerService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CurrentTimeMarkerService)(i0.ɵɵinject(i0.Renderer2), i0.ɵɵinject(i0.ChangeDetectorRef));\n };\n CurrentTimeMarkerService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CurrentTimeMarkerService,\n factory: CurrentTimeMarkerService.ɵfac\n });\n return CurrentTimeMarkerService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n *\n * Gets the offset (top and left values) relative to a target element.\n */\nconst getOffsetRelativeToParent = (element, targetParent) => {\n const offset = {\n top: 0,\n left: 0\n };\n if (!targetParent.contains(element)) {\n return offset;\n }\n let offsetParent = element;\n while (offsetParent && offsetParent !== targetParent) {\n offset.top += offsetParent.offsetTop;\n offset.left += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n return offset;\n};\n/**\n * @hidden\n */\nconst getElementRect = (element, relativeContainer) => {\n const {\n top,\n left\n } = getOffsetRelativeToParent(element, relativeContainer);\n return {\n top: top + element.offsetHeight / 2,\n left: left,\n right: left + element.offsetWidth\n };\n};\n/**\n * @hidden\n */\nconst dependencyCoordinates = (from, to, rowHeight, type, minDistanceBeforeTurn, arrowSize) => {\n const points = [];\n const minTurnHeight = Math.floor(rowHeight / 2);\n const drawingDown = from.top < to.top;\n let top, left;\n // FF and SS are composed of 4 connected polyline points (not counting the arrow)\n /*\n [[[]]]- -[[[]]]\n | |\n [[[]]]- -[[[]]]\n */\n if (type === DependencyType.FF || type === DependencyType.SS) {\n // polyline start from first task\n const dir = type === DependencyType.SS ? 'left' : 'right';\n top = from.top;\n left = from[dir];\n points.push({\n top,\n left\n });\n // first turn point\n left = Math[dir === 'left' ? 'min' : 'max'](from[dir], to[dir]);\n left = dir === 'left' ? left - minDistanceBeforeTurn : left + minDistanceBeforeTurn;\n points.push({\n top,\n left\n });\n // second turn point\n top = to.top;\n points.push({\n top,\n left\n });\n // second task reached\n left = dir === 'left' ? to[dir] - arrowSize : to[dir] + arrowSize;\n points.push({\n top,\n left\n });\n // arrow pointing to the second task\n points.push(...getArrow(top, left, dir !== 'left', arrowSize));\n } else {\n // FS and SF are composed of 4 or 6 connected polyline points (not counting the arrow), depending on the position of the tasks\n /*\n [[[]]]- [[[]]]-\n | |\n -[[[]]] -----\n |\n -[[[]]]\n */\n const startDir = type === DependencyType.SF ? 'left' : 'right';\n const endDir = type === DependencyType.SF ? 'right' : 'left';\n const additionalTurn = type === DependencyType.SF ? from[startDir] - minDistanceBeforeTurn * 2 < to[endDir] : from[startDir] + minDistanceBeforeTurn * 2 > to[endDir];\n // polyline start from first task\n top = from.top;\n left = from[startDir];\n points.push({\n top,\n left\n });\n // first turn point\n left = startDir === 'left' ? left - minDistanceBeforeTurn : left + minDistanceBeforeTurn;\n points.push({\n top,\n left\n });\n // if second task start is before the first task end in FS\n // if second task end is after the first task start in SF\n if (additionalTurn) {\n // additional turn start\n top = drawingDown ? top + minTurnHeight : top - minTurnHeight;\n points.push({\n top,\n left\n });\n // additional turn end\n left = startDir === 'left' ? to[endDir] + minDistanceBeforeTurn : to[endDir] - minDistanceBeforeTurn;\n points.push({\n top,\n left\n });\n }\n // second task level reached\n top = to.top;\n points.push({\n top,\n left\n });\n // second task element reached\n left = endDir === 'left' ? to[endDir] - arrowSize : to[endDir] + arrowSize;\n points.push({\n top,\n left\n });\n // arrow pointing to the second task\n points.push(...getArrow(top, left, endDir !== 'left', arrowSize));\n }\n return points;\n};\nconst getArrow = (top, left, isArrowWest, arrowSize) => {\n const points = isArrowWest ? getArrowWest(top, left, arrowSize) : getArrowEast(top, left, arrowSize);\n return points;\n};\nconst getArrowWest = (top, left, arrowSize) => {\n const points = [];\n points.push({\n top: top - arrowSize / 2,\n left\n });\n points.push({\n top,\n left: left - arrowSize + 1\n });\n points.push({\n top: top + arrowSize / 2,\n left\n });\n points.push({\n top,\n left\n });\n return points;\n};\nconst getArrowEast = (top, left, arrowSize) => {\n const points = [];\n points.push({\n top: top + arrowSize / 2,\n left\n });\n points.push({\n top,\n left: left + arrowSize - 1\n });\n points.push({\n top: top - arrowSize / 2,\n left\n });\n points.push({\n top,\n left\n });\n return points;\n};\n/**\n * @hidden\n *\n * Translates the provided client `left` and `top` coords to coords relative to the provided container.\n * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems\n */\nconst clientToOffsetCoords = (clientLeft, clientTop, offsetContainer) => {\n // client (viewport) coordinates of the target container\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value\n const offsetContainerClientRect = offsetContainer.getBoundingClientRect();\n return {\n left: clientLeft - offsetContainerClientRect.left + offsetContainer.scrollLeft,\n top: clientTop - offsetContainerClientRect.top + offsetContainer.scrollTop\n };\n};\n/**\n * @hidden\n *\n * Retrieves the `left` and `top` values of the center of the provided element.\n * The retrieved values are relative to the current viewport (client values).\n * https://developer.mozilla.org/en-US/docs/Web/CSS/CSSOM_View/Coordinate_systems#standard_cssom_coordinate_systems\n */\nconst getElementClientCenterCoords = element => {\n // client (viewport) coordinates of the targeted element\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect#value\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n return {\n left: left + width / 2,\n top: top + height / 2\n };\n};\n\n/**\n * Defines the size of the arrow that will be drawn at the end of each Gantt dependency.\n */\nconst ARROW_SIZE = 4;\n/**\n * Defines the distance the polyline will cover from the task element before making a turn.\n */\nconst MIN_DISTANCE_BEFORE_TURN = 10;\n/**\n * @hidden\n */\nlet GanttDependencyDirective = /*#__PURE__*/(() => {\n class GanttDependencyDirective {\n constructor(polyline, zone, renderer, mapper, dependencyDomService) {\n this.polyline = polyline;\n this.zone = zone;\n this.renderer = renderer;\n this.mapper = mapper;\n this.dependencyDomService = dependencyDomService;\n this.subscriptions = new Subscription();\n this.subscriptions.add(dependencyDomService.taskChanges.pipe(switchMap(changes =>\n // reacts only on the very last event emission,\n // ensures that the tasks are drawn in the DOM\n this.zone.onStable.pipe(take(1), map(() => changes)))).subscribe(changes => this.updatePoints(changes)));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n ngOnChanges(changes) {\n if (isPresent(changes['dependency'])) {\n this.updatePoints(this.dependencyDomService.dependencyDomArgs);\n }\n }\n updatePoints({\n timelineRow,\n contentContainer,\n tasks\n }) {\n if (!isPresent(timelineRow) || !isPresent(contentContainer) || !isPresent(tasks) || tasks.size === 0 || !tasks.has(this.mapper.extractFromDependency(this.dependency, 'fromId')) || !tasks.has(this.mapper.extractFromDependency(this.dependency, 'toId'))) {\n this.clearPoints();\n return;\n }\n const fromCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'fromId')), contentContainer);\n const toCoordinates = getElementRect(tasks.get(this.mapper.extractFromDependency(this.dependency, 'toId')), contentContainer);\n const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;\n const points = dependencyCoordinates(fromCoordinates, toCoordinates, timelineRowHeight, this.dependency.type, MIN_DISTANCE_BEFORE_TURN, ARROW_SIZE);\n this.drawPoints(points);\n }\n clearPoints() {\n this.renderer.setAttribute(this.polyline.nativeElement, 'points', '');\n }\n drawPoints(points) {\n if (!isPresent(points) || points.length === 0) {\n this.clearPoints();\n return;\n }\n const parsedCoords = points.map(({\n left,\n top\n }) => `${left},${top}`).join(' ');\n this.renderer.setAttribute(this.polyline.nativeElement, 'points', parsedCoords);\n }\n }\n GanttDependencyDirective.ɵfac = function GanttDependencyDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttDependencyDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(DependencyDomService));\n };\n GanttDependencyDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GanttDependencyDirective,\n selectors: [[\"\", \"kendoGanttDependency\", \"\"]],\n inputs: {\n dependency: \"dependency\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return GanttDependencyDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet NavigationService = /*#__PURE__*/(() => {\n class NavigationService {\n constructor(zone, renderer, scrollSyncService) {\n this.zone = zone;\n this.renderer = renderer;\n this.scrollSyncService = scrollSyncService;\n /**\n * Notifies when the tasks' focused and interactive (tabindex) state has changed.\n *\n * All tasks are rendered with tabindex=\"-1\".\n * When one is clicked, or when some navigation key keyboard key is pressed, it should be focused, assigned the focus class, and its tabindex updated to 0.\n * All other tasks should get -1 tabindex and have the focus class removed from them.\n */\n this.taskStatusChanges = new Subject();\n /**\n * Keeps track of whether the Timeline part is focused.\n * Used when the index of the task elements change (tasks are changed, pushed to, spliced from, etc.)\n * and their status should be updated accordingly.\n */\n this.isTimelineFocused = false;\n /**\n * Keeps track of which part has last been focused.\n * Used when calling `gantt.focus()` to determine which part of the component should receive focus.\n */\n this.treeListLastActive = false;\n /**\n * Keeps track of which part has last been focused.\n * Used when calling `gantt.focus()` to determine which part of the component should receive focus.\n */\n this.timelineLastActive = false;\n this._enabled = false;\n this._activeTimelineIndex = 0;\n this._activeTreeListCell = {\n rowIndex: 0,\n colIndex: 0\n };\n }\n /**\n * Specifies whether navigation is enabled.\n */\n get enabled() {\n return this._enabled;\n }\n /**\n * Used to retrieve read-only data about the currently active task.\n */\n get activeTask() {\n return {\n activeIndex: this.activeTimelineIndex,\n isFocused: this.isTimelineFocused\n };\n }\n /**\n * Persists the expected Timeline focused task index.\n * When the cells in the TreeList are navigated through, the expected Timeline focus target should also change,\n * in order to allow tabbing from the TreeList to the same row in the Timeline.\n */\n set activeTimelineIndex(index) {\n this._activeTimelineIndex = index;\n }\n get activeTimelineIndex() {\n const firstAvailableIndex = 0;\n const lastAvailableIndex = this.metadata.treeList.view.data.length - 1;\n return fitToRange(this._activeTimelineIndex, firstAvailableIndex, lastAvailableIndex);\n }\n /**\n * Persists the expected TreeList focused cell coords.\n * When the tasks in the Timeline are navigated through, the expected TreeList focus target should also change,\n * in order to allow back-tabbing from the Timeline to the same row in the TreeList.\n */\n set activeTreeListCell(cell) {\n this._activeTreeListCell = cell;\n }\n get activeTreeListCell() {\n const firstAvailableIndex = 0;\n const lastAvailableRowIndex = this.treeListHeaderRowsCount + this.metadata.treeList.view.data.length - 1;\n const rowIndex = fitToRange(this._activeTreeListCell.rowIndex, firstAvailableIndex, lastAvailableRowIndex);\n const lastAvailableColIndex = this.metadata.columns.length;\n const colIndex = fitToRange(this._activeTreeListCell.colIndex, firstAvailableIndex, lastAvailableColIndex);\n return {\n rowIndex,\n colIndex\n };\n }\n /**\n * The TreeList row index takes into account the header and filter rows.\n * Used when translating Timeline task indices to TreeList row indices.\n */\n get treeListHeaderRowsCount() {\n // captures nested group header rows + filter row if we start supporting it at some point\n return this.metadata.treeListElement.querySelectorAll('.k-grid-header tr').length;\n }\n initialize(metadata) {\n // no private property setters in TypeScript, so use a getter and a poorly named private prop for this value\n this._enabled = true;\n this.metadata = metadata;\n // TODO: fix in the splitter package and remove\n // move the splitbar HTML element between the two panes to keep the visial tabbing order in tact\n const splitbar = this.metadata.host.querySelector('.k-splitbar');\n if (isPresent(splitbar) && isPresent(splitbar.previousElementSibling) && isPresent(splitbar.after)) {\n splitbar.after(splitbar.previousElementSibling);\n }\n this.zone.runOutsideAngular(() => {\n this.eventListenerDisposers = [this.renderer.listen(this.metadata.treeListElement, 'mousedown', this.focusTreeList.bind(this)), this.renderer.listen(this.metadata.treeListElement, 'focusin', this.handleTreeListFocusIn.bind(this)), this.renderer.listen(this.metadata.timelineElement, 'mousedown', this.handleTimelineMousedown.bind(this)), this.renderer.listen(this.metadata.timelineElement, 'focusin', this.handleTimelineFocusIn.bind(this)), this.renderer.listen(this.metadata.timelineElement, 'focusout', this.handleTimelineFocusOut.bind(this))];\n });\n }\n ngOnDestroy() {\n if (isPresent(this.eventListenerDisposers)) {\n this.eventListenerDisposers.forEach(removeListener => removeListener());\n this.eventListenerDisposers = null;\n }\n this.metadata = null;\n }\n /**\n * Focuses either the last active TreeList cell, or the last active Timeline task,\n * dependening on which of the two last held focus.\n *\n * Focuses the first TreeList cell by default.\n */\n focusLastActiveItem() {\n if (this.metadata.data.length === 0 || !this.treeListLastActive && !this.timelineLastActive) {\n this.focusCell(0, 0);\n } else if (this.treeListLastActive) {\n const {\n rowIndex,\n colIndex\n } = this.activeTreeListCell;\n this.metadata.treeList.focusCell(rowIndex, colIndex);\n } else if (this.timelineLastActive) {\n this.focusTask(this.activeTimelineIndex);\n }\n }\n /**\n * Focuses the targeted TreeList cell regardless of the last peresisted target.\n */\n focusCell(rowIndex, colIndex) {\n this.activeTreeListCell = {\n rowIndex,\n colIndex\n };\n this.activeTimelineIndex = rowIndex - this.treeListHeaderRowsCount;\n this.metadata.treeList.focusCell(this.activeTreeListCell.rowIndex, this.activeTreeListCell.colIndex);\n }\n /**\n * Focuses the targeted Timeline task regardless of the last peresisted target.\n */\n focusTask(index) {\n this.activeTimelineIndex = index;\n this.isTimelineFocused = true;\n this.activeTreeListCell = {\n rowIndex: index + this.treeListHeaderRowsCount,\n colIndex: this.activeTreeListCell.colIndex\n };\n this.notifyTaskStatusChange();\n }\n /**\n * Updates the focus target flags and notifies the active task to update its focused state.\n */\n handleTimelineFocusIn({\n target\n }) {\n this.treeListLastActive = false;\n this.timelineLastActive = true;\n this.isTimelineFocused = true;\n if (isTask(target, this.metadata.timelineElement)) {\n this.notifyTaskStatusChange();\n }\n }\n /**\n * Updates the timeline focus state flag and notifies the active task to update its focused state.\n */\n handleTimelineFocusOut({\n relatedTarget\n }) {\n this.isTimelineFocused = this.metadata.timelineElement.contains(relatedTarget);\n // update the task element only if the new focus target is not in the Timeline - focus change between tasks is handled in the focusin handler\n if (!isTask(relatedTarget, this.metadata.timelineElement)) {\n this.notifyTaskStatusChange();\n }\n }\n /**\n * Updates the focus target flags and corrects the TreeList focus target if needed.\n * As the TreeList will keep its last focused cell with tabindex=\"0\",\n * this methods forcefully focuses the correct cell,\n * when navigating in the Timeline has updated the expected TreeList focus target.\n */\n handleTreeListFocusIn(event) {\n this.treeListLastActive = true;\n this.timelineLastActive = false;\n // if the previous focus target was in the TreeList, rely on its component navigation and just record the focused item index\n if (this.metadata.treeListElement.contains(event.relatedTarget)) {\n const {\n colIndex,\n rowIndex\n } = this.metadata.treeList.activeCell;\n this.activeTreeListCell = {\n colIndex,\n rowIndex\n };\n } else {\n // if the previous focus target was outside the TreeList, ensure the expected focus coords are used\n const {\n rowIndex,\n colIndex\n } = this.activeTreeListCell;\n this.metadata.treeList.focusCell(rowIndex, colIndex); // activates the target cell even if it has tabindex=\"-1\"\n }\n this.activeTimelineIndex = this.metadata.treeList.activeCell.dataRowIndex;\n this.notifyTaskStatusChange();\n if (this.metadata.treeList.activeCell.dataRowIndex >= 0) {\n this.scrollHorizontallyToTask();\n this.scrollSyncService.syncScrollTop('treelist', 'timeline');\n }\n }\n updateActiveTimeLineIndex(index) {\n this.activeTimelineIndex = index;\n }\n updateActiveTreeListCell() {\n this.activeTreeListCell = {\n rowIndex: this.activeTimelineIndex + this.treeListHeaderRowsCount,\n colIndex: this.activeTreeListCell.colIndex\n };\n }\n /**\n * Fires the `taskStatusChanges` event with active and focused status retrieved from\n * `this.activeTimelineIndex` and `this.isTimelineFocused`.\n */\n notifyTaskStatusChange() {\n this.taskStatusChanges.next(this.activeTask);\n }\n /**\n * Scrolls horizontally to the beginning of the target task if the beginning of its content is not in the viewport.\n */\n scrollHorizontallyToTask() {\n const index = this.activeTimelineIndex;\n const task = this.metadata.timelineElement.querySelectorAll('.k-task-wrap').item(index);\n if (!isPresent(task)) {\n return;\n }\n // scroll horizontally to the item if less than 200px from the beginning of its content are visible\n const targetVisibleWidth = 200;\n const isScrollBeforeTask = this.metadata.timelineElement.clientWidth + this.metadata.timelineElement.scrollLeft < task.offsetLeft + targetVisibleWidth;\n const isScrollAfterTask = this.metadata.timelineElement.scrollLeft > task.offsetLeft;\n if (isScrollBeforeTask || isScrollAfterTask) {\n this.metadata.timelineElement.scrollLeft = task.offsetLeft;\n }\n }\n /**\n * Filters for task mousedown in the Timeline.\n */\n handleTimelineMousedown({\n target\n }) {\n if (isTask(target, this.metadata.host) && !isClearButton(target, this.metadata.host)) {\n const taskIndex = getClosestTaskIndex(target, this.metadata.host);\n this.focusTask(taskIndex);\n }\n }\n /**\n * Focus the TreeList on TreeList mousedown.\n * A nasty hack to trick `handleTreeListFocusIn` into regarding the previous focus target as again the TreeList.\n * Otherwise cell clicks are wrongly overwritten in `handleTreeListFocusIn` and the click focus target is not respected.\n */\n focusTreeList() {\n this.metadata.treeList.focus();\n }\n }\n NavigationService.ɵfac = function NavigationService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NavigationService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.Renderer2), i0.ɵɵinject(ScrollSyncService));\n };\n NavigationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NavigationService,\n factory: NavigationService.ɵfac\n });\n return NavigationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet EditService = /*#__PURE__*/(() => {\n class EditService {\n constructor(mapper) {\n this.mapper = mapper;\n this.showEditingDialog = new Subject();\n this.taskDelete = new Subject();\n this.editEvent = new Subject();\n this.addEvent = new Subject();\n this.predecessors = [];\n this.successors = [];\n this.updatedItems = [];\n this.deletedItems = [];\n this.itemIndex = (item, data) => {\n return data.findIndex(dataItem => this.mapper.extractFromTask(dataItem, 'id') === this.mapper.extractFromTask(item, 'id'));\n };\n }\n set dependencies(items) {\n // Can this whole thing be moved to edit-dialog? Dependencies might not be needed here\n const dataItemId = this.mapper.extractFromTask(this.dataItem, 'id');\n this.predecessors = items.filter(item => this.mapper.extractFromDependency(item, 'toId') === dataItemId);\n this.successors = items.filter(item => this.mapper.extractFromDependency(item, 'fromId') === dataItemId);\n }\n get dependencies() {\n return [...this.predecessors, ...this.successors];\n }\n createEditDialog(dataItem, taskFormGroup, dependencies) {\n this.dataItem = dataItem;\n this.taskFormGroup = taskFormGroup;\n this.dependencies = dependencies;\n this.showEditingDialog.next(true);\n }\n closeEditDialog() {\n this.showEditingDialog.next(false);\n this.dataItem = undefined;\n this.taskFormGroup = undefined;\n this.dependencies = [];\n this.updatedItems = [];\n this.deletedItems = [];\n }\n triggerEditEvent(editResultType) {\n this.editEvent.next({\n taskFormGroup: this.taskFormGroup,\n dataItem: this.dataItem,\n dependencies: {\n createdItems: this.getCreatedDependencies(),\n updatedItems: this.updatedItems,\n deletedItems: this.deletedItems\n },\n editResultType\n });\n }\n updateDependencies(item) {\n if (!this.isNew(item)) {\n // update\n const index = this.itemIndex(item, this.updatedItems);\n if (index !== -1) {\n this.updatedItems.splice(index, 1, item);\n } else {\n this.updatedItems.push(item);\n }\n }\n }\n getCreatedDependencies() {\n return this.dependencies.filter(item => this.mapper.extractFromDependency(item, 'id') === null);\n }\n deleteDependency(item) {\n const updatedIndex = this.itemIndex(item, this.updatedItems);\n if (updatedIndex !== -1) {\n this.updatedItems.splice(updatedIndex, 1);\n }\n if (!this.isNew(item)) {\n this.deletedItems.push(item);\n }\n }\n loadTasks(initialValues, isInitializer = true) {\n return forkJoin(initialValues.map(v => this.getElementById(v))).pipe(map(value => value.reduce((acc, item) => acc = acc.concat(normalizeGanttData(item)), [])), expand(values => {\n if (values.some(el => this.hasChildren(el))) {\n return this.loadTasks(values, false);\n }\n return EMPTY;\n }), reduce((acc, values) => acc.concat(values), isInitializer ? [...initialValues] : []));\n }\n getElementById(item) {\n const children = this.fetchChildren(item);\n if (isObservable(children)) {\n return children;\n }\n return of(children);\n }\n isNew(item) {\n return !isPresent(this.mapper.extractFromDependency(item, 'id'));\n }\n }\n EditService.ɵfac = function EditService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EditService)(i0.ɵɵinject(MappingService));\n };\n EditService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EditService,\n factory: EditService.ɵfac\n });\n return EditService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet OptionChangesService = /*#__PURE__*/(() => {\n class OptionChangesService {\n constructor() {\n this.viewChanges = new EventEmitter();\n this.columnChanges = new EventEmitter();\n this.dateFormatChanges = new EventEmitter();\n }\n notifyColumnChanges() {\n this.columnChanges.emit();\n }\n notifyViewChanges() {\n this.viewChanges.emit();\n }\n notifyDateFormatChanges() {\n this.dateFormatChanges.emit();\n }\n }\n OptionChangesService.ɵfac = function OptionChangesService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || OptionChangesService)();\n };\n OptionChangesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OptionChangesService,\n factory: OptionChangesService.ɵfac\n });\n return OptionChangesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst setTime = (origin, candidate) => {\n const date = cloneDate(origin);\n date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());\n return date;\n};\n/**\n * @hidden\n */\nconst DAY_FORMAT = 'E d/MM';\n/**\n * @hidden\n */\nconst HOUR_FORMAT = 'HH:mm aa';\n/**\n * @hidden\n */\nconst MONTH_FORMAT = 'MMM';\n/**\n * @hidden\n */\nconst YEAR_FORMAT = 'yyyy';\nconst END_OF_DAY_DATE = new Date(1980, 0, 1, 23, 59, 59, 999);\n/**\n * @hidden\n */\nlet TimelineBaseViewService = /*#__PURE__*/(() => {\n let TimelineBaseViewService = class TimelineBaseViewService {\n constructor(intlService, mapper, localeId) {\n this.intlService = intlService;\n this.mapper = mapper;\n this.localeId = localeId;\n this._viewStart = 0;\n }\n get viewStart() {\n return this._viewStart;\n }\n /**\n *\n * @param tasks - The tasks which are going to be rendered in the table\n * @returns {Object} - An object containing the range start and end dates\n */\n getRange(tasks) {\n if (!tasks || !tasks.length) {\n return {\n start: new Date(),\n end: new Date()\n };\n }\n const startResult = orderBy(tasks, [{\n field: this.mapper.taskFields.start,\n dir: 'asc'\n }]);\n const endResult = orderBy(tasks, [{\n field: this.mapper.taskFields.end,\n dir: 'desc'\n }]);\n const rangeStart = new Date(this.mapper.extractFromTask(startResult[0], 'start')) || new Date();\n const rangeEnd = new Date(this.mapper.extractFromTask(endResult[0], 'end')) || new Date();\n const start = this.getStartOffset(rangeStart);\n const end = this.getEndOffset(rangeEnd);\n this._viewStart = Number(start);\n return {\n start: new Date(start),\n end: new Date(end)\n };\n }\n /**\n *\n * @param start - The tasks' range start date\n * @param end - The tasks' range end date\n * @returns {Array} - A collection containing the hour slots\n */\n getHours(start, end, customDateFormat) {\n const slots = [];\n const workDayStart = this.intlService.parseDate(this.options.workDayStart).getHours();\n const workDayEnd = this.intlService.parseDate(this.options.workDayEnd).getHours();\n // TODO: retrieve from option?\n const hourSpan = 1;\n let startDate = new Date(start);\n const hoursFormat = customDateFormat ? customDateFormat : HOUR_FORMAT;\n const endDate = new Date(end);\n while (startDate < endDate) {\n const slotEnd = new Date(startDate);\n const isWorkSlot = isWorkHour(slotEnd, workDayStart, workDayEnd);\n slotEnd.setHours(slotEnd.getHours() + hourSpan);\n slots.push({\n start: startDate,\n end: slotEnd,\n isWorking: isWorkSlot,\n text: this.intlService.formatDate(startDate, hoursFormat, this.localeId),\n span: 1,\n slotWidth: this.options.slotWidth\n });\n startDate = slotEnd;\n }\n return slots;\n }\n /**\n *\n * @param start - The tasks' range start date\n * @param end - The tasks' range end date\n * @returns {Array} - A collection containing the day slots\n */\n getDays(start, end, customDateFormat) {\n const slots = [];\n let startDay = new Date(start);\n const dayFormat = customDateFormat ? customDateFormat : DAY_FORMAT;\n const endDay = new Date(end);\n while (startDay <= endDay) {\n // Get the days with cleared time values (except for start and end day)\n const nextDay = getDate(addDays(startDay, 1));\n const isWorking = isWorkDay(startDay, this.options.workWeekStart, this.options.workWeekEnd);\n // Need to get the end date with correct hours (important for day view)\n const slotEnd = endDay < nextDay ? endDay : nextDay;\n slots.push({\n start: startDay,\n end: slotEnd,\n isWorking: isWorking,\n text: this.intlService.formatDate(startDay, dayFormat, this.localeId),\n span: 1,\n slotWidth: this.options.slotWidth\n });\n startDay = nextDay;\n }\n return slots;\n }\n getWeeks(start, end, customDateFormat) {\n const weekStart = this.intlService.firstDay();\n const slots = [];\n let startDay = new Date(start);\n const dayFormat = customDateFormat ? customDateFormat : DAY_FORMAT;\n const endDay = new Date(end);\n while (startDay <= endDay) {\n const lastWeekDay = lastDayOfWeek(startDay, weekStart);\n const slotEnd = lastWeekDay > endDay ? endDay : lastWeekDay;\n const daySlots = this.getDays(startDay, slotEnd);\n const span = daySlots.length;\n const firstDay = this.intlService.formatDate(firstDayInWeek(getDate(startDay), weekStart), dayFormat, this.localeId);\n const lastDay = this.intlService.formatDate(slotEnd, dayFormat, this.localeId);\n if (span > 0) {\n slots.push({\n start: daySlots[0].start,\n end: setTime(daySlots[span - 1].end, END_OF_DAY_DATE),\n text: `${firstDay} - ${lastDay}`,\n span: span,\n slotWidth: this.options.slotWidth\n });\n }\n startDay = firstDayInWeek(addWeeks(slotEnd, 1), weekStart);\n }\n return slots;\n }\n getMonths(start, end, isMainViewType, customDateFormat) {\n const slots = [];\n let startDay = new Date(start);\n const monthFormat = customDateFormat ? customDateFormat : MONTH_FORMAT;\n const endDay = new Date(end);\n while (startDay < endDay) {\n const endMonth = lastDayOfMonth(startDay);\n const slotEnd = endDay < endMonth ? endDay : endMonth;\n const daySlots = this.getDays(startDay, slotEnd);\n const weekSlots = this.getWeeks(startDay, slotEnd);\n const span = isMainViewType ? daySlots.length : weekSlots.length;\n const monthStart = firstDayOfMonth(getDate(startDay));\n const shortText = this.intlService.formatDate(monthStart, monthFormat, this.localeId);\n if (span > 0) {\n slots.push({\n start: isMainViewType ? daySlots[0].start : weekSlots[0].start,\n end: isMainViewType ? daySlots[span - 1] : setTime(weekSlots[span - 1].end, END_OF_DAY_DATE),\n span: span,\n text: shortText,\n slotWidth: this.options.slotWidth\n });\n }\n startDay = firstDayOfMonth(addMonths(slotEnd, 1));\n }\n return slots;\n }\n getYears(start, end, customDateFormat) {\n const slots = [];\n let startDay = new Date(start);\n const endDay = new Date(end);\n const yearFormat = customDateFormat ? customDateFormat : YEAR_FORMAT;\n while (startDay < endDay) {\n const yearEnd = lastDayOfMonth(lastMonthOfYear(startDay));\n const slotEnd = endDay < yearEnd ? endDay : yearEnd;\n const monthSlots = this.getMonths(startDay, slotEnd);\n const span = monthSlots.length;\n if (span > 0) {\n slots.push({\n start: monthSlots[0].start,\n end: setTime(monthSlots[span - 1].end, END_OF_DAY_DATE),\n span: span,\n text: this.intlService.formatDate(slotEnd, yearFormat),\n slotWidth: this.options.slotWidth\n });\n }\n startDay = addDays(slotEnd, 1);\n }\n return slots;\n }\n };\n TimelineBaseViewService = __decorate([__param(2, Inject(LOCALE_ID)), __metadata(\"design:paramtypes\", [IntlService, MappingService, String])], TimelineBaseViewService);\n\n /**\n * @hidden\n */\n return TimelineBaseViewService;\n})();\nlet TimelineDayViewService = /*#__PURE__*/(() => {\n class TimelineDayViewService extends TimelineBaseViewService {\n constructor(intlService, mapper, localeId) {\n super(intlService, mapper, localeId);\n this.localeId = localeId;\n }\n /**\n * Gets a date an hour before the first task start with minutes, seconds, milliseconds cleared.\n */\n getStartOffset(rangeStart) {\n return setTime$1(rangeStart, rangeStart.getHours() - 1);\n }\n /**\n * Gets a date an hour after the last task end with minutes, seconds, milliseconds cleared.\n */\n getEndOffset(rangeEnd) {\n return setTime$1(rangeEnd, rangeEnd.getHours() + 1);\n }\n /**\n *\n * @param tasks - The tasks which are going to be rendered in the table\n * @returns {number}\n */\n getTableWidth(tasks) {\n const timeSlots = this.getSlots(tasks)[1];\n const slotWidth = this.options.slotWidth;\n return Math.round(timeSlots.length * slotWidth);\n }\n /**\n *\n * @param tasks - The tasks which are going to be rendered in the table\n * @returns {Array} - A collection containing the day and hours slots\n * Used to render the number of columns and the header\n */\n getSlots(tasks) {\n // will return the header rows slots\n const slots = [];\n const {\n start,\n end\n } = this.getRange(tasks);\n const daySlots = this.getDays(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);\n const hourSlots = [];\n for (let i = 0; i < daySlots.length; i++) {\n const daySlot = daySlots[i];\n const hours = this.getHours(daySlot.start, daySlot.end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);\n daySlot.span = hours.length;\n hourSlots.push(...hours);\n }\n slots.push(daySlots, hourSlots);\n return slots;\n }\n }\n TimelineDayViewService.ɵfac = function TimelineDayViewService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineDayViewService)(i0.ɵɵinject(i1.IntlService), i0.ɵɵinject(MappingService), i0.ɵɵinject(LOCALE_ID));\n };\n TimelineDayViewService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimelineDayViewService,\n factory: TimelineDayViewService.ɵfac\n });\n return TimelineDayViewService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet TimelineMonthViewService = /*#__PURE__*/(() => {\n class TimelineMonthViewService extends TimelineBaseViewService {\n constructor(intlService, mapper, localeId) {\n super(intlService, mapper, localeId);\n this.localeId = localeId;\n }\n /**\n * Gets a week before the first week in which a task starts.\n */\n getStartOffset(rangeStart) {\n const weekStart = this.intlService.firstDay();\n const firstDay = firstDayInWeek(getDate(rangeStart), weekStart);\n return addWeeks(getDate(firstDay), -1);\n }\n /**\n * Gets a week after the last week in which a task ends.\n */\n getEndOffset(rangeEnd) {\n const weekStart = this.intlService.firstDay();\n const lastDay = addDays(firstDayInWeek(getDate(rangeEnd), weekStart), 6);\n return addWeeks(getDate(lastDay), 1);\n }\n /**\n *\n * @param tasks - The tasks which are going to be rendered in the table\n * @returns {number}\n */\n getTableWidth(tasks) {\n const timeSlots = this.getSlots(tasks)[1];\n const slotWidth = this.options.slotWidth;\n return Math.round(timeSlots.length * slotWidth);\n }\n /**\n *\n * @param tasks - The tasks which are going to be rendered in the table\n * @returns {Array} - A collection containing the months and weeks slots\n * Used to render the number of columns and the header\n */\n getSlots(tasks) {\n // will return the header rows slots\n const slots = [];\n const {\n start,\n end\n } = this.getRange(tasks);\n const months = this.getMonths(start, end, true, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);\n const weeks = this.getWeeks(start, end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);\n slots.push(months, weeks);\n return slots;\n }\n }\n TimelineMonthViewService.ɵfac = function TimelineMonthViewService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineMonthViewService)(i0.ɵɵinject(i1.IntlService), i0.ɵɵinject(MappingService), i0.ɵɵinject(LOCALE_ID));\n };\n TimelineMonthViewService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimelineMonthViewService,\n factory: TimelineMonthViewService.ɵfac\n });\n return TimelineMonthViewService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet TimelineWeekViewService = /*#__PURE__*/(() => {\n class TimelineWeekViewService extends TimelineBaseViewService {\n constructor(intlService, mapper, localeId) {\n super(intlService, mapper, localeId);\n this.localeId = localeId;\n }\n /**\n * Gets a date a day before the first task start with hours, minutes, seconds, milliseconds cleared.\n */\n getStartOffset(rangeStart) {\n return addDays(getDate(rangeStart), -1);\n }\n /**\n * Gets a date a day after the last task start with hours, minutes, seconds, milliseconds cleared.\n */\n getEndOffset(rangeEnd) {\n return addDays(getDate(rangeEnd), 1);\n }\n /**\n *\n * @param tasks - The tasks which are going to be rendered in the table\n * @returns {number}\n */\n getTableWidth(tasks) {\n const timeSlots = this.getSlots(tasks)[1];\n const slotWidth = this.options.slotWidth;\n return Math.round(timeSlots.length * slotWidth);\n }\n /**\n *\n * @param tasks - The tasks which are going to be rendered in the table\n * @returns {Array} - A collection containing the day and hours slots\n * Used to render the number of columns and the header\n */\n getSlots(tasks) {\n // will return the header rows slots\n const slots = [];\n const {\n start,\n end\n } = this.getRange(tasks);\n const weeks = this.getWeeks(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);\n const days = this.getDays(start, end, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);\n slots.push(weeks, days);\n return slots;\n }\n }\n TimelineWeekViewService.ɵfac = function TimelineWeekViewService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineWeekViewService)(i0.ɵɵinject(i1.IntlService), i0.ɵɵinject(MappingService), i0.ɵɵinject(LOCALE_ID));\n };\n TimelineWeekViewService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimelineWeekViewService,\n factory: TimelineWeekViewService.ɵfac\n });\n return TimelineWeekViewService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet TimeLineYearViewService = /*#__PURE__*/(() => {\n class TimeLineYearViewService extends TimelineBaseViewService {\n constructor(intlService, mapper, localeId) {\n super(intlService, mapper, localeId);\n this.localeId = localeId;\n }\n getTableWidth(tasks) {\n const timeSlots = this.getSlots(tasks)[1];\n const slotWidth = this.options.slotWidth;\n return Math.round(timeSlots.length * slotWidth);\n }\n getStartOffset(rangeStart) {\n const monthStart = firstDayOfMonth(rangeStart);\n return addMonths(getDate(monthStart), -1);\n }\n /**\n *\n */\n getEndOffset(rangeEnd) {\n const monthEnd = lastDayOfMonth(rangeEnd);\n return addMonths(getDate(monthEnd), 1);\n }\n /**\n *\n * @param tasks - The tasks which are going to be rendered in the table\n * @returns {Array} - A collection containing the years and months slots\n *\n * Used to render the number of columns and the header\n */\n getSlots(tasks) {\n // will return the header rows slots\n const slots = [];\n const {\n start,\n end\n } = this.getRange(tasks);\n const years = this.getYears(start, end, this.options.timelineHeadersDateFormat?.groupHeaderDateFormat);\n const months = this.getMonths(start, end, false, this.options.timelineHeadersDateFormat?.columnHeaderDateFormat);\n slots.push(years, months);\n return slots;\n }\n }\n TimeLineYearViewService.ɵfac = function TimeLineYearViewService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimeLineYearViewService)(i0.ɵɵinject(i1.IntlService), i0.ɵɵinject(MappingService), i0.ɵɵinject(LOCALE_ID));\n };\n TimeLineYearViewService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimeLineYearViewService,\n factory: TimeLineYearViewService.ɵfac\n });\n return TimeLineYearViewService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst services = {\n day: TimelineDayViewService,\n week: TimelineWeekViewService,\n month: TimelineMonthViewService,\n year: TimeLineYearViewService\n};\n/**\n * @hidden\n */\nlet TimelineViewService = /*#__PURE__*/(() => {\n class TimelineViewService {\n constructor(injector) {\n this.injector = injector;\n this.viewChange = new EventEmitter();\n }\n service(view) {\n const serviceType = services[view];\n return serviceType ? this.injector.get(serviceType) : null;\n }\n }\n TimelineViewService.ɵfac = function TimelineViewService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineViewService)(i0.ɵɵinject(i0.Injector));\n };\n TimelineViewService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimelineViewService,\n factory: TimelineViewService.ɵfac\n });\n return TimelineViewService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst slotUnitDuration = {\n day: MS_PER_HOUR,\n week: MS_PER_DAY,\n month: MS_PER_DAY * 7\n};\nconst FOCUSED_CLASS = 'k-focus';\n/**\n * @hidden\n */\nlet GanttTaskBase = /*#__PURE__*/(() => {\n class GanttTaskBase {\n constructor(mapper,\n // left public to be available for usage in the templates\n timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {\n this.mapper = mapper;\n this.timelineViewService = timelineViewService;\n this.dependencyDomService = dependencyDomService;\n this.optionChangesService = optionChangesService;\n this.cdr = cdr;\n this.navigationService = navigationService;\n this.wrapperClass = true;\n this.subscriptions = new Subscription();\n this.subscriptions.add(this.optionChangesService.viewChanges.subscribe(() => this.cdr.markForCheck()));\n this.subscriptions.add(this.navigationService.taskStatusChanges.subscribe(this.updateActiveState.bind(this)));\n }\n get taskIndexAttribute() {\n return this.index;\n }\n get ariaSelected() {\n // assigning null will not render the attribute at all (desired in selectable=\"false\" mode)\n return this.selectable ? String(this.isSelected(this.dataItem)) : null;\n }\n get slotUnitDuration() {\n return slotUnitDuration[this.activeView];\n }\n get viewService() {\n return this.timelineViewService.service(this.activeView);\n }\n get slotWidth() {\n return this.viewService.options.slotWidth;\n }\n get taskWidth() {\n const taskStart = this.mapper.extractFromTask(this.dataItem, 'start');\n const taskEnd = this.mapper.extractFromTask(this.dataItem, 'end');\n if (this.activeView === 'year') {\n const monthsDiff = Math.max(getTotalMonthsInBetween(taskStart, taskEnd), 0);\n const totalDaysInStartMonth = getTotalDaysInMonth(taskStart);\n if (monthsDiff > 0 || monthsDiff === 0 && taskStart.getMonth() !== taskEnd.getMonth()) {\n const startFraction = (totalDaysInStartMonth - taskStart.getDate()) / totalDaysInStartMonth;\n const endFraction = taskEnd.getDate() / getTotalDaysInMonth(taskEnd);\n return (startFraction + monthsDiff + endFraction) * this.slotWidth;\n } else {\n const fraction = (taskEnd.getDate() - taskStart.getDate()) / totalDaysInStartMonth;\n return fraction * this.slotWidth;\n }\n }\n const itemDuration = taskEnd - taskStart;\n const durationInSlotUnits = itemDuration / this.slotUnitDuration;\n const width = durationInSlotUnits * this.slotWidth;\n return width;\n }\n /**\n * The `left` style prop has to be applied to the host element (.k-task-wrap), as the drag clue elements are displayed on .k-task-wrap hover.\n * Applying the `left` offset to the inner .k-task element leaves the .k-task-wrap element rendered with an offset of 0 somewhere on the left\n * and hovering just the .k-task element doesn't expose the drag clues.\n * Additionally, positioning the entire container takes care of positioning the hints as well.\n */\n get taskOffset() {\n const taskStart = this.mapper.extractFromTask(this.dataItem, 'start');\n const viewStart = this.viewService.viewStart;\n if (this.activeView === 'year') {\n const viewStartDate = new Date(viewStart);\n const offsetSlots = getTotalMonthsInBetween(viewStartDate, new Date(firstDayOfMonth(taskStart))) + 1;\n const currentMonthOffset = taskStart.getDate() / getTotalDaysInMonth(taskStart);\n return (offsetSlots + currentMonthOffset) * this.slotWidth;\n }\n const timeAfterViewStart = taskStart - viewStart;\n const offsetInSlotUnits = timeAfterViewStart / this.slotUnitDuration;\n const offset = offsetInSlotUnits * this.slotWidth;\n return offset;\n }\n get completionOverlayWidth() {\n const overlayWidth = this.taskWidth * this.mapper.extractFromTask(this.dataItem, 'completionRatio');\n // fall-back to 0 in case no completionRatio is provided\n return isNumber(overlayWidth) ? overlayWidth : 0;\n }\n ngOnChanges(changes) {\n if (isPresent(changes['dataItem'])) {\n if (isPresent(changes['dataItem'].previousValue)) {\n this.dependencyDomService.unregisterTask(changes['dataItem'].previousValue);\n }\n this.dependencyDomService.registerTask(this.dataItem, this.taskElement.nativeElement);\n } else if (isPresent(changes['activeView'])) {\n this.dependencyDomService.notifyChanges();\n }\n if (this.navigationService.enabled && isPresent(changes['index'])) {\n this.updateActiveState(this.navigationService.activeTask);\n }\n }\n ngOnDestroy() {\n if (isPresent(this.dataItem)) {\n this.dependencyDomService.unregisterTask(this.dataItem);\n }\n this.subscriptions.unsubscribe();\n }\n updateActiveState({\n activeIndex,\n isFocused\n }) {\n const isActive = activeIndex === this.index;\n const tabindex = isActive ? '0' : '-1';\n this.taskElement.nativeElement.setAttribute('tabindex', tabindex);\n if (isActive && isFocused) {\n this.taskElement.nativeElement.focus();\n this.taskElement.nativeElement.classList.add(FOCUSED_CLASS);\n } else {\n this.taskElement.nativeElement.classList.remove(FOCUSED_CLASS);\n }\n }\n }\n GanttTaskBase.ɵfac = function GanttTaskBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttTaskBase)(i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(TimelineViewService), i0.ɵɵdirectiveInject(DependencyDomService), i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NavigationService));\n };\n GanttTaskBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GanttTaskBase,\n selectors: [[\"kendo-gantt-task-base\"]],\n viewQuery: function GanttTaskBase_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.taskElement = _t.first);\n }\n },\n hostVars: 5,\n hostBindings: function GanttTaskBase_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"data-task-index\", ctx.taskIndexAttribute);\n i0.ɵɵstyleProp(\"left\", ctx.taskOffset, \"px\");\n i0.ɵɵclassProp(\"k-task-wrap\", ctx.wrapperClass);\n }\n },\n inputs: {\n dataItem: \"dataItem\",\n index: \"index\",\n level: \"level\",\n renderDependencyDragClues: \"renderDependencyDragClues\",\n selectable: \"selectable\",\n isSelected: \"isSelected\",\n activeView: \"activeView\",\n taskClass: \"taskClass\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return GanttTaskBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet GanttTaskComponent = /*#__PURE__*/(() => {\n class GanttTaskComponent extends GanttTaskBase {\n constructor(editService, mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {\n super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);\n this.editService = editService;\n this.xIcon = xIcon;\n this.touchEnabled = touchEnabled;\n }\n onTaskDelete() {\n this.editService.dataItem = this.dataItem;\n this.editService.taskDelete.next(this.dataItem);\n }\n }\n GanttTaskComponent.ɵfac = function GanttTaskComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttTaskComponent)(i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(TimelineViewService), i0.ɵɵdirectiveInject(DependencyDomService), i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NavigationService));\n };\n GanttTaskComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttTaskComponent,\n selectors: [[\"kendo-gantt-task\"]],\n inputs: {\n taskContentTemplate: \"taskContentTemplate\",\n taskTemplate: \"taskTemplate\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: GanttTaskBase,\n useExisting: forwardRef(() => GanttTaskComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 11,\n consts: [[\"task\", \"\"], [\"taskContent\", \"\"], [\"role\", \"treeitem\", 1, \"k-task\", \"k-task-single\", 3, \"ngClass\"], [4, \"ngIf\"], [\"aria-hidden\", \"true\", 1, \"k-task-complete\"], [1, \"k-task-content\"], [1, \"k-task-template\"], [4, \"ngIf\", \"ngIfElse\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"aria-hidden\", \"true\", 1, \"k-task-actions\"], [1, \"k-link\", \"k-task-delete\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [\"icon\", \"x\", 3, \"svgIcon\"], [1, \"k-task-dot\", \"k-task-start\", \"k-touch-action-none\"], [1, \"k-task-dot\", \"k-task-end\", \"k-touch-action-none\"]],\n template: function GanttTaskComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵtemplate(2, GanttTaskComponent_ng_container_2_Template, 10, 13, \"ng-container\", 3)(3, GanttTaskComponent_3_Template, 1, 5, null, 3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, GanttTaskComponent_ng_container_4_Template, 3, 4, \"ng-container\", 3);\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"width\", ctx.taskWidth, \"px\");\n i0.ɵɵclassProp(\"k-selected\", ctx.isSelected(ctx.dataItem));\n i0.ɵɵproperty(\"ngClass\", ctx.taskClass(ctx.dataItem));\n i0.ɵɵattribute(\"title\", ctx.mapper.extractFromTask(ctx.dataItem, \"title\"))(\"aria-selected\", ctx.ariaSelected)(\"aria-level\", ctx.level + 1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.taskTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.taskTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.renderDependencyDragClues);\n }\n },\n dependencies: [NgClass, NgIf, NgTemplateOutlet, EventsOutsideAngularDirective, IconWrapperComponent],\n encapsulation: 2\n });\n return GanttTaskComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet GanttSummaryTaskComponent = /*#__PURE__*/(() => {\n class GanttSummaryTaskComponent extends GanttTaskBase {\n constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {\n super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);\n this.summaryWrapperClass = true;\n this.touchEnabled = touchEnabled;\n }\n get ariaExpanded() {\n // if no callback is provided, all child items are displayed and the item is regarded as expanded\n // replicates the TreeList aria-expanded behavior\n const isExpanded = !isPresent(this.isExpanded) || this.isExpanded(this.dataItem);\n return String(isExpanded);\n }\n }\n GanttSummaryTaskComponent.ɵfac = function GanttSummaryTaskComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttSummaryTaskComponent)(i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(TimelineViewService), i0.ɵɵdirectiveInject(DependencyDomService), i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NavigationService));\n };\n GanttSummaryTaskComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttSummaryTaskComponent,\n selectors: [[\"kendo-gantt-summary-task\"]],\n hostVars: 2,\n hostBindings: function GanttSummaryTaskComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-summary-wrap\", ctx.summaryWrapperClass);\n }\n },\n inputs: {\n template: \"template\",\n isExpanded: \"isExpanded\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: GanttTaskBase,\n useExisting: forwardRef(() => GanttSummaryTaskComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 17,\n consts: [[\"task\", \"\"], [\"summaryTemplate\", \"\"], [\"role\", \"treeitem\", 1, \"k-task\", \"k-task-summary\", 3, \"ngClass\"], [\"class\", \"k-task-summary-progress\", 3, \"width\", 4, \"ngIf\", \"ngIfElse\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [4, \"ngIf\"], [1, \"k-task-summary-progress\"], [1, \"k-task-summary-complete\"], [1, \"k-task-dot\", \"k-task-start\", \"k-touch-action-none\"], [1, \"k-task-dot\", \"k-task-end\", \"k-touch-action-none\"]],\n template: function GanttSummaryTaskComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵtemplate(2, GanttSummaryTaskComponent_div_2_Template, 2, 4, \"div\", 3)(3, GanttSummaryTaskComponent_ng_template_3_Template, 0, 0, \"ng-template\", 4, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, GanttSummaryTaskComponent_ng_container_5_Template, 3, 4, \"ng-container\", 5);\n }\n if (rf & 2) {\n const summaryTemplate_r2 = i0.ɵɵreference(4);\n i0.ɵɵstyleProp(\"width\", ctx.taskWidth, \"px\");\n i0.ɵɵclassProp(\"k-selected\", ctx.isSelected(ctx.dataItem));\n i0.ɵɵproperty(\"ngClass\", ctx.taskClass(ctx.dataItem));\n i0.ɵɵattribute(\"title\", ctx.mapper.extractFromTask(ctx.dataItem, \"title\"))(\"aria-selected\", ctx.ariaSelected)(\"aria-expanded\", ctx.ariaExpanded)(\"aria-level\", ctx.level + 1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.template)(\"ngIfElse\", summaryTemplate_r2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(14, _c3, ctx.dataItem, ctx.taskWidth));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.renderDependencyDragClues);\n }\n },\n dependencies: [NgClass, NgIf, NgTemplateOutlet],\n encapsulation: 2\n });\n return GanttSummaryTaskComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet GanttMilestoneTaskComponent = /*#__PURE__*/(() => {\n class GanttMilestoneTaskComponent extends GanttTaskBase {\n constructor(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService) {\n super(mapper, timelineViewService, dependencyDomService, optionChangesService, cdr, navigationService);\n this.milestoneWrapperClass = true;\n this.touchEnabled = touchEnabled;\n }\n }\n GanttMilestoneTaskComponent.ɵfac = function GanttMilestoneTaskComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttMilestoneTaskComponent)(i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(TimelineViewService), i0.ɵɵdirectiveInject(DependencyDomService), i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NavigationService));\n };\n GanttMilestoneTaskComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttMilestoneTaskComponent,\n selectors: [[\"kendo-gantt-milestone-task\"]],\n hostVars: 2,\n hostBindings: function GanttMilestoneTaskComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-milestone-wrap\", ctx.milestoneWrapperClass);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: GanttTaskBase,\n useExisting: forwardRef(() => GanttMilestoneTaskComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 7,\n consts: [[\"task\", \"\"], [\"role\", \"treeitem\", 1, \"k-task\", \"k-task-milestone\", 3, \"ngClass\"], [4, \"ngIf\"], [1, \"k-task-dot\", \"k-task-start\", \"k-touch-action-none\"], [1, \"k-task-dot\", \"k-task-end\", \"k-touch-action-none\"]],\n template: function GanttMilestoneTaskComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 1, 0);\n i0.ɵɵtemplate(2, GanttMilestoneTaskComponent_ng_container_2_Template, 3, 4, \"ng-container\", 2);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-selected\", ctx.isSelected(ctx.dataItem));\n i0.ɵɵproperty(\"ngClass\", ctx.taskClass(ctx.dataItem));\n i0.ɵɵattribute(\"title\", ctx.mapper.extractFromTask(ctx.dataItem, \"title\"))(\"aria-selected\", ctx.ariaSelected)(\"aria-level\", ctx.level + 1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.renderDependencyDragClues);\n }\n },\n dependencies: [NgClass, NgIf],\n encapsulation: 2\n });\n return GanttMilestoneTaskComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet GanttTasksTableBodyComponent = /*#__PURE__*/(() => {\n class GanttTasksTableBodyComponent {\n constructor(dependencyDomService, mapper) {\n this.dependencyDomService = dependencyDomService;\n this.mapper = mapper;\n }\n set timelineRow(timelineRow) {\n // register the row value only when the first row is rendered\n // with server-side data-binding, the rows rendering could be delayed\n if (isPresent(timelineRow)) {\n this.dependencyDomService.registerTimelineRow(timelineRow.nativeElement);\n }\n }\n isMileStone(item) {\n return !item.hasChildren && isEqual(this.mapper.extractFromTask(item.data, 'start'), this.mapper.extractFromTask(item.data, 'end'));\n }\n }\n GanttTasksTableBodyComponent.ɵfac = function GanttTasksTableBodyComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttTasksTableBodyComponent)(i0.ɵɵdirectiveInject(DependencyDomService), i0.ɵɵdirectiveInject(MappingService));\n };\n GanttTasksTableBodyComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttTasksTableBodyComponent,\n selectors: [[\"\", \"kendoGanttTasksTableBody\", \"\"]],\n viewQuery: function GanttTasksTableBodyComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c4, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timelineRow = _t.first);\n }\n },\n inputs: {\n selectable: \"selectable\",\n rows: \"rows\",\n activeView: \"activeView\",\n taskContentTemplate: \"taskContentTemplate\",\n taskTemplate: \"taskTemplate\",\n summaryTaskTemplate: \"summaryTaskTemplate\",\n taskClass: \"taskClass\",\n isExpanded: \"isExpanded\",\n isTaskSelected: \"isTaskSelected\",\n renderDependencyDragClues: \"renderDependencyDragClues\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c5,\n decls: 1,\n vars: 1,\n consts: [[\"timelineRow\", \"\"], [\"task\", \"\"], [\"class\", \"k-table-row\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-table-row\"], [1, \"k-table-td\"], [3, \"dataItem\", \"level\", \"activeView\", \"taskClass\", \"selectable\", \"isSelected\", \"index\", \"renderDependencyDragClues\", 4, \"ngIf\", \"ngIfElse\"], [3, \"dataItem\", \"level\", \"activeView\", \"taskClass\", \"selectable\", \"isSelected\", \"index\", \"renderDependencyDragClues\"], [3, \"dataItem\", \"level\", \"template\", \"activeView\", \"taskClass\", \"selectable\", \"isSelected\", \"isExpanded\", \"index\", \"renderDependencyDragClues\", 4, \"ngIf\"], [3, \"dataItem\", \"level\", \"taskContentTemplate\", \"taskTemplate\", \"activeView\", \"taskClass\", \"selectable\", \"isSelected\", \"index\", \"renderDependencyDragClues\", 4, \"ngIf\"], [3, \"dataItem\", \"level\", \"template\", \"activeView\", \"taskClass\", \"selectable\", \"isSelected\", \"isExpanded\", \"index\", \"renderDependencyDragClues\"], [3, \"dataItem\", \"level\", \"taskContentTemplate\", \"taskTemplate\", \"activeView\", \"taskClass\", \"selectable\", \"isSelected\", \"index\", \"renderDependencyDragClues\"]],\n template: function GanttTasksTableBodyComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, GanttTasksTableBodyComponent_tr_0_Template, 6, 2, \"tr\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.rows);\n }\n },\n dependencies: [NgFor, NgIf, GanttMilestoneTaskComponent, GanttSummaryTaskComponent, GanttTaskComponent],\n encapsulation: 2\n });\n return GanttTasksTableBodyComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nvar ScrollDirection = /*#__PURE__*/function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Backwards\"] = -1] = \"Backwards\";\n ScrollDirection[ScrollDirection[\"Forward\"] = 1] = \"Forward\";\n return ScrollDirection;\n}(ScrollDirection || {});\n/**\n * @hidden\n */\nvar ScrollAxis = /*#__PURE__*/function (ScrollAxis) {\n ScrollAxis[\"Vertical\"] = \"scrollTop\";\n ScrollAxis[\"Horizontal\"] = \"scrollLeft\";\n return ScrollAxis;\n}(ScrollAxis || {});\n/**\n * @hidden\n *\n * Notifies the timeline-scroll.directive to scroll into view to requested coordinates.\n * The scrolling is performed based on client (viewport) coordinates.\n */\nlet TimelineScrollService = /*#__PURE__*/(() => {\n class TimelineScrollService {\n constructor() {\n this.horizontalScroll = new Subject();\n this.verticalScroll = new Subject();\n this.scrollCancel = new Subject();\n }\n ngOnDestroy() {\n this.horizontalScroll.complete();\n this.verticalScroll.complete();\n this.scrollCancel.complete();\n }\n requestHorizontalScroll(clientTop) {\n this.horizontalScroll.next(clientTop);\n }\n requestVerticalScroll(clientLeft) {\n this.verticalScroll.next(clientLeft);\n }\n requestScrollCancel() {\n this.scrollCancel.next();\n }\n }\n TimelineScrollService.ɵfac = function TimelineScrollService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineScrollService)();\n };\n TimelineScrollService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TimelineScrollService,\n factory: TimelineScrollService.ɵfac\n });\n return TimelineScrollService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n *\n * Checks if the beginning of the scrollable element is reached (top/left).\n * Floors the top value.\n */\nconst isUpperLimitReached = (element, axis) => Math.floor(element[axis]) <= 0;\n/**\n * @hidden\n *\n * Checks if the end of the scrollable element is reached (bottom/right).\n * Ceils the top value.\n */\nconst isBottomLimitReached = (element, axis) => {\n const elementSize = axis === ScrollAxis.Horizontal ? element.scrollWidth - element.clientWidth : element.scrollHeight - element.clientHeight;\n return Math.ceil(element[axis]) >= elementSize;\n};\n/**\n * @hidden\n *\n * Scrolls the element in the given direction by the provided step in the provided scroll axis.\n *\n * If the targeted scroll incrementation doesn't yield any result due to device pixel ratio issues (https://github.com/dimitar-pechev/RenderingIndependentScrollOffsets#readme),\n * increments the step with 1px and again attempts to change the scrollTop of the element, until the content is actually scrolled.\n *\n * Cuts the operation short after 20 unsuccessful attempts to prevent infinite loops in possible corner-case scenarios.\n */\nconst scrollElement = (element, step, direction, scrollAxis) => {\n if (!(isPresent(element) && isDocumentAvailable())) {\n return;\n }\n const initialScrollPosition = element[scrollAxis];\n let currentStep = step;\n let iterations = 0;\n while (initialScrollPosition === element[scrollAxis] && !(direction === ScrollDirection.Backwards && isUpperLimitReached(element, scrollAxis)) && !(direction === ScrollDirection.Forward && isBottomLimitReached(element, scrollAxis)) && iterations < 20 // cut the operation short in 20 attempts - in case of a wild corner case\n ) {\n element[scrollAxis] += currentStep * direction;\n // try with a larger step if the current one doesn't update the scroll position successfully\n currentStep += 1;\n iterations += 1;\n }\n};\n/**\n * @hidden\n *\n * As client coordinates are not restricted to the range 0px - {viewportSize}px, but can have negative starting values or ending values greater than the viewport size,\n * this function extracts the visible boundaries of the provided element - fall-backing to 0 when the top/left are below 0,\n * and fall-backing to the actual visible size of the container for bottom/right.\n */\nconst getViewportBoundaries = element => {\n const elementRect = element.getBoundingClientRect();\n // if the beginning of the scrollable container is above/before the current viewport, fall-back to 0\n const topLimit = Math.max(elementRect.top, 0);\n const leftLimit = Math.max(elementRect.left, 0);\n // if the end of the scrollable container is beneath/after the current viewport, fall-back to its client height\n // add the distance from the start of the viewport to the beginning of the container to ensure scrolling bottom begins when the actual end of the container is reached\n const bottomLimit = topLimit + Math.min(elementRect.bottom, element.clientHeight);\n const rightLimit = leftLimit + Math.min(elementRect.right, element.clientWidth);\n return {\n top: topLimit,\n bottom: bottomLimit,\n left: leftLimit,\n right: rightLimit\n };\n};\n\n/**\n * @hidden\n */\nlet TimelineScrollableDirective = /*#__PURE__*/(() => {\n class TimelineScrollableDirective {\n constructor(timelineScrollableContainer, scrollService, zone) {\n this.timelineScrollableContainer = timelineScrollableContainer;\n this.scrollService = scrollService;\n this.zone = zone;\n this.subscriptions = new Subscription();\n this.subscriptions.add(this.scrollService.horizontalScroll.subscribe(this.scrollHorizontallyTo.bind(this)));\n this.subscriptions.add(this.scrollService.verticalScroll.subscribe(this.scrollVerticallyTo.bind(this)));\n this.subscriptions.add(this.scrollService.scrollCancel.subscribe(this.cancelScroll.bind(this)));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n scrollHorizontallyTo(left) {\n this.zone.runOutsideAngular(() => {\n const container = this.timelineScrollableContainer.nativeElement;\n const visibleBoundaries = getViewportBoundaries(container);\n if (left < visibleBoundaries.left + this.scrollSettings.threshold) {\n this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Horizontal), this.scrollSettings.interval);\n } else if (left > visibleBoundaries.right - this.scrollSettings.threshold) {\n this.horizontalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Horizontal), this.scrollSettings.interval);\n }\n });\n }\n scrollVerticallyTo(top) {\n this.zone.runOutsideAngular(() => {\n const container = this.timelineScrollableContainer.nativeElement;\n const visibleBoundaries = getViewportBoundaries(container);\n if (top < visibleBoundaries.top + this.scrollSettings.threshold) {\n this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Backwards, ScrollAxis.Vertical), this.scrollSettings.interval);\n } else if (top > visibleBoundaries.bottom - this.scrollSettings.threshold) {\n this.verticalScrollInterval = setInterval(() => scrollElement(container, this.scrollSettings.step, ScrollDirection.Forward, ScrollAxis.Vertical), this.scrollSettings.interval);\n }\n });\n }\n cancelScroll() {\n if (isPresent(this.verticalScrollInterval)) {\n clearInterval(this.verticalScrollInterval);\n this.verticalScrollInterval = null;\n }\n if (isPresent(this.horizontalScrollInterval)) {\n clearInterval(this.horizontalScrollInterval);\n this.horizontalScrollInterval = null;\n }\n }\n }\n TimelineScrollableDirective.ɵfac = function TimelineScrollableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineScrollableDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(TimelineScrollService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n TimelineScrollableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TimelineScrollableDirective,\n selectors: [[\"\", \"kendoGanttTimelineScrollable\", \"\"]],\n inputs: {\n scrollSettings: \"scrollSettings\"\n },\n standalone: true\n });\n return TimelineScrollableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet GanttHeaderTableBodyComponent = /*#__PURE__*/(() => {\n class GanttHeaderTableBodyComponent {\n constructor() {\n this.tbodyClass = true;\n }\n }\n GanttHeaderTableBodyComponent.ɵfac = function GanttHeaderTableBodyComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttHeaderTableBodyComponent)();\n };\n GanttHeaderTableBodyComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttHeaderTableBodyComponent,\n selectors: [[\"\", \"kendoGanttHeaderTableBody\", \"\"]],\n hostVars: 2,\n hostBindings: function GanttHeaderTableBodyComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-table-tbody\", ctx.tbodyClass);\n }\n },\n inputs: {\n groupSlots: \"groupSlots\",\n slots: \"slots\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c6,\n decls: 4,\n vars: 2,\n consts: [[1, \"k-table-row\"], [\"class\", \"k-header k-table-td\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-header\", \"k-table-td\"]],\n template: function GanttHeaderTableBodyComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\", 0);\n i0.ɵɵtemplate(1, GanttHeaderTableBodyComponent_td_1_Template, 2, 2, \"td\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"tr\", 0);\n i0.ɵɵtemplate(3, GanttHeaderTableBodyComponent_td_3_Template, 2, 3, \"td\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.groupSlots);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.slots);\n }\n },\n dependencies: [NgFor],\n encapsulation: 2\n });\n return GanttHeaderTableBodyComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet GanttTimelineComponent = /*#__PURE__*/(() => {\n class GanttTimelineComponent {\n constructor(scrollSyncService, dependencyDomService, renderer, zone, currentTimeMarkerService) {\n this.scrollSyncService = scrollSyncService;\n this.dependencyDomService = dependencyDomService;\n this.renderer = renderer;\n this.zone = zone;\n this.currentTimeMarkerService = currentTimeMarkerService;\n this.dependencies = [];\n // as all drag-and-drop operations are on the timeline container, use a single draggable instance\n this.timelineContainerPress = new EventEmitter();\n this.timelineContainerDrag = new EventEmitter();\n this.timelineContainerRelease = new EventEmitter();\n this.subscriptions = new Subscription();\n this.subscriptions.add(\n // task changes indicates change in row content, number, height, etc.\n this.dependencyDomService.taskChanges.pipe(filter(args => isPresent(args.timelineRow)), switchMap(args => this.zone.onStable.pipe(take(1), map(() => args))) // ensure the content is rendered\n ).subscribe(({\n timelineRow\n }) => {\n const timelineRowHeight = isDocumentAvailable() ? timelineRow.getBoundingClientRect().height : 0;\n this.currentTimeMarkerService.rowHeight = timelineRowHeight;\n this.currentTimeMarkerService.currentTimeMarker = this.currentTimeMarker;\n this.currentTimeMarkerService.slots = this.slots;\n this.currentTimeMarkerService.rows = this.rows;\n this.currentTimeMarkerService.activeView = this.activeView;\n this.createTimeMarker();\n this.renderer.setStyle(this.timelineColumns.nativeElement, 'height', `${(this.rows || []).length * timelineRowHeight}px`);\n }));\n }\n /**\n * Specifies whether the draggable will attach or detach its pointer event listeners.\n */\n get draggableEnabled() {\n return this.renderDependencyDragClues;\n }\n ngOnChanges(changes) {\n if (changes['currentTimeMarker']) {\n this.createTimeMarker();\n }\n }\n ngAfterViewInit() {\n this.currentTimeMarkerService.slots = this.slots;\n this.currentTimeMarkerService.rows = this.rows;\n this.currentTimeMarkerService.container = this.timelineContent;\n const timelineHeader = this.timelineHeaderWrap.nativeElement;\n const rightContainer = this.timelineContent.nativeElement;\n this.scrollSyncService.registerElement(rightContainer, 'timeline');\n this.scrollSyncService.registerElement(timelineHeader, 'header');\n this.dependencyDomService.registerContentContainer(this.tasksContainer.nativeElement);\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n isNonWorking(item) {\n return item.hasOwnProperty('isWorking') && !item.isWorking;\n }\n createTimeMarker() {\n this.zone.runOutsideAngular(() => {\n this.currentTimeMarkerService.removeTimeMarker();\n if (typeof this.currentTimeMarker === 'boolean' && this.currentTimeMarker || this.currentTimeMarker?.enabled) {\n this.currentTimeMarkerService.createTimeMarker();\n }\n });\n }\n }\n GanttTimelineComponent.ɵfac = function GanttTimelineComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttTimelineComponent)(i0.ɵɵdirectiveInject(ScrollSyncService), i0.ɵɵdirectiveInject(DependencyDomService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(CurrentTimeMarkerService));\n };\n GanttTimelineComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttTimelineComponent,\n selectors: [[\"kendo-gantt-timeline\"]],\n viewQuery: function GanttTimelineComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c7, 7);\n i0.ɵɵviewQuery(_c8, 7);\n i0.ɵɵviewQuery(_c9, 7);\n i0.ɵɵviewQuery(_c10, 7);\n i0.ɵɵviewQuery(_c11, 5, ViewContainerRef);\n i0.ɵɵviewQuery(_c12, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timelineContent = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timelineColumns = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timelineHeaderWrap = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tasksContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dragPopupContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dependencyDragCreatePolyline = _t.first);\n }\n },\n inputs: {\n rows: \"rows\",\n slots: \"slots\",\n groupSlots: \"groupSlots\",\n tableWidth: \"tableWidth\",\n activeView: \"activeView\",\n taskContentTemplate: \"taskContentTemplate\",\n taskTemplate: \"taskTemplate\",\n summaryTaskTemplate: \"summaryTaskTemplate\",\n taskClass: \"taskClass\",\n renderDependencyDragClues: \"renderDependencyDragClues\",\n dragScrollSettings: \"dragScrollSettings\",\n currentTimeMarker: \"currentTimeMarker\",\n selectable: \"selectable\",\n isTaskSelected: \"isTaskSelected\",\n isExpanded: \"isExpanded\",\n dependencies: \"dependencies\"\n },\n outputs: {\n timelineContainerPress: \"timelineContainerPress\",\n timelineContainerDrag: \"timelineContainerDrag\",\n timelineContainerRelease: \"timelineContainerRelease\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 28,\n vars: 28,\n consts: [[\"timelineHeaderWrap\", \"\"], [\"timelineContent\", \"\"], [\"timelineColumns\", \"\"], [\"tasksContainer\", \"\"], [\"dependencyDragCreatePolyline\", \"\"], [\"dragPopupContainer\", \"\"], [1, \"k-gantt-timeline\", \"k-grid\", \"k-grid-md\"], [1, \"k-grid-header\"], [1, \"k-grid-header-wrap\"], [\"role\", \"presentation\", 1, \"k-table\", \"k-table-md\", \"k-grid-header-table\"], [\"kendoGanttHeaderTableBody\", \"\", 3, \"groupSlots\", \"slots\"], [\"tabindex\", \"-1\", \"role\", \"tree\", \"aria-roledescription\", \"Timeline\", \"kendoGanttTimelineScrollable\", \"\", \"kendoDraggable\", \"\", 1, \"k-grid-content\", 3, \"kendoPress\", \"kendoDrag\", \"kendoRelease\", \"scrollSettings\", \"enableDrag\"], [1, \"k-gantt-tables\"], [\"role\", \"presentation\", 1, \"k-table\", \"k-table-md\", \"k-grid-table\", \"k-gantt-rows\"], [1, \"k-table-tbody\"], [3, \"class\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\", 1, \"k-table\", \"k-table-md\", \"k-gantt-columns\"], [4, \"ngFor\", \"ngForOf\"], [1, \"k-table-row\"], [\"class\", \"k-table-td\", 3, \"k-nonwork-hour\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"presentation\", 1, \"k-table\", \"k-table-md\", \"k-gantt-tasks\"], [\"kendoGanttTasksTableBody\", \"\", 1, \"k-table-tbody\", 3, \"rows\", \"activeView\", \"taskContentTemplate\", \"taskTemplate\", \"summaryTaskTemplate\", \"taskClass\", \"isExpanded\", \"selectable\", \"isTaskSelected\", \"renderDependencyDragClues\"], [1, \"k-gantt-dependencies-svg\"], [\"kendoGanttDependency\", \"\", 3, \"dependency\", 4, \"ngFor\", \"ngForOf\"], [1, \"k-table-td\"], [\"kendoGanttDependency\", \"\", 3, \"dependency\"]],\n template: function GanttTimelineComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 6)(1, \"div\", 7)(2, \"div\", 8, 0)(4, \"table\", 9);\n i0.ɵɵelement(5, \"tbody\", 10);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(6, \"div\", 11, 1);\n i0.ɵɵlistener(\"kendoPress\", function GanttTimelineComponent_Template_div_kendoPress_6_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.timelineContainerPress.emit($event));\n })(\"kendoDrag\", function GanttTimelineComponent_Template_div_kendoDrag_6_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.timelineContainerDrag.emit($event));\n })(\"kendoRelease\", function GanttTimelineComponent_Template_div_kendoRelease_6_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.timelineContainerRelease.emit($event));\n });\n i0.ɵɵelementStart(8, \"div\", 12)(9, \"table\", 13)(10, \"tbody\", 14);\n i0.ɵɵtemplate(11, GanttTimelineComponent_tr_11_Template, 2, 3, \"tr\", 15);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(12, \"table\", 16, 2)(14, \"colgroup\");\n i0.ɵɵtemplate(15, GanttTimelineComponent_col_15_Template, 1, 0, \"col\", 17);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(16, \"tbody\", 14)(17, \"tr\", 18);\n i0.ɵɵtemplate(18, GanttTimelineComponent_td_18_Template, 1, 2, \"td\", 19);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(19, \"table\", 20, 3);\n i0.ɵɵelement(21, \"tbody\", 21);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(22, \"svg\", 22);\n i0.ɵɵtemplate(23, GanttTimelineComponent__svg_polyline_23_Template, 1, 1, \"polyline\", 23);\n i0.ɵɵelement(24, \"polyline\", null, 4);\n i0.ɵɵelementEnd();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementContainer(26, null, 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵstyleProp(\"width\", ctx.tableWidth, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"groupSlots\", ctx.groupSlots)(\"slots\", ctx.slots);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"scrollSettings\", ctx.dragScrollSettings)(\"enableDrag\", ctx.draggableEnabled);\n i0.ɵɵadvance(3);\n i0.ɵɵstyleProp(\"width\", ctx.tableWidth, \"px\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.rows);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx.tableWidth, \"px\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx.slots);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx.slots);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"border-collapse\", \"collapse\")(\"width\", ctx.tableWidth, \"px\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"rows\", ctx.rows)(\"activeView\", ctx.activeView)(\"taskContentTemplate\", ctx.taskContentTemplate)(\"taskTemplate\", ctx.taskTemplate)(\"summaryTaskTemplate\", ctx.summaryTaskTemplate)(\"taskClass\", ctx.taskClass)(\"isExpanded\", ctx.isExpanded)(\"selectable\", ctx.selectable)(\"isTaskSelected\", ctx.isTaskSelected)(\"renderDependencyDragClues\", ctx.renderDependencyDragClues);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.dependencies);\n }\n },\n dependencies: [GanttHeaderTableBodyComponent, TimelineScrollableDirective, DraggableDirective, NgFor, GanttTasksTableBodyComponent, GanttDependencyDirective],\n encapsulation: 2\n });\n return GanttTimelineComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The base class for the column components of the Gantt.\n */\nlet GanttColumnBase = /*#__PURE__*/(() => {\n class GanttColumnBase extends ColumnBase {\n /**\n * Toggles the locked (frozen) state of the columns.\n *\n * @default false\n * @hidden\n */\n set locked(value) {\n super.locked = value;\n }\n get locked() {\n return super.locked;\n }\n }\n GanttColumnBase.ɵfac = /* @__PURE__ */(() => {\n let ɵGanttColumnBase_BaseFactory;\n return function GanttColumnBase_Factory(__ngFactoryType__) {\n return (ɵGanttColumnBase_BaseFactory || (ɵGanttColumnBase_BaseFactory = i0.ɵɵgetInheritedFactory(GanttColumnBase)))(__ngFactoryType__ || GanttColumnBase);\n };\n })();\n GanttColumnBase.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttColumnBase,\n selectors: [[\"kendo-gantt-column-base\"]],\n inputs: {\n locked: \"locked\",\n lockable: \"lockable\",\n hidden: \"hidden\",\n media: \"media\",\n style: \"style\",\n headerStyle: \"headerStyle\",\n footerStyle: \"footerStyle\",\n cssClass: [0, \"class\", \"cssClass\"],\n headerClass: \"headerClass\",\n footerClass: \"footerClass\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 0,\n vars: 0,\n template: function GanttColumnBase_Template(rf, ctx) {},\n encapsulation: 2\n });\n return GanttColumnBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column cell template of the Gantt.\n * Helps to customize the content of the cells. To define the cell template, nest an `` tag\n * with the `kendoGanttCellTemplate` directive inside the respective column tag.\n *\n * The template context is set to the current data item and the following additional fields are passed:\n * - `dataItem`—The current data item. Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax—for example, `let-dataItem`.\n * - `columnIndex`—The current column index. Use it as an alias for a template variable by utilizing the `let-columnIndex=\"columnIndex\"` syntax.\n * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` syntax.\n * - `cellContext`—An object used to pass context information to built-in directives.\n * - `hasChildren`—Specifies if the item has children.\n * - `isExpanded`—Specifies if the item is expanded.\n * - `level`—The hierarchy level of the item.\n * - `loading`—Specifies if the item children are currently loading.\n * - `rowIndex`—The current row index. Use it as an alias for a template variable by utilizing the `let-rowIndex=\"rowIndex\"` syntax.\n */\nlet CellTemplateDirective = /*#__PURE__*/(() => {\n class CellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n CellTemplateDirective.ɵfac = function CellTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CellTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n CellTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CellTemplateDirective,\n selectors: [[\"\", \"kendoGanttCellTemplate\", \"\"]],\n standalone: true\n });\n return CellTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the template for the column menu in the Gantt. Provides an option for\n * customizing the content of the column menu for all or for specific columns.\n * To define the content template, nest an `` tag with the\n * `kendoGanttColumnMenuTemplate` directive inside the `` component.\n *\n * The column menu service and the current column are available as context variables:\n * - `service`—Represents the ColumnMenuService.\n * - `column`—Represents the Gantt column.\n */\nlet ColumnMenuTemplateDirective = /*#__PURE__*/(() => {\n class ColumnMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n ColumnMenuTemplateDirective.ɵfac = function ColumnMenuTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n ColumnMenuTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ColumnMenuTemplateDirective,\n selectors: [[\"\", \"kendoGanttColumnMenuTemplate\", \"\"]],\n standalone: true\n });\n return ColumnMenuTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n * Represents the filter-cell template.\n *\n * The template context is set to the filter descriptor and the following additional fields are passed:\n * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` syntax.\n * - `filter`—The filter descriptor.\n * - `cellContext`—An object used to pass context information to built-in directives.\n */\nlet FilterCellTemplateDirective = /*#__PURE__*/(() => {\n class FilterCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n FilterCellTemplateDirective.ɵfac = function FilterCellTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterCellTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n FilterCellTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterCellTemplateDirective,\n selectors: [[\"\", \"kendoGanttFilterCellTemplate\", \"\"]],\n standalone: true\n });\n return FilterCellTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the filter-menu template.\n *\n * The column, current filter and the filter service are available as context variables:\n * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` syntax.\n * - `filter`—The filter descriptor.\n * - `cellContext`—An object used to pass context information to built-in directives.\n */\nlet FilterMenuTemplateDirective = /*#__PURE__*/(() => {\n class FilterMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n FilterMenuTemplateDirective.ɵfac = function FilterMenuTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterMenuTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n FilterMenuTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterMenuTemplateDirective,\n selectors: [[\"\", \"kendoGanttFilterMenuTemplate\", \"\"]],\n standalone: true\n });\n return FilterMenuTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column footer cell template of the Gantt.\n *\n * Helps to customize the table footer cell for the column.\n * To define a footer template, nest an `` tag with the\n * [`kendoGanttFooterTemplate`]({% slug api_gantt_footertemplatedirective %}) directive inside the `` tag.\n *\n * The current column, column index and field are available as context variables:\n * * `column`—Points to the instance of the current [`ColumnComponent`]({% slug api_gantt_ganttcolumncomponent %}).\n * * `columnIndex`—Defines the current column index.\n * * `field`—The name of the column field, if set.\n */\nlet FooterTemplateDirective = /*#__PURE__*/(() => {\n class FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n FooterTemplateDirective.ɵfac = function FooterTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FooterTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n FooterTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FooterTemplateDirective,\n selectors: [[\"\", \"kendoGanttFooterTemplate\", \"\"]],\n standalone: true\n });\n return FooterTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column header cell template of the Gantt.\n * Helps to customize the table header cell for the column.\n * To define a header template, nest an `` tag with the\n * [`kendoGanttHeaderTemplate`]({% slug api_gantt_headertemplatedirective %}) directive inside the `` tag.\n *\n * The current column and column index are available as context variables:\n * * `column`—Points to the instance of the current [`ColumnComponent`]({% slug api_gantt_ganttcolumncomponent %}).\n * * `columnIndex`—Defines the current column index.\n */\nlet HeaderTemplateDirective = /*#__PURE__*/(() => {\n class HeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n HeaderTemplateDirective.ɵfac = function HeaderTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HeaderTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n HeaderTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: HeaderTemplateDirective,\n selectors: [[\"\", \"kendoGanttHeaderTemplate\", \"\"]],\n standalone: true\n });\n return HeaderTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column edit-cell template of the Gantt.\n * Helps to customize the content of the edited cells. To define the cell template, nest an ``\n * tag with the `kendoGanttEditTemplate` directive inside a `` tag.\n *\n * The template context contains the following fields:\n * - `column`—The current column instance.\n * - `dataItem`—The current data item.\n * - `cellContext`—An object used to pass context information to built-in directives.\n * - `formGroup`—The current [`FormGroup`](link:site.data.urls.angular['formgroupapi']).\n * If you use the Gantt inside [Template-Driven Forms](link:site.data.urls.angular['forms']), it will be `undefined`.\n * - `isNew`—The state of the current item.\n * - `rowIndex`—The current row index. If inside a new item row, `rowIndex` is `-1`.\n */\nlet EditTemplateDirective = /*#__PURE__*/(() => {\n class EditTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n EditTemplateDirective.ɵfac = function EditTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EditTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n EditTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: EditTemplateDirective,\n selectors: [[\"\", \"kendoGanttEditTemplate\", \"\"]],\n standalone: true\n });\n return EditTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GanttColumnComponent = /*#__PURE__*/(() => {\n class GanttColumnComponent extends ColumnComponent {\n constructor(options, parent) {\n super(parent);\n this.options = options;\n this.headerTemplates = new QueryList();\n this.columnMenuTemplates = new QueryList();\n /**\n * Defines the filter type that is displayed inside the filter row. The default value is `text`.\n */\n this.filter = 'text';\n /**\n * Defines if a filter UI will be displayed for this column. The default value is `true`.\n */\n this.filterable = true;\n /**\n * @hidden\n *\n * Defines the editor type.\n * Used when the column enters the edit mode. The default value is `text`.\n */\n this.editor = 'text';\n /**\n * @hidden\n *\n * Defines whether the column is editable. The default value is `true`.\n */\n this.editable = true;\n }\n /**\n * Toggles the locked (frozen) state of the columns.\n * @hidden\n * @default false\n */\n set locked(value) {\n super.locked = value;\n }\n get locked() {\n return super.locked;\n }\n ngOnChanges() {\n this.options.notifyColumnChanges();\n }\n }\n GanttColumnComponent.ɵfac = function GanttColumnComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttColumnComponent)(i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(GanttColumnBase, 13));\n };\n GanttColumnComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttColumnComponent,\n selectors: [[\"kendo-gantt-column\"]],\n contentQueries: function GanttColumnComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, FilterCellTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, FilterMenuTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, ColumnMenuTemplateDirective, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterCellTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterMenuTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplates = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnMenuTemplates = _t);\n }\n },\n inputs: {\n format: \"format\",\n filter: \"filter\",\n filterable: \"filterable\",\n editor: \"editor\",\n editable: \"editable\",\n locked: \"locked\",\n lockable: \"lockable\",\n hidden: \"hidden\",\n media: \"media\",\n style: \"style\",\n headerStyle: \"headerStyle\",\n footerStyle: \"footerStyle\",\n cssClass: [0, \"class\", \"cssClass\"],\n headerClass: \"headerClass\",\n footerClass: \"footerClass\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: GanttColumnBase,\n useExisting: forwardRef(() => GanttColumnComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function GanttColumnComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return GanttColumnComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GanttColumnGroupComponent = /*#__PURE__*/(() => {\n class GanttColumnGroupComponent extends ColumnGroupComponent {\n constructor(options, parent) {\n super(parent);\n this.options = options;\n /**\n * @hidden\n */\n this.children = new QueryList();\n /**\n * Allows the column headers to be clicked and the `sortChange` event emitted.\n * You have to handle the `sortChange` event yourself and sort the data.\n */\n this.sortable = true;\n if (parent && parent.isSpanColumn) {\n throw new Error('ColumnGroupComponent cannot be nested inside SpanColumnComponent');\n }\n }\n /**\n * Toggles the locked (frozen) state of the columns.\n *\n * @default false\n * @hidden\n */\n set locked(value) {\n super.locked = value;\n }\n get locked() {\n return super.locked;\n }\n ngOnChanges() {\n this.options.notifyColumnChanges();\n }\n }\n GanttColumnGroupComponent.ɵfac = function GanttColumnGroupComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttColumnGroupComponent)(i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(GanttColumnBase, 13));\n };\n GanttColumnGroupComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttColumnGroupComponent,\n selectors: [[\"kendo-gantt-column-group\"]],\n contentQueries: function GanttColumnGroupComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, GanttColumnBase, 4);\n i0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.children = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplates = _t);\n }\n },\n inputs: {\n locked: \"locked\",\n lockable: \"lockable\",\n hidden: \"hidden\",\n sortable: \"sortable\",\n media: \"media\",\n style: \"style\",\n headerStyle: \"headerStyle\",\n footerStyle: \"footerStyle\",\n cssClass: [0, \"class\", \"cssClass\"],\n headerClass: \"headerClass\",\n footerClass: \"footerClass\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: GanttColumnBase,\n useExisting: forwardRef(() => GanttColumnGroupComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function GanttColumnGroupComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return GanttColumnGroupComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GanttSpanColumnComponent = /*#__PURE__*/(() => {\n class GanttSpanColumnComponent extends SpanColumnComponent {\n constructor(options, parent) {\n super(parent);\n this.options = options;\n /**\n * @hidden\n */\n this.childColumns = new QueryList();\n this.template = new QueryList();\n this.editTemplate = new QueryList();\n }\n /**\n * Toggles the locked (frozen) state of the columns. Locked columns are visible\n * at all times during the horizontal scrolling of the Gantt.\n *\n * For the option to work properly, make sure that:\n * - Scrolling is enabled.\n * - The `height` option of the Gantt is set.\n * - The widths of all Gantt columns are explicitly set in pixels. In this way,\n * the Gantt adjusts the layout of the locked and unlocked columns.\n *\n * @default false\n * @hidden\n */\n set locked(value) {\n super.locked = value;\n }\n get locked() {\n return super.locked;\n }\n /**\n * @hidden\n *\n * Defines whether the edit template of the column will be rendered. The default value is `false`.\n *\n * > To enable the editing functionality for a spanned column, set an edit template for it.\n */\n set editable(value) {\n super.editable = value;\n }\n get editable() {\n return super.editable;\n }\n ngOnChanges() {\n this.options.notifyColumnChanges();\n }\n }\n GanttSpanColumnComponent.ɵfac = function GanttSpanColumnComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttSpanColumnComponent)(i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(GanttColumnBase, 13));\n };\n GanttSpanColumnComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttSpanColumnComponent,\n selectors: [[\"kendo-gantt-span-column\"]],\n contentQueries: function GanttSpanColumnComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, GanttColumnComponent, 4);\n i0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.childColumns = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editTemplate = _t);\n }\n },\n inputs: {\n locked: \"locked\",\n lockable: \"lockable\",\n editable: \"editable\",\n hidden: \"hidden\",\n media: \"media\",\n style: \"style\",\n headerStyle: \"headerStyle\",\n footerStyle: \"footerStyle\",\n cssClass: [0, \"class\", \"cssClass\"],\n headerClass: \"headerClass\",\n footerClass: \"footerClass\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: GanttColumnBase,\n useExisting: forwardRef(() => GanttSpanColumnComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function GanttSpanColumnComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return GanttSpanColumnComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst hasChildren = () => false;\n/**\n * @hidden\n */\nconst fetchChildren = () => of([]);\n/**\n * @hidden\n */\nconst rowClassCallback = () => null;\n/**\n * @hidden\n */\nconst taskClassCallback = () => null;\n/**\n * @hidden\n */\nconst isSelected = () => false;\n\n/**\n * Called every time a user leaves an edited cell.\n */\nclass CellCloseEvent extends PreventableEvent {\n constructor(options) {\n super();\n Object.assign(this, options);\n }\n}\n\n/**\n * @hidden\n *\n * Needed to keep the Gantt's LocalizationService reference and be able to use it component's inside the TabStrip\n */\nlet GanttLocalizationService = /*#__PURE__*/(() => {\n class GanttLocalizationService {\n constructor(localizationService) {\n this.localizationService = localizationService;\n }\n get(token) {\n return this.localizationService.get(token);\n }\n }\n GanttLocalizationService.ɵfac = function GanttLocalizationService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttLocalizationService)(i0.ɵɵinject(i1$1.LocalizationService));\n };\n GanttLocalizationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GanttLocalizationService,\n factory: GanttLocalizationService.ɵfac\n });\n return GanttLocalizationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst DEFAULT_TREELIST_PANE_SETTINGS = Object.freeze({\n collapsible: true,\n collapsed: false\n});\n/**\n * @hidden\n */\nconst DEFAULT_TIMELINE_PANE_SETTINGS = Object.freeze({\n collapsible: true,\n collapsed: false,\n size: '50%',\n resizable: true\n});\n\n/**\n * Represents a template that defines the whole content of the task component.\n * To define the template, nest an `` tag\n * with the `kendoGanttTaskTemplate` directive inside the `` tag.\n *\n * The template context is set to the current data item. The following additional field is passed:\n * - `elementWidth`—The current task wrapper element's calculated width in pixels based on its start and end date.\n * Use it as an alias for a template variable by utilizing the `let-elementWidth=\"elementWidth\"` syntax.\n * Useful for calculations related to rendering custom elements representing the task progress.\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{ dataItem.title }} - {{ dataItem.completionRatio * 100 }}% complete\n * \n * \n * `\n * })\n * class AppComponent {\n * public data: any[] = sampleTasks;\n * }\n * ```\n */\nlet GanttTaskTemplateDirective = /*#__PURE__*/(() => {\n class GanttTaskTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n GanttTaskTemplateDirective.ɵfac = function GanttTaskTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttTaskTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n GanttTaskTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GanttTaskTemplateDirective,\n selectors: [[\"\", \"kendoGanttTaskTemplate\", \"\"]],\n standalone: true\n });\n return GanttTaskTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a template that defines the whole content of the summary task component.\n * To define the template, nest an `` tag\n * with the `kendoGanttSummaryTaskTemplate` directive inside the `` tag.\n *\n * The template context is set to the current data item. The following additional field is passed:\n * - `elementWidth`—The current summary task wrapper element's calculated width in pixels based on its start and end date.\n * Use it as an alias for a template variable by utilizing the `let-elementWidth=\"elementWidth\"` syntax.\n * Useful for calculations related to rendering custom elements representing the task progress.\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n *
\n * {{ dataItem.title }} - {{ dataItem.completionRatio * 100 }}% complete; width: {{ elementWidth }}\n *
\n *
\n *
\n * `\n * })\n * class AppComponent {\n * public data: any[] = sampleTasks;\n * }\n * ```\n */\nlet GanttSummaryTaskTemplateDirective = /*#__PURE__*/(() => {\n class GanttSummaryTaskTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n GanttSummaryTaskTemplateDirective.ɵfac = function GanttSummaryTaskTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttSummaryTaskTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n GanttSummaryTaskTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GanttSummaryTaskTemplateDirective,\n selectors: [[\"\", \"kendoGanttSummaryTaskTemplate\", \"\"]],\n standalone: true\n });\n return GanttSummaryTaskTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a template that defines the text content section of the task component.\n * To define the template, nest an `` tag\n * with the `kendoGanttTaskContentTemplate` directive inside the `` tag.\n *\n * The template context is set to the current data item.\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * {{ dataItem.title }} - {{ dataItem.completionRatio * 100 }}% complete\n * \n * \n * `\n * })\n * class AppComponent {\n * public data: any[] = sampleTasks;\n * }\n * ```\n */\nlet GanttTaskContentTemplateDirective = /*#__PURE__*/(() => {\n class GanttTaskContentTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n GanttTaskContentTemplateDirective.ɵfac = function GanttTaskContentTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttTaskContentTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n GanttTaskContentTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GanttTaskContentTemplateDirective,\n selectors: [[\"\", \"kendoGanttTaskContentTemplate\", \"\"]],\n standalone: true\n });\n return GanttTaskContentTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the toolbar template of the Gantt.\n *\n * The template context has the following field:\n * - `position`—The position at which the toolbar template is rendered. The possible values are `'top'` and `'bottom'`.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
\n * \n * Top
\n * \n * Bottom
\n * \n * Both
\n *
\n * \n * \n * \n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public position: 'top' | 'bottom' | 'both' = 'top';\n *\n * public data = [{\n * id: 7,\n * title: \"Software validation, research and implementation\",\n * orderId: 0,\n * start: new Date(\"2014-06-02T00:00:00.000Z\"),\n * end: new Date(\"2014-07-12T00:00:00.000Z\"),\n * completionRatio: 0.45708333333333334,\n * isExpanded: true,\n * children: [{\n * id: 11,\n * title: \"Research\",\n * orderId: 1,\n * start: new Date(\"2014-06-02T00:00:00.000Z\"),\n * end: new Date(\"2014-06-07T00:00:00.000Z\"),\n * completionRatio: 0.5766666666666667,\n * isExpanded: true,\n * children: [{\n * id: 19,\n * title: \"Validation with Customers\",\n * orderId: 0,\n * start: new Date(\"2014-06-02T00:00:00.000Z\"),\n * end: new Date(\"2014-06-04T00:00:00.000Z\"),\n * completionRatio: 0.25,\n * isExpanded: true\n * },\n * {\n * id: 20,\n * title: \"Market Research\",\n * orderId: 1,\n * start: new Date(\"2014-06-02T00:00:00.000Z\"),\n * end: new Date(\"2014-06-03T02:00:00.000Z\"),\n * completionRatio: 0.82,\n * isExpanded: true\n * },\n * {\n * id: 39,\n * title: \"Functional and Technical Specification\",\n * orderId: 2,\n * start: new Date(\"2014-06-04T00:00:00.000Z\"),\n * end: new Date(\"2014-06-07T00:00:00.000Z\"),\n * completionRatio: 0.66,\n * isExpanded: true\n * }]\n * }]\n * };\n *\n * public positionChange(event: MouseEvent): void {\n * this.position = event.target['defaultValue'];\n * }\n *\n * public onClick(): void {\n * console.log(\"button was clicked\");\n * }\n * }\n *\n * ```\n */\nlet ToolbarTemplateDirective = /*#__PURE__*/(() => {\n class ToolbarTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._position = \"top\";\n }\n /**\n * Defines the Gantt Toolbar that will use this template.\n *\n * The possible values are:\n * - `top`—The template will be rendered in the top toolbar (if present) only.\n * - `bottom`—The template will be rendered in the bottom toolbar (if present) only.\n * - `both`—The template will be rendered in both toolbars (if present).\n */\n set position(position) {\n this._position = position;\n }\n get position() {\n return this._position;\n }\n }\n ToolbarTemplateDirective.ɵfac = function ToolbarTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToolbarTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n ToolbarTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ToolbarTemplateDirective,\n selectors: [[\"\", \"kendoGanttToolbarTemplate\", \"\"]],\n inputs: {\n position: \"position\"\n },\n standalone: true\n });\n return ToolbarTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The base class for the timeline view components of the Gantt.\n */\nlet ViewBase = /*#__PURE__*/(() => {\n class ViewBase {\n /**\n *\n * @hidden\n */\n constructor(optionChangesService, dependencyDomService) {\n this.optionChangesService = optionChangesService;\n this.dependencyDomService = dependencyDomService;\n /**\n * The width of the time slot headers. Values are treated as pixels.\n *\n * @default 100\n */\n this.slotWidth = 100;\n }\n ngOnChanges(changes) {\n if (anyChanged(['slotWidth'], changes)) {\n this.optionChangesService.notifyColumnChanges();\n this.dependencyDomService.notifyChanges();\n }\n if (anyChanged(['timelineHeadersDateFormat'], changes)) {\n this.optionChangesService.notifyDateFormatChanges();\n }\n }\n }\n ViewBase.ɵfac = function ViewBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ViewBase)(i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(DependencyDomService));\n };\n ViewBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ViewBase,\n selectors: [[\"kendo-gantt-view-base\"]],\n inputs: {\n slotWidth: \"slotWidth\",\n timelineHeadersDateFormat: \"timelineHeadersDateFormat\",\n currentTimeMarker: \"currentTimeMarker\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return ViewBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst getEditItem = (dataItem, data, mapper) => {\n const treeListDataItem = data.find(item => mapper.extractFromTask(item.data, 'id') === mapper.extractFromTask(dataItem, 'id'));\n return mapPath(treeListDataItem);\n};\nconst mapPath = item => ({\n dataItem: item.data,\n parent: item.parent.data ? mapPath(item.parent) : null\n});\n\n/**\n * @hidden\n */\nlet DependenciesTableComponent = /*#__PURE__*/(() => {\n class DependenciesTableComponent {\n constructor(mapper, editService, localizationService) {\n this.mapper = mapper;\n this.editService = editService;\n this.localizationService = localizationService;\n this.dependenciesChange = new EventEmitter();\n this.selectedKeys = [];\n this.formGroups = new FormArray([]);\n this.dependencyTypes = this.getDependencyTypes();\n this.plusIcon = plusIcon;\n this.minusIcon = minusIcon;\n }\n get taskId() {\n return this.editService.dataItem.id;\n }\n // The target dependency id field\n // e.g. if Predecessors, we have the `fromId` which is the currently edited task,\n // while the `toId` is missing (needs to be selected by the user)\n get dependencyIdField() {\n return this.dependencyType === 'predecessor' ? 'fromId' : 'toId';\n }\n ngOnInit() {\n // generate the FormGroups per each Grid row\n if (this.formGroups.controls.length === 0) {\n const fields = this.mapper.dependencyFields;\n this.dependencies.forEach(item => {\n const formGroup = new FormGroup({\n [fields.id]: new FormControl(this.mapper.extractFromDependency(item, 'id')),\n [fields.fromId]: new FormControl(this.mapper.extractFromDependency(item, 'fromId'), Validators.required),\n [fields.toId]: new FormControl(this.mapper.extractFromDependency(item, 'toId'), Validators.required),\n [fields.type]: new FormControl(this.mapper.extractFromDependency(item, 'type'), Validators.required)\n });\n this.formGroups.push(formGroup);\n });\n }\n this.formGroups.valueChanges.subscribe(val => {\n this.formGroups.controls.forEach(control => {\n if (control.dirty) {\n this.editService.updateDependencies(control.value);\n }\n });\n this.dependenciesChange.emit(val);\n });\n }\n getFormControl(dataItemIndex, field) {\n // return the FormControl for the respective column editor\n return this.formGroups.controls.find((_control, index) => index === dataItemIndex).get(this.mapper.dependencyFields[field]);\n }\n getText(token) {\n return this.localizationService.get(token);\n }\n getDependencyTypes() {\n const types = Object.keys(DependencyType).filter(value => typeof DependencyType[value] === 'number').map(type => {\n return {\n type,\n id: DependencyType[type]\n };\n });\n return types;\n }\n addHandler() {\n const fields = this.mapper.dependencyFields;\n const formGroup = new FormGroup({\n [fields.id]: new FormControl(),\n [fields.fromId]: new FormControl(this.dependencyIdField === 'toId' ? this.taskId : null, Validators.required),\n [fields.toId]: new FormControl(this.dependencyIdField === 'fromId' ? this.taskId : null, Validators.required),\n [fields.type]: new FormControl(null, Validators.required)\n });\n this.formGroups.push(formGroup);\n }\n removeHandler() {\n const [selectedIndex] = this.selectedKeys;\n const item = this.formGroups.at(selectedIndex).value;\n this.editService.deleteDependency(item);\n this.formGroups.removeAt(selectedIndex);\n }\n }\n DependenciesTableComponent.ɵfac = function DependenciesTableComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DependenciesTableComponent)(i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(GanttLocalizationService));\n };\n DependenciesTableComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DependenciesTableComponent,\n selectors: [[\"kendo-gantt-dependencies-table\"]],\n inputs: {\n tasks: \"tasks\",\n dependencies: \"dependencies\",\n dependencyType: \"dependencyType\"\n },\n outputs: {\n dependenciesChange: \"dependenciesChange\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 8,\n consts: [[\"kendoGridSelectBy\", \"\", 3, \"selectedKeysChange\", \"data\", \"selectable\", \"selectedKeys\", \"height\"], [\"kendoGridToolbarTemplate\", \"\"], [3, \"title\", \"field\"], [\"kendoGridCellTemplate\", \"\"], [\"field\", \"type\", 3, \"title\"], [\"kendoButton\", \"\", \"icon\", \"plus\", 3, \"click\", \"svgIcon\"], [\"kendoButton\", \"\", \"icon\", \"minus\", 3, \"click\", \"svgIcon\", \"disabled\"], [\"textField\", \"title\", \"valueField\", \"id\", 3, \"data\", \"valuePrimitive\", \"formControl\"], [\"textField\", \"type\", \"valueField\", \"id\", 3, \"data\", \"valuePrimitive\", \"formControl\"]],\n template: function DependenciesTableComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-grid\", 0);\n i0.ɵɵtwoWayListener(\"selectedKeysChange\", function DependenciesTableComponent_Template_kendo_grid_selectedKeysChange_0_listener($event) {\n i0.ɵɵtwoWayBindingSet(ctx.selectedKeys, $event) || (ctx.selectedKeys = $event);\n return $event;\n });\n i0.ɵɵtemplate(1, DependenciesTableComponent_ng_template_1_Template, 4, 5, \"ng-template\", 1);\n i0.ɵɵelementStart(2, \"kendo-grid-column\", 2);\n i0.ɵɵtemplate(3, DependenciesTableComponent_ng_template_3_Template, 1, 3, \"ng-template\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"kendo-grid-column\", 4);\n i0.ɵɵtemplate(5, DependenciesTableComponent_ng_template_5_Template, 1, 3, \"ng-template\", 3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"data\", ctx.dependencies)(\"selectable\", i0.ɵɵpureFunction0(7, _c13));\n i0.ɵɵtwoWayProperty(\"selectedKeys\", ctx.selectedKeys);\n i0.ɵɵproperty(\"height\", 275);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"title\", ctx.getText(\"taskEditingDependenciesGridNameColumnTitle\"))(\"field\", ctx.dependencyIdField);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"title\", ctx.getText(\"taskEditingDependenciesGridTypeColumnTitle\"));\n }\n },\n dependencies: [GridComponent, SelectionDirective, ToolbarTemplateDirective$1, ButtonComponent, ColumnComponent$1, CellTemplateDirective$1, DropDownListComponent, ReactiveFormsModule, i4.NgControlStatus, i4.FormControlDirective],\n encapsulation: 2\n });\n return DependenciesTableComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet TaskFieldsComponent = /*#__PURE__*/(() => {\n class TaskFieldsComponent {\n constructor(mapper, editService, localizationService) {\n this.mapper = mapper;\n this.editService = editService;\n this.localizationService = localizationService;\n }\n /**\n * @hidden\n */\n get formGroup() {\n return this.editService.taskFormGroup;\n }\n getText(token) {\n return this.localizationService.get(token);\n }\n }\n TaskFieldsComponent.ɵfac = function TaskFieldsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TaskFieldsComponent)(i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(GanttLocalizationService));\n };\n TaskFieldsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TaskFieldsComponent,\n selectors: [[\"kendo-gantt-task-fields\"]],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 7,\n vars: 5,\n consts: [[\"title\", \"\"], [\"start\", \"\"], [\"end\", \"\"], [\"completionRatio\", \"\"], [1, \"k-form\", \"k-form-md\", 3, \"formGroup\"], [4, \"ngIf\"], [1, \"k-hstack\"], [3, \"width\", 4, \"ngIf\"], [3, \"for\", \"text\"], [\"kendoTextBox\", \"\", 3, \"formControlName\"], [3, \"formControlName\"], [\"format\", \"p2\", 3, \"formControlName\", \"min\", \"max\", \"decimals\", \"step\"]],\n template: function TaskFieldsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"form\", 4);\n i0.ɵɵtemplate(1, TaskFieldsComponent_kendo_formfield_1_Template, 4, 3, \"kendo-formfield\", 5);\n i0.ɵɵelementStart(2, \"div\", 6);\n i0.ɵɵtemplate(3, TaskFieldsComponent_kendo_formfield_3_Template, 4, 5, \"kendo-formfield\", 7);\n i0.ɵɵelement(4, \"kendo-treelist-spacer\");\n i0.ɵɵtemplate(5, TaskFieldsComponent_kendo_formfield_5_Template, 4, 5, \"kendo-formfield\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, TaskFieldsComponent_kendo_formfield_6_Template, 4, 9, \"kendo-formfield\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"formGroup\", ctx.formGroup);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.formGroup.get(ctx.mapper.taskFields.title));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.formGroup.get(ctx.mapper.taskFields.start));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.formGroup.get(ctx.mapper.taskFields.end));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.formGroup.get(ctx.mapper.taskFields.completionRatio));\n }\n },\n dependencies: [ReactiveFormsModule, i4.ɵNgNoValidate, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, NgIf, FormFieldComponent, LabelComponent, TextBoxDirective, DateTimePickerComponent, TreeListSpacerComponent, NumericTextBoxComponent],\n encapsulation: 2\n });\n return TaskFieldsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet EditDialogComponent = /*#__PURE__*/(() => {\n class EditDialogComponent {\n constructor(mapper, editService, cdr, localizationService) {\n this.mapper = mapper;\n this.editService = editService;\n this.cdr = cdr;\n this.localizationService = localizationService;\n this.saveIcon = saveIcon;\n this.cancelIcon = cancelOutlineIcon;\n this.deleteIcon = trashIcon;\n }\n ngOnInit() {\n this.editService.loadTasks(this.data).subscribe(value => {\n this.loadedTasks = value;\n });\n }\n get predecessors() {\n return this.editService.predecessors;\n }\n set predecessors(items) {\n this.editService.predecessors = items;\n }\n get successors() {\n return this.editService.successors;\n }\n set successors(items) {\n this.editService.successors = items;\n }\n getText(token) {\n return this.localizationService.get(token);\n }\n getDependencyType(typeId) {\n return DependencyType[typeId];\n }\n handleEditingResult(editResultType) {\n this.editService.triggerEditEvent(editResultType);\n }\n handleTaskDelete() {\n this.editService.taskDelete.next(this.editService.dataItem);\n }\n }\n EditDialogComponent.ɵfac = function EditDialogComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EditDialogComponent)(i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n EditDialogComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: EditDialogComponent,\n selectors: [[\"kendo-gantt-edit-dialog\"]],\n inputs: {\n data: \"data\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 17,\n vars: 22,\n consts: [[3, \"close\", \"title\", \"width\", \"height\", \"autoFocusedElement\"], [3, \"closeTitle\"], [3, \"keepTabContent\"], [3, \"title\", \"selected\"], [\"kendoTabContent\", \"\"], [3, \"title\"], [\"layout\", \"start\"], [\"kendoButton\", \"\", \"themeColor\", \"primary\", \"icon\", \"save\", 3, \"click\", \"svgIcon\"], [\"kendoButton\", \"\", \"icon\", \"cancel-outline\", 3, \"click\", \"svgIcon\"], [\"kendoButton\", \"\", \"themeColor\", \"primary\", \"fillMode\", \"flat\", \"icon\", \"delete\", 3, \"svgIcon\", \"kendoEventsOutsideAngular\", \"scope\"], [\"dependencyType\", \"predecessor\", 3, \"dependenciesChange\", \"tasks\", \"dependencies\"], [\"dependencyType\", \"successor\", 3, \"dependenciesChange\", \"tasks\", \"dependencies\"]],\n template: function EditDialogComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-dialog\", 0);\n i0.ɵɵlistener(\"close\", function EditDialogComponent_Template_kendo_dialog_close_0_listener() {\n return ctx.handleEditingResult(\"cancel\");\n });\n i0.ɵɵelement(1, \"kendo-dialog-messages\", 1);\n i0.ɵɵelementStart(2, \"kendo-tabstrip\", 2)(3, \"kendo-tabstrip-tab\", 3);\n i0.ɵɵtemplate(4, EditDialogComponent_ng_template_4_Template, 1, 0, \"ng-template\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"kendo-tabstrip-tab\", 5);\n i0.ɵɵtemplate(6, EditDialogComponent_ng_template_6_Template, 1, 2, \"ng-template\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"kendo-tabstrip-tab\", 5);\n i0.ɵɵtemplate(8, EditDialogComponent_ng_template_8_Template, 1, 2, \"ng-template\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(9, \"kendo-dialog-actions\", 6)(10, \"button\", 7);\n i0.ɵɵlistener(\"click\", function EditDialogComponent_Template_button_click_10_listener() {\n return ctx.handleEditingResult(\"save\");\n });\n i0.ɵɵtext(11);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"button\", 8);\n i0.ɵɵlistener(\"click\", function EditDialogComponent_Template_button_click_12_listener() {\n return ctx.handleEditingResult(\"cancel\");\n });\n i0.ɵɵtext(13);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(14, \"kendo-treelist-spacer\");\n i0.ɵɵelementStart(15, \"button\", 9);\n i0.ɵɵtext(16);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"title\", ctx.getText(\"taskEditingDialogTitle\"))(\"width\", 575)(\"height\", 470)(\"autoFocusedElement\", \".k-actions .k-button-solid-primary\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"closeTitle\", ctx.getText(\"taskEditingDialogCloseTitle\"));\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"height\", 345, \"px\");\n i0.ɵɵproperty(\"keepTabContent\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"title\", ctx.getText(\"taskEditingGeneralTabTitle\"))(\"selected\", true);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"title\", ctx.getText(\"taskEditingPredecessorsTabTitle\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"title\", ctx.getText(\"taskEditingSuccessorsTabTitle\"));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"svgIcon\", ctx.saveIcon);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.getText(\"saveButtonText\"), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"svgIcon\", ctx.cancelIcon);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.getText(\"cancelButtonText\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"svgIcon\", ctx.deleteIcon)(\"kendoEventsOutsideAngular\", i0.ɵɵpureFunction1(20, _c2, ctx.handleTaskDelete))(\"scope\", ctx);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.getText(\"deleteButtonText\"), \" \");\n }\n },\n dependencies: [DialogComponent, CustomMessagesComponent$1, TabStripComponent, TabStripTabComponent, TabContentDirective, TaskFieldsComponent, DependenciesTableComponent, DialogActionsComponent, ButtonComponent, TreeListSpacerComponent, EventsOutsideAngularDirective],\n encapsulation: 2\n });\n return EditDialogComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ToolbarNavigationService = /*#__PURE__*/(() => {\n class ToolbarNavigationService {\n constructor(renderer) {\n this.renderer = renderer;\n this.focusIndex = 0;\n }\n updateFocus() {\n this.focusableContent.forEach(el => {\n this.renderer.setAttribute(el, 'tabindex', '-1');\n });\n this.renderer.setAttribute(this.focusableContent[this.focusIndex], 'tabindex', '0');\n this.focusableContent[this.focusIndex].focus();\n }\n }\n ToolbarNavigationService.ɵfac = function ToolbarNavigationService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToolbarNavigationService)(i0.ɵɵinject(i0.Renderer2));\n };\n ToolbarNavigationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ToolbarNavigationService,\n factory: ToolbarNavigationService.ɵfac\n });\n return ToolbarNavigationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The Gantt ViewSelector component. Shows the currently active view type, and allows switching to another view type.\n */\nlet ViewSelectorComponent = /*#__PURE__*/(() => {\n class ViewSelectorComponent {\n constructor(localizationService) {\n this.localizationService = localizationService;\n this.hostClass = true;\n /**\n * The currently active view type.\n * @default 'week'\n */\n this.activeView = 'week';\n /**\n * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.\n */\n this.activeViewChange = new EventEmitter();\n }\n /**\n * @hidden\n */\n onClick(viewType) {\n if (viewType !== this.activeView) {\n this.activeViewChange.emit(viewType);\n }\n }\n /**\n * @hidden\n */\n getViewTypeText(viewType) {\n return this.localizationService.get(`${viewType}ViewText`);\n }\n /**\n * @hidden\n */\n onActiveViewChange(event) {\n this.activeViewChange.emit(event.target.value);\n }\n }\n ViewSelectorComponent.ɵfac = function ViewSelectorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ViewSelectorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n ViewSelectorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ViewSelectorComponent,\n selectors: [[\"kendo-gantt-view-selector\"]],\n hostVars: 2,\n hostBindings: function ViewSelectorComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-gantt-views-wrapper\", ctx.hostClass);\n }\n },\n inputs: {\n views: \"views\",\n activeView: \"activeView\"\n },\n outputs: {\n activeViewChange: \"activeViewChange\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 4,\n consts: [[\"aria-label\", \"View Selector\", 1, \"k-dropdownlist\", \"k-picker\", \"k-rounded-md\", \"k-views-dropdown\", 3, \"change\", \"value\"], [3, \"value\", 4, \"ngFor\", \"ngForOf\"], [\"selection\", \"single\", 1, \"k-gantt-views\", 3, \"navigable\"], [\"kendoButton\", \"\", \"type\", \"button\", 3, \"selected\", \"click\", 4, \"ngFor\", \"ngForOf\"], [3, \"value\"], [\"kendoButton\", \"\", \"type\", \"button\", 3, \"click\", \"selected\"]],\n template: function ViewSelectorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"select\", 0);\n i0.ɵɵlistener(\"change\", function ViewSelectorComponent_Template_select_change_0_listener($event) {\n return ctx.onActiveViewChange($event);\n });\n i0.ɵɵtemplate(1, ViewSelectorComponent_option_1_Template, 2, 2, \"option\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"kendo-buttongroup\", 2);\n i0.ɵɵtemplate(3, ViewSelectorComponent_button_3_Template, 2, 2, \"button\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"value\", ctx.activeView);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.views);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"navigable\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.views);\n }\n },\n dependencies: [NgFor, ReactiveFormsModule, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, ButtonGroupComponent, ButtonComponent],\n encapsulation: 2\n });\n return ViewSelectorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The UI for adding new items to the Gantt.\n * Use it within a toolbar template to provide a custom icon or list of options.\n */\nlet GanttAddTaskComponent = /*#__PURE__*/(() => {\n class GanttAddTaskComponent {\n constructor(localizationService, editService, ngZone) {\n this.localizationService = localizationService;\n this.editService = editService;\n this.ngZone = ngZone;\n /**\n * Sets the data of the DropDownButton.\n * > The data has to be provided in an array-like list.\n */\n this.data = [{\n text: this.getText('addChildText'),\n type: 'addChild'\n }, {\n text: this.getText('addAboveText'),\n type: 'addAbove'\n }, {\n text: this.getText('addBelowText'),\n type: 'addBelow'\n }];\n /**\n * Defines the name of an existing icon in a Kendo UI theme.\n * @default 'plus'\n */\n this.icon = 'plus';\n /**\n * Defines an [`SVGIcon`](slug:api_icons_svgicon) icon to be rendered inside the `GanttAddTaskComponent` using\n * a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component.\n */\n this.svgIcon = plusIcon;\n }\n /**\n * @hidden\n */\n getText(message) {\n return this.localizationService.get(message);\n }\n /**\n * @hidden\n */\n handleOpen(e) {\n if (!this.editService.getSelectedItem()) {\n e.preventDefault();\n }\n }\n /**\n * @hidden\n */\n handleMouseClick() {\n if (!this.editService.getSelectedItem()) {\n this.ngZone.run(() => {\n this.editService.addEvent.next({\n selectedItem: null,\n actionType: 'addTask'\n });\n });\n }\n }\n /**\n * @hidden\n */\n handleItemClick(e) {\n this.editService.addEvent.next({\n actionType: e.type,\n selectedItem: null\n });\n }\n }\n GanttAddTaskComponent.ɵfac = function GanttAddTaskComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttAddTaskComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n GanttAddTaskComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttAddTaskComponent,\n selectors: [[\"kendo-gantt-add-task\"]],\n inputs: {\n data: \"data\",\n icon: \"icon\",\n svgIcon: \"svgIcon\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 8,\n consts: [[3, \"itemClick\", \"open\", \"data\", \"icon\", \"svgIcon\", \"kendoEventsOutsideAngular\", \"scope\"]],\n template: function GanttAddTaskComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-dropdownbutton\", 0);\n i0.ɵɵlistener(\"itemClick\", function GanttAddTaskComponent_Template_kendo_dropdownbutton_itemClick_0_listener($event) {\n return ctx.handleItemClick($event);\n })(\"open\", function GanttAddTaskComponent_Template_kendo_dropdownbutton_open_0_listener($event) {\n return ctx.handleOpen($event);\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"data\", ctx.data)(\"icon\", ctx.icon)(\"svgIcon\", ctx.svgIcon)(\"kendoEventsOutsideAngular\", i0.ɵɵpureFunction1(6, _c2, ctx.handleMouseClick))(\"scope\", ctx);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.getText(\"addTaskText\"), \" \");\n }\n },\n dependencies: [DropDownButtonComponent, EventsOutsideAngularDirective],\n encapsulation: 2\n });\n return GanttAddTaskComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ToolbarComponent = /*#__PURE__*/(() => {\n class ToolbarComponent {\n constructor(hostEl, navigationService) {\n this.hostEl = hostEl;\n this.navigationService = navigationService;\n this.context = {};\n this.role = 'toolbar';\n this.toolbarSizingClass = true;\n this.activeViewChange = new EventEmitter();\n }\n clickHandler(ev) {\n if (this.navigable) {\n const closestFocusable = closest(ev.target, isFocusable);\n const targetIndex = this.navigationService.focusableContent.indexOf(closestFocusable);\n if (targetIndex > -1) {\n this.navigationService.focusIndex = targetIndex;\n }\n this.navigationService.updateFocus();\n }\n }\n arrowLeftListener() {\n if (this.navigable && isDocumentAvailable()) {\n this.navigationService.focusIndex--;\n if (this.navigationService.focusIndex < 0) {\n this.navigationService.focusIndex = this.navigationService.focusableContent.length - 1;\n }\n this.navigationService.updateFocus();\n }\n }\n arrowRightListener() {\n if (this.navigable && isDocumentAvailable()) {\n this.navigationService.focusIndex++;\n if (this.navigationService.focusIndex >= this.navigationService.focusableContent.length) {\n this.navigationService.focusIndex = 0;\n }\n this.navigationService.updateFocus();\n }\n }\n set position(value) {\n this.context.position = this._position = value;\n }\n get position() {\n return this._position;\n }\n get toolbarTemplateRef() {\n return this.toolbarTemplate ? this.toolbarTemplate.templateRef : undefined;\n }\n get renderTemplate() {\n const ganttToolbarTemplate = this.toolbarTemplate;\n const templatePosition = ganttToolbarTemplate ? ganttToolbarTemplate.position : null;\n return ganttToolbarTemplate && (templatePosition === 'both' || templatePosition === this.position);\n }\n handleViewChange(view) {\n this.activeViewChange.emit(view);\n }\n ngAfterViewInit() {\n if (isDocumentAvailable()) {\n const focusableElements = Array.from(this.hostEl.nativeElement.querySelectorAll(focusableSelector) || []).filter(el => isVisible(el));\n if (focusableElements.length) {\n this.navigationService.focusableContent = focusableElements;\n }\n }\n }\n }\n ToolbarComponent.ɵfac = function ToolbarComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToolbarComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ToolbarNavigationService));\n };\n ToolbarComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ToolbarComponent,\n selectors: [[\"kendo-gantt-toolbar\"]],\n hostVars: 3,\n hostBindings: function ToolbarComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function ToolbarComponent_click_HostBindingHandler($event) {\n return ctx.clickHandler($event);\n })(\"keydown.arrowleft\", function ToolbarComponent_keydown_arrowleft_HostBindingHandler($event) {\n return ctx.arrowLeftListener($event);\n })(\"keydown.arrowright\", function ToolbarComponent_keydown_arrowright_HostBindingHandler($event) {\n return ctx.arrowRightListener($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.role);\n i0.ɵɵclassProp(\"k-toolbar-md\", ctx.toolbarSizingClass);\n }\n },\n inputs: {\n showAddTask: \"showAddTask\",\n showViewSelector: \"showViewSelector\",\n views: \"views\",\n activeView: \"activeView\",\n toolbarTemplate: \"toolbarTemplate\",\n navigable: \"navigable\",\n position: \"position\"\n },\n outputs: {\n activeViewChange: \"activeViewChange\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ToolbarNavigationService]), i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 2,\n consts: [[4, \"ngIf\"], [1, \"k-spacer\", \"k-toolbar-spacer\"], [3, \"views\", \"activeView\", \"activeViewChange\", 4, \"ngIf\"], [3, \"activeViewChange\", \"views\", \"activeView\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function ToolbarComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ToolbarComponent_ng_container_0_Template, 4, 2, \"ng-container\", 0)(1, ToolbarComponent_1_Template, 1, 2, null, 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.renderTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.renderTemplate);\n }\n },\n dependencies: [NgIf, GanttAddTaskComponent, ViewSelectorComponent, NgTemplateOutlet],\n encapsulation: 2\n });\n return ToolbarComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet Messages = /*#__PURE__*/(() => {\n class Messages extends ComponentMessages {}\n Messages.ɵfac = /* @__PURE__ */(() => {\n let ɵMessages_BaseFactory;\n return function Messages_Factory(__ngFactoryType__) {\n return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = i0.ɵɵgetInheritedFactory(Messages)))(__ngFactoryType__ || Messages);\n };\n })();\n Messages.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: Messages,\n selectors: [[\"kendo-gantt-messages-base\"]],\n inputs: {\n taskEditingGeneralTabTitle: \"taskEditingGeneralTabTitle\",\n taskEditingPredecessorsTabTitle: \"taskEditingPredecessorsTabTitle\",\n taskEditingSuccessorsTabTitle: \"taskEditingSuccessorsTabTitle\",\n taskEditingDependenciesAddButtonText: \"taskEditingDependenciesAddButtonText\",\n taskEditingDependenciesRemoveButtonText: \"taskEditingDependenciesRemoveButtonText\",\n taskEditingDependenciesGridNameColumnTitle: \"taskEditingDependenciesGridNameColumnTitle\",\n taskEditingDependenciesGridTypeColumnTitle: \"taskEditingDependenciesGridTypeColumnTitle\",\n deleteButtonText: \"deleteButtonText\",\n taskDeleteLabel: \"taskDeleteLabel\",\n taskEditingDialogTitle: \"taskEditingDialogTitle\",\n taskEditingDialogCloseTitle: \"taskEditingDialogCloseTitle\",\n confirmationDialogCloseTitle: \"confirmationDialogCloseTitle\",\n confirmationDialogTitle: \"confirmationDialogTitle\",\n addTaskText: \"addTaskText\",\n addChildText: \"addChildText\",\n addAboveText: \"addAboveText\",\n addBelowText: \"addBelowText\",\n cancelButtonText: \"cancelButtonText\",\n saveButtonText: \"saveButtonText\",\n titleFieldInputLabel: \"titleFieldInputLabel\",\n startFieldInputLabel: \"startFieldInputLabel\",\n endFieldInputLabel: \"endFieldInputLabel\",\n completionRatioFieldInputLabel: \"completionRatioFieldInputLabel\",\n confirmationDialogContent: \"confirmationDialogContent\",\n dayViewText: \"dayViewText\",\n weekViewText: \"weekViewText\",\n monthViewText: \"monthViewText\",\n yearViewText: \"yearViewText\",\n noRecords: \"noRecords\",\n filter: \"filter\",\n filterEqOperator: \"filterEqOperator\",\n filterNotEqOperator: \"filterNotEqOperator\",\n filterIsNullOperator: \"filterIsNullOperator\",\n filterIsNotNullOperator: \"filterIsNotNullOperator\",\n filterIsEmptyOperator: \"filterIsEmptyOperator\",\n filterIsNotEmptyOperator: \"filterIsNotEmptyOperator\",\n filterStartsWithOperator: \"filterStartsWithOperator\",\n filterContainsOperator: \"filterContainsOperator\",\n filterNotContainsOperator: \"filterNotContainsOperator\",\n filterEndsWithOperator: \"filterEndsWithOperator\",\n filterGteOperator: \"filterGteOperator\",\n filterGtOperator: \"filterGtOperator\",\n filterLteOperator: \"filterLteOperator\",\n filterLtOperator: \"filterLtOperator\",\n filterIsTrue: \"filterIsTrue\",\n filterIsFalse: \"filterIsFalse\",\n filterBooleanAll: \"filterBooleanAll\",\n filterAfterOrEqualOperator: \"filterAfterOrEqualOperator\",\n filterAfterOperator: \"filterAfterOperator\",\n filterBeforeOperator: \"filterBeforeOperator\",\n filterBeforeOrEqualOperator: \"filterBeforeOrEqualOperator\",\n filterFilterButton: \"filterFilterButton\",\n filterClearButton: \"filterClearButton\",\n filterAndLogic: \"filterAndLogic\",\n filterOrLogic: \"filterOrLogic\",\n loading: \"loading\",\n columnMenu: \"columnMenu\",\n columns: \"columns\",\n lock: \"lock\",\n unlock: \"unlock\",\n sortable: \"sortable\",\n sortAscending: \"sortAscending\",\n sortDescending: \"sortDescending\",\n sortedAscending: \"sortedAscending\",\n sortedDescending: \"sortedDescending\",\n sortedDefault: \"sortedDefault\",\n columnsApply: \"columnsApply\",\n columnsReset: \"columnsReset\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return Messages;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet LocalizedMessagesDirective = /*#__PURE__*/(() => {\n class LocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n }\n LocalizedMessagesDirective.ɵfac = function LocalizedMessagesDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LocalizedMessagesDirective)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n LocalizedMessagesDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LocalizedMessagesDirective,\n selectors: [[\"\", \"kendoGanttLocalizedMessages\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective)\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n return LocalizedMessagesDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst TREELIST_GROUP_COLUMNS_CLASS = 'k-gantt-treelist-nested-columns';\nconst DEFAULT_VIEW = 'week';\nconst DEFAULT_DRAG_SCROLL_SETTINGS = {\n enabled: true,\n step: 3,\n interval: 1,\n threshold: 10\n};\n/**\n * Represents the Kendo UI Gantt component for Angular.\n *\n * @example\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n *
\n *
\n *
\n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public data: Task[] = [{\n * id: 7, title: 'Validation and R&D', start: new Date('2014-06-02T00:00:00.000Z'),\n * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.45708333333333334,\n * subtasks: [\n * { id: 18, title: 'Project Kickoff', start: new Date('2014-06-02T00:00:00.000Z'),\n * end: new Date('2014-06-02T00:00:00.000Z'), completionRatio: 0.23 },\n * { id: 11, title: 'Research', start: new Date('2014-06-02T00:00:00.000Z'),\n * end: new Date('2014-06-07T00:00:00.000Z'), completionRatio: 0.5766666666666667,\n * subtasks: [\n * { id: 19, title: 'Validation', start: new Date('2014-06-02T00:00:00.000Z'),\n * end: new Date('2014-06-04T00:00:00.000Z'), completionRatio: 0.25 },\n * { id: 39, title: 'Specification', start: new Date('2014-06-04T00:00:00.000Z'),\n * end: new Date('2014-06-07T00:00:00.000Z'), completionRatio: 0.66 }]\n * }, { id: 13, title: 'Implementation', start: new Date('2014-06-08T00:00:00.000Z'),\n * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.77,\n * subtasks: [\n * { id: 24, title: 'Prototype', start: new Date('2014-06-08T00:00:00.000Z'),\n * end: new Date('2014-06-14T00:00:00.000Z'), completionRatio: 0.77 },\n * { id: 29, title: 'UI and Interaction', start: new Date('2014-06-14T00:00:00.000Z'),\n * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0.6 }]\n * }, { id: 17, title: 'Release', start: new Date('2014-06-19T00:00:00.000Z'),\n * end: new Date('2014-06-19T00:00:00.000Z'), completionRatio: 0 }]\n * }];\n *\n * public dependencies: GanttDependency[] = [\n * { id: 528, fromId: 18, toId: 19, type: DependencyType.FS },\n * { id: 529, fromId: 19, toId: 39, type: DependencyType.FS },\n * { id: 535, fromId: 24, toId: 29, type: DependencyType.FS },\n * { id: 551, fromId: 13, toId: 29, type: DependencyType.FF },\n * { id: 777, fromId: 7, toId: 11, type: DependencyType.SF },\n * { id: 556, fromId: 39, toId: 24, type: DependencyType.FS },\n * { id: 546, fromId: 29, toId: 17, type: DependencyType.FS },\n * ];\n * }\n * ```\n */\nlet GanttComponent = /*#__PURE__*/(() => {\n class GanttComponent {\n constructor(timelineViewService, scrollSyncService, renderer, mapper, optionChangesService, dependencyDomService, editService, localizationService, hostElement, zone, navigation, currentTimeMarkerService) {\n this.timelineViewService = timelineViewService;\n this.scrollSyncService = scrollSyncService;\n this.renderer = renderer;\n this.mapper = mapper;\n this.optionChangesService = optionChangesService;\n this.dependencyDomService = dependencyDomService;\n this.editService = editService;\n this.localizationService = localizationService;\n this.hostElement = hostElement;\n this.zone = zone;\n this.navigation = navigation;\n this.currentTimeMarkerService = currentTimeMarkerService;\n /**\n * @hidden\n */\n this.roleDescription = 'Gantt Chart';\n /**\n * @hidden\n */\n this.role = 'application';\n this.hostClasses = true;\n /**\n * Specifies a callback that determines if the given task is selected ([see example]({% slug selection_gantt %}#toc-custom-selection)).\n *\n * > The [`selectable`]({% slug api_gantt_ganttcomponent %}#toc-selectable) prop has to be set to `true` in order for this callback to be executed.\n */\n this.isSelected = isSelected;\n /**\n * Specifies a callback that determines if a new dependency is valid.\n * Used when evaluating if an attempt to create a new dependency will result in a valid link between the two tasks\n * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-validation).\n *\n * By defalut, dependencies are deemed invalid when:\n * - The two tasks are in a parent-child relationship.\n * - The two tasks are already dependent on one another. Only one dependency is allowed per pair.\n * - The start or end times of the two tasks are incompatible with the attempted dependency type.\n */\n this.validateNewDependency = this.defaultValidateNewDependencyCallback.bind(this);\n /**\n * Fires when the Gantt selection is changed through user interaction.\n *\n * Holds data about the affected [`items`]({% slug api_gantt_selectionchangeevent %}#toc-items) and the attempted [`action`]({% slug api_gantt_selectionchangeevent %}#toc-action):\n * - `select` - Triggered on `click` or `ctrl + click` on deselected items.\n * - `remove` - Triggered on `ctrl + click` on selected items.\n */\n this.selectionChange = new EventEmitter();\n /**\n * Enables or disables the Gantt selection mechanism ([see example]({% slug selection_gantt %}#toc-custom-selection)).\n *\n * > When set to `true`, the [`isSelected`]({% slug api_gantt_ganttcomponent %}#toc-isselected) callback has to be provided.\n * > When applied, the [`SelectableDirective`]({% slug api_gantt_selectabledirective %}) sets `selectable` to `true` internally.\n */\n this.selectable = false;\n /**\n * Allows setting the toolbar(s) `aria-label` attribute value as necessary to comply with accessibility requirements.\n * Typically, toolbars need an `aria-label` when there is more than one toolbar in the application.\n */\n this.toolbarAriaLabel = 'Toolbar';\n /**\n * Defines the dependencies that will be drawn between the rendered tasks.\n *\n * > The dependency data items should either conform to the [`GanttDependency`]({% slug api_gantt_ganttdependency %}) interface, or a [`dependencyModelFields`]({% slug api_gantt_ganttcomponent %}#toc-dependencymodelfields) object has to be provided.\n */\n this.dependencies = [];\n /**\n * Enables the sorting of the Gantt columns that have their `field` option set.\n */\n this.sortable = false;\n /**\n * The descriptors by which the data will be sorted.\n */\n this.sort = [];\n /**\n * Enables the filtering of the Gantt columns that have their `field` option set.\n *\n * @default false\n */\n this.filterable = false;\n /**\n * The start time of the work day.\n * Accepts string values in the `HH:mm` format.\n */\n this.workDayStart = '08:00';\n /**\n * The end time of the work day.\n * Accepts string values in the `HH:mm` format.\n */\n this.workDayEnd = '17:00';\n /**\n * The start of the work week (index based).\n */\n this.workWeekStart = 1;\n /**\n * The end of the work week (index based).\n */\n this.workWeekEnd = 5;\n /**\n * If set to `true`, the user can use dedicated shortcuts to interact with the Gantt.\n * By default, navigation is disabled for the TreeList and Timeline parts of the component,\n * ([see example]({% slug keyboard_navigation_gantt %})).\n */\n this.navigable = false;\n /**\n * Indicates whether the Gantt columns will be resized during initialization so that they fit their headers and row content.\n * Columns with autoSize set to false are excluded.\n *\n * @default false\n */\n this.columnsAutoSize = false;\n /**\n * Specifies the Gantt current time marker settings.\n * The settings will be applied for all views.\n * If the `currentTimeMarker` is set for a view then it takes precedence.\n *\n * @default true\n */\n this.currentTimeMarker = true;\n /**\n * Specifies if the column menu of the columns will be displayed.\n *\n * @default false\n */\n this.columnMenu = false;\n /**\n * If set to true, the user can reorder columns by dragging their header cells.\n *\n * @default false\n */\n this.columnsReorderable = false;\n /**\n * If set to true, the user can resize columns by dragging the edges (resize handles) of their header cells.\n *\n * @default false\n */\n this.columnsResizable = false;\n /**\n * Fires when an item is expanded.\n */\n this.rowExpand = new EventEmitter();\n /**\n * Fires when a Gantt task in the timeline pane is double-clicked. The data item, associated with the clicked task,\n * is available in the event data. Use the event handler to open a task editing dialog as necessary.\n */\n this.taskDblClick = new EventEmitter();\n /**\n * Fires when the user double clicks a cell.\n */\n this.cellDblClick = new EventEmitter();\n /**\n * Fires when the user leaves an edited cell.\n */\n this.cellClose = new EventEmitter();\n /**\n * Fires when the end user clicks the `Delete` button in the task editing dialog,\n * the task delete icon, or presses the `Delete` key on the keyboard when a task in the timeline is focused.\n * Use the event handler to open a confirmation dialog when necessary.\n */\n this.taskDelete = new EventEmitter();\n /**\n * Fires when an item is collapsed.\n */\n this.rowCollapse = new EventEmitter();\n /**\n * Fires when the user confirms deleting a task.\n */\n this.remove = new EventEmitter();\n /**\n * Fires when the user cancels editing a task.\n */\n this.cancel = new EventEmitter();\n /**\n * Fires when the user saves an edited task.\n */\n this.save = new EventEmitter();\n /**\n * Fires when the user adds a task.\n */\n this.taskAdd = new EventEmitter();\n /**\n * Fires when the user adds a dependency via dragging\n * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-basic-concepts).\n */\n this.dependencyAdd = new EventEmitter();\n /**\n * Fires when the sorting of the Gantt is changed.\n * You have to handle the event yourself and sort the data.\n */\n this.sortChange = new EventEmitter();\n /**\n * Fires when the Gantt filter is modified.\n * You have to handle the event yourself and filter the data.\n */\n this.filterChange = new EventEmitter();\n /**\n * Fires when the filter or sort state of the Gantt is changed.\n */\n this.dataStateChange = new EventEmitter();\n /**\n * Fires when the collapsed state of the treelist pane is changed.\n */\n this.treeListPaneCollapsedChange = new EventEmitter();\n /**\n * Fires when the collapsed state of the timeline pane is changed.\n */\n this.timelinePaneCollapsedChange = new EventEmitter();\n /**\n * Fires each time the user resizes the timeline pane.\n */\n this.timelinePaneSizeChange = new EventEmitter();\n /**\n * Fires each time the user selects a different view type. The event data contains the type of the newly selected view.\n */\n this.activeViewChange = new EventEmitter();\n /**\n * Fires when the user completes the resizing of the column.\n */\n this.columnResize = new EventEmitter();\n /**\n * Fires when the user completes the reordering of the column.\n */\n this.columnReorder = new EventEmitter();\n /**\n * Fires when the user changes the visibility of the columns from the column menu or column chooser.\n */\n this.columnVisibilityChange = new EventEmitter();\n /**\n * @hidden\n *\n * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.\n */\n this.columnLockedChange = new EventEmitter();\n /**\n * Fires when a cell is clicked.\n */\n this.cellClick = new EventEmitter();\n /**\n * Fires when a task is clicked.\n */\n this.taskClick = new EventEmitter();\n /**\n * @hidden\n *\n * Specifies whether the dependency drag clues will be rendered.\n * Set internally by the dependency-drag-create directive.\n *\n * @default false\n */\n this.renderDependencyDragClues = false;\n /**\n * @hidden\n *\n * Used by the GanttExpandableDirective.\n */\n this.expandStateChange = new EventEmitter();\n /**\n * @hidden\n */\n this.showEditingDialog = false;\n /**\n * @hidden\n */\n this.showConfirmationDialog = false;\n /**\n * @hidden\n */\n this.showLicenseWatermark = false;\n this._columns = new QueryList();\n this._data = [];\n this._dragScrollSettings = {\n ...DEFAULT_DRAG_SCROLL_SETTINGS\n };\n this._timelinePaneOptions = {\n ...DEFAULT_TIMELINE_PANE_SETTINGS\n };\n this._treeListPaneOptions = {\n ...DEFAULT_TREELIST_PANE_SETTINGS\n };\n this._rowClass = rowClassCallback;\n this._taskClass = taskClassCallback;\n this._activeView = DEFAULT_VIEW;\n this._toolbarSettings = {\n position: 'top',\n addTaskTool: 'none',\n viewSelectorTool: 'top'\n };\n this._fetchChildren = fetchChildren;\n this._hasChildren = hasChildren;\n this.rtl = false;\n this.optionChangesSubscriptions = new Subscription();\n this.editServiceSubscription = new Subscription();\n const isValid = validatePackage(packageMetadata);\n this.showLicenseWatermark = shouldShowValidationUI(isValid);\n this.optionChangesSubscriptions.add(this.optionChangesService.viewChanges.subscribe(() => {\n this.loadTimelineData();\n }));\n this.optionChangesSubscriptions.add(this.optionChangesService.dateFormatChanges.subscribe(() => {\n this.loadTimelineData();\n }));\n this.optionChangesSubscriptions.add(this.optionChangesService.columnChanges.subscribe(() => {\n this.treeList.columns.notifyOnChanges();\n }));\n this.editService.getSelectedItem = this.getFirstSelectedItem.bind(this);\n this.editServiceSubscription.add(this.editService.showEditingDialog.subscribe(show => this.showEditingDialog = show));\n this.editServiceSubscription.add(this.editService.taskDelete.subscribe(task => {\n if (hasObservers(this.taskDelete)) {\n this.zone.run(() => this.notifyTaskDelete(task));\n }\n }));\n this.editServiceSubscription.add(this.editService.editEvent.subscribe(args => {\n this[args.editResultType].emit({\n taskFormGroup: args.taskFormGroup,\n item: getEditItem(args.dataItem, this.treeList.view.data, this.mapper),\n dependencies: args.dependencies,\n sender: this\n });\n this.showConfirmationDialog = this.showEditingDialog = false;\n this.editService.dataItem = this.editService.taskFormGroup = null;\n this.updateView();\n if (this.navigable) {\n this.focus();\n }\n }));\n this.editServiceSubscription.add(this.editService.addEvent.subscribe(args => {\n const selectedItem = this.getFirstSelectedItem();\n this.taskAdd.emit({\n actionType: args.actionType,\n selectedItem: selectedItem ? getEditItem(selectedItem, this.treeList.view.data, this.mapper) : null\n });\n this.updateView();\n }));\n this.localizationSubscription = this.localizationService.changes.subscribe(({\n rtl\n }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n this.currentTimeMarkerService.rtl = rtl;\n });\n }\n get toolbarTemplate() {\n if (this._customToolbarTemplate) {\n return this._customToolbarTemplate;\n }\n return this.toolbarTemplateChildren ? this.toolbarTemplateChildren.first : undefined;\n }\n set toolbarTemplate(customToolbarTemplate) {\n this._customToolbarTemplate = customToolbarTemplate;\n }\n get hostRoleDescriptionAttr() {\n return this.roleDescription;\n }\n get hostRoleAttr() {\n return this.role;\n }\n get dir() {\n return this.direction;\n }\n /**\n * A query list of all declared columns.\n */\n set columns(columns) {\n this._columns = columns;\n this.updateTreeListGroupClass(columns);\n }\n get columns() {\n return this._columns;\n }\n /**\n * Sets the fields which will be used to extract the task data from the provided `data` array items.\n * The `id` field is also used as a TreeList data item unique identifier (defaults to `'id'`).\n *\n * > If no object is provided, the Gantt task data items will have to conform to the [`GanttTask`]({% slug api_gantt_gantttask %}) interface.\n */\n set taskModelFields(fields) {\n this.mapper.taskFields = fields;\n }\n /**\n * Sets the fields which will be used to extract the dependency data from the provided `dependencies` array items.\n *\n * > If no object is provided, the Gantt dependency data items will have to conform to the [`GanttDependency`]({% slug api_gantt_ganttdependency %}) interface.\n */\n set dependencyModelFields(fields) {\n this.mapper.dependencyFields = fields;\n }\n /**\n * The active timeline view.\n * @default 'week'\n */\n set activeView(view) {\n this._activeView = view;\n }\n get activeView() {\n /**\n * If the default/provided activeView is not among the provided views,\n * fallback to setting the first provided view as active\n */\n const view = this.views.find(view => view.type === this._activeView) ? this._activeView : this.views.first.type;\n this.currentTimeMarkerService.activeView = view;\n return view;\n }\n /**\n * @hidden\n *\n */\n get activeViewCurrentTimeMarker() {\n const activeViewCurrentTimeMarker = this.views.find(view => view.type === this._activeView)?.currentTimeMarker;\n if (activeViewCurrentTimeMarker === false) {\n return false;\n }\n return activeViewCurrentTimeMarker || this.currentTimeMarker;\n }\n /**\n * Gets or sets the data of the Gantt.\n *\n * > The task data items should either conform to the [`GanttTask`]({% slug api_gantt_gantttask %}) interface, or a [`taskModelFields`]({% slug api_gantt_ganttcomponent %}#toc-taskmodelfields) object has to be provided.\n */\n set data(data) {\n this._data = normalizeGanttData(data);\n this.loadTimelineData();\n }\n get data() {\n return this._data;\n }\n /**\n * The toolbar configuration. Defines the position and content of the toolbar(s).\n * The available properties are `position`, `addTaskTool`, and `viewSelectorTool`.\n * All are optional and default to `top`.\n *\n * The possible values for each option are:\n * - `top`—Positions the toolbar above the Gantt panes. Renders the respective tool in the top toolbar.\n * - `bottom`—Positions the toolbar below the Gantt panes. Renders the respective tool in the bottom toolbar.\n * - `both`—Displays two toolbar instances. Positions the first one above,\n * and the second one - below the Gantt panes. Renders the respective tool in the both toolbars.\n * - `none`—No toolbar is rendered when used for setting `position`.\n * No add task or view selector tool is rendered when used for setting `addTaskTool` or `viewSelectorTool`.\n */\n set toolbarSettings(value) {\n this._toolbarSettings = {\n position: value.position || 'top',\n addTaskTool: value.addTaskTool || 'none',\n viewSelectorTool: value.viewSelectorTool || 'top'\n };\n }\n get toolbarSettings() {\n return this._toolbarSettings;\n }\n /**\n * Gets or sets the callback function that retrieves the child items for a particular item.\n */\n set fetchChildren(fn) {\n this._fetchChildren = fn;\n this.editService.fetchChildren = fn;\n }\n get fetchChildren() {\n return this._fetchChildren;\n }\n /**\n * Gets or sets the callback function that indicates if a particular item has child items.\n */\n set hasChildren(fn) {\n this._hasChildren = fn;\n this.editService.hasChildren = fn;\n }\n get hasChildren() {\n return this._hasChildren;\n }\n /**\n * The options of the timeline splitter pane. By default the pane is `collapsible`,\n * `resizable`, not `collapsed`, and its `size` is `'50%'`.\n */\n set timelinePaneOptions(value) {\n if (this._timelinePaneOptions.collapsed && !value.collapsed) {\n this.dependencyDomService.notifyChanges();\n }\n this._timelinePaneOptions = {\n ...DEFAULT_TIMELINE_PANE_SETTINGS,\n ...value\n };\n }\n get timelinePaneOptions() {\n return {\n ...this._timelinePaneOptions,\n size: this.treeListPaneOptions.collapsed ? '100%' : this._timelinePaneOptions.size\n };\n }\n /**\n * The options of the treelist splitter pane.\n * By default the pane is `collapsible` and not `collapsed`.\n */\n set treeListPaneOptions(value) {\n this._treeListPaneOptions = {\n ...DEFAULT_TREELIST_PANE_SETTINGS,\n ...value\n };\n }\n get treeListPaneOptions() {\n return this._treeListPaneOptions;\n }\n /**\n * Defines a function that is executed for every task in the component.\n * The classes returned from the function are applied to the task wrapper element.\n */\n set taskClass(fn) {\n if (isDevMode() && typeof fn !== 'function') {\n throw new Error(`taskClass must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._taskClass = fn;\n }\n get taskClass() {\n return this._taskClass;\n }\n /**\n * Defines a function that is executed for every data row in the component.\n */\n set rowClass(fn) {\n if (isDevMode() && typeof fn !== 'function') {\n throw new Error(`rowClass must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._rowClass = fn;\n }\n get rowClass() {\n return this._rowClass;\n }\n /**\n * The name of the field which contains the unique identifier of the task data item.\n * Defaults to 'id'.\n */\n get taskIdField() {\n return this.mapper.taskFields.id;\n }\n /**\n * Specifies the settings for auto-scrolling during dragging\n * when the pointer moves outside of the container bounderies\n * [see example]({% slug editing_drag_create_dependencies_gantt %}#toc-auto-scrolling).\n */\n set dragScrollSettings(settings) {\n this._dragScrollSettings = {\n ...DEFAULT_DRAG_SCROLL_SETTINGS,\n ...settings\n };\n }\n get dragScrollSettings() {\n return this._dragScrollSettings;\n }\n /**\n * @hidden\n */\n get renderedTreeListItems() {\n if (!isPresent(this.treeList)) {\n return [];\n }\n return this.treeList.view.data.map(item => item.data);\n }\n /**\n * @hidden\n */\n get viewItems() {\n if (!isPresent(this.treeList)) {\n return [];\n }\n return this.treeList.view.data;\n }\n /**\n * @hidden\n */\n get filterMenu() {\n return this.filterable ? 'menu' : false;\n }\n /**\n * @hidden\n */\n get viewService() {\n if (!this.views || !this.views.length) {\n return null;\n }\n // TODO: review if this is a performance concern?\n return this.timelineViewService.service(this.activeView);\n }\n /**\n * @hidden\n *\n * Retrieves the `isSelected` callback if `selectable` is set to `true`\n * Otherwise returns the default callback, which always returns `false`.\n */\n get isTaskSelected() {\n return this.selectable ? this.isSelected : isSelected;\n }\n /**\n * @hidden\n *\n * Used by the GanttExpandableDirective.\n */\n get idGetter() {\n if (isPresent(this.treeList)) {\n return this.treeList.idGetter;\n }\n }\n /**\n * @hidden\n *\n * Used by the views selector.\n */\n get viewTypes() {\n return this.views.map(view => view.type);\n }\n /**\n * @hidden\n */\n get isInEditMode() {\n return this.showEditingDialog || this.showConfirmationDialog || this.treeList.isEditing();\n }\n ngOnChanges(changes) {\n if (anyChanged(['data', 'activeView', 'workWeekStart', 'workWeekEnd', 'workDayStart', 'workDayEnd'], changes)) {\n this.loadTimelineData();\n }\n }\n ngAfterViewInit() {\n this.updateTreeListMargin();\n this.zone.runOutsideAngular(() => {\n this.keydownListenerDisposers = this.renderer.listen(this.hostElement.nativeElement, 'keydown', this.handleKeydown.bind(this));\n });\n if (this.navigable) {\n this.navigation.initialize({\n treeList: this.treeList,\n host: this.hostElement.nativeElement,\n treeListElement: this.treeList.wrapper.nativeElement,\n timelineElement: this.timeline.timelineContent.nativeElement,\n columns: this.columns,\n data: this.data\n });\n }\n const leftContainer = this.treeList.wrapper.nativeElement.querySelector('kendo-treelist-list > div');\n this.scrollSyncService.registerElement(leftContainer, 'treelist');\n }\n ngAfterContentInit() {\n if (isDevMode() && this.views.length === 0) {\n throw new Error('No views declared for . Please, declare at least one view.');\n }\n this.loadTimelineData();\n this.updateTreeListGroupClass();\n }\n ngOnDestroy() {\n this.optionChangesSubscriptions.unsubscribe();\n this.editServiceSubscription.unsubscribe();\n if (this.localizationSubscription) {\n this.localizationSubscription.unsubscribe();\n }\n if (isPresent(this.keydownListenerDisposers)) {\n this.keydownListenerDisposers();\n this.keydownListenerDisposers = null;\n }\n }\n /**\n * Focuses the last active cell or task in the Gantt.\n * If no item has previously been focused, the first cell of the TreeList part will receive focus,\n * ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).\n */\n focus() {\n if (this.navigable) {\n this.navigation.focusLastActiveItem();\n }\n }\n /**\n * Focuses the targeted cell in the TreeList part of the component,\n * ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).\n */\n focusCell(rowIndex, colIndex) {\n if (this.navigable) {\n this.navigation.focusCell(rowIndex, colIndex);\n }\n }\n /**\n * Focuses the targeted task in the Timeline part of the component,\n * ([see example]({% slug keyboard_navigation_gantt %}#toc-controlling-the-focus)).\n */\n focusTask(taskIndex) {\n if (this.navigable) {\n this.navigation.focusTask(taskIndex);\n }\n }\n /**\n * Applies the minimum possible width for the specified column,\n * so that the whole text fits without wrapping. This method expects the Gantt\n * to be resizable (set `resizable` to `true`).\n * Makes sense to execute this method only after the Gantt is already populated with data.\n */\n autoFitColumn(column) {\n if (isPresent(this.treeList)) {\n this.treeList.autoFitColumn(column);\n }\n }\n /**\n * Adjusts the width of the specified columns to fit the entire content, including headers, without wrapping.\n * If no columns are specified, `autoFitColumns` is applied to all columns.\n *\n * This method requires the Gantt to be resizable (set `resizable` to `true`).\n */\n autoFitColumns(columns = this.columns) {\n if (isPresent(this.treeList)) {\n this.treeList.autoFitColumns(columns);\n }\n }\n /**\n * Clears the already loaded children for the dataItem so that the Gantt will fetch them again the next time it is rendered.\n */\n reload(dataItem, reloadChildren) {\n if (isPresent(this.treeList)) {\n this.treeList.reload(dataItem, reloadChildren);\n }\n }\n /**\n * Changes the position of the specified column.\n * The reordering of columns operates only on the level\n * which is inferred by the source column.\n * For the `reorderColumn` method to work properly,\n * the `source` column has to be visible.\n *\n * @param {ColumnBase} source - The column whose position will be changed.\n * @param {number} destIndex - The new position of the column.\n * @param {ColumnReorderConfig} options - Additional options.\n */\n reorderColumn(source, destIndex, options = {\n before: false\n }) {\n if (isPresent(this.treeList)) {\n this.treeList.reorderColumn(source, destIndex, options);\n }\n }\n /**\n * Forces the TreeList to evaluate if some data items have changed and re-renders the rows information, if needed.\n * Recalculates and re-renders the Timeline period, if needed.\n * Redraws changed dependencies, if needed.\n * Executes all row-related callbacks anew.\n */\n updateView() {\n if (isPresent(this.treeList)) {\n this.treeList.updateView();\n }\n this.loadTimelineData();\n this.dependencyDomService.notifyChanges();\n }\n /**\n * Opens the task editing dialog.\n */\n editTask(dataItem, formGroup) {\n if (!this.showEditingDialog) {\n const taskId = this.mapper.extractFromTask(dataItem, 'id');\n const dependencies = this.dependencies.filter(item => this.mapper.extractFromDependency(item, 'toId') === taskId || this.mapper.extractFromDependency(item, 'fromId') === taskId);\n this.editService.createEditDialog(dataItem, formGroup, dependencies);\n }\n }\n /**\n * Closes the task editing dialog.\n */\n closeTaskDialog() {\n if (this.showEditingDialog) {\n this.editService.closeEditDialog();\n }\n }\n /**\n * Opens the delete task confirmation dialog.\n */\n openConfirmationDialog() {\n this.showConfirmationDialog = true;\n }\n /**\n * @hidden\n */\n handleConfirmationDialogClose() {\n this.showConfirmationDialog = false;\n if (this.navigable) {\n this.focus();\n }\n }\n /**\n * Opens a cell for editing.\n */\n editCell(dataItem, column, formGroup) {\n this.treeList.editCell(dataItem, column, formGroup);\n }\n /**\n * Closes an edited cell.\n */\n closeCell() {\n this.treeList.closeCell();\n }\n /**\n * @hidden\n */\n handleCellClose(e) {\n this.cellClose.emit(new CellCloseEvent({\n ...e,\n item: this.editItem,\n sender: this\n }));\n this.dependencyDomService.notifyChanges();\n }\n /**\n * @hidden\n */\n onTreeListCollapsedChange(collapsed) {\n this.treeListPaneCollapsedChange.emit(collapsed);\n if (!collapsed) {\n this.scrollSyncService.syncScrollTop('timeline', 'treelist');\n }\n }\n /**\n * @hidden\n */\n onTimelineCollapsedChange(collapsed) {\n this.timelinePaneCollapsedChange.emit(collapsed);\n if (!collapsed) {\n this.scrollSyncService.syncScrollTop('treelist', 'timeline');\n this.dependencyDomService.notifyChanges();\n }\n }\n /**\n * @hidden\n */\n loadTimelineData() {\n if (!isPresent(this.viewService)) {\n return;\n }\n const activeViewOptions = this.getActiveViewOptions();\n this.viewService.options = {\n workWeekStart: this.workWeekStart,\n workWeekEnd: this.workWeekEnd,\n workDayStart: this.workDayStart,\n workDayEnd: this.workDayEnd,\n ...activeViewOptions\n };\n this.tableWidth = this.viewService.getTableWidth(this.data);\n const [groupedSlots, slots] = this.viewService.getSlots(this.data);\n this.timelineSlots = slots;\n this.timelineGroupSlots = groupedSlots;\n }\n /**\n * @hidden\n */\n showToolbar(position) {\n return this.toolbarSettings.position !== 'none' && [position, 'both'].indexOf(this.toolbarSettings.position) > -1;\n }\n /**\n * @hidden\n */\n handleColumnVisibilityChange(event) {\n this.columnVisibilityChange.emit(event);\n this.updateTreeListGroupClass();\n }\n /**\n * @hidden\n */\n onTimelinePaneSizeChange(e) {\n this._timelinePaneOptions.size = e;\n this.timelinePaneSizeChange.emit(e);\n }\n /**\n * @hidden\n */\n handleTimelineRightClick(event) {\n const target = event.target;\n const gantt = this.hostElement.nativeElement;\n if (!isTask(target, gantt) || isClearButton(target, gantt)) {\n return;\n }\n if (hasObservers(this.taskClick)) {\n const taskIndex = getClosestTaskIndex(target, gantt);\n const task = this.renderedTreeListItems[taskIndex];\n this.zone.run(() => this.notifyTaskClick(event, task, taskIndex));\n }\n }\n /**\n * @hidden\n */\n handleTimelineClick(event) {\n const target = event.target;\n const gantt = this.hostElement.nativeElement;\n if (!isTask(target, gantt) || isClearButton(target, gantt)) {\n return;\n }\n const taskIndex = getClosestTaskIndex(target, gantt);\n const task = this.renderedTreeListItems[taskIndex];\n const selectionAction = this.getSelectionAction(event, task);\n if (hasObservers(this.selectionChange) && !this.isSameSelection(selectionAction, task) || hasObservers(this.taskClick)) {\n this.zone.run(() => {\n this.notifySelectionChange(task, selectionAction);\n this.notifyTaskClick(event, task, taskIndex);\n });\n }\n }\n /**\n * @hidden\n */\n handleTreeListDoubleClick(event) {\n if (!isPresent(this.lastTreeListCellClick) || event.target !== this.lastTreeListCellClick.originalEvent.target) {\n return;\n }\n this.editItem = getEditItem(this.lastTreeListCellClick.dataItem, this.treeList.view.data, this.mapper);\n if (hasObservers(this.cellDblClick)) {\n this.zone.run(() => {\n this.cellDblClick.emit({\n column: this.lastTreeListCellClick.column,\n columnIndex: this.lastTreeListCellClick.columnIndex,\n dataItem: this.lastTreeListCellClick.dataItem,\n isEdited: this.lastTreeListCellClick.isEdited,\n originalEvent: this.lastTreeListCellClick.originalEvent,\n rowIndex: this.lastTreeListCellClick.rowIndex,\n type: 'dblclick',\n sender: this\n });\n });\n }\n }\n /**\n * @hidden\n */\n handleTreeListSelectionChange(event) {\n // prevent selection change from right-click\n if (isPresent(this.lastTreeListCellClick) && this.lastTreeListCellClick.type === 'contextmenu') {\n return;\n }\n const task = event.items.map(item => item.dataItem)[0]; // single selection only currently available\n const action = event.action;\n this.notifySelectionChange(task, action);\n }\n /**\n * @hidden\n */\n handleTreeListCellClick(event) {\n this.lastTreeListCellClick = event;\n this.cellClick.emit({\n column: event.column,\n columnIndex: event.columnIndex,\n dataItem: event.dataItem,\n isEdited: event.isEdited,\n originalEvent: event.originalEvent,\n rowIndex: event.rowIndex,\n type: event.type,\n sender: this\n });\n }\n /**\n * @hidden\n */\n handleDeleteConfirmation() {\n this.editService.triggerEditEvent('remove');\n }\n /**\n * @hidden\n */\n handleTimelineMouseDown(event) {\n const target = event.target;\n const gantt = this.hostElement.nativeElement;\n if (!isTask(target, gantt) || isClearButton(target, gantt)) {\n return;\n }\n event.preventDefault();\n }\n /**\n * @hidden\n */\n handleTimelineDblClick(event) {\n const target = event.target;\n const gantt = this.hostElement.nativeElement;\n if (!isTask(target, gantt) || isClearButton(target, gantt)) {\n return;\n }\n if (hasObservers(this.taskDblClick)) {\n const taskIndex = getClosestTaskIndex(target, gantt);\n const task = this.renderedTreeListItems[taskIndex];\n this.zone.run(() => this.taskDblClick.emit({\n dataItem: task,\n originalEvent: event,\n sender: this,\n index: taskIndex,\n type: 'dblclick'\n }));\n }\n }\n /**\n * @hidden\n */\n getText(token) {\n return this.localizationService.get(token);\n }\n /**\n * @hidden\n */\n changeActiveView(view) {\n if (view !== this.activeView) {\n this.activeView = view;\n this.loadTimelineData();\n this.scrollSyncService.resetTimelineScrollLeft();\n this.activeViewChange.emit(view);\n this.currentTimeMarkerService.slots = this.timelineSlots;\n this.currentTimeMarkerService.rows = this.viewItems;\n this.currentTimeMarkerService.activeView = view;\n }\n }\n /**\n * @hidden\n */\n notifyTaskClick(event, dataItem, itemIndex) {\n // simulates the TreeList `cellClick` event triggered by enter press (type: 'click')\n const type = event instanceof KeyboardEvent ? 'click' : event.type;\n this.taskClick.emit({\n originalEvent: event,\n dataItem: dataItem,\n index: itemIndex,\n type: type,\n sender: this\n });\n }\n /**\n * @hidden\n */\n notifySelectionChange(dataItem, action) {\n if (this.isSameSelection(action, dataItem)) {\n return;\n }\n this.selectionChange.emit({\n action: action,\n items: [dataItem],\n sender: this\n });\n this.treeList.updateView();\n }\n /**\n * @hidden\n */\n notifyTaskDelete(task) {\n this.editService.dataItem = task;\n this.taskDelete.emit({\n item: getEditItem(task, this.treeList.view.data, this.mapper),\n sender: this\n });\n }\n /**\n * @hidden\n */\n isSameSelection(action, dataItem) {\n return action === 'select' && this.isSelected(dataItem);\n }\n /**\n * @hidden\n */\n getSelectionAction({\n ctrlKey,\n metaKey\n }, dataItem) {\n const shouldToggleSelection = ctrlKey || metaKey;\n return shouldToggleSelection && this.isSelected(dataItem) ? 'remove' : 'select';\n }\n updateTreeListGroupClass(columns = this.columns) {\n if (!isPresent(this.treeList)) {\n return;\n }\n const hasColumns = isPresent(columns) && columns.length > 0;\n const hasVisibleGroupedColumns = hasColumns && columns.some(column => isColumnGroup(column) && column.childrenArray.some(childColumn => childColumn.isVisible));\n if (hasVisibleGroupedColumns) {\n this.renderer.addClass(this.treeList.wrapper.nativeElement, TREELIST_GROUP_COLUMNS_CLASS);\n } else {\n this.renderer.removeClass(this.treeList.wrapper.nativeElement, TREELIST_GROUP_COLUMNS_CLASS);\n }\n }\n /**\n * Used to hide the vertical scrollbar\n */\n updateTreeListMargin() {\n const treeListContentEl = this.treeList.wrapper.nativeElement.querySelector('.k-treelist .k-grid-content');\n this.renderer.setStyle(treeListContentEl, 'margin-right', `${-Math.abs(scrollbarWidth() - 1)}px`);\n }\n get activeTimelineIndex() {\n return this.navigation.activeTimelineIndex;\n }\n getActiveViewOptions() {\n if (!this.views) {\n return;\n }\n return this.views.find(view => view.type === this.activeView);\n }\n getFirstSelectedItem() {\n const isSelectedCallback = this.isSelected || isSelected;\n const loadedItems = this.renderedTreeListItems || [];\n return loadedItems.find(isSelectedCallback);\n }\n defaultValidateNewDependencyCallback(dependency) {\n const fromTaskId = this.mapper.extractFromDependency(dependency, 'fromId');\n const toTaskId = this.mapper.extractFromDependency(dependency, 'toId');\n const fromTask = this.treeList.view.data.find(task => this.mapper.extractFromTask(task.data, 'id') === fromTaskId);\n const toTask = this.treeList.view.data.find(task => this.mapper.extractFromTask(task.data, 'id') === toTaskId);\n // mark as invalid if the attempted dependency is lacking valid from- and to-tasks\n // or when the from- and to-tasks are actually the same task\n if (!isPresent(fromTask) || !isPresent(fromTask.data) || !isPresent(toTask) || !isPresent(toTask.data) || fromTask.data === toTask.data) {\n return false;\n }\n const tasksDependentOnOneAnother = this.dependencies.some(current => {\n const currentFromId = this.mapper.extractFromDependency(current, 'fromId');\n const currentToId = this.mapper.extractFromDependency(current, 'toId');\n return fromTaskId === currentFromId && toTaskId === currentToId || toTaskId === currentFromId && fromTaskId === currentToId;\n });\n // mark as invalid if the attempted dependency is trying to connect already dependent tasks\n // mark as invalid if the two tasks are in parent-child relationship\n if (tasksDependentOnOneAnother || areParentChild(fromTask, toTask)) {\n return false;\n }\n const fromTaskStart = this.mapper.extractFromTask(fromTask.data, 'start');\n const fromTaskEnd = this.mapper.extractFromTask(fromTask.data, 'end');\n const toTaskStart = this.mapper.extractFromTask(toTask.data, 'start');\n const toTaskEnd = this.mapper.extractFromTask(toTask.data, 'end');\n // if the two tasks are available to be connected via a dependency,\n // check if their start and end time allow for the attempted dependency type\n switch (this.mapper.extractFromDependency(dependency, 'type')) {\n // finish to finish (FF) — the from-task ends before the to-task can end\n case DependencyType.FF:\n return fromTaskEnd <= toTaskEnd;\n // finish to start (FS) — the from-task ends before the to-task can begin\n case DependencyType.FS:\n return fromTaskEnd <= toTaskStart;\n // start to finish (SF) — the from-task begins before the to-task can end\n case DependencyType.SF:\n return fromTaskStart <= toTaskEnd;\n // start to start (SS) — the from-task begins before the to-task can begin\n case DependencyType.SS:\n return fromTaskStart <= toTaskStart;\n default:\n return false;\n }\n }\n handleKeydown(event) {\n const {\n keyCode,\n target,\n altKey\n } = event;\n const isTimelineActive = this.timeline.timelineContent.nativeElement.contains(target);\n if (isTimelineActive) {\n if (isArrowUpDownKey(keyCode)) {\n const direction = keyCode === Keys.ArrowUp ? -1 : 1;\n this.navigation.activeTimelineIndex = this.activeTimelineIndex + direction;\n this.navigation.updateActiveTreeListCell();\n } else if (keyCode === Keys.Home) {\n this.navigation.activeTimelineIndex = 0;\n this.navigation.updateActiveTreeListCell();\n } else if (keyCode === Keys.End) {\n const lastAvailableIndex = this.treeList.view.data.length - 1;\n this.navigation.activeTimelineIndex = lastAvailableIndex;\n this.navigation.updateActiveTreeListCell();\n }\n if (isNavigationKey(keyCode)) {\n this.navigation.scrollHorizontallyToTask();\n this.scrollSyncService.syncScrollTop('timeline', 'treelist');\n this.navigation.notifyTaskStatusChange();\n event.preventDefault();\n }\n if (keyCode === Keys.Space && hasObservers(this.selectionChange)) {\n const task = this.renderedTreeListItems[this.activeTimelineIndex];\n const selectionAction = this.getSelectionAction(event, task);\n if (isPresent(task) && !this.isSameSelection(selectionAction, task)) {\n this.zone.run(() => this.notifySelectionChange(task, selectionAction));\n }\n event.preventDefault();\n }\n if (keyCode === Keys.Enter && hasObservers(this.taskClick)) {\n const task = this.renderedTreeListItems[this.activeTimelineIndex];\n if (isPresent(task)) {\n this.zone.run(() => this.notifyTaskClick(event, task, this.activeTimelineIndex));\n }\n event.preventDefault();\n }\n if (isExpandCollapseKey(keyCode, altKey)) {\n const task = this.renderedTreeListItems[this.activeTimelineIndex];\n if (isPresent(task) && this.hasChildren(task)) {\n const shouldExpand = keyCode === Keys.ArrowRight;\n const isExpanded = this.isExpanded(task);\n const sameState = shouldExpand === isExpanded;\n if (!sameState) {\n this.zone.run(() => {\n const expandEvent = {\n dataItem: task\n };\n // order is not arbitrary\n // the TreeList emits the individual events first, then the combined `expandStateChange` event\n const individualEmitter = shouldExpand ? this.rowExpand : this.rowCollapse;\n individualEmitter.emit(expandEvent);\n this.expandStateChange.emit({\n ...expandEvent,\n expand: shouldExpand\n });\n this.updateView();\n this.navigation.scrollHorizontallyToTask();\n });\n }\n }\n event.preventDefault();\n }\n }\n const isTreeListActive = this.treeList.wrapper.nativeElement.contains(target);\n if (keyCode === Keys.Delete && (isTimelineActive || isTreeListActive) && hasObservers(this.taskDelete)) {\n const taskIndex = isTreeListActive ? this.treeList.activeCell.dataRowIndex : this.activeTimelineIndex;\n const task = this.renderedTreeListItems[taskIndex];\n if (isPresent(task)) {\n this.zone.run(() => this.notifyTaskDelete(task));\n }\n }\n if (isViewDigitKey(keyCode) && !isToolbar(target, this.hostElement.nativeElement) && !this.isInEditMode) {\n const targetViewIndex = getIndexFromViewDigitKeyCode(keyCode);\n const availableViews = this.views.toArray();\n const targetView = availableViews[targetViewIndex];\n if (isPresent(targetView) && targetView.type !== this.activeView) {\n this.zone.run(() => this.changeActiveView(targetView.type));\n }\n }\n }\n }\n GanttComponent.ɵfac = function GanttComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttComponent)(i0.ɵɵdirectiveInject(TimelineViewService), i0.ɵɵdirectiveInject(ScrollSyncService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(DependencyDomService), i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(NavigationService), i0.ɵɵdirectiveInject(CurrentTimeMarkerService));\n };\n GanttComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GanttComponent,\n selectors: [[\"kendo-gantt\"]],\n contentQueries: function GanttComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, GanttTaskContentTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, GanttTaskTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, GanttSummaryTaskTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, ToolbarTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, GanttColumnBase, 4);\n i0.ɵɵcontentQuery(dirIndex, ViewBase, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.taskContentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.taskTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.summaryTaskTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarTemplateChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columns = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.views = _t);\n }\n },\n viewQuery: function GanttComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TreeListComponent, 7);\n i0.ɵɵviewQuery(GanttTimelineComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.treeList = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timeline = _t.first);\n }\n },\n hostVars: 5,\n hostBindings: function GanttComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-roledescription\", ctx.hostRoleDescriptionAttr)(\"role\", ctx.hostRoleAttr)(\"dir\", ctx.dir);\n i0.ɵɵclassProp(\"k-gantt\", ctx.hostClasses);\n }\n },\n inputs: {\n roleDescription: [0, \"aria-roledescription\", \"roleDescription\"],\n role: \"role\",\n taskModelFields: \"taskModelFields\",\n dependencyModelFields: \"dependencyModelFields\",\n activeView: \"activeView\",\n data: \"data\",\n isSelected: \"isSelected\",\n validateNewDependency: \"validateNewDependency\",\n selectable: \"selectable\",\n toolbarSettings: \"toolbarSettings\",\n toolbarAriaLabel: \"toolbarAriaLabel\",\n fetchChildren: \"fetchChildren\",\n hasChildren: \"hasChildren\",\n dependencies: \"dependencies\",\n sortable: \"sortable\",\n sort: \"sort\",\n filterable: \"filterable\",\n filter: \"filter\",\n workDayStart: \"workDayStart\",\n workDayEnd: \"workDayEnd\",\n workWeekStart: \"workWeekStart\",\n workWeekEnd: \"workWeekEnd\",\n navigable: \"navigable\",\n timelinePaneOptions: \"timelinePaneOptions\",\n treeListPaneOptions: \"treeListPaneOptions\",\n taskClass: \"taskClass\",\n rowClass: \"rowClass\",\n isExpanded: \"isExpanded\",\n columnsAutoSize: \"columnsAutoSize\",\n currentTimeMarker: \"currentTimeMarker\",\n columnMenu: \"columnMenu\",\n columnsReorderable: \"columnsReorderable\",\n columnsResizable: \"columnsResizable\",\n dragScrollSettings: \"dragScrollSettings\"\n },\n outputs: {\n selectionChange: \"selectionChange\",\n rowExpand: \"rowExpand\",\n taskDblClick: \"taskDblClick\",\n cellDblClick: \"cellDblClick\",\n cellClose: \"cellClose\",\n taskDelete: \"taskDelete\",\n rowCollapse: \"rowCollapse\",\n remove: \"remove\",\n cancel: \"cancel\",\n save: \"save\",\n taskAdd: \"taskAdd\",\n dependencyAdd: \"dependencyAdd\",\n sortChange: \"sortChange\",\n filterChange: \"filterChange\",\n dataStateChange: \"dataStateChange\",\n treeListPaneCollapsedChange: \"treeListPaneCollapsedChange\",\n timelinePaneCollapsedChange: \"timelinePaneCollapsedChange\",\n timelinePaneSizeChange: \"timelinePaneSizeChange\",\n activeViewChange: \"activeViewChange\",\n columnResize: \"columnResize\",\n columnReorder: \"columnReorder\",\n columnVisibilityChange: \"columnVisibilityChange\",\n columnLockedChange: \"columnLockedChange\",\n cellClick: \"cellClick\",\n taskClick: \"taskClick\"\n },\n exportAs: [\"kendoGantt\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([GanttLocalizationService, LocalizationService, {\n provide: L10N_PREFIX,\n useValue: 'kendo.gantt'\n }, {\n provide: DataBoundTreeComponent,\n useExisting: forwardRef(() => GanttComponent)\n }, {\n provide: ExpandableTreeComponent,\n useExisting: forwardRef(() => GanttComponent)\n }, TimelineViewService, TimelineDayViewService, TimelineWeekViewService, TimelineMonthViewService, TimeLineYearViewService, ScrollSyncService, DependencyDomService, MappingService, OptionChangesService, EditService, TimelineScrollService, NavigationService, CurrentTimeMarkerService]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 13,\n vars: 78,\n consts: () => {\n let i18n_0;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the 'General' tab of the editing dialog TabStrip\n * @meaning kendo.gantt.taskEditingGeneralTabTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_0 = goog.getMsg(\"General\");\n i18n_0 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_0;\n } else {\n i18n_0 = $localize`:kendo.gantt.taskEditingGeneralTabTitle|The title of the 'General' tab of the editing dialog TabStrip:General`;\n }\n let i18n_1;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the 'Predecessors' dependencies tab of the editing dialog TabStrip\n * @meaning kendo.gantt.taskEditingPredecessorsTabTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_1 = goog.getMsg(\"Predecessors\");\n i18n_1 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_1;\n } else {\n i18n_1 = $localize`:kendo.gantt.taskEditingPredecessorsTabTitle|The title of the 'Predecessors' dependencies tab of the editing dialog TabStrip:Predecessors`;\n }\n let i18n_2;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the 'Successors' dependencies tab of the editing dialog TabStrip\n * @meaning kendo.gantt.taskEditingSuccessorsTabTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_2 = goog.getMsg(\"Successors\");\n i18n_2 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_2;\n } else {\n i18n_2 = $localize`:kendo.gantt.taskEditingSuccessorsTabTitle|The title of the 'Successors' dependencies tab of the editing dialog TabStrip:Successors`;\n }\n let i18n_3;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the 'Add' button in the dependencies tabs of the editing dialog TabStrip\n * @meaning kendo.gantt.taskEditingDependenciesAddButtonText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_3 = goog.getMsg(\"Add\");\n i18n_3 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_3;\n } else {\n i18n_3 = $localize`:kendo.gantt.taskEditingDependenciesAddButtonText|The text of the 'Add' button in the dependencies tabs of the editing dialog TabStrip:Add`;\n }\n let i18n_4;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the 'Remove' button in the dependencies tabs of the editing dialog TabStrip\n * @meaning kendo.gantt.taskEditingDependenciesRemoveButtonText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_4 = goog.getMsg(\"Remove\");\n i18n_4 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_4;\n } else {\n i18n_4 = $localize`:kendo.gantt.taskEditingDependenciesRemoveButtonText|The text of the 'Remove' button in the dependencies tabs of the editing dialog TabStrip:Remove`;\n }\n let i18n_5;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the 'Task Title' Grid column in the dependencies tabs of the editing dialog TabStrip\n * @meaning kendo.gantt.taskEditingDependenciesGridNameColumnTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_5 = goog.getMsg(\"Task Title\");\n i18n_5 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_5;\n } else {\n i18n_5 = $localize`:kendo.gantt.taskEditingDependenciesGridNameColumnTitle|The title of the 'Task Title' Grid column in the dependencies tabs of the editing dialog TabStrip:Task Title`;\n }\n let i18n_6;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the 'Type' Grid column in the dependencies tabs of the editing dialog TabStrip\n * @meaning kendo.gantt.taskEditingDependenciesGridTypeColumnTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_6 = goog.getMsg(\"Type\");\n i18n_6 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_6;\n } else {\n i18n_6 = $localize`:kendo.gantt.taskEditingDependenciesGridTypeColumnTitle|The title of the 'Type' Grid column in the dependencies tabs of the editing dialog TabStrip:Type`;\n }\n let i18n_7;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the task delete icon\n * @meaning kendo.gantt.taskDeleteLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_7 = goog.getMsg(\"Delete\");\n i18n_7 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_7;\n } else {\n i18n_7 = $localize`:kendo.gantt.taskDeleteLabel|The label of the task delete icon:Delete`;\n }\n let i18n_8;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the task editing dialog\n * @meaning kendo.gantt.taskEditingDialogTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_8 = goog.getMsg(\"Editing Task\");\n i18n_8 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_8;\n } else {\n i18n_8 = $localize`:kendo.gantt.taskEditingDialogTitle|The title of the task editing dialog:Editing Task`;\n }\n let i18n_9;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the task editing dialog close button\n * @meaning kendo.gantt.taskEditingDialogCloseTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_9 = goog.getMsg(\"Close\");\n i18n_9 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_9;\n } else {\n i18n_9 = $localize`:kendo.gantt.taskEditingDialogCloseTitle|The title of the task editing dialog close button:Close`;\n }\n let i18n_10;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the confirmation dialog close button\n * @meaning kendo.gantt.confirmationDialogCloseTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_10 = goog.getMsg(\"Close\");\n i18n_10 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_10;\n } else {\n i18n_10 = $localize`:kendo.gantt.confirmationDialogCloseTitle|The title of the confirmation dialog close button:Close`;\n }\n let i18n_11;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the delete task confirmation dialog\n * @meaning kendo.gantt.confirmationDialogTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_11 = goog.getMsg(\"Delete Task\");\n i18n_11 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_11;\n } else {\n i18n_11 = $localize`:kendo.gantt.confirmationDialogTitle|The title of the delete task confirmation dialog:Delete Task`;\n }\n let i18n_12;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The content of the delete task confirmation dialog\n * @meaning kendo.gantt.confirmationDialogContent\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_12 = goog.getMsg(\"Are you sure you want to delete this task?\");\n i18n_12 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_12;\n } else {\n i18n_12 = $localize`:kendo.gantt.confirmationDialogContent|The content of the delete task confirmation dialog:Are you sure you want to delete this task?`;\n }\n let i18n_13;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the task editing dialog 'Delete' button\n * @meaning kendo.gantt.deleteButtonText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_13 = goog.getMsg(\"Delete\");\n i18n_13 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_13;\n } else {\n i18n_13 = $localize`:kendo.gantt.deleteButtonText|The text of the task editing dialog 'Delete' button:Delete`;\n }\n let i18n_14;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the task editing dialog 'Cancel' button\n * @meaning kendo.gantt.cancelButtonText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_14 = goog.getMsg(\"Cancel\");\n i18n_14 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_14;\n } else {\n i18n_14 = $localize`:kendo.gantt.cancelButtonText|The text of the task editing dialog 'Cancel' button:Cancel`;\n }\n let i18n_15;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the task editing dialog 'Save' button\n * @meaning kendo.gantt.saveButtonText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_15 = goog.getMsg(\"Save\");\n i18n_15 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_15;\n } else {\n i18n_15 = $localize`:kendo.gantt.saveButtonText|The text of the task editing dialog 'Save' button:Save`;\n }\n let i18n_16;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the 'title' field input in editing mode\n * @meaning kendo.gantt.titleFieldInputLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_16 = goog.getMsg(\"Title\");\n i18n_16 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_16;\n } else {\n i18n_16 = $localize`:kendo.gantt.titleFieldInputLabel|The label of the 'title' field input in editing mode:Title`;\n }\n let i18n_17;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the 'start' field input in editing mode\n * @meaning kendo.gantt.startFieldInputLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_17 = goog.getMsg(\"Start\");\n i18n_17 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_17;\n } else {\n i18n_17 = $localize`:kendo.gantt.startFieldInputLabel|The label of the 'start' field input in editing mode:Start`;\n }\n let i18n_18;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the 'end' field input in editing mode\n * @meaning kendo.gantt.endFieldInputLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_18 = goog.getMsg(\"End\");\n i18n_18 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_18;\n } else {\n i18n_18 = $localize`:kendo.gantt.endFieldInputLabel|The label of the 'end' field input in editing mode:End`;\n }\n let i18n_19;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the 'completionRatio' field input in editing mode\n * @meaning kendo.gantt.completionRatioFieldInputLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_19 = goog.getMsg(\"Progress\");\n i18n_19 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_19;\n } else {\n i18n_19 = $localize`:kendo.gantt.completionRatioFieldInputLabel|The label of the 'completionRatio' field input in editing mode:Progress`;\n }\n let i18n_20;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the day view in the ViewSelector component\n * @meaning kendo.gantt.dayViewText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_20 = goog.getMsg(\"Day\");\n i18n_20 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_20;\n } else {\n i18n_20 = $localize`:kendo.gantt.dayViewText|The text of the day view in the ViewSelector component:Day`;\n }\n let i18n_21;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the week view in the ViewSelector component\n * @meaning kendo.gantt.weekViewText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_21 = goog.getMsg(\"Week\");\n i18n_21 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_21;\n } else {\n i18n_21 = $localize`:kendo.gantt.weekViewText|The text of the week view in the ViewSelector component:Week`;\n }\n let i18n_22;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the month view in the ViewSelector component\n * @meaning kendo.gantt.monthViewText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_22 = goog.getMsg(\"Month\");\n i18n_22 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_22;\n } else {\n i18n_22 = $localize`:kendo.gantt.monthViewText|The text of the month view in the ViewSelector component:Month`;\n }\n let i18n_23;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the DropDownButton in the AddTask component\n * @meaning kendo.gantt.addTaskText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_23 = goog.getMsg(\"Add Task\");\n i18n_23 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_23;\n } else {\n i18n_23 = $localize`:kendo.gantt.addTaskText|The text of the DropDownButton in the AddTask component:Add Task`;\n }\n let i18n_24;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the 'Add Child' option in the AddTask component\n * @meaning kendo.gantt.addChildText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_24 = goog.getMsg(\"Add Child\");\n i18n_24 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_24;\n } else {\n i18n_24 = $localize`:kendo.gantt.addChildText|The text of the 'Add Child' option in the AddTask component:Add Child`;\n }\n let i18n_25;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the 'Add Above' option in the AddTask component\n * @meaning kendo.gantt.addAboveText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_25 = goog.getMsg(\"Add Above\");\n i18n_25 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_25;\n } else {\n i18n_25 = $localize`:kendo.gantt.addAboveText|The text of the 'Add Above' option in the AddTask component:Add Above`;\n }\n let i18n_26;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the 'Add Below' option in the AddTask component\n * @meaning kendo.gantt.addBelowText\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_26 = goog.getMsg(\"Add Below\");\n i18n_26 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_26;\n } else {\n i18n_26 = $localize`:kendo.gantt.addBelowText|The text of the 'Add Below' option in the AddTask component:Add Below`;\n }\n let i18n_27;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label visible in the TreeList when there are no records\n * @meaning kendo.gantt.noRecords\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_27 = goog.getMsg(\"No records available.\");\n i18n_27 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_27;\n } else {\n i18n_27 = $localize`:kendo.gantt.noRecords|The label visible in the TreeList when there are no records:No records available.`;\n }\n let i18n_28;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter cell or icon\n * @meaning kendo.gantt.filter\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_28 = goog.getMsg(\"Filter\");\n i18n_28 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_28;\n } else {\n i18n_28 = $localize`:kendo.gantt.filter|The label of the filter cell or icon:Filter`;\n }\n let i18n_29;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the equal filter operator\n * @meaning kendo.gantt.filterEqOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_29 = goog.getMsg(\"Is equal to\");\n i18n_29 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_29;\n } else {\n i18n_29 = $localize`:kendo.gantt.filterEqOperator|The text of the equal filter operator:Is equal to`;\n }\n let i18n_30;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the not equal filter operator\n * @meaning kendo.gantt.filterNotEqOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_30 = goog.getMsg(\"Is not equal to\");\n i18n_30 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_30;\n } else {\n i18n_30 = $localize`:kendo.gantt.filterNotEqOperator|The text of the not equal filter operator:Is not equal to`;\n }\n let i18n_31;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is null filter operator\n * @meaning kendo.gantt.filterIsNullOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_31 = goog.getMsg(\"Is null\");\n i18n_31 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_31;\n } else {\n i18n_31 = $localize`:kendo.gantt.filterIsNullOperator|The text of the is null filter operator:Is null`;\n }\n let i18n_32;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is not null filter operator\n * @meaning kendo.gantt.filterIsNotNullOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_32 = goog.getMsg(\"Is not null\");\n i18n_32 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_32;\n } else {\n i18n_32 = $localize`:kendo.gantt.filterIsNotNullOperator|The text of the is not null filter operator:Is not null`;\n }\n let i18n_33;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is empty filter operator\n * @meaning kendo.gantt.filterIsEmptyOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_33 = goog.getMsg(\"Is empty\");\n i18n_33 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_33;\n } else {\n i18n_33 = $localize`:kendo.gantt.filterIsEmptyOperator|The text of the is empty filter operator:Is empty`;\n }\n let i18n_34;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is not empty filter operator\n * @meaning kendo.gantt.filterIsNotEmptyOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_34 = goog.getMsg(\"Is not empty\");\n i18n_34 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_34;\n } else {\n i18n_34 = $localize`:kendo.gantt.filterIsNotEmptyOperator|The text of the is not empty filter operator:Is not empty`;\n }\n let i18n_35;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the starts with filter operator\n * @meaning kendo.gantt.filterStartsWithOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_35 = goog.getMsg(\"Starts with\");\n i18n_35 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_35;\n } else {\n i18n_35 = $localize`:kendo.gantt.filterStartsWithOperator|The text of the starts with filter operator:Starts with`;\n }\n let i18n_36;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the contains filter operator\n * @meaning kendo.gantt.filterContainsOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_36 = goog.getMsg(\"Contains\");\n i18n_36 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_36;\n } else {\n i18n_36 = $localize`:kendo.gantt.filterContainsOperator|The text of the contains filter operator:Contains`;\n }\n let i18n_37;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the does not contain filter operator\n * @meaning kendo.gantt.filterNotContainsOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_37 = goog.getMsg(\"Does not contain\");\n i18n_37 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_37;\n } else {\n i18n_37 = $localize`:kendo.gantt.filterNotContainsOperator|The text of the does not contain filter operator:Does not contain`;\n }\n let i18n_38;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the ends with filter operator\n * @meaning kendo.gantt.filterEndsWithOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_38 = goog.getMsg(\"Ends with\");\n i18n_38 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_38;\n } else {\n i18n_38 = $localize`:kendo.gantt.filterEndsWithOperator|The text of the ends with filter operator:Ends with`;\n }\n let i18n_39;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the greater than or equal filter operator\n * @meaning kendo.gantt.filterGteOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_39 = goog.getMsg(\"Is greater than or equal to\");\n i18n_39 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_39;\n } else {\n i18n_39 = $localize`:kendo.gantt.filterGteOperator|The text of the greater than or equal filter operator:Is greater than or equal to`;\n }\n let i18n_40;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the greater than filter operator\n * @meaning kendo.gantt.filterGtOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_40 = goog.getMsg(\"Is greater than\");\n i18n_40 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_40;\n } else {\n i18n_40 = $localize`:kendo.gantt.filterGtOperator|The text of the greater than filter operator:Is greater than`;\n }\n let i18n_41;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the less than or equal filter operator\n * @meaning kendo.gantt.filterLteOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_41 = goog.getMsg(\"Is less than or equal to\");\n i18n_41 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_41;\n } else {\n i18n_41 = $localize`:kendo.gantt.filterLteOperator|The text of the less than or equal filter operator:Is less than or equal to`;\n }\n let i18n_42;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the less than filter operator\n * @meaning kendo.gantt.filterLtOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_42 = goog.getMsg(\"Is less than\");\n i18n_42 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_42;\n } else {\n i18n_42 = $localize`:kendo.gantt.filterLtOperator|The text of the less than filter operator:Is less than`;\n }\n let i18n_43;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the IsTrue boolean filter option\n * @meaning kendo.gantt.filterIsTrue\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_43 = goog.getMsg(\"Is True\");\n i18n_43 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_43;\n } else {\n i18n_43 = $localize`:kendo.gantt.filterIsTrue|The text of the IsTrue boolean filter option:Is True`;\n }\n let i18n_44;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the IsFalse boolean filter option\n * @meaning kendo.gantt.filterIsFalse\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_44 = goog.getMsg(\"Is False\");\n i18n_44 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_44;\n } else {\n i18n_44 = $localize`:kendo.gantt.filterIsFalse|The text of the IsFalse boolean filter option:Is False`;\n }\n let i18n_45;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the (All) boolean filter option\n * @meaning kendo.gantt.filterBooleanAll\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_45 = goog.getMsg(\"(All)\");\n i18n_45 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_45;\n } else {\n i18n_45 = $localize`:kendo.gantt.filterBooleanAll|The text of the (All) boolean filter option:(All)`;\n }\n let i18n_46;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the after or equal date filter operator\n * @meaning kendo.gantt.filterAfterOrEqualOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_46 = goog.getMsg(\"Is after or equal to\");\n i18n_46 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_46;\n } else {\n i18n_46 = $localize`:kendo.gantt.filterAfterOrEqualOperator|The text of the after or equal date filter operator:Is after or equal to`;\n }\n let i18n_47;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the after date filter operator\n * @meaning kendo.gantt.filterAfterOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_47 = goog.getMsg(\"Is after\");\n i18n_47 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_47;\n } else {\n i18n_47 = $localize`:kendo.gantt.filterAfterOperator|The text of the after date filter operator:Is after`;\n }\n let i18n_48;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the before date filter operator\n * @meaning kendo.gantt.filterBeforeOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_48 = goog.getMsg(\"Is before\");\n i18n_48 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_48;\n } else {\n i18n_48 = $localize`:kendo.gantt.filterBeforeOperator|The text of the before date filter operator:Is before`;\n }\n let i18n_49;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the before or equal date filter operator\n * @meaning kendo.gantt.filterBeforeOrEqualOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_49 = goog.getMsg(\"Is before or equal to\");\n i18n_49 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_49;\n } else {\n i18n_49 = $localize`:kendo.gantt.filterBeforeOrEqualOperator|The text of the before or equal date filter operator:Is before or equal to`;\n }\n let i18n_50;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the filter button\n * @meaning kendo.gantt.filterFilterButton\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_50 = goog.getMsg(\"Filter\");\n i18n_50 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_50;\n } else {\n i18n_50 = $localize`:kendo.gantt.filterFilterButton|The text of the filter button:Filter`;\n }\n let i18n_51;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the clear filter button\n * @meaning kendo.gantt.filterClearButton\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_51 = goog.getMsg(\"Clear\");\n i18n_51 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_51;\n } else {\n i18n_51 = $localize`:kendo.gantt.filterClearButton|The text of the clear filter button:Clear`;\n }\n let i18n_52;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the And filter logic\n * @meaning kendo.gantt.filterAndLogic\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_52 = goog.getMsg(\"And\");\n i18n_52 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_52;\n } else {\n i18n_52 = $localize`:kendo.gantt.filterAndLogic|The text of the And filter logic:And`;\n }\n let i18n_53;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the Or filter logic\n * @meaning kendo.gantt.filterOrLogic\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_53 = goog.getMsg(\"Or\");\n i18n_53 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_53;\n } else {\n i18n_53 = $localize`:kendo.gantt.filterOrLogic|The text of the Or filter logic:Or`;\n }\n let i18n_54;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The loading text\n * @meaning kendo.gantt.loading\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_54 = goog.getMsg(\"Loading\");\n i18n_54 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_54;\n } else {\n i18n_54 = $localize`:kendo.gantt.loading|The loading text:Loading`;\n }\n let i18n_55;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the column menu icon\n * @meaning kendo.gantt.columnMenu\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_55 = goog.getMsg(\"Column Menu\");\n i18n_55 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_55;\n } else {\n i18n_55 = $localize`:kendo.gantt.columnMenu|The title of the column menu icon:Column Menu`;\n }\n let i18n_56;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the columns item\n * @meaning kendo.gantt.columns\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_56 = goog.getMsg(\"Columns\");\n i18n_56 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_56;\n } else {\n i18n_56 = $localize`:kendo.gantt.columns|The text shown in the column menu for the columns item:Columns`;\n }\n let i18n_57;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the lock item\n * @meaning kendo.gantt.lock\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_57 = goog.getMsg(\"Lock\");\n i18n_57 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_57;\n } else {\n i18n_57 = $localize`:kendo.gantt.lock|The text shown in the column menu for the lock item:Lock`;\n }\n let i18n_58;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the unlock item\n * @meaning kendo.gantt.unlock\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_58 = goog.getMsg(\"Unlock\");\n i18n_58 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_58;\n } else {\n i18n_58 = $localize`:kendo.gantt.unlock|The text shown in the column menu for the unlock item:Unlock`;\n }\n let i18n_59;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the sort icon\n * @meaning kendo.gantt.sortable\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_59 = goog.getMsg(\"Sortable\");\n i18n_59 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_59;\n } else {\n i18n_59 = $localize`:kendo.gantt.sortable|The label of the sort icon:Sortable`;\n }\n let i18n_60;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the sort ascending item\n * @meaning kendo.gantt.sortAscending\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_60 = goog.getMsg(\"Sort Ascending\");\n i18n_60 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_60;\n } else {\n i18n_60 = $localize`:kendo.gantt.sortAscending|The text shown in the column menu for the sort ascending item:Sort Ascending`;\n }\n let i18n_61;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the sort descending item\n * @meaning kendo.gantt.sortDescending\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_61 = goog.getMsg(\"Sort Descending\");\n i18n_61 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_61;\n } else {\n i18n_61 = $localize`:kendo.gantt.sortDescending|The text shown in the column menu for the sort descending item:Sort Descending`;\n }\n let i18n_62;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The status announcement when a column is no longer sorted\n * @meaning kendo.gantt.sortedDefault\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_62 = goog.getMsg(\"Not Sorted\");\n i18n_62 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_62;\n } else {\n i18n_62 = $localize`:kendo.gantt.sortedDefault|The status announcement when a column is no longer sorted:Not Sorted`;\n }\n let i18n_63;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu or column chooser for the columns apply button\n * @meaning kendo.gantt.columnsApply\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_63 = goog.getMsg(\"Apply\");\n i18n_63 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_63;\n } else {\n i18n_63 = $localize`:kendo.gantt.columnsApply|The text shown in the column menu or column chooser for the columns apply button:Apply`;\n }\n let i18n_64;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu or column chooser for the columns reset button\n * @meaning kendo.gantt.columnsReset\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_64 = goog.getMsg(\"Reset\");\n i18n_64 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_GANTT_FESM2020_PROGRESS_KENDO_ANGULAR_GANTT_MJS_64;\n } else {\n i18n_64 = $localize`:kendo.gantt.columnsReset|The text shown in the column menu or column chooser for the columns reset button:Reset`;\n }\n return [[\"kendoGanttLocalizedMessages\", \"\", \"taskEditingGeneralTabTitle\", i18n_0, \"taskEditingPredecessorsTabTitle\", i18n_1, \"taskEditingSuccessorsTabTitle\", i18n_2, \"taskEditingDependenciesAddButtonText\", i18n_3, \"taskEditingDependenciesRemoveButtonText\", i18n_4, \"taskEditingDependenciesGridNameColumnTitle\", i18n_5, \"taskEditingDependenciesGridTypeColumnTitle\", i18n_6, \"taskDeleteLabel\", i18n_7, \"taskEditingDialogTitle\", i18n_8, \"taskEditingDialogCloseTitle\", i18n_9, \"confirmationDialogCloseTitle\", i18n_10, \"confirmationDialogTitle\", i18n_11, \"confirmationDialogContent\", i18n_12, \"deleteButtonText\", i18n_13, \"cancelButtonText\", i18n_14, \"saveButtonText\", i18n_15, \"titleFieldInputLabel\", i18n_16, \"startFieldInputLabel\", i18n_17, \"endFieldInputLabel\", i18n_18, \"completionRatioFieldInputLabel\", i18n_19, \"dayViewText\", i18n_20, \"weekViewText\", i18n_21, \"monthViewText\", i18n_22, \"yearViewText\", \"Year\", \"addTaskText\", i18n_23, \"addChildText\", i18n_24, \"addAboveText\", i18n_25, \"addBelowText\", i18n_26, \"noRecords\", i18n_27, \"filter\", i18n_28, \"filterEqOperator\", i18n_29, \"filterNotEqOperator\", i18n_30, \"filterIsNullOperator\", i18n_31, \"filterIsNotNullOperator\", i18n_32, \"filterIsEmptyOperator\", i18n_33, \"filterIsNotEmptyOperator\", i18n_34, \"filterStartsWithOperator\", i18n_35, \"filterContainsOperator\", i18n_36, \"filterNotContainsOperator\", i18n_37, \"filterEndsWithOperator\", i18n_38, \"filterGteOperator\", i18n_39, \"filterGtOperator\", i18n_40, \"filterLteOperator\", i18n_41, \"filterLtOperator\", i18n_42, \"filterIsTrue\", i18n_43, \"filterIsFalse\", i18n_44, \"filterBooleanAll\", i18n_45, \"filterAfterOrEqualOperator\", i18n_46, \"filterAfterOperator\", i18n_47, \"filterBeforeOperator\", i18n_48, \"filterBeforeOrEqualOperator\", i18n_49, \"filterFilterButton\", i18n_50, \"filterClearButton\", i18n_51, \"filterAndLogic\", i18n_52, \"filterOrLogic\", i18n_53, \"loading\", i18n_54, \"columnMenu\", i18n_55, \"columns\", i18n_56, \"lock-disabled\", i18n_57, \"unlock-disabled\", i18n_58, \"sortable\", i18n_59, \"sortAscending\", i18n_60, \"sortDescending\", i18n_61, \"sortedDefault\", i18n_62, \"columnsApply\", i18n_63, \"columnsReset\", i18n_64], [\"class\", \"k-gantt-header k-toolbar k-gantt-toolbar\", \"position\", \"top\", 3, \"showAddTask\", \"showViewSelector\", \"toolbarTemplate\", \"views\", \"activeView\", \"navigable\", \"activeViewChange\", 4, \"ngIf\"], [1, \"k-gantt-content\"], [1, \"k-gantt-treelist\", \"k-gantt-treelist-scrollable\", 3, \"collapsedChange\", \"collapsible\", \"collapsed\", \"scrollable\"], [3, \"filterChange\", \"sortChange\", \"dataStateChange\", \"expandStateChange\", \"expand\", \"collapse\", \"columnReorder\", \"columnResize\", \"columnVisibilityChange\", \"columnLockedChange\", \"selectionChange\", \"cellClick\", \"cellClose\", \"idField\", \"columns\", \"data\", \"hasChildren\", \"fetchChildren\", \"navigable\", \"isExpanded\", \"autoSize\", \"columnMenu\", \"reorderable\", \"resizable\", \"rowClass\", \"isSelected\", \"selectable\", \"sortable\", \"sort\", \"filterable\", \"filter\", \"kendoEventsOutsideAngular\", \"scope\"], [3, \"noRecords\", \"filter\", \"filterEqOperator\", \"filterNotEqOperator\", \"filterIsNullOperator\", \"filterIsNotNullOperator\", \"filterIsEmptyOperator\", \"filterIsNotEmptyOperator\", \"filterStartsWithOperator\", \"filterContainsOperator\", \"filterNotContainsOperator\", \"filterEndsWithOperator\", \"filterGteOperator\", \"filterGtOperator\", \"filterLteOperator\", \"filterLtOperator\", \"filterIsTrue\", \"filterIsFalse\", \"filterBooleanAll\", \"filterAfterOrEqualOperator\", \"filterAfterOperator\", \"filterBeforeOperator\", \"filterBeforeOrEqualOperator\", \"filterFilterButton\", \"filterClearButton\", \"filterAndLogic\", \"filterOrLogic\", \"loading\", \"columnMenu\", \"columns\", \"sortable\", \"sortAscending\", \"sortDescending\", \"sortedAscending\", \"sortedDescending\", \"sortedDefault\", \"columnsApply\", \"columnsReset\"], [1, \"k-gantt-timeline-pane\", 3, \"collapsedChange\", \"sizeChange\", \"collapsible\", \"resizable\", \"collapsed\", \"min\", \"max\", \"size\", \"scrollable\"], [3, \"renderDependencyDragClues\", \"dragScrollSettings\", \"rows\", \"slots\", \"currentTimeMarker\", \"groupSlots\", \"tableWidth\", \"activeView\", \"taskContentTemplate\", \"taskTemplate\", \"summaryTaskTemplate\", \"taskClass\", \"dependencies\", \"isExpanded\", \"selectable\", \"isTaskSelected\", \"kendoEventsOutsideAngular\", \"scope\", 4, \"ngIf\"], [\"class\", \"k-gantt-footer k-toolbar k-gantt-toolbar\", \"position\", \"bottom\", 3, \"showAddTask\", \"showViewSelector\", \"toolbarTemplate\", \"views\", \"activeView\", \"navigable\", 4, \"ngIf\"], [3, \"data\", 4, \"ngIf\"], [3, \"width\", \"height\", \"title\", \"close\", 4, \"ngIf\"], [\"kendoWatermarkOverlay\", \"\", 4, \"ngIf\"], [\"position\", \"top\", 1, \"k-gantt-header\", \"k-toolbar\", \"k-gantt-toolbar\", 3, \"activeViewChange\", \"showAddTask\", \"showViewSelector\", \"toolbarTemplate\", \"views\", \"activeView\", \"navigable\"], [3, \"renderDependencyDragClues\", \"dragScrollSettings\", \"rows\", \"slots\", \"currentTimeMarker\", \"groupSlots\", \"tableWidth\", \"activeView\", \"taskContentTemplate\", \"taskTemplate\", \"summaryTaskTemplate\", \"taskClass\", \"dependencies\", \"isExpanded\", \"selectable\", \"isTaskSelected\", \"kendoEventsOutsideAngular\", \"scope\"], [\"position\", \"bottom\", 1, \"k-gantt-footer\", \"k-toolbar\", \"k-gantt-toolbar\", 3, \"showAddTask\", \"showViewSelector\", \"toolbarTemplate\", \"views\", \"activeView\", \"navigable\"], [3, \"data\"], [3, \"close\", \"width\", \"height\", \"title\"], [\"layout\", \"start\"], [\"kendoButton\", \"\", 3, \"click\", \"primary\"], [\"kendoButton\", \"\", 3, \"click\"], [\"kendoWatermarkOverlay\", \"\"]];\n },\n template: function GanttComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n i0.ɵɵtemplate(1, GanttComponent_kendo_gantt_toolbar_1_Template, 1, 7, \"kendo-gantt-toolbar\", 1);\n i0.ɵɵelementStart(2, \"div\", 2)(3, \"kendo-splitter\")(4, \"kendo-splitter-pane\", 3);\n i0.ɵɵlistener(\"collapsedChange\", function GanttComponent_Template_kendo_splitter_pane_collapsedChange_4_listener($event) {\n return ctx.onTreeListCollapsedChange($event);\n });\n i0.ɵɵelementStart(5, \"kendo-treelist\", 4);\n i0.ɵɵlistener(\"filterChange\", function GanttComponent_Template_kendo_treelist_filterChange_5_listener($event) {\n return ctx.filterChange.emit($event);\n })(\"sortChange\", function GanttComponent_Template_kendo_treelist_sortChange_5_listener($event) {\n return ctx.sortChange.emit($event);\n })(\"dataStateChange\", function GanttComponent_Template_kendo_treelist_dataStateChange_5_listener($event) {\n return ctx.dataStateChange.emit({\n filter: $event.filter,\n sort: $event.sort\n });\n })(\"expandStateChange\", function GanttComponent_Template_kendo_treelist_expandStateChange_5_listener($event) {\n return ctx.expandStateChange.emit($event);\n })(\"expand\", function GanttComponent_Template_kendo_treelist_expand_5_listener($event) {\n return ctx.rowExpand.emit({\n dataItem: $event.dataItem\n });\n })(\"collapse\", function GanttComponent_Template_kendo_treelist_collapse_5_listener($event) {\n return ctx.rowCollapse.emit({\n dataItem: $event.dataItem\n });\n })(\"columnReorder\", function GanttComponent_Template_kendo_treelist_columnReorder_5_listener($event) {\n return ctx.columnReorder.emit($event);\n })(\"columnResize\", function GanttComponent_Template_kendo_treelist_columnResize_5_listener($event) {\n return ctx.columnResize.emit($event);\n })(\"columnVisibilityChange\", function GanttComponent_Template_kendo_treelist_columnVisibilityChange_5_listener($event) {\n return ctx.handleColumnVisibilityChange($event);\n })(\"columnLockedChange\", function GanttComponent_Template_kendo_treelist_columnLockedChange_5_listener($event) {\n return ctx.columnLockedChange.emit($event);\n })(\"selectionChange\", function GanttComponent_Template_kendo_treelist_selectionChange_5_listener($event) {\n return ctx.handleTreeListSelectionChange($event);\n })(\"cellClick\", function GanttComponent_Template_kendo_treelist_cellClick_5_listener($event) {\n return ctx.handleTreeListCellClick($event);\n })(\"cellClose\", function GanttComponent_Template_kendo_treelist_cellClose_5_listener($event) {\n return ctx.handleCellClose($event);\n });\n i0.ɵɵelement(6, \"kendo-treelist-messages\", 5);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"kendo-splitter-pane\", 6);\n i0.ɵɵlistener(\"collapsedChange\", function GanttComponent_Template_kendo_splitter_pane_collapsedChange_7_listener($event) {\n return ctx.onTimelineCollapsedChange($event);\n })(\"sizeChange\", function GanttComponent_Template_kendo_splitter_pane_sizeChange_7_listener($event) {\n return ctx.onTimelinePaneSizeChange($event);\n });\n i0.ɵɵtemplate(8, GanttComponent_kendo_gantt_timeline_8_Template, 1, 23, \"kendo-gantt-timeline\", 7);\n i0.ɵɵelementEnd()()();\n i0.ɵɵtemplate(9, GanttComponent_kendo_gantt_toolbar_9_Template, 1, 7, \"kendo-gantt-toolbar\", 8)(10, GanttComponent_kendo_gantt_edit_dialog_10_Template, 1, 1, \"kendo-gantt-edit-dialog\", 9)(11, GanttComponent_kendo_dialog_11_Template, 9, 7, \"kendo-dialog\", 10)(12, GanttComponent_div_12_Template, 1, 0, \"div\", 11);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showToolbar(\"top\"));\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"border\", 0);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"collapsible\", ctx.treeListPaneOptions == null ? null : ctx.treeListPaneOptions.collapsible)(\"collapsed\", ctx.treeListPaneOptions == null ? null : ctx.treeListPaneOptions.collapsed)(\"scrollable\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"idField\", ctx.taskIdField)(\"columns\", ctx.columns)(\"data\", ctx.data)(\"hasChildren\", ctx.hasChildren)(\"fetchChildren\", ctx.fetchChildren)(\"navigable\", ctx.navigable)(\"isExpanded\", ctx.isExpanded)(\"autoSize\", ctx.columnsAutoSize)(\"columnMenu\", ctx.columnMenu)(\"reorderable\", ctx.columnsReorderable)(\"resizable\", ctx.columnsResizable)(\"rowClass\", ctx.rowClass)(\"isSelected\", ctx.isSelected)(\"selectable\", ctx.selectable)(\"sortable\", ctx.sortable)(\"sort\", ctx.sort)(\"filterable\", ctx.filterMenu)(\"filter\", ctx.filter)(\"kendoEventsOutsideAngular\", i0.ɵɵpureFunction1(76, _c14, ctx.handleTreeListDoubleClick))(\"scope\", ctx);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"noRecords\", ctx.getText(\"noRecords\"))(\"filter\", ctx.getText(\"filter\"))(\"filterEqOperator\", ctx.getText(\"filterEqOperator\"))(\"filterNotEqOperator\", ctx.getText(\"filterNotEqOperator\"))(\"filterIsNullOperator\", ctx.getText(\"filterIsNullOperator\"))(\"filterIsNotNullOperator\", ctx.getText(\"filterIsNotNullOperator\"))(\"filterIsEmptyOperator\", ctx.getText(\"filterIsEmptyOperator\"))(\"filterIsNotEmptyOperator\", ctx.getText(\"filterIsNotEmptyOperator\"))(\"filterStartsWithOperator\", ctx.getText(\"filterStartsWithOperator\"))(\"filterContainsOperator\", ctx.getText(\"filterContainsOperator\"))(\"filterNotContainsOperator\", ctx.getText(\"filterNotContainsOperator\"))(\"filterEndsWithOperator\", ctx.getText(\"filterEndsWithOperator\"))(\"filterGteOperator\", ctx.getText(\"filterGteOperator\"))(\"filterGtOperator\", ctx.getText(\"filterGtOperator\"))(\"filterLteOperator\", ctx.getText(\"filterLteOperator\"))(\"filterLtOperator\", ctx.getText(\"filterLtOperator\"))(\"filterIsTrue\", ctx.getText(\"filterIsTrue\"))(\"filterIsFalse\", ctx.getText(\"filterIsFalse\"))(\"filterBooleanAll\", ctx.getText(\"filterBooleanAll\"))(\"filterAfterOrEqualOperator\", ctx.getText(\"filterAfterOrEqualOperator\"))(\"filterAfterOperator\", ctx.getText(\"filterAfterOperator\"))(\"filterBeforeOperator\", ctx.getText(\"filterBeforeOperator\"))(\"filterBeforeOrEqualOperator\", ctx.getText(\"filterBeforeOrEqualOperator\"))(\"filterFilterButton\", ctx.getText(\"filterFilterButton\"))(\"filterClearButton\", ctx.getText(\"filterClearButton\"))(\"filterAndLogic\", ctx.getText(\"filterAndLogic\"))(\"filterOrLogic\", ctx.getText(\"filterOrLogic\"))(\"loading\", ctx.getText(\"loading\"))(\"columnMenu\", ctx.getText(\"columnMenu\"))(\"columns\", ctx.getText(\"columns\"))(\"sortable\", ctx.getText(\"sortable\"))(\"sortAscending\", ctx.getText(\"sortAscending\"))(\"sortDescending\", ctx.getText(\"sortDescending\"))(\"sortedAscending\", ctx.getText(\"sortedAscending\"))(\"sortedDescending\", ctx.getText(\"sortedDescending\"))(\"sortedDefault\", ctx.getText(\"sortedDefault\"))(\"columnsApply\", ctx.getText(\"columnsApply\"))(\"columnsReset\", ctx.getText(\"columnsReset\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"collapsible\", ctx.timelinePaneOptions == null ? null : ctx.timelinePaneOptions.collapsible)(\"resizable\", ctx.timelinePaneOptions == null ? null : ctx.timelinePaneOptions.resizable)(\"collapsed\", ctx.timelinePaneOptions == null ? null : ctx.timelinePaneOptions.collapsed)(\"min\", ctx.timelinePaneOptions == null ? null : ctx.timelinePaneOptions.min)(\"max\", ctx.timelinePaneOptions == null ? null : ctx.timelinePaneOptions.max)(\"size\", ctx.timelinePaneOptions == null ? null : ctx.timelinePaneOptions.size)(\"scrollable\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.views && ctx.views.length);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showToolbar(\"bottom\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showEditingDialog);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showConfirmationDialog);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showLicenseWatermark);\n }\n },\n dependencies: [LocalizedMessagesDirective, NgIf, ToolbarComponent, SplitterComponent, SplitterPaneComponent, TreeListComponent, EventsOutsideAngularDirective, CustomMessagesComponent$2, GanttTimelineComponent, EditDialogComponent, DialogComponent, DialogActionsComponent, TreeListSpacerComponent, ButtonComponent, WatermarkOverlayComponent],\n encapsulation: 2\n });\n return GanttComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive which binds the Gantt to an array of objects by using\n * an ID and parent ID field to define the hierarchy.\n *\n * The directive encapsulates the in-memory handling of data operations such as sorting and filtering.\n */\nlet GanttFlatBindingDirective = /*#__PURE__*/(() => {\n class GanttFlatBindingDirective extends FlatBindingDirective {\n /**\n * @hidden\n */\n set aggregate(value) {\n super.aggregate = value;\n }\n }\n GanttFlatBindingDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵGanttFlatBindingDirective_BaseFactory;\n return function GanttFlatBindingDirective_Factory(__ngFactoryType__) {\n return (ɵGanttFlatBindingDirective_BaseFactory || (ɵGanttFlatBindingDirective_BaseFactory = i0.ɵɵgetInheritedFactory(GanttFlatBindingDirective)))(__ngFactoryType__ || GanttFlatBindingDirective);\n };\n })();\n GanttFlatBindingDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GanttFlatBindingDirective,\n selectors: [[\"\", \"kendoGanttFlatBinding\", \"\"]],\n inputs: {\n data: [0, \"kendoGanttFlatBinding\", \"data\"]\n },\n exportAs: [\"kendoGanttFlatBinding\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GanttFlatBindingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive which binds the Gantt to a tree of objects,\n * which encapsulates the in-memory handling of data operations such as sorting and filtering.\n */\nlet GanttHierarchyBindingDirective = /*#__PURE__*/(() => {\n class GanttHierarchyBindingDirective extends HierarchyBindingDirective {\n /**\n * @hidden\n */\n set aggregate(value) {\n super.aggregate = value;\n }\n }\n GanttHierarchyBindingDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵGanttHierarchyBindingDirective_BaseFactory;\n return function GanttHierarchyBindingDirective_Factory(__ngFactoryType__) {\n return (ɵGanttHierarchyBindingDirective_BaseFactory || (ɵGanttHierarchyBindingDirective_BaseFactory = i0.ɵɵgetInheritedFactory(GanttHierarchyBindingDirective)))(__ngFactoryType__ || GanttHierarchyBindingDirective);\n };\n })();\n GanttHierarchyBindingDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GanttHierarchyBindingDirective,\n selectors: [[\"\", \"kendoGanttHierarchyBinding\", \"\"]],\n inputs: {\n data: [0, \"kendoGanttHierarchyBinding\", \"data\"]\n },\n exportAs: [\"kendoGanttHierarchyBinding\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GanttHierarchyBindingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive which controls the expanded state of the items.\n */\nlet GanttExpandableDirective = /*#__PURE__*/(() => {\n class GanttExpandableDirective extends ExpandableDirective {\n /**\n * Defines the item key that will be stored in the expandedKeys collection.\n * Defaults to the task data item ID field,\n * which is specified in the [`taskModelFields`]({% slug api_gantt_ganttcomponent %}#toc-taskmodelfields) object.\n *\n */\n set expandBy(value) {\n super.expandBy = value;\n }\n }\n GanttExpandableDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵGanttExpandableDirective_BaseFactory;\n return function GanttExpandableDirective_Factory(__ngFactoryType__) {\n return (ɵGanttExpandableDirective_BaseFactory || (ɵGanttExpandableDirective_BaseFactory = i0.ɵɵgetInheritedFactory(GanttExpandableDirective)))(__ngFactoryType__ || GanttExpandableDirective);\n };\n })();\n GanttExpandableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GanttExpandableDirective,\n selectors: [[\"\", \"kendoGanttExpandable\", \"\"]],\n inputs: {\n expandBy: \"expandBy\"\n },\n exportAs: [\"kendoGanttExpandable\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GanttExpandableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet DragValidationTooltipComponent = /*#__PURE__*/(() => {\n class DragValidationTooltipComponent {\n constructor() {\n /**\n * Sets the status class of the attempted operation.\n * Note that the status will be ignored and the `neutral` status class will be rendered,\n * if the any of the fromTaskName or toTaskName are not populated.\n */\n this.isValid = false;\n }\n }\n DragValidationTooltipComponent.ɵfac = function DragValidationTooltipComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DragValidationTooltipComponent)();\n };\n DragValidationTooltipComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DragValidationTooltipComponent,\n selectors: [[\"ng-component\"]],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 11,\n vars: 6,\n consts: [[1, \"k-tooltip\", \"k-gantt-tooltip-validation\"], [1, \"k-gantt-tooltip-validation-row\"], [1, \"k-gantt-tooltip-validation-label\"], [1, \"k-gantt-tooltip-validation-value\"]],\n template: function DragValidationTooltipComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1)(2, \"span\", 2);\n i0.ɵɵtext(3, \"From:\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 3);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(6, \"div\", 1)(7, \"span\", 2);\n i0.ɵɵtext(8, \"To:\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"span\", 3);\n i0.ɵɵtext(10);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-gantt-tooltip-valid\", ctx.showValidityStatus && ctx.isValid)(\"k-gantt-tooltip-invalid\", ctx.showValidityStatus && !ctx.isValid);\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(ctx.fromTaskName);\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(ctx.toTaskName);\n }\n },\n encapsulation: 2\n });\n return DragValidationTooltipComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * When added to the .k-task-dot, the element will be kept with hover styles.\n * Used for the drag clue from which the dragging has started.\n */\nconst DRAG_CLUE_HOVER_CLASS = 'k-hover';\n/**\n * Add the selection disabling class to the enitre container.\n * Otherwise existing selection on a given task text prevents dragging the clue even if the clue has `user-select: none` styles.\n */\nconst USER_SELECT_NONE_CLASS = 'k-user-select-none';\n/**\n * When added to the .k-task-wrap, the containing .k-task-dot elements will be kept visible even when not hovered.\n * Used for the drag clue from which the dragging has started.\n */\nconst TASK_WRAPPER_DRAG_CLASS = 'k-origin';\n/**\n * Use 20px margin between the pointer and the popup.\n * Could be made user-configurable if there's demand.\n */\nconst DEFAULT_POPUP_VERTICAL_MARGIN = 20;\n/**\n * A directive which enables the creation of new dependencies via dragging.\n */\nlet DependencyDragCreateDirective = /*#__PURE__*/(() => {\n class DependencyDragCreateDirective {\n constructor(gantt, zone, renderer, mapper, popupService, timelineScrollService) {\n this.gantt = gantt;\n this.zone = zone;\n this.renderer = renderer;\n this.mapper = mapper;\n this.popupService = popupService;\n this.timelineScrollService = timelineScrollService;\n /**\n * Specifies whether the validation tooltip will be displayed during drag operations.\n *\n * @default true\n */\n this.displayValidationTooltip = true;\n this.gantt.renderDependencyDragClues = true;\n }\n get container() {\n if (!isPresent(this.gantt.timeline) || !isPresent(this.gantt.timeline.timelineContent)) {\n return null;\n }\n return this.gantt.timeline.timelineContent.nativeElement;\n }\n get polyline() {\n if (!isPresent(this.gantt.timeline) || !isPresent(this.gantt.timeline.dependencyDragCreatePolyline)) {\n return null;\n }\n return this.gantt.timeline.dependencyDragCreatePolyline.nativeElement;\n }\n get popupContainer() {\n if (!isPresent(this.gantt.timeline) || !isPresent(this.gantt.timeline.dragPopupContainer)) {\n return null;\n }\n return this.gantt.timeline.dragPopupContainer;\n }\n ngAfterViewInit() {\n this.subscribeDraggable();\n this.addScrollListener();\n }\n ngOnDestroy() {\n this.unsubscribeDraggable();\n this.removeScrollListener();\n this.fromTaskClue = null;\n this.cancelScroll();\n this.closeDragPopup();\n }\n subscribeDraggable() {\n this.dragSubscriptions = this.gantt.timeline.timelineContainerPress.subscribe(this.handlePress.bind(this));\n this.dragSubscriptions.add(this.gantt.timeline.timelineContainerDrag.subscribe(this.handleDrag.bind(this)));\n this.dragSubscriptions.add(this.gantt.timeline.timelineContainerRelease.subscribe(this.handleRelease.bind(this)));\n }\n unsubscribeDraggable() {\n if (isPresent(this.dragSubscriptions)) {\n this.dragSubscriptions.unsubscribe();\n this.dragSubscriptions = null;\n }\n }\n handlePress({\n clientX,\n clientY\n }) {\n // using `originalEvent.target` is not reliable under mobile devices with the current implementation of the draggable, so use this instead\n const target = elementFromPoint(clientX, clientY);\n if (isDependencyDragClue(target)) {\n this.fromTaskClue = target;\n this.assignDragStartClasses(this.fromTaskClue);\n // use the center of the target clue as polyline starting point\n const dragClueCenterCoords = getElementClientCenterCoords(this.fromTaskClue);\n // the polyline uses `position: aboslute`, so translate the client coordinates to offset coordinates (`left` and `top` relative to the timeline container)\n this.polylineStartCoords = clientToOffsetCoords(dragClueCenterCoords.left, dragClueCenterCoords.top, this.container);\n }\n }\n handleDrag({\n clientX,\n clientY\n }) {\n if (isPresent(this.fromTaskClue)) {\n // the polyline uses `position: aboslute`, so translate the client coordinates to offset coordinates (`left` and `top` relative to the timeline container)\n const pointerOffsetCoords = clientToOffsetCoords(clientX, clientY, this.container);\n // the start coords are calculated just once per drag session in handlePress\n // use the current drag coords as polyline end coords\n this.updatePolyline(this.polylineStartCoords, pointerOffsetCoords);\n this.currentPointerClientCoords = {\n left: clientX,\n top: clientY\n };\n if (this.gantt.dragScrollSettings.enabled) {\n // use client coordinates for scroll trigger\n this.scrollPointIntoView(this.currentPointerClientCoords);\n }\n if (this.displayValidationTooltip) {\n this.updateDragPopup(pointerOffsetCoords);\n }\n }\n }\n handleRelease({\n clientX,\n clientY\n }) {\n if (!isPresent(this.fromTaskClue)) {\n return;\n }\n // using `originalEvent.target` is not reliable under mobile devices with the current implementation of the draggable, so use this instead\n const target = elementFromPoint(clientX, clientY);\n if (isDependencyDragClue(target) && !sameTaskClues(this.fromTaskClue, target, this.container)) {\n this.zone.run(() => {\n const fromTaskClue = this.fromTaskClue;\n const toTaskClue = target;\n const fromTask = this.gantt.renderedTreeListItems[getClosestTaskIndex(fromTaskClue, this.container)];\n const toTask = this.gantt.renderedTreeListItems[getClosestTaskIndex(toTaskClue, this.container)];\n const dependencyType = getDependencyTypeFromTargetTasks(fromTaskClue, toTaskClue);\n const {\n fromId,\n toId,\n type\n } = this.mapper.dependencyFields;\n this.gantt.dependencyAdd.emit({\n fromTask: fromTask,\n toTask: toTask,\n type: dependencyType,\n isValid: this.gantt.validateNewDependency({\n [fromId]: this.mapper.extractFromTask(fromTask, 'id'),\n [toId]: this.mapper.extractFromTask(toTask, 'id'),\n [type]: dependencyType\n })\n });\n });\n }\n this.clearPolyline();\n this.removeDragStartClasses(this.fromTaskClue);\n this.fromTaskClue = null;\n this.cancelScroll();\n this.closeDragPopup();\n }\n updatePolyline(start, end) {\n const points = `${start.left},${start.top} ${end.left},${end.top}`;\n this.renderer.setAttribute(this.polyline, 'points', points);\n }\n clearPolyline() {\n this.renderer.removeAttribute(this.polyline, 'points');\n }\n assignDragStartClasses(dragClue) {\n if (!isPresent(dragClue)) {\n return;\n }\n this.renderer.addClass(this.container, USER_SELECT_NONE_CLASS);\n this.renderer.addClass(dragClue, DRAG_CLUE_HOVER_CLASS);\n const taskWrapper = getClosestTaskWrapper(dragClue, this.container);\n if (isPresent(taskWrapper)) {\n this.renderer.addClass(taskWrapper, TASK_WRAPPER_DRAG_CLASS);\n }\n }\n removeDragStartClasses(dragClue) {\n if (!isPresent(dragClue)) {\n return;\n }\n this.renderer.removeClass(this.container, USER_SELECT_NONE_CLASS);\n this.renderer.removeClass(dragClue, DRAG_CLUE_HOVER_CLASS);\n const taskWrapper = getClosestTaskWrapper(dragClue, this.container);\n if (isPresent(taskWrapper)) {\n this.renderer.removeClass(taskWrapper, TASK_WRAPPER_DRAG_CLASS);\n }\n }\n scrollPointIntoView({\n left,\n top\n }) {\n this.timelineScrollService.requestScrollCancel();\n this.timelineScrollService.requestHorizontalScroll(left);\n this.timelineScrollService.requestVerticalScroll(top);\n }\n cancelScroll() {\n this.timelineScrollService.requestScrollCancel();\n }\n addScrollListener() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.zone.runOutsideAngular(() => this.scrollListenerDisposer = this.renderer.listen(this.container, 'scroll', () => {\n // update the polyline only if we're currently dragging\n if (isPresent(this.fromTaskClue) && isPresent(this.currentPointerClientCoords)) {\n const {\n left,\n top\n } = this.currentPointerClientCoords;\n const pointerOffsetCoords = clientToOffsetCoords(left, top, this.container);\n this.updatePolyline(this.polylineStartCoords, pointerOffsetCoords);\n if (this.displayValidationTooltip) {\n this.updateDragPopup(pointerOffsetCoords);\n }\n }\n }));\n }\n removeScrollListener() {\n if (isPresent(this.scrollListenerDisposer)) {\n this.scrollListenerDisposer();\n this.scrollListenerDisposer = null;\n }\n }\n openDragPopup() {\n if (isPresent(this.dragPopup)) {\n this.closeDragPopup();\n }\n this.dragPopup = this.popupService.open({\n animate: false,\n content: DragValidationTooltipComponent,\n appendTo: this.popupContainer,\n positionMode: 'absolute',\n popupClass: 'k-popup-transparent'\n });\n }\n updateDragPopup(pointerOffsetPosition) {\n if (!isPresent(this.dragPopup)) {\n this.openDragPopup();\n }\n const tooltip = this.dragPopup.content.instance;\n const {\n fromTaskName,\n toTaskName,\n isValid,\n showValidityStatus\n } = this.getTooltipContext();\n if (tooltip.fromTaskName !== fromTaskName || tooltip.toTaskName !== toTaskName || tooltip.isValid !== isValid || tooltip.showValidityStatus !== showValidityStatus) {\n tooltip.fromTaskName = fromTaskName;\n tooltip.toTaskName = toTaskName;\n tooltip.isValid = isValid;\n tooltip.showValidityStatus = showValidityStatus;\n this.dragPopup.content.changeDetectorRef.detectChanges();\n }\n this.dragPopup.popup.instance.offset = this.normalizePopupPosition(pointerOffsetPosition);\n this.dragPopup.popup.changeDetectorRef.detectChanges();\n }\n closeDragPopup() {\n if (isPresent(this.dragPopup)) {\n this.dragPopup.close();\n this.dragPopup = null;\n }\n }\n extractTaskName(target) {\n if (!isTaskWrapper(target, this.container)) {\n return null;\n }\n const taskIndex = getClosestTaskIndex(target, this.container);\n const task = this.gantt.renderedTreeListItems[taskIndex];\n const taskName = this.mapper.extractFromTask(task, 'title');\n return taskName;\n }\n getTooltipContext() {\n const fromTaskName = this.extractTaskName(this.fromTaskClue);\n const currentPointerTarget = elementFromPoint(this.currentPointerClientCoords.left, this.currentPointerClientCoords.top);\n const toTaskName = isTaskWrapper(currentPointerTarget, this.container) && !sameTaskClues(this.fromTaskClue, currentPointerTarget, this.container) ? this.extractTaskName(currentPointerTarget) : '';\n const showValidityStatus = isDependencyDragClue(currentPointerTarget) && !sameTaskClues(this.fromTaskClue, currentPointerTarget, this.container);\n const {\n fromId,\n toId,\n type\n } = this.mapper.dependencyFields;\n return {\n fromTaskName,\n toTaskName,\n showValidityStatus,\n isValid: showValidityStatus && this.gantt.validateNewDependency({\n [fromId]: this.mapper.extractFromTask(this.gantt.renderedTreeListItems[getClosestTaskIndex(this.fromTaskClue, this.container)], 'id'),\n [toId]: this.mapper.extractFromTask(this.gantt.renderedTreeListItems[getClosestTaskIndex(currentPointerTarget, this.container)], 'id'),\n [type]: getDependencyTypeFromTargetTasks(this.fromTaskClue, currentPointerTarget)\n })\n };\n }\n /**\n * Restricts the popup position to not go below the scroll height or width of the container.\n * Flips the position of the popup when there's not enough vertical space in the visible part of the container to render the popup.\n */\n normalizePopupPosition(pointerOffsetPosition) {\n let top = pointerOffsetPosition.top + DEFAULT_POPUP_VERTICAL_MARGIN;\n const containerClientBottom = this.container.clientHeight + this.container.scrollTop;\n const popupHeight = this.dragPopup.popupElement.querySelector('.k-tooltip').clientHeight;\n const enoughSpaceToRender = top < containerClientBottom - popupHeight;\n // flip the popup above the pointer if there's not enough space in the bottom of the container\n if (!enoughSpaceToRender) {\n // margin * 2 to account for the already applied margin\n top -= popupHeight + DEFAULT_POPUP_VERTICAL_MARGIN * 2;\n }\n // center the popup horizontally according to the pointer position\n const popupWidth = this.dragPopup.popupElement.querySelector('.k-tooltip').clientWidth;\n const left = pointerOffsetPosition.left - popupWidth / 2;\n // don't allow the popup to be cut out of the viewport\n const minLeftTop = 0;\n // restrict the popup from being positioned beyond or before the available scrollable space\n return {\n left: fitToRange(left, minLeftTop, this.container.scrollWidth - popupWidth),\n top: fitToRange(top, minLeftTop, this.container.scrollHeight - popupHeight)\n };\n }\n }\n DependencyDragCreateDirective.ɵfac = function DependencyDragCreateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DependencyDragCreateDirective)(i0.ɵɵdirectiveInject(GanttComponent), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(MappingService), i0.ɵɵdirectiveInject(i3.PopupService), i0.ɵɵdirectiveInject(TimelineScrollService));\n };\n DependencyDragCreateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DependencyDragCreateDirective,\n selectors: [[\"\", \"kendoGanttDependencyDragCreate\", \"\"]],\n inputs: {\n displayValidationTooltip: \"displayValidationTooltip\"\n },\n standalone: true\n });\n return DependencyDragCreateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The Gantt timeline day view component.\n */\nlet TimelineDayViewComponent = /*#__PURE__*/(() => {\n class TimelineDayViewComponent extends ViewBase {\n constructor(optionChangesService, dependencyDomService) {\n super(optionChangesService, dependencyDomService);\n /**\n * The type for this view (`day`).\n */\n this.type = 'day';\n }\n }\n TimelineDayViewComponent.ɵfac = function TimelineDayViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineDayViewComponent)(i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(DependencyDomService));\n };\n TimelineDayViewComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TimelineDayViewComponent,\n selectors: [[\"kendo-gantt-timeline-day-view\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ViewBase,\n useExisting: forwardRef(() => TimelineDayViewComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function TimelineDayViewComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return TimelineDayViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The Gantt timeline week view component.\n */\nlet TimelineWeekViewComponent = /*#__PURE__*/(() => {\n class TimelineWeekViewComponent extends ViewBase {\n constructor(optionChangesService, dependencyDomService) {\n super(optionChangesService, dependencyDomService);\n /**\n * The type for this view (`week`).\n */\n this.type = 'week';\n }\n }\n TimelineWeekViewComponent.ɵfac = function TimelineWeekViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineWeekViewComponent)(i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(DependencyDomService));\n };\n TimelineWeekViewComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TimelineWeekViewComponent,\n selectors: [[\"kendo-gantt-timeline-week-view\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ViewBase,\n useExisting: forwardRef(() => TimelineWeekViewComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function TimelineWeekViewComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return TimelineWeekViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The Gantt timeline month view component.\n */\nlet TimelineMonthViewComponent = /*#__PURE__*/(() => {\n class TimelineMonthViewComponent extends ViewBase {\n constructor(optionChangesService, dependencyDomService) {\n super(optionChangesService, dependencyDomService);\n /**\n * The type for this view (`month`).\n */\n this.type = 'month';\n }\n }\n TimelineMonthViewComponent.ɵfac = function TimelineMonthViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineMonthViewComponent)(i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(DependencyDomService));\n };\n TimelineMonthViewComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TimelineMonthViewComponent,\n selectors: [[\"kendo-gantt-timeline-month-view\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ViewBase,\n useExisting: forwardRef(() => TimelineMonthViewComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function TimelineMonthViewComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return TimelineMonthViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * The Gantt timeline year view component.\n */\nlet TimelineYearViewComponent = /*#__PURE__*/(() => {\n class TimelineYearViewComponent extends ViewBase {\n constructor(optionChangesService, dependencyDomService) {\n super(optionChangesService, dependencyDomService);\n /**\n * The type for this view (`year`).\n */\n this.type = 'year';\n }\n }\n TimelineYearViewComponent.ɵfac = function TimelineYearViewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TimelineYearViewComponent)(i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(DependencyDomService));\n };\n TimelineYearViewComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TimelineYearViewComponent,\n selectors: [[\"kendo-gantt-timeline-year-view\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ViewBase,\n useExisting: forwardRef(() => TimelineYearViewComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function TimelineYearViewComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return TimelineYearViewComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive which handles the [`selectionChange`]({% slug api_gantt_ganttcomponent %}#toc-selectionchange) event of the Gantt\n * ([see example]({% slug selection_gantt %}#toc-built-in-directive))\n */\nlet SelectableDirective = /*#__PURE__*/(() => {\n class SelectableDirective {\n constructor(gantt) {\n this.gantt = gantt;\n /**\n * Fires when the selected keys are changed.\n */\n this.selectedKeysChange = new EventEmitter();\n this.state = new Set();\n this.isSelected = this.isSelected.bind(this);\n this.selectionChange = this.selectionChange.bind(this);\n this.selectable = true;\n }\n /**\n * @hidden\n */\n set selectable(value) {\n if (value) {\n this.gantt.isSelected = this.isSelected;\n this.subscribeSelection();\n } else {\n this.gantt.isSelected = () => false;\n this.unsubscribeSelection();\n }\n this.gantt.selectable = value;\n this.gantt.updateView();\n }\n /**\n * Sets the selected keys.\n */\n set selectedKeys(value) {\n if (isPresent(value) && value === this.lastChange) {\n return;\n }\n // prevent multiple items displayed as selected as multiple selection still not supported fully\n const keys = (value || []).slice(0, 1);\n this.state = new Set(keys);\n this.gantt.updateView();\n }\n /**\n * The field name or a function that specifies the data item unique key identifier.\n * By default, the string field `id` is used.\n */\n set itemKey(value) {\n if (isString(value)) {\n this._keyGetter = getter(value);\n } else {\n this._keyGetter = value;\n }\n }\n get keyGetter() {\n return this._keyGetter || this.gantt.idGetter;\n }\n ngOnDestroy() {\n this.unsubscribeSelection();\n }\n isSelected(dataItem) {\n return this.state.has(this.keyGetter(dataItem));\n }\n selectionChange({\n action,\n items\n }) {\n this.state.clear();\n if (action === 'select') {\n items.forEach(item => this.state.add(this.keyGetter(item)));\n }\n this.emitSelectedItemsChange();\n }\n emitSelectedItemsChange() {\n this.lastChange = Array.from(this.state);\n this.selectedKeysChange.emit(this.lastChange);\n }\n subscribeSelection() {\n this.unsubscribeSelection();\n this.selectionSubscription = this.gantt.selectionChange.subscribe(this.selectionChange);\n }\n unsubscribeSelection() {\n if (this.selectionSubscription) {\n this.selectionSubscription.unsubscribe();\n this.selectionSubscription = null;\n }\n }\n }\n SelectableDirective.ɵfac = function SelectableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SelectableDirective)(i0.ɵɵdirectiveInject(GanttComponent));\n };\n SelectableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SelectableDirective,\n selectors: [[\"\", \"kendoGanttSelectable\", \"\"]],\n inputs: {\n selectable: \"selectable\",\n selectedKeys: \"selectedKeys\",\n itemKey: \"itemKey\"\n },\n outputs: {\n selectedKeysChange: \"selectedKeysChange\"\n },\n exportAs: [\"kendoGanttSelectable\"],\n standalone: true\n });\n return SelectableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Custom component messages override default component messages\n * ([see example](slug:globalization_treelist#toc-custom-messages)).\n */\nlet CustomMessagesComponent = /*#__PURE__*/(() => {\n class CustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n }\n CustomMessagesComponent.ɵfac = function CustomMessagesComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CustomMessagesComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n CustomMessagesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CustomMessagesComponent,\n selectors: [[\"kendo-gantt-messages\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function CustomMessagesComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return CustomMessagesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n* Utility array that contains all `@progress/kendo-angular-gantt` related components and directives\n*/\nconst KENDO_GANTT = [GanttComponent, GanttFlatBindingDirective, GanttHierarchyBindingDirective, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttSummaryTaskTemplateDirective, ToolbarTemplateDirective, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, FilterCellTemplateDirective, FilterMenuTemplateDirective, CellTemplateDirective, EditTemplateDirective, ColumnMenuTemplateDirective, HeaderTemplateDirective, FooterTemplateDirective, GanttExpandableDirective, DependencyDragCreateDirective, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, SelectableDirective, CustomMessagesComponent, GanttAddTaskComponent];\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])\n * definition for the Gantt component.\n *\n * @example\n *\n * ```ts-no-run\n * // Import the Gantt module\n * import { GanttModule } from '@progress/kendo-angular-gantt';\n *\n * // The browser platform with a compiler\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n *\n * import { NgModule } from '@angular/core';\n *\n * // Import the app component\n * import { AppComponent } from './app.component';\n *\n * // Define the app module\n * _@NgModule({\n * declarations: [AppComponent], // declare app component\n * imports: [BrowserModule, GanttModule], // import Gantt module\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n *\n * // Compile and launch the module\n * platformBrowserDynamic().bootstrapModule(AppModule);\n *\n * ```\n */\nlet GanttModule = /*#__PURE__*/(() => {\n class GanttModule {}\n GanttModule.ɵfac = function GanttModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GanttModule)();\n };\n GanttModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: GanttModule\n });\n GanttModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: L10N_PREFIX,\n useValue: 'kendo.gantt'\n },\n // InputsModule providers\n IconsService, PopupService, ResizeBatchService, DialogContainerService, DialogService, WindowService, WindowContainerService,\n // DateInputsModule providers\n CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService$1, TimePickerDOMService, HoursService, MinutesService, SecondsService, MillisecondsService, DayPeriodService,\n // TreeListModule providers\n ColumnResizingService],\n imports: [GanttComponent, ViewSelectorComponent, GanttColumnComponent, GanttColumnGroupComponent, GanttSpanColumnComponent, TimelineDayViewComponent, TimelineWeekViewComponent, TimelineMonthViewComponent, TimelineYearViewComponent, CustomMessagesComponent, GanttAddTaskComponent]\n });\n return GanttModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CellCloseEvent, CellTemplateDirective, ColumnMenuTemplateDirective, CustomMessagesComponent, DependenciesTableComponent, DependencyDragCreateDirective, DependencyType, DragValidationTooltipComponent, EditDialogComponent, EditTemplateDirective, FilterCellTemplateDirective, FilterMenuTemplateDirective, FooterTemplateDirective, GanttAddTaskComponent, GanttColumnBase, GanttColumnComponent, GanttColumnGroupComponent, GanttComponent, GanttDependencyDirective, GanttExpandableDirective, GanttFlatBindingDirective, GanttHeaderTableBodyComponent, GanttHierarchyBindingDirective, GanttMilestoneTaskComponent, GanttModule, GanttSpanColumnComponent, GanttSummaryTaskComponent, GanttSummaryTaskTemplateDirective, GanttTaskComponent, GanttTaskContentTemplateDirective, GanttTaskTemplateDirective, GanttTasksTableBodyComponent, GanttTimelineComponent, HeaderTemplateDirective, KENDO_GANTT, LocalizedMessagesDirective, SelectableDirective, TaskFieldsComponent, TimelineDayViewComponent, TimelineMonthViewComponent, TimelineScrollableDirective, TimelineWeekViewComponent, TimelineYearViewComponent, ToolbarComponent, ToolbarTemplateDirective, ViewSelectorComponent };","/**-----------------------------------------------------------------------------------------\n* Copyright © 2024 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport * as i0 from '@angular/core';\nimport { Directive, Optional, EventEmitter, Injectable, QueryList, Input, ContentChildren, ContentChild, InjectionToken, forwardRef, Component, SkipSelf, Host, isDevMode, SecurityContext, Inject, Output, ChangeDetectionStrategy, HostBinding, ElementRef, ViewChild, Pipe, ViewChildren, Self, HostListener, ViewEncapsulation, NgModule } from '@angular/core';\nimport * as i2$1 from '@progress/kendo-angular-common';\nimport { isDocumentAvailable, isPresent as isPresent$1, hasClasses as hasClasses$1, Keys, EventsOutsideAngularDirective, anyChanged, ResizeSensorComponent, isChanged as isChanged$1, KendoInput, guid, DraggableDirective, TemplateContextDirective, hasObservers, ResizeBatchService, DraggableModule } from '@progress/kendo-angular-common';\nimport * as i2 from '@progress/kendo-angular-icons';\nimport { IconWrapperComponent, IconsService, IconsModule, KENDO_ICONS } from '@progress/kendo-angular-icons';\nimport * as i14 from '@progress/kendo-angular-dateinputs';\nimport { DatePickerComponent, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService as NavigationService$1, KENDO_DATEPICKER, DatePickerModule } from '@progress/kendo-angular-dateinputs';\nimport * as i1 from '@progress/kendo-angular-popup';\nimport { PopupService, PopupModule } from '@progress/kendo-angular-popup';\nimport { DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';\nimport { NgIf, NgFor, NgClass, NgTemplateOutlet, NgSwitch, NgSwitchCase, NgSwitchDefault, NgStyle } from '@angular/common';\nimport * as i3 from '@angular/forms';\nimport { ReactiveFormsModule, NG_VALUE_ACCESSOR, FormsModule, FormControl, FormGroup } from '@angular/forms';\nimport { merge, of, fromEvent, isObservable, BehaviorSubject, Subscription, Subject, zip as zip$1, from, interval, Observable } from 'rxjs';\nimport { auditTime, take, switchMap, map, distinctUntilChanged, filter, tap, throttleTime, skip, takeUntil, switchMapTo, bufferCount, delay, debounceTime } from 'rxjs/operators';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport * as i1$1 from '@progress/kendo-angular-l10n';\nimport { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';\nimport { orderBy, isCompositeFilterDescriptor, process, aggregateBy } from '@progress/kendo-data-query';\nimport * as i1$2 from '@angular/platform-browser';\nimport { plusIcon, cancelIcon, lockIcon, unlockIcon, insertMiddleIcon, caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon, caretAltDownIcon, reorderIcon, filterClearIcon, filterIcon, chevronUpIcon, chevronDownIcon, columnsIcon, sortAscSmallIcon, sortDescSmallIcon, moreVerticalIcon } from '@progress/kendo-svg-icons';\nimport { getter, setter } from '@progress/kendo-common';\nimport * as i3$1 from '@progress/kendo-angular-label';\nimport { LabelComponent, KENDO_LABEL } from '@progress/kendo-angular-label';\nimport * as i5 from '@progress/kendo-angular-dropdowns';\nimport { DropDownListComponent, AutoCompleteComponent, KENDO_DROPDOWNS, DropDownListModule, AutoCompleteModule } from '@progress/kendo-angular-dropdowns';\nimport * as i4 from '@progress/kendo-angular-buttons';\nimport { ButtonComponent, Button, KENDO_BUTTON, ButtonModule } from '@progress/kendo-angular-buttons';\nimport * as i1$4 from '@progress/kendo-angular-inputs';\nimport { NumericTextBoxComponent, TextBoxDirective, RadioButtonDirective, KENDO_NUMERICTEXTBOX, KENDO_INPUTS, InputsModule } from '@progress/kendo-angular-inputs';\nimport * as i1$3 from '@progress/kendo-angular-intl';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { saveAs } from '@progress/kendo-file-saver';\nimport { workbookOptions, toDataURL, ColumnBase as ColumnBase$1, ExcelExportModule } from '@progress/kendo-angular-excel-export';\nimport { PDFExportMarginComponent, PDFExportTemplateDirective, PDFExportComponent } from '@progress/kendo-angular-pdf-export';\n\n/**\n * @hidden\n */\nconst _c0 = [\"select\"];\nconst _c1 = [\"numbers\"];\nconst _c2 = a0 => ({\n \"k-selected\": a0\n});\nfunction PagerNumericButtonsComponent_option_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 10);\n i0.ɵɵtext(1, \"... \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"selected\", false);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(ctx_r1.start - 1));\n }\n}\nfunction PagerNumericButtonsComponent_option_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 11);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const num_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", num_r3.toString())(\"selected\", num_r3 === ctx_r1.currentPage)(\"ngClass\", i0.ɵɵpureFunction1(6, _c2, ctx_r1.currentPage === num_r3));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(num_r3))(\"aria-current\", ctx_r1.currentPage === num_r3 ? \"page\" : undefined);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", num_r3, \" \");\n }\n}\nfunction PagerNumericButtonsComponent_option_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 12);\n i0.ɵɵtext(1, \"... \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"selected\", false);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(ctx_r1.end + 1));\n }\n}\nfunction PagerNumericButtonsComponent_button_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 13);\n i0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_button_7_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changePage(ctx_r1.start - 2));\n });\n i0.ɵɵtext(1, \"...\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(ctx_r1.start - 1))(\"title\", ctx_r1.pageLabel(ctx_r1.start - 1));\n }\n}\nfunction PagerNumericButtonsComponent_button_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 14);\n i0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_button_8_Template_button_click_0_listener() {\n const num_r6 = i0.ɵɵrestoreView(_r5).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changePage(num_r6 - 1));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const num_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"selected\", ctx_r1.currentPage === num_r6);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(num_r6))(\"title\", ctx_r1.pageLabel(num_r6))(\"aria-current\", ctx_r1.currentPage === num_r6 ? \"page\" : undefined);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", num_r6, \" \");\n }\n}\nfunction PagerNumericButtonsComponent_button_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 13);\n i0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_button_9_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changePage(ctx_r1.end));\n });\n i0.ɵɵtext(1, \"...\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(ctx_r1.end + 1))(\"title\", ctx_r1.pageLabel(ctx_r1.end + 1));\n }\n}\nconst _c3 = (a0, a1) => ({\n keydown: a0,\n focusout: a1\n});\nfunction PagerComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵlistener(\"focusin\", function PagerComponent_div_0_Template_div_focusin_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onInnerFocusIn($event, \"start\"));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"tabindex\", ctx_r1.focusTrapTabIndex);\n i0.ɵɵattribute(\"aria-hidden\", true);\n }\n}\nfunction PagerComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 5);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.template.templateRef)(\"ngTemplateOutletContext\", ctx_r1.templateContext);\n }\n}\nfunction PagerComponent_ng_container_2_kendo_treelist_pager_prev_buttons_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-pager-prev-buttons\");\n }\n}\nfunction PagerComponent_ng_container_2_kendo_treelist_pager_numeric_buttons_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-pager-numeric-buttons\", 9);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"buttonCount\", ctx_r1.settings.buttonCount);\n }\n}\nfunction PagerComponent_ng_container_2_kendo_treelist_pager_input_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-pager-input\");\n }\n}\nfunction PagerComponent_ng_container_2_kendo_treelist_pager_next_buttons_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-pager-next-buttons\");\n }\n}\nfunction PagerComponent_ng_container_2_kendo_treelist_pager_info_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-pager-info\");\n }\n}\nfunction PagerComponent_ng_container_2_kendo_treelist_pager_page_sizes_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-pager-page-sizes\", 10);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"pageSizes\", ctx_r1.settings.pageSizes);\n }\n}\nfunction PagerComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 6);\n i0.ɵɵtemplate(2, PagerComponent_ng_container_2_kendo_treelist_pager_prev_buttons_2_Template, 1, 0, \"kendo-treelist-pager-prev-buttons\", 2)(3, PagerComponent_ng_container_2_kendo_treelist_pager_numeric_buttons_3_Template, 1, 1, \"kendo-treelist-pager-numeric-buttons\", 7)(4, PagerComponent_ng_container_2_kendo_treelist_pager_input_4_Template, 1, 0, \"kendo-treelist-pager-input\", 2)(5, PagerComponent_ng_container_2_kendo_treelist_pager_next_buttons_5_Template, 1, 0, \"kendo-treelist-pager-next-buttons\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, PagerComponent_ng_container_2_kendo_treelist_pager_info_6_Template, 1, 0, \"kendo-treelist-pager-info\", 2)(7, PagerComponent_ng_container_2_kendo_treelist_pager_page_sizes_7_Template, 1, 1, \"kendo-treelist-pager-page-sizes\", 8);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.previousNext);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.type === \"numeric\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.type === \"input\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.previousNext);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.info);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.settings.pageSizes);\n }\n}\nfunction PagerComponent_div_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵlistener(\"focusin\", function PagerComponent_div_3_Template_div_focusin_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onInnerFocusIn($event, \"end\"));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"tabindex\", ctx_r1.focusTrapTabIndex);\n i0.ɵɵattribute(\"aria-hidden\", true);\n }\n}\nfunction PagerComponent_kendo_resize_sensor_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-resize-sensor\", 11);\n i0.ɵɵlistener(\"resize\", function PagerComponent_kendo_resize_sensor_4_Template_kendo_resize_sensor_resize_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.resizeHandler());\n });\n i0.ɵɵelementEnd();\n }\n}\nconst _c4 = [\"kendoTreeListLoading\", \"\"];\nconst _c5 = [\"kendoTreeListCell\", \"\"];\nfunction CellComponent_ng_container_1_ng_container_1_kendo_icon_wrapper_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 8);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"svgIcon\", ctx_r0.noneIcon);\n }\n}\nfunction CellComponent_ng_container_1_ng_container_1_kendo_icon_wrapper_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 9);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"name\", ctx_r0.arrowIcon)(\"svgIcon\", ctx_r0.arrowSVGIcon);\n }\n}\nfunction CellComponent_ng_container_1_ng_container_1_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 10);\n }\n}\nfunction CellComponent_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_container_1_kendo_icon_wrapper_1_Template, 1, 1, \"kendo-icon-wrapper\", 5);\n i0.ɵɵpipe(2, \"levelItems\");\n i0.ɵɵtemplate(3, CellComponent_ng_container_1_ng_container_1_kendo_icon_wrapper_3_Template, 1, 2, \"kendo-icon-wrapper\", 6)(4, CellComponent_ng_container_1_ng_container_1_span_4_Template, 1, 0, \"span\", 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind2(2, 3, ctx_r0.level, ctx_r0.hasChildren && ctx_r0.expandIcons));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.hasChildren && ctx_r0.expandIcons && !ctx_r0.loading);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.hasChildren && ctx_r0.expandIcons && ctx_r0.loading);\n }\n}\nfunction CellComponent_ng_container_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 11);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.column.templateRef)(\"ngTemplateOutletContext\", ctx_r0.templateContext);\n }\n}\nfunction CellComponent_ng_container_1_ng_container_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"valueOf\");\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const childColumn_r2 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind3(2, 1, ctx_r0.dataItem, childColumn_r2.field, childColumn_r2.format), \" \");\n }\n}\nfunction CellComponent_ng_container_1_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_container_3_ng_container_1_Template, 3, 5, \"ng-container\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r0.childColumns);\n }\n}\nfunction CellComponent_ng_container_1_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"valueOf\");\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind3(2, 1, ctx_r0.dataItem, ctx_r0.column.field, ctx_r0.column.format));\n }\n}\nfunction CellComponent_ng_container_1_ng_template_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 13);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"checked\", ctx_r0.selected);\n i0.ɵɵattribute(\"aria-label\", ctx_r0.messageFor(\"selectRowCheckboxLabel\"));\n }\n}\nfunction CellComponent_ng_container_1_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"kendo-icon-wrapper\", 14);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"svgIcon\", ctx_r0.reorderIcon);\n }\n}\nfunction CellComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, CellComponent_ng_container_1_ng_container_1_Template, 5, 6, \"ng-container\", 2)(2, CellComponent_ng_container_1_ng_container_2_Template, 1, 2, \"ng-container\", 3)(3, CellComponent_ng_container_1_ng_container_3_Template, 2, 1, \"ng-container\", 2)(4, CellComponent_ng_container_1_ng_container_4_Template, 3, 5, \"ng-container\", 2)(5, CellComponent_ng_container_1_ng_template_5_Template, 1, 2, \"ng-template\", 4)(6, CellComponent_ng_container_1_ng_container_6_Template, 2, 1, \"ng-container\", 2);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.column.expandable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.column.templateRef);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.isSpanColumn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.isBoundColumn);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.column.isCheckboxColumn && !ctx_r0.isNew);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.column.isRowReorderColumn && !ctx_r0.isNew);\n }\n}\nfunction CellComponent_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 11);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.column.editTemplateRef)(\"ngTemplateOutletContext\", ctx_r0.editTemplateContext);\n }\n}\nfunction CellComponent_ng_container_2_ng_container_2_kendo_numerictextbox_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-numerictextbox\", 19);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"format\", ctx_r0.format)(\"formControl\", ctx_r0.formGroup.get(ctx_r0.column.field));\n }\n}\nfunction CellComponent_ng_container_2_ng_container_2_kendo_datepicker_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-datepicker\", 19);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"format\", ctx_r0.format)(\"formControl\", ctx_r0.formGroup.get(ctx_r0.column.field));\n }\n}\nfunction CellComponent_ng_container_2_ng_container_2_input_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 20);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"formControl\", ctx_r0.formGroup.get(ctx_r0.column.field));\n }\n}\nfunction CellComponent_ng_container_2_ng_container_2_input_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 21);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"formControl\", ctx_r0.formGroup.get(ctx_r0.column.field));\n }\n}\nfunction CellComponent_ng_container_2_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 0);\n i0.ɵɵtemplate(1, CellComponent_ng_container_2_ng_container_2_kendo_numerictextbox_1_Template, 1, 2, \"kendo-numerictextbox\", 16)(2, CellComponent_ng_container_2_ng_container_2_kendo_datepicker_2_Template, 1, 2, \"kendo-datepicker\", 16)(3, CellComponent_ng_container_2_ng_container_2_input_3_Template, 1, 1, \"input\", 17)(4, CellComponent_ng_container_2_ng_container_2_input_4_Template, 1, 1, \"input\", 18);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngSwitch\", ctx_r0.column.editor);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"numeric\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"date\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"boolean\");\n }\n}\nfunction CellComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, CellComponent_ng_container_2_ng_container_1_Template, 1, 2, \"ng-container\", 3)(2, CellComponent_ng_container_2_ng_container_2_Template, 5, 4, \"ng-container\", 15);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.column.editTemplateRef);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.column.editTemplateRef);\n }\n}\nconst _c6 = [\"kendoTreeListTableBody\", \"\"];\nconst _c7 = (a0, a1) => ({\n dataItem: a0,\n index: a1\n});\nconst _c8 = (a0, a1, a2, a3, a4, a5, a6) => ({\n $implicit: a0,\n aggregates: a1,\n column: a2,\n columnIndex: a3,\n field: a4,\n items: a5,\n parentItem: a6\n});\nfunction TableBodyComponent_tr_0_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 6);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.noRecordsTemplate.templateRef);\n }\n}\nfunction TableBodyComponent_tr_0_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.noRecordsText, \" \");\n }\n}\nfunction TableBodyComponent_tr_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\", 2)(1, \"td\", 3);\n i0.ɵɵtemplate(2, TableBodyComponent_tr_0_ng_container_2_Template, 1, 1, \"ng-container\", 4)(3, TableBodyComponent_tr_0_ng_container_3_Template, 2, 1, \"ng-container\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"colspan\", ctx_r0.colSpan);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.noRecordsTemplate == null ? null : ctx_r0.noRecordsTemplate.templateRef);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(ctx_r0.noRecordsTemplate == null ? null : ctx_r0.noRecordsTemplate.templateRef));\n }\n}\nfunction TableBodyComponent_ng_container_1_tr_1_td_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"td\", 11);\n }\n if (rf & 2) {\n const column_r2 = ctx.$implicit;\n const columnIndex_r3 = ctx.index;\n const item_r4 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"k-grid-edit-cell\", ctx_r0.isEditingCell(item_r4, column_r2))(\"k-selected\", ctx_r0.isCellSelected(item_r4.data, column_r2, ctx_r0.lockedColumnsCount + columnIndex_r3));\n i0.ɵɵproperty(\"columnIndex\", ctx_r0.lockedColumnsCount + columnIndex_r3)(\"column\", column_r2)(\"viewItem\", item_r4)(\"dataItem\", item_r4.data)(\"level\", item_r4.level)(\"hasChildren\", item_r4.hasChildren)(\"isExpanded\", item_r4.expanded)(\"loading\", item_r4.loading)(\"isNew\", item_r4.isNew)(\"selected\", item_r4.selected)(\"expandIcons\", ctx_r0.expandIcons)(\"logicalRowIndex\", ctx_r0.logicalRowIndex(item_r4.rowIndex))(\"logicalColIndex\", ctx_r0.logicalColIndex(column_r2))(\"dataRowIndex\", item_r4.index)(\"column\", column_r2)(\"colIndex\", columnIndex_r3)(\"colSpan\", column_r2.colspan)(\"expandable\", ctx_r0.cellExpandable(item_r4, column_r2))(\"ngClass\", column_r2.cssClass)(\"ngStyle\", column_r2.style);\n i0.ɵɵattribute(\"aria-expanded\", ctx_r0.lockedColumnsCount < 1 ? ctx_r0.ariaExpanded(item_r4, column_r2) : undefined)(\"aria-selected\", ctx_r0.lockedColumnsCount < 1 ? ctx_r0.ariaSelected(item_r4, column_r2, ctx_r0.lockedColumnsCount + columnIndex_r3) : undefined)(\"role\", column_r2.tableCellsRole)(\"colspan\", column_r2.colspan);\n }\n}\nfunction TableBodyComponent_ng_container_1_tr_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\", 9);\n i0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_1_td_1_Template, 1, 28, \"td\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n const item_r4 = ctx_r4.$implicit;\n const rowIndex_r6 = ctx_r4.index;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassMapInterpolate1(\"k-table-row\", ctx_r0.isOdd(item_r4) ? \" k-alt k-table-alt-row\" : \"\", \"\");\n i0.ɵɵclassProp(\"k-grid-edit-row\", ctx_r0.isEditingRow(item_r4))(\"k-grid-add-row\", item_r4.isNew)(\"k-selected\", item_r4.selected);\n i0.ɵɵproperty(\"dataRowIndex\", item_r4.index)(\"dataItem\", item_r4.data)(\"logicalRowIndex\", ctx_r0.logicalRowIndex(item_r4.rowIndex))(\"logicalSlaveRow\", ctx_r0.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r0.columns.length)(\"logicalSlaveCellsCount\", ctx_r0.unlockedColumnsCount(item_r4))(\"totalColumns\", ctx_r0.totalColumns)(\"isNew\", item_r4.isNew)(\"ngClass\", ctx_r0.rowClass(i0.ɵɵpureFunction2(23, _c7, item_r4.data, item_r4.index)));\n i0.ɵɵattribute(\"aria-expanded\", ctx_r0.ariaRowExpanded(item_r4))(\"aria-selected\", ctx_r0.ariaRowSelected(item_r4))(\"data-treelist-view-index\", rowIndex_r6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r0.columns)(\"ngForTrackBy\", ctx_r0.trackByColumns);\n }\n}\nfunction TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_kendo_icon_wrapper_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 17);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(5);\n i0.ɵɵproperty(\"svgIcon\", ctx_r0.noneIcon);\n }\n}\nfunction TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_kendo_icon_wrapper_1_Template, 1, 1, \"kendo-icon-wrapper\", 16);\n i0.ɵɵpipe(2, \"levelItems\");\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const item_r4 = i0.ɵɵnextContext(3).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 1, item_r4.level));\n }\n}\nfunction TableBodyComponent_ng_container_1_tr_2_td_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 14);\n i0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_Template, 3, 3, \"ng-container\", 5);\n i0.ɵɵelementContainer(2, 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const column_r7 = ctx.$implicit;\n const columnIndex_r8 = ctx.index;\n const item_r4 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"logicalRowIndex\", ctx_r0.logicalRowIndex(item_r4.rowIndex))(\"logicalColIndex\", ctx_r0.logicalColIndex(column_r7))(\"column\", column_r7)(\"colIndex\", columnIndex_r8)(\"ngClass\", column_r7.footerClass)(\"ngStyle\", column_r7.footerStyle);\n i0.ɵɵattribute(\"role\", column_r7.tableCellsRole);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", column_r7.expandable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", column_r7.footerTemplateRef)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction7(10, _c8, item_r4.aggregates, item_r4.aggregates, column_r7, columnIndex_r8, column_r7.field, item_r4.items, item_r4.parentItem));\n }\n}\nfunction TableBodyComponent_ng_container_1_tr_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\", 12);\n i0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_2_td_1_Template, 3, 18, \"td\", 13);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n const item_r4 = ctx_r4.$implicit;\n const rowIndex_r6 = ctx_r4.index;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"logicalRowIndex\", ctx_r0.logicalRowIndex(item_r4.rowIndex))(\"logicalSlaveRow\", ctx_r0.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r0.columns.length)(\"logicalSlaveCellsCount\", ctx_r0.unlockedColumnsCount(item_r4))(\"totalColumns\", ctx_r0.totalColumns);\n i0.ɵɵattribute(\"data-treelist-view-index\", rowIndex_r6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r0.footerColumns)(\"ngForTrackBy\", ctx_r0.trackByColumns);\n }\n}\nfunction TableBodyComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, TableBodyComponent_ng_container_1_tr_1_Template, 2, 26, \"tr\", 7)(2, TableBodyComponent_ng_container_1_tr_2_Template, 2, 8, \"tr\", 8);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const item_r4 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", item_r4.type === \"data\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", item_r4.type === \"footer\" && ctx_r0.hasFooter);\n }\n}\nconst _c9 = [\"kendoTreeListColGroup\", \"\"];\nfunction ColGroupComponent_col_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"col\");\n }\n if (rf & 2) {\n const column_r1 = ctx.$implicit;\n i0.ɵɵstyleProp(\"width\", column_r1.width, \"px\");\n }\n}\nconst _c10 = [\"container\"];\nconst _c11 = [\"table\"];\nconst _c12 = [\"lockedContainer\"];\nconst _c13 = [\"lockedTable\"];\nconst _c14 = (a0, a1, a2, a3) => ({\n keydown: a0,\n scroll: a1,\n mousewheel: a2,\n DOMMouseScroll: a3\n});\nfunction ListComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14, 2)(2, \"div\", 6)(3, \"table\", 15, 3);\n i0.ɵɵelement(5, \"colgroup\", 8)(6, \"tbody\", 16);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(7, \"kendo-resize-sensor\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"div\", 11);\n i0.ɵɵelement(9, \"div\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"width\", ctx_r0.lockedWidth, \"px\");\n i0.ɵɵproperty(\"kendoEventsOutsideAngular\", i0.ɵɵpureFunction4(21, _c14, ctx_r0.lockedKeydown, ctx_r0.lockedScroll, ctx_r0.lockedMousewheel, ctx_r0.lockedMousewheel))(\"scope\", ctx_r0);\n i0.ɵɵadvance(3);\n i0.ɵɵstyleProp(\"width\", ctx_r0.lockedWidth, \"px\");\n i0.ɵɵproperty(\"locked\", true);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"columns\", ctx_r0.lockedLeafColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"isLocked\", true)(\"view\", ctx_r0.view)(\"noRecordsText\", \"\")(\"columns\", ctx_r0.lockedLeafColumns)(\"totalColumnsCount\", ctx_r0.leafColumns.length)(\"totalColumns\", ctx_r0.columns)(\"skip\", ctx_r0.skip)(\"trackBy\", ctx_r0.trackBy)(\"filterable\", ctx_r0.filterable)(\"rowClass\", ctx_r0.rowClass)(\"expandIcons\", ctx_r0.expandIcons);\n i0.ɵɵadvance(3);\n i0.ɵɵstyleProp(\"height\", ctx_r0.totalHeight, \"px\");\n }\n}\nfunction ListComponent_kendo_resize_sensor_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-resize-sensor\");\n }\n}\nfunction ListComponent_kendo_resize_sensor_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-resize-sensor\");\n }\n}\nfunction ListComponent_div_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 17);\n i0.ɵɵelement(1, \"div\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx_r0.totalWidth, \"px\");\n }\n}\nfunction ListComponent_div_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 18);\n }\n}\nconst _c15 = [\"dropdown\"];\nconst _c16 = () => ({\n width: \"auto\"\n});\nfunction FilterCellOperatorsComponent_kendo_dropdownlist_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3, 0);\n i0.ɵɵlistener(\"valueChange\", function FilterCellOperatorsComponent_kendo_dropdownlist_0_Template_kendo_dropdownlist_valueChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onChange($event));\n })(\"keydown\", function FilterCellOperatorsComponent_kendo_dropdownlist_0_Template_kendo_dropdownlist_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.dropdownKeydown($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", ctx_r1.operators)(\"value\", ctx_r1.value)(\"svgIcon\", ctx_r1.filterSVGIcon)(\"valuePrimitive\", true)(\"popupSettings\", i0.ɵɵpureFunction0(6, _c16));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.column && ctx_r1.columnLabel);\n }\n}\nfunction FilterCellOperatorsComponent_button_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 4);\n i0.ɵɵlistener(\"click\", function FilterCellOperatorsComponent_button_1_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.clearClick());\n })(\"keydown\", function FilterCellOperatorsComponent_button_1_Template_button_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.clearKeydown($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"svgIcon\", ctx_r1.filterClearIcon)(\"title\", ctx_r1.clearText);\n }\n}\nconst _c17 = [\"*\"];\nconst _c18 = [\"kendoTreeListFilterCell\", \"\"];\nfunction FilterCellComponent_ng_container_0_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementContainer(1, 3);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"column\", ctx_r0.column)(\"filter\", ctx_r0.filter);\n }\n}\nfunction FilterCellComponent_ng_container_0_ng_container_3_1_ng_template_0_Template(rf, ctx) {}\nfunction FilterCellComponent_ng_container_0_ng_container_3_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FilterCellComponent_ng_container_0_ng_container_3_1_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.column.filterCellTemplateRef)(\"ngTemplateOutletContext\", ctx_r0.templateContext);\n }\n}\nfunction FilterCellComponent_ng_container_0_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, FilterCellComponent_ng_container_0_ng_container_3_1_Template, 1, 2, null, 0);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.column.filterCellTemplateRef);\n }\n}\nfunction FilterCellComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0)(1, 1);\n i0.ɵɵtemplate(2, FilterCellComponent_ng_container_0_ng_container_2_Template, 2, 2, \"ng-container\", 2)(3, FilterCellComponent_ng_container_0_ng_container_3_Template, 2, 1, \"ng-container\", 2);\n i0.ɵɵelementContainerEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitch\", ctx_r0.hasTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n }\n}\nconst _c19 = [\"kendoTreeListFilterRow\", \"\"];\nfunction FilterRowComponent_td_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"td\", 1);\n }\n if (rf & 2) {\n const column_r1 = ctx.$implicit;\n const columnIndex_r2 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"column\", column_r1)(\"filter\", ctx_r2.filter)(\"logicalRowIndex\", ctx_r2.logicalRowIndex)(\"logicalColIndex\", ctx_r2.lockedColumnsCount + columnIndex_r2)(\"column\", ctx_r2.getColumnComponent(column_r1))(\"colIndex\", columnIndex_r2);\n i0.ɵɵattribute(\"aria-label\", ctx_r2.filterLabel);\n }\n}\nfunction StringFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n i0.ɵɵlistener(\"valueChange\", function StringFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.logicChange($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", ctx_r1.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r1.filter == null ? null : ctx_r1.filter.logic);\n }\n}\nfunction StringFilterMenuComponent_kendo_treelist_string_filter_menu_input_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-string-filter-menu-input\", 4);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter)(\"placeholder\", ctx_r1.extraPlaceholder);\n }\n}\nfunction NumericFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n i0.ɵɵlistener(\"valueChange\", function NumericFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.logicChange($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", ctx_r1.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r1.filter == null ? null : ctx_r1.filter.logic);\n }\n}\nfunction NumericFilterMenuComponent_kendo_treelist_numeric_filter_menu_input_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-numeric-filter-menu-input\", 4);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter)(\"format\", ctx_r1.format)(\"decimals\", ctx_r1.decimals)(\"spinners\", ctx_r1.spinners)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"step\", ctx_r1.step)(\"placeholder\", ctx_r1.extraPlaceholder);\n }\n}\nfunction DateFilterMenuComponent_kendo_dropdownlist_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-dropdownlist\", 3);\n i0.ɵɵlistener(\"valueChange\", function DateFilterMenuComponent_kendo_dropdownlist_1_Template_kendo_dropdownlist_valueChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.logicChange($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"data\", ctx_r1.logicOperators)(\"valuePrimitive\", true)(\"value\", ctx_r1.filter == null ? null : ctx_r1.filter.logic);\n }\n}\nfunction DateFilterMenuComponent_kendo_treelist_date_filter_menu_input_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-date-filter-menu-input\", 4);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"operators\", ctx_r1.operators)(\"currentFilter\", ctx_r1.secondFilter)(\"filterService\", ctx_r1.filterService)(\"column\", ctx_r1.column)(\"filter\", ctx_r1.filter)(\"activeView\", ctx_r1.activeView)(\"bottomView\", ctx_r1.bottomView)(\"topView\", ctx_r1.topView)(\"format\", ctx_r1.format)(\"formatPlaceholder\", ctx_r1.formatPlaceholder)(\"placeholder\", ctx_r1.placeholder)(\"min\", ctx_r1.min)(\"max\", ctx_r1.max)(\"weekNumber\", ctx_r1.weekNumber);\n }\n}\nconst _c20 = [\"inputElem\"];\nfunction BooleanFilterMenuComponent_li_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\")(1, \"input\", 3, 0);\n i0.ɵɵlistener(\"change\", function BooleanFilterMenuComponent_li_1_Template_input_change_1_listener() {\n const item_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onChange(item_r2.value));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"label\", 4);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"columnLabel\", ctx_r2.columnLabel)(\"name\", ctx_r2.idPrefix)(\"checked\", ctx_r2.isSelected(item_r2.value));\n i0.ɵɵattribute(\"id\", ctx_r2.radioId(item_r2.value));\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"for\", ctx_r2.radioId(item_r2.value));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(item_r2.text);\n }\n}\nfunction FilterMenuContainerComponent_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementContainer(1, 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"filterService\", ctx_r0.childService)(\"column\", ctx_r0.column)(\"filter\", ctx_r0.childFilter);\n }\n}\nfunction FilterMenuContainerComponent_ng_container_4_1_ng_template_0_Template(rf, ctx) {}\nfunction FilterMenuContainerComponent_ng_container_4_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FilterMenuContainerComponent_ng_container_4_1_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.column.filterMenuTemplateRef)(\"ngTemplateOutletContext\", ctx_r0.templateContext);\n }\n}\nfunction FilterMenuContainerComponent_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, FilterMenuContainerComponent_ng_container_4_1_Template, 1, 2, null, 8);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.column.filterMenuTemplateRef);\n }\n}\nfunction ColumnMenuItemComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵelementContainer(1, 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const content_r1 = i0.ɵɵreference(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", content_r1);\n }\n}\nfunction ColumnMenuItemComponent_ng_template_1_span_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 9);\n }\n}\nfunction ColumnMenuItemComponent_ng_template_1_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵelement(1, \"kendo-icon-wrapper\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", ctx_r2.expandedIcon)(\"svgIcon\", ctx_r2.expandedSvgIcon);\n }\n}\nfunction ColumnMenuItemComponent_ng_template_1_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 11);\n i0.ɵɵelementContainer(1, 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleProp(\"overflow\", \"hidden\");\n i0.ɵɵproperty(\"@state\", ctx_r2.contentState);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.contentTemplate.templateRef);\n }\n}\nfunction ColumnMenuItemComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵlistener(\"click\", function ColumnMenuItemComponent_ng_template_1_Template_div_click_0_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onClick($event));\n });\n i0.ɵɵelement(1, \"kendo-icon-wrapper\", 5);\n i0.ɵɵtext(2);\n i0.ɵɵtemplate(3, ColumnMenuItemComponent_ng_template_1_span_3_Template, 1, 0, \"span\", 6)(4, ColumnMenuItemComponent_ng_template_1_span_4_Template, 2, 2, \"span\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, ColumnMenuItemComponent_ng_template_1_div_5_Template, 2, 4, \"div\", 8);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"k-selected\", ctx_r2.selected)(\"k-disabled\", ctx_r2.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", ctx_r2.icon)(\"svgIcon\", ctx_r2.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.text, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.contentTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.contentTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.contentTemplate);\n }\n}\nfunction ColumnMenuFilterComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-container\", 2);\n i0.ɵɵlistener(\"close\", function ColumnMenuFilterComponent_ng_template_1_Template_kendo_treelist_filter_menu_container_close_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.close());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"column\", ctx_r1.service.column)(\"filter\", ctx_r1.service.filter)(\"actionsClass\", ctx_r1.actionsClass);\n }\n}\nfunction ColumnListComponent_label_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"label\", 3);\n i0.ɵɵelement(1, \"input\", 4);\n i0.ɵɵelementStart(2, \"span\", 5);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = ctx.$implicit;\n const index_r2 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", !column_r1.hidden)(\"disabled\", ctx_r2.isDisabled(column_r1));\n i0.ɵɵattribute(\"data-index\", index_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(column_r1.displayTitle);\n }\n}\nfunction ColumnListComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 6)(1, \"button\", 7);\n i0.ɵɵlistener(\"click\", function ColumnListComponent_div_2_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.cancelChanges());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"button\", 8);\n i0.ɵɵlistener(\"click\", function ColumnListComponent_div_2_Template_button_click_3_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.applyChanges());\n });\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r2.actionsClass);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.resetText, \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.applyText, \" \");\n }\n}\nfunction ColumnMenuChooserComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-treelist-columnlist\", 2);\n i0.ɵɵlistener(\"apply\", function ColumnMenuChooserComponent_ng_template_1_Template_kendo_treelist_columnlist_apply_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onApply($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"applyText\", ctx_r1.localization.get(\"columnsApply\"))(\"resetText\", ctx_r1.localization.get(\"columnsReset\"))(\"columns\", ctx_r1.columns)(\"autoSync\", false)(\"allowHideAll\", false)(\"actionsClass\", ctx_r1.actionsClass);\n }\n}\nconst _c21 = a0 => ({\n \"k-active\": a0\n});\nconst _c22 = (a0, a1) => ({\n service: a0,\n column: a1\n});\nfunction ColumnMenuComponent_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 5);\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n const defaultTemplate_r5 = i0.ɵɵreference(6);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.column.columnMenuTemplateRef || ctx_r3.columnMenuTemplate || defaultTemplate_r5)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c22, ctx_r3.service, ctx_r3.column));\n }\n}\nfunction ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_sort_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-columnmenu-sort\", 8);\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"service\", ctx_r3.service);\n }\n}\nfunction ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_lock_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-columnmenu-lock\", 8);\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"service\", ctx_r3.service);\n }\n}\nfunction ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_chooser_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-chooser\", 9);\n i0.ɵɵlistener(\"expand\", function ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_chooser_2_Template_kendo_treelist_columnmenu_chooser_expand_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r3 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r3.onColumnsExpand());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"service\", ctx_r3.service)(\"expanded\", ctx_r3.expandedColumns);\n }\n}\nfunction ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_filter_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-filter\", 9);\n i0.ɵɵlistener(\"expand\", function ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_filter_3_Template_kendo_treelist_columnmenu_filter_expand_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r3 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r3.onFilterExpand());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"service\", ctx_r3.service)(\"expanded\", ctx_r3.expandedFilter);\n }\n}\nfunction ColumnMenuComponent_ng_template_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_sort_0_Template, 1, 1, \"kendo-treelist-columnmenu-sort\", 6)(1, ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_lock_1_Template, 1, 1, \"kendo-treelist-columnmenu-lock\", 6)(2, ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_chooser_2_Template, 1, 2, \"kendo-treelist-columnmenu-chooser\", 7)(3, ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_filter_3_Template, 1, 2, \"kendo-treelist-columnmenu-filter\", 7);\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.hasSort);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.hasLock);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.hasColumnChooser);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.hasFilter);\n }\n}\nfunction FilterMenuComponent_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-container\", 4);\n i0.ɵɵlistener(\"close\", function FilterMenuComponent_ng_template_3_Template_kendo_treelist_filter_menu_container_close_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.close());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"column\", ctx_r4.column)(\"filter\", ctx_r4.filter);\n }\n}\nconst _c23 = [\"kendoTreeListHeader\", \"\"];\nconst _c24 = (a0, a1, a2, a3) => ({\n field: a0,\n type: \"column\",\n column: a1,\n hint: a2,\n lastColumn: a3\n});\nconst _c25 = (a0, a1, a2, a3) => ({\n templateRef: a0,\n columnIndex: a1,\n column: a2,\n $implicit: a3\n});\nconst _c26 = (a0, a1, a2) => ({\n type: \"columnGroup\",\n column: a0,\n hint: a1,\n lastColumn: a2\n});\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_filter_menu_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-filter-menu\", 13);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(3).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"column\", ctx_r2.getColumnComponent(column_r2))(\"filter\", ctx_r2.filter);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_column_menu_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-column-menu\", 14);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(3).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r2.columnMenuSettings)(\"column\", column_r2)(\"columnMenuTemplate\", ctx_r2.columnMenuTemplate)(\"sort\", ctx_r2.sort)(\"filter\", ctx_r2.filter)(\"sortable\", ctx_r2.sortable);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_2_Template(rf, ctx) {}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(3).$implicit;\n i0.ɵɵtextInterpolate(column_r2.displayTitle);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_filter_menu_0_Template, 1, 2, \"kendo-treelist-filter-menu\", 10)(1, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_column_menu_1_Template, 1, 7, \"kendo-treelist-column-menu\", 11)(2, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_2_Template, 0, 0, \"ng-template\", 12)(3, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_3_Template, 1, 1, \"ng-template\", 8);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showFilterMenu && ctx_r2.isFilterable(ctx_r2.getColumnComponent(column_r2)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showColumnMenu(column_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"templateContext\", i0.ɵɵpureFunction4(4, _c25, column_r2.headerTemplateRef, column_r2.leafIndex, column_r2, column_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !column_r2.headerTemplateRef);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_template_3_Template(rf, ctx) {}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"span\", 21);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(3).$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(column_r2.displayTitle);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_icon_wrapper_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 22);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(3).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵpropertyInterpolate1(\"name\", \"sort-\", ctx_r2.sortDescriptor(ctx_r2.getColumnComponent(column_r2).field).dir, \"-small\");\n i0.ɵɵproperty(\"svgIcon\", ctx_r2.sortDescriptor(ctx_r2.getColumnComponent(column_r2).field).dir === \"asc\" ? ctx_r2.sortAscSmallIcon : ctx_r2.sortDescSmallIcon);\n i0.ɵɵattribute(\"aria-label\", ctx_r2.sortableLabel);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_span_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 23);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(3).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.sortOrder(ctx_r2.getColumnComponent(column_r2).field));\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_filter_menu_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-filter-menu\", 13);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(3).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"column\", ctx_r2.getColumnComponent(column_r2))(\"filter\", ctx_r2.filter);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_column_menu_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-column-menu\", 14);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(3).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r2.columnMenuSettings)(\"column\", column_r2)(\"columnMenuTemplate\", ctx_r2.columnMenuTemplate)(\"sort\", ctx_r2.sort)(\"filter\", ctx_r2.filter)(\"sortable\", ctx_r2.sortable);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 15)(1, \"span\", 16, 0);\n i0.ɵɵlistener(\"click\", function HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_Template_span_click_1_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const link_r5 = i0.ɵɵreference(2);\n const column_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.sortColumn(ctx_r2.getColumnComponent(column_r2), $event, link_r5));\n });\n i0.ɵɵtemplate(3, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_template_3_Template, 0, 0, \"ng-template\", 12)(4, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_container_4_Template, 3, 1, \"ng-container\", 17);\n i0.ɵɵelementStart(5, \"span\", 18);\n i0.ɵɵtemplate(6, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_icon_wrapper_6_Template, 1, 4, \"kendo-icon-wrapper\", 19);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_span_7_Template, 2, 1, \"span\", 20);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(8, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_filter_menu_8_Template, 1, 2, \"kendo-treelist-filter-menu\", 10)(9, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_column_menu_9_Template, 1, 7, \"kendo-treelist-column-menu\", 11);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"templateContext\", i0.ɵɵpureFunction4(6, _c25, column_r2.headerTemplateRef, column_r2.leafIndex, column_r2, column_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !column_r2.headerTemplateRef);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r2.sortDescriptor(ctx_r2.getColumnComponent(column_r2).field).dir);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showSortNumbering(ctx_r2.getColumnComponent(column_r2)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showFilterMenu && ctx_r2.isFilterable(ctx_r2.getColumnComponent(column_r2)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showColumnMenu(column_r2));\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 24);\n i0.ɵɵlistener(\"click\", function HeaderComponent_tr_0_ng_template_1_th_0_ng_template_3_Template_input_click_0_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r2 = i0.ɵɵnextContext(4);\n return i0.ɵɵresetView(ctx_r2.selectAllClick($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(4);\n i0.ɵɵattribute(\"aria-label\", ctx_r2.messageFor(\"selectAllRowsCheckboxLabel\"));\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 25);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"column\", column_r2)(\"columns\", ctx_r2.columns);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"th\", 7);\n i0.ɵɵlistener(\"keydown\", function HeaderComponent_tr_0_ng_template_1_th_0_Template_th_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const column_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.onHeaderKeydown(ctx_r2.getColumnComponent(column_r2), $event));\n });\n i0.ɵɵtemplate(1, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_Template, 4, 9, \"ng-template\", 8)(2, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_Template, 10, 11, \"ng-template\", 8)(3, HeaderComponent_tr_0_ng_template_1_th_0_ng_template_3_Template, 1, 1, \"ng-template\", 8)(4, HeaderComponent_tr_0_ng_template_1_th_0_span_4_Template, 1, 2, \"span\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext();\n const column_r2 = ctx_r6.$implicit;\n const columnIndex_r8 = ctx_r6.index;\n const last_r9 = ctx_r6.last;\n const levelIndex_r10 = i0.ɵɵnextContext().index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"k-filterable\", ctx_r2.showFilterMenu && ctx_r2.isFilterable(ctx_r2.getColumnComponent(column_r2)) || ctx_r2.showColumnMenu(column_r2))(\"k-first\", ctx_r2.isFirstOnRow(ctx_r2.getColumnComponent(column_r2), columnIndex_r8));\n i0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r10)(\"logicalColIndex\", ctx_r2.logicalColumnIndex(column_r2))(\"colSpan\", column_r2.colspan)(\"rowSpan\", column_r2.rowspan(ctx_r2.totalColumnLevels))(\"enableDrag\", ctx_r2.shouldActivate(column_r2))(\"context\", i0.ɵɵpureFunction4(20, _c24, ctx_r2.getColumnComponent(column_r2).field, column_r2, column_r2.title || ctx_r2.getColumnComponent(column_r2).field, last_r9 && columnIndex_r8 === 0))(\"ngClass\", column_r2.headerClass)(\"ngStyle\", column_r2.headerStyle);\n i0.ɵɵattribute(\"aria-sort\", ctx_r2.sortState(ctx_r2.getColumnComponent(column_r2)))(\"aria-haspopup\", ctx_r2.showFilterMenu || ctx_r2.showColumnMenu(column_r2) ? \"dialog\" : undefined)(\"rowspan\", column_r2.rowspan(ctx_r2.totalColumnLevels))(\"colspan\", column_r2.colspan);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.isSortable(ctx_r2.getColumnComponent(column_r2)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSortable(ctx_r2.getColumnComponent(column_r2)));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.renderSelectAll(column_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.resizable);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_1_kendo_treelist_column_menu_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-column-menu\", 28);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"standalone\", false)(\"settings\", ctx_r2.columnMenuSettings)(\"column\", column_r2)(\"columnMenuTemplate\", ctx_r2.columnMenuTemplate);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_1_ng_template_2_Template(rf, ctx) {}\nfunction HeaderComponent_tr_0_ng_template_1_th_1_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵtextInterpolate(column_r2.displayTitle);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_1_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 25);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"column\", column_r2)(\"columns\", ctx_r2.columns);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_th_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 26);\n i0.ɵɵtemplate(1, HeaderComponent_tr_0_ng_template_1_th_1_kendo_treelist_column_menu_1_Template, 1, 4, \"kendo-treelist-column-menu\", 27)(2, HeaderComponent_tr_0_ng_template_1_th_1_ng_template_2_Template, 0, 0, \"ng-template\", 12)(3, HeaderComponent_tr_0_ng_template_1_th_1_ng_template_3_Template, 1, 1, \"ng-template\", 8)(4, HeaderComponent_tr_0_ng_template_1_th_1_span_4_Template, 1, 2, \"span\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext();\n const column_r2 = ctx_r6.$implicit;\n const columnIndex_r8 = ctx_r6.index;\n const last_r9 = ctx_r6.last;\n const levelIndex_r10 = i0.ɵɵnextContext().index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"k-first\", ctx_r2.isFirstOnRow(ctx_r2.getColumnComponent(column_r2), columnIndex_r8))(\"k-filterable\", ctx_r2.showColumnMenu(column_r2));\n i0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r10)(\"logicalColIndex\", ctx_r2.logicalColumnIndex(column_r2))(\"rowSpan\", column_r2.rowspan(ctx_r2.totalColumnLevels))(\"colSpan\", column_r2.colspan)(\"enableDrag\", ctx_r2.shouldActivate(column_r2))(\"context\", i0.ɵɵpureFunction3(20, _c26, column_r2, column_r2.title, last_r9 && columnIndex_r8 === 0))(\"ngClass\", column_r2.headerClass)(\"ngStyle\", column_r2.headerStyle);\n i0.ɵɵattribute(\"aria-haspopup\", ctx_r2.showFilterMenu || ctx_r2.showColumnMenu(column_r2) ? \"dialog\" : undefined)(\"aria-expanded\", ctx_r2.showColumnMenu(column_r2))(\"rowspan\", column_r2.rowspan(ctx_r2.totalColumnLevels))(\"colspan\", column_r2.colspan);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.showColumnMenu(column_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"templateContext\", i0.ɵɵpureFunction4(24, _c25, column_r2.headerTemplateRef, ctx_r2.lockedColumnsCount + columnIndex_r8, column_r2, column_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !column_r2.headerTemplateRef);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.resizable);\n }\n}\nfunction HeaderComponent_tr_0_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, HeaderComponent_tr_0_ng_template_1_th_0_Template, 5, 25, \"th\", 5)(1, HeaderComponent_tr_0_ng_template_1_th_1_Template, 5, 29, \"th\", 6);\n }\n if (rf & 2) {\n const column_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.isColumnGroupComponent(column_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isColumnGroupComponent(column_r2));\n }\n}\nfunction HeaderComponent_tr_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"tr\", 3);\n i0.ɵɵtemplate(1, HeaderComponent_tr_0_ng_template_1_Template, 2, 2, \"ng-template\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const levelIndex_r10 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"logicalRowIndex\", levelIndex_r10)(\"logicalSlaveRow\", ctx_r2.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r2.columns.length)(\"totalColumns\", ctx_r2.totalColumns)(\"logicalSlaveCellsCount\", ctx_r2.unlockedColumnsCount);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.columnsForLevel(levelIndex_r10))(\"ngForTrackBy\", ctx_r2.trackByIndex);\n }\n}\nfunction HeaderComponent_tr_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"tr\", 29);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"columns\", ctx_r2.leafColumns)(\"filter\", ctx_r2.filter)(\"lockedColumnsCount\", ctx_r2.lockedColumnsCount)(\"totalColumns\", ctx_r2.totalColumns)(\"logicalRowIndex\", ctx_r2.totalColumnLevels + 1)(\"logicalSlaveRow\", ctx_r2.lockedColumnsCount > 0)(\"logicalCellsCount\", ctx_r2.columns.length)(\"logicalSlaveCellsCount\", ctx_r2.unlockedColumnsCount);\n }\n}\nfunction ToolbarComponent_0_ng_template_0_Template(rf, ctx) {}\nfunction ToolbarComponent_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ToolbarComponent_0_ng_template_0_Template, 0, 0, \"ng-template\", 1);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.toolbarTemplateRef)(\"ngTemplateOutletContext\", ctx_r0.context);\n }\n}\nconst _c27 = [\"lockedHeader\"];\nconst _c28 = [\"header\"];\nconst _c29 = [\"ariaRoot\"];\nconst _c30 = [\"footer\"];\nconst _c31 = a0 => ({\n hintTemplate: a0\n});\nfunction TreeListComponent_kendo_treelist_toolbar_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-toolbar\", 11);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"navigable\", ctx_r1.navigable);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.messageFor(\"topToolbarLabel\"))(\"aria-controls\", ctx_r1.ariaRootId);\n }\n}\nfunction TreeListComponent_ng_template_5_div_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 21, 3)(2, \"table\", 22);\n i0.ɵɵelement(3, \"colgroup\", 18)(4, \"thead\", 23);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵstyleProp(\"width\", ctx_r1.lockedWidth, \"px\");\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"width\", ctx_r1.lockedWidth, \"px\");\n i0.ɵɵproperty(\"locked\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"columns\", ctx_r1.lockedLeafColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"resizable\", ctx_r1.resizable)(\"scrollable\", true)(\"columns\", ctx_r1.lockedColumns)(\"totalColumnLevels\", ctx_r1.totalColumnLevels)(\"sort\", ctx_r1.sort)(\"filter\", ctx_r1.filter)(\"filterable\", ctx_r1.filterable)(\"reorderable\", ctx_r1.reorderable)(\"sortable\", ctx_r1.sortable)(\"columnMenu\", ctx_r1.columnMenuOptions)(\"columnMenuTemplate\", ctx_r1.columnMenuTemplate)(\"totalColumnsCount\", ctx_r1.leafColumns.length)(\"totalColumns\", ctx_r1.columnsContainer);\n }\n}\nfunction TreeListComponent_ng_template_5_div_0_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 24);\n i0.ɵɵelement(1, \"div\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx_r1.columnsContainer.unlockedWidth, \"px\");\n }\n}\nfunction TreeListComponent_ng_template_5_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵtemplate(1, TreeListComponent_ng_template_5_div_0_div_1_Template, 5, 19, \"div\", 15);\n i0.ɵɵelementStart(2, \"div\", 16, 2)(4, \"table\", 17);\n i0.ɵɵelement(5, \"colgroup\", 18)(6, \"thead\", 19);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, TreeListComponent_ng_template_5_div_0_div_7_Template, 2, 2, \"div\", 20);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleProp(\"padding\", ctx_r1.headerPadding);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isLocked);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"kendoTreeListResizableContainer\", ctx_r1.lockedLeafColumns.length > 0)(\"lockedWidth\", ctx_r1.lockedWidth + ctx_r1.scrollbarWidth + 2);\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"width\", ctx_r1.nonLockedWidth, \"px\");\n i0.ɵɵproperty(\"virtualColumns\", ctx_r1.virtualColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"columns\", ctx_r1.headerLeafColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"resizable\", ctx_r1.resizable)(\"scrollable\", true)(\"columns\", ctx_r1.headerColumns)(\"totalColumnLevels\", ctx_r1.totalColumnLevels)(\"sort\", ctx_r1.sort)(\"filter\", ctx_r1.filter)(\"filterable\", ctx_r1.filterable)(\"reorderable\", ctx_r1.reorderable)(\"sortable\", ctx_r1.sortable)(\"columnMenu\", ctx_r1.columnMenuOptions)(\"columnMenuTemplate\", ctx_r1.columnMenuTemplate)(\"lockedColumnsCount\", ctx_r1.lockedLeafColumns.length)(\"totalColumnsCount\", ctx_r1.leafColumns.length)(\"totalColumns\", ctx_r1.columnsContainer);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.virtualColumns);\n }\n}\nfunction TreeListComponent_ng_template_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵtemplate(0, TreeListComponent_ng_template_5_div_0_Template, 8, 24, \"div\", 12);\n i0.ɵɵelementStart(1, \"kendo-treelist-list\", 13);\n i0.ɵɵlistener(\"pageChange\", function TreeListComponent_ng_template_5_Template_kendo_treelist_list_pageChange_1_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.notifyPageChange(\"list\", $event));\n })(\"scrollBottom\", function TreeListComponent_ng_template_5_Template_kendo_treelist_list_scrollBottom_1_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.notifyScrollBottom());\n })(\"contentScroll\", function TreeListComponent_ng_template_5_Template_kendo_treelist_list_contentScroll_1_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.contentScroll.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.hideHeader);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"view\", ctx_r1.view)(\"loading\", ctx_r1.showLoading)(\"rowHeight\", ctx_r1.rowHeight)(\"total\", ctx_r1.totalCount)(\"take\", ctx_r1.pageSize)(\"skip\", ctx_r1.skip)(\"trackBy\", ctx_r1.trackBy)(\"columns\", ctx_r1.columnsContainer)(\"filterable\", ctx_r1.filterable)(\"noRecordsTemplate\", ctx_r1.noRecordsTemplate)(\"rowClass\", ctx_r1.rowClass)(\"isVirtual\", ctx_r1.isVirtual)(\"virtualColumns\", ctx_r1.virtualColumns)(\"expandIcons\", ctx_r1.expandIcons)(\"enableDrag\", ctx_r1.marqueeSelection);\n }\n}\nfunction TreeListComponent_ng_template_6_thead_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"thead\", 29);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"resizable\", ctx_r1.resizable)(\"scrollable\", false)(\"columns\", ctx_r1.visibleColumns)(\"totalColumnLevels\", ctx_r1.totalColumnLevels)(\"reorderable\", ctx_r1.reorderable)(\"sort\", ctx_r1.sort)(\"sortable\", ctx_r1.sortable)(\"filter\", ctx_r1.filter)(\"filterable\", ctx_r1.filterable)(\"columnMenu\", ctx_r1.columnMenuOptions)(\"columnMenuTemplate\", ctx_r1.columnMenuTemplate)(\"totalColumns\", ctx_r1.columnsContainer);\n }\n}\nfunction TreeListComponent_ng_template_6_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 30);\n }\n}\nfunction TreeListComponent_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"table\", 25);\n i0.ɵɵelement(1, \"colgroup\", 18);\n i0.ɵɵtemplate(2, TreeListComponent_ng_template_6_thead_2_Template, 1, 12, \"thead\", 26);\n i0.ɵɵelement(3, \"tbody\", 27);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, TreeListComponent_ng_template_6_div_4_Template, 1, 0, \"div\", 28);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"table-layout\", ctx_r1.resizable ? \"fixed\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"columns\", ctx_r1.leafColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.hideHeader);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"view\", ctx_r1.view)(\"skip\", ctx_r1.skip)(\"columns\", ctx_r1.leafColumns)(\"filterable\", ctx_r1.filterable)(\"noRecordsTemplate\", ctx_r1.noRecordsTemplate)(\"trackBy\", ctx_r1.trackBy)(\"rowClass\", ctx_r1.rowClass)(\"expandIcons\", ctx_r1.expandIcons)(\"enableDrag\", ctx_r1.marqueeSelection);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showLoading);\n }\n}\nfunction TreeListComponent_kendo_treelist_pager_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-treelist-pager\", 31);\n i0.ɵɵlistener(\"pageChange\", function TreeListComponent_kendo_treelist_pager_7_Template_kendo_treelist_pager_pageChange_0_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.notifyPageChange(\"pager\", $event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"template\", ctx_r1.pagerTemplate)(\"pageSize\", ctx_r1.pageSize)(\"total\", ctx_r1.view.totalVisible)(\"allCount\", ctx_r1.view.total)(\"skip\", ctx_r1.skip)(\"navigable\", ctx_r1.navigable)(\"options\", ctx_r1.pageable);\n i0.ɵɵattribute(\"aria-controls\", ctx_r1.ariaRootId);\n }\n}\nfunction TreeListComponent_kendo_treelist_toolbar_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-toolbar\", 32);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"navigable\", ctx_r1.navigable);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.messageFor(\"bottomToolbarLabel\"))(\"aria-controls\", ctx_r1.ariaRootId);\n }\n}\nfunction TreeListComponent_ng_template_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 33);\n i0.ɵɵtext(1);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r1.getHintSettings(\"hintIcon\"))(\"svgIcon\", ctx_r1.getHintSettings(\"hintSVGIcon\"));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.hintText, \" \");\n }\n}\nconst _c32 = [\"kendoTreeListBaseCommand\", \"\"];\nfunction BaseCommandDirective_kendo_icon_wrapper_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r0.icon)(\"svgIcon\", ctx_r0.svgIcon);\n }\n}\nfunction BaseCommandDirective_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelement(1, \"img\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", ctx_r0.imageUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction BaseCommandDirective_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n }\n}\nconst _c33 = [\"kendoTreeListEditCommand\", \"\"];\nfunction EditCommandDirective_kendo_icon_wrapper_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r0.icon)(\"svgIcon\", ctx_r0.svgIcon);\n }\n}\nfunction EditCommandDirective_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelement(1, \"img\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", ctx_r0.imageUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction EditCommandDirective_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n }\n}\nconst _c34 = [\"kendoTreeListCancelCommand\", \"\"];\nfunction CancelCommandDirective_kendo_icon_wrapper_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r0.icon)(\"svgIcon\", ctx_r0.svgIcon);\n }\n}\nfunction CancelCommandDirective_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelement(1, \"img\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", ctx_r0.imageUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction CancelCommandDirective_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n }\n}\nconst _c35 = [\"kendoTreeListSaveCommand\", \"\"];\nfunction SaveCommandDirective_kendo_icon_wrapper_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r0.icon)(\"svgIcon\", ctx_r0.svgIcon);\n }\n}\nfunction SaveCommandDirective_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelement(1, \"img\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", ctx_r0.imageUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction SaveCommandDirective_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n }\n}\nconst _c36 = [\"kendoTreeListRemoveCommand\", \"\"];\nfunction RemoveCommandDirective_kendo_icon_wrapper_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r0.icon)(\"svgIcon\", ctx_r0.svgIcon);\n }\n}\nfunction RemoveCommandDirective_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelement(1, \"img\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", ctx_r0.imageUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction RemoveCommandDirective_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n }\n}\nconst _c37 = [\"kendoTreeListAddCommand\", \"\"];\nfunction AddCommandDirective_kendo_icon_wrapper_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r0.icon)(\"svgIcon\", ctx_r0.svgIcon);\n }\n}\nfunction AddCommandDirective_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelement(1, \"img\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", ctx_r0.imageUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction AddCommandDirective_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n }\n}\nfunction ColumnChooserComponent_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"kendo-treelist-columnlist\", 4);\n i0.ɵɵlistener(\"apply\", function ColumnChooserComponent_ng_template_2_Template_kendo_treelist_columnlist_apply_2_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.onApply($event));\n })(\"columnChange\", function ColumnChooserComponent_ng_template_2_Template_kendo_treelist_columnlist_columnChange_2_listener($event) {\n i0.ɵɵrestoreView(_r4);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.onChange($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r4.localization.get(\"columns\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"columns\", ctx_r4.columns)(\"applyText\", ctx_r4.localization.get(\"columnsApply\"))(\"resetText\", ctx_r4.localization.get(\"columnsReset\"))(\"autoSync\", ctx_r4.autoSync)(\"allowHideAll\", ctx_r4.allowHideAll);\n }\n}\nconst _c38 = [\"kendoTreeListExcelCommand\", \"\"];\nfunction ExcelCommandDirective_kendo_icon_wrapper_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r0.icon)(\"svgIcon\", ctx_r0.svgIcon);\n }\n}\nfunction ExcelCommandDirective_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelement(1, \"img\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", ctx_r0.imageUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction ExcelCommandDirective_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n }\n}\nconst _c39 = [\"kendoTreeListPDFCommand\", \"\"];\nfunction PDFCommandDirective_kendo_icon_wrapper_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-icon-wrapper\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"name\", ctx_r0.icon)(\"svgIcon\", ctx_r0.svgIcon);\n }\n}\nfunction PDFCommandDirective_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵelement(1, \"img\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", ctx_r0.imageUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction PDFCommandDirective_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", ctx_r0.iconClass);\n }\n}\nconst packageMetadata = {\n name: '@progress/kendo-angular-treelist',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1728372541,\n version: '16.11.0',\n licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'\n};\n\n/**\n * Represents the column cell template of the TreeList ([more information and example]({% slug templates_columns_treelist %}#toc-cell-template)).\n * Helps to customize the content of the cells. To define the cell template, nest an `` tag\n * with the `kendoTreeListCellTemplate` directive inside a `` tag.\n *\n * The template context is set to the current data item and the following additional fields are passed:\n * - `columnIndex`—The current column index. Use it as an alias for a template variable by utilizing the `let-columnIndex=\"columnIndex\"` syntax.\n * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` syntax.\n * - `dataItem`—The current data item. Represents the default context that will be assigned to any template variable which utilizes the `let-x` syntax—for example, `let-dataItem`.\n * - `cellContext`—An object used to pass context information to built-in directives.\n * - `hasChildren`—Specifies if the item has children.\n * - `isExpanded`—Specifies if the item is expanded.\n * - `level`—The hierarchy level of the item.\n * - `loading`—Specifies if the item children are currently loading.\n * - `rowIndex`—The current row index. Use it as an alias for a template variable by utilizing the `let-rowIndex=\"rowIndex\"` syntax.\n *\n * @example\n * ```html\n * \n * \n * \n * Data Row: {{rowIndex}}\n * \n * \n * \n *```\n */\nlet CellTemplateDirective = /*#__PURE__*/(() => {\n class CellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n CellTemplateDirective.ɵfac = function CellTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CellTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n CellTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CellTemplateDirective,\n selectors: [[\"\", \"kendoTreeListCellTemplate\", \"\"]],\n standalone: true\n });\n return CellTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column edit-cell template of the TreeList ([see example]({% slug editing_template_forms_treelist %})).\n * Helps to customize the content of the edited cells. To define the cell template, nest an ``\n * tag with the `kendoTreeListEditTemplate` directive inside a `` tag.\n *\n * The template context contains the following fields:\n * - `column`—The current column instance.\n * - `dataItem`—The current data item.\n * - `cellContext`—An object used to pass context information to built-in directives.\n * - `formGroup`—The current [`FormGroup`](link:site.data.urls.angular['formgroupapi']). If you use the TreeList inside [Template-Driven Forms](link:site.data.urls.angular['forms']), `formGroup` will be `undefined`.\n * - `isNew`—The state of the current item.\n * - `rowIndex`—The current row index. If inside a new item row, `rowIndex` is `-1`.\n *\n * @example\n * ```html\n * \n * \n * \n * {{rowIndex}}\n * \n * \n * \n * ```\n */\nlet EditTemplateDirective = /*#__PURE__*/(() => {\n class EditTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n EditTemplateDirective.ɵfac = function EditTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EditTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n EditTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: EditTemplateDirective,\n selectors: [[\"\", \"kendoTreeListEditTemplate\", \"\"]],\n standalone: true\n });\n return EditTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the template for the column menu in the TreeList. Provides an option for\n * customizing the content of the column menu for all or for specific columns.\n * To define the content template, nest an `` tag with the\n * `kendoTreeListColumnMenuTemplate` directive inside the `kendo-treelist` or the `` component.\n *\n * The template context is passes through the following fields:\n * - `service`—Represents the [ColumnMenuService]({% slug api_treelist_columnmenuservice %}).\n * - `column`—Represents the TreeList column.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet ColumnMenuTemplateDirective = /*#__PURE__*/(() => {\n class ColumnMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n ColumnMenuTemplateDirective.ɵfac = function ColumnMenuTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n ColumnMenuTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ColumnMenuTemplateDirective,\n selectors: [[\"\", \"kendoTreeListColumnMenuTemplate\", \"\"]],\n standalone: true\n });\n return ColumnMenuTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet OptionChangesService = /*#__PURE__*/(() => {\n class OptionChangesService {\n constructor() {\n this.columns = new EventEmitter();\n this.options = new EventEmitter();\n }\n optionChanged() {\n this.options.emit();\n }\n columnChanged() {\n this.columns.emit();\n }\n }\n OptionChangesService.ɵfac = function OptionChangesService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || OptionChangesService)();\n };\n OptionChangesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OptionChangesService,\n factory: OptionChangesService.ɵfac\n });\n return OptionChangesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column footer cell template of the TreeList\n * ([more information and example]({% slug templates_columns_treelist %}#toc-footer-template)).\n * Helps to customize the table footer cell for the column.\n * To define a footer template, nest an `` tag with the\n * `kendoTreeListFooterTemplate` directive inside the `` tag.\n *\n * The template context is set to the aggregate values and the following additional fields are passed:\n * * `aggregates`—The aggregates for the level items.\n * * `column`—Defines an instance of the [`ColumnComponent`]({% slug api_treelist_columncomponent %}) option.\n * * `columnIndex`—Defines the current column index.\n * * `field`—The name of the column field, if set.\n * * `items`—The data items on this level.\n * * `parentItem`—The parent data item; `null` for root level items.\n *\n * @example\n * ```html\n * \n * \n * {{ aggregates.name.count }}\n * \n * \n * ```\n */\nlet FooterTemplateDirective = /*#__PURE__*/(() => {\n class FooterTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n FooterTemplateDirective.ɵfac = function FooterTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FooterTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n FooterTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FooterTemplateDirective,\n selectors: [[\"\", \"kendoTreeListFooterTemplate\", \"\"]],\n standalone: true\n });\n return FooterTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column header cell template of the TreeList\n * ([more information and example]({% slug templates_columns_treelist %}#toc-header-template)).\n * Helps to customize the table header cell for the column.\n * To define a header template, nest an `` tag with the\n * [`kendoTreeListHeaderTemplate`]({% slug api_treelist_headertemplatedirective %}) directive inside the `` tag.\n *\n * The template context is set to the current column and then the following additional fields are passed:\n * * `column`—Defines an instance of the [`ColumnComponent`]({% slug api_treelist_columncomponent %}) option.\n * * `columnIndex`—Defines the current column index.\n *\n * @example\n * ```html\n * \n * \n * {{ column.field }}\n * \n * \n * ```\n */\nlet HeaderTemplateDirective = /*#__PURE__*/(() => {\n class HeaderTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n HeaderTemplateDirective.ɵfac = function HeaderTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HeaderTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n HeaderTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: HeaderTemplateDirective,\n selectors: [[\"\", \"kendoTreeListHeaderTemplate\", \"\"]],\n standalone: true\n });\n return HeaderTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst isSpanColumn = column => column.isSpanColumn;\n/**\n * @hidden\n */\nconst isCheckboxColumn = column => column.isCheckboxColumn;\n/**\n * @hidden\n */\nconst isRowReorderColumn = column => column.isRowReorderColumn;\nconst isColumnContainer = column => column.isColumnGroup || isSpanColumn(column);\n/**\n * The base class for the column components of the TreeList.\n */\nlet ColumnBase = /*#__PURE__*/(() => {\n class ColumnBase {\n /**\n * @hidden\n */\n constructor(parent, optionChanges) {\n this.parent = parent;\n this.optionChanges = optionChanges;\n /**\n * @hidden\n */\n this.matchesMedia = true;\n /**\n * The column index after reordering.\n * The orderIndex` is a read-only property. Setting this field does not affect column order.\n * @default 0\n */\n this.orderIndex = 0;\n /**\n * @hidden\n */\n this.isColumnGroup = false;\n /**\n * @hidden\n */\n this.isSpanColumn = false;\n /**\n * Indicates whether the column is resizable.\n * @default true\n */\n this.resizable = true;\n /**\n * Indicates whether the column is reorderable.\n * @default true\n */\n this.reorderable = true;\n /**\n * The width (in pixels) below which the user is not able to resize the column by using the UI.\n * @default 10\n */\n this.minResizableWidth = 10;\n this._locked = false;\n /**\n * Specifies if the column can be locked or unlocked from the column menu or by reordering the columns.\n * @default true\n */\n this.lockable = true;\n /**\n * Specifies if the column menu will be shown for the column.\n * @default true\n */\n this.columnMenu = true;\n /**\n * Specifies if the column will be included in the column-chooser list.\n * @default true\n */\n this.includeInChooser = true;\n /**\n * Allows setting the `role` attribute for the table cells (excluding the footer and header ones) of the column.\n * @default \"gridcell\"\n */\n this.tableCellsRole = 'gridcell';\n /**\n * @hidden\n */\n this.headerTemplates = new QueryList();\n /**\n * @hidden\n */\n this.columnMenuTemplates = new QueryList();\n if (parent && !isColumnContainer(parent)) {\n throw new Error('Columns can be nested only inside ColumnGroupComponent');\n }\n }\n /**\n * @hidden\n */\n set leafIndex(value) {\n this._leafIndex = value;\n }\n /**\n * @hidden\n */\n get leafIndex() {\n return this._leafIndex;\n }\n /**\n * The width of the column (in pixels).\n */\n set width(value) {\n this._width = parseInt(value, 10);\n }\n get width() {\n return this._width;\n }\n /**\n * Toggles the locked (frozen) state of the columns ([more information and example](slug:locked_columns_treelist)).\n *\n * @default false\n */\n set locked(value) {\n this._locked = value;\n }\n get locked() {\n return this._locked;\n }\n /**\n * @hidden\n */\n get level() {\n if (this.parent && isSpanColumn(this.parent)) {\n return this.parent.level;\n }\n return this.parent ? this.parent.level + 1 : 0;\n }\n /**\n * @hidden\n */\n get isLocked() {\n return this.parent ? this.parent.isLocked : this.locked;\n }\n /**\n * @hidden\n */\n get colspan() {\n return 1;\n }\n /**\n * @hidden\n */\n rowspan(totalColumnLevels) {\n return this.level < totalColumnLevels ? totalColumnLevels - this.level + 1 : 1;\n }\n /**\n * @hidden\n */\n get headerTemplateRef() {\n const template = this.headerTemplates.first;\n return template ? template.templateRef : undefined;\n }\n /**\n * @hidden\n */\n get footerTemplateRef() {\n return this.footerTemplate ? this.footerTemplate.templateRef : undefined;\n }\n /**\n * @hidden\n */\n get columnMenuTemplateRef() {\n const template = this.columnMenuTemplates.first;\n return template ? template.templateRef : null;\n }\n /**\n * @hidden\n */\n get displayTitle() {\n return this.title;\n }\n /**\n * @hidden\n */\n get isVisible() {\n return !this.hidden && this.matchesMedia;\n }\n /**\n * @hidden\n */\n get isEditable() {\n return false;\n }\n ngOnChanges(_changes) {\n if (this.optionChanges) {\n this.optionChanges.columnChanged();\n }\n }\n }\n ColumnBase.ɵfac = function ColumnBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnBase)(i0.ɵɵdirectiveInject(ColumnBase), i0.ɵɵdirectiveInject(OptionChangesService));\n };\n ColumnBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ColumnBase,\n contentQueries: function ColumnBase_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, FooterTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, HeaderTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, ColumnMenuTemplateDirective, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplates = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnMenuTemplates = _t);\n }\n },\n inputs: {\n resizable: \"resizable\",\n reorderable: \"reorderable\",\n minResizableWidth: \"minResizableWidth\",\n title: \"title\",\n width: \"width\",\n autoSize: \"autoSize\",\n locked: \"locked\",\n hidden: \"hidden\",\n media: \"media\",\n lockable: \"lockable\",\n columnMenu: \"columnMenu\",\n includeInChooser: \"includeInChooser\",\n tableCellsRole: \"tableCellsRole\",\n style: \"style\",\n headerStyle: \"headerStyle\",\n footerStyle: \"footerStyle\",\n cssClass: [0, \"class\", \"cssClass\"],\n headerClass: \"headerClass\",\n footerClass: \"footerClass\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return ColumnBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst EMPTY_REGEX = /^\\s*$/;\n/**\n * @hidden\n */\nconst isPresent = value => value !== null && value !== undefined;\n/**\n * @hidden\n */\nconst isBlank = value => value === null || value === undefined;\n/**\n * @hidden\n */\nconst isArray = value => Array.isArray(value);\n/**\n * @hidden\n */\nconst isTruthy = value => !!value;\n/**\n * @hidden\n */\nconst isNullOrEmptyString = value => isBlank(value) || EMPTY_REGEX.test(value);\n/**\n * @hidden\n */\nconst observe = list => merge(of(list), list.changes);\n/**\n * @hidden\n */\nconst isUniversal = () => typeof document === 'undefined';\n/**\n * @hidden\n */\nconst isString = value => typeof value === 'string';\n/**\n * @hidden\n */\nconst isNumber = value => typeof value === \"number\" && !isNaN(value);\n/**\n * @hidden\n */\nconst extractFormat = format => {\n if (isString(format) && !isNullOrEmptyString(format) && format.startsWith('{0:')) {\n return format.slice(3, format.length - 1);\n }\n return format;\n};\n/**\n * @hidden\n */\nconst not = fn => (...args) => !fn(...args);\n/**\n * @hidden\n */\nconst or = (...conditions) => value => conditions.reduce((acc, x) => acc || x(value), false);\n/**\n * @hidden\n */\nconst and = (...conditions) => value => conditions.reduce((acc, x) => acc && x(value), true);\n/**\n * @hidden\n */\nconst Skip = new InjectionToken(\"Skip\");\n/**\n * @hidden\n */\nconst createPromise = () => {\n let resolveFn, rejectFn;\n const promise = new Promise((resolve, reject) => {\n resolveFn = data => {\n resolve(data);\n return promise;\n };\n rejectFn = data => {\n reject(data);\n return promise;\n };\n });\n promise.resolve = resolveFn;\n promise.reject = rejectFn;\n return promise;\n};\n/** @hidden */\nconst iterator = getIterator();\n// TODO: Move to kendo-common\nfunction getIterator() {\n if (typeof Symbol === 'function' && Symbol.iterator) {\n return Symbol.iterator;\n }\n const keys = Object.getOwnPropertyNames(Map.prototype);\n const proto = Map.prototype;\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i];\n if (key !== 'entries' && key !== 'size' && proto[key] === proto.entries) {\n return key;\n }\n }\n}\nconst FRAME_DURATION = 1000 / 60;\nconst wnd = typeof window !== 'undefined' ? window : {};\n/** @hidden */\nconst requestAnimationFrame = wnd.requestAnimationFrame || wnd.msRequestAnimationFrame || (callback => setTimeout(callback, FRAME_DURATION));\n/** @hidden */\nconst cancelAnimationFrame = wnd.cancelAnimationFrame || wnd.msCancelRequestAnimationFrame || clearTimeout;\n/** @hidden */\nconst isColumnEditable = (column, formGroup) => column.isEditable !== false && (column.editTemplate || formGroup && column.field && formGroup.get(column.field));\n/**\n * @hidden\n */\nconst replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\\{\\\\s*${name}\\\\s*\\}`, 'g'), value);\n\n/**\n * Represents the filter-cell template ([see example](slug:filter_row_treelist#toc-custom-filter-row-components).\n *\n * The template context is set to the filter descriptor and the following additional fields are passed:\n * - `column`—The current column instance. Use it as an alias for a template variable by utilizing the `let-column=\"column\"` syntax.\n * - `filter`—The filter descriptor.\n * - `cellContext`—An object used to pass context information to built-in directives.\n */\nlet FilterCellTemplateDirective = /*#__PURE__*/(() => {\n class FilterCellTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n FilterCellTemplateDirective.ɵfac = function FilterCellTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterCellTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n FilterCellTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterCellTemplateDirective,\n selectors: [[\"\", \"kendoTreeListFilterCellTemplate\", \"\"]],\n standalone: true\n });\n return FilterCellTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the filter-menu template\n * ([see example](slug:filter_menu_treelist#toc-custom-filter-menu-components).\n */\nlet FilterMenuTemplateDirective = /*#__PURE__*/(() => {\n class FilterMenuTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n FilterMenuTemplateDirective.ɵfac = function FilterMenuTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterMenuTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n FilterMenuTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterMenuTemplateDirective,\n selectors: [[\"\", \"kendoTreeListFilterMenuTemplate\", \"\"]],\n standalone: true\n });\n return FilterMenuTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nfunction isColumnComponent(column) {\n return isPresent(column.field);\n}\n/**\n * Represents the columns of the TreeList.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * ```\n */\nlet ColumnComponent = /*#__PURE__*/(() => {\n class ColumnComponent extends ColumnBase {\n constructor(parent, optionChanges) {\n super(parent, optionChanges);\n /**\n * Allows the column headers to be clicked and the `sortChange` event emitted.\n * You have to handle the `sortChange` event yourself and sort the data.\n */\n this.sortable = true;\n /**\n * Defines the editor type ([see example]({% slug editing_reactive_forms_treelist %}#toc-setup)).\n * Used when the column enters the edit mode. [See example](slug:editing_reactive_forms_treelist).\n *\n * @default 'text'\n */\n this.editor = 'text';\n /**\n * Defines the filter type that is displayed inside the filter row.\n *\n * @default 'text'\n */\n this.filter = 'text';\n /**\n * Defines if a filter UI will be displayed for this column.\n *\n * @default true\n */\n this.filterable = true;\n /**\n * Defines whether the column is editable.\n *\n * @default true\n */\n this.editable = true;\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n get editTemplateRef() {\n return this.editTemplate ? this.editTemplate.templateRef : undefined;\n }\n get filterCellTemplateRef() {\n return this.filterCellTemplate ? this.filterCellTemplate.templateRef : undefined;\n }\n get filterMenuTemplateRef() {\n return this.filterMenuTemplate ? this.filterMenuTemplate.templateRef : undefined;\n }\n get displayTitle() {\n return this.title === undefined ? this.field : this.title;\n }\n /**\n * @hidden\n */\n get isEditable() {\n return this.editable !== false;\n }\n }\n ColumnComponent.ɵfac = function ColumnComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnComponent)(i0.ɵɵdirectiveInject(ColumnBase, 13), i0.ɵɵdirectiveInject(OptionChangesService));\n };\n ColumnComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnComponent,\n selectors: [[\"kendo-treelist-column\"]],\n contentQueries: function ColumnComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, FilterCellTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, FilterMenuTemplateDirective, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterCellTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filterMenuTemplate = _t.first);\n }\n },\n inputs: {\n expandable: \"expandable\",\n field: \"field\",\n format: \"format\",\n sortable: \"sortable\",\n editor: \"editor\",\n filter: \"filter\",\n filterable: \"filterable\",\n editable: \"editable\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ColumnBase,\n useExisting: forwardRef(() => ColumnComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function ColumnComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return ColumnComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nfunction isSpanColumnComponent(column) {\n return column.isSpanColumn;\n}\n/**\n * Represents a column which can be spanned over multiple data cells while the individual\n * header and footer cells are retained ([see example]({% slug spanned_columns_treelist %})).\n * Enables you to achieve more flexible layout while keeping the built-in UI element for\n * [sorting]({% slug sorting_treelist %}) and [filtering]({% slug filtering_treelist %}). Wrap the columns that will be\n * merged inside the `` tag.\n *\n * ```html\n * \n * \n * \n * \n *
{{ dataItem.field1 }}
\n *

{{ dataItem.field2 }}

\n *
\n *
\n * ```\n */\nlet SpanColumnComponent = /*#__PURE__*/(() => {\n class SpanColumnComponent extends ColumnBase {\n constructor(parent, optionChanges) {\n super(parent, optionChanges);\n /*\n * @hidden\n */\n this.isSpanColumn = true;\n this.template = new QueryList();\n this.editTemplate = new QueryList();\n /**\n * @hidden\n */\n this.childColumns = new QueryList();\n /**\n * @hidden\n */\n this.includeInChooser = false;\n this._editable = true;\n if (parent && parent.isSpanColumn) {\n throw new Error('SpanColumn cannot be nested inside another SpanColumn');\n }\n }\n /**\n * Defines whether the edit template of the column will be rendered. The default value is `false`.\n *\n * To enable the editing functionality for a spanned column, set an edit template for it.\n *\n */\n set editable(value) {\n this._editable = value;\n }\n get editable() {\n return isPresent(this.editTemplateRef) && this._editable;\n }\n /**\n * @hidden\n * added for backwards compitability\n */\n set width(_value) {}\n get width() {\n return this.childColumns.reduce((total, column) => total + column.width, 0);\n }\n /**\n * @hidden\n */\n get leafIndex() {\n return this.childColumns.first.leafIndex;\n }\n /**\n * @hidden\n */\n get templateRef() {\n const template = this.template.first;\n return template ? template.templateRef : undefined;\n }\n /**\n * @hidden\n */\n get editTemplateRef() {\n const editTemplate = this.editTemplate.first;\n return editTemplate ? editTemplate.templateRef : undefined;\n }\n /**\n * @hidden\n */\n get colspan() {\n return this.childColumns.filter(c => c.isVisible).length;\n }\n /**\n * Toggles the locked (frozen) state of the columns. Locked columns are visible\n * at all times during the horizontal scrolling of the TreeList. [See example](slug:locked_columns_treelist).\n *\n * @default false\n */\n set locked(value) {\n this._locked = value;\n }\n get locked() {\n return this._locked || this.childColumns.some(c => c.locked);\n }\n get isEditable() {\n return Boolean(this.editTemplateRef);\n }\n get childrenArray() {\n return this.childColumns.toArray();\n }\n get hasChildren() {\n return this.childColumns.length > 0;\n }\n }\n SpanColumnComponent.ɵfac = function SpanColumnComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SpanColumnComponent)(i0.ɵɵdirectiveInject(ColumnBase, 13), i0.ɵɵdirectiveInject(OptionChangesService));\n };\n SpanColumnComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SpanColumnComponent,\n selectors: [[\"kendo-treelist-span-column\"]],\n contentQueries: function SpanColumnComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, EditTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, ColumnComponent, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editTemplate = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.childColumns = _t);\n }\n },\n inputs: {\n expandable: \"expandable\",\n editable: \"editable\",\n locked: \"locked\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ColumnBase,\n useExisting: forwardRef(() => SpanColumnComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function SpanColumnComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return SpanColumnComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst expandColumns = columns => columns.reduce((acc, column) => acc.concat(isSpanColumnComponent(column) ? column.childrenArray : [column]), []);\n/**\n * @hidden\n */\nconst expandColumnsWithSpan = columns => columns.reduce((acc, column) => acc.concat(isSpanColumnComponent(column) ? [column].concat(column.childrenArray) : [column]), []);\n/**\n * @hidden\n */\nconst columnsToRender = columns => expandColumns(columns).filter(x => x.isVisible);\nconst sumProp = prop => array => (array || []).reduce((prev, curr) => prev + (curr[prop] || 0), 0);\n/**\n * @hidden\n */\nconst sumColumnWidths = sumProp('width');\n/**\n * @hidden\n */\nconst columnsSpan = sumProp('colspan');\nconst validField = new RegExp(`^[$A-Z\\_a-z][$A-Z\\_a-z0-9\\\\.]*$`);\n/**\n * @hidden\n */\nconst isValidFieldName = fieldName => !isNullOrEmptyString(fieldName) && validField.test(fieldName) && fieldName[0] !== \".\" && fieldName[fieldName.length - 1] !== \".\";\n/**\n * @hidden\n */\nconst children = column => column.children.filter(child => child !== column);\n/**\n * @hidden\n */\nconst leafColumns = columns => {\n return columns.reduce((acc, column) => {\n if (column.isColumnGroup) {\n acc = acc.concat(leafColumns(children(column)));\n } else if (column.isSpanColumn) {\n acc = acc.concat(column.childrenArray);\n } else {\n acc.push(column);\n }\n return acc;\n }, []).filter(x => x.isVisible);\n};\n/**\n * @hidden\n */\nconst someLeafColumn = (callback, ...columns) => leafColumns(columns).some(callback);\n/**\n * @hidden\n */\nconst resizableColumns = columns => columns.filter(column => isTruthy(column.resizable) && column.isVisible);\n/**\n * @hidden\n */\nconst sortColumns = columns => orderBy(columns, [{\n field: 'orderIndex',\n dir: 'asc'\n}]);\n/**\n * @hidden\n */\nconst isInSpanColumn$1 = column => isTruthy(column.parent) && isSpanColumnComponent(column.parent);\n\n/**\n * @hidden\n */\nfunction isColumnGroupComponent(column) {\n return column.isColumnGroup;\n}\n/**\n * Represents the column group header of the TreeList\n * ([more information and examples]({% slug multicolumnheaders_columns_treelist %})).\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet ColumnGroupComponent = /*#__PURE__*/(() => {\n class ColumnGroupComponent extends ColumnBase {\n constructor(parent, optionChanges) {\n super(parent, optionChanges);\n /**\n * @hidden\n */\n this.includeInChooser = false;\n /**\n * @hidden\n */\n this.isColumnGroup = true;\n /**\n * @hidden\n */\n this.minResizableWidth = 10;\n if (parent && parent.isSpanColumn) {\n throw new Error('ColumnGroupComponent cannot be nested inside SpanColumnComponent');\n }\n }\n /**\n * @hidden\n */\n rowspan() {\n return 1;\n }\n /**\n * @hidden\n */\n get colspan() {\n if (!this.children) {\n return 1;\n }\n return columnsSpan(this.children.filter(child => child !== this && child.isVisible));\n }\n /**\n * @hidden\n */\n get leafIndex() {\n return this.children ? (this.firstChild || {}).leafIndex : -1;\n }\n get childrenArray() {\n return this.children.filter(c => c !== this);\n }\n get hasChildren() {\n return Boolean(this.firstChild);\n }\n get firstChild() {\n return this.children.find(column => column !== this);\n }\n }\n ColumnGroupComponent.ɵfac = function ColumnGroupComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnGroupComponent)(i0.ɵɵdirectiveInject(ColumnBase, 13), i0.ɵɵdirectiveInject(OptionChangesService));\n };\n ColumnGroupComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnGroupComponent,\n selectors: [[\"kendo-treelist-column-group\"]],\n contentQueries: function ColumnGroupComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, ColumnBase, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.children = _t);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ColumnBase,\n useExisting: forwardRef(() => ColumnGroupComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function ColumnGroupComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return ColumnGroupComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst canCreateElement = () => isDocumentAvailable() && document.createElement;\nlet cachedScrollbarWidth = null;\nlet cachedPixelRatio;\nlet cachedRtlScrollLeft = null;\nfunction scrollbarWidth() {\n if (cachedScrollbarWidth === null && canCreateElement()) {\n cachedPixelRatio = window.devicePixelRatio || 1;\n const div = document.createElement(\"div\");\n div.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\";\n div.innerHTML = \" \";\n document.body.appendChild(div);\n cachedScrollbarWidth = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return cachedScrollbarWidth;\n}\nfunction rtlScrollLeft() {\n if (cachedRtlScrollLeft === null && canCreateElement()) {\n const div = document.createElement(\"div\");\n div.style.cssText = \"overflow:scroll;zoom:1;clear:both;display:block;width:100px;visibility:hidden;position:absolute;left:-10000px;direction:rtl;\";\n const innerDiv = document.createElement('div');\n innerDiv.style.width = '200px';\n innerDiv.style.height = '1px';\n div.appendChild(innerDiv);\n document.body.appendChild(div);\n const initial = div.scrollLeft;\n div.scrollLeft = -1;\n cachedRtlScrollLeft = div.scrollLeft < 0 ? div.scrollLeft : initial;\n document.body.removeChild(div);\n }\n return cachedRtlScrollLeft;\n}\n/**\n * @hidden\n * move to kendo-common\n */\nlet BrowserSupportService = /*#__PURE__*/(() => {\n class BrowserSupportService {\n constructor(zone, changeDetector) {\n this.zone = zone;\n this.changeDetector = changeDetector;\n this.changes = new EventEmitter();\n if (typeof window !== 'undefined') {\n this.zone.runOutsideAngular(() => {\n this.subscriptions = fromEvent(window, 'resize').pipe(auditTime(100)).subscribe(() => {\n if (cachedPixelRatio !== window.devicePixelRatio) {\n zone.run(() => {\n cachedScrollbarWidth = null;\n this.changes.emit();\n this.changeDetector.markForCheck();\n });\n }\n });\n });\n }\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n this.subscriptions = null;\n }\n }\n get scrollbarWidth() {\n return scrollbarWidth();\n }\n get rtlScrollLeft() {\n return rtlScrollLeft();\n }\n }\n BrowserSupportService.ɵfac = function BrowserSupportService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BrowserSupportService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.ChangeDetectorRef));\n };\n BrowserSupportService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BrowserSupportService,\n factory: BrowserSupportService.ɵfac\n });\n return BrowserSupportService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst EXPANDED_STATE = {\n isExpanded: () => true\n};\n/**\n * @hidden\n */\nconst UNSELECTED_STATE = {\n isRowSelected: () => false\n};\n/**\n * @hidden\n */\nconst NOT_EDITED_STATE = {\n hasNew: () => false,\n context: () => null\n};\nconst identity$1 = item => item;\nfunction loadView(view, subject) {\n view.loadData();\n if (view.loading) {\n // Wait for view to load and fetch children.\n view.dataLoaded.pipe(take(1)).subscribe(() => {\n loadView(view, subject);\n });\n } else if (!view._data) {\n // Fetch children if root items are resolved immediately.\n loadView(view, subject);\n } else {\n // Data loaded.\n subject.next(view);\n }\n}\nconst LOADING = 'loading';\nclass ViewRange {\n constructor(skip, pageSize, pageable) {\n this.skip = skip;\n this.pageSize = pageSize;\n this.pageable = pageable;\n }\n static create(options) {\n const {\n skip,\n pageSize,\n pageable,\n isVirtual\n } = options;\n let rangeType = ViewRange;\n if (pageSize) {\n if (pageable) {\n rangeType = PagerRange;\n } else if (isVirtual) {\n rangeType = VirtualRange;\n }\n }\n return new rangeType(skip, pageSize, pageable);\n }\n inRange(_index, _rowIndex) {\n return true;\n }\n levelInRange(_parent, _items, _rowIndex) {\n return true;\n }\n includeParents(_children) {\n // eslint-disable-next-line no-empty\n }\n}\nfunction isPagerSettings(pageable) {\n return typeof pageable === 'object';\n}\nclass PagerRange extends ViewRange {\n constructor(skip, pageSize, pageable) {\n super(skip, pageSize, pageable);\n this.expandAll = true;\n if (isPagerSettings(pageable)) {\n this.expandAll = pageable.countChildren !== false;\n }\n }\n inRange(index, _rowIndex) {\n return this.skip <= index && index < this.skip + this.pageSize;\n }\n levelInRange(parent, items, _rowIndex) {\n return parent.level === -1 || this.skip <= parent.index + items.length && parent.index + 1 < this.skip + this.pageSize;\n }\n includeParents(children) {\n let parentLevel = children.parentLevel;\n while (parentLevel && !parentLevel.inRange) {\n parentLevel.inRange = true;\n parentLevel = parentLevel.parentLevel;\n }\n }\n}\nclass VirtualRange extends ViewRange {\n inRange(_index, rowIndex) {\n return this.skip <= rowIndex && rowIndex < this.skip + this.pageSize;\n }\n levelInRange(parent, _items, rowIndex) {\n return this.inRange(parent.index, rowIndex);\n }\n}\n/**\n * @hidden\n */\nclass ViewItemFactory {\n constructor(expandState, editState, selectionState, loaded, fieldAccessor, rootItem) {\n this.expandState = expandState;\n this.editState = editState;\n this.selectionState = selectionState;\n this.loaded = loaded;\n this.fieldAccessor = fieldAccessor;\n this.observables = [];\n this.rowIndex = 0;\n const options = this.fieldAccessor();\n this.fetchChildren = options.fetchChildren;\n this.hasChildren = options.hasChildren;\n this.idGetter = options.idGetter;\n this.hasFooter = options.hasFooter;\n this.viewRange = ViewRange.create(options);\n if (rootItem) {\n this.rootLevel = this.loadChildren(rootItem);\n } else {\n this.rootLevel = this.dataLevel({\n level: -1,\n id: null,\n expanded: true\n }, options.data);\n }\n }\n // try to stop iteration if cached total and viewRange ends\n generate() {\n const result = [];\n const dataLevels = [this.rootLevel];\n let itemIndex = 0;\n let itemCount = 0;\n this.addNew(result);\n while (dataLevels.length) {\n while (dataLevels[0] && dataLevels[0].idx >= dataLevels[0].items.length) {\n const dataLevel = dataLevels.shift();\n if (this.hasFooter && dataLevel.expanded && dataLevel.items.length) {\n if (dataLevel.inRange || this.viewRange.levelInRange(dataLevel.parent, dataLevel.items, this.rowIndex)) {\n result.push({\n type: 'footer',\n items: dataLevel.items,\n aggregates: dataLevel.aggregates,\n level: dataLevel.level,\n parentItem: dataLevel.parent.data,\n parentIndex: dataLevel.parentIndex,\n rowIndex: this.rowIndex\n });\n this.viewRange.includeParents(dataLevel);\n }\n this.rowIndex++;\n }\n }\n if (!dataLevels.length) {\n break;\n }\n const currentLevel = dataLevels[0];\n const dataItem = currentLevel.items[currentLevel.idx++];\n const viewItem = {\n type: 'data',\n data: dataItem,\n id: this.idGetter(dataItem),\n rowIndex: this.rowIndex,\n index: itemIndex,\n level: currentLevel.level,\n hasChildren: this.hasChildren(dataItem),\n parent: currentLevel.parent\n };\n if (currentLevel.expanded) {\n this.rowIndex++;\n if (this.viewRange.inRange(itemIndex, viewItem.rowIndex)) {\n if (this.offsetFirst) {\n viewItem.rowIndex++;\n this.rowIndex++;\n this.offsetFirst = false;\n }\n result.push(viewItem);\n viewItem.editContext = this.editState.context(viewItem.data);\n viewItem.selected = this.selectionState.isRowSelected(dataItem);\n this.addNew(result, dataItem);\n }\n itemIndex++;\n }\n itemCount++;\n const expanded = viewItem.hasChildren && this.expandState.isExpanded(viewItem.data);\n if (viewItem.hasChildren && (expanded || this.viewRange.expandAll)) {\n viewItem.expanded = expanded && currentLevel.expanded;\n const children = this.loadChildren(viewItem);\n if (children) {\n dataLevels.unshift(children);\n children.parentLevel = currentLevel;\n }\n }\n }\n return {\n items: result,\n observables: this.observables,\n total: itemCount,\n totalVisible: itemIndex,\n totalRows: this.rowIndex\n };\n }\n loadChildren(parent) {\n const parentId = parent.id;\n if (this.loaded.has(parentId)) {\n const children = this.loaded.get(parentId);\n if (children === LOADING) {\n parent.loading = true;\n } else {\n return this.dataLevel(parent, children);\n }\n } else {\n const children = this.fetchChildren(parent.data);\n if (isObservable(children)) {\n this.observables.push({\n observable: children,\n parentId: parentId\n });\n parent.loading = true;\n } else if (children) {\n this.loaded.set(parentId, children);\n return this.dataLevel(parent, children);\n }\n }\n }\n dataLevel(parent, children) {\n children = children || {};\n const data = children.data || children;\n const items = data && data.length ? data : [];\n return {\n idx: 0,\n level: parent.level + 1,\n items: items,\n aggregates: children.aggregates,\n expanded: parent.expanded,\n parentIndex: parent.index,\n parent: parent\n };\n }\n addNew(result, parent) {\n if (this.editState.hasNew(parent)) {\n const inRange = this.viewRange.inRange(0, this.rowIndex);\n const rowIndex = parent || inRange ? this.rowIndex : this.viewRange.skip;\n result.push({\n parent: parent,\n isNew: true,\n type: 'data',\n data: this.editState.newItem.dataItem,\n editContext: this.editState.newItem,\n rowIndex: rowIndex\n });\n if (parent || inRange) {\n this.rowIndex++;\n } else {\n this.offsetFirst = true;\n }\n }\n }\n}\n/**\n * @hidden\n */\nclass ViewCollection {\n constructor(fieldAccessor, expandState, editState, selectionState) {\n this.fieldAccessor = fieldAccessor;\n this.expandState = expandState;\n this.editState = editState;\n this.selectionState = selectionState;\n this.childrenLoaded = new EventEmitter();\n this.dataLoaded = new EventEmitter();\n this.resetPage = new EventEmitter();\n this.total = 0;\n this.totalVisible = 0;\n this.loaded = new Map();\n this.loading = false;\n this._totalRows = 0;\n this.loadingCount = 0;\n }\n static loadView(options) {\n const subject = new BehaviorSubject(null);\n const viewFields = () => Object.assign({\n idGetter: identity$1,\n pageable: false,\n isVirtual: false,\n skip: 0\n }, options.fields);\n const childrenView = new ViewCollection(viewFields, options.expandState || EXPANDED_STATE, options.editState || NOT_EDITED_STATE, options.selectionState || UNSELECTED_STATE);\n if (options.loaded) {\n childrenView.loaded = options.loaded;\n }\n loadView(childrenView, subject);\n return subject;\n }\n get totalRows() {\n if (!this._data) {\n this.loadData();\n }\n return this._totalRows;\n }\n get data() {\n if (!this._data) {\n this.loadData();\n }\n return this._data;\n }\n get length() {\n return this.data.length;\n }\n get first() {\n return this.data[0];\n }\n get firstItem() {\n return this.find(item => item.type === 'data');\n }\n get last() {\n return this.data[this.data.length - 1];\n }\n at(index) {\n return this.data[index];\n }\n itemIndex(item) {\n const idGetter = this.fieldAccessor().idGetter;\n return this.data.findIndex(i => i.id === idGetter(item));\n }\n map(fn) {\n return this.data.map(fn);\n }\n filter(fn) {\n return this.data.filter(fn);\n }\n findIndex(fn) {\n return this.data.findIndex(fn);\n }\n reduce(fn, init) {\n return this.data.reduce(fn, init);\n }\n forEach(fn) {\n this.data.forEach(fn);\n }\n some(fn) {\n return this.data.some(fn);\n }\n find(fn) {\n return this.data.find(fn);\n }\n toString() {\n return this.data.toString();\n }\n updateSelectedState() {\n this.forEach(item => {\n if (item.type === 'data') {\n item.selected = this.selectionState.isRowSelected(item.data);\n }\n });\n }\n updateEditedState() {\n this.forEach(item => {\n if (item.type === 'data') {\n item.editContext = this.editState.context(item.data);\n }\n });\n }\n reset() {\n this.loaded.clear();\n this.clear();\n this.unsubscribeChildren();\n }\n resetItem(item, resetChildren) {\n const idGetter = this.fieldAccessor().idGetter;\n const toReset = [item];\n while (toReset.length) {\n const current = toReset.shift();\n const id = idGetter(current);\n if (this.loaded.has(id)) {\n const children = this.loaded.get(id);\n this.loaded.delete(id);\n if (resetChildren) {\n toReset.push(...(children.data || children));\n }\n }\n }\n this.clear();\n }\n clear() {\n this._data = null;\n }\n loadData() {\n const itemFactory = new ViewItemFactory(this.expandState, this.editState, this.selectionState, this.loaded, this.fieldAccessor);\n let result = itemFactory.generate();\n if (!result.loading && result.total && (!result.items.length || !result.items.some(i => i.type === 'data'))) {\n this.resetPage.emit();\n result = new ViewItemFactory(this.expandState, this.editState, this.selectionState, this.loaded, this.fieldAccessor).generate();\n }\n this._data = result.items;\n this.total = result.total;\n this.totalVisible = result.totalVisible;\n this._totalRows = result.totalRows;\n if (result.observables && result.observables.length) {\n this.loading = true;\n this.loadingCount += result.observables.length;\n if (!this.childrenSubscription) {\n this.childrenSubscription = new Subscription();\n }\n result.observables.forEach(o => {\n this.loaded.set(o.parentId, LOADING);\n this.childrenSubscription.add(o.observable.subscribe(children => {\n // handle error, might show reload icon\n this.clear();\n this.loaded.set(o.parentId, children);\n this.childrenLoaded.emit();\n this.loadingCount--;\n if (this.loadingCount === 0) {\n this.loading = false;\n this.unsubscribeChildren();\n this.dataLoaded.emit();\n }\n }));\n });\n } else {\n this.dataLoaded.emit();\n }\n }\n unsubscribeChildren() {\n if (this.childrenSubscription) {\n this.childrenSubscription.unsubscribe();\n this.childrenSubscription = null;\n this.loadingCount = 0;\n }\n }\n}\n\n/**\n * @hidden\n */\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses\n * the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * Returns `true` if the event was prevented\n * by any of its subscribers.\n *\n * @returns `true` if the default action was prevented.\n * Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Arguments for the `cellClose` event.\n */\nclass CellCloseEvent extends PreventableEvent {\n constructor(options) {\n super();\n /**\n * @hidden\n */\n this.action = 'cellClose';\n Object.assign(this, options);\n }\n}\nconst identity = item => item;\n/**\n * @hidden\n */\nlet EditService = /*#__PURE__*/(() => {\n class EditService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new EventEmitter();\n this.idGetter = identity;\n // Maps IDs to edited rows\n this.edited = new Map();\n this.keepEditCell = false;\n this.closingCell = false;\n this.changedSource = new Subject();\n this.changed = this.changedSource.asObservable().pipe(switchMap(() => this.ngZone.onStable.asObservable().pipe(take(1))));\n }\n get newItemGroup() {\n return this.newItem ? this.newItem.group : null;\n }\n editRow(dataItem, group = undefined) {\n this.edited.set(this.idGetter(dataItem), {\n group,\n item: dataItem\n });\n this.onChanged();\n }\n addRow(parent, group) {\n this.newItem = {\n parent,\n group,\n dataItem: group ? group.value : null\n };\n this.onChanged();\n }\n editCell(item, column, group) {\n if (!isColumnEditable(column, group)) {\n return;\n }\n this.preventCellClose();\n if (!this.closeCell()) {\n this.editRow(item, group);\n this.column = column;\n this.onChanged();\n }\n }\n isEditing() {\n return this.edited.size > 0;\n }\n isEdited(dataItem) {\n return this.newItem && this.newItem.dataItem === dataItem || this.edited.has(this.idGetter(dataItem));\n }\n isEditingCell() {\n return isPresent(this.column);\n }\n isEditingColumn(column) {\n return this.column === column;\n }\n isEditedColumn(column) {\n return !this.column || this.column === column;\n }\n hasNew(parent) {\n return Boolean(this.newItem && (!this.newItem.parent && !parent || this.idGetter(this.newItem.parent) === this.idGetter(parent)));\n }\n get newDataItem() {\n if (this.newItem) {\n return this.newItem.group.value;\n }\n }\n close(item, isNew) {\n if (isNew) {\n // parent\n this.newItem = undefined;\n return;\n }\n this.edited.delete(this.idGetter(item));\n delete this.column;\n this.onChanged();\n }\n closeCell(originalEvent) {\n if (this.column && !this.closingCell) {\n return this.ngZone.run(() => {\n const {\n item,\n group\n } = this.first;\n const args = new CellCloseEvent({\n column: this.column,\n formGroup: group,\n originalEvent: originalEvent,\n dataItem: item\n });\n this.closingCell = true;\n this.changes.emit(args);\n this.closingCell = false;\n if (!args.isDefaultPrevented()) {\n this.cancelCell();\n }\n return args.isDefaultPrevented();\n });\n }\n }\n cancelCell() {\n if (this.column) {\n this.edited.clear();\n this.column = null;\n this.onChanged();\n }\n }\n shouldCloseCell() {\n return this.column && !this.keepEditCell;\n }\n preventCellClose() {\n this.ngZone.runOutsideAngular(() => {\n window.clearTimeout(this.keepCellTimeout);\n this.keepEditCell = true;\n this.keepCellTimeout = window.setTimeout(() => {\n this.keepEditCell = false;\n }, 0);\n });\n }\n context(dataItem) {\n return this.edited.get(this.idGetter(dataItem));\n }\n beginEdit(item) {\n this.changes.emit({\n action: 'edit',\n dataItem: item\n });\n }\n beginAdd(parent) {\n this.changes.emit({\n action: 'add',\n parent\n });\n }\n endEdit(dataItem, isNew) {\n const formGroup = isNew ? this.newItemGroup : this.context(dataItem).group;\n this.changes.emit({\n action: 'cancel',\n dataItem,\n formGroup,\n isNew\n });\n }\n save(item, isNew) {\n const args = {\n action: 'save',\n isNew: isNew\n };\n if (isNew) {\n args.parent = this.newItem.parent;\n args.formGroup = this.newItem.group;\n args.dataItem = item;\n } else {\n args.dataItem = item;\n args.formGroup = this.context(item).group;\n }\n this.changes.emit(args);\n }\n remove(dataItem, parent) {\n this.changes.emit({\n action: 'remove',\n dataItem,\n parent\n });\n }\n onChanged() {\n this.ngZone.runOutsideAngular(() => {\n this.changedSource.next();\n });\n }\n get first() {\n if (this.isEditing()) {\n return this.edited.values().next().value;\n }\n }\n }\n EditService.ɵfac = function EditService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EditService)(i0.ɵɵinject(i0.NgZone));\n };\n EditService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EditService,\n factory: EditService.ɵfac\n });\n return EditService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst reset = (...lists) => {\n let diff = false;\n for (let idx = 0; idx < lists.length; idx++) {\n const [list, columns] = lists[idx];\n diff = diff || list.length !== columns.length;\n list.reset(columns);\n }\n return diff;\n};\n/**\n * @hidden\n */\nclass ColumnsContainer {\n constructor(columns) {\n this.columns = columns;\n this.allColumns = new QueryList();\n this.leafColumns = new QueryList();\n this.lockedColumns = new QueryList();\n this.nonLockedColumns = new QueryList();\n this.lockedLeafColumns = new QueryList();\n this.nonLockedLeafColumns = new QueryList();\n this.totalLevels = 0;\n this.changes = new EventEmitter();\n this.leafColumnsToRender = [];\n this.lockedColumnsToRender = [];\n this.nonLockedColumnsToRender = [];\n this.hasFooter = false;\n this.unlockedWidth = 0;\n }\n refresh() {\n const currentLevels = this.totalLevels;\n const leafColumns = new Array();\n const lockedLeafColumns = new Array();\n const nonLockedLeafColumns = new Array();\n const lockedColumns = new Array();\n const nonLockedColumns = new Array();\n const allColumns = new Array();\n const leafColumnsToRender = new Array();\n const lockedColumnsToRender = new Array();\n const nonLockedColumnsToRender = new Array();\n let hasFooter = false;\n let unlockedWidth = 0;\n let leafIndex = 0;\n this.totalLevels = 0;\n this.columns().forEach(column => {\n const containerLeafColumns = column.isLocked === true ? lockedLeafColumns : nonLockedLeafColumns;\n const containerColumns = column.isLocked === true ? lockedColumns : nonLockedColumns;\n const toRenderContainer = column.isLocked === true ? lockedColumnsToRender : nonLockedColumnsToRender;\n if (!isColumnGroupComponent(column)) {\n containerLeafColumns.push(column);\n leafColumns.push(column);\n leafColumnsToRender.push(...columnsToRender([column]));\n toRenderContainer.push(...columnsToRender([column]));\n hasFooter = hasFooter || someLeafColumn(leaf => Boolean(leaf.footerTemplateRef), column);\n if (!column.isLocked) {\n unlockedWidth += column.width || 0;\n }\n if (column.isSpanColumn) {\n column.childColumns.forEach(c => {\n c.leafIndex = leafIndex++;\n });\n } else {\n column.leafIndex = leafIndex++;\n }\n }\n containerColumns.push(column);\n allColumns.push(column);\n this.totalLevels = column.level > this.totalLevels ? column.level : this.totalLevels;\n });\n this.hasFooter = hasFooter;\n this.leafColumnsToRender = leafColumnsToRender;\n this.lockedColumnsToRender = lockedColumnsToRender;\n this.nonLockedColumnsToRender = nonLockedColumnsToRender;\n this.unlockedWidth = unlockedWidth;\n const changes = reset([this.leafColumns, leafColumns], [this.lockedLeafColumns, lockedLeafColumns], [this.nonLockedLeafColumns, nonLockedLeafColumns], [this.lockedColumns, lockedColumns], [this.allColumns, allColumns], [this.nonLockedColumns, nonLockedColumns]) || currentLevels !== this.totalLevels;\n if (changes) {\n this.changes.emit();\n }\n return changes;\n }\n}\n\n/**\n * @hidden\n */\nlet ChangeNotificationService = /*#__PURE__*/(() => {\n class ChangeNotificationService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new EventEmitter();\n }\n notify() {\n if (!this.subscription || this.subscription.closed) {\n this.subscription = this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => this.changes.emit());\n }\n }\n }\n ChangeNotificationService.ɵfac = function ChangeNotificationService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ChangeNotificationService)(i0.ɵɵinject(i0.NgZone));\n };\n ChangeNotificationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ChangeNotificationService,\n factory: ChangeNotificationService.ɵfac\n });\n return ChangeNotificationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the no-records template of the TreeList ([see example](slug:norecordtemplate_treelist)). Provides an option to customize the\n * appearance of the item that is displayed when no data is present. To define the no-records template,\n * nest an `` tag with the `kendoTreeListNoRecordsTemplate` directive inside ``.\n *\n * When the locked columns of the TreeList are in use, the template is displayed in the non-locked part of the content.\n *\n * @example\n * ```html\n * \n * \n * \n * No data loaded.\n * \n * \n * ```\n */\nlet NoRecordsTemplateDirective = /*#__PURE__*/(() => {\n class NoRecordsTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n NoRecordsTemplateDirective.ɵfac = function NoRecordsTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NoRecordsTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n NoRecordsTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NoRecordsTemplateDirective,\n selectors: [[\"\", \"kendoTreeListNoRecordsTemplate\", \"\"]],\n standalone: true\n });\n return NoRecordsTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst set = value => pair => pair.forEach(x => x.style.height = value);\nconst clearHeight = pairs => pairs.filter(([left, right]) => left.style.height || right.style.height).forEach(set(\"\"));\nconst zip = (arr1, arr2) => {\n const result = [];\n for (let idx = 0, len = arr1.length; idx < len; idx++) {\n if (!arr2[idx]) {\n break;\n }\n result.push([arr1[idx], arr2[idx]]);\n }\n return result;\n};\nconst setHeight$1 = heights => (row, idx) => set(`${heights[idx] + 1}px`)(row);\nconst getHeights = rows => rows.map(([left, right]) => {\n const height = left.offsetHeight;\n const offsetHeight2 = right.offsetHeight;\n if (height < offsetHeight2) {\n return offsetHeight2;\n }\n return height;\n});\n/**\n * @hidden\n */\nconst syncRowsHeight = (table1, table2) => {\n if (!isDocumentAvailable()) {\n return;\n }\n const activeElement = document.activeElement;\n const rows = zip(table1.rows, table2.rows);\n clearHeight(rows);\n const heights = getHeights(rows);\n [table1, table2].forEach(x => x.style.display = 'none');\n rows.forEach(setHeight$1(heights));\n [table1, table2].forEach(x => x.style.display = '');\n if (document.activeElement !== activeElement && (table1.contains(activeElement) || table2.contains(activeElement))) {\n activeElement.focus();\n }\n};\n\n/**\n * Represents a service to set the filter descriptor\n * ([see example]({% slug filter_menu_treelist %})).\n */\nlet FilterService = /*#__PURE__*/(() => {\n class FilterService {\n constructor() {\n /**\n * Fires when the filter descriptors is set.\n */\n this.changes = new Subject();\n }\n /**\n * Sets the filter descriptor.\n *\n * @param {CompositeFilterDescriptor} value - The filter descriptor that will be set.\n */\n filter(value) {\n this.changes.next(value);\n }\n }\n FilterService.ɵfac = function FilterService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterService)();\n };\n FilterService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FilterService,\n factory: FilterService.ɵfac\n });\n return FilterService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the pager template which helps to customize the pager appearance in the TreeList. To define a pager\n * template, nest an `` tag with the `kendoTreeListPagerTemplate` directive inside ``. [See example](slug:pager_template_treelist).\n *\n * The template context provides the following fields:\n * * `currentPage`—The index of the displayed page.\n * * `pageSize`—The value of the current `pageSize`.\n * * `skip`—The current skip value.\n * * `total`—The total number of records.\n * * `totalPages`—The total number of available pages.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet PagerTemplateDirective = /*#__PURE__*/(() => {\n class PagerTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n PagerTemplateDirective.ɵfac = function PagerTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n PagerTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PagerTemplateDirective,\n selectors: [[\"\", \"kendoTreeListPagerTemplate\", \"\"]],\n standalone: true\n });\n return PagerTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass PagerContextService {\n constructor() {\n this.changes = new Subject();\n this.pageChange = new Subject();\n }\n get currentPage() {\n return this.skip / this.pageSize;\n }\n notifyChanges(changes) {\n this.total = changes.total;\n this.pageSize = changes.pageSize;\n this.skip = changes.skip;\n this.allCount = changes.allCount;\n this.changes.next(changes);\n }\n changePage(page) {\n this.pageChange.next({\n skip: page * this.pageSize,\n take: this.pageSize\n });\n }\n changePageSize(value) {\n this.pageChange.next({\n skip: 0,\n take: value\n });\n }\n nextPage() {\n const nextPage = this.currentPage + 1;\n if (nextPage * this.pageSize <= this.total) {\n this.changePage(nextPage);\n }\n }\n prevPage() {\n const prevPage = this.currentPage - 1;\n if (prevPage * this.pageSize >= 0) {\n this.changePage(prevPage);\n }\n }\n}\n\n/**\n * @hidden\n */\nlet PDFService = /*#__PURE__*/(() => {\n class PDFService {\n constructor() {\n this.savePDF = new EventEmitter();\n this.drawPDF = new EventEmitter();\n this.exportClick = new EventEmitter();\n this.dataChanged = new EventEmitter();\n }\n save(component) {\n this.emitEvent(this.savePDF, component);\n }\n draw(component, promise) {\n this.emitEvent(this.drawPDF, {\n component,\n promise\n });\n }\n /**\n * @hidden\n */\n emitEvent(emitter, args) {\n if (emitter.observers.length === 0) {\n if (isDevMode()) {\n throw new Error('Creating PDF requires including the PDFModule and adding the component.');\n }\n } else {\n emitter.emit(args);\n }\n }\n }\n PDFService.ɵfac = function PDFService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PDFService)();\n };\n PDFService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PDFService,\n factory: PDFService.ɵfac\n });\n return PDFService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Arguments for the `pdfExport` event.\n */\nclass PDFExportEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor() {\n super();\n }\n}\n\n/**\n * @hidden\n */\nlet SuspendService = /*#__PURE__*/(() => {\n class SuspendService {\n constructor() {\n this.scroll = false;\n }\n }\n SuspendService.ɵfac = function SuspendService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SuspendService)();\n };\n SuspendService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SuspendService,\n factory: SuspendService.ɵfac\n });\n return SuspendService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst bootstrapToMedia = media => ({\n \"xs\": \"(max-width: 576px)\",\n \"sm\": \"(min-width: 576px)\",\n \"md\": \"(min-width: 768px)\",\n \"lg\": \"(min-width: 992px)\",\n \"xl\": \"(min-width: 1200px)\"\n})[media] || media;\nconst browserMatchMedia = media => window.matchMedia(media).matches;\n/**\n * @hidden\n */\nlet ResponsiveService = /*#__PURE__*/(() => {\n class ResponsiveService {\n constructor() {\n /**\n * @hidden\n */\n this.matchMedia = browserMatchMedia;\n }\n /**\n * @hidden\n */\n matchesMedia(media) {\n return !media || this.matchMedia(bootstrapToMedia(media));\n }\n }\n ResponsiveService.ɵfac = function ResponsiveService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ResponsiveService)();\n };\n ResponsiveService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ResponsiveService,\n factory: ResponsiveService.ɵfac\n });\n return ResponsiveService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ExcelService = /*#__PURE__*/(() => {\n class ExcelService {\n constructor() {\n this.saveToExcel = new EventEmitter();\n this.exportClick = new EventEmitter();\n this.loadingChange = new EventEmitter();\n }\n save(component) {\n if (this.saveToExcel.observers.length === 0) {\n if (isDevMode()) {\n throw new Error('Saving excel requires including the ExcelModule and adding the component.');\n }\n } else {\n this.saveToExcel.emit(component);\n }\n }\n toggleLoading(value) {\n this.loading = value;\n this.loadingChange.emit();\n }\n }\n ExcelService.ɵfac = function ExcelService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ExcelService)();\n };\n ExcelService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ExcelService,\n factory: ExcelService.ɵfac\n });\n return ExcelService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst forEachColumn = (list, callback) => {\n list.forEach(column => {\n callback(column);\n if (column.isColumnGroup && column.hasChildren) {\n forEachColumn(column.childrenArray, callback);\n }\n });\n};\nconst forEachLevel = (list, callback) => {\n sortColumns(list).forEach(column => {\n callback(column);\n if (column.isColumnGroup && column.hasChildren) {\n forEachLevel(column.childrenArray, callback);\n }\n });\n};\nconst filterHierarchy = (list, predicate) => {\n const result = [];\n sortColumns(list).forEach(column => {\n if (predicate(column)) {\n if (column.isColumnGroup) {\n const children = filterHierarchy(column.childrenArray, predicate);\n if (children.length) {\n result.push(column, ...children);\n }\n } else if (!column.isSpanColumn || filterHierarchy(column.childrenArray, predicate).length) {\n result.push(column);\n }\n }\n });\n return result.sort((a, b) => Number(b.locked) - Number(a.locked));\n};\n/**\n * @hidden\n */\nclass ColumnList {\n constructor(columns) {\n this.columns = columns;\n }\n static empty() {\n return new ColumnList(new QueryList());\n }\n forEach(callback) {\n forEachColumn(this.columns, callback);\n }\n filter(callback) {\n const result = [];\n forEachColumn(this.columns, column => {\n if (callback(column)) {\n result.push(column);\n }\n });\n return result;\n }\n filterHierarchy(predicate) {\n return filterHierarchy(this.columns.toArray(), predicate);\n }\n filterSort(callback) {\n const result = [];\n forEachLevel(this.columns.toArray(), column => {\n if (callback(column)) {\n result.push(column);\n }\n });\n return result;\n }\n toArray() {\n const result = [];\n forEachColumn(this.columns, column => {\n result.push(column);\n });\n return result;\n }\n rootColumns() {\n return this.columns.toArray();\n }\n totalColumnLevels() {\n let totalLevels = 0;\n this.forEach(column => {\n totalLevels = Math.max(column.level, totalLevels);\n });\n return totalLevels;\n }\n}\n\n/**\n * Represents the toolbar template of the TreeList ([see example](slug:toolbartemplate_treelist)).\n *\n * The template context has the following field:\n * - `position`—The position at which the toolbar template is rendered. The possible values are `top`, `bottom` and `both`.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * ```\n */\nlet ToolbarTemplateDirective = /*#__PURE__*/(() => {\n class ToolbarTemplateDirective {\n constructor(templateRef, optionChanges) {\n this.templateRef = templateRef;\n this.optionChanges = optionChanges;\n this._position = \"top\";\n }\n /**\n * The position of the toolbar ([see example](slug:toolbartemplate_treelist#toc-setting-the-toolbar-position)).\n * The group panel or header and the second one below the pager.\n * @default 'top'\n */\n set position(position) {\n this._position = position;\n this.optionChanges.optionChanged();\n }\n get position() {\n return this._position;\n }\n }\n ToolbarTemplateDirective.ɵfac = function ToolbarTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToolbarTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8), i0.ɵɵdirectiveInject(OptionChangesService));\n };\n ToolbarTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ToolbarTemplateDirective,\n selectors: [[\"\", \"kendoTreeListToolbarTemplate\", \"\"]],\n inputs: {\n position: \"position\"\n },\n standalone: true\n });\n return ToolbarTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ScrollSyncService = /*#__PURE__*/(() => {\n class ScrollSyncService {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.changes = new Subject();\n this.elements = [];\n this.subscriptions = new Subscription();\n this.headerSubscription = new Subscription();\n this.bodySubscription = new Subscription();\n this.subscriptions.add(this.changes.subscribe(args => this.scrollLeft(args)));\n }\n registerEmitter(el, sourceType) {\n this.unregister(sourceType);\n this.elements.push({\n element: el,\n sourceType\n });\n if (sourceType === \"body\" || sourceType === \"header\") {\n this.ngZone.runOutsideAngular(() => {\n const obs = fromEvent(el, \"scroll\").pipe(map(({\n target: {\n scrollLeft\n }\n }) => ({\n scrollLeft,\n sourceType\n })));\n const subscription = obs.pipe(distinctUntilChanged((x, y) => x.scrollLeft === y.scrollLeft), filter(x => !this.source || this.source === x.sourceType), tap(x => this.source = x.sourceType)).subscribe(x => this.changes.next(x));\n subscription.add(obs.pipe(filter(x => this.source && this.source !== x.sourceType)).subscribe(() => this.source = undefined));\n if (sourceType === \"body\") {\n this.bodySubscription.add(subscription);\n } else {\n this.headerSubscription.add(subscription);\n }\n });\n }\n }\n /**\n * destroy\n */\n destroy() {\n this.subscriptions.unsubscribe();\n this.headerSubscription.unsubscribe();\n this.bodySubscription.unsubscribe();\n }\n scrollLeft({\n scrollLeft,\n sourceType\n }) {\n this.ngZone.runOutsideAngular(() => {\n this.elements.filter(x => sourceType !== x.sourceType).forEach(({\n element\n }) => element.scrollLeft = scrollLeft);\n });\n }\n unregister(sourceType) {\n const index = this.elements.findIndex(x => x.sourceType === sourceType);\n if (index > -1) {\n if (sourceType === \"header\") {\n this.headerSubscription.unsubscribe();\n this.headerSubscription = new Subscription();\n } else if (sourceType === \"body\") {\n this.bodySubscription.unsubscribe();\n this.bodySubscription = new Subscription();\n }\n this.elements.splice(index, 1);\n }\n }\n }\n ScrollSyncService.ɵfac = function ScrollSyncService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScrollSyncService)(i0.ɵɵinject(i0.NgZone));\n };\n ScrollSyncService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollSyncService,\n factory: ScrollSyncService.ɵfac\n });\n return ScrollSyncService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ResizeService = /*#__PURE__*/(() => {\n class ResizeService {\n constructor() {\n this.resizeSubscription = new Subscription(() => {});\n this.dispatcher = new Subject();\n this.changes = this.dispatcher.asObservable().pipe(throttleTime(100));\n }\n connect(resizes) {\n this.resizeSubscription.add(resizes.subscribe(this.dispatcher));\n }\n destroy() {\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n }\n ResizeService.ɵfac = function ResizeService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ResizeService)();\n };\n ResizeService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ResizeService,\n factory: ResizeService.ɵfac\n });\n return ResizeService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;\nconst NODE_NAME_PREDICATES = {};\nconst toClassList = classNames => String(classNames).trim().split(' ');\n/**\n * @hidden\n */\nconst hasClasses = (element, classNames) => {\n const namesList = toClassList(classNames);\n return Boolean(toClassList(element.className).find(className => namesList.indexOf(className) >= 0));\n};\n/**\n * @hidden\n */\nconst matchesClasses = classNames => element => hasClasses(element, classNames);\n/**\n * @hidden\n */\nconst matchesNodeName = nodeName => {\n if (!NODE_NAME_PREDICATES[nodeName]) {\n NODE_NAME_PREDICATES[nodeName] = element => String(element.nodeName).toLowerCase() === nodeName.toLowerCase();\n }\n return NODE_NAME_PREDICATES[nodeName];\n};\n/**\n * @hidden\n */\nconst closest = (node, predicate) => {\n while (node && !predicate(node)) {\n node = node.parentNode;\n }\n return node;\n};\n/**\n * @hidden\n */\nconst closestInScope = (node, predicate, scope) => {\n while (node && node !== scope && !predicate(node)) {\n node = node.parentNode;\n }\n if (node !== scope) {\n return node;\n }\n};\n/**\n * @hidden\n */\nconst contains$2 = (parent, node, matchSelf = false) => {\n const outside = !closest(node, child => child === parent);\n if (outside) {\n return false;\n }\n const el = closest(node, child => child === node);\n return el && (matchSelf || el !== parent);\n};\n/**\n * @hidden\n */\nconst isVisible = element => {\n const rect = element.getBoundingClientRect();\n const hasSize = rect.width > 0 && rect.height > 0;\n const hasPosition = rect.x !== 0 && rect.y !== 0;\n // Elements can have zero size due to styling, but they will still count as visible.\n // For example, the selection checkbox has no size, but is made visible through styling.\n return (hasSize || hasPosition) && window.getComputedStyle(element).visibility !== 'hidden';\n};\n/**\n * @hidden\n */\nconst isFocusable = element => {\n if (!element.tagName) {\n return false;\n }\n const tagName = element.tagName.toLowerCase();\n const hasTabIndex = Boolean(element.getAttribute('tabIndex'));\n const focusable = !element.disabled && focusableRegex.test(tagName);\n return focusable || hasTabIndex;\n};\n/**\n * @hidden\n */\nconst isFocusableWithTabKey = (element, checkVisibility = true) => {\n if (!isFocusable(element)) {\n return false;\n }\n const tabIndex = element.getAttribute('tabIndex');\n const ariaHidden = element.getAttribute('aria-hidden') === 'true';\n const visible = !checkVisibility || isVisible(element);\n return visible && !ariaHidden && tabIndex !== '-1';\n};\n/**\n * @hidden\n */\nconst findElement = (node, predicate, matchSelf = true) => {\n if (!node) {\n return;\n }\n if (matchSelf && predicate(node)) {\n return node;\n }\n node = node.firstChild;\n while (node) {\n if (node.nodeType === 1) {\n const element = findElement(node, predicate);\n if (element) {\n return element;\n }\n }\n node = node.nextSibling;\n }\n};\n/**\n * @hidden\n */\nconst findLastElement = (node, predicate, matchSelf = true) => {\n let last = null;\n findElement(node, node => {\n if (predicate(node)) {\n last = node;\n }\n return false;\n }, matchSelf);\n return last;\n};\n/**\n * @hidden\n */\nconst findFocusable = (element, checkVisibility = true) => {\n return findElement(element, node => isFocusableWithTabKey(node, checkVisibility));\n};\n/**\n * @hidden\n */\nconst findFocusableChild = (element, checkVisibility = true) => {\n return findElement(element, node => isFocusableWithTabKey(node, checkVisibility), false);\n};\n/**\n * @hidden\n */\nconst findLastFocusableChild = (element, checkVisibility = true) => {\n return findLastElement(element, node => isFocusableWithTabKey(node, checkVisibility), false);\n};\n/**\n * @hidden\n */\nfunction rtlScrollPosition(position, element, initial) {\n let result = position;\n if (initial < 0) {\n result = -position;\n } else if (initial > 0) {\n result = element.scrollWidth - element.offsetWidth - position;\n }\n return result;\n}\n\n/**\n * @hidden\n */\nlet DomEventsService = /*#__PURE__*/(() => {\n class DomEventsService {\n constructor() {\n this.cellClick = new EventEmitter();\n this.cellMousedown = new EventEmitter();\n this.click = new EventEmitter();\n this.keydown = new EventEmitter();\n this.focus = new EventEmitter();\n this.focusIn = new EventEmitter();\n this.focusOut = new EventEmitter();\n this.windowBlur = new EventEmitter();\n }\n }\n DomEventsService.ɵfac = function DomEventsService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DomEventsService)();\n };\n DomEventsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomEventsService,\n factory: DomEventsService.ɵfac\n });\n return DomEventsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst isLocked = column => column.parent ? isLocked(column.parent) : !!column.locked;\n/**\n * @hidden\n */\nconst resizeArgs = (column, extra) => Object.assign({\n columns: leafColumns([column]),\n locked: isLocked(column)\n}, extra);\n/**\n * @hidden\n */\nlet ColumnResizingService = /*#__PURE__*/(() => {\n class ColumnResizingService {\n constructor() {\n this.changes = new EventEmitter();\n this.tables = [];\n this.batch = null;\n }\n start(column) {\n this.trackColumns(column);\n const columns = (this.column.isColumnGroup ? [column] : []).concat(leafColumns([column]));\n this.changes.emit({\n columns: columns,\n locked: isLocked(this.column),\n type: 'start'\n });\n }\n resizeColumns(deltaPercent) {\n const action = resizeArgs(this.column, {\n deltaPercent,\n type: 'resizeColumn'\n });\n this.changes.emit(action);\n }\n resizeTable(column, delta) {\n const action = resizeArgs(column, {\n delta,\n type: 'resizeTable'\n });\n this.changes.emit(action);\n }\n resizedColumn(state) {\n this.resizedColumns.push(state);\n }\n end() {\n this.changes.emit({\n columns: [],\n resizedColumns: this.resizedColumns,\n type: 'end'\n });\n }\n registerTable(tableMetadata) {\n this.tables.push(tableMetadata);\n const unregisterTable = () => {\n this.tables.splice(this.tables.indexOf(tableMetadata), 1);\n };\n return unregisterTable;\n }\n measureColumns(info) {\n if (this.batch !== null) {\n this.batch.push(...info);\n } else {\n this.autoFitBatch(info, () => this.end());\n }\n }\n autoFit(...columns) {\n const nonLockedColumns = columns.filter(column => !column.isLocked);\n this.autoFitStart(nonLockedColumns);\n this.autoFitBatch(this.batch, () => {\n if (nonLockedColumns.length < columns.length) {\n const lockedColumns = columns.filter(column => column.isLocked);\n this.autoFitStart(lockedColumns);\n this.autoFitBatch(this.batch, () => this.end());\n } else {\n this.end();\n }\n });\n }\n trackColumns(column) {\n this.resizedColumns = [];\n this.column = column;\n }\n autoFitStart(columns) {\n this.batch = [];\n this.resizedColumns = [];\n if (columns.length === 0) {\n return;\n }\n const locked = columns[0].isLocked;\n this.changes.emit({\n type: 'start',\n columns,\n locked\n });\n this.changes.emit({\n type: 'triggerAutoFit',\n columns,\n locked\n });\n }\n autoFitBatch(info, onComplete) {\n const locked = info.length > 0 ? info[0].column.isLocked : false;\n const observables = this.tables.filter(table => table.locked === locked).map(table => table.autoFit(info));\n zip$1(...observables).pipe(take(1)).subscribe(widths => {\n this.changes.emit({\n columns: info.map(i => i.column),\n type: 'autoFitComplete',\n widths,\n locked\n });\n if (onComplete) {\n onComplete();\n }\n });\n this.batch = null;\n }\n }\n ColumnResizingService.ɵfac = function ColumnResizingService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnResizingService)();\n };\n ColumnResizingService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ColumnResizingService,\n factory: ColumnResizingService.ɵfac,\n providedIn: 'root'\n });\n return ColumnResizingService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst isFilterable = settings => settings !== false;\n/**\n * @hidden\n */\nconst hasFilterMenu = settings => typeof settings === 'string' && settings.indexOf('menu') > -1;\n/**\n * @hidden\n */\nconst hasFilterRow = settings => settings === true || typeof settings === 'string' && settings.indexOf('row') > -1;\nconst contains$1 = (node, predicate) => {\n while (node) {\n if (predicate(node)) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n};\n/**\n * Arguments for the `close` event of the filter and column-menu popup.\n */\nclass PopupCloseEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(e) {\n super();\n this.originalEvent = e;\n }\n}\nconst DEFAULT_POPUP_CLASS = 'k-grid-filter-popup';\n/**\n * The service that is used for the popups of the filter and column menus\n * ([see example]({% slug filter_menu_treelist %}#toc-filter-menu-with-popup)).\n */\nlet SinglePopupService = /*#__PURE__*/(() => {\n class SinglePopupService {\n /**\n * @hidden\n */\n constructor(popupService, renderer, ngZone, scrollSyncService, localization) {\n this.popupService = popupService;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.localization = localization;\n /**\n * Fires when the filter or column menus are about to close because the user clicked outside their popups.\n * Used to prevent the popup from closing.\n */\n this.onClose = new Subject();\n this.scrollSubscription = scrollSyncService.changes.pipe(skip(1)).subscribe(() => this.destroy());\n }\n /**\n * @hidden\n */\n open(anchor, template, popupRef, popupClass = DEFAULT_POPUP_CLASS) {\n const toggle = isPresent(popupRef) && this.popupRef === popupRef;\n this.destroy();\n if (!toggle) {\n const direction = this.localization.rtl ? 'right' : 'left';\n this.popupRef = this.popupService.open({\n anchorAlign: {\n vertical: 'bottom',\n horizontal: direction\n },\n popupAlign: {\n vertical: 'top',\n horizontal: direction\n },\n anchor: anchor,\n popupClass: popupClass,\n content: template,\n positionMode: \"absolute\"\n });\n this.renderer.setAttribute(this.popupRef.popupElement, 'dir', this.localization.rtl ? 'rtl' : 'ltr');\n this.attachClose(anchor);\n }\n return this.popupRef;\n }\n /**\n * @hidden\n */\n destroy() {\n if (this.popupRef) {\n this.detachClose();\n this.popupRef.close();\n this.popupRef = null;\n }\n }\n ngOnDestroy() {\n this.destroy();\n this.scrollSubscription.unsubscribe();\n }\n detachClose() {\n if (this.removeClick) {\n this.removeClick();\n }\n }\n attachClose(skipElement) {\n this.detachClose();\n if (!isDocumentAvailable()) {\n return;\n }\n this.ngZone.runOutsideAngular(() => this.removeClick = this.renderer.listen(\"document\", \"click\", e => {\n if (!contains$1(e.target, x => this.popupRef.popupElement === x || x === skipElement)) {\n const args = new PopupCloseEvent(e);\n this.onClose.next(args);\n if (!args.isDefaultPrevented()) {\n this.destroy();\n }\n }\n }));\n }\n }\n SinglePopupService.ɵfac = function SinglePopupService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SinglePopupService)(i0.ɵɵinject(i1.PopupService), i0.ɵɵinject(i0.Renderer2), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(ScrollSyncService), i0.ɵɵinject(i1$1.LocalizationService));\n };\n SinglePopupService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SinglePopupService,\n factory: SinglePopupService.ɵfac\n });\n return SinglePopupService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/* eslint-disable no-bitwise */\n/**\n * @hidden\n */\nconst append = element => {\n if (!isDocumentAvailable()) {\n return;\n }\n let appended = false;\n return () => {\n if (!appended) {\n document.body.appendChild(element);\n appended = true;\n }\n return element;\n };\n};\n/**\n * @hidden\n */\nconst getDocument$1 = element => element.ownerDocument.documentElement;\n/**\n * @hidden\n */\nconst getWindow$1 = element => element.ownerDocument.defaultView;\n/**\n * @hidden\n */\nconst offset = element => {\n const {\n clientTop,\n clientLeft\n } = getDocument$1(element);\n const {\n pageYOffset,\n pageXOffset\n } = getWindow$1(element);\n const {\n top,\n left\n } = element.getBoundingClientRect();\n return {\n top: top + pageYOffset - clientTop,\n left: left + pageXOffset - clientLeft\n };\n};\n/**\n * @hidden\n * If the target is before the draggable element, returns `true`.\n *\n * DOCUMENT_POSITION_FOLLOWING = 4\n */\nconst isTargetBefore = (draggable, target) => (target.compareDocumentPosition(draggable) & 4) !== 0;\n/**\n * @hidden\n * If the container and the element are the same\n * or if the container holds (contains) the element, returns `true`.\n *\n * DOCUMENT_POSITION_CONTAINED_BY = 16\n */\nconst contains = (element, container) => element === container || (container.compareDocumentPosition(element) & 16) !== 0;\n/**\n * @hidden\n */\nconst position = (target, before) => {\n const targetRect = offset(target);\n const {\n offsetWidth,\n offsetHeight\n } = target;\n const left = targetRect.left + (before ? 0 : offsetWidth);\n const top = targetRect.top;\n const height = offsetHeight;\n return {\n left,\n top,\n height\n };\n};\n\n/**\n * @hidden\n */\nlet DragAndDropService = /*#__PURE__*/(() => {\n class DragAndDropService {\n constructor() {\n this.changes = new EventEmitter();\n this.register = [];\n this.lastTarget = null;\n }\n add(target) {\n this.register.push(target);\n }\n remove(target) {\n this.register = this.register.filter(current => current !== target);\n }\n notifyDrag(draggable, element, mouseEvent) {\n const target = this.targetFor(element);\n if (this.lastTarget === target) {\n return;\n }\n this.changes.next({\n draggable,\n mouseEvent,\n target: this.lastTarget,\n type: 'leave'\n });\n if (target) {\n this.changes.next({\n draggable,\n mouseEvent,\n target,\n type: 'enter'\n });\n }\n this.lastTarget = target;\n }\n notifyDrop(draggable, mouseEvent) {\n this.changes.next({\n draggable,\n mouseEvent,\n target: this.lastTarget,\n type: 'drop'\n });\n this.lastTarget = null;\n }\n targetFor(element) {\n const comparer = contains.bind(null, element);\n return this.register.find(({\n element: {\n nativeElement\n }\n }) => comparer(nativeElement));\n }\n }\n DragAndDropService.ɵfac = function DragAndDropService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DragAndDropService)();\n };\n DragAndDropService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DragAndDropService,\n factory: DragAndDropService.ɵfac\n });\n return DragAndDropService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst updateClass = (element, valid, svg) => {\n const icon = element.querySelector('.k-icon');\n if (svg) {\n const svg = icon.firstElementChild;\n svg.removeChild(svg.firstElementChild);\n const path = valid ? plusIcon.content : cancelIcon.content;\n icon.firstElementChild.innerHTML = path + icon.firstElementChild.innerHTML;\n }\n icon.setAttribute('class', icon.getAttribute('class').replace(/(plus|cancel)/, valid ? 'plus' : 'cancel'));\n};\nconst updateLock = (element, locked = null, svg) => {\n const icon = element.querySelectorAll('.k-icon')[1];\n const value = locked === null ? '' : locked ? `k${svg ? '-svg' : ''}-i-lock` : `k${svg ? '-svg' : ''}-i-unlock`;\n if (svg) {\n icon.setAttribute('class', icon.getAttribute('class').replace(/(k-svg-i-unlock|k-svg-i-lock)/, '').trim() + ` ${value}`);\n icon.firstElementChild.innerHTML = locked ? lockIcon.content : unlockIcon.content;\n } else {\n icon.setAttribute('class', icon.getAttribute('class').replace(/(k-i-unlock|k-i-lock)/, '').trim() + ` ${value}`);\n }\n};\nconst decorate = element => {\n element.className = 'k-header k-drag-clue';\n element.style.position = 'absolute';\n element.style.zIndex = '20000';\n};\nconst svgIconsMarkup = (viewBox, content, safeTitle) => `\n \n \n ${content}\n \n \n \n \n \n \n ${safeTitle}`;\nconst fontIconsMarkup = safeTitle => `\n \n \n \n ${safeTitle}`;\n/**\n * @hidden\n */\nlet DragHintService = /*#__PURE__*/(() => {\n class DragHintService {\n constructor(santizer, iconsService) {\n this.santizer = santizer;\n this.iconsService = iconsService;\n this.cancelIcon = cancelIcon;\n }\n create(title) {\n if (!isDocumentAvailable()) {\n return;\n }\n this.dom = document.createElement(\"div\");\n decorate(this.dom);\n const safeTitle = this.santizer.sanitize(SecurityContext.HTML, title);\n const innerHtml = this.isSVG ? svgIconsMarkup(this.cancelIcon.viewBox, this.cancelIcon.content, safeTitle) : fontIconsMarkup(safeTitle);\n this.dom.innerHTML = innerHtml;\n }\n attach() {\n return append(this.dom);\n }\n remove() {\n if (this.dom && this.dom.parentNode) {\n (function (el) {\n setTimeout(() => document.body.removeChild(el));\n })(this.dom); // hack for IE + pointer events!\n this.dom = null;\n }\n }\n show() {\n this.dom.style.display = \"\";\n }\n hide() {\n this.dom.style.display = \"none\";\n }\n enable() {\n updateClass(this.dom, true, this.isSVG);\n }\n disable() {\n updateClass(this.dom, false, this.isSVG);\n }\n removeLock() {\n updateLock(this.dom, false, this.isSVG);\n }\n toggleLock(locked) {\n updateLock(this.dom, locked, this.isSVG);\n }\n move(move) {\n this.dom.style.top = move.pageY + 'px';\n this.dom.style.left = move.pageX + 'px';\n }\n get isSVG() {\n return (this.iconsService.iconSettings?.type || this.iconsService.changes.value.type) === 'svg';\n }\n }\n DragHintService.ɵfac = function DragHintService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DragHintService)(i0.ɵɵinject(i1$2.DomSanitizer), i0.ɵɵinject(i2.IconsService));\n };\n DragHintService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DragHintService,\n factory: DragHintService.ɵfac\n });\n return DragHintService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet DropCueService = /*#__PURE__*/(() => {\n class DropCueService {\n create() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.dom = document.createElement(\"div\");\n this.dom.className = 'k-grouping-dropclue';\n this.hide();\n }\n attach() {\n return append(this.dom);\n }\n remove() {\n if (this.dom && this.dom.parentElement) {\n document.body.removeChild(this.dom);\n this.dom = null;\n }\n }\n hide() {\n this.dom.style.display = \"none\";\n }\n position({\n left,\n top,\n height\n }) {\n this.dom.style.display = 'block';\n this.dom.style.height = height + 'px';\n this.dom.style.top = top + 'px';\n const width = this.dom.offsetWidth / 2;\n this.dom.style.left = left - width + 'px';\n }\n }\n DropCueService.ɵfac = function DropCueService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DropCueService)();\n };\n DropCueService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DropCueService,\n factory: DropCueService.ɵfac\n });\n return DropCueService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ColumnReorderService = /*#__PURE__*/(() => {\n class ColumnReorderService {\n constructor() {\n this.changes = new EventEmitter();\n }\n reorder(e) {\n this.changes.emit(e);\n }\n }\n ColumnReorderService.ɵfac = function ColumnReorderService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnReorderService)();\n };\n ColumnReorderService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ColumnReorderService,\n factory: ColumnReorderService.ɵfac\n });\n return ColumnReorderService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Arguments for the `columnReorder` event.\n */\nclass ColumnReorderEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor({\n column,\n newIndex,\n oldIndex\n }) {\n super();\n this.column = column;\n this.newIndex = newIndex;\n this.oldIndex = oldIndex;\n }\n}\n\n/**\n * @hidden\n */\nconst FOCUS_ROOT_ACTIVE = new InjectionToken('focus-root-initial-active-state');\n/**\n * @hidden\n */\nlet FocusRoot = /*#__PURE__*/(() => {\n class FocusRoot {\n constructor(active = false) {\n this.active = active;\n this.groups = new Set();\n }\n registerGroup(group) {\n if (this.active) {\n this.groups.add(group);\n }\n }\n unregisterGroup(group) {\n if (this.active) {\n this.groups.delete(group);\n }\n }\n activate() {\n if (this.active) {\n this.groups.forEach(f => f.activate());\n }\n }\n deactivate() {\n if (this.active) {\n this.groups.forEach(f => f.deactivate());\n }\n }\n }\n FocusRoot.ɵfac = function FocusRoot_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FocusRoot)(i0.ɵɵinject(FOCUS_ROOT_ACTIVE, 8));\n };\n FocusRoot.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FocusRoot,\n factory: FocusRoot.ɵfac\n });\n return FocusRoot;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst isButton = matchesNodeName('button');\nconst isInputTag = matchesNodeName('input');\nconst navigableRegex = /(button|checkbox|color|file|radio|reset|submit)/i;\nconst isNavigableInput = element => isInputTag(element) && navigableRegex.test(element.type);\nconst isNavigable = element => !element.disabled && (isButton(element) || isNavigableInput(element));\n/**\n * @hidden\n */\nclass DefaultFocusableElement {\n constructor(host, renderer) {\n this.renderer = renderer;\n this.element = host.nativeElement;\n this.focusable = findFocusable(this.element, false) || this.element;\n }\n get enabled() {\n return this.focusable && !this.focusable.disabled;\n }\n get visible() {\n return this.focusable && isVisible(this.focusable);\n }\n isNavigable() {\n return this.canFocus() && isNavigable(this.element);\n }\n toggle(active) {\n this.renderer.setAttribute(this.focusable, 'tabIndex', active ? '0' : '-1');\n }\n focus() {\n if (this.focusable) {\n this.focusable.focus();\n }\n }\n canFocus() {\n return this.visible && this.enabled;\n }\n hasFocus() {\n return document && document.activeElement !== this.element && closest(document.activeElement, e => e === this.element);\n }\n}\n\n/**\n * Represents group of components that can be activated or focused.\n *\n * A focus group may contain focusable elements, such as rows, cells and input elements.\n *\n * Elements are added to the focus group by tagging them with the `kendoTreeListFocusable` directive.\n * See [Controlling the Focus]({% slug keyboard_navigation_treelist %}#toc-controlling-the-focus).\n *\n * @hidden\n */\nlet FocusGroup = /*#__PURE__*/(() => {\n class FocusGroup {\n /**\n * @hidden\n */\n constructor(root) {\n this.root = root;\n this.active = true;\n this.children = [];\n this.root.registerGroup(this);\n }\n get focusableChildren() {\n return this.children.filter(el => el.canFocus());\n }\n get isActive() {\n return this.active;\n }\n ngOnDestroy() {\n this.root.unregisterGroup(this);\n this.active = true;\n }\n /**\n * @hidden\n */\n registerElement(element) {\n this.unregisterElement(element);\n this.children.push(element);\n }\n /**\n * @hidden\n */\n unregisterElement(element) {\n this.children = this.children.filter(f => f !== element);\n }\n /**\n * Returns a boolean value which indicates if the group will receive focus when the cell is focused.\n * Evaluates to `true` when the focus group has a single focusable element such as a button or a checkbox.\n *\n * @returns A boolean value which indicates if the group will receive focus when the cell is focused.\n */\n isNavigable() {\n const focusable = this.focusableChildren;\n return focusable.length === 1 && focusable[0].isNavigable();\n }\n /**\n * Returns a boolean value which indicates if the focus group contains focusable component.\n *\n * @returns A boolean value which indicates if the focus group contains focusable component.\n */\n canFocus() {\n return this.focusableChildren.length > 0;\n }\n /**\n * Focuses the first focusable component, if any.\n */\n focus() {\n if (this.canFocus() && !this.hasFocus()) {\n this.focusableChildren[0].focus();\n }\n }\n /**\n * @hidden\n */\n activate() {\n this.toggleState(true);\n }\n /**\n * @hidden\n */\n deactivate() {\n this.toggleState(false);\n }\n hasFocus() {\n return this.children.reduce((focused, element) => focused || element.hasFocus(), false);\n }\n toggleState(active) {\n if (this.active !== active) {\n this.active = active;\n this.children.forEach(f => f.toggle(active));\n }\n }\n }\n FocusGroup.ɵfac = function FocusGroup_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FocusGroup)(i0.ɵɵinject(FocusRoot));\n };\n FocusGroup.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FocusGroup,\n factory: FocusGroup.ɵfac\n });\n return FocusGroup;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive that controls the way focusable cell elements receive\n * [focus in a navigable TreeList]({% slug keyboard_navigation_treelist %}).\n *\n * The directive takes as input the `cellContext` from the cell template.\n *\n * ```html\n * \n * \n * \n * \n * \n * ```\n */\nlet FocusableDirective = /*#__PURE__*/(() => {\n class FocusableDirective {\n constructor(hostElement, renderer, group) {\n this.hostElement = hostElement;\n this.renderer = renderer;\n this.group = group;\n this.active = true;\n this._enabled = true;\n }\n /**\n * @hidden\n */\n set enabled(value) {\n if (value !== this.enabled) {\n this._enabled = value;\n if (this.element) {\n this.element.toggle(this.active && value);\n }\n }\n }\n get enabled() {\n return this._enabled;\n }\n /**\n * @hidden\n */\n set addCellContext(value) {\n this.cellContext = value;\n this.enabled = true;\n }\n /**\n * @hidden\n */\n set editCellContext(value) {\n this.cellContext = value;\n this.enabled = true;\n }\n /**\n * @hidden\n */\n set removeCellContext(value) {\n this.cellContext = value;\n this.enabled = true;\n }\n /**\n * @hidden\n */\n set saveCellContext(value) {\n this.cellContext = value;\n this.enabled = true;\n }\n /**\n * @hidden\n */\n set cancelCellContext(value) {\n this.cellContext = value;\n this.enabled = true;\n }\n ngOnInit() {\n if (this.cellContext && this.cellContext.focusGroup) {\n this.group = this.cellContext.focusGroup;\n }\n if (this.group) {\n this.group.registerElement(this);\n }\n }\n ngAfterViewInit() {\n if (!this.element) {\n this.element = new DefaultFocusableElement(this.hostElement, this.renderer);\n }\n if (this.group) {\n const isActive = this.group.isActive;\n this.toggle(isActive);\n }\n }\n ngOnDestroy() {\n if (this.group) {\n this.group.unregisterElement(this);\n }\n }\n /**\n * @hidden\n */\n toggle(active) {\n if (this.element && active !== this.active) {\n this.active = active;\n this.element.toggle(this.enabled && active);\n }\n }\n /**\n * @hidden\n */\n canFocus() {\n return this.enabled && this.element && this.element.canFocus();\n }\n /**\n * @hidden\n */\n isNavigable() {\n return this.enabled && this.element && this.element.isNavigable();\n }\n /**\n * @hidden\n */\n focus() {\n if (this.enabled && this.element) {\n this.element.focus();\n }\n }\n /**\n * @hidden\n */\n hasFocus() {\n return this.enabled && this.element && this.element.hasFocus();\n }\n /**\n * @hidden\n */\n registerElement(element) {\n this.element = element;\n }\n }\n FocusableDirective.ɵfac = function FocusableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FocusableDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(FocusGroup, 8));\n };\n FocusableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FocusableDirective,\n selectors: [[\"\", \"kendoTreeListFocusable\", \"\"], [\"\", \"kendoTreeListAddCommand\", \"\"], [\"\", \"kendoTreeListEditCommand\", \"\"], [\"\", \"kendoTreeListRemoveCommand\", \"\"], [\"\", \"kendoTreeListSaveCommand\", \"\"], [\"\", \"kendoTreeListCancelCommand\", \"\"]],\n inputs: {\n cellContext: [0, \"kendoTreeListFocusable\", \"cellContext\"],\n enabled: \"enabled\",\n addCellContext: [0, \"kendoTreeListAddCommand\", \"addCellContext\"],\n editCellContext: [0, \"kendoTreeListEditCommand\", \"editCellContext\"],\n removeCellContext: [0, \"kendoTreeListRemoveCommand\", \"removeCellContext\"],\n saveCellContext: [0, \"kendoTreeListSaveCommand\", \"saveCellContext\"],\n cancelCellContext: [0, \"kendoTreeListCancelCommand\", \"cancelCellContext\"]\n },\n standalone: true\n });\n return FocusableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass NavigationCursor {\n constructor(model) {\n this.model = model;\n this.changes = new Subject();\n this.activeRow = 0;\n this.activeCol = 0;\n this.virtualCol = 0;\n this.virtualRow = 0;\n }\n get row() {\n return this.model.findRow(this.activeRow);\n }\n get cell() {\n const row = this.row;\n if (row) {\n return this.model.findCell(this.activeCol, row);\n }\n }\n get dataRowIndex() {\n const row = this.row;\n if (row) {\n return row.dataRowIndex;\n }\n return -1;\n }\n /**\n * Assumes and announces a new cursor position.\n */\n reset(rowIndex = this.activeRow, colIndex = this.activeCol, force = true) {\n if (this.activate(rowIndex, colIndex, force)) {\n this.virtualRow = rowIndex;\n this.virtualCol = colIndex;\n }\n }\n activate(rowIndex, colIndex, force) {\n if (!force && this.isActiveRange(rowIndex, colIndex)) {\n return false;\n }\n const prevColIndex = this.activeCol;\n const prevRowIndex = this.activeRow;\n this.activeCol = colIndex;\n this.activeRow = rowIndex;\n this.changes.next({\n colIndex,\n prevColIndex,\n prevRowIndex,\n rowIndex\n });\n return true;\n }\n isActiveRange(rowIndex, colIndex) {\n if (this.activeRow !== rowIndex) {\n return false;\n }\n const cell = this.cell;\n const {\n start,\n end\n } = this.model.cellRange(cell);\n return !cell || start <= colIndex && colIndex <= end;\n }\n /**\n * Assumes a new cursor position without announcing it.\n */\n assume(rowIndex = this.activeRow, colIndex = this.activeCol) {\n this.virtualRow = rowIndex;\n this.virtualCol = colIndex;\n this.activeCol = colIndex;\n this.activeRow = rowIndex;\n }\n /**\n * Announces a current cursor position to subscribers.\n */\n announce() {\n this.changes.next({\n colIndex: this.activeCol,\n prevColIndex: this.activeCol,\n prevRowIndex: this.activeRow,\n rowIndex: this.activeRow\n });\n }\n activateVirtualCell(cell) {\n const rowRange = this.model.rowRange(cell);\n const cellRange = this.model.cellRange(cell);\n const activeCol = this.activeCol;\n const activeRow = this.activeRow;\n if (rowRange.start <= activeRow && activeRow <= rowRange.end && cellRange.start <= activeCol && activeCol <= cellRange.end) {\n this.activeRow = cell.rowIndex;\n this.activeCol = cell.colIndex;\n return true;\n }\n }\n isActive(rowIndex, colIndex) {\n return this.activeCol === colIndex && this.activeRow === rowIndex;\n }\n moveUp(offset = 1) {\n return this.offsetRow(-offset);\n }\n moveDown(offset = 1) {\n return this.offsetRow(offset);\n }\n moveLeft(offset = 1) {\n return this.offsetCol(-offset);\n }\n moveRight(offset = 1) {\n return this.offsetCol(offset);\n }\n lastCellIndex() {\n return this.metadata.columns.leafColumnsToRender.length - 1;\n }\n offsetCol(offset) {\n const prevRow = this.model.findRow(this.virtualRow);\n const lastIndex = this.lastCellIndex();\n const virtualCol = this.virtualCol;\n this.virtualCol = Math.max(0, Math.min(virtualCol + offset, lastIndex));\n let nextColIndex = this.virtualCol;\n const nextRowIndex = this.virtualRow;\n let cell = this.model.findCell(this.virtualCol, prevRow);\n if (!cell && this.metadata.virtualColumns) {\n return this.activate(nextRowIndex, nextColIndex);\n }\n if (cell.colSpan > 1 && cell.colIndex <= virtualCol && virtualCol < cell.colIndex + cell.colSpan) {\n nextColIndex = offset > 0 ? Math.min(cell.colIndex + cell.colSpan, lastIndex) : Math.max(0, cell.colIndex + offset);\n const nextCell = this.model.findCell(nextColIndex, prevRow);\n if (cell !== nextCell) {\n cell = nextCell;\n this.virtualCol = cell.colIndex;\n } else {\n this.virtualCol = virtualCol;\n }\n }\n return this.activate(cell.rowIndex, cell.colIndex);\n }\n offsetRow(offset) {\n let nextColIndex = this.virtualCol;\n if (this.metadata && this.metadata.isVirtual) {\n const maxIndex = this.metadata.maxLogicalRowIndex;\n let nextIndex = Math.max(0, Math.min(this.activeRow + offset, maxIndex));\n const nextRow = this.model.findRow(nextIndex);\n if (nextRow) {\n // remove duplication\n let cell = this.model.findCell(this.virtualCol, nextRow);\n if (cell.rowIndex <= this.virtualRow && offset > 0 && cell.rowSpan > 1) {\n cell = this.model.findCell(this.virtualCol, this.model.findRow(cell.rowIndex + cell.rowSpan - 1 + offset));\n }\n nextIndex = cell.rowIndex;\n nextColIndex = cell.colIndex;\n }\n this.virtualRow = nextIndex;\n return this.activate(nextIndex, nextColIndex);\n }\n const nextRow = this.model.findRow(this.virtualRow + offset) || this.model.nextRow(this.virtualRow, offset);\n if (!nextRow) {\n return false;\n }\n let cell = this.model.findCell(this.virtualCol, nextRow);\n if (cell && cell.rowIndex <= this.virtualRow && offset > 0 && cell.rowSpan > 1) {\n // spanned cell go to next\n const nextPos = cell.rowIndex + cell.rowSpan - 1 + offset;\n cell = this.model.findCell(this.virtualCol, this.model.findRow(nextPos));\n }\n if (!cell && this.metadata.virtualColumns) {\n return this.activate(this.virtualRow + offset, this.virtualCol);\n }\n this.virtualRow = cell.rowIndex;\n return this.activate(this.virtualRow, cell.colIndex);\n }\n}\n\n/**\n * @hidden\n */\nclass ItemMap {\n constructor() {\n this.count = 0;\n this.items = {};\n }\n get first() {\n if (this.count > 0) {\n let result;\n this.forEach(item => {\n result = item;\n return true;\n });\n return result;\n }\n }\n get last() {\n if (this.count > 0) {\n const keys = Object.keys(this.items);\n return this.items[keys[keys.length - 1]];\n }\n }\n removeItem(key) {\n if (this.items[key]) {\n delete this.items[key];\n this.count--;\n }\n }\n setItem(key, item) {\n if (!this.items[key]) {\n this.count++;\n }\n this.items[key] = item;\n }\n getItem(key) {\n return this.items[key];\n }\n toArray() {\n const result = [];\n this.forEach(item => {\n result.push(item);\n });\n return result;\n }\n forEach(callback) {\n for (const key in this.items) {\n if (this.items.hasOwnProperty(key) && callback(this.items[key])) {\n return this.items[key];\n }\n }\n }\n find(callback) {\n return this.forEach(callback);\n }\n}\n\n/**\n * @hidden\n */\nclass ModelCell {\n constructor(modelRow, cell) {\n this.uid = cell.uid;\n this.column = cell.column;\n this.colIndex = cell.logicalColIndex;\n this.rowIndex = modelRow.index;\n this.colSpan = cell.colSpan;\n this.rowSpan = cell.rowSpan;\n this.dataItem = modelRow.dataItem;\n this.dataRowIndex = modelRow.dataRowIndex;\n this.focusGroup = cell.focusGroup;\n this.expandable = cell.expandable;\n }\n focusContent() {\n if (this.focusGroup) {\n this.focusGroup.focus();\n }\n }\n}\n\n/**\n * @hidden\n *\n * Contains information for the currently rendered rows and cells.\n */\nclass NavigationModel {\n constructor() {\n this.rows = new ItemMap();\n }\n get firstRow() {\n return this.rows.first;\n }\n get lastRow() {\n return this.rows.last;\n }\n registerCell(cell) {\n const row = this.rows.getItem(cell.logicalRowIndex);\n if (!row) {\n return;\n }\n const modelCell = new ModelCell(row, cell);\n row.cells.setItem(cell.logicalColIndex, modelCell);\n return modelCell;\n }\n unregisterCell(index, rowIndex, cell) {\n const row = this.rows.getItem(rowIndex);\n if (row) {\n const match = row.cells.getItem(index);\n if (match && match.uid === cell.uid) {\n row.cells.removeItem(index);\n }\n }\n }\n registerRow(row) {\n const modelRow = {\n uid: row.uid,\n index: row.logicalRowIndex,\n dataItem: row.dataItem,\n dataRowIndex: row.dataRowIndex,\n cells: new ItemMap(),\n isNew: row.isNew\n };\n this.rows.setItem(row.logicalRowIndex, modelRow);\n }\n updateRow(row) {\n const current = this.rows.getItem(row.logicalRowIndex);\n if (current) {\n Object.assign(current, {\n dataItem: row.dataItem,\n dataRowIndex: row.dataRowIndex\n });\n }\n }\n unregisterRow(index, row) {\n const match = this.rows.getItem(index);\n if (match && match.uid === row.uid) {\n this.rows.removeItem(index);\n }\n }\n cellRange(cell) {\n if (cell) {\n const start = cell.colIndex;\n const end = cell.colIndex + (cell.colSpan || 1) - 1;\n return {\n start,\n end\n };\n }\n return {};\n }\n rowRange(cell) {\n if (cell) {\n const start = cell.rowIndex;\n const end = cell.rowIndex + (cell.rowSpan || 1) - 1;\n return {\n start,\n end\n };\n }\n return {};\n }\n nextRow(rowIndex, offset) {\n const rows = this.rows.toArray();\n const row = this.rows.getItem(rowIndex);\n const position = rows.indexOf(row);\n const next = rows[position + offset];\n return next;\n }\n findRow(index) {\n return this.rows.getItem(index);\n }\n findCell(index, row) {\n if (!row) {\n return;\n }\n const rowIndex = row.index;\n let cell = row.cells.getItem(index);\n let currentIndex = rowIndex;\n while (!cell && row) {\n row = this.rows.getItem(currentIndex);\n cell = this.rowCell(index, row);\n currentIndex--;\n }\n if (cell && rowIndex <= row.index + (cell.rowSpan || 1) - 1) {\n return cell;\n }\n }\n rowCell(index, row) {\n if (!row || !row.cells.count) {\n return;\n }\n const firstCell = row.cells.first;\n let cell,\n currentIndex = index;\n while (!cell && currentIndex >= firstCell.colIndex) {\n cell = row.cells.getItem(currentIndex);\n currentIndex--;\n }\n if (cell && index <= cell.colIndex + (cell.colSpan || 1) - 1) {\n return cell;\n }\n }\n}\n\n/**\n * @hidden\n */\nclass TreeListFocusableElement {\n constructor(navigationService) {\n this.navigationService = navigationService;\n }\n focus() {\n this.navigationService.focusCell();\n }\n toggle(active) {\n this.navigationService.toggle(active);\n }\n canFocus() {\n return true;\n }\n hasFocus() {\n return this.navigationService.hasFocus();\n }\n isNavigable() {\n return false;\n }\n}\n\n/**\n * Arguments for the TreeList expand and collapse events ([see examples]({% slug treelist_expanded_state %})).\n */\nclass ExpandEvent extends PreventableEvent {\n /**\n * @hidden\n */\n constructor(args) {\n super();\n this.expand = args.expand;\n this.dataItem = args.dataItem;\n }\n}\n\n/**\n * @hidden\n */\nconst defaultExpanded = _item => true;\n/**\n * @hidden\n */\nlet ExpandStateService = /*#__PURE__*/(() => {\n class ExpandStateService {\n constructor() {\n this.changes = new Subject();\n this.isExpanded = defaultExpanded;\n }\n toggleState(dataItem) {\n const isExpanded = this.isExpanded(dataItem);\n this.changes.next(new ExpandEvent({\n dataItem: dataItem,\n expand: !isExpanded\n }));\n }\n expand(dataItem) {\n if (!this.isExpanded(dataItem)) {\n this.changes.next(new ExpandEvent({\n dataItem: dataItem,\n expand: true\n }));\n }\n }\n collapse(dataItem) {\n if (this.isExpanded(dataItem)) {\n this.changes.next(new ExpandEvent({\n dataItem: dataItem,\n expand: false\n }));\n }\n }\n }\n ExpandStateService.ɵfac = function ExpandStateService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ExpandStateService)();\n };\n ExpandStateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ExpandStateService,\n factory: ExpandStateService.ɵfac\n });\n return ExpandStateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ScrollRequestService = /*#__PURE__*/(() => {\n class ScrollRequestService {\n constructor() {\n this.requests = new Subject();\n }\n scrollTo(request) {\n this.requests.next(request);\n }\n }\n ScrollRequestService.ɵfac = function ScrollRequestService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScrollRequestService)();\n };\n ScrollRequestService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollRequestService,\n factory: ScrollRequestService.ɵfac\n });\n return ScrollRequestService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Arguments for the TreeList `selectionChange` event.\n */\nclass SelectionChangeEvent {\n /**\n * @hidden\n */\n constructor(action, items) {\n this.action = action;\n this.items = items;\n }\n}\n\n/**\n * @hidden\n */\nconst defaultSelected = _item => false;\nconst noop = () => false;\n/**\n * @hidden\n */\nlet SelectionService = /*#__PURE__*/(() => {\n class SelectionService {\n constructor() {\n this.changes = new Subject();\n this.isSelected = defaultSelected;\n this.isRowSelected = noop;\n this.isCellSelected = noop;\n this.enabled = false;\n this.dragging = false;\n this._settings = {};\n this.tables = [];\n this.subscriptions = new Subscription();\n }\n set settings(value) {\n if (typeof value === 'object') {\n this._settings = value;\n } else {\n this._settings = {\n enabled: value\n };\n }\n this.enabled = this._settings.enabled !== false && !this._settings.readonly;\n if (this._settings.enabled !== false) {\n if (this._settings.mode === 'cell') {\n this.isCellSelected = this.cellSelected;\n this.isRowSelected = noop;\n } else {\n this.isCellSelected = noop;\n this.isRowSelected = this.rowSelected;\n }\n } else {\n this.isCellSelected = noop;\n this.isRowSelected = noop;\n }\n }\n get settings() {\n return this._settings;\n }\n get enableMarquee() {\n const checkboxOnly = this.settings?.checkboxOnly;\n if (!this.settings || checkboxOnly) {\n return false;\n }\n const dragAndMultiple = typeof this.settings === 'object' && isPresent$1(this.settings) && this.settings.multiple && this.settings.enabled !== false && !this.settings.checkboxOnly && this.settings.drag !== false;\n return this.enabled && dragAndMultiple;\n }\n get enableMultiple() {\n return this.enabled && this.settings.multiple;\n }\n get rowSelection() {\n return this.settings.mode !== 'cell';\n }\n init(treelist) {\n this.view = treelist.view;\n this.columnsContainer = treelist.columnsContainer;\n this.subscriptions.add(merge(treelist.pageChange, treelist.dataStateChange).subscribe(() => {\n this.selectionOrigin = null;\n }));\n this.subscriptions.add(treelist.domEvents.cellMousedown.subscribe(args => {\n if (this.enabled && this._settings.multiple && args.originalEvent.shiftKey) {\n args.originalEvent.preventDefault();\n }\n }));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n registerTable(table) {\n this.tables.push(table);\n }\n unregisterTable(table) {\n this.tables = this.tables.filter(t => t !== table);\n }\n click(args, toggle) {\n if (this.dragging) {\n this.dragging = false;\n return;\n }\n const isCheckbox = args.originalEvent.target ? hasClasses$1(args.originalEvent.target, 'k-checkbox') : true;\n if (this.rowSelection && this.settings.checkboxOnly && !isCheckbox) {\n return;\n }\n const {\n dataItem,\n column,\n columnIndex,\n originalEvent\n } = args;\n if (originalEvent.keyCode === Keys.Enter || originalEvent.button && originalEvent.button !== 0) {\n return;\n }\n const selected = this.isSelected(dataItem, column, columnIndex);\n const ctrlKey = originalEvent.ctrlKey || originalEvent.metaKey;\n const toggleSelected = ctrlKey || toggle;\n if (this._settings.multiple) {\n if (originalEvent.shiftKey) {\n const origin = this.selectionOrigin || {\n columnIndex: 0,\n column: this.leafColumns[0],\n item: this.view.firstItem.data\n };\n this.selectRange({\n item: dataItem,\n column,\n columnIndex\n }, origin);\n } else {\n this.selectionOrigin = {\n item: dataItem,\n column,\n columnIndex\n };\n const action = toggleSelected ? selected ? 'remove' : 'add' : 'select';\n this.changes.next(new SelectionChangeEvent(action, [{\n dataItem,\n column,\n columnIndex\n }]));\n }\n } else if (!selected || toggleSelected) {\n const action = selected && toggleSelected ? 'remove' : 'select';\n this.changes.next(new SelectionChangeEvent(action, [{\n dataItem,\n column,\n columnIndex\n }]));\n }\n if (ctrlKey) {\n originalEvent.preventDefault();\n }\n }\n checkboxClick(args) {\n if (this.dragging) {\n this.dragging = false;\n return;\n }\n if (args.column.checkChildren && args.viewItem.hasChildren && !args.originalEvent.shiftKey && !args.originalEvent.ctrlKey) {\n const data = [args.dataItem];\n const selected = Boolean(args.viewItem.selected);\n ViewCollection.loadView({\n fields: Object.assign({}, this.view.fieldAccessor(), {\n data: data,\n hasFooter: false,\n pageable: false,\n isVirtual: false\n }),\n loaded: this.view.loaded,\n selectionState: this.view.selectionState\n }).subscribe(view => {\n if (!view) {\n return;\n }\n const selectedItems = view.data.filter(item => Boolean(item.selected) === selected).map(item => ({\n dataItem: item.data\n }));\n this.changes.next(new SelectionChangeEvent(selected ? 'remove' : 'add', selectedItems));\n });\n } else {\n this.click(args, true);\n }\n }\n toggleAll(select) {\n ViewCollection.loadView({\n fields: Object.assign({}, this.view.fieldAccessor(), {\n hasFooter: false,\n pageable: false,\n isVirtual: false\n }),\n loaded: this.view.loaded,\n selectionState: this.view.selectionState\n }).subscribe(view => {\n if (!view) {\n return;\n }\n const selectedItems = view.data.filter(item => Boolean(item.selected) !== select).map(item => ({\n dataItem: item.data\n }));\n this.changes.next(new SelectionChangeEvent(select ? 'add' : 'remove', selectedItems));\n });\n }\n selectRange(firstPoint, secondPoint) {\n const rangeItems = this.rangeItems(firstPoint, secondPoint);\n this.changes.next(new SelectionChangeEvent('select', rangeItems));\n }\n rangeItems(firstPoint, secondPoint) {\n const firstIndex = this.view.findIndex(item => item.data === firstPoint.item || item === firstPoint.item);\n const secondIndex = this.view.findIndex(item => item.data === secondPoint.item || item === secondPoint.item);\n const startIndex = Math.min(firstIndex, secondIndex);\n const endIndex = Math.max(firstIndex, secondIndex);\n const rangeItems = this.view.data.slice(startIndex, endIndex + 1).filter(item => item.type === 'data');\n if (this._settings.mode === 'cell') {\n const leafColumns = this.leafColumns;\n const startColumnIndex = Math.min(firstPoint.columnIndex, secondPoint.columnIndex);\n const endColumnIndex = Math.max(firstPoint.columnIndex, secondPoint.columnIndex);\n const selectedItems = [];\n for (let idx = 0; idx < rangeItems.length; idx++) {\n for (let columnIdx = startColumnIndex; columnIdx <= endColumnIndex; columnIdx++) {\n selectedItems.push({\n dataItem: rangeItems[idx].data,\n column: leafColumns[columnIdx],\n columnIndex: columnIdx\n });\n }\n }\n return selectedItems;\n }\n return rangeItems.map(item => ({\n dataItem: item.data\n }));\n }\n updateSelectedState() {\n if (this.rowSelection) {\n this.view.updateSelectedState();\n }\n }\n targetArgs(target, skipFocusable) {\n let result;\n this.tables.some(t => {\n result = t.targetArgs(target, skipFocusable);\n return result;\n });\n return result;\n }\n rowSelected(dataItem) {\n return this.isSelected(dataItem);\n }\n cellSelected(dataItem, column, columnIndex) {\n return this.isSelected(dataItem, column, columnIndex);\n }\n // expose in the treelist?\n get leafColumns() {\n return this.columnsContainer.lockedLeafColumns.toArray().concat(this.columnsContainer.nonLockedLeafColumns.toArray());\n }\n }\n SelectionService.ɵfac = function SelectionService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SelectionService)();\n };\n SelectionService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SelectionService,\n factory: SelectionService.ɵfac\n });\n return SelectionService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst isInSameTreeList = (element, treelistElement) => closest(element, matchesNodeName('kendo-treelist')) === treelistElement;\nconst matchHeaderCell = matchesNodeName('th');\nconst matchDataCell = matchesNodeName('td');\nconst matchCell = element => matchDataCell(element) || matchHeaderCell(element);\nconst treelistCell = (element, treelistElement) => {\n let target = closest(element, matchCell);\n while (target && !isInSameTreeList(target, treelistElement)) {\n target = closest(target.parentElement, matchCell);\n }\n return target;\n};\nconst targetCell = (target, treelistElement) => {\n const cell = treelistCell(target, treelistElement);\n const row = closest(cell, matchesNodeName('tr'));\n if (cell && row) {\n let rowIndex = row.getAttribute('aria-rowindex') || row.getAttribute('data-kendo-treelist-row-index');\n rowIndex = rowIndex ? parseInt(rowIndex, 10) - 1 : null;\n let colIndex = cell.getAttribute('aria-colindex');\n colIndex = colIndex ? parseInt(colIndex, 10) - 1 : null;\n if (rowIndex !== null && colIndex !== null) {\n return {\n colIndex,\n rowIndex,\n element: cell\n };\n }\n }\n};\nconst isArrowKey = keyCode => keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight || keyCode === Keys.ArrowUp || keyCode === Keys.ArrowDown;\nconst isNavigationKey = keyCode => isArrowKey(keyCode) || keyCode === Keys.PageUp || keyCode === Keys.PageDown || keyCode === Keys.Home || keyCode === Keys.End;\nconst isInput = matchesNodeName('input');\nconst isTextInput = element => element && isInput(element) && element.type.toLowerCase() === 'text';\nconst isPrintableCharacter = str => str.length === 1 && str.match(/\\S/);\n/**\n * @hidden\n */\nclass NavigationViewport {\n constructor(firstItemIndex, lastItemIndex) {\n this.firstItemIndex = firstItemIndex;\n this.lastItemIndex = lastItemIndex;\n }\n containsRow(dataRowIndex) {\n const headerRow = dataRowIndex < 0;\n return headerRow || dataRowIndex >= this.firstItemIndex && dataRowIndex <= this.lastItemIndex;\n }\n intersects(start, end) {\n return start <= this.firstItemIndex && this.lastItemIndex <= end || this.firstItemIndex <= start && start <= this.lastItemIndex || this.firstItemIndex <= end && end <= this.lastItemIndex;\n }\n}\n/**\n * @hidden\n */\nlet NavigationService = /*#__PURE__*/(() => {\n class NavigationService {\n constructor(zone, domEvents, pagerContextService, scrollRequestService, focusRoot, editService, localization, expandState, selectionService, changeDetector, focusableParent) {\n this.zone = zone;\n this.domEvents = domEvents;\n this.pagerContextService = pagerContextService;\n this.scrollRequestService = scrollRequestService;\n this.focusRoot = focusRoot;\n this.editService = editService;\n this.localization = localization;\n this.expandState = expandState;\n this.selectionService = selectionService;\n this.changeDetector = changeDetector;\n this.focusableParent = focusableParent;\n this.cellKeydown = new EventEmitter();\n this.activeRowIndex = 0;\n this.alive = false;\n this.active = true;\n this.mode = 0 /* NavigationMode.Standby */;\n this.model = new NavigationModel();\n this.cursor = new NavigationCursor(this.model);\n this.changes = this.cursor.changes;\n }\n set metadata(value) {\n this.meta = value;\n this.cursor.metadata = value;\n }\n get metadata() {\n return this.meta;\n }\n get enabled() {\n return this.alive;\n }\n get activeCell() {\n if (this.mode !== 0 /* NavigationMode.Standby */) {\n return this.cursor.cell;\n }\n }\n get activeRow() {\n if (this.mode !== 0 /* NavigationMode.Standby */) {\n return Object.assign({}, this.cursor.row, {\n cells: this.cursor.row.cells.toArray()\n });\n }\n }\n get activeDataRow() {\n return Math.max(0, this.activeRowIndex - this.meta.headerRows);\n }\n init(meta) {\n this.alive = true;\n this.focusRoot.active = true;\n this.metadata = meta;\n const onStableSubscriber = (...operators) => args => this.zone.isStable ? from([true]).pipe(map(() => args)) : this.zone.onStable.pipe(take(1), map(() => args), ...operators);\n const onStable = onStableSubscriber();\n this.subs = new Subscription();\n this.subs.add(this.cursor.changes.subscribe(args => this.onCursorChanges(args)));\n this.subs.add(this.domEvents.focus.pipe(switchMap(onStable)).subscribe(args => this.navigateTo(args.target)));\n this.subs.add(this.domEvents.focusOut.pipe(filter(() => this.mode !== 0 /* NavigationMode.Standby */), switchMap(onStableSubscriber(takeUntil(this.domEvents.focus)))).subscribe(args => this.onFocusOut(args)));\n this.subs.add(this.domEvents.windowBlur.pipe(filter(() => this.mode !== 0 /* NavigationMode.Standby */)).subscribe(() => this.onWindowBlur()));\n this.subs.add(\n // Closing the editor will not always trigger focusout in Firefox.\n // To get around this, we ensure that the cell is closed after editing.\n this.editService.changes.pipe(filter(e => {\n if (e instanceof CellCloseEvent) {\n return !e.isDefaultPrevented();\n }\n return e.action !== 'edit' && this.mode === 2 /* NavigationMode.Content */;\n }), switchMap(onStable)).subscribe(() => this.leaveCell()));\n this.subs.add(this.pagerContextService.pageChange.subscribe(() => this.cursor.reset(0, 0)));\n this.subs.add(this.domEvents.keydown.subscribe(args => this.onKeydown(args)));\n this.subs.add(this.domEvents.keydown.pipe(filter(args => args.keyCode === Keys.Tab && this.mode === 2 /* NavigationMode.Content */), switchMapTo(this.domEvents.focusOut.pipe(takeUntil(\n // Timeout if focusOut doesn't fire very soon\n interval(0).pipe(take(1)))))).subscribe(() => this.onTabout()));\n if (this.focusableParent) {\n const element = new TreeListFocusableElement(this);\n this.focusableParent.registerElement(element);\n }\n this.deactivateElements();\n }\n ngOnDestroy() {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n this.alive = false;\n }\n registerCell(cell) {\n if (cell.logicalRowIndex !== this.pendingRowIndex) {\n const modelCell = this.model.registerCell(cell);\n if (this.virtualCell && this.cursor.activateVirtualCell(modelCell)) {\n this.virtualCell = false;\n }\n }\n }\n registerCellOnCurrentRow(cell) {\n if (cell.logicalRowIndex === this.pendingRowIndex) {\n this.model.registerCell(cell);\n }\n }\n unregisterCell(index, rowIndex, cell) {\n this.model.unregisterCell(index, rowIndex, cell);\n }\n registerRow(row) {\n this.model.registerRow(row);\n this.pendingRowIndex = row.logicalRowIndex;\n }\n updateRow(row) {\n this.model.updateRow(row);\n }\n unregisterRow(index, row) {\n this.model.unregisterRow(index, row);\n }\n isCellFocusable(cell) {\n return this.alive && this.active && this.mode !== 2 /* NavigationMode.Content */ && this.cursor.isActive(cell.logicalRowIndex, cell.logicalColIndex);\n }\n isCellFocused(cell) {\n return this.mode === 1 /* NavigationMode.Cursor */ && this.isCellFocusable(cell);\n }\n navigateTo(el) {\n if (!this.alive || !isDocumentAvailable()) {\n return;\n }\n const cell = targetCell(el, this.meta.treelistElement.nativeElement);\n if (!cell) {\n return;\n }\n const oldMode = this.mode;\n const focusInCell = contains$2(cell.element, document.activeElement);\n const focusInActiveRowContent = this.mode === 2 /* NavigationMode.Content */ && this.activeRowIndex === cell.rowIndex && el !== cell.element;\n if (focusInCell) {\n this.mode = 2 /* NavigationMode.Content */;\n this.cursor.reset(cell.rowIndex, cell.colIndex);\n this.activateRow();\n } else if (!focusInActiveRowContent) {\n this.mode = 1 /* NavigationMode.Cursor */;\n this.deactivateElements();\n const alreadyActive = this.cursor.isActive(cell.rowIndex, cell.colIndex);\n const isCursor = oldMode === 1 /* NavigationMode.Cursor */ && alreadyActive;\n if (!isCursor) {\n this.cursor.reset(cell.rowIndex, cell.colIndex);\n }\n }\n }\n tryFocus(el) {\n this.activateElements();\n const focusable = findFocusableChild(el);\n if (focusable) {\n const cell = targetCell(focusable, this.meta.treelistElement.nativeElement);\n if (cell) {\n this.cursor.reset(cell.rowIndex, cell.colIndex);\n this.deactivateElements();\n this.enterCell();\n }\n focusable.focus();\n } else {\n this.deactivateElements();\n }\n return !!focusable;\n }\n needsViewport() {\n return this.meta && this.meta.isVirtual;\n }\n setViewport(firstItemIndex, lastItemIndex) {\n this.viewport = new NavigationViewport(firstItemIndex, lastItemIndex);\n if (this.enabled && this.meta && this.meta.isVirtual && this.activeDataRow > -1) {\n const dataRowIndex = this.activeDataRow;\n const ahead = firstItemIndex - dataRowIndex;\n const behind = dataRowIndex - lastItemIndex;\n if (ahead > 0) {\n this.cursor.reset(firstItemIndex + this.meta.headerRows);\n } else if (behind > 0) {\n this.cursor.reset(lastItemIndex - this.meta.headerRows);\n }\n }\n }\n setColumnViewport(firstItemIndex, lastItemIndex) {\n this.columnViewport = new NavigationViewport(firstItemIndex, lastItemIndex);\n }\n focusCell(rowIndex = undefined, colIndex = undefined) {\n this.mode = 1 /* NavigationMode.Cursor */;\n this.cursor.reset(rowIndex, colIndex);\n return this.activeCell;\n }\n focusNextCell(wrap = true) {\n return this.focusAdjacentCell(true, wrap);\n }\n focusPrevCell(wrap = true) {\n return this.focusAdjacentCell(false, wrap);\n }\n toggle(active) {\n this.active = active;\n this.cursor.announce();\n }\n hasFocus() {\n return this.mode === 1 /* NavigationMode.Cursor */ || this.mode === 2 /* NavigationMode.Content */;\n }\n autoFocusCell(start, end) {\n return !this.meta.virtualColumns || end < this.meta.columns.lockedLeafColumns.length || this.columnViewport.intersects(start, end);\n }\n focusAdjacentCell(fwd, wrap) {\n this.focusCell();\n let success = fwd ? this.moveCursorFwd() : this.moveCursorBwd();\n if (wrap && !success) {\n success = fwd ? this.cursor.moveDown(1) : this.cursor.moveUp(1);\n if (success) {\n const row = this.cursor.row;\n const colIdx = fwd ? 0 : this.cursor.lastCellIndex();\n this.cursor.reset(row.index, colIdx);\n }\n }\n if (success) {\n return this.activeCell;\n } else {\n this.mode = 0 /* NavigationMode.Standby */;\n this.cursor.announce();\n }\n return null;\n }\n enterCell() {\n const cell = this.cursor.cell;\n if (!cell) {\n return;\n }\n const group = cell.focusGroup;\n const focusable = group && group.canFocus();\n this.mode = focusable ? 2 /* NavigationMode.Content */ : 1 /* NavigationMode.Cursor */;\n this.cursor.announce();\n if (focusable) {\n this.activateRow();\n group.focus();\n }\n }\n leaveCell() {\n const cell = this.cursor.cell;\n if (!cell) {\n return;\n }\n const group = cell.focusGroup;\n const focusable = group && group.canFocus();\n if (!focusable) {\n this.deactivateElements();\n }\n this.mode = 1 /* NavigationMode.Cursor */;\n this.cursor.announce();\n }\n activateElements() {\n this.focusRoot.activate();\n }\n deactivateElements() {\n this.focusRoot.deactivate();\n }\n activateRow() {\n this.cursor.row.cells.forEach(cell => cell.focusGroup && cell.focusGroup.activate());\n }\n moveCursorFwd() {\n return this.localization.rtl ? this.cursor.moveLeft() : this.cursor.moveRight();\n }\n moveCursorBwd() {\n return this.localization.rtl ? this.cursor.moveRight() : this.cursor.moveLeft();\n }\n updateSelection(args) {\n if (this.selectionService.enabled) {\n this.selectionService.click({\n dataItem: this.cursor.row.dataItem,\n column: this.cursor.cell.column,\n columnIndex: this.cursor.cell.colIndex,\n originalEvent: args\n });\n }\n }\n onCursorKeydown(args) {\n let preventDefault = false;\n const modifier = args.ctrlKey || args.metaKey;\n const step = modifier ? 5 : 1;\n if (!this.onCellKeydown(args)) {\n return;\n }\n const row = this.cursor.row;\n switch (args.keyCode) {\n case Keys.Space:\n this.updateSelection(args);\n preventDefault = this.selectionService.enabled;\n break;\n case Keys.KeyA:\n if (args.ctrlKey && this.selectionService.enabled) {\n this.zone.run(() => this.selectionService.toggleAll(true));\n preventDefault = true;\n }\n break;\n case Keys.ArrowDown:\n preventDefault = this.cursor.moveDown(step);\n if (preventDefault && args.shiftKey) {\n this.updateSelection(args);\n }\n break;\n case Keys.ArrowUp:\n preventDefault = this.cursor.moveUp(step);\n if (preventDefault && args.shiftKey) {\n this.updateSelection(args);\n }\n break;\n case Keys.ArrowRight:\n if (args.altKey) {\n this.zone.run(() => {\n this.expandState.expand(row.dataItem);\n });\n preventDefault = true;\n } else {\n preventDefault = this.moveCursorFwd();\n if (preventDefault && args.shiftKey) {\n this.updateSelection(args);\n }\n }\n break;\n case Keys.ArrowLeft:\n if (args.altKey) {\n this.zone.run(() => {\n this.expandState.collapse(row.dataItem);\n });\n preventDefault = true;\n } else {\n preventDefault = this.moveCursorBwd();\n if (preventDefault && args.shiftKey) {\n this.updateSelection(args);\n }\n }\n break;\n case Keys.PageDown:\n if (this.metadata.isVirtual && this.viewport) {\n let nextItemIndex = this.meta.headerRows + this.viewport.lastItemIndex + 1;\n nextItemIndex = Math.min(this.meta.maxLogicalRowIndex, nextItemIndex);\n this.cursor.reset(nextItemIndex);\n preventDefault = true;\n } else if (this.metadata.hasPager) {\n this.zone.run(() => this.pagerContextService.nextPage());\n preventDefault = true;\n }\n break;\n case Keys.PageUp:\n if (this.metadata.isVirtual && this.viewport) {\n const viewportSize = this.viewport.lastItemIndex - this.viewport.firstItemIndex;\n const firstItemIndex = this.viewport.firstItemIndex;\n const nextItemIndex = Math.max(this.meta.headerRows, firstItemIndex - viewportSize - 1);\n this.cursor.reset(nextItemIndex);\n preventDefault = true;\n } else if (this.metadata.hasPager) {\n this.zone.run(() => this.pagerContextService.prevPage());\n preventDefault = true;\n }\n break;\n case Keys.Home:\n if (modifier) {\n if (this.meta.isVirtual) {\n this.cursor.reset(this.meta.headerRows, 0, false);\n } else {\n this.cursor.reset(this.model.firstRow.index, 0, false);\n }\n } else {\n this.cursor.reset(row.index, 0, false);\n }\n preventDefault = true;\n break;\n case Keys.End:\n if (modifier) {\n if (this.meta.isVirtual) {\n const lastRowIndex = this.meta.maxLogicalRowIndex;\n this.cursor.reset(lastRowIndex, this.cursor.lastCellIndex(), false);\n } else {\n this.cursor.reset(this.model.lastRow.index, this.cursor.lastCellIndex(), false);\n }\n } else {\n const lastIndex = this.cursor.lastCellIndex();\n const cell = this.model.findCell(lastIndex, row);\n if (cell) {\n this.cursor.reset(cell.rowIndex, cell.colIndex);\n } else {\n this.cursor.reset(row.index, lastIndex);\n }\n }\n preventDefault = true;\n break;\n case Keys.Enter:\n if (!args.ctrlKey && !args.shiftKey) {\n const editing = this.editService.isEditingCell();\n const cell = this.cursor.cell;\n if (!editing && cell.expandable === true) {\n this.zone.run(() => {\n this.expandState.toggleState(row.dataItem);\n });\n } else {\n this.enterCell();\n if (!cell.focusGroup.isNavigable()) {\n preventDefault = true;\n }\n }\n }\n break;\n default:\n if (!args.ctrlKey && !args.altKey && isPrintableCharacter(args.key)) {\n this.enterCell();\n }\n }\n if (preventDefault) {\n args.preventDefault();\n }\n }\n onContentKeydown(args) {\n if (!this.onCellKeydown(args)) {\n return;\n }\n const confirm = !args.defaultPrevented && args.keyCode === Keys.Enter && isTextInput(args.srcElement);\n if (args.keyCode === Keys.Escape || args.keyCode === Keys.F2 || confirm) {\n this.leaveCell();\n this.cursor.reset();\n args.stopPropagation();\n } else if (isNavigationKey(args.keyCode) && this.cursor.cell.focusGroup.isNavigable()) {\n this.onCursorKeydown(args);\n if (args.defaultPrevented) {\n this.leaveCell();\n }\n }\n }\n onCellKeydown(args) {\n if (this.editService.isEditingCell()) {\n const confirm = args.keyCode === Keys.Enter;\n const cancel = args.keyCode === Keys.Escape;\n const navigate = isNavigationKey(args.keyCode);\n if (confirm) {\n return !this.editService.closeCell(args);\n } else if (cancel) {\n this.editService.cancelCell();\n this.meta.view.updateEditedState();\n this.changeDetector.detectChanges();\n } else if (navigate) {\n return false;\n }\n }\n this.cellKeydown.emit(args);\n return true;\n }\n onCursorChanges(args) {\n this.activeRowIndex = args.rowIndex;\n const dataRowIndex = this.activeDataRow;\n if (this.meta && this.meta.isVirtual && this.viewport && !this.viewport.containsRow(dataRowIndex) && dataRowIndex > -1) {\n this.scrollRequestService.scrollTo({\n row: dataRowIndex\n });\n }\n if (this.meta.virtualColumns && args.colIndex >= this.meta.columns.lockedLeafColumns.length) {\n const cell = this.activeCell;\n const {\n start,\n end\n } = this.model.cellRange(cell);\n if (!cell) {\n this.virtualCell = true;\n }\n if (!cell && this.mode !== 0 /* NavigationMode.Standby */ || cell && !this.columnViewport.intersects(start, end)) {\n this.scrollRequestService.scrollTo({\n column: args.colIndex\n });\n }\n }\n }\n onFocusOut(args) {\n if (isVisible(args.target)) {\n this.mode = 0 /* NavigationMode.Standby */;\n } else {\n // Focused target is no longer visible,\n // reset to cursor mode and recapture focus.\n this.mode = 1 /* NavigationMode.Cursor */;\n }\n this.deactivateElements();\n this.cursor.announce();\n }\n onWindowBlur() {\n this.mode = 0 /* NavigationMode.Standby */;\n this.deactivateElements();\n this.cursor.announce();\n }\n onKeydown(args) {\n if (this.mode === 1 /* NavigationMode.Cursor */) {\n this.onCursorKeydown(args);\n } else if (this.mode === 2 /* NavigationMode.Content */) {\n this.onContentKeydown(args);\n }\n }\n onTabout() {\n // Tabbed out of the last focusable content element\n // reset to cursor mode and recapture focus.\n if (this.cursor.cell.focusGroup.isNavigable()) {\n // Unless the cell has a single focusable element,\n // otherwise we'd return to Content mode and enter an endless loop\n return;\n }\n this.leaveCell();\n this.cursor.reset();\n }\n }\n NavigationService.ɵfac = function NavigationService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NavigationService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DomEventsService), i0.ɵɵinject(PagerContextService), i0.ɵɵinject(ScrollRequestService), i0.ɵɵinject(FocusRoot), i0.ɵɵinject(EditService), i0.ɵɵinject(i1$1.LocalizationService), i0.ɵɵinject(ExpandStateService), i0.ɵɵinject(SelectionService), i0.ɵɵinject(i0.ChangeDetectorRef), i0.ɵɵinject(FocusableDirective, 8));\n };\n NavigationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NavigationService,\n factory: NavigationService.ɵfac\n });\n return NavigationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass NavigationMetadata {\n constructor(view, headerRows, isVirtual, hasPager, treelistElement, virtualColumns, columns) {\n this.view = view;\n this.headerRows = headerRows;\n this.isVirtual = isVirtual;\n this.hasPager = hasPager;\n this.treelistElement = treelistElement;\n this.virtualColumns = virtualColumns;\n this.columns = columns;\n }\n get maxLogicalRowIndex() {\n return this.headerRows + this.dataRows - 1;\n }\n get dataRows() {\n return this.view.totalRows;\n }\n}\n\n// Incremented each time the service is instantiated.\nlet sequence = 0;\n/**\n * @hidden\n */\nlet IdService = /*#__PURE__*/(() => {\n class IdService {\n constructor() {\n this.prefix = `k-treelist${sequence++}`;\n }\n cellId(rowIndex, colIndex) {\n return `${this.prefix}-r${rowIndex}c${colIndex}`;\n }\n }\n IdService.ɵfac = function IdService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || IdService)();\n };\n IdService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: IdService,\n factory: IdService.ɵfac\n });\n return IdService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ColumnInfoService = /*#__PURE__*/(() => {\n class ColumnInfoService {\n constructor() {\n this.visibilityChange = new EventEmitter();\n this.lockedChange = new EventEmitter();\n this.columnRangeChange = new EventEmitter();\n this.columnsContainer = new ColumnsContainer(() => []);\n }\n get lockedLeafColumns() {\n return this.columnsContainer.lockedLeafColumns;\n }\n get nonLockedLeafColumns() {\n return this.columnsContainer.nonLockedLeafColumns;\n }\n get isLocked() {\n return this.lockedLeafColumns.length > 0;\n }\n get totalLevels() {\n return this.columnsContainer.totalLevels;\n }\n get leafNamedColumns() {\n const columns = expandColumns(this.list().filterSort(column => !column.isColumnGroup)).filter(column => column.matchesMedia && column.displayTitle);\n return orderBy(columns, [{\n field: 'locked',\n dir: 'desc'\n }]);\n }\n get unlockedRootCount() {\n return this.list().rootColumns().filter(column => !column.locked && column.isVisible).length;\n }\n init(columns, list) {\n this.columnsContainer = columns;\n this.list = list;\n }\n changeVisibility(columns) {\n this.visibilityChange.emit(columns);\n }\n changeLocked(columns) {\n this.lockedChange.emit(columns);\n }\n }\n ColumnInfoService.ɵfac = function ColumnInfoService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnInfoService)();\n };\n ColumnInfoService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ColumnInfoService,\n factory: ColumnInfoService.ɵfac\n });\n return ColumnInfoService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass SortService {\n constructor() {\n this.changes = new Subject();\n }\n sort(value) {\n this.changes.next(value);\n }\n}\n\n/**\n * Arguments for the `columnVisibilityChange` event.\n */\nclass ColumnVisibilityChangeEvent {\n /**\n * @hidden\n */\n constructor(columns) {\n this.columns = columns;\n }\n}\n\n/**\n * Arguments for the `columnLockedChange` event.\n */\nclass ColumnLockedChangeEvent {\n /**\n * @hidden\n */\n constructor(columns) {\n this.columns = columns;\n }\n}\n\n/**\n * @hidden\n */\nfunction defaultTrackBy(index, item) {\n if (item.type === 'data' && item.isEditing) {\n return item.data;\n }\n return index;\n}\n\n/**\n * @hidden\n */\nclass LocalEditService {\n create(_item, _parent, _id) {\n this.throwUnsupportedError();\n }\n update(_item) {\n // noop\n }\n remove(_item) {\n this.throwUnsupportedError();\n }\n assignValues(target, source) {\n Object.assign(target, source);\n }\n throwUnsupportedError() {\n if (isDevMode()) {\n throw new Error('The default edit service of the editing directives can only update the items.' + 'Please provide an editService.');\n }\n }\n}\n\n/**\n * @hidden\n *\n * An injection token used by the data binding directives to interface with the TreeList or the Gantt.\n */\nlet DataBoundTreeComponent = /*#__PURE__*/(() => {\n class DataBoundTreeComponent {}\n DataBoundTreeComponent.ɵfac = function DataBoundTreeComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DataBoundTreeComponent)();\n };\n DataBoundTreeComponent.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DataBoundTreeComponent,\n factory: DataBoundTreeComponent.ɵfac\n });\n return DataBoundTreeComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n *\n * An injection token used by the expand-directive to interface with the TreeList or the Gantt.\n */\nlet ExpandableTreeComponent = /*#__PURE__*/(() => {\n class ExpandableTreeComponent {}\n ExpandableTreeComponent.ɵfac = function ExpandableTreeComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ExpandableTreeComponent)();\n };\n ExpandableTreeComponent.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ExpandableTreeComponent,\n factory: ExpandableTreeComponent.ɵfac\n });\n return ExpandableTreeComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet TreeListToolbarNavigationService = /*#__PURE__*/(() => {\n class TreeListToolbarNavigationService {\n constructor(renderer) {\n this.renderer = renderer;\n this.navigableElements = [];\n this.currentActiveIndex = 0;\n this.defaultFocusableSelector = `\n [kendoTreeListToolbarFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListCancelCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListExcelCommand],\n [kendoTreeListPDFCommand]\n `;\n }\n notify() {\n // ensure focusable elements are in the same order as in the DOM\n this.navigableElements = this.navigableElements.length && Array.from(this.navigableElements[0].parentElement.querySelectorAll(this.defaultFocusableSelector)) || [];\n this.currentActiveIndex = 0;\n this.updateFocus();\n }\n focus() {\n this.navigableElements[this.currentActiveIndex]?.focus();\n }\n updateFocus() {\n if (!this.navigableElements.length) {\n return;\n }\n this.navigableElements.forEach(el => {\n this.renderer.setAttribute(el, 'tabindex', '-1');\n });\n this.renderer.setAttribute(this.navigableElements[this.currentActiveIndex], 'tabindex', '0');\n if (isDocumentAvailable() && document.activeElement.closest('.k-toolbar')) {\n this.navigableElements[this.currentActiveIndex].focus();\n }\n }\n }\n TreeListToolbarNavigationService.ɵfac = function TreeListToolbarNavigationService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TreeListToolbarNavigationService)(i0.ɵɵinject(i0.Renderer2));\n };\n TreeListToolbarNavigationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TreeListToolbarNavigationService,\n factory: TreeListToolbarNavigationService.ɵfac\n });\n return TreeListToolbarNavigationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n *\n * The Context service is used to provide common\n * services and DI tokens for a Grid instance.\n *\n * This keeps the constructor parameters stable\n * and a avoids dependency cycles between components.\n */\nlet ContextService = /*#__PURE__*/(() => {\n class ContextService {\n constructor(renderer) {\n this.renderer = renderer;\n this.topToolbarNavigation = new TreeListToolbarNavigationService(this.renderer);\n this.bottomToolbarNavigation = new TreeListToolbarNavigationService(this.renderer);\n }\n }\n ContextService.ɵfac = function ContextService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ContextService)(i0.ɵɵinject(i0.Renderer2));\n };\n ContextService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ContextService,\n factory: ContextService.ɵfac\n });\n return ContextService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst isNextSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.nextElementSibling;\n/**\n * @hidden\n */\nconst isPreviousSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.previousElementSibling;\n/**\n * @hidden\n */\nfunction getOffset(element) {\n const {\n clientTop,\n clientLeft\n } = getDocument(element);\n const {\n pageYOffset,\n pageXOffset\n } = getWindow(element);\n const {\n top,\n left\n } = element.getBoundingClientRect();\n return {\n top: top + pageYOffset - clientTop,\n left: left + pageXOffset - clientLeft\n };\n}\n/**\n * @hidden\n */\nconst hintIcons = {\n forbidden: 'cancel',\n before: 'insert-middle',\n after: 'insert-middle',\n over: 'plus'\n};\n/**\n * @hidden\n */\nconst hintSVGIcons = {\n forbidden: cancelIcon,\n before: insertMiddleIcon,\n after: insertMiddleIcon,\n over: plusIcon\n};\n/**\n * @hidden\n */\nconst dropPosition = {\n forbidden: 'forbidden',\n before: 'before',\n after: 'after',\n over: 'over'\n};\n/**\n * @hidden\n */\nconst hintStyles = {\n zIndex: '20000',\n display: 'flex',\n position: 'fixed'\n};\n/**\n * @hidden\n */\nconst hintClasses = ['k-drag-clue', 'k-reorder-clue'];\n/**\n * @hidden\n */\nconst dropIndicatorStyles = {\n zIndex: '19000',\n position: 'absolute'\n};\n/**\n * @hidden\n */\nconst dropIndicatorClasses = ['k-drop-hint', 'k-drop-hint-h'];\n/**\n * @hidden\n */\nconst defaultSelectors = {\n handle: '.k-table-td.k-drag-cell',\n dragTarget: '.k-table-row[data-treelist-view-index]',\n dropTarget: '.k-table-row[data-treelist-view-index]'\n};\n/**\n * @hidden\n */\nconst rowIndexAttr = 'data-treelist-view-index';\n/**\n * @hidden\n */\nconst findParent$1 = (collection, searchItem, field) => {\n let parent = null;\n for (const item of collection) {\n if (searchItem === item) {\n return null;\n }\n const checked = [];\n const queue = [];\n queue.push(item);\n while (queue.length !== 0) {\n const current = queue.shift();\n if (!current) {\n continue;\n }\n checked.push(current);\n if (current === searchItem) {\n return item;\n }\n if (current.hasOwnProperty(field)) {\n current[field].forEach(node => {\n if (checked.indexOf(node) === -1) {\n checked.push(node);\n queue.push(node);\n if (node === searchItem) {\n parent = current;\n return;\n }\n }\n });\n }\n if (parent) {\n return parent;\n }\n }\n }\n};\nconst getDocument = element => element?.ownerDocument.documentElement;\nconst getWindow = element => element?.ownerDocument.defaultView;\n\n/**\n * @hidden\n */\nlet RowReorderService = /*#__PURE__*/(() => {\n class RowReorderService {\n constructor(renderer) {\n this.renderer = renderer;\n this.defaultSelectors = defaultSelectors;\n this.dragTarget = null;\n this.dropTarget = null;\n this.lastDropPosition = dropPosition.forbidden;\n this.hintElement = null;\n this.rowReorder = new EventEmitter();\n }\n press(ev) {\n this.dragTarget = ev.dragTarget;\n this.offsetY = ev.dragEvent.offsetY;\n }\n dragStart() {\n this.createDropIndicator();\n }\n drag(ev) {\n if (isPresent$1(ev.hintElement) && !isPresent$1(this.hintElement)) {\n this.hintElement = ev.hintElement;\n this.decorateHint();\n }\n const position = {\n x: ev.dragEvent.clientX,\n y: ev.dragEvent.clientY - this.offsetY\n };\n if (isPresent$1(this.hintElement)) {\n this.renderer.setStyle(this.hintElement, 'left', `${position.x}px`);\n this.renderer.setStyle(this.hintElement, 'top', `${position.y}px`);\n }\n this.positionDropIndicator(ev);\n }\n dragEnter(ev) {\n this.dropTarget = ev.dropTarget;\n this.view = ev.dragData;\n }\n dragLeave() {\n this.dropTarget = null;\n this.lastDropPosition === dropPosition.forbidden && this.hide();\n }\n dragEnd() {\n this.destroyDropIndicator();\n this.dragTarget = null;\n this.dropTarget = null;\n this.hintElement = null;\n }\n drop() {\n this.destroyDropIndicator();\n const rowReorderArgs = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);\n this.rowReorder.emit(rowReorderArgs);\n }\n get hintIcon() {\n return hintIcons[this.lastDropPosition];\n }\n get hintSVGIcon() {\n return hintSVGIcons[this.lastDropPosition];\n }\n getDefaultHintText(columns, data) {\n let hintText = '';\n const columnFieldsArray = columns.toArray().filter(column => !column.hidden && isPresent$1(column.field)).map(column => column.field);\n const draggedDragRow = this.getDragRowPerElement(this.dragTarget, data);\n const draggedDataItem = draggedDragRow?.dataItem;\n isPresent$1(draggedDataItem) && columnFieldsArray.forEach(column => {\n const columnValue = draggedDataItem[column];\n isPresent$1(columnValue) ? hintText += `${columnValue} ` : null;\n });\n return hintText.trim();\n }\n rowReorderArgs(dragRow, dropRow, data) {\n const dragRowData = this.getDragRowPerElement(dragRow, data);\n const dropRowData = this.getDragRowPerElement(dropRow, data);\n return {\n draggedRows: [dragRowData],\n dropTargetRow: dropRowData,\n dropPosition: this.lastDropPosition\n };\n }\n isOverChild(_item) {\n return false;\n }\n reorderRows(_ev, _collection, _field) {}\n get parentIdField() {\n return this.bindingDirective.parentIdField;\n }\n get idField() {\n return this.bindingDirective.idField;\n }\n get childrenField() {\n return this.bindingDirective.childrenField;\n }\n get data() {\n return this.bindingDirective.data;\n }\n getDragRowPerElement(row, data) {\n let rowIndex = row?.getAttribute(rowIndexAttr);\n rowIndex = rowIndex ? parseInt(rowIndex, 10) : -1;\n const dataItem = rowIndex === -1 ? null : data?.at(rowIndex)?.data;\n return {\n dataItem,\n rowIndex,\n element: row\n };\n }\n createDropIndicator() {\n if (!isDocumentAvailable()) {\n return;\n }\n this.dropIndicator = document.createElement('div');\n this.decorateDropIndicator();\n this.dropIndicator.innerHTML = `\n
\n
\n `;\n document.body.appendChild(this.dropIndicator);\n this.hide();\n }\n destroyDropIndicator() {\n if (!isDocumentAvailable()) {\n return;\n }\n if (this.dropIndicator && this.dropIndicator.parentElement) {\n document.body.removeChild(this.dropIndicator);\n this.dropIndicator = null;\n }\n }\n decorateHint() {\n hintClasses.forEach(className => this.renderer.addClass(this.hintElement, className));\n Object.keys(hintStyles).forEach(style => this.renderer.setStyle(this.hintElement, style, hintStyles[style]));\n }\n positionDropIndicator(ev) {\n this.lastDropPosition = this.getDropPosition(ev.dragEvent);\n this.updateDropIndicatorPosition();\n }\n decorateDropIndicator() {\n dropIndicatorClasses.forEach(className => this.renderer.addClass(this.dropIndicator, className));\n Object.keys(dropIndicatorStyles).forEach(style => this.renderer.setStyle(this.dropIndicator, style, dropIndicatorStyles[style]));\n }\n getDropPosition(e) {\n if (this.dropTarget === this.dragTarget || !isPresent$1(this.dropTarget)) {\n return dropPosition.forbidden;\n }\n const itemViewPortCoords = this.dropTarget.getBoundingClientRect();\n const itemDivisionsCount = 3;\n const itemDivisionHeight = itemViewPortCoords.height / itemDivisionsCount;\n const {\n dropTargetRow\n } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);\n const pointerPosition = e.clientY;\n const itemTop = itemViewPortCoords.top;\n let currentDropPosition = null;\n if (pointerPosition <= itemTop + itemDivisionHeight) {\n currentDropPosition = dropPosition.before;\n } else if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) {\n currentDropPosition = dropPosition.after;\n } else {\n currentDropPosition = dropPosition.over;\n }\n if (currentDropPosition === dropPosition.before && isNextSibling(this.dropTarget, this.dragTarget)) {\n currentDropPosition = dropPosition.forbidden;\n } else if (currentDropPosition === dropPosition.after && isPreviousSibling(this.dropTarget, this.dragTarget)) {\n currentDropPosition = dropPosition.forbidden;\n }\n if (isPresent$1(dropTargetRow.dataItem)) {\n if (this.isOverChild(dropTargetRow.dataItem)) {\n currentDropPosition = dropPosition.forbidden;\n }\n } else {\n currentDropPosition = dropPosition.forbidden;\n }\n return currentDropPosition;\n }\n updateDropIndicatorPosition() {\n if (this.shouldHideDropIndicator() || !this.dropTarget) {\n this.hide();\n return;\n }\n this.show();\n const destinationItemOffset = getOffset(this.dropTarget);\n let indicatorOffsetTop = destinationItemOffset.top;\n const indicatorOffsetLeft = destinationItemOffset.left + this.dropIndicator.offsetWidth / 2;\n if (this.lastDropPosition === dropPosition.after) {\n indicatorOffsetTop += this.dropTarget.offsetHeight;\n }\n this.renderer.setStyle(this.dropIndicator, 'left', `${indicatorOffsetLeft}px`);\n this.renderer.setStyle(this.dropIndicator, 'top', `${indicatorOffsetTop}px`);\n }\n shouldHideDropIndicator() {\n return this.lastDropPosition === dropPosition.forbidden || this.lastDropPosition === dropPosition.over;\n }\n hide() {\n if (isPresent$1(this.dropIndicator)) {\n this.renderer.setStyle(this.dropIndicator, 'display', 'none');\n }\n }\n show() {\n if (isPresent$1(this.dropIndicator)) {\n this.renderer.removeStyle(this.dropIndicator, 'display');\n }\n }\n }\n RowReorderService.ɵfac = function RowReorderService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RowReorderService)(i0.ɵɵinject(i0.Renderer2));\n };\n RowReorderService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RowReorderService,\n factory: RowReorderService.ɵfac\n });\n return RowReorderService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst normalizeSettings = ({\n buttonCount = 10,\n info = true,\n type = 'numeric',\n pageSizes = false,\n previousNext = true,\n responsive = true\n}) => ({\n buttonCount,\n info,\n pageSizes: pageSizes === true ? [5, 10, 20] : pageSizes,\n previousNext,\n type,\n responsive\n});\n/**\n * @hidden\n */\nconst normalize$1 = settings => normalizeSettings(settings === true ? {} : settings);\n\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_MEDIUM = 600;\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_LARGE = 768;\n\n/**\n * @hidden\n */\nlet PagerElementComponent = /*#__PURE__*/(() => {\n class PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n this.localization = localization;\n this.pagerContext = pagerContext;\n this.cd = cd;\n this.total = this.pagerContext.total;\n this.skip = this.pagerContext.skip;\n this.pageSize = this.pagerContext.pageSize;\n this.allCount = this.pagerContext.allCount;\n this.caretAltLeftIcon = caretAltLeftIcon;\n this.caretAltToLeftIcon = caretAltToLeftIcon;\n this.caretAltRightIcon = caretAltRightIcon;\n this.caretAltToRightIcon = caretAltToRightIcon;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerElementComponent\n */\n get currentPage() {\n return Math.floor((this.skip || 0) / this.pageSize) + 1;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerElementComponent\n */\n get totalPages() {\n return Math.ceil((this.total || 0) / this.pageSize);\n }\n /**\n * @hidden\n *\n * @param {string} key\n * @returns {string}\n *\n * @memberOf PagerElementComponent\n */\n textFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n *\n * @param {number} page\n *\n * @memberOf PagerElementComponent\n */\n changePage(page) {\n this.pagerContext.changePage(page);\n return false;\n }\n /**\n * @hidden\n *\n * @memberOf PagerElementComponent\n */\n ngOnInit() {\n this.subscriptions = this.pagerContext.changes.subscribe(this.onChanges.bind(this));\n this.subscriptions.add(this.localization.changes.subscribe(() => this.cd.markForCheck()));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n get prevArrowIcons() {\n return !this.localization.rtl ? ['caret-alt-to-left', 'caret-alt-left'] : ['caret-alt-to-right', 'caret-alt-right'];\n }\n get prevArrowSVGIcons() {\n return !this.localization.rtl ? [this.caretAltToLeftIcon, this.caretAltLeftIcon] : [this.caretAltToRightIcon, this.caretAltRightIcon];\n }\n get nextArrowIcons() {\n return !this.localization.rtl ? ['caret-alt-right', 'caret-alt-to-right'] : ['caret-alt-left', 'caret-alt-to-left'];\n }\n get nextArrowSVGIcons() {\n return !this.localization.rtl ? [this.caretAltRightIcon, this.caretAltToRightIcon] : [this.caretAltLeftIcon, this.caretAltToLeftIcon];\n }\n }\n PagerElementComponent.ɵfac = function PagerElementComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerElementComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n PagerElementComponent.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PagerElementComponent\n });\n return PagerElementComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\n/**\n * Displays information about the current page and the total number of records ([see example](slug:pager_template_treelist)).\n */\nlet PagerInfoComponent = /*#__PURE__*/(() => {\n class PagerInfoComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get currentPageText() {\n return this.total ? this.currentPage : 0;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get maxPage() {\n return Math.ceil(this.total / this.pageSize);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerInfoComponent\n */\n get classes() {\n return true;\n }\n onChanges({\n allCount,\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.allCount = allCount;\n this.cd.markForCheck();\n }\n }\n PagerInfoComponent.ɵfac = function PagerInfoComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerInfoComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PagerContextService));\n };\n PagerInfoComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerInfoComponent,\n selectors: [[\"kendo-treelist-pager-info\"]],\n hostVars: 4,\n hostBindings: function PagerInfoComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-pager-info\", ctx.classes)(\"k-label\", ctx.classes);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 6,\n template: function PagerInfoComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n i0.ɵɵtextInterpolate6(\"\", ctx.textFor(\"pagerPage\"), \" \", ctx.currentPageText, \" \", ctx.textFor(\"pagerOf\"), \" \", ctx.maxPage, \" (\", ctx.allCount, \" \", ctx.textFor(\"pagerItemsTotal\"), \")\");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerInfoComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\n/**\n * Displays a drop-down list for the page size selection ([see example](slug:pager_template_treelist)).\n */\nlet PagerPageSizesComponent = /*#__PURE__*/(() => {\n class PagerPageSizesComponent extends PagerElementComponent {\n constructor(elem, localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.elem = elem;\n this.pagerContext = pagerContext;\n this._pageSizes = [];\n }\n /**\n * The page sizes collection. Can be an Array of numbers and/or PageSizeItem objects.\n * [More information and example]({% slug api_treelist_pagerpagesizescomponent %})\n */\n set pageSizes(pageSizes) {\n let normalizedItems = [];\n pageSizes.forEach(item => {\n if (typeof item === 'number') {\n normalizedItems.push({\n text: item.toString(),\n value: item\n });\n } else {\n normalizedItems.push(item);\n }\n });\n if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {\n normalizedItems = [{\n text: this.pageSize.toString(),\n value: this.pageSize\n }, ...normalizedItems];\n }\n this._pageSizes = normalizedItems;\n }\n get pageSizes() {\n return this._pageSizes;\n }\n /**\n * @hidden\n *\n * @readonly\n */\n get classes() {\n return true;\n }\n /**\n * @hidden\n *\n * @readonly\n */\n get showInitialPageSize() {\n return this.pageSizes.filter(item => {\n if (typeof item.value === 'number') {\n return item.value === Number(this.pageSize);\n }\n return this.total === Number(this.pageSize);\n }).length === 0;\n }\n /**\n * @hidden\n */\n pageSizeChange(value) {\n this.pageSize = typeof value === 'number' ? value : this.total;\n this.pagerContext.changePageSize(this.pageSize);\n }\n /**\n * @hidden\n */\n getValue(page) {\n return typeof page.value === 'number' ? page.value : this.total;\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;\n this.cd.markForCheck();\n }\n }\n PagerPageSizesComponent.ɵfac = function PagerPageSizesComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerPageSizesComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PagerContextService));\n };\n PagerPageSizesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerPageSizesComponent,\n selectors: [[\"kendo-treelist-pager-page-sizes\"]],\n hostVars: 4,\n hostBindings: function PagerPageSizesComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-pager-sizes\", ctx.classes)(\"k-label\", ctx.classes);\n }\n },\n inputs: {\n pageSizes: \"pageSizes\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 6,\n consts: [[\"dropdownlist\", \"\"], [\"textField\", \"text\", \"valueField\", \"value\", \"kendoTreeListFocusable\", \"\", 1, \"k-dropdown\", 3, \"valueChange\", \"data\", \"valuePrimitive\", \"value\"], [3, \"for\", \"text\"]],\n template: function PagerPageSizesComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-dropdownlist\", 1, 0);\n i0.ɵɵlistener(\"valueChange\", function PagerPageSizesComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.pageSizeChange($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelement(2, \"kendo-label\", 2);\n }\n if (rf & 2) {\n const dropdownlist_r2 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"data\", ctx.pageSizes)(\"valuePrimitive\", true)(\"value\", ctx.pageSize);\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerItemsPerPage\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"for\", dropdownlist_r2)(\"text\", ctx.textFor(\"pagerItemsPerPage\"));\n }\n },\n dependencies: [DropDownListComponent, FocusableDirective, LabelComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerPageSizesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/* eslint-disable @typescript-eslint/no-inferrable-types */\n/**\n * Displays numeric buttons to enable navigation between the pages ([see example](slug:pager_template_treelist)).\n */\nlet PagerNumericButtonsComponent = /*#__PURE__*/(() => {\n class PagerNumericButtonsComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number[]}\n * @memberOf PagerNumericButtonsComponent\n */\n get buttons() {\n const result = [];\n for (let idx = this.start; idx <= this.end; idx++) {\n result.push(idx);\n }\n return result;\n }\n /**\n * @hidden\n */\n get end() {\n return Math.min(this.start + this.buttonCount - 1, this.totalPages);\n }\n /**\n * @hidden\n */\n get start() {\n const page = this.currentPage;\n const buttonCount = this.buttonCount;\n if (page > buttonCount) {\n const reminder = page % buttonCount;\n return reminder === 0 ? page - buttonCount + 1 : page - reminder + 1;\n }\n return 1;\n }\n /**\n * @hidden\n */\n pageLabel(num) {\n const pageText = this.textFor('pagerPage');\n if (pageText) {\n return pageText + ' ' + num;\n }\n return num.toString();\n }\n /**\n * @hidden\n */\n onSelectChange(e) {\n const target = e.target;\n const valueAsNumber = Number(target.value);\n if (!Number.isNaN(valueAsNumber)) {\n this.changePage(valueAsNumber - 1);\n } else {\n if (target.value === 'previousButtons') {\n this.changePage(this.start - 2);\n } else {\n this.changePage(this.end);\n }\n }\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n }\n PagerNumericButtonsComponent.ɵfac = function PagerNumericButtonsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerNumericButtonsComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PagerContextService));\n };\n PagerNumericButtonsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerNumericButtonsComponent,\n selectors: [[\"kendo-treelist-pager-numeric-buttons\"]],\n viewQuery: function PagerNumericButtonsComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5, ElementRef);\n i0.ɵɵviewQuery(_c1, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectElement = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.numbersElement = _t.first);\n }\n },\n inputs: {\n buttonCount: \"buttonCount\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 10,\n vars: 10,\n consts: [[\"select\", \"\"], [\"numbers\", \"\"], [\"kendoTreeListFocusable\", \"\", 1, \"k-dropdown-list\", \"k-dropdown\", \"k-picker\", \"k-picker-solid\", \"k-picker-md\", \"k-rounded-md\", 3, \"change\"], [\"value\", \"previousButtons\", 3, \"selected\", 4, \"ngIf\"], [3, \"value\", \"selected\", \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [\"value\", \"nextButtons\", 3, \"selected\", 4, \"ngIf\"], [1, \"k-pager-numbers\"], [\"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"kendoButton\", \"\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"class\", \"k-pager-nav\", \"rounded\", \"none\", 3, \"click\", 4, \"ngIf\"], [\"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"kendoButton\", \"\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"class\", \"k-pager-nav\", \"rounded\", \"none\", 3, \"selected\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"kendoButton\", \"\", \"class\", \"k-pager-nav\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"rounded\", \"none\", 3, \"click\", 4, \"ngIf\"], [\"value\", \"previousButtons\", 3, \"selected\"], [3, \"value\", \"selected\", \"ngClass\"], [\"value\", \"nextButtons\", 3, \"selected\"], [\"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"kendoButton\", \"\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"rounded\", \"none\", 1, \"k-pager-nav\", 3, \"click\"], [\"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"kendoButton\", \"\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"rounded\", \"none\", 1, \"k-pager-nav\", 3, \"click\", \"selected\"]],\n template: function PagerNumericButtonsComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"select\", 2, 0);\n i0.ɵɵlistener(\"change\", function PagerNumericButtonsComponent_Template_select_change_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onSelectChange($event));\n });\n i0.ɵɵtemplate(2, PagerNumericButtonsComponent_option_2_Template, 2, 2, \"option\", 3)(3, PagerNumericButtonsComponent_option_3_Template, 2, 8, \"option\", 4)(4, PagerNumericButtonsComponent_option_4_Template, 2, 2, \"option\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 6, 1);\n i0.ɵɵtemplate(7, PagerNumericButtonsComponent_button_7_Template, 2, 2, \"button\", 7)(8, PagerNumericButtonsComponent_button_8_Template, 2, 5, \"button\", 8)(9, PagerNumericButtonsComponent_button_9_Template, 2, 2, \"button\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"display\", \"none\");\n i0.ɵɵattribute(\"title\", ctx.textFor(\"selectPage\"))(\"aria-label\", ctx.textFor(\"selectPage\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n }\n },\n dependencies: [FocusableDirective, NgIf, NgFor, NgClass, ButtonComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerNumericButtonsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\n/**\n * Displays buttons for navigating to the next and to the last page ([see example](slug:pager_template_treelist)).\n */\nlet PagerNextButtonsComponent = /*#__PURE__*/(() => {\n class PagerNextButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd, navigationService) {\n super(localization, pagerContext, cd);\n this.navigationService = navigationService;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerNextButtonsComponent\n */\n get disabled() {\n return this.currentPage === this.totalPages || !this.total;\n }\n /**\n * @hidden\n */\n onButtonClick(buttonName) {\n if (this.currentPage !== this.totalPages) {\n const skipToPage = buttonName === 'nextPage' ? this.currentPage : this.totalPages - 1;\n this.changePage(skipToPage);\n }\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n }\n PagerNextButtonsComponent.ɵfac = function PagerNextButtonsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerNextButtonsComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NavigationService));\n };\n PagerNextButtonsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerNextButtonsComponent,\n selectors: [[\"kendo-treelist-pager-next-buttons\"]],\n inputs: {\n navigable: \"navigable\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 12,\n consts: [[\"kendoButton\", \"\", \"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"fillMode\", \"flat\", \"rounded\", \"none\", 1, \"k-pager-nav\", 3, \"click\", \"enabled\", \"icon\", \"svgIcon\", \"disabled\", \"title\"], [\"kendoButton\", \"\", \"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"fillMode\", \"flat\", \"rounded\", \"none\", 1, \"k-pager-nav\", \"k-pager-last\", 3, \"click\", \"enabled\", \"icon\", \"svgIcon\", \"disabled\", \"title\"]],\n template: function PagerNextButtonsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_button_click_0_listener() {\n return ctx.onButtonClick(\"nextPage\");\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(1, \"button\", 1);\n i0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_button_click_1_listener() {\n return ctx.onButtonClick(\"lastPage\");\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"enabled\", !ctx.disabled)(\"icon\", ctx.nextArrowIcons[0])(\"svgIcon\", ctx.nextArrowSVGIcons[0])(\"disabled\", ctx.disabled)(\"title\", ctx.textFor(\"pagerNextPage\"));\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerNextPage\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"enabled\", !ctx.disabled)(\"icon\", ctx.nextArrowIcons[1])(\"svgIcon\", ctx.nextArrowSVGIcons[1])(\"disabled\", ctx.disabled)(\"title\", ctx.textFor(\"pagerLastPage\"));\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerLastPage\"));\n }\n },\n dependencies: [ButtonComponent, FocusableDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerNextButtonsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Displays an input element which allows the typing and rendering of page numbers.\n */\nlet PagerInputComponent = /*#__PURE__*/(() => {\n class PagerInputComponent extends PagerElementComponent {\n constructor(localization, pagerContext, navigationService, zone, cd) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.navigationService = navigationService;\n this.zone = zone;\n /**\n * @hidden\n *\n * @param {string} value\n *\n * @memberOf PagerInputComponent\n */\n this.handleKeyDown = event => {\n const incomingValue = this.numericInput.value || this.current;\n if (event.keyCode === Keys.Enter) {\n event.preventDefault();\n if (incomingValue !== this.current) {\n this.zone.run(() => {\n this.changePage(incomingValue - 1);\n });\n }\n }\n };\n /**\n * @hidden\n *\n * @param {string} value\n *\n * @memberOf PagerInputComponent\n */\n this.handleBlur = () => {\n const inputValue = this.numericInput.value;\n if (!inputValue) {\n this.numericInput.writeValue(this.current);\n return;\n }\n if (inputValue !== this.current) {\n this.zone.run(() => {\n this.changePage(inputValue - 1);\n });\n }\n };\n }\n /**\n * @hidden\n */\n get current() {\n return this.hasPages ? this.currentPage : 0;\n }\n get hasPages() {\n return this.totalPages !== 0;\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n }\n PagerInputComponent.ɵfac = function PagerInputComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerInputComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(NavigationService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n PagerInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerInputComponent,\n selectors: [[\"kendo-treelist-pager-input\"]],\n viewQuery: function PagerInputComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(NumericTextBoxComponent, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.numericInput = _t.first);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 21,\n consts: [[1, \"k-pager-input\", \"k-label\"], [\"kendoTreeListFocusable\", \"\", \"format\", \"n0\", 3, \"enabled\", \"spinners\", \"decimals\", \"disabled\", \"value\", \"min\", \"max\", \"autoCorrect\", \"title\", \"kendoEventsOutsideAngular\"]],\n template: function PagerInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵelement(2, \"kendo-numerictextbox\", 1);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"pagerPage\"), \" \");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"margin\", \"0 1ex\")(\"width\", \"3em\");\n i0.ɵɵproperty(\"enabled\", ctx.hasPages)(\"spinners\", false)(\"decimals\", 0)(\"disabled\", !ctx.hasPages)(\"value\", ctx.current)(\"min\", ctx.hasPages ? 1 : 0)(\"max\", ctx.totalPages)(\"autoCorrect\", true)(\"title\", ctx.textFor(\"pagerPageNumberInputTitle\"))(\"kendoEventsOutsideAngular\", i0.ɵɵpureFunction2(18, _c3, ctx.handleKeyDown, ctx.handleBlur));\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerPageNumberInputTitle\"));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate2(\" \", ctx.textFor(\"pagerOf\"), \" \", ctx.totalPages, \" \");\n }\n },\n dependencies: [NumericTextBoxComponent, FocusableDirective, EventsOutsideAngularDirective],\n encapsulation: 2\n });\n return PagerInputComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\n/**\n * Displays buttons for navigating to the first and to the previous page ([see example](slug:pager_template_treelist)).\n */\nlet PagerPrevButtonsComponent = /*#__PURE__*/(() => {\n class PagerPrevButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd, navigationService) {\n super(localization, pagerContext, cd);\n this.navigationService = navigationService;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerPrevButtonsComponent\n */\n get disabled() {\n return this.currentPage === 1 || !this.total;\n }\n /**\n * @hidden\n */\n onButtonClick(buttonName) {\n if (this.currentPage !== 1) {\n const skipToPage = buttonName === 'prevPage' ? this.currentPage - 2 : 0;\n this.changePage(skipToPage);\n }\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n }\n PagerPrevButtonsComponent.ɵfac = function PagerPrevButtonsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerPrevButtonsComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NavigationService));\n };\n PagerPrevButtonsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerPrevButtonsComponent,\n selectors: [[\"kendo-treelist-pager-prev-buttons\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 12,\n consts: [[\"kendoButton\", \"\", \"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"role\", \"button\", \"fillMode\", \"flat\", \"rounded\", \"none\", 1, \"k-pager-nav\", \"k-pager-first\", 3, \"click\", \"enabled\", \"title\", \"icon\", \"svgIcon\", \"disabled\"], [\"kendoButton\", \"\", \"type\", \"button\", \"kendoTreeListFocusable\", \"\", \"fillMode\", \"flat\", \"rounded\", \"none\", 1, \"k-pager-nav\", 3, \"click\", \"enabled\", \"disabled\", \"icon\", \"svgIcon\", \"title\"]],\n template: function PagerPrevButtonsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_button_click_0_listener() {\n return ctx.onButtonClick(\"firstPage\");\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(1, \"button\", 1);\n i0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_button_click_1_listener() {\n return ctx.onButtonClick(\"prevPage\");\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"enabled\", !ctx.disabled)(\"title\", ctx.textFor(\"pagerFirstPage\"))(\"icon\", ctx.prevArrowIcons[0])(\"svgIcon\", ctx.prevArrowSVGIcons[0])(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerFirstPage\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"enabled\", !ctx.disabled)(\"disabled\", ctx.disabled)(\"icon\", ctx.prevArrowIcons[1])(\"svgIcon\", ctx.prevArrowSVGIcons[1])(\"title\", ctx.textFor(\"pagerPreviousPage\"));\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"pagerPreviousPage\"));\n }\n },\n dependencies: [ButtonComponent, FocusableDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerPrevButtonsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet PagerComponent = /*#__PURE__*/(() => {\n class PagerComponent {\n constructor(navigationService, localizationService, pagerContext, focusGroup, focusRoot, renderer, element, zone) {\n this.navigationService = navigationService;\n this.localizationService = localizationService;\n this.pagerContext = pagerContext;\n this.focusGroup = focusGroup;\n this.focusRoot = focusRoot;\n this.renderer = renderer;\n this.element = element;\n this.zone = zone;\n this.allCount = 0;\n this.total = 0;\n this.skip = 1;\n this.pageChange = new EventEmitter();\n this.pagerRole = 'application';\n this.pagerRoleDescription = 'pager';\n this.gridPagerClass = true;\n this.pagerClass = true;\n this.pagerSizingClass = true;\n this.settings = normalize$1({});\n this.subscriptions = new Subscription();\n this._templateContext = {};\n this.resizeHandler = () => {\n const element = this.element.nativeElement;\n if (this.template || !element) {\n return;\n }\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n const width = element.offsetWidth;\n if (this.numericButtons) {\n const selectElement = this.numericButtons.selectElement.nativeElement;\n const numbersElement = this.numericButtons.numbersElement.nativeElement;\n this.renderer.removeStyle(numbersElement, 'display');\n this.renderer.setStyle(selectElement, 'display', 'none');\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n this.renderer.removeStyle(selectElement, 'display');\n this.renderer.setStyle(numbersElement, 'display', 'none');\n }\n }\n if (this.pagerInfo) {\n this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');\n if (width < RESPONSIVE_BREAKPOINT_LARGE) {\n this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');\n }\n }\n if (this.pagerPageSizes) {\n this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');\n }\n }\n });\n });\n };\n }\n set options(value) {\n this.settings = normalize$1(value);\n }\n get hostTabindex() {\n return this.navigationService.enabled ? '0' : '-1';\n }\n get hostAriaLabel() {\n return this.pagerLabel;\n }\n get totalPages() {\n return Math.ceil((this.total || 0) / this.pageSize);\n }\n get currentPage() {\n return Math.floor((this.skip || 0) / this.pageSize) + 1;\n }\n get templateContext() {\n const context = this._templateContext;\n context.totalPages = this.totalPages;\n context.total = this.total;\n context.allCount = this.allCount || this.total;\n context.skip = this.skip;\n context.pageSize = this.pageSize;\n context.currentPage = this.currentPage;\n return context;\n }\n ngOnInit() {\n const element = this.element.nativeElement;\n this.subscriptions.add(this.pagerContext.pageChange.subscribe(this.changePage.bind(this)));\n this.subscriptions.add(this.renderer.listen(element, 'focusin', event => this.onFocusIn(event)));\n this.subscriptions.add(this.renderer.listen(element, 'keydown', event => this.onKeyDown(event)));\n if (this.navigationService.enabled) {\n this.focusRoot.deactivate();\n }\n }\n ngOnChanges(changes) {\n if (anyChanged([\"pageSize\", \"skip\", \"total\", \"allCount\"], changes, false)) {\n this.pagerContext.notifyChanges({\n pageSize: this.pageSize,\n skip: this.skip,\n total: this.total,\n allCount: this.allCount || this.total\n });\n }\n const changesInTemplate = changes['template'];\n if (changesInTemplate) {\n changesInTemplate.currentValue ? this.clearResponsiveStyling() : this.resizeHandler();\n }\n if (changes['options']) {\n this.settings.responsive ? this.resizeHandler() : this.clearResponsiveStyling();\n }\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n get pagerLabel() {\n const localizationMsg = this.localizationService.get('pagerLabel') || '';\n return replaceMessagePlaceholder(replaceMessagePlaceholder(localizationMsg, 'currentPage', this.currentPage.toString()), 'totalPages', this.totalPages.toString());\n }\n get focusTrapTabIndex() {\n return this.focusGroup.isActive ? '0' : '-1';\n }\n onKeyDown(event) {\n const keyCode = event.keyCode;\n const target = event.target;\n if (this.navigationService.enabled) {\n if (keyCode === Keys.Enter && target === this.element.nativeElement) {\n this.onEnterEvent(event);\n } else if (keyCode === Keys.Escape) {\n this.onEscapeEvent();\n }\n }\n if (keyCode === Keys.ArrowLeft || keyCode === Keys.PageUp || keyCode === Keys.ArrowRight || keyCode === Keys.PageDown) {\n event.preventDefault();\n this.onArrowEvent(keyCode, target);\n } else if (keyCode === Keys.Home || keyCode === Keys.End) {\n event.preventDefault();\n this.onHomeEndEvent(keyCode, target);\n }\n }\n changePage(event) {\n this.pageChange.emit(event);\n }\n onInnerFocusIn(event, position) {\n this.zone.onStable.pipe(take(1)).subscribe(() => {\n if (position === 'start') {\n if (event.relatedTarget === this.element.nativeElement) {\n this.focusFirstElement();\n } else {\n this.focusLastElement();\n }\n } else {\n this.focusFirstElement();\n }\n });\n }\n onEnterEvent(event) {\n const isTargetCompElement = event.target === this.element.nativeElement;\n if (this.navigationService.enabled && isTargetCompElement) {\n event.preventDefault();\n this.focusRoot.activate();\n this.focusFirstElement();\n }\n }\n onEscapeEvent() {\n if (this.navigationService.enabled) {\n this.focusRoot.deactivate();\n this.element.nativeElement.focus();\n }\n }\n onArrowEvent(keyCode, target) {\n const isArrowLeft = keyCode === Keys.ArrowLeft || keyCode === Keys.PageUp;\n const condition = isArrowLeft ? this.currentPage > 1 : this.currentPage < this.totalPages;\n if (this.shouldTriggerPageChange(target, condition)) {\n const pageDir = isArrowLeft ? 'prevPage' : 'nextPage';\n this.pagerContext[pageDir]();\n }\n }\n onHomeEndEvent(keyCode, target) {\n const isHome = keyCode === Keys.Home;\n const condition = isHome ? this.currentPage > 1 : this.currentPage < this.totalPages;\n if (this.shouldTriggerPageChange(target, condition)) {\n const pageNumber = isHome ? 0 : this.totalPages - 1;\n this.pagerContext.changePage(pageNumber);\n }\n }\n onFocusIn(event) {\n if (this.navigationService.enabled) {\n const shouldFocusPager = event.target === this.element.nativeElement;\n if (shouldFocusPager) {\n this.focusRoot.deactivate();\n } else {\n this.focusRoot.activate();\n }\n }\n }\n focusFirstElement() {\n const first = findFocusableChild(this.element.nativeElement, true);\n if (first) {\n first.focus();\n }\n }\n focusLastElement() {\n const last = findLastFocusableChild(this.element.nativeElement, true);\n if (last) {\n last.focus();\n }\n }\n shouldTriggerPageChange(target, condition) {\n return this.navigationService.enabled && target === this.element.nativeElement && condition;\n }\n clearResponsiveStyling() {\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n if (this.numericButtons) {\n this.renderer.removeStyle(this.numericButtons.numbersElement.nativeElement, 'display');\n this.renderer.setStyle(this.numericButtons.selectElement.nativeElement, 'display', 'none');\n }\n this.pagerInfo && this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');\n this.pagerPageSizes && this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');\n });\n });\n }\n }\n PagerComponent.ɵfac = function PagerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerComponent)(i0.ɵɵdirectiveInject(NavigationService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(FocusGroup), i0.ɵɵdirectiveInject(FocusRoot), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n PagerComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerComponent,\n selectors: [[\"kendo-treelist-pager\"]],\n viewQuery: function PagerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(PagerInfoComponent, 5, ElementRef);\n i0.ɵɵviewQuery(PagerPageSizesComponent, 5, ElementRef);\n i0.ɵɵviewQuery(PagerNumericButtonsComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pagerInfo = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pagerPageSizes = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.numericButtons = _t.first);\n }\n },\n hostVars: 10,\n hostBindings: function PagerComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.pagerRole)(\"aria-roledescription\", ctx.pagerRoleDescription)(\"tabindex\", ctx.hostTabindex)(\"aria-label\", ctx.hostAriaLabel);\n i0.ɵɵclassProp(\"k-grid-pager\", ctx.gridPagerClass)(\"k-pager\", ctx.pagerClass)(\"k-pager-md\", ctx.pagerSizingClass);\n }\n },\n inputs: {\n allCount: \"allCount\",\n total: \"total\",\n skip: \"skip\",\n navigable: \"navigable\",\n pageSize: \"pageSize\",\n options: \"options\",\n template: \"template\"\n },\n outputs: {\n pageChange: \"pageChange\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FOCUS_ROOT_ACTIVE,\n useValue: true\n }, {\n provide: FocusRoot,\n deps: [FOCUS_ROOT_ACTIVE],\n useClass: FocusRoot\n }, {\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 5,\n consts: [[\"class\", \"k-sr-only\", 3, \"tabindex\", \"focusin\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"resize\", 4, \"ngIf\"], [1, \"k-sr-only\", 3, \"focusin\", \"tabindex\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"k-pager-numbers-wrap\"], [3, \"buttonCount\", 4, \"ngIf\"], [3, \"pageSizes\", 4, \"ngIf\"], [3, \"buttonCount\"], [3, \"pageSizes\"], [3, \"resize\"]],\n template: function PagerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, PagerComponent_div_0_Template, 1, 2, \"div\", 0)(1, PagerComponent_ng_container_1_Template, 1, 2, \"ng-container\", 1)(2, PagerComponent_ng_container_2_Template, 8, 6, \"ng-container\", 2)(3, PagerComponent_div_3_Template, 1, 2, \"div\", 0)(4, PagerComponent_kendo_resize_sensor_4_Template, 1, 0, \"kendo-resize-sensor\", 3);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.navigationService.enabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.template == null ? null : ctx.template.templateRef);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(ctx.template == null ? null : ctx.template.templateRef));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.navigationService.enabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.settings.responsive);\n }\n },\n dependencies: [NgIf, NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerInfoComponent, PagerPageSizesComponent, ResizeSensorComponent],\n encapsulation: 2\n });\n return PagerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet LoadingComponent = /*#__PURE__*/(() => {\n class LoadingComponent {\n constructor(localization) {\n this.localization = localization;\n this.hostClass = true;\n }\n get loadingText() {\n return this.localization.get('loading');\n }\n }\n LoadingComponent.ɵfac = function LoadingComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LoadingComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n LoadingComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LoadingComponent,\n selectors: [[\"\", \"kendoTreeListLoading\", \"\"]],\n hostVars: 2,\n hostBindings: function LoadingComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-loading-mask\", ctx.hostClass);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c4,\n decls: 4,\n vars: 1,\n consts: [[1, \"k-loading-text\"], [1, \"k-loading-image\"], [1, \"k-loading-color\"]],\n template: function LoadingComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(2, \"div\", 1)(3, \"div\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx.loadingText);\n }\n },\n encapsulation: 2\n });\n return LoadingComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst NON_DATA_CELL_CLASSES = 'k-hierarchy-cell k-detail-cell k-group-cell';\n/**\n * @hidden\n */\nconst NON_DATA_ROW_CLASSES = 'k-grouping-row k-group-footer k-detail-row k-grid-norecords';\n/**\n * @hidden\n */\nconst EMPTY_ICON_CLASS = 'k-i-none k-svg-i-none';\n/**\n * @hidden\n */\nconst ICON_CLASS = 'k-icon k-svg-icon';\n/**\n * @hidden\n */\nconst IGNORE_CONTAINER_CLASSES = 'k-treelist-ignore-click';\n/**\n * @hidden\n */\nconst DRAG_HANDLE_CLASS = 'k-drag-cell';\n\n/* eslint-disable @angular-eslint/pipe-prefix */\n/**\n * @hidden\n */\nlet LevelItemsPipe = /*#__PURE__*/(() => {\n class LevelItemsPipe {\n transform(level, hasChildren) {\n const result = [];\n const count = level + 1 - (hasChildren ? 1 : 0);\n for (let idx = 0; idx < count; idx++) {\n result.push(idx);\n }\n return result;\n }\n }\n LevelItemsPipe.ɵfac = function LevelItemsPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LevelItemsPipe)();\n };\n LevelItemsPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"levelItems\",\n type: LevelItemsPipe,\n pure: true,\n standalone: true\n });\n return LevelItemsPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet id$1 = 0;\nfunction nextId$1() {\n return id$1++;\n}\n/**\n * @hidden\n */\nlet LogicalCellDirective = /*#__PURE__*/(() => {\n class LogicalCellDirective {\n constructor(focusGroup, element, columnInfoService, idService, navigationService, renderer, zone) {\n this.focusGroup = focusGroup;\n this.element = element;\n this.columnInfoService = columnInfoService;\n this.idService = idService;\n this.navigationService = navigationService;\n this.renderer = renderer;\n this.zone = zone;\n this.logicalSlaveCell = false;\n this.colSpan = 1;\n this.rowSpan = 1;\n this.dataRowIndex = -1;\n this.expandable = false;\n this.uid = nextId$1();\n }\n get id() {\n if (!this.logicalSlaveCell && this.columnInfoService.isLocked) {\n return this.idService.cellId(this.logicalRowIndex, this.logicalColIndex);\n }\n }\n get ariaColIndex() {\n if (this.logicalSlaveCell || this.logicalColIndex === -1) {\n return undefined;\n }\n return this.logicalColIndex + 1;\n }\n ngOnInit() {\n if (!this.navigationService.enabled) {\n return;\n }\n this.navigationChange = this.navigationService.changes.subscribe(e => this.onNavigationChange(e));\n }\n ngDoCheck() {\n if (!this.navigationService.enabled || this.logicalColIndex === -1) {\n return;\n }\n this.registerNoChanges();\n }\n ngOnChanges(changes) {\n if (!this.navigationService.enabled) {\n return;\n }\n if (this.logicalColIndex === -1) {\n return;\n }\n const indexChange = changes['logicalColIndex'];\n const rowIndexChange = changes['logicalRowIndex'];\n const index = indexChange && !indexChange.isFirstChange() ? indexChange.previousValue : this.logicalColIndex;\n const rowIndex = rowIndexChange && !rowIndexChange.isFirstChange() ? rowIndexChange.previousValue : this.logicalRowIndex;\n this.navigationService.unregisterCell(index, rowIndex, this);\n this.registerChanges();\n this.updateElement();\n }\n ngOnDestroy() {\n if (this.navigationChange) {\n this.navigationChange.unsubscribe();\n }\n this.navigationService.unregisterCell(this.logicalColIndex, this.logicalRowIndex, this);\n }\n onNavigationChange(e) {\n const active = this.logicalColIndex === e.colIndex && this.logicalRowIndex === e.rowIndex;\n const wasActive = this.logicalColIndex === e.prevColIndex && this.logicalRowIndex === e.prevRowIndex;\n if (active || wasActive) {\n this.updateElement();\n }\n }\n updateElement() {\n const el = this.element.nativeElement;\n this.renderer.setAttribute(el, 'tabIndex', this.isFocusable() && !this.logicalSlaveCell ? '0' : '-1');\n if (this.isFocused()) {\n if (this.focusGroup.isNavigable()) {\n this.focusGroup.focus();\n } else {\n if (!this.logicalSlaveCell && this.navigationService.autoFocusCell(this.logicalColIndex, this.logicalColIndex + this.colSpan - 1)) {\n this.microtask(() => this.isFocused() && el.focus());\n }\n this.renderer.addClass(el, 'k-focus');\n }\n } else {\n this.renderer.removeClass(el, 'k-focus');\n }\n }\n microtask(callback) {\n this.zone.runOutsideAngular(() => Promise.resolve(null).then(callback));\n }\n registerChanges() {\n if (!this.logicalSlaveCell) {\n this.navigationService.registerCell(this);\n }\n }\n registerNoChanges() {\n if (!this.logicalSlaveCell) {\n this.navigationService.registerCellOnCurrentRow(this);\n }\n }\n isFocusable() {\n return this.navigationService.isCellFocusable(this);\n }\n isFocused() {\n return this.navigationService.isCellFocused(this);\n }\n }\n LogicalCellDirective.ɵfac = function LogicalCellDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LogicalCellDirective)(i0.ɵɵdirectiveInject(FocusGroup), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ColumnInfoService), i0.ɵɵdirectiveInject(IdService), i0.ɵɵdirectiveInject(NavigationService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n LogicalCellDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LogicalCellDirective,\n selectors: [[\"\", \"kendoTreeListLogicalCell\", \"\"]],\n hostVars: 2,\n hostBindings: function LogicalCellDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"aria-colindex\", ctx.ariaColIndex);\n }\n },\n inputs: {\n logicalColIndex: \"logicalColIndex\",\n logicalRowIndex: \"logicalRowIndex\",\n logicalSlaveCell: \"logicalSlaveCell\",\n column: \"column\",\n colIndex: \"colIndex\",\n colSpan: \"colSpan\",\n rowSpan: \"rowSpan\",\n dataRowIndex: \"dataRowIndex\",\n dataItem: \"dataItem\",\n expandable: \"expandable\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FocusGroup,\n deps: [FocusRoot],\n useClass: FocusGroup\n }]), i0.ɵɵNgOnChangesFeature]\n });\n return LogicalCellDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst FORMAT_REGEX = /\\{\\d+:?/;\n/**\n * @hidden\n */\nlet FieldAccessorPipe = /*#__PURE__*/(() => {\n class FieldAccessorPipe {\n constructor(intlService) {\n this.intlService = intlService;\n }\n transform(dataItem, fieldName, format) {\n if (!isNullOrEmptyString(fieldName)) {\n const value = getter(fieldName)(dataItem);\n if (!isNullOrEmptyString(format)) {\n return this.formatValue(format, value);\n }\n return value;\n }\n return dataItem;\n }\n formatValue(format, value) {\n const intl = this.intlService;\n if (isString(format) && format.match(FORMAT_REGEX)) {\n return intl.format(format, value);\n }\n return intl.toString(value, format);\n }\n }\n FieldAccessorPipe.ɵfac = function FieldAccessorPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FieldAccessorPipe)(i0.ɵɵdirectiveInject(i1$3.IntlService, 16));\n };\n FieldAccessorPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"valueOf\",\n type: FieldAccessorPipe,\n pure: false,\n standalone: true\n });\n return FieldAccessorPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet CellComponent = /*#__PURE__*/(() => {\n class CellComponent {\n constructor(editService, localization, focusGroup) {\n this.editService = editService;\n this.localization = localization;\n this.focusGroup = focusGroup;\n this.isNew = false;\n this.level = 0;\n this.caretAltDownIcon = caretAltDownIcon;\n this.caretAltRightIcon = caretAltRightIcon;\n this.caretAltLeftIcon = caretAltLeftIcon;\n this.reorderIcon = reorderIcon;\n this.noneIcon = {\n name: 'none',\n content: '',\n viewBox: '0 0 24 24'\n };\n this.cellContext = {};\n this._templateContext = {};\n this._editTemplateContext = {};\n this.templateContext.cellContext = this.cellContext;\n this.cellContext.focusGroup = focusGroup;\n }\n get commandCellClass() {\n return this.column.isCommand;\n }\n get isCheckboxColumn() {\n return isCheckboxColumn(this.column);\n }\n get textNoWrapClass() {\n return this.column.expandable;\n }\n get dragHandleCellClass() {\n return isRowReorderColumn(this.column);\n }\n get dragRowHandleLabel() {\n return isRowReorderColumn(this.column) ? this.localization.get('dragRowHandleLabel') : undefined;\n }\n set viewItem(value) {\n this._viewItem = value;\n this.cellContext.viewItem = this.viewItem;\n }\n get viewItem() {\n return this._viewItem;\n }\n get formGroup() {\n return this.viewItem.isNew ? this.editService.newItemGroup : this.viewItem.editContext ? this.viewItem.editContext.group : null;\n }\n get isEdited() {\n return Boolean(this.viewItem.isNew && isColumnEditable(this.column, this.editService.newItemGroup) || isColumnEditable(this.column, this.formGroup) && this.viewItem.editContext && this.editService.isEditedColumn(this.column));\n }\n get templateContext() {\n return this._templateContext;\n }\n get editTemplateContext() {\n this._editTemplateContext.$implicit = this.formGroup;\n this._editTemplateContext.cellContext = this.cellContext;\n this._editTemplateContext.column = this.column;\n this._editTemplateContext.dataItem = this.dataItem;\n this._editTemplateContext.formGroup = this.formGroup;\n this._editTemplateContext.isNew = this.isNew;\n return this._editTemplateContext;\n }\n get format() {\n if (isColumnComponent(this.column) && !isNullOrEmptyString(this.column.format)) {\n return extractFormat(this.column.format);\n }\n return undefined;\n }\n get isBoundColumn() {\n return this.column.field && !this.column.templateRef;\n }\n get isSpanColumn() {\n return isSpanColumn(this.column) && !this.column.templateRef;\n }\n get childColumns() {\n return columnsToRender([this.column]);\n }\n ngDoCheck() {\n this.updateTemplateContext();\n }\n ngAfterContentChecked() {\n this.updateTemplateContext();\n }\n updateTemplateContext() {\n if (!this.column.templateRef) {\n return;\n }\n const context = this._templateContext;\n context.$implicit = this.dataItem;\n context.column = this.column;\n context.columnIndex = this.columnIndex;\n context.dataItem = this.dataItem;\n context.hasChildren = this.hasChildren;\n context.isExpanded = this.isExpanded;\n context.isNew = this.isNew;\n context.level = this.level;\n context.loading = this.loading;\n context.rowIndex = this.viewItem.rowIndex;\n }\n get arrowIcon() {\n const icon = !this.isExpanded ? !this.localization.rtl ? 'caret-alt-right' : 'caret-alt-left' : 'caret-alt-down';\n return icon;\n }\n get arrowSVGIcon() {\n const icon = !this.isExpanded ? !this.localization.rtl ? this.caretAltRightIcon : this.caretAltLeftIcon : this.caretAltDownIcon;\n return icon;\n }\n messageFor(token) {\n return this.localization.get(token);\n }\n }\n CellComponent.ɵfac = function CellComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CellComponent)(i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(FocusGroup));\n };\n CellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CellComponent,\n selectors: [[\"\", \"kendoTreeListCell\", \"\"]],\n hostVars: 11,\n hostBindings: function CellComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-label\", ctx.dragRowHandleLabel);\n i0.ɵɵclassProp(\"k-command-cell\", ctx.commandCellClass)(\"k-checkbox-cell\", ctx.isCheckboxColumn)(\"k-text-nowrap\", ctx.textNoWrapClass)(\"k-drag-cell\", ctx.dragHandleCellClass)(\"k-touch-action-none\", ctx.dragHandleCellClass);\n }\n },\n inputs: {\n column: \"column\",\n columnIndex: \"columnIndex\",\n isNew: \"isNew\",\n level: \"level\",\n hasChildren: \"hasChildren\",\n isExpanded: \"isExpanded\",\n loading: \"loading\",\n expandIcons: \"expandIcons\",\n selected: \"selected\",\n dataItem: \"dataItem\",\n viewItem: \"viewItem\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c5,\n decls: 3,\n vars: 3,\n consts: [[3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [3, \"ngIf\"], [\"name\", \"none\", \"innerCssClass\", \"k-treelist-toggle\", 3, \"svgIcon\", 4, \"ngFor\", \"ngForOf\"], [\"innerCssClass\", \"k-treelist-toggle\", \"aria-hidden\", \"true\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-icon k-i-loading\", 4, \"ngIf\"], [\"name\", \"none\", \"innerCssClass\", \"k-treelist-toggle\", 3, \"svgIcon\"], [\"innerCssClass\", \"k-treelist-toggle\", \"aria-hidden\", \"true\", 3, \"name\", \"svgIcon\"], [1, \"k-icon\", \"k-i-loading\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [4, \"ngFor\", \"ngForOf\"], [\"type\", \"checkbox\", \"kendoTreeListFocusable\", \"\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"checked\"], [\"name\", \"reorder\", 3, \"svgIcon\"], [3, \"ngSwitch\", 4, \"ngIf\"], [\"kendoTreeListFocusable\", \"\", 3, \"format\", \"formControl\", 4, \"ngSwitchCase\"], [\"type\", \"checkbox\", \"class\", \"k-checkbox k-checkbox-md k-rounded-md\", \"kendoTreeListFocusable\", \"\", 3, \"formControl\", 4, \"ngSwitchCase\"], [\"type\", \"text\", \"class\", \"k-textbox k-input k-input-md k-input-solid k-rounded-md\", \"kendoTreeListFocusable\", \"\", 3, \"formControl\", 4, \"ngSwitchDefault\"], [\"kendoTreeListFocusable\", \"\", 3, \"format\", \"formControl\"], [\"type\", \"checkbox\", \"kendoTreeListFocusable\", \"\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"formControl\"], [\"type\", \"text\", \"kendoTreeListFocusable\", \"\", 1, \"k-textbox\", \"k-input\", \"k-input-md\", \"k-input-solid\", \"k-rounded-md\", 3, \"formControl\"]],\n template: function CellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 0);\n i0.ɵɵtemplate(1, CellComponent_ng_container_1_Template, 7, 6, \"ng-container\", 1)(2, CellComponent_ng_container_2_Template, 3, 2, \"ng-container\", 1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngSwitch\", ctx.isEdited);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n }\n },\n dependencies: [NgSwitch, NgSwitchCase, NgIf, NgFor, IconWrapperComponent, NgTemplateOutlet, FocusableDirective, NumericTextBoxComponent, ReactiveFormsModule, i3.DefaultValueAccessor, i3.CheckboxControlValueAccessor, i3.NgControlStatus, i3.FormControlDirective, DatePickerComponent, NgSwitchDefault, FieldAccessorPipe, LevelItemsPipe],\n encapsulation: 2\n });\n return CellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet id = 0;\nfunction nextId() {\n return id++;\n}\n/**\n * @hidden\n */\nlet LogicalRowDirective = /*#__PURE__*/(() => {\n class LogicalRowDirective {\n constructor(idService, navigation) {\n this.idService = idService;\n this.navigation = navigation;\n this.logicalSlaveRow = false;\n this.logicalSlaveCellsCount = 0;\n this.dataRowIndex = -1;\n this.isNew = false;\n this.uid = nextId();\n this.tableRowClass = true;\n }\n get hostRole() {\n return this.logicalSlaveRow ? 'presentation' : 'row';\n }\n get ariaRowIndex() {\n return this.logicalSlaveRow ? null : this.logicalRowIndex + 1;\n }\n get rowIndex() {\n return this.logicalSlaveRow ? this.logicalRowIndex + 1 : null;\n }\n get ariaOwns() {\n if (this.logicalSlaveRow || this.logicalSlaveCellsCount === 0) {\n return undefined;\n }\n const ids = [];\n if (this.dataRowIndex < 0) {\n let total = this.logicalCellsCount + this.logicalSlaveCellsCount;\n this.columnsArray.forEach(column => {\n if (column.isSpanColumn) {\n total += column.colspan - 1;\n }\n });\n for (let cellIndex = this.logicalCellsCount; cellIndex < total; cellIndex++) {\n ids.push(this.idService.cellId(this.logicalRowIndex, cellIndex));\n }\n } else {\n let columnIndex = 0;\n this.columnsArray.forEach(column => {\n if (!column.isLocked) {\n ids.push(this.idService.cellId(this.logicalRowIndex, columnIndex));\n }\n columnIndex += column.isSpanColumn ? column.colspan : 1;\n });\n }\n return ids.join(' ');\n }\n ngOnChanges(changes) {\n if (!this.navigation.enabled || this.logicalSlaveRow) {\n return;\n }\n const indexChange = changes.logicalRowIndex;\n const logicalSlaveRowChange = changes.logicalSlaveRow;\n const isNewChange = changes.isNew;\n if (indexChange || logicalSlaveRowChange || isNewChange) {\n const index = indexChange && !indexChange.isFirstChange() ? indexChange.previousValue : this.logicalRowIndex;\n this.navigation.unregisterRow(index, this);\n this.navigation.registerRow(this);\n } else if (anyChanged(['dataRowIndex', 'dataItem'], changes)) {\n this.navigation.updateRow(this);\n }\n }\n ngOnDestroy() {\n this.navigation.unregisterRow(this.logicalRowIndex, this);\n }\n get columnsArray() {\n return this.totalColumns?.allColumns.toArray() || [];\n }\n }\n LogicalRowDirective.ɵfac = function LogicalRowDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LogicalRowDirective)(i0.ɵɵdirectiveInject(IdService), i0.ɵɵdirectiveInject(NavigationService));\n };\n LogicalRowDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LogicalRowDirective,\n selectors: [[\"\", \"kendoTreeListLogicalRow\", \"\"]],\n hostVars: 6,\n hostBindings: function LogicalRowDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.hostRole)(\"aria-rowindex\", ctx.ariaRowIndex)(\"data-kendo-treelist-row-index\", ctx.rowIndex)(\"aria-owns\", ctx.ariaOwns);\n i0.ɵɵclassProp(\"k-table-row\", ctx.tableRowClass);\n }\n },\n inputs: {\n logicalRowIndex: \"logicalRowIndex\",\n logicalSlaveRow: \"logicalSlaveRow\",\n logicalCellsCount: \"logicalCellsCount\",\n logicalSlaveCellsCount: \"logicalSlaveCellsCount\",\n dataRowIndex: \"dataRowIndex\",\n dataItem: \"dataItem\",\n isNew: \"isNew\",\n totalColumns: \"totalColumns\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return LogicalRowDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst columnCellIndex = (cell, cells) => {\n for (let idx = 0; idx < cells.length; idx++) {\n if (cells[idx] === cell) {\n return idx;\n }\n }\n};\n/**\n * @hidden\n */\nlet TableBodyComponent = /*#__PURE__*/(() => {\n class TableBodyComponent {\n constructor(changeNotification, editService, localization, ngZone, renderer, element, domEvents, columnInfoService, navigationService, expandState, selection) {\n this.changeNotification = changeNotification;\n this.editService = editService;\n this.localization = localization;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.element = element;\n this.domEvents = domEvents;\n this.columnInfoService = columnInfoService;\n this.navigationService = navigationService;\n this.expandState = expandState;\n this.selection = selection;\n this.hostClass = true;\n this.columns = [];\n this.skip = 0;\n this.noRecordsText = this.localization.get('noRecords');\n this.isLocked = false;\n this.lockedColumnsCount = 0;\n this.totalColumnsCount = 0;\n this.trackBy = defaultTrackBy;\n this.noneIcon = {\n name: 'none',\n content: '',\n viewBox: '0 0 24 24'\n };\n this.rowClass = () => null;\n this.cellKeydownSubscription = this.navigationService.cellKeydown.subscribe(args => this.cellKeydownHandler(args));\n this.trackByWrapper = this.trackByWrapper.bind(this);\n this.trackByColumns = this.trackByColumns.bind(this);\n this.selection.registerTable(this);\n }\n get newDataItem() {\n return this.editService.newDataItem;\n }\n // Number of unlocked columns in the next table, if any\n unlockedColumnsCount(item) {\n const allColumns = this.allColumns || this.columns;\n let allColumnsCount = allColumns.length;\n allColumns.forEach(column => {\n if (column.isSpanColumn) {\n allColumnsCount += column.colspan - 1;\n }\n });\n const contentColumnsCount = this.totalColumnsCount - this.lockedColumnsCount - allColumnsCount;\n const headerFooterColumnsCount = this.totalColumnsCount - this.lockedColumnsCount - (this.allColumns || this.columns).length;\n return item && item.type === 'data' ? contentColumnsCount : headerFooterColumnsCount;\n }\n get hasData() {\n const view = this.view;\n return view && view.data !== null && view.data !== undefined && view.data.length > 0;\n }\n isOdd(item) {\n return item.index % 2 !== 0;\n }\n trackByWrapper(index, item) {\n if (item.type === 'data') {\n item.isEditing = this.editService.isEdited(item.data);\n }\n return this.trackBy(index, item);\n }\n trackByColumns(index, item) {\n return this.virtualColumns ? index : item;\n }\n ngOnChanges(changes) {\n if (isChanged$1(\"columns\", changes, false)) {\n this.changeNotification.notify();\n }\n }\n addRowLogicalIndex() {\n return this.columnInfoService.totalLevels + 1;\n }\n logicalColIndex(column) {\n if (!isPresent(column.leafIndex)) {\n return -1;\n }\n return column.leafIndex;\n }\n cellExpandable(item, column) {\n if (!column.expandable || !item.hasChildren) {\n return false;\n }\n return true;\n }\n ariaRowExpanded(item) {\n return this.lockedColumnsCount < 1 ? Boolean(item.expanded) : undefined;\n }\n ariaRowSelected(item) {\n return this.lockedColumnsCount < 1 ? Boolean(item.selected) : undefined;\n }\n ariaExpanded(item, column) {\n if (!column.expandable || !item.hasChildren) {\n return;\n }\n return Boolean(item.expanded);\n }\n ariaSelected(item, column, columnIndex) {\n if (!this.selection.enabled) {\n return;\n }\n return item.selected || this.isCellSelected(item.data, column, columnIndex);\n }\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n const clickHandler = this.clickHandler.bind(this);\n const mousedownSubscription = this.renderer.listen(this.element.nativeElement, 'mousedown', clickHandler);\n const clickSubscription = this.renderer.listen(this.element.nativeElement, 'click', clickHandler);\n const contextmenuSubscription = this.renderer.listen(this.element.nativeElement, 'contextmenu', clickHandler);\n this.clickSubscription = () => {\n mousedownSubscription();\n clickSubscription();\n contextmenuSubscription();\n };\n });\n let originalNoRecordText = this.localization.get('noRecords');\n this.l10nSubscription = this.localization.changes.subscribe(() => {\n if (this.noRecordsText === originalNoRecordText) {\n this.noRecordsText = this.localization.get('noRecords');\n originalNoRecordText = this.noRecordsText;\n }\n });\n }\n ngDoCheck() {\n this.headerOffset = this.columnInfoService.totalLevels + (hasFilterRow(this.filterable) ? 1 : 0);\n }\n ngOnDestroy() {\n if (this.clickSubscription) {\n this.clickSubscription();\n }\n if (this.l10nSubscription) {\n this.l10nSubscription.unsubscribe();\n }\n this.cellKeydownSubscription.unsubscribe();\n this.selection.unregisterTable(this);\n clearTimeout(this.clickTimeout);\n }\n isEditingCell(item, column) {\n return Boolean(item.editContext && this.editService.isEditingColumn(column));\n }\n isEditingRow(item) {\n return Boolean(item.editContext) || item.isNew;\n }\n get columnsContainer() {\n return this.columnInfoService.columnsContainer;\n }\n get hasFooter() {\n return this.columnsContainer.hasFooter;\n }\n get columnsSpan() {\n return columnsSpan(this.columns);\n }\n get allColumnsSpan() {\n return columnsSpan(this.allColumns || this.columns);\n }\n get colSpan() {\n return this.columnsSpan;\n }\n get footerColumns() {\n return this.isLocked ? this.columnsContainer.lockedColumnsToRender : this.columnsContainer.nonLockedColumnsToRender;\n }\n logicalRowIndex(rowIndex) {\n return 1 + rowIndex + this.headerOffset;\n }\n isCellSelected(dataItem, column, columnIndex) {\n return this.selection.isCellSelected(dataItem, column, columnIndex);\n }\n targetArgs(target, skipFocusable) {\n const {\n cell,\n row\n } = this.targetElements(target);\n if (cell && (!skipFocusable || target === cell || !isFocusableWithTabKey(target, false))) {\n const index = columnCellIndex(cell, row.cells);\n const column = this.columns.toArray()[index];\n const columnIndex = this.lockedColumnsCount + index;\n return {\n item: this.rowItem(row),\n column: column,\n columnIndex: columnIndex\n };\n }\n }\n checkIfClickable(target, cell) {\n return !matchesNodeName('label')(target) && (!hasClasses(target, ICON_CLASS) || hasClasses(target, EMPTY_ICON_CLASS)) && !closestInScope(target, matchesClasses(IGNORE_CONTAINER_CLASSES), cell);\n }\n clickHandler(eventArg) {\n const target = eventArg.target;\n const {\n cell,\n row\n } = this.targetElements(target);\n const forbiddenCellClasses = NON_DATA_CELL_CLASSES.concat(` ${DRAG_HANDLE_CLASS}`);\n const isValidCell = cell ? !hasClasses(cell, forbiddenCellClasses) : false;\n const isValidRow = row ? !hasClasses(row, NON_DATA_ROW_CLASSES) : false;\n if (isValidRow && isValidCell) {\n if (this.expandClick(eventArg, row) || this.checkboxClick(cell, row, eventArg) && !this.selection.dragging) {\n return;\n }\n this.editService.preventCellClose();\n const focusable = target !== cell && isFocusableWithTabKey(target, false);\n const targetClickable = this.checkIfClickable(target, cell);\n if (!focusable && targetClickable) {\n const args = this.cellClickArgs(cell, row, eventArg);\n if (!args) {\n return;\n }\n if (eventArg.type === 'mousedown') {\n this.domEvents.cellMousedown.emit(args);\n } else {\n if (args.isEditedColumn || !this.editService.closeCell(eventArg)) {\n if (eventArg.type === 'click') {\n this.clickTimeout = setTimeout(() => {\n this.emitCellClick(args);\n }, 0);\n } else {\n this.emitCellClick(args);\n }\n }\n }\n }\n }\n }\n emitCellClick(args) {\n this.domEvents.cellClick.emit(args);\n }\n cellKeydownHandler(args) {\n if (args.keyCode === Keys.Enter) {\n this.clickHandler(args);\n }\n }\n cellClickArgs(cell, row, eventArg) {\n const index = columnCellIndex(cell, row.cells);\n const column = this.columns.toArray()[index];\n const columnIndex = this.lockedColumnsCount + index;\n const viewItem = this.rowItem(row);\n if (viewItem.type !== 'data') {\n return;\n }\n const type = eventArg.type === 'keydown' ? 'click' : eventArg.type;\n return {\n column: column,\n columnIndex: columnIndex,\n viewItem: viewItem,\n dataItem: viewItem.data,\n rowIndex: viewItem.index,\n index: viewItem.index,\n isEditedColumn: viewItem.editContext && this.editService.isEditingColumn(column),\n isEdited: viewItem.isNew || viewItem.editContext && this.editService.isEditedColumn(column),\n originalEvent: eventArg,\n type: type\n };\n }\n targetElements(target) {\n const element = this.element.nativeElement;\n let cell, row, body, treelistElement;\n let currentTarget = target;\n do {\n cell = closest(currentTarget, matchesNodeName('td'));\n row = closest(cell, matchesNodeName('tr'));\n body = closest(row, matchesNodeName('tbody'));\n currentTarget = body;\n treelistElement = closestInScope(currentTarget, matchesClasses('k-treelist k-grid'), element);\n } while (body && body !== element && !treelistElement);\n if (cell && body === element && !treelistElement) {\n return {\n cell,\n row\n };\n }\n return {};\n }\n expandClick(eventArg, row) {\n if (eventArg.type === 'click' && !hasClasses(eventArg.target, EMPTY_ICON_CLASS) && eventArg.target.closest('.k-treelist-toggle')) {\n eventArg.preventDefault();\n const viewItem = this.rowItem(row);\n if (viewItem.type === 'data') {\n this.ngZone.run(() => {\n this.expandState.toggleState(viewItem.data);\n });\n return true;\n }\n }\n }\n checkboxClick(cell, row, eventArg) {\n const isCheckboxCell = hasClasses(cell, 'k-checkbox-cell');\n const isCheckbox = hasClasses(eventArg.target, 'k-checkbox');\n if (isCheckboxCell && !isCheckbox && this.selection.settings.checkboxOnly) {\n return;\n }\n if (eventArg.type === 'click' && isCheckboxCell && this.selection.enabled && this.selection.rowSelection) {\n const args = this.cellClickArgs(cell, row, eventArg);\n this.selection.checkboxClick(args);\n if (eventArg.target.checked !== this.selection.isRowSelected(args.dataItem)) {\n eventArg.preventDefault();\n }\n return true;\n }\n }\n rowItem(row) {\n let viewIndex = row.getAttribute('data-treelist-view-index');\n viewIndex = viewIndex ? parseInt(viewIndex, 10) : -1;\n const viewItem = this.view.at(viewIndex);\n return viewItem;\n }\n }\n TableBodyComponent.ɵfac = function TableBodyComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TableBodyComponent)(i0.ɵɵdirectiveInject(ChangeNotificationService), i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DomEventsService), i0.ɵɵdirectiveInject(ColumnInfoService), i0.ɵɵdirectiveInject(NavigationService), i0.ɵɵdirectiveInject(ExpandStateService), i0.ɵɵdirectiveInject(SelectionService));\n };\n TableBodyComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TableBodyComponent,\n selectors: [[\"\", \"kendoTreeListTableBody\", \"\"]],\n hostVars: 2,\n hostBindings: function TableBodyComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-table-tbody\", ctx.hostClass);\n }\n },\n inputs: {\n columns: \"columns\",\n allColumns: \"allColumns\",\n noRecordsTemplate: \"noRecordsTemplate\",\n view: \"view\",\n skip: \"skip\",\n filterable: \"filterable\",\n noRecordsText: \"noRecordsText\",\n isLocked: \"isLocked\",\n lockedColumnsCount: \"lockedColumnsCount\",\n totalColumnsCount: \"totalColumnsCount\",\n virtualColumns: \"virtualColumns\",\n expandIcons: \"expandIcons\",\n trackBy: \"trackBy\",\n totalColumns: \"totalColumns\",\n rowClass: \"rowClass\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n attrs: _c6,\n decls: 2,\n vars: 3,\n consts: [[\"class\", \"k-grid-norecords\", 4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"k-grid-norecords\"], [1, \"k-table-td\"], [3, \"ngTemplateOutlet\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\"], [\"kendoTreeListLogicalRow\", \"\", 3, \"dataRowIndex\", \"dataItem\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", \"totalColumns\", \"isNew\", \"ngClass\", \"class\", \"k-grid-edit-row\", \"k-grid-add-row\", \"k-selected\", 4, \"ngIf\"], [\"role\", \"row\", \"class\", \"k-footer\", \"kendoTreeListLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", \"totalColumns\", 4, \"ngIf\"], [\"kendoTreeListLogicalRow\", \"\", 3, \"dataRowIndex\", \"dataItem\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", \"totalColumns\", \"isNew\", \"ngClass\"], [\"kendoTreeListCell\", \"\", \"kendoTreeListLogicalCell\", \"\", \"class\", \"k-table-td\", 3, \"columnIndex\", \"column\", \"viewItem\", \"dataItem\", \"level\", \"hasChildren\", \"isExpanded\", \"loading\", \"isNew\", \"selected\", \"expandIcons\", \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"colIndex\", \"colSpan\", \"expandable\", \"ngClass\", \"k-grid-edit-cell\", \"k-selected\", \"ngStyle\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"kendoTreeListCell\", \"\", \"kendoTreeListLogicalCell\", \"\", 1, \"k-table-td\", 3, \"columnIndex\", \"column\", \"viewItem\", \"dataItem\", \"level\", \"hasChildren\", \"isExpanded\", \"loading\", \"isNew\", \"selected\", \"expandIcons\", \"logicalRowIndex\", \"logicalColIndex\", \"dataRowIndex\", \"colIndex\", \"colSpan\", \"expandable\", \"ngClass\", \"ngStyle\"], [\"role\", \"row\", \"kendoTreeListLogicalRow\", \"\", 1, \"k-footer\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", \"totalColumns\"], [\"kendoTreeListLogicalCell\", \"\", \"class\", \"k-table-td\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"column\", \"colIndex\", \"ngClass\", \"ngStyle\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"kendoTreeListLogicalCell\", \"\", 1, \"k-table-td\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"column\", \"colIndex\", \"ngClass\", \"ngStyle\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"name\", \"none\", \"innerCssClass\", \"k-treelist-toggle\", 3, \"svgIcon\", 4, \"ngFor\", \"ngForOf\"], [\"name\", \"none\", \"innerCssClass\", \"k-treelist-toggle\", 3, \"svgIcon\"]],\n template: function TableBodyComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TableBodyComponent_tr_0_Template, 4, 3, \"tr\", 0)(1, TableBodyComponent_ng_container_1_Template, 3, 2, \"ng-container\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.hasData);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.view == null ? null : ctx.view.data)(\"ngForTrackBy\", ctx.trackByWrapper);\n }\n },\n dependencies: [NgIf, NgTemplateOutlet, NgFor, LogicalRowDirective, NgClass, CellComponent, LogicalCellDirective, NgStyle, IconWrapperComponent, LevelItemsPipe],\n encapsulation: 2\n });\n return TableBodyComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass RowSelectionState {\n constructor() {\n this.keys = new Set();\n }\n clear() {\n this.keys.clear();\n }\n has(key) {\n return this.keys.has(key);\n }\n add(key) {\n this.keys.add(key);\n }\n remove(key) {\n this.keys.delete(key);\n }\n toArray() {\n const result = [];\n this.keys.forEach(key => {\n result.push({\n itemKey: key\n });\n });\n return result;\n }\n fromArray(arr) {\n this.keys.clear();\n arr.forEach(item => {\n this.add(item.itemKey);\n });\n }\n}\n/**\n * @hidden\n */\nclass CellSelectionState {\n constructor() {\n this.keys = new Map();\n }\n clear() {\n this.keys.clear();\n }\n has(key, columnKey) {\n return this.keys.has(key) && this.keys.get(key).has(columnKey);\n }\n add(key, columnKey) {\n if (!this.keys.has(key)) {\n this.keys.set(key, new Set());\n }\n const columnSet = this.keys.get(key);\n columnSet.add(columnKey);\n }\n remove(key, columnKey) {\n if (this.keys.has(key)) {\n const columnSet = this.keys.get(key);\n columnSet.delete(columnKey);\n if (!columnSet.size) {\n this.keys.delete(key);\n }\n }\n }\n toArray() {\n const result = [];\n this.forEach((itemKey, columnKey) => {\n result.push({\n itemKey,\n columnKey\n });\n });\n return result;\n }\n fromArray(state) {\n this.keys.clear();\n state.forEach(item => {\n this.add(item.itemKey, item.columnKey);\n });\n }\n updateColumKeys(changes) {\n let hasChanges = false;\n this.keys.forEach((value, key) => {\n const newKeys = [];\n value.forEach(columnKey => {\n if (changes.has(columnKey)) {\n newKeys.push(changes.get(columnKey));\n hasChanges = true;\n } else {\n newKeys.push(columnKey);\n }\n });\n this.keys.set(key, new Set(newKeys));\n });\n return hasChanges;\n }\n forEach(callback) {\n this.keys.forEach((value, key) => {\n value.forEach(columnKey => {\n callback(key, columnKey);\n });\n });\n }\n}\n/**\n * @hidden\n */\nconst createState = settings => settings.mode === 'cell' ? new CellSelectionState() : new RowSelectionState();\nconst MINIMAL_DRAG_DISTANCE = 5;\nconst createElement$1 = () => {\n if (!isDocumentAvailable()) {\n return;\n }\n const marquee = document.createElement(\"div\");\n marquee.className = \"k-marquee\";\n const marqueeColor = document.createElement(\"div\");\n marqueeColor.className = \"k-marquee-color\";\n marquee.appendChild(marqueeColor);\n return marquee;\n};\nconst elementUnderCursor$1 = ({\n clientX,\n clientY\n}) => document && document.elementFromPoint(clientX, clientY);\n/**\n * @hidden\n */\nlet MarqueeDirective = /*#__PURE__*/(() => {\n class MarqueeDirective {\n constructor(draggable, selection, changeDetector) {\n this.draggable = draggable;\n this.selection = selection;\n this.changeDetector = changeDetector;\n this.selectionStarted = false;\n this.cellSelected = this.cellSelected.bind(this);\n this.rowSelected = this.rowSelected.bind(this);\n }\n get userSelection() {\n return this.selection.enableMarquee ? 'none' : null;\n }\n ngOnInit() {\n // handle esc\n // trigger cancel\n this.subscriptions = this.draggable.kendoPress.subscribe(this.start.bind(this));\n this.subscriptions.add(this.draggable.kendoDrag.subscribe(this.moveMarquee.bind(this)));\n this.subscriptions.add(this.draggable.kendoRelease.subscribe(this.endSelection.bind(this)));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.clean();\n }\n cellSelected(dataItem, column) {\n return this.state.has(dataItem, column);\n }\n rowSelected(dataItem) {\n return this.state.has(dataItem);\n }\n start(args) {\n const pressTarget = this.targetArgs(args, true);\n if (!pressTarget) {\n return;\n }\n this.pressTarget = pressTarget;\n this.pressArgs = args;\n }\n moveMarquee(args) {\n const press = this.pressArgs;\n if (!this.selectionStarted && press) {\n const distance = Math.sqrt((args.pageX - press.pageX) ** 2 + (args.pageY - press.pageY) ** 2);\n if (distance > MINIMAL_DRAG_DISTANCE) {\n this.selectionStarted = true;\n } else {\n return;\n }\n }\n if (this.pressTarget && !this.state) {\n this.initMarquee();\n }\n if (this.marqueeElement) {\n const element = this.marqueeElement;\n const left = Math.min(args.pageX, press.pageX);\n const top = Math.min(args.pageY, press.pageY);\n const width = Math.abs(args.pageX - press.pageX);\n const height = Math.abs(args.pageY - press.pageY);\n element.style.left = `${left}px`;\n element.style.top = `${top}px`;\n element.style.width = `${width}px`;\n element.style.height = `${height}px`;\n } else if (this.state) {\n const currentTarget = this.targetArgs(args);\n if (currentTarget && (!this.currentTarget || this.currentTarget.item.data !== currentTarget.item.data || this.selection.settings.mode === 'cell' && this.currentTarget.column !== currentTarget.column)) {\n this.currentTarget = currentTarget;\n this.state.fromArray(this.selection.rangeItems(this.pressTarget, currentTarget).map(item => ({\n itemKey: item.dataItem,\n columnKey: item.column\n })));\n this.selection.updateSelectedState();\n this.changeDetector.detectChanges();\n }\n }\n }\n endSelection(args) {\n if (!this.state) {\n return;\n }\n if (this.pressArgs.pageX !== args.pageX || this.pressArgs.pageY !== args.pageY) {\n const pressTarget = this.pressTarget;\n const releaseTarget = this.targetArgs(args);\n this.clean();\n // if one is missing select first / last viewItem depending on the position\n // select column based on coordinates\n if (pressTarget && releaseTarget) {\n this.selection.dragging = true;\n this.selection.selectRange(pressTarget, releaseTarget);\n } else {\n this.changeDetector.detectChanges();\n }\n } else {\n this.clean();\n this.changeDetector.detectChanges();\n }\n }\n clean() {\n if (this.marqueeElement) {\n document.body.removeChild(this.marqueeElement);\n this.marqueeElement = null;\n }\n if (this.selectionSelected) {\n if (this.selection.settings.mode === 'cell') {\n this.selection.isCellSelected = this.selectionSelected;\n } else {\n this.selection.isRowSelected = this.selectionSelected;\n }\n this.selectionSelected = null;\n }\n if (this.state) {\n this.state.clear();\n this.state = null;\n }\n this.pressTarget = null;\n this.pressArgs = null;\n this.selectionStarted = false;\n this.selection.dragging = false;\n }\n targetArgs(args, skipFocusable) {\n let target = args.originalEvent.target;\n if (this.marqueeElement) {\n this.marqueeElement.style.display = 'none';\n target = elementUnderCursor$1(args);\n this.marqueeElement.style.display = 'block';\n }\n return this.selection.targetArgs(target, skipFocusable);\n }\n initMarquee() {\n this.state = createState(this.selection.settings);\n if (this.selection.settings.mode === 'cell') {\n this.selectionSelected = this.selection.isCellSelected;\n this.selection.isCellSelected = this.cellSelected;\n } else {\n this.selectionSelected = this.selection.isRowSelected;\n this.selection.isRowSelected = this.rowSelected;\n }\n this.changeDetector.detectChanges();\n const drag = this.selection.settings.drag;\n if (!(drag && drag.snap)) {\n this.marqueeElement = createElement$1();\n document.body.appendChild(this.marqueeElement);\n }\n }\n }\n MarqueeDirective.ɵfac = function MarqueeDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MarqueeDirective)(i0.ɵɵdirectiveInject(i2$1.DraggableDirective), i0.ɵɵdirectiveInject(SelectionService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n MarqueeDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MarqueeDirective,\n selectors: [[\"\", \"kendoTreeListSelectionMarquee\", \"\"]],\n hostVars: 2,\n hostBindings: function MarqueeDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"user-select\", ctx.userSelection);\n }\n },\n standalone: true\n });\n return MarqueeDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass RowHeightService {\n constructor(total = 0, rowHeight) {\n this.total = total;\n this.rowHeight = rowHeight;\n this.rowHeight = rowHeight || 0;\n }\n index(position) {\n if (position < 0) {\n return undefined;\n }\n return Math.min(Math.floor(position / this.rowHeight), this.total - 1);\n }\n offset(rowIndex) {\n if (0 <= rowIndex && rowIndex < this.total) {\n return rowIndex * this.rowHeight;\n }\n }\n totalHeight() {\n return this.total * this.rowHeight;\n }\n}\n\n/**\n * @hidden\n */\nclass ScrollAction {\n constructor(offset) {\n this.offset = offset;\n }\n}\n/**\n * @hidden\n */\nclass PageAction {\n constructor(skip, take) {\n this.skip = skip;\n this.take = take;\n }\n}\n/**\n * @hidden\n */\nclass ScrollBottomAction {}\nconst SCROLL_BOTTOM_THRESHOLD = 1;\n/**\n * @hidden\n */\nclass ScrollerService {\n constructor(scrollObservable) {\n this.scrollObservable = scrollObservable;\n this.firstLoaded = 0;\n this.lastScrollTop = 0;\n }\n create(rowHeightService, skip, take, total, scrollTop = 0) {\n this.rowHeightService = rowHeightService;\n this.firstLoaded = skip;\n this.lastLoaded = skip + take;\n this.take = take;\n this.total = total;\n this.lastScrollTop = scrollTop;\n const subject = new BehaviorSubject(new ScrollAction(this.rowHeightService.offset(skip)));\n this.subscription = Observable.create(observer => {\n this.unsubscribe();\n this.scrollSubscription = this.scrollObservable.subscribe(x => this.onScroll(x, observer));\n }).subscribe(x => subject.next(x));\n return subject;\n }\n destroy() {\n this.unsubscribe();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n onScroll({\n scrollTop,\n offsetHeight,\n scrollHeight,\n clientHeight\n }, observer) {\n if (this.lastScrollTop === scrollTop) {\n return;\n }\n const up = this.lastScrollTop >= scrollTop;\n this.lastScrollTop = scrollTop;\n let firstItemIndex = this.rowHeightService.index(scrollTop);\n let firstItemOffset = this.rowHeightService.offset(firstItemIndex);\n const lastItemIndex = this.rowHeightService.index(scrollTop + offsetHeight);\n if (!up) {\n if (lastItemIndex >= this.lastLoaded && this.lastLoaded < this.total) {\n const overflow = firstItemIndex + this.take - this.total;\n if (overflow > 0) {\n firstItemIndex = firstItemIndex - overflow;\n firstItemOffset = this.rowHeightService.offset(firstItemIndex);\n }\n this.firstLoaded = firstItemIndex;\n observer.next(new ScrollAction(firstItemOffset));\n let nextTake = this.firstLoaded + this.take;\n this.lastLoaded = Math.min(nextTake, this.total);\n nextTake = nextTake > this.total ? this.total - this.firstLoaded : this.take;\n observer.next(new PageAction(this.firstLoaded, this.take));\n } else {\n const atBottom = scrollHeight - clientHeight - scrollTop < SCROLL_BOTTOM_THRESHOLD;\n if (atBottom) {\n observer.next(new ScrollBottomAction());\n }\n }\n }\n if (up && firstItemIndex < this.firstLoaded) {\n const nonVisibleBuffer = Math.floor(this.take * 0.3);\n this.firstLoaded = Math.max(firstItemIndex - nonVisibleBuffer, 0);\n observer.next(new ScrollAction(this.rowHeightService.offset(this.firstLoaded)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n observer.next(new PageAction(this.firstLoaded, this.take));\n }\n }\n unsubscribe() {\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n this.scrollSubscription = undefined;\n }\n }\n}\n\n/**\n * @hidden\n */\nlet ResizableContainerDirective = /*#__PURE__*/(() => {\n class ResizableContainerDirective {\n constructor(el, renderer, resizeService, ctx) {\n this.el = el;\n this.renderer = renderer;\n this.resizeService = resizeService;\n this.ctx = ctx;\n this.enabled = false;\n }\n set lockedWidth(value) {\n this._lockedWidth = value;\n if (this.enabled) {\n this.attachResize();\n this.resize();\n }\n }\n set kendoTreeListResizableContainer(enabled) {\n const refresh = enabled !== this.enabled;\n this.enabled = enabled;\n if (refresh) {\n this.attachResize();\n this.resize();\n }\n }\n ngOnDestroy() {\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n attachResize() {\n if (this.resizeSubscription && !this.enabled) {\n this.resizeSubscription.unsubscribe();\n this.resizeSubscription = null;\n }\n if (!this.resizeSubscription && this.enabled) {\n this.resizeSubscription = this.resizeService.changes.subscribe(this.resize.bind(this));\n }\n }\n resize() {\n if (this.ctx.treelist && this.ctx.treelist.wrapper) {\n const containerElement = this.ctx.treelist.wrapper.nativeElement;\n const width = Math.max(containerElement.clientWidth - this._lockedWidth, 0);\n if (this.enabled && width > 0) {\n this.renderer.setStyle(this.el.nativeElement, \"width\", width + \"px\");\n } else {\n this.renderer.setStyle(this.el.nativeElement, \"width\", \"\");\n }\n }\n }\n }\n ResizableContainerDirective.ɵfac = function ResizableContainerDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ResizableContainerDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(ResizeService), i0.ɵɵdirectiveInject(ContextService));\n };\n ResizableContainerDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ResizableContainerDirective,\n selectors: [[\"\", \"kendoTreeListResizableContainer\", \"\"]],\n inputs: {\n lockedWidth: \"lockedWidth\",\n kendoTreeListResizableContainer: \"kendoTreeListResizableContainer\"\n },\n standalone: true\n });\n return ResizableContainerDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ColGroupComponent = /*#__PURE__*/(() => {\n class ColGroupComponent {\n constructor() {\n this.columns = [];\n }\n get columnsToRender() {\n return columnsToRender(this.columns);\n }\n trackBy(index, _item) {\n return index;\n }\n }\n ColGroupComponent.ɵfac = function ColGroupComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColGroupComponent)();\n };\n ColGroupComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColGroupComponent,\n selectors: [[\"\", \"kendoTreeListColGroup\", \"\"]],\n inputs: {\n columns: \"columns\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c9,\n decls: 1,\n vars: 2,\n consts: [[3, \"width\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"]],\n template: function ColGroupComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ColGroupComponent_col_0_Template, 1, 2, \"col\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.columnsToRender)(\"ngForTrackBy\", ctx.trackBy);\n }\n },\n dependencies: [NgFor],\n encapsulation: 2\n });\n return ColGroupComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst columnsToResize = ({\n columns\n}) => Math.max(1, resizableColumns(columns).length);\n/**\n * @hidden\n */\nconst row = selector => element => element.querySelector(selector);\n/**\n * @hidden\n */\nconst headerRow = index => element => element.querySelectorAll('thead>tr')[index];\n/**\n * @hidden\n */\nconst cell = (index, selector = 'td') => element => element.querySelectorAll(`${selector}:not(.k-group-cell):not(.k-hierarchy-cell)`)[index];\n/**\n * @hidden\n */\nconst offsetWidth = element => element.offsetWidth;\n/**\n * @hidden\n */\nconst pipe = (...fns) => data => fns.reduce((state, fn) => state ? fn(state) : 0, data);\n/**\n * @hidden\n */\nlet TableDirective = /*#__PURE__*/(() => {\n class TableDirective {\n constructor(element, renderer, service, zone, cdr) {\n this.element = element;\n this.renderer = renderer;\n this.service = service;\n this.zone = zone;\n this.cdr = cdr;\n this.locked = false;\n this.firstResize = false;\n }\n get minWidth() {\n return this.firstResize ? 0 : null;\n }\n ngOnInit() {\n const obs = this.service.changes.pipe(filter(e => this.locked === e.locked));\n this.subscription = obs.pipe(filter(e => e.type === 'start'), tap(this.initState.bind(this)), map(columnsToResize), switchMap(take => obs.pipe(filter(e => e.type === 'resizeTable'), map(e => e.delta), bufferCount(take)))).subscribe(this.resize.bind(this));\n this.autoFitSubscription = this.service.registerTable({\n autoFit: this.autoFitObservable.bind(this),\n locked: this.locked\n });\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (this.autoFitSubscription) {\n this.autoFitSubscription();\n this.autoFitSubscription = null;\n }\n }\n initState() {\n this.firstResize = true;\n if (!this.virtualColumns || this.locked) {\n this.originalWidth = offsetWidth(this.element.nativeElement);\n }\n }\n resize(deltas) {\n if (!this.virtualColumns || this.locked) {\n const delta = deltas.reduce((sum, item) => sum + item, 0);\n const width = this.originalWidth + delta;\n this.renderer.setStyle(this.element.nativeElement, 'width', width + 'px');\n }\n this.cdr.detectChanges();\n }\n autoFitObservable(columnInfo) {\n return Observable.create(observer => {\n this.zone.runOutsideAngular(() => {\n this.renderer.addClass(this.element.nativeElement, 'k-autofitting');\n this.cdr.detectChanges();\n const widths = columnInfo.map(this.measureColumn.bind(this));\n this.renderer.removeClass(this.element.nativeElement, 'k-autofitting');\n observer.next(widths);\n });\n });\n }\n measureColumn(info) {\n const dom = this.element.nativeElement;\n const header = pipe(headerRow(info.level), cell(info.headerIndex, 'th'), offsetWidth)(dom);\n let data = 0;\n if (!info.isParentSpan || info.isParentSpan && info.isLastInSpan) {\n data = pipe(row('tbody>tr:not(.k-grouping-row):not(.k-grid-norecords)'), cell(info.index), offsetWidth)(dom);\n }\n return Math.max(header, data);\n }\n }\n TableDirective.ɵfac = function TableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TableDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(ColumnResizingService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n TableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TableDirective,\n selectors: [[\"\", \"kendoTreeListResizableTable\", \"\"]],\n hostVars: 2,\n hostBindings: function TableDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"min-width\", ctx.minWidth);\n }\n },\n inputs: {\n locked: \"locked\",\n virtualColumns: \"virtualColumns\"\n },\n standalone: true\n });\n return TableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst elementAt = (index, elements, elementOffset) => {\n for (let idx = 0, elementIdx = 0; idx < elements.length; idx++) {\n const offset = elementOffset(elements[idx]);\n if (elementIdx <= index && index <= elementIdx + offset - 1) {\n return elements[idx];\n }\n elementIdx += offset;\n }\n};\nconst rowAt = (index, rows) => elementAt(index, rows, row => row.hasAttribute('data-kendo-treelist-item-index') ? 1 : 0);\nconst cellAt = (index, cells) => elementAt(index, cells, cell => !hasClasses(cell, NON_DATA_CELL_CLASSES) ? parseInt(cell.getAttribute('colSpan'), 10) || 1 : 0);\nconst EMPTY_OBJECT = {};\n/**\n * @hidden\n */\nconst SCROLLER_FACTORY_TOKEN = new InjectionToken('treelist-scroll-service-factory');\n/**\n * @hidden\n */\nfunction DEFAULT_SCROLLER_FACTORY(observable) {\n return new ScrollerService(observable);\n}\nconst wheelDeltaY = e => {\n const deltaY = e.wheelDeltaY;\n if (e.wheelDelta && (deltaY === undefined || deltaY)) {\n return e.wheelDelta;\n } else if (e.detail && e.axis === e.VERTICAL_AXIS) {\n return -e.detail * 10;\n }\n return 0;\n};\nconst preventLockedScroll = (args, element) => {\n const delta = wheelDeltaY(args);\n const scrollTop = element.scrollTop;\n const allowScroll = scrollTop === 0 && 0 < delta || element.scrollHeight <= element.offsetHeight + scrollTop && delta < 0;\n if (!allowScroll) {\n event.preventDefault();\n }\n};\nconst translateY = (renderer, value) => el => renderer.setStyle(el, \"transform\", `translateY(${value}px)`);\nconst maybeNativeElement = el => el ? el.nativeElement : null;\nconst hasScrollbar = (el, parent) => el.nativeElement.offsetWidth > parent.nativeElement.clientWidth;\nconst setHeight = renderer => ({\n el,\n height\n}) => renderer.setStyle(el, \"height\", `${height}px`);\nconst bufferSize = 1;\n/**\n * @hidden\n */\nlet ListComponent = /*#__PURE__*/(() => {\n class ListComponent {\n constructor(scrollerFactory, changeNotification, suspendService, ngZone, renderer, scrollSyncService, resizeService, editService, supportService, navigationService, scrollRequestService, localization, columnResizingService, changeDetector, pdfService, columnInfo) {\n this.changeNotification = changeNotification;\n this.suspendService = suspendService;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.scrollSyncService = scrollSyncService;\n this.resizeService = resizeService;\n this.editService = editService;\n this.supportService = supportService;\n this.navigationService = navigationService;\n this.localization = localization;\n this.columnResizingService = columnResizingService;\n this.changeDetector = changeDetector;\n this.pdfService = pdfService;\n this.columnInfo = columnInfo;\n this.skip = 0;\n this.columns = new ColumnsContainer(() => []);\n this.trackBy = defaultTrackBy;\n this.contentScroll = new EventEmitter();\n this.pageChange = new EventEmitter();\n this.scrollBottom = new EventEmitter();\n this.columnsStartIdx = 0;\n this.resizeSensors = new QueryList();\n this.subscriptions = new Subscription();\n this.dispatcher = new Subject();\n this.containerScrollTop = 0;\n this.scrollLeft = 0;\n this.rtl = false;\n this.scroller = scrollerFactory(this.dispatcher);\n this.subscriptions = scrollRequestService.requests.subscribe(x => this.scrollTo(x));\n }\n get hostClass() {\n return true;\n }\n get hostRole() {\n return 'presentation';\n }\n get totalWidth() {\n if (this.virtualColumns && this.columns.unlockedWidth) {\n return this.columns.unlockedWidth;\n }\n }\n get lockedLeafColumns() {\n return this.columns.lockedLeafColumns;\n }\n get nonLockedLeafColumns() {\n return this.columns.nonLockedLeafColumns;\n }\n get nonLockedColumnsToRender() {\n if (this.virtualColumns && !this.pdfService.exporting) {\n return this.viewportColumns;\n }\n return this.nonLockedLeafColumns;\n }\n get leafColumns() {\n return this.columns.leafColumnsToRender;\n }\n get lockedWidth() {\n return expandColumns(this.lockedLeafColumns.toArray()).reduce((prev, curr) => prev + (curr.width || 0), 0);\n }\n get nonLockedWidth() {\n if (!this.rtl && this.lockedLeafColumns.length || this.virtualColumns) {\n return sumColumnWidths(expandColumns(this.nonLockedColumnsToRender.toArray()));\n }\n return undefined;\n }\n get isLocked() {\n return this.lockedLeafColumns.length > 0;\n }\n ngOnInit() {\n this.init();\n this.subscriptions.add(this.ngZone.runOutsideAngular(this.handleRowSync.bind(this)));\n this.subscriptions.add(this.ngZone.runOutsideAngular(this.handleRowNavigationLocked.bind(this)));\n this.subscriptions.add(merge(this.columns.changes, this.resizeService.changes).subscribe(() => {\n if (this.virtualColumns) {\n this.ngZone.run(() => {\n this.updateViewportColumns();\n this.changeDetector.markForCheck();\n });\n }\n }));\n this.subscriptions.add(this.localization.changes.subscribe(({\n rtl\n }) => this.rtl = rtl));\n }\n ngOnChanges(changes) {\n if (isChanged$1(\"skip\", changes) && !this.rebind) {\n this.skipScroll = true;\n this.container.nativeElement.scrollTop = this.rowHeightService.offset(this.skip);\n }\n if (anyChanged([\"total\", \"take\"], changes)) {\n this.init();\n }\n this.rebind = false;\n }\n ngDoCheck() {\n if (this.virtualColumns && (!this.viewportColumns || this.viewportWidthChange())) {\n this.updateViewportColumns();\n }\n }\n ngAfterViewInit() {\n if (this.skip && this.isVirtual) {\n this.container.nativeElement.scrollTop = this.rowHeightService.offset(this.skip);\n }\n this.resetNavigationViewport();\n this.attachContainerScroll();\n this.initResizeService();\n }\n ngAfterViewChecked() {\n const isLocked = this.isLocked;\n if (isLocked && !this.hasLockedContainer) {\n this.syncRowsHeight();\n }\n this.hasLockedContainer = isLocked;\n }\n syncRowsHeight() {\n if (this.lockedContainer) {\n syncRowsHeight(this.lockedTable.nativeElement, this.table.nativeElement);\n }\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n if (this.resizeService) {\n this.resizeService.destroy();\n }\n this.cleanupScroller();\n }\n init() {\n if (this.suspendService.scroll) {\n return;\n }\n this.rowHeightService = new RowHeightService(this.total, this.rowHeight);\n this.totalHeight = this.rowHeightService.totalHeight();\n if (!isUniversal()) {\n this.ngZone.runOutsideAngular(this.createScroller.bind(this));\n }\n }\n lockedScroll() {\n if (!this.suspendService.scroll) {\n const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;\n if (lockedScrollTop !== this.containerScrollTop) {\n this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;\n }\n }\n }\n lockedMousewheel(args) {\n if (!args.ctrlKey) {\n preventLockedScroll(args, this.container.nativeElement);\n const scrollDelta = wheelDeltaY(args);\n this.container.nativeElement.scrollTop -= scrollDelta;\n }\n }\n lockedKeydown(args) {\n if (args.keyCode === Keys.PageDown || args.keyCode === Keys.PageUp) {\n const dir = args.keyCode === Keys.PageDown ? 1 : -1;\n const element = this.container.nativeElement;\n element.scrollTop += element.offsetHeight * dir * 0.8;\n args.preventDefault();\n }\n }\n attachContainerScroll() {\n if (isUniversal()) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(fromEvent(this.container.nativeElement, 'scroll').pipe(map(event => event.target), filter(() => !this.suspendService.scroll), tap(target => {\n this.onContainerScroll(target);\n this.resetNavigationViewport();\n if (this.virtualColumns) {\n this.handleColumnScroll();\n }\n const rowViewport = this.navigationService.viewport || EMPTY_OBJECT;\n const columnViewport = this.navigationService.columnViewport || EMPTY_OBJECT;\n this.contentScroll.emit({\n scrollLeft: target.scrollLeft,\n scrollTop: target.scrollTop,\n startRow: rowViewport.firstItemIndex,\n endRow: rowViewport.lastItemIndex,\n startColumn: columnViewport.firstItemIndex,\n endColumn: columnViewport.lastItemIndex\n });\n })).subscribe(this.dispatcher));\n });\n this.scrollSyncService.registerEmitter(this.container.nativeElement, \"body\");\n }\n createScroller() {\n this.cleanupScroller();\n const observable = this.scroller.create(this.rowHeightService, this.skip, this.take, this.total, this.containerScrollTop);\n this.skipScroll = false;\n this.scrollerSubscription = observable.pipe(filter(x => x instanceof PageAction), filter(() => {\n const temp = this.skipScroll;\n this.skipScroll = false;\n return !temp;\n }), tap(() => this.rebind = true)).subscribe(x => this.ngZone.run(() => this.pageChange.emit(x)));\n this.scrollerSubscription.add(observable.pipe(filter(x => x instanceof ScrollAction)).subscribe(this.scroll.bind(this)));\n this.scrollerSubscription.add(observable.pipe(filter(x => x instanceof ScrollBottomAction)).subscribe(() => this.scrollBottom.emit()));\n }\n scroll({\n offset = 0\n }) {\n if (this.isVirtual) {\n [maybeNativeElement(this.table), maybeNativeElement(this.lockedTable)].filter(isPresent).forEach(translateY(this.renderer, offset));\n }\n this.resetNavigationViewport();\n }\n onContainerScroll({\n scrollTop\n }) {\n this.containerScrollTop = scrollTop;\n if (this.lockedContainer) {\n this.lockedContainer.nativeElement.scrollTop = scrollTop;\n }\n }\n handleRowSync() {\n const isLocked = () => isPresent(this.lockedContainer);\n return merge(this.changeNotification.changes, this.editService.changed, this.resizeService.changes, this.columnResizingService.changes.pipe(filter(change => change.type === 'end')), this.supportService.changes).pipe(tap(() => this.resetNavigationViewport()), filter(isLocked)).subscribe(() => {\n const scrollTop = this.container.nativeElement.scrollTop;\n const scrollLeft = this.container.nativeElement.scrollLeft;\n this.syncRowsHeight();\n this.syncContainerHeight();\n this.lockedContainer.nativeElement.scrollTop = this.container.nativeElement.scrollTop = scrollTop;\n // fixes scroll left position in IE when editing\n this.container.nativeElement.scrollLeft = scrollLeft;\n this.resizeSensors.forEach(sensor => sensor.acceptSize());\n });\n }\n handleRowNavigationLocked() {\n return this.navigationService.changes.pipe(filter(() => isPresent(this.lockedContainer)), delay(10)).subscribe(args => {\n if (this.lockedLeafColumns.length <= args.prevColIndex && args.colIndex < this.lockedLeafColumns.length) {\n const cell = this.navigationService.activeCell;\n if (cell && cell.colIndex + cell.colSpan < args.prevColIndex) {\n this.container.nativeElement.scrollLeft = 0;\n }\n }\n });\n }\n scrollToVirtualRow(itemIndex) {\n const offset = this.rowHeightService.offset(itemIndex);\n this.container.nativeElement.scrollTop = offset;\n this.resetNavigationViewport();\n }\n scrollTo({\n row,\n column\n }) {\n if (isNumber(row)) {\n if (this.isVirtual) {\n this.scrollToVirtualRow(row);\n } else {\n const element = rowAt(row, this.table.nativeElement.rows);\n if (element) {\n this.container.nativeElement.scrollTop = element.offsetTop;\n }\n }\n }\n if (isNumber(column)) {\n column -= this.lockedLeafColumns.length;\n if (this.virtualColumns) {\n const columns = this.columns.leafColumnsToRender;\n let offset = 0;\n for (let idx = 0; idx < column; idx++) {\n offset += columns[idx].width || 0;\n }\n this.container.nativeElement.scrollLeft = this.normalizeScrollLeft(offset);\n } else {\n const firstRow = rowAt(0, this.table.nativeElement.rows);\n if (firstRow) {\n const element = cellAt(column, firstRow.cells);\n if (element) {\n this.container.nativeElement.scrollLeft = this.elementScrollLeft(element);\n }\n }\n }\n }\n }\n resetNavigationViewport() {\n if (!this.container || !this.navigationService.needsViewport() || this.view.length === 0) {\n return;\n }\n const {\n scrollTop,\n offsetHeight\n } = this.container.nativeElement;\n const scrollBottom = scrollTop + offsetHeight;\n const firstItemIndex = this.rowHeightService.index(scrollTop);\n let lastItemIndex = this.rowHeightService.index(scrollBottom);\n const lastItemOffset = this.rowHeightService.offset(lastItemIndex);\n const lastItemOverflows = lastItemOffset + this.rowHeight > scrollBottom;\n if (lastItemIndex > 0 && lastItemOverflows) {\n lastItemIndex--;\n }\n this.navigationService.setViewport(firstItemIndex, lastItemIndex);\n }\n cleanupScroller() {\n if (this.scrollerSubscription) {\n this.scrollerSubscription.unsubscribe();\n }\n if (this.scroller) {\n this.scroller.destroy();\n }\n }\n initResizeService() {\n this.resizeService.connect(merge(...this.resizeSensors.map(sensor => sensor.resize)));\n }\n syncContainerHeight() {\n [maybeNativeElement(this.lockedContainer)].filter(isPresent).map(el => {\n el.style.height = '';\n let height = this.container.nativeElement.offsetHeight;\n if (hasScrollbar(this.table, this.container)) {\n height -= this.supportService.scrollbarWidth;\n }\n return {\n el,\n height\n };\n }).forEach(setHeight(this.renderer));\n }\n updateViewportColumns(range) {\n const columns = this.columns.nonLockedLeafColumns.toArray();\n // eslint-disable-next-line prefer-const\n let {\n startIdx,\n endIdx,\n offset\n } = range || this.calculateViewportColumns();\n const start = Math.max(0, startIdx - bufferSize);\n const end = Math.min(endIdx + bufferSize, columns.length - 1);\n if (start < startIdx) {\n for (let idx = startIdx - 1; idx >= start; idx--) {\n offset -= columns[idx].width;\n }\n }\n const currentColumns = columns.slice(start, end + 1);\n this.viewportColumnsWidth = currentColumns.reduce((total, column) => total + column.width, 0);\n if (start > 0) {\n const offsetColumn = new ColumnBase();\n offsetColumn.width = offset;\n currentColumns.unshift(offsetColumn);\n }\n this.viewportColumns = new QueryList();\n this.viewportColumns.reset(currentColumns);\n this.columnsStartIdx = start;\n this.columnsEndIdx = end;\n this.columnInfo.columnRangeChange.emit({\n start,\n end,\n offset\n });\n if (!range) {\n this.updateColumnViewport(startIdx, endIdx);\n }\n }\n handleColumnScroll() {\n const container = this.container.nativeElement;\n const scrollLeft = container.scrollLeft;\n if (this.scrollLeft !== scrollLeft) {\n this.scrollLeft = scrollLeft;\n const range = this.calculateViewportColumns();\n this.updateColumnViewport(range.startIdx, range.endIdx);\n if (range.startIdx < this.columnsStartIdx || this.columnsEndIdx < range.endIdx) {\n cancelAnimationFrame(this.columnUpdateFrame);\n this.columnUpdateFrame = requestAnimationFrame(() => {\n this.ngZone.run(() => {\n this.updateViewportColumns(range);\n this.changeDetector.markForCheck();\n });\n });\n }\n }\n }\n updateColumnViewport(startIdx, endIdx) {\n const lockedCount = this.lockedLeafColumns.length;\n const leafColumns = this.nonLockedLeafColumns.toArray();\n const viewportStart = lockedCount + startIdx;\n let viewportEnd = lockedCount + endIdx;\n for (let idx = 0; idx < leafColumns.length; idx++) {\n const column = leafColumns[idx];\n if (column.isSpanColumn) {\n viewportEnd += column.childColumns.length;\n }\n }\n this.navigationService.setColumnViewport(viewportStart, viewportEnd);\n }\n calculateViewportColumns() {\n const {\n scrollLeft,\n clientWidth\n } = this.container.nativeElement;\n const columns = this.columns.nonLockedLeafColumns.toArray();\n const normalizedScrollLeft = this.normalizeScrollLeft(scrollLeft);\n const viewportEnd = normalizedScrollLeft + clientWidth;\n let startIdx;\n let endIdx = 0;\n let current = 0;\n let offset = 0;\n let idx;\n for (idx = 0; idx < columns.length; idx++) {\n const column = columns[idx];\n current += column.width || 0;\n if (startIdx === undefined && current > normalizedScrollLeft) {\n startIdx = idx;\n offset = current - (column.width || 0);\n }\n if (current >= viewportEnd) {\n endIdx = idx;\n break;\n }\n }\n if (!endIdx && idx > 0) {\n endIdx = columns.length - 1;\n }\n return {\n startIdx,\n endIdx,\n offset\n };\n }\n viewportWidthChange() {\n const currentWidth = this.viewportColumns.toArray().reduce((total, column) => total + column.width, 0);\n return currentWidth !== this.viewportColumnsWidth;\n }\n normalizeScrollLeft(position) {\n return this.rtl ? rtlScrollPosition(position, this.container.nativeElement, this.supportService.rtlScrollLeft) : position;\n }\n elementScrollLeft(element) {\n if (this.rtl) {\n return this.normalizeScrollLeft(this.container.nativeElement.scrollWidth - element.offsetLeft - element.offsetWidth);\n }\n return element.offsetLeft;\n }\n }\n ListComponent.ɵfac = function ListComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ListComponent)(i0.ɵɵdirectiveInject(SCROLLER_FACTORY_TOKEN), i0.ɵɵdirectiveInject(ChangeNotificationService), i0.ɵɵdirectiveInject(SuspendService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(ScrollSyncService), i0.ɵɵdirectiveInject(ResizeService), i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(BrowserSupportService), i0.ɵɵdirectiveInject(NavigationService), i0.ɵɵdirectiveInject(ScrollRequestService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(ColumnResizingService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PDFService), i0.ɵɵdirectiveInject(ColumnInfoService));\n };\n ListComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ListComponent,\n selectors: [[\"kendo-treelist-list\"]],\n viewQuery: function ListComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c10, 7);\n i0.ɵɵviewQuery(_c11, 7);\n i0.ɵɵviewQuery(_c12, 5);\n i0.ɵɵviewQuery(_c13, 5);\n i0.ɵɵviewQuery(ResizeSensorComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lockedContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lockedTable = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resizeSensors = _t);\n }\n },\n hostVars: 3,\n hostBindings: function ListComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.hostRole);\n i0.ɵɵclassProp(\"k-grid-container\", ctx.hostClass);\n }\n },\n inputs: {\n view: \"view\",\n total: \"total\",\n rowHeight: \"rowHeight\",\n take: \"take\",\n skip: \"skip\",\n columns: \"columns\",\n noRecordsTemplate: \"noRecordsTemplate\",\n filterable: \"filterable\",\n rowClass: \"rowClass\",\n loading: \"loading\",\n trackBy: \"trackBy\",\n virtualColumns: \"virtualColumns\",\n isVirtual: \"isVirtual\",\n expandIcons: \"expandIcons\"\n },\n outputs: {\n contentScroll: \"contentScroll\",\n pageChange: \"pageChange\",\n scrollBottom: \"scrollBottom\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: SCROLLER_FACTORY_TOKEN,\n useValue: DEFAULT_SCROLLER_FACTORY\n }]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 14,\n vars: 26,\n consts: [[\"container\", \"\"], [\"table\", \"\"], [\"lockedContainer\", \"\"], [\"lockedTable\", \"\"], [\"class\", \"k-grid-content-locked\", \"role\", \"presentation\", 3, \"width\", \"kendoEventsOutsideAngular\", \"scope\", 4, \"ngIf\"], [1, \"k-grid-content\", \"k-virtual-content\", 3, \"kendoTreeListResizableContainer\", \"lockedWidth\"], [\"role\", \"presentation\", 1, \"k-grid-table-wrap\"], [\"kendoTreeListResizableTable\", \"\", \"role\", \"presentation\", 1, \"k-table\", \"k-grid-table\", \"k-table-md\", 3, \"virtualColumns\"], [\"kendoTreeListColGroup\", \"\", 3, \"columns\"], [\"kendoTreeListTableBody\", \"\", \"role\", \"rowgroup\", 3, \"view\", \"columns\", \"allColumns\", \"noRecordsTemplate\", \"lockedColumnsCount\", \"totalColumnsCount\", \"totalColumns\", \"skip\", \"trackBy\", \"filterable\", \"rowClass\", \"virtualColumns\", \"expandIcons\"], [4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-height-container\"], [\"class\", \"k-width-container\", \"role\", \"presentation\", 4, \"ngIf\"], [\"kendoTreeListLoading\", \"\", 4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-grid-content-locked\", 3, \"kendoEventsOutsideAngular\", \"scope\"], [\"kendoTreeListResizableTable\", \"\", \"role\", \"presentation\", 1, \"k-table\", \"k-grid-table\", \"k-table-md\", 3, \"locked\"], [\"kendoTreeListTableBody\", \"\", \"role\", \"presentation\", 3, \"isLocked\", \"view\", \"noRecordsText\", \"columns\", \"totalColumnsCount\", \"totalColumns\", \"skip\", \"trackBy\", \"filterable\", \"rowClass\", \"expandIcons\"], [\"role\", \"presentation\", 1, \"k-width-container\"], [\"kendoTreeListLoading\", \"\"]],\n template: function ListComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ListComponent_div_0_Template, 10, 26, \"div\", 4);\n i0.ɵɵelementStart(1, \"div\", 5, 0)(3, \"div\", 6)(4, \"table\", 7, 1);\n i0.ɵɵelement(6, \"colgroup\", 8)(7, \"tbody\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(8, ListComponent_kendo_resize_sensor_8_Template, 1, 0, \"kendo-resize-sensor\", 10);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, ListComponent_kendo_resize_sensor_9_Template, 1, 0, \"kendo-resize-sensor\", 10);\n i0.ɵɵelementStart(10, \"div\", 11);\n i0.ɵɵelement(11, \"div\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(12, ListComponent_div_12_Template, 2, 2, \"div\", 12);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(13, ListComponent_div_13_Template, 1, 0, \"div\", 13);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.isLocked);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"kendoTreeListResizableContainer\", ctx.lockedLeafColumns.length > 0)(\"lockedWidth\", ctx.lockedWidth + 1);\n i0.ɵɵadvance(3);\n i0.ɵɵstyleProp(\"width\", ctx.nonLockedWidth, \"px\");\n i0.ɵɵproperty(\"virtualColumns\", ctx.virtualColumns);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"columns\", ctx.nonLockedColumnsToRender);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"view\", ctx.view)(\"columns\", ctx.nonLockedColumnsToRender)(\"allColumns\", ctx.nonLockedLeafColumns)(\"noRecordsTemplate\", ctx.noRecordsTemplate)(\"lockedColumnsCount\", ctx.lockedLeafColumns.length)(\"totalColumnsCount\", ctx.leafColumns.length)(\"totalColumns\", ctx.columns)(\"skip\", ctx.skip)(\"trackBy\", ctx.trackBy)(\"filterable\", ctx.filterable)(\"rowClass\", ctx.rowClass)(\"virtualColumns\", ctx.virtualColumns)(\"expandIcons\", ctx.expandIcons);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isLocked);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isLocked || ctx.virtualColumns);\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"height\", ctx.totalHeight, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.virtualColumns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.loading);\n }\n },\n dependencies: [NgIf, EventsOutsideAngularDirective, TableDirective, ColGroupComponent, TableBodyComponent, ResizeSensorComponent, ResizableContainerDirective, LoadingComponent],\n encapsulation: 2\n });\n return ListComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst DEFAULTS = {\n allowUnsort: true,\n mode: 'single',\n showIndexes: true,\n initialDirection: 'asc'\n};\n/**\n * @hidden\n */\nconst normalize = (...settings) => Object.assign({}, DEFAULTS, ...settings);\n\n/**\n * @hidden\n */\nlet DropTargetDirective = /*#__PURE__*/(() => {\n class DropTargetDirective {\n constructor(element, service) {\n this.element = element;\n this.service = service;\n this.context = {};\n this.enter = new EventEmitter();\n this.leave = new EventEmitter();\n this.drop = new EventEmitter();\n this.subscriptions = new Subscription();\n }\n ngOnInit() {\n this.service.add(this);\n const changes = this.service.changes.pipe(filter(({\n target\n }) => target === this));\n this.subscriptions.add(changes.pipe(filter(({\n type\n }) => type === 'leave')).subscribe(e => {\n this.leave.next(this.eventArgs(e));\n }));\n this.subscriptions.add(changes.pipe(filter(({\n type\n }) => type === 'enter')).subscribe(e => {\n this.enter.next(this.eventArgs(e));\n }));\n this.subscriptions.add(changes.pipe(filter(({\n type\n }) => type === 'drop')).subscribe(e => {\n this.drop.next(this.eventArgs(e));\n }));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n eventArgs(e) {\n return {\n target: this,\n mouseEvent: e.mouseEvent,\n draggable: e.draggable\n };\n }\n }\n DropTargetDirective.ɵfac = function DropTargetDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DropTargetDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DragAndDropService));\n };\n DropTargetDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DropTargetDirective,\n selectors: [[\"\", \"kendoDropTarget\", \"\"]],\n inputs: {\n context: \"context\"\n },\n outputs: {\n enter: \"enter\",\n leave: \"leave\",\n drop: \"drop\"\n },\n standalone: true\n });\n return DropTargetDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst preventOnDblClick$1 = release => mouseDown => of(mouseDown).pipe(delay(150), takeUntil(release));\nconst hasClass = className => el => new RegExp(`(^| )${className}( |$)`).test(el.className);\nconst isDeleteButton = or(hasClass('k-i-x'), hasClass('k-svg-i-x'), hasClass('k-icon-button'));\nconst isSortIcon = or(hasClass('k-i-sort-asc-small'), hasClass('k-i-sort-desc-small'), hasClass('k-svg-i-sort-asc-small'), hasClass('k-svg-i-sort-desc-small'));\nconst skipButtons = and(not(isDeleteButton), not(isSortIcon), not(isFocusableWithTabKey), not(matchesNodeName('label')));\nconst elementUnderCursor = ({\n clientX,\n clientY\n}) => document.elementFromPoint(clientX, clientY);\nconst hideThenShow = (element, cont) => {\n element.style.display = 'none';\n const result = cont();\n element.style.display = 'block';\n return result;\n};\n/**\n * @hidden\n */\nlet DraggableColumnDirective = /*#__PURE__*/(() => {\n class DraggableColumnDirective {\n constructor(draggable, element, zone, service, hint, cue, nav, renderer) {\n this.draggable = draggable;\n this.element = element;\n this.zone = zone;\n this.service = service;\n this.hint = hint;\n this.cue = cue;\n this.nav = nav;\n this.renderer = renderer;\n this.context = {};\n this.drag = new EventEmitter();\n this.subscriptions = new Subscription();\n }\n set enableDrag(enabled) {\n this.enabled = enabled;\n this.updateTouchAction();\n }\n get hostClass() {\n return this.enabled;\n }\n ngOnInit() {\n this.subscriptions.add(this.zone.runOutsideAngular(() => this.draggable.kendoPress.pipe(filter(_ => this.enabled), filter(({\n originalEvent: {\n target\n }\n }) => target === this.element.nativeElement || skipButtons(target)), tap(e => {\n const originalEvent = e.originalEvent;\n if (!e.isTouch) {\n originalEvent.preventDefault();\n }\n this.nav.navigateTo(originalEvent.target);\n }), switchMap(preventOnDblClick$1(this.draggable.kendoRelease)), tap(() => {\n this.hint.create(this.context.hint);\n this.cue.create();\n }), switchMap(down => this.draggable.kendoDrag.pipe(tap(e => {\n if (e.isTouch) {\n e.originalEvent.preventDefault();\n }\n }), tap(this.hint.attach()), tap(this.cue.attach()), takeUntil(this.draggable.kendoRelease), map(move => ({\n move,\n down\n })))), tap(this.performDrag.bind(this)), switchMapTo(this.draggable.kendoRelease)).subscribe(this.drop.bind(this))));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n drop(upEvent) {\n this.hint.remove();\n this.cue.remove();\n this.service.notifyDrop(this, upEvent);\n }\n performDrag({\n move\n }) {\n this.hint.move(move);\n const cursorElement = this.elementUnderCursor(move);\n if (cursorElement) {\n this.service.notifyDrag(this, cursorElement, move);\n }\n this.drag.emit({\n draggable: this,\n mouseEvent: move\n });\n }\n elementUnderCursor(mouseEvent) {\n this.hint.hide();\n let target = elementUnderCursor(mouseEvent);\n if (target && /k-grouping-dropclue/.test(target.className)) {\n target = hideThenShow(target, elementUnderCursor.bind(this, mouseEvent));\n }\n this.hint.show();\n return target;\n }\n updateTouchAction() {\n if (!this.element) {\n return;\n }\n this.renderer.setStyle(this.element.nativeElement, 'touch-action', this.enabled ? 'none' : '');\n }\n }\n DraggableColumnDirective.ɵfac = function DraggableColumnDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DraggableColumnDirective)(i0.ɵɵdirectiveInject(i2$1.DraggableDirective, 1), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(DragAndDropService), i0.ɵɵdirectiveInject(DragHintService), i0.ɵɵdirectiveInject(DropCueService), i0.ɵɵdirectiveInject(NavigationService), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n DraggableColumnDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DraggableColumnDirective,\n selectors: [[\"\", \"kendoDraggableColumn\", \"\"]],\n hostVars: 2,\n hostBindings: function DraggableColumnDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-draggable-header\", ctx.hostClass);\n }\n },\n inputs: {\n context: \"context\",\n enableDrag: \"enableDrag\"\n },\n outputs: {\n drag: \"drag\"\n },\n standalone: true\n });\n return DraggableColumnDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst hasFilter = (settings, column) => settings.filter !== false && column.field && column.filterable;\n/**\n * @hidden\n */\nconst hasSort = (settings, column) => settings.sort !== false && column.field && column.sortable;\n/**\n * @hidden\n */\nconst hasLock = (settings, column) => settings.lock && column.lockable && !(column.parent && !column.parent.isSpanColumn);\n/**\n * @hidden\n */\nconst hasColumnChooser = settings => settings.columnChooser !== false;\n/**\n * @hidden\n */\nconst hasItems = (settings, column) => hasColumnChooser(settings) || hasLock(settings, column) || hasSort(settings, column) || hasFilter(settings, column);\nconst areDifferent = (a, b) => a.field !== b.field || a.operator !== b.operator || a.value !== b.value;\nconst isChanged = (a, b) => {\n if (a.length !== b.length) {\n return true;\n }\n for (let idx = 0, len = a.length; idx < len; idx++) {\n const prev = a[idx];\n const curr = b[idx];\n if (isCompositeFilterDescriptor(prev)) {\n if (diffFilters(prev, curr[idx])) {\n return true;\n }\n } else if (areDifferent(prev, curr)) {\n return true;\n }\n }\n return false;\n};\nconst copyObject = obj => {\n const result = {};\n Object.assign(result, obj);\n if (obj.constructor !== Object) {\n const proto = obj.constructor.prototype;\n Object.getOwnPropertyNames(proto).forEach(property => {\n if (property !== 'constructor' && proto.hasOwnProperty(property)) {\n result[property] = obj[property];\n }\n });\n }\n return result;\n};\nconst cloneFilter = filter => copyObject(filter);\n/**\n * @hidden\n */\nconst cloneFilters = filter => {\n if (!filter) {\n return;\n }\n if (isCompositeFilterDescriptor(filter)) {\n return {\n filters: cloneFilters(filter.filters),\n logic: filter.logic\n };\n } else if (Array.isArray(filter)) {\n return filter.map(cloneFilters);\n }\n return cloneFilter(filter);\n};\n/**\n * @hidden\n */\nconst diffFilters = (a, b) => {\n if (isPresent(a) && !isPresent(b)) {\n return true;\n }\n if (!isPresent(a) && isPresent(b)) {\n return true;\n }\n return isPresent(a) && isPresent(b) && isChanged(a.filters, b.filters);\n};\n\n/**\n * @hidden\n */\nlet FilterHostDirective = /*#__PURE__*/(() => {\n class FilterHostDirective {\n constructor(host, resolver) {\n this.host = host;\n this.resolver = resolver;\n }\n ngOnInit() {\n this.component = this.host.createComponent(this.resolver.resolveComponentFactory(this.componentType()));\n this.initComponent({\n column: this.column,\n filter: this.filter\n });\n }\n ngOnDestroy() {\n if (this.component) {\n this.component.destroy();\n this.component = null;\n }\n }\n ngOnChanges(changes) {\n if (anyChanged([\"column\", \"filter\"], changes)) {\n this.initComponent({\n column: this.column,\n filter: this.filter\n });\n }\n }\n initComponent({\n column,\n filter\n }) {\n const instance = this.component.instance;\n instance.column = column;\n instance.filter = filter;\n }\n }\n FilterHostDirective.ɵfac = function FilterHostDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterHostDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver));\n };\n FilterHostDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterHostDirective,\n inputs: {\n column: \"column\",\n filter: \"filter\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return FilterHostDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst localizeOperators$1 = operators => localization => Object.keys(operators).reduce((acc, key) => {\n acc[operators[key]] = localization.get(key);\n return acc;\n}, {});\nconst operatorTexts = localizeOperators$1({\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n \"filterGteOperator\": \"gte\",\n \"filterGtOperator\": \"gt\",\n \"filterLteOperator\": \"lte\",\n \"filterLtOperator\": \"lt\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\",\n \"filterIsEmptyOperator\": \"isempty\",\n \"filterIsNotEmptyOperator\": \"isnotempty\",\n \"filterContainsOperator\": \"contains\",\n \"filterNotContainsOperator\": \"doesnotcontain\",\n \"filterStartsWithOperator\": \"startswith\",\n \"filterEndsWithOperator\": \"endswith\",\n \"filterAfterOrEqualOperator\": \"after-eq\",\n \"filterAfterOperator\": \"after\",\n \"filterBeforeOrEqualOperator\": \"before-eq\",\n \"filterBeforeOperator\": \"before\"\n});\n/**\n * @hidden\n */\nconst toJSON = xs => xs.map(x => x.toJSON());\n/**\n * @hidden\n */\nlet FilterOperatorBase = /*#__PURE__*/(() => {\n class FilterOperatorBase {\n constructor(operator, localization) {\n this.operator = operator;\n this.localization = localization;\n this.messages = operatorTexts(this.localization);\n this._text = this.messages[this.operator];\n this.subscription = this.localization.changes.subscribe(this.refreshText.bind(this));\n }\n /**\n * The text that will be displayed in the drop-down list.\n * @readonly\n * @type {string}\n * @memberOf FilterOperatorBase\n */\n get text() {\n return this._text;\n }\n set text(value) {\n this._text = isNullOrEmptyString(value) ? this.messages[this.operator] : value;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: this.operator\n };\n }\n refreshText() {\n const update = this._text === this.messages[this.operator];\n this.messages = operatorTexts(this.localization);\n if (update) {\n this._text = this.messages[this.operator];\n }\n }\n }\n FilterOperatorBase.ɵfac = function FilterOperatorBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterOperatorBase)(i0.ɵɵdirectiveInject('filterOperator'), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n FilterOperatorBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterOperatorBase,\n inputs: {\n text: \"text\"\n }\n });\n return FilterOperatorBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst insertDefaultFilter = (index, rootFilter, filter) => {\n rootFilter = rootFilter || {\n filters: [],\n logic: \"and\"\n };\n rootFilter.filters[index] = filter;\n return filter;\n};\n/**\n * @hidden\n */\nconst setFilter = (index, filter, field, defaultOperator) => {\n if (isPresent(filter) && isPresent(filter.filters) && filter.filters.length > index) {\n return filter.filters[index];\n } else {\n return insertDefaultFilter(index, filter, {\n field,\n operator: defaultOperator\n });\n }\n};\n/**\n * @hidden\n */\nconst logicOperators = localization => [{\n text: localization.get(\"filterAndLogic\"),\n value: \"and\"\n}, {\n text: localization.get(\"filterOrLogic\"),\n value: \"or\"\n}];\n/**\n * @hidden\n */\nconst flatten = filter => {\n if (isPresent(filter.filters)) {\n return filter.filters.reduce((acc, curr) => acc.concat(isCompositeFilterDescriptor(curr) ? flatten(curr) : [curr]), []);\n }\n return [];\n};\nconst trimFilterByField = (filter, field) => {\n if (isPresent(filter) && isPresent(filter.filters)) {\n filter.filters = filter.filters.filter(x => {\n if (isCompositeFilterDescriptor(x)) {\n trimFilterByField(x, field);\n return x.filters.length;\n } else {\n return x.field !== field;\n }\n });\n }\n};\n/**\n * @hidden\n */\nconst filtersByField = (filter, field) => flatten(filter || {}).filter(x => x.field === field);\n/**\n * @hidden\n */\nconst filterByField = (filter, field) => {\n const [currentFilter] = filtersByField(filter, field);\n return currentFilter;\n};\n/**\n * @hidden\n */\nconst removeFilter = (filter, field) => {\n trimFilterByField(filter, field);\n return filter;\n};\n/**\n * @hidden\n */\nconst localizeOperators = operators => localization => Object.keys(operators).map(key => ({\n text: localization.get(key),\n value: operators[key]\n}));\n/**\n * An abstract base class for the filter-cell component ([see example](slug:filter_row_treelist#toc-custom-filter-row-components).\n */\nlet BaseFilterCellComponent = /*#__PURE__*/(() => {\n class BaseFilterCellComponent {\n constructor(filterService) {\n this.filterService = filterService;\n this.operatorList = new QueryList();\n }\n get hostClasses() {\n return true;\n }\n get operators() {\n return this._operators?.length ? this._operators : this.defaultOperators;\n }\n set operators(values) {\n this._operators = values;\n }\n /**\n * @hidden\n */\n ngAfterContentInit() {\n this.operationListSubscription = observe(this.operatorList).pipe(map(q => q.toArray()), map(toJSON)).subscribe(x => {\n this.operators = x;\n });\n }\n ngOnDestroy() {\n if (this.operationListSubscription) {\n this.operationListSubscription.unsubscribe();\n }\n }\n filterByField(field) {\n return filterByField(this.filter, field);\n }\n filtersByField(field) {\n return filtersByField(this.filter, field);\n }\n removeFilter(field) {\n return removeFilter(this.filter, field);\n }\n updateFilter(filter) {\n const root = this.filter || {\n filters: [],\n logic: \"and\"\n };\n const [currentFilter] = flatten(root).filter(x => x.field === filter.field);\n if (!isPresent(currentFilter)) {\n root.filters.push(filter);\n } else {\n Object.assign(currentFilter, filter);\n }\n return root;\n }\n applyFilter(filter) {\n this.filterService.filter(filter);\n }\n }\n BaseFilterCellComponent.ɵfac = function BaseFilterCellComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BaseFilterCellComponent)(i0.ɵɵdirectiveInject(FilterService));\n };\n BaseFilterCellComponent.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BaseFilterCellComponent,\n contentQueries: function BaseFilterCellComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, FilterOperatorBase, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.operatorList = _t);\n }\n },\n hostVars: 2,\n hostBindings: function BaseFilterCellComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n }\n },\n inputs: {\n operators: \"operators\"\n }\n });\n return BaseFilterCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\nconst stringOperators$1 = localizeOperators({\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n \"filterContainsOperator\": \"contains\",\n \"filterNotContainsOperator\": \"doesnotcontain\",\n \"filterStartsWithOperator\": \"startswith\",\n \"filterEndsWithOperator\": \"endswith\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\",\n \"filterIsEmptyOperator\": \"isempty\",\n \"filterIsNotEmptyOperator\": \"isnotempty\"\n});\n/**\n * Represents a base string filter component.\n */\nlet StringFilterComponent = /*#__PURE__*/(() => {\n class StringFilterComponent extends BaseFilterCellComponent {\n constructor(filterService, localization) {\n super(filterService);\n this.localization = localization;\n /**\n * The default filter operator.\n * @type {string}\n * @default 'contains'\n */\n this.operator = \"contains\";\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this.filterByField((this.column || {}).field);\n }\n /**\n * The current filter operator for the associated column field.\n * @readonly\n * @type {string}\n */\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : this.operator;\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(this.localizationChange.bind(this));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n localizationChange() {\n this.defaultOperators = stringOperators$1(this.localization);\n if (this.operatorList.length) {\n this.operators = toJSON(this.operatorList.toArray());\n }\n }\n }\n StringFilterComponent.ɵfac = function StringFilterComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StringFilterComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n StringFilterComponent.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StringFilterComponent,\n inputs: {\n column: \"column\",\n filter: \"filter\",\n operator: \"operator\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return StringFilterComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet FilterInputDirective = /*#__PURE__*/(() => {\n class FilterInputDirective {\n constructor(valueAccessors, ngZone, element, renderer) {\n this.element = element;\n this.renderer = renderer;\n this.change = new EventEmitter();\n this.composing = false;\n this.filterDelay = 500;\n this.changeRequests = new Subject();\n this.accessor = valueAccessors[0];\n ngZone.runOutsideAngular(() => {\n const unsubscribeStart = renderer.listen(element.nativeElement, 'compositionstart', () => this.composing = true);\n const unsubscribeEnd = renderer.listen(element.nativeElement, 'compositionend', () => this.composing = false);\n this.unsubscribeEvents = () => {\n unsubscribeStart();\n unsubscribeEnd();\n };\n });\n }\n set value(value) {\n this.accessor.writeValue(value);\n }\n set disabled(value) {\n this.accessor.setDisabledState(value);\n }\n ngAfterViewInit() {\n this.addAriaAttributes();\n this.accessor.registerOnChange(x => this.filterDelay > 0 ? this.changeRequests.next(x) : this.change.emit(x));\n this.subscribeChanges();\n }\n ngOnChanges(changes) {\n if (isChanged$1('filterDelay', changes)) {\n this.unsubscribeChanges();\n this.subscribeChanges();\n }\n }\n ngOnDestroy() {\n this.unsubscribeChanges();\n this.unsubscribeEvents();\n }\n subscribeChanges() {\n this.changeRequestsSubscription = this.changeRequests.pipe(debounceTime(this.filterDelay), filter(() => !this.composing)).subscribe(x => this.change.emit(x));\n }\n unsubscribeChanges() {\n if (this.changeRequestsSubscription) {\n this.changeRequestsSubscription.unsubscribe();\n }\n }\n addAriaAttributes() {\n const ariaValue = this.columnLabel;\n if (this.kendoInput && this.kendoInput.focusableId && isDocumentAvailable()) {\n const focusableElement = this.element.nativeElement.querySelector(`#${this.kendoInput.focusableId}`) || this.element.nativeElement;\n this.renderer.setAttribute(focusableElement, 'aria-label', ariaValue);\n } else {\n const inputElement = this.element.nativeElement.querySelector('.k-input-inner');\n const elementToSetLabel = inputElement ? inputElement : this.element.nativeElement;\n if (ariaValue) {\n this.renderer.setAttribute(elementToSetLabel, 'aria-label', ariaValue);\n }\n }\n }\n }\n FilterInputDirective.ɵfac = function FilterInputDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterInputDirective)(i0.ɵɵdirectiveInject(NG_VALUE_ACCESSOR, 2), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n FilterInputDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterInputDirective,\n selectors: [[\"\", \"kendoFilterInput\", \"\"]],\n contentQueries: function FilterInputDirective_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, KendoInput, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.kendoInput = _t.first);\n }\n },\n inputs: {\n filterDelay: \"filterDelay\",\n columnLabel: \"columnLabel\",\n column: \"column\",\n value: \"value\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return FilterInputDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst EMPTY_VALUE_OPERATORS = new Set(['isnull', 'isnotnull', 'isempty', 'isnotempty']);\nconst isEmptyValueOperator = operator => EMPTY_VALUE_OPERATORS.has(operator);\n/**\n * @hidden\n */\nlet FilterInputWrapperComponent = /*#__PURE__*/(() => {\n class FilterInputWrapperComponent extends BaseFilterCellComponent {\n constructor(filterService) {\n super(filterService);\n }\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n get currentOperator() {\n const filter = this.currentFilter;\n if (!this._operator) {\n this._operator = filter ? filter.operator : this.defaultOperator;\n }\n return this._operator;\n }\n set currentOperator(value) {\n this._operator = value;\n const emptyValueOperator = isEmptyValueOperator(value);\n this.filterInputDisabled = emptyValueOperator;\n if (emptyValueOperator) {\n this.applyNoValueFilter(value);\n } else if (!isBlank(value) && isPresent(this.currentFilter)) {\n this.onChange(this.currentFilter.value);\n }\n }\n get defaultOperator() {\n if (!isNullOrEmptyString(this._defaultOperator)) {\n return this._defaultOperator;\n } else if (this.operators && this.operators.length) {\n return this.operators[0].value;\n }\n return \"eq\";\n }\n set defaultOperator(value) {\n this._defaultOperator = value;\n }\n set filterInputDisabled(disabled) {\n if (!this.input) {\n return;\n }\n this.input.disabled = disabled;\n }\n ngAfterContentInit() {\n if (isPresent(this.input)) {\n this.changeSubscription = this.input.change.subscribe(this.onChange.bind(this));\n this.filterInputDisabled = isEmptyValueOperator(this.currentOperator);\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this.changeSubscription) {\n this.changeSubscription.unsubscribe();\n }\n }\n onChange(value) {\n if (!isNullOrEmptyString(value) || this.filterByField(this.column.field)) {\n this.filterChange(isNullOrEmptyString(value) ? this.removeFilter(this.column.field) : this.updateFilter({\n field: this.column.field,\n operator: this.currentOperator,\n value: value\n }));\n }\n }\n onClear() {\n this.onChange(null);\n this.filterInputDisabled = isEmptyValueOperator(this.defaultOperator);\n }\n applyNoValueFilter(operator) {\n this.filterChange(this.updateFilter({\n field: this.column.field,\n operator: operator,\n value: null\n }));\n }\n ngOnChanges(changes) {\n if (isChanged$1(\"filter\", changes, false)) {\n this._operator = null;\n this.filterInputDisabled = isEmptyValueOperator(this.currentOperator);\n }\n }\n }\n FilterInputWrapperComponent.ɵfac = function FilterInputWrapperComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterInputWrapperComponent)(i0.ɵɵdirectiveInject(FilterService));\n };\n FilterInputWrapperComponent.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterInputWrapperComponent,\n contentQueries: function FilterInputWrapperComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, FilterInputDirective, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);\n }\n },\n inputs: {\n column: \"column\",\n filter: \"filter\",\n defaultOperator: \"defaultOperator\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n return FilterInputWrapperComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a component which accommodates the filter operators.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet FilterCellOperatorsComponent = /*#__PURE__*/(() => {\n class FilterCellOperatorsComponent {\n constructor(localization) {\n this.localization = localization;\n this.clearText = 'Clear';\n this.filterClearIcon = filterClearIcon;\n /**\n * @hidden\n */\n this.filterSVGIcon = filterIcon;\n /**\n * The filter operators that will be displayed.\n */\n this.operators = [];\n /**\n * Determines if the list of operators will be displayed.\n * @type {boolean}\n * @default true\n */\n this.showOperators = true;\n /**\n * Fires when the operator is selected.\n * @type {EventEmitter}\n */\n this.valueChange = new EventEmitter();\n /**\n * Fires when the **Clear** button is clicked.\n * @type {EventEmitter<{}>}\n */\n this.clear = new EventEmitter();\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return true;\n }\n /**\n * @hidden\n */\n onChange(dataItem) {\n this.valueChange.emit(dataItem);\n }\n /**\n * @hidden\n */\n clearClick() {\n this.clear.emit();\n return false;\n }\n /**\n * @hidden\n */\n clearKeydown(args) {\n if (args.keyCode === Keys.Enter || args.keyCode === Keys.Space) {\n this.clear.emit();\n }\n }\n /**\n * @hidden\n */\n dropdownKeydown(args) {\n if (args.defaultPrevented) {\n return;\n }\n if (args.keyCode === Keys.Enter && !this.dropdown.isOpen) {\n this.dropdown.toggle(true);\n args.preventDefault();\n }\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(() => this.clearText = this.localization.get('filterClearButton'));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterCellOperatorLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n /**\n * @hidden\n */\n messageFor(token) {\n return this.localization.get(token);\n }\n }\n FilterCellOperatorsComponent.ɵfac = function FilterCellOperatorsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterCellOperatorsComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n FilterCellOperatorsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterCellOperatorsComponent,\n selectors: [[\"kendo-treelist-filter-cell-operators\"]],\n viewQuery: function FilterCellOperatorsComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c15, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdown = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function FilterCellOperatorsComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filtercell-operator\", ctx.hostClasses);\n }\n },\n inputs: {\n operators: \"operators\",\n showButton: \"showButton\",\n showOperators: \"showOperators\",\n value: \"value\",\n column: \"column\"\n },\n outputs: {\n valueChange: \"valueChange\",\n clear: \"clear\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 2,\n consts: [[\"dropdown\", \"\"], [\"kendoTreeListFocusable\", \"\", \"class\", \"k-dropdown-operator\", \"icon\", \"filter\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"value\", \"svgIcon\", \"valuePrimitive\", \"popupSettings\", \"valueChange\", \"keydown\", 4, \"ngIf\"], [\"type\", \"button\", \"kendoButton\", \"\", \"kendoTreeListFocusable\", \"\", \"icon\", \"filter-clear\", 3, \"svgIcon\", \"title\", \"click\", \"keydown\", 4, \"ngIf\"], [\"kendoTreeListFocusable\", \"\", \"icon\", \"filter\", \"textField\", \"text\", \"valueField\", \"value\", 1, \"k-dropdown-operator\", 3, \"valueChange\", \"keydown\", \"data\", \"value\", \"svgIcon\", \"valuePrimitive\", \"popupSettings\"], [\"type\", \"button\", \"kendoButton\", \"\", \"kendoTreeListFocusable\", \"\", \"icon\", \"filter-clear\", 3, \"click\", \"keydown\", \"svgIcon\", \"title\"]],\n template: function FilterCellOperatorsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FilterCellOperatorsComponent_kendo_dropdownlist_0_Template, 2, 7, \"kendo-dropdownlist\", 1)(1, FilterCellOperatorsComponent_button_1_Template, 1, 2, \"button\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.showOperators);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showButton);\n }\n },\n dependencies: [NgIf, DropDownListComponent, FocusableDirective, ButtonComponent],\n encapsulation: 2\n });\n return FilterCellOperatorsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst EMPTY_FILTER_OPERATORS = ['isnull', 'isnotnull', 'isempty', 'isnotempty'];\n/**\n * @hidden\n */\nlet FilterCellWrapperComponent = /*#__PURE__*/(() => {\n class FilterCellWrapperComponent extends FilterInputWrapperComponent {\n constructor(filterService) {\n super(filterService);\n this.showOperators = true;\n }\n get hostClasses() {\n return true;\n }\n get overrideBaseClasses() {\n return false;\n }\n get showButton() {\n const filter = this.currentFilter;\n return isPresent(filter) && (!isNullOrEmptyString(filter.value) || EMPTY_FILTER_OPERATORS.indexOf(String(filter.operator)) >= 0);\n }\n filterChange(filter) {\n this.applyFilter(filter);\n }\n }\n FilterCellWrapperComponent.ɵfac = function FilterCellWrapperComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterCellWrapperComponent)(i0.ɵɵdirectiveInject(FilterService));\n };\n FilterCellWrapperComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterCellWrapperComponent,\n selectors: [[\"kendo-treelist-filter-wrapper-cell\"]],\n hostVars: 4,\n hostBindings: function FilterCellWrapperComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filtercell-wrapper\", ctx.hostClasses)(\"k-filtercell\", ctx.overrideBaseClasses);\n }\n },\n inputs: {\n showOperators: \"showOperators\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c17,\n decls: 2,\n vars: 5,\n consts: [[3, \"clear\", \"valueChange\", \"showOperators\", \"operators\", \"column\", \"showButton\", \"value\"]],\n template: function FilterCellWrapperComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"kendo-treelist-filter-cell-operators\", 0);\n i0.ɵɵlistener(\"clear\", function FilterCellWrapperComponent_Template_kendo_treelist_filter_cell_operators_clear_1_listener() {\n return ctx.onClear();\n });\n i0.ɵɵtwoWayListener(\"valueChange\", function FilterCellWrapperComponent_Template_kendo_treelist_filter_cell_operators_valueChange_1_listener($event) {\n i0.ɵɵtwoWayBindingSet(ctx.currentOperator, $event) || (ctx.currentOperator = $event);\n return $event;\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"showOperators\", ctx.showOperators)(\"operators\", ctx.operators)(\"column\", ctx.column)(\"showButton\", ctx.showButton);\n i0.ɵɵtwoWayProperty(\"value\", ctx.currentOperator);\n }\n },\n dependencies: [FilterCellOperatorsComponent],\n encapsulation: 2\n });\n return FilterCellWrapperComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a string-filter cell component.\n * See the article about the [built-in filter components](slug:filter_row_treelist#toc-built-in-filter-row-components).\n * @example\n *\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet StringFilterCellComponent = /*#__PURE__*/(() => {\n class StringFilterCellComponent extends StringFilterComponent {\n constructor(filterService, localization) {\n super(filterService, localization);\n /**\n * Determines the delay time (in milliseconds) before the filter value is submitted.\n * A value of `0` indicates no delay. The default value is `500`.\n * @type {boolean}\n * @default 500\n */\n this.filterDelay = 500;\n /**\n * Determines if the drop-down filter operators will be displayed.\n * The default value is `true`.\n * @type {boolean}\n * @default true\n */\n this.showOperators = true;\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n }\n StringFilterCellComponent.ɵfac = function StringFilterCellComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StringFilterCellComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n StringFilterCellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StringFilterCellComponent,\n selectors: [[\"kendo-treelist-string-filter-cell\"]],\n inputs: {\n filterDelay: \"filterDelay\",\n showOperators: \"showOperators\",\n placeholder: \"placeholder\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 9,\n consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoTreeListFocusable\", \"\", \"kendoFilterInput\", \"\", 1, \"k-textbox\", \"k-input\", \"k-input-md\", \"k-rounded-md\", \"k-input-solid\", 3, \"columnLabel\", \"filterDelay\", \"ngModel\"]],\n template: function StringFilterCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n i0.ɵɵelement(1, \"input\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"filterDelay\", ctx.filterDelay)(\"ngModel\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n i0.ɵɵattribute(\"placeholder\", ctx.placeholder);\n }\n },\n dependencies: [FilterCellWrapperComponent, ReactiveFormsModule, i3.DefaultValueAccessor, i3.NgControlStatus, FocusableDirective, FilterInputDirective, FormsModule, i3.NgModel],\n encapsulation: 2\n });\n return StringFilterCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst numericOperators = localizeOperators({\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n \"filterGteOperator\": \"gte\",\n \"filterGtOperator\": \"gt\",\n \"filterLteOperator\": \"lte\",\n \"filterLtOperator\": \"lt\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\"\n});\n/**\n * Represents a base numeric filter component.\n */\nlet NumericFilterComponent = /*#__PURE__*/(() => {\n class NumericFilterComponent extends BaseFilterCellComponent {\n constructor(filterService, localization) {\n super(filterService);\n this.localization = localization;\n /**\n * The default filter operator.\n * @type {string}\n * @default 'eq'\n */\n this.operator = \"eq\";\n /**\n * Specifies the value that is used to increment or decrement the component value.\n * @type {numeric}\n * @default 1\n */\n this.step = 1;\n /**\n * Specifies whether the **Up** and **Down** spin buttons will be rendered.\n * @type {boolean}\n * @default true\n */\n this.spinners = true;\n this.defaultOperators = numericOperators(this.localization);\n }\n /**\n * Specifies the number format used when the component is not focused.\n * By default, the `column.format` value is used (if set).\n */\n get format() {\n return !isNullOrEmptyString(this._format) ? this._format : this.columnFormat;\n }\n set format(value) {\n this._format = value;\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n /**\n * The current filter operator for the associated column field.\n * @readonly\n * @type {string}\n */\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : this.operator;\n }\n get columnFormat() {\n return this.column && !isNullOrEmptyString(this.column.format) ? extractFormat(this.column.format) : \"n2\";\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(this.localizationChange.bind(this));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n localizationChange() {\n this.defaultOperators = numericOperators(this.localization);\n if (this.operatorList.length) {\n this.operators = toJSON(this.operatorList.toArray());\n }\n }\n }\n NumericFilterComponent.ɵfac = function NumericFilterComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NumericFilterComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n NumericFilterComponent.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NumericFilterComponent,\n inputs: {\n column: \"column\",\n filter: \"filter\",\n operator: \"operator\",\n step: \"step\",\n min: \"min\",\n max: \"max\",\n spinners: \"spinners\",\n decimals: \"decimals\",\n format: \"format\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return NumericFilterComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a numeric filter cell.\n * See the article about the [built-in filter components](slug:filter_row_treelist#toc-built-in-filter-row-components).\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet NumericFilterCellComponent = /*#__PURE__*/(() => {\n class NumericFilterCellComponent extends NumericFilterComponent {\n constructor(filterService, localization) {\n super(filterService, localization);\n this.localization = localization;\n /**\n * Determines the delay time (in milliseconds) before the filter value is submitted.\n * A value of `0` indicates no delay.\n * @type {boolean}\n * @default 500\n */\n this.filterDelay = 500;\n /**\n * Determines if the drop-down filter operators will be displayed.\n * @type {boolean}\n * @default true\n */\n this.showOperators = true;\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n }\n NumericFilterCellComponent.ɵfac = function NumericFilterCellComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NumericFilterCellComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n NumericFilterCellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NumericFilterCellComponent,\n selectors: [[\"kendo-treelist-numeric-filter-cell\"]],\n inputs: {\n filterDelay: \"filterDelay\",\n showOperators: \"showOperators\",\n placeholder: \"placeholder\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 16,\n consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoTreeListFocusable\", \"\", \"kendoFilterInput\", \"\", 3, \"columnLabel\", \"filterDelay\", \"autoCorrect\", \"value\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", \"placeholder\"]],\n template: function NumericFilterCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n i0.ɵɵelement(1, \"kendo-numerictextbox\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"filterDelay\", ctx.filterDelay)(\"autoCorrect\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step)(\"placeholder\", ctx.placeholder);\n }\n },\n dependencies: [FilterCellWrapperComponent, NumericTextBoxComponent, FocusableDirective, FilterInputDirective],\n encapsulation: 2\n });\n return NumericFilterCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet BooleanFilterComponent = /*#__PURE__*/(() => {\n class BooleanFilterComponent extends BaseFilterCellComponent {\n constructor(filterService, localization) {\n super(filterService);\n this.localization = localization;\n /**\n * @hidden\n */\n this.operator = \"eq\";\n /**\n * @hidden\n */\n this.items = [{\n text: this.localization.get(\"filterIsTrue\"),\n value: true\n }, {\n text: this.localization.get(\"filterIsFalse\"),\n value: false\n }];\n /**\n * @hidden\n */\n this.defaultItem = {\n text: this.localization.get(\"filterBooleanAll\"),\n value: null\n };\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return true;\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n /**\n * The current filter operator for the associated column field.\n * @readonly\n * @type {string}\n */\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : this.operator;\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(this.localizationChange.bind(this));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n localizationChange() {\n this.items = [{\n text: this.localization.get(\"filterIsTrue\"),\n value: true\n }, {\n text: this.localization.get(\"filterIsFalse\"),\n value: false\n }];\n this.defaultItem = {\n text: this.localization.get(\"filterBooleanAll\"),\n value: null\n };\n }\n }\n BooleanFilterComponent.ɵfac = function BooleanFilterComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BooleanFilterComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n BooleanFilterComponent.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BooleanFilterComponent,\n hostVars: 2,\n hostBindings: function BooleanFilterComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filtercell-boolean\", ctx.hostClasses);\n }\n },\n inputs: {\n column: \"column\",\n filter: \"filter\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return BooleanFilterComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a Boolean filter-cell component.\n * See the article about the [built-in filter components](slug:filter_row_treelist#toc-built-in-filter-row-components).\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet BooleanFilterCellComponent = /*#__PURE__*/(() => {\n class BooleanFilterCellComponent extends BooleanFilterComponent {\n constructor(filterService, localization, cd) {\n super(filterService, localization);\n this.cd = cd;\n }\n localizationChange() {\n super.localizationChange();\n this.cd.markForCheck();\n }\n /**\n * @hidden\n */\n messageFor(token) {\n return this.localization.get(token);\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('booleanFilterCellLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n }\n BooleanFilterCellComponent.ɵfac = function BooleanFilterCellComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BooleanFilterCellComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n BooleanFilterCellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BooleanFilterCellComponent,\n selectors: [[\"kendo-treelist-boolean-filter-cell\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 11,\n consts: [[3, \"column\", \"filter\", \"showOperators\", \"defaultOperator\"], [\"kendoFilterInput\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"defaultItem\", \"columnLabel\", \"data\", \"popupSettings\", \"valuePrimitive\", \"value\"]],\n template: function BooleanFilterCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n i0.ɵɵelement(1, \"kendo-dropdownlist\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"showOperators\", false)(\"defaultOperator\", ctx.operator);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"defaultItem\", ctx.defaultItem)(\"columnLabel\", ctx.columnLabel)(\"data\", ctx.items)(\"popupSettings\", i0.ɵɵpureFunction0(10, _c16))(\"valuePrimitive\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n }\n },\n dependencies: [FilterCellWrapperComponent, DropDownListComponent, FilterInputDirective],\n encapsulation: 2\n });\n return BooleanFilterCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\nconst dateOperators = localizeOperators({\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n \"filterAfterOrEqualOperator\": \"gte\",\n \"filterAfterOperator\": \"gt\",\n \"filterBeforeOrEqualOperator\": \"lte\",\n \"filterBeforeOperator\": \"lt\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\"\n});\n/**\n * @hidden\n */\nlet DateFilterComponent = /*#__PURE__*/(() => {\n class DateFilterComponent extends BaseFilterCellComponent {\n constructor(filterService, localization) {\n super(filterService);\n this.localization = localization;\n /**\n * The default filter operator. Defaults to `contains`.\n * @type {string}\n * @default 'gte'\n */\n this.operator = \"gte\";\n /**\n * Defines the active view that the calendar initially renders.\n * By default, the active view is `month`.\n *\n * You have to set `activeView` within the `topView`-`bottomView` range.\n * @default 'month'\n */\n this.activeView = \"month\";\n /**\n * Defines the bottommost calendar view, to which the user can navigate.\n * @default 'month'\n */\n this.bottomView = \"month\";\n /**\n * Defines the topmost calendar view, to which the user can navigate.\n * @default 'century'\n */\n this.topView = \"century\";\n /**\n * Determines whether to display a week number column in the `month` view of the Calendar.\n * @default false\n */\n this.weekNumber = false;\n this.defaultOperators = dateOperators(this.localization);\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n /**\n * Specifies the date format that is used when the component is not focused.\n * By default, the `column.format` value is used (if set).\n */\n set format(value) {\n this._format = value;\n }\n /**\n * Specifies the date format that is used when the component is not focused.\n * By default, the `column.format` value is used (if set).\n *\n * @readonly\n * @type {string}\n */\n get format() {\n return !isNullOrEmptyString(this._format) ? this._format : this.columnFormat;\n }\n get columnFormat() {\n return this.column && !isNullOrEmptyString(this.column.format) ? extractFormat(this.column.format) : \"d\";\n }\n /**\n * The current filter operator for the associated column field.\n * @readonly\n * @type {string}\n */\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : this.operator;\n }\n ngOnInit() {\n this.subscription = this.localization.changes.subscribe(this.localizationChange.bind(this));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n localizationChange() {\n this.defaultOperators = dateOperators(this.localization);\n if (this.operatorList.length) {\n this.operators = toJSON(this.operatorList.toArray());\n }\n }\n }\n DateFilterComponent.ɵfac = function DateFilterComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DateFilterComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n DateFilterComponent.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DateFilterComponent,\n inputs: {\n column: \"column\",\n filter: \"filter\",\n operator: \"operator\",\n format: \"format\",\n min: \"min\",\n max: \"max\",\n formatPlaceholder: \"formatPlaceholder\",\n placeholder: \"placeholder\",\n activeView: \"activeView\",\n bottomView: \"bottomView\",\n topView: \"topView\",\n weekNumber: \"weekNumber\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DateFilterComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a date-filter cell component.\n * See the article about the [built-in filter components](slug:filter_row_treelist#toc-built-in-filter-row-components).\n * @example\n *\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet DateFilterCellComponent = /*#__PURE__*/(() => {\n class DateFilterCellComponent extends DateFilterComponent {\n constructor(filterService, localization) {\n super(filterService, localization);\n this.localization = localization;\n /**\n * Determines if the drop-down filter operators will be displayed. The default value is `true`.\n * @type {boolean}\n * @default true\n */\n this.showOperators = true;\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n }\n DateFilterCellComponent.ɵfac = function DateFilterCellComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DateFilterCellComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n DateFilterCellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DateFilterCellComponent,\n selectors: [[\"kendo-treelist-date-filter-cell\"]],\n inputs: {\n showOperators: \"showOperators\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 16,\n consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"showOperators\"], [\"kendoFilterInput\", \"\", 3, \"value\", \"format\", \"columnLabel\", \"formatPlaceholder\", \"placeholder\", \"activeView\", \"bottomView\", \"topView\", \"min\", \"max\", \"weekNumber\"]],\n template: function DateFilterCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n i0.ɵɵelement(1, \"kendo-datepicker\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"showOperators\", ctx.showOperators);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"columnLabel\", ctx.columnLabel)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"min\", ctx.min)(\"max\", ctx.max)(\"weekNumber\", ctx.weekNumber);\n }\n },\n dependencies: [FilterCellWrapperComponent, DatePickerComponent, FilterInputDirective],\n encapsulation: 2\n });\n return DateFilterCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n *\n * > List the following components in the TreeListModule as `entryComponents`.\n */\nconst filterComponentFactory = type => ({\n \"boolean\": BooleanFilterCellComponent,\n \"date\": DateFilterCellComponent,\n \"numeric\": NumericFilterCellComponent,\n \"text\": StringFilterCellComponent\n})[type];\n\n/**\n * @hidden\n */\nlet FilterCellHostDirective = /*#__PURE__*/(() => {\n class FilterCellHostDirective extends FilterHostDirective {\n constructor(host, resolver) {\n super(host, resolver);\n }\n componentType() {\n if (!isNullOrEmptyString(this.column.filter)) {\n return filterComponentFactory(this.column.filter);\n }\n return StringFilterCellComponent;\n }\n }\n FilterCellHostDirective.ɵfac = function FilterCellHostDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterCellHostDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver));\n };\n FilterCellHostDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterCellHostDirective,\n selectors: [[\"\", \"kendoFilterCellHost\", \"\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return FilterCellHostDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet FilterCellComponent = /*#__PURE__*/(() => {\n class FilterCellComponent {\n constructor(focusGroup) {\n this.focusGroup = focusGroup;\n this._templateContext = {};\n }\n get filter() {\n return this._filter;\n }\n set filter(value) {\n this._filter = cloneFilters(value);\n }\n get templateContext() {\n this._templateContext.$implicit = this.filter;\n this._templateContext.column = this.column;\n this._templateContext.filter = this.filter;\n this._templateContext.cellContext = {\n focusGroup: this.focusGroup\n };\n return this._templateContext;\n }\n get hasTemplate() {\n return isPresent(this.column.filterCellTemplateRef);\n }\n get isFilterable() {\n return isPresent(this.column) && !isNullOrEmptyString(this.column.field) && this.column.filterable;\n }\n }\n FilterCellComponent.ɵfac = function FilterCellComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterCellComponent)(i0.ɵɵdirectiveInject(FocusGroup));\n };\n FilterCellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterCellComponent,\n selectors: [[\"\", \"kendoTreeListFilterCell\", \"\"]],\n inputs: {\n column: \"column\",\n filter: \"filter\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c18,\n decls: 1,\n vars: 1,\n consts: [[4, \"ngIf\"], [3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"kendoFilterCellHost\", \"\", 3, \"column\", \"filter\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function FilterCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FilterCellComponent_ng_container_0_Template, 4, 3, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.isFilterable);\n }\n },\n dependencies: [NgIf, NgSwitch, NgSwitchCase, FilterCellHostDirective, NgTemplateOutlet],\n encapsulation: 2\n });\n return FilterCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet FilterRowComponent = /*#__PURE__*/(() => {\n class FilterRowComponent {\n constructor(localization) {\n this.localization = localization;\n this.columns = [];\n this.filterRowClass = true;\n this.filterLabel = this.localization.get('filter');\n }\n getColumnComponent(column) {\n return column;\n }\n }\n FilterRowComponent.ɵfac = function FilterRowComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterRowComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n FilterRowComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterRowComponent,\n selectors: [[\"\", \"kendoTreeListFilterRow\", \"\"]],\n hostVars: 2,\n hostBindings: function FilterRowComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filter-row\", ctx.filterRowClass);\n }\n },\n inputs: {\n columns: \"columns\",\n filter: \"filter\",\n logicalRowIndex: \"logicalRowIndex\",\n lockedColumnsCount: \"lockedColumnsCount\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c19,\n decls: 1,\n vars: 1,\n consts: [[\"role\", \"gridcell\", \"kendoTreeListFilterCell\", \"\", \"kendoTreeListLogicalCell\", \"\", \"class\", \"k-table-td\", 3, \"column\", \"filter\", \"logicalRowIndex\", \"logicalColIndex\", \"colIndex\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"gridcell\", \"kendoTreeListFilterCell\", \"\", \"kendoTreeListLogicalCell\", \"\", 1, \"k-table-td\", 3, \"column\", \"filter\", \"logicalRowIndex\", \"logicalColIndex\", \"colIndex\"]],\n template: function FilterRowComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FilterRowComponent_td_0_Template, 1, 7, \"td\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.columns);\n }\n },\n dependencies: [NgFor, FilterCellComponent, LogicalCellDirective],\n encapsulation: 2\n });\n return FilterRowComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst fromPercentage = (value, percent) => {\n const sign = percent < 0 ? -1 : 1;\n return Math.ceil(Math.abs(percent) / 100 * value) * sign;\n};\n/**\n * @hidden\n */\nconst toPercentage = (value, whole) => value / whole * 100;\n/**\n * @hidden\n */\nconst headerWidth = handle => handle.nativeElement.parentElement.offsetWidth;\n/**\n * @hidden\n */\nconst allLeafColumns = columns => expandColumns(columns).filter(c => !c.isColumnGroup);\n/**\n * @hidden\n */\nconst stopPropagation = ({\n originalEvent: event\n}) => {\n event.stopPropagation();\n event.preventDefault();\n};\n/**\n * @hidden\n */\nconst createMoveStream = (service, draggable) => mouseDown => draggable.kendoDrag.pipe(takeUntil(draggable.kendoRelease.pipe(tap(() => service.end()))), map(({\n pageX\n}) => ({\n originalX: mouseDown.pageX,\n pageX\n})));\n/**\n * @hidden\n */\nconst preventOnDblClick = release => mouseDown => of(mouseDown).pipe(delay(150), takeUntil(release));\n/**\n * @hidden\n */\nconst isInSpanColumn = column => !!(column.parent && column.parent.isSpanColumn);\n/**\n * @hidden\n *\n * Calculates the column index. If the column is stated in `SpanColumn`,\n * the index for all child columns equals the index of the first child.\n */\nconst indexOf = (target, list) => {\n let index = 0;\n let ignore = 0;\n let skip = 0;\n while (index < list.length) {\n const current = list[index];\n const isParentSpanColumn = isInSpanColumn(current);\n if (current === target) {\n break;\n }\n if (ignore-- <= 0 && isParentSpanColumn) {\n ignore = current.parent.childColumns.length - 1;\n skip += ignore;\n }\n index++;\n }\n return index - skip;\n};\n/**\n * @hidden\n */\nlet ColumnHandleDirective = /*#__PURE__*/(() => {\n class ColumnHandleDirective {\n constructor(draggable, element, service, zone, cdr, localization) {\n this.draggable = draggable;\n this.element = element;\n this.service = service;\n this.zone = zone;\n this.cdr = cdr;\n this.localization = localization;\n this.columns = [];\n this.subscriptions = new Subscription();\n this.rtl = false;\n }\n get visible() {\n return this.column.resizable ? 'block' : 'none';\n }\n get leftStyle() {\n return isTruthy(this.rtl) ? 0 : null;\n }\n get rightStyle() {\n return isTruthy(this.rtl) ? null : 0;\n }\n autoFit() {\n const allLeafs = allLeafColumns(this.columns);\n const currentLeafs = leafColumns([this.column]).filter(column => isTruthy(column.resizable));\n const columnInfo = currentLeafs.map(column => {\n const isParentSpan = isInSpanColumn(column);\n const isLastInSpan = isParentSpan ? column.parent.childColumns.last === column : false;\n const index = indexOf(column, allLeafs);\n return {\n column,\n headerIndex: this.columnsForLevel(column.level).indexOf(column),\n index,\n isLastInSpan,\n isParentSpan,\n level: column.level\n };\n });\n currentLeafs.forEach(column => column.width = 0);\n this.service.measureColumns(columnInfo);\n }\n ngOnInit() {\n const service = this.service.changes.pipe(filter(() => this.column.resizable), filter(e => isPresent(e.columns.find(column => column === this.column))));\n this.subscriptions.add(service.pipe(filter(e => e.type === 'start')).subscribe(this.initState.bind(this)));\n this.subscriptions.add(service.pipe(filter(e => e.type === 'resizeColumn')).subscribe(this.resize.bind(this)));\n this.subscriptions.add(this.service.changes.pipe(filter(e => e.type === 'start'), filter(this.shouldUpdate.bind(this)), take(1) //on first resize only\n ).subscribe(this.initColumnWidth.bind(this)));\n this.subscriptions.add(this.zone.runOutsideAngular(() => this.draggable.kendoPress.pipe(tap(stopPropagation), tap(() => this.service.start(this.column)), switchMap(preventOnDblClick(this.draggable.kendoRelease)), switchMap(createMoveStream(this.service, this.draggable))).subscribe(({\n pageX,\n originalX\n }) => {\n const delta = pageX - originalX;\n const percent = toPercentage(delta, this.column.resizeStartWidth || this.column.width);\n this.service.resizeColumns(percent);\n })));\n this.subscriptions.add(service.pipe(filter(e => e.type === 'autoFitComplete')).subscribe(this.sizeToFit.bind(this)));\n this.subscriptions.add(service.pipe(filter(e => e.type === 'triggerAutoFit')).subscribe(this.autoFit.bind(this)));\n this.subscriptions.add(this.localization.changes.subscribe(({\n rtl\n }) => this.rtl = rtl));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n shouldUpdate() {\n return !allLeafColumns(this.columns).map(column => column.width).some(isBlank);\n }\n initColumnWidth() {\n this.column.width = headerWidth(this.element);\n }\n initState() {\n this.column.resizeStartWidth = headerWidth(this.element);\n this.service.resizedColumn({\n column: this.column,\n oldWidth: this.column.resizeStartWidth\n });\n }\n resize({\n deltaPercent\n }) {\n let delta = fromPercentage(this.column.resizeStartWidth, deltaPercent);\n if (isTruthy(this.rtl)) {\n delta *= -1;\n }\n const newWidth = Math.max(this.column.resizeStartWidth + delta, this.column.minResizableWidth);\n const tableDelta = newWidth > this.column.minResizableWidth ? delta : this.column.minResizableWidth - this.column.resizeStartWidth;\n this.updateWidth(this.column, newWidth);\n this.service.resizeTable(this.column, tableDelta);\n }\n sizeToFit({\n columns,\n widths\n }) {\n const index = columns.indexOf(this.column);\n const width = Math.max(...widths.map(w => w[index])) + 1; //add 1px for IE\n const tableDelta = width - this.column.resizeStartWidth;\n this.updateWidth(this.column, width);\n this.service.resizeTable(this.column, tableDelta);\n }\n updateWidth(column, width) {\n column.width = width;\n this.cdr.markForCheck(); //force CD cycle\n }\n columnsForLevel(level) {\n return columnsToRender(this.columns ? this.columns.filter(column => column.level === level) : []);\n }\n }\n ColumnHandleDirective.ɵfac = function ColumnHandleDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnHandleDirective)(i0.ɵɵdirectiveInject(i2$1.DraggableDirective, 1), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ColumnResizingService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n ColumnHandleDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ColumnHandleDirective,\n selectors: [[\"\", \"kendoTreeListColumnHandle\", \"\"]],\n hostVars: 6,\n hostBindings: function ColumnHandleDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"dblclick\", function ColumnHandleDirective_dblclick_HostBindingHandler() {\n return ctx.autoFit();\n });\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"display\", ctx.visible)(\"left\", ctx.leftStyle)(\"right\", ctx.rightStyle);\n }\n },\n inputs: {\n columns: \"columns\",\n column: \"column\"\n },\n standalone: true\n });\n return ColumnHandleDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the service that is passed to the\n * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * @example\n * ```html\n * \n * \n * \n *
\n * \n * ```\n */\nlet ColumnMenuService = /*#__PURE__*/(() => {\n class ColumnMenuService {\n constructor() {\n /**\n * @hidden\n */\n this.closeMenu = new EventEmitter();\n }\n /**\n * Closes the column menu.\n */\n close() {\n this.closeMenu.emit();\n }\n }\n ColumnMenuService.ɵfac = function ColumnMenuService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuService)();\n };\n ColumnMenuService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ColumnMenuService,\n factory: ColumnMenuService.ɵfac\n });\n return ColumnMenuService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ColumnMenuItemBase = /*#__PURE__*/(() => {\n class ColumnMenuItemBase {\n constructor() {\n this.hostClass = true;\n }\n ngOnInit() {\n if (isDevMode() && !this.service) {\n throw new Error('The service input of the predefined column menu components is mandatory.');\n }\n }\n /**\n * @hidden\n */\n close() {\n this.service.close();\n }\n }\n ColumnMenuItemBase.ɵfac = function ColumnMenuItemBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuItemBase)();\n };\n ColumnMenuItemBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ColumnMenuItemBase,\n hostVars: 2,\n hostBindings: function ColumnMenuItemBase_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-columnmenu-item-wrapper\", ctx.hostClass);\n }\n },\n inputs: {\n service: \"service\"\n }\n });\n return ColumnMenuItemBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet FilterMenuInputWrapperComponent = /*#__PURE__*/(() => {\n class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent {\n constructor() {\n super(null);\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n operatorChange(dataItem) {\n this.currentOperator = dataItem;\n }\n filterChange(filter) {\n this.applyFilter(filter);\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n get currentFilter() {\n return this._currentFilter;\n }\n /**\n * The current filter for the associated column field.\n * @readonly\n * @type {FilterDescriptor}\n */\n set currentFilter(value) {\n this._currentFilter = value;\n }\n updateFilter(filter) {\n Object.assign(this.currentFilter, filter);\n return this.filter;\n }\n onChange(value) {\n this.filterChange(this.updateFilter({\n field: this.column.field,\n operator: this.currentOperator,\n value: value\n }));\n }\n }\n FilterMenuInputWrapperComponent.ɵfac = function FilterMenuInputWrapperComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterMenuInputWrapperComponent)();\n };\n FilterMenuInputWrapperComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterMenuInputWrapperComponent,\n selectors: [[\"kendo-treelist-filter-menu-input-wrapper\"]],\n inputs: {\n filterService: \"filterService\",\n currentFilter: \"currentFilter\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c17,\n decls: 2,\n vars: 3,\n consts: [[\"textField\", \"text\", \"valueField\", \"value\", 3, \"valueChange\", \"data\", \"value\", \"valuePrimitive\"]],\n template: function FilterMenuInputWrapperComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"kendo-dropdownlist\", 0);\n i0.ɵɵlistener(\"valueChange\", function FilterMenuInputWrapperComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) {\n return ctx.operatorChange($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"data\", ctx.operators)(\"value\", ctx.currentOperator)(\"valuePrimitive\", true);\n }\n },\n dependencies: [DropDownListComponent],\n encapsulation: 2\n });\n return FilterMenuInputWrapperComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet StringFilterMenuInputComponent = /*#__PURE__*/(() => {\n class StringFilterMenuInputComponent {\n constructor(localization) {\n this.localization = localization;\n this.operators = [];\n }\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column ? this.column.title || this.column.field : '';\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n }\n StringFilterMenuInputComponent.ɵfac = function StringFilterMenuInputComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StringFilterMenuInputComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n StringFilterMenuInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StringFilterMenuInputComponent,\n selectors: [[\"kendo-treelist-string-filter-menu-input\"]],\n inputs: {\n operators: \"operators\",\n column: \"column\",\n filter: \"filter\",\n operator: \"operator\",\n currentFilter: \"currentFilter\",\n filterService: \"filterService\",\n placeholder: \"placeholder\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 10,\n consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\"], [\"kendoTextBox\", \"\", \"kendoFilterInput\", \"\", 3, \"columnLabel\", \"filterDelay\", \"ngModel\"]],\n template: function StringFilterMenuInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-input-wrapper\", 0);\n i0.ɵɵelement(1, \"input\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"columnLabel\", ctx.columnLabel)(\"filterDelay\", 0)(\"ngModel\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n i0.ɵɵattribute(\"placeholder\", ctx.placeholder);\n }\n },\n dependencies: [FilterMenuInputWrapperComponent, TextBoxDirective, ReactiveFormsModule, i3.DefaultValueAccessor, i3.NgControlStatus, FilterInputDirective, FormsModule, i3.NgModel],\n encapsulation: 2\n });\n return StringFilterMenuInputComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a string-filter menu component.\n * [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n *\n */\nlet StringFilterMenuComponent = /*#__PURE__*/(() => {\n class StringFilterMenuComponent extends StringFilterComponent {\n constructor(localization) {\n super(null, localization);\n this.logicOperators = logicOperators(this.localization);\n /**\n * The current menu filter.\n * @type {CompositeFilterDescriptor}\n */\n this.filter = {\n filters: [],\n logic: \"and\"\n };\n /**\n * Determines if the inputs of second criteria will displayed.\n * @default true\n */\n this.extra = true;\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n get firstFilter() {\n return setFilter(0, this.filter, (this.column || {}).field, this.operator);\n }\n get secondFilter() {\n return setFilter(1, this.filter, (this.column || {}).field, this.operator);\n }\n logicChange(value) {\n this.filter.logic = value;\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n }\n StringFilterMenuComponent.ɵfac = function StringFilterMenuComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StringFilterMenuComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n StringFilterMenuComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StringFilterMenuComponent,\n selectors: [[\"kendo-treelist-string-filter-menu\"]],\n hostVars: 2,\n hostBindings: function StringFilterMenuComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n }\n },\n inputs: {\n column: \"column\",\n filter: \"filter\",\n extra: \"extra\",\n filterService: \"filterService\",\n placeholder: \"placeholder\",\n extraPlaceholder: \"extraPlaceholder\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 8,\n consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\", \"placeholder\"], [\"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"placeholder\", 4, \"ngIf\"], [\"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"valueChange\", \"data\", \"valuePrimitive\", \"value\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"placeholder\"]],\n template: function StringFilterMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-string-filter-menu-input\", 0);\n i0.ɵɵtemplate(1, StringFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 3, \"kendo-dropdownlist\", 1)(2, StringFilterMenuComponent_kendo_treelist_string_filter_menu_input_2_Template, 1, 6, \"kendo-treelist-string-filter-menu-input\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter)(\"placeholder\", ctx.placeholder);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.extra);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.extra);\n }\n },\n dependencies: [StringFilterMenuInputComponent, NgIf, DropDownListComponent],\n encapsulation: 2\n });\n return StringFilterMenuComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet NumericFilterMenuInputComponent = /*#__PURE__*/(() => {\n class NumericFilterMenuInputComponent {\n constructor() {\n this.operators = [];\n /**\n * Specifies the value which is used to increment or decrement the component value.\n * @type {numeric}\n */\n this.step = 1;\n /**\n * Specifies whether the **Up** and **Down** spin buttons will be rendered.\n * @type {boolean}\n */\n this.spinners = true;\n }\n }\n NumericFilterMenuInputComponent.ɵfac = function NumericFilterMenuInputComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NumericFilterMenuInputComponent)();\n };\n NumericFilterMenuInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NumericFilterMenuInputComponent,\n selectors: [[\"kendo-treelist-numeric-filter-menu-input\"]],\n inputs: {\n operators: \"operators\",\n column: \"column\",\n filter: \"filter\",\n operator: \"operator\",\n currentFilter: \"currentFilter\",\n filterService: \"filterService\",\n placeholder: \"placeholder\",\n step: \"step\",\n min: \"min\",\n max: \"max\",\n spinners: \"spinners\",\n decimals: \"decimals\",\n format: \"format\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 16,\n consts: [[3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\"], [\"kendoFilterInput\", \"\", 3, \"filterDelay\", \"autoCorrect\", \"value\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", \"placeholder\"]],\n template: function NumericFilterMenuInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-input-wrapper\", 0);\n i0.ɵɵelement(1, \"kendo-numerictextbox\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"filterDelay\", 0)(\"autoCorrect\", true)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step)(\"placeholder\", ctx.placeholder);\n }\n },\n dependencies: [FilterMenuInputWrapperComponent, NumericTextBoxComponent, FilterInputDirective],\n encapsulation: 2\n });\n return NumericFilterMenuInputComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a numeric-filter menu component. [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet NumericFilterMenuComponent = /*#__PURE__*/(() => {\n class NumericFilterMenuComponent extends NumericFilterComponent {\n constructor(localization) {\n super(null, localization);\n this.logicOperators = logicOperators(this.localization);\n /**\n * The current menu filter.\n * @type {CompositeFilterDescriptor}\n */\n this.filter = {\n filters: [],\n logic: \"and\"\n };\n /**\n * Determines if the inputs of second criteria will displayed.\n * @default true\n */\n this.extra = true;\n /**\n * The placeholder text for the filter input.\n * @type {string}\n */\n this.placeholder = '';\n /**\n * The placeholder text for the extra filter input. Applies when `extra` is set to `true`.\n * @type {string}\n */\n this.extraPlaceholder = '';\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n get firstFilter() {\n return setFilter(0, this.filter, (this.column || {}).field, this.operator);\n }\n get secondFilter() {\n return setFilter(1, this.filter, (this.column || {}).field, this.operator);\n }\n logicChange(value) {\n this.filter.logic = value;\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n }\n NumericFilterMenuComponent.ɵfac = function NumericFilterMenuComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NumericFilterMenuComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n NumericFilterMenuComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NumericFilterMenuComponent,\n selectors: [[\"kendo-treelist-numeric-filter-menu\"]],\n hostVars: 2,\n hostBindings: function NumericFilterMenuComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n }\n },\n inputs: {\n column: \"column\",\n filter: \"filter\",\n extra: \"extra\",\n filterService: \"filterService\",\n placeholder: \"placeholder\",\n extraPlaceholder: \"extraPlaceholder\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 14,\n consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", \"placeholder\"], [\"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", \"placeholder\", 4, \"ngIf\"], [\"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"valueChange\", \"data\", \"valuePrimitive\", \"value\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"format\", \"decimals\", \"spinners\", \"min\", \"max\", \"step\", \"placeholder\"]],\n template: function NumericFilterMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-numeric-filter-menu-input\", 0);\n i0.ɵɵtemplate(1, NumericFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 3, \"kendo-dropdownlist\", 1)(2, NumericFilterMenuComponent_kendo_treelist_numeric_filter_menu_input_2_Template, 1, 12, \"kendo-treelist-numeric-filter-menu-input\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter)(\"format\", ctx.format)(\"decimals\", ctx.decimals)(\"spinners\", ctx.spinners)(\"min\", ctx.min)(\"max\", ctx.max)(\"step\", ctx.step)(\"placeholder\", ctx.placeholder);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.extra);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.extra);\n }\n },\n dependencies: [NumericFilterMenuInputComponent, NgIf, DropDownListComponent],\n encapsulation: 2\n });\n return NumericFilterMenuComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet DateFilterMenuInputComponent = /*#__PURE__*/(() => {\n class DateFilterMenuInputComponent {\n constructor(popupService) {\n this.popupService = popupService;\n this.operators = [];\n }\n open(picker) {\n this.subscription = this.popupService.onClose.pipe(filter(() => picker.isActive)).subscribe(e => e.preventDefault());\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n }\n DateFilterMenuInputComponent.ɵfac = function DateFilterMenuInputComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DateFilterMenuInputComponent)(i0.ɵɵdirectiveInject(SinglePopupService));\n };\n DateFilterMenuInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DateFilterMenuInputComponent,\n selectors: [[\"kendo-treelist-date-filter-menu-input\"]],\n inputs: {\n operators: \"operators\",\n column: \"column\",\n filter: \"filter\",\n operator: \"operator\",\n currentFilter: \"currentFilter\",\n filterService: \"filterService\",\n format: \"format\",\n formatPlaceholder: \"formatPlaceholder\",\n placeholder: \"placeholder\",\n min: \"min\",\n max: \"max\",\n activeView: \"activeView\",\n bottomView: \"bottomView\",\n topView: \"topView\",\n weekNumber: \"weekNumber\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 17,\n consts: [[\"picker\", \"\"], [3, \"column\", \"filter\", \"operators\", \"defaultOperator\", \"currentFilter\", \"filterService\"], [\"kendoFilterInput\", \"\", 3, \"open\", \"filterDelay\", \"value\", \"placeholder\", \"formatPlaceholder\", \"format\", \"min\", \"max\", \"activeView\", \"bottomView\", \"topView\", \"weekNumber\"]],\n template: function DateFilterMenuInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-menu-input-wrapper\", 1)(1, \"kendo-datepicker\", 2, 0);\n i0.ɵɵlistener(\"open\", function DateFilterMenuInputComponent_Template_kendo_datepicker_open_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const picker_r2 = i0.ɵɵreference(2);\n return i0.ɵɵresetView(ctx.open(picker_r2));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"defaultOperator\", ctx.operator)(\"currentFilter\", ctx.currentFilter)(\"filterService\", ctx.filterService);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"filterDelay\", 0)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value)(\"placeholder\", ctx.placeholder)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"format\", ctx.format)(\"min\", ctx.min)(\"max\", ctx.max)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"weekNumber\", ctx.weekNumber);\n }\n },\n dependencies: [FilterMenuInputWrapperComponent, DatePickerComponent, FilterInputDirective],\n encapsulation: 2\n });\n return DateFilterMenuInputComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a date-filter menu component. [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet DateFilterMenuComponent = /*#__PURE__*/(() => {\n class DateFilterMenuComponent extends DateFilterComponent {\n constructor(localization) {\n super(null, localization);\n this.logicOperators = logicOperators(this.localization);\n /**\n * The current menu filter.\n * @type {CompositeFilterDescriptor}\n */\n this.filter = {\n filters: [],\n logic: \"and\"\n };\n /**\n * Determines if the inputs of second criteria will be displayed.\n * @default true\n */\n this.extra = true;\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n get firstFilter() {\n return setFilter(0, this.filter, (this.column || {}).field, this.operator);\n }\n get secondFilter() {\n return setFilter(1, this.filter, (this.column || {}).field, this.operator);\n }\n logicChange(value) {\n this.filter.logic = value;\n }\n localizationChange() {\n this.logicOperators = logicOperators(this.localization);\n super.localizationChange();\n }\n }\n DateFilterMenuComponent.ɵfac = function DateFilterMenuComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DateFilterMenuComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n DateFilterMenuComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DateFilterMenuComponent,\n selectors: [[\"kendo-treelist-date-filter-menu\"]],\n hostVars: 2,\n hostBindings: function DateFilterMenuComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n }\n },\n inputs: {\n column: \"column\",\n filter: \"filter\",\n extra: \"extra\",\n filterService: \"filterService\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 16,\n consts: [[3, \"currentFilter\", \"operators\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\"], [\"class\", \"k-filter-and\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"data\", \"valuePrimitive\", \"value\", \"valueChange\", 4, \"ngIf\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\", 4, \"ngIf\"], [\"textField\", \"text\", \"valueField\", \"value\", 1, \"k-filter-and\", 3, \"valueChange\", \"data\", \"valuePrimitive\", \"value\"], [3, \"operators\", \"currentFilter\", \"filterService\", \"column\", \"filter\", \"activeView\", \"bottomView\", \"topView\", \"format\", \"formatPlaceholder\", \"placeholder\", \"min\", \"max\", \"weekNumber\"]],\n template: function DateFilterMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-treelist-date-filter-menu-input\", 0);\n i0.ɵɵtemplate(1, DateFilterMenuComponent_kendo_dropdownlist_1_Template, 1, 3, \"kendo-dropdownlist\", 1)(2, DateFilterMenuComponent_kendo_treelist_date_filter_menu_input_2_Template, 1, 14, \"kendo-treelist-date-filter-menu-input\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"currentFilter\", ctx.firstFilter)(\"operators\", ctx.operators)(\"filterService\", ctx.filterService)(\"column\", ctx.column)(\"filter\", ctx.filter)(\"activeView\", ctx.activeView)(\"bottomView\", ctx.bottomView)(\"topView\", ctx.topView)(\"format\", ctx.format)(\"formatPlaceholder\", ctx.formatPlaceholder)(\"placeholder\", ctx.placeholder)(\"min\", ctx.min)(\"max\", ctx.max)(\"weekNumber\", ctx.weekNumber);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.extra);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.extra);\n }\n },\n dependencies: [DateFilterMenuInputComponent, NgIf, DropDownListComponent],\n encapsulation: 2\n });\n return DateFilterMenuComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet BooleanFilterRadioButtonDirective = /*#__PURE__*/(() => {\n class BooleanFilterRadioButtonDirective {\n constructor(hostElement, renderer) {\n this.hostElement = hostElement;\n this.renderer = renderer;\n }\n ngAfterViewInit() {\n this.radioButtonEl = this.hostElement.nativeElement;\n this.renderer.setAttribute(this.hostElement.nativeElement, 'aria-label', this.columnLabel);\n }\n }\n BooleanFilterRadioButtonDirective.ɵfac = function BooleanFilterRadioButtonDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BooleanFilterRadioButtonDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n BooleanFilterRadioButtonDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BooleanFilterRadioButtonDirective,\n selectors: [[\"\", \"kendoFilterMenuRadioButton\", \"\"]],\n inputs: {\n columnLabel: \"columnLabel\"\n },\n standalone: true\n });\n return BooleanFilterRadioButtonDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents a Boolean-filter menu component. [See example](slug:filter_menu_treelist#toc-built-in-filter-menu-components).\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet BooleanFilterMenuComponent = /*#__PURE__*/(() => {\n class BooleanFilterMenuComponent extends BooleanFilterComponent {\n constructor(renderer, localization, domSanitizer) {\n super(null, localization);\n this.renderer = renderer;\n this.domSanitizer = domSanitizer;\n /**\n * The current menu filter.\n * @type {CompositeFilterDescriptor}\n */\n this.filter = {\n filters: [],\n logic: \"and\"\n };\n this.idPrefix = guid();\n }\n /**\n * @hidden\n */\n get hostClasses() {\n return false;\n }\n /**\n * @hidden\n */\n radioId(value) {\n return `${this.idPrefix}_${value}`;\n }\n /**\n * @hidden\n */\n onChange(value) {\n this.applyFilter(this.updateFilter({\n field: this.column.field,\n operator: \"eq\",\n value: value\n }));\n }\n /**\n * @hidden\n */\n isSelected(radioValue) {\n return this.filtersByField(this.column.field).some(({\n value\n }) => value === radioValue);\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n }\n BooleanFilterMenuComponent.ɵfac = function BooleanFilterMenuComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BooleanFilterMenuComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i1$2.DomSanitizer));\n };\n BooleanFilterMenuComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BooleanFilterMenuComponent,\n selectors: [[\"kendo-treelist-boolean-filter-menu\"]],\n viewQuery: function BooleanFilterMenuComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c20, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputElem = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function BooleanFilterMenuComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-filtercell\", ctx.hostClasses);\n }\n },\n inputs: {\n filter: \"filter\",\n filterService: \"filterService\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 1,\n consts: [[\"inputElem\", \"\"], [1, \"k-radio-list\", \"k-reset\"], [4, \"ngFor\", \"ngForOf\"], [\"type\", \"radio\", \"kendoRadioButton\", \"\", \"kendoFilterMenuRadioButton\", \"\", 3, \"change\", \"columnLabel\", \"name\", \"checked\"], [1, \"k-radio-label\"]],\n template: function BooleanFilterMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ul\", 1);\n i0.ɵɵtemplate(1, BooleanFilterMenuComponent_li_1_Template, 5, 6, \"li\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.items);\n }\n },\n dependencies: [NgFor, RadioButtonDirective, BooleanFilterRadioButtonDirective],\n encapsulation: 2\n });\n return BooleanFilterMenuComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n *\n * > List the following components as `entryComponents` in the TreeListModule.\n */\nconst filterMenuComponentFactory = type => ({\n \"boolean\": BooleanFilterMenuComponent,\n \"date\": DateFilterMenuComponent,\n \"numeric\": NumericFilterMenuComponent,\n \"text\": StringFilterMenuComponent\n})[type];\n\n/**\n * @hidden\n */\nlet FilterMenuHostDirective = /*#__PURE__*/(() => {\n class FilterMenuHostDirective extends FilterHostDirective {\n constructor(host, resolver) {\n super(host, resolver);\n }\n componentType() {\n if (isPresent(this.column) && !isNullOrEmptyString(this.column.filter)) {\n return filterMenuComponentFactory(this.column.filter);\n }\n return StringFilterMenuComponent;\n }\n initComponent(ctx) {\n super.initComponent(ctx);\n this.component.instance.filterService = this.filterService;\n }\n }\n FilterMenuHostDirective.ɵfac = function FilterMenuHostDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterMenuHostDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver));\n };\n FilterMenuHostDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FilterMenuHostDirective,\n selectors: [[\"\", \"kendoFilterMenuHost\", \"\"]],\n inputs: {\n filterService: \"filterService\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return FilterMenuHostDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst isNoValueOperator = operator => operator === \"isnull\" || operator === \"isnotnull\" || operator === \"isempty\" || operator === \"isnotempty\";\nconst validFilters = ({\n value,\n operator\n}) => !isNullOrEmptyString(value) || isNoValueOperator(operator);\nconst trimFilters = filter => {\n filter.filters = filter.filters.filter(validFilters);\n return filter;\n};\nconst findParent = (filters, field, parent) => {\n return filters.reduce((acc, filter) => {\n if (acc) {\n return acc;\n }\n if (filter.filters) {\n return findParent(filter.filters, field, filter);\n } else if (filter.field === field) {\n return parent;\n }\n return acc;\n }, undefined);\n};\nconst parentLogicOfDefault = (filter, field, def = \"and\") => {\n const parent = findParent((filter || {}).filters || [], field);\n return isPresent(parent) ? parent.logic : def;\n};\n/**\n * @hidden\n */\nlet FilterMenuContainerComponent = /*#__PURE__*/(() => {\n class FilterMenuContainerComponent {\n constructor(parentService, childService, localization, cd) {\n this.parentService = parentService;\n this.childService = childService;\n this.localization = localization;\n this.cd = cd;\n this.close = new EventEmitter();\n /**\n * @hidden\n */\n this.actionsClass = 'k-actions k-button-group';\n this._templateContext = {};\n }\n get filter() {\n return this._filter;\n }\n /**\n * The current root filter.\n * @type {CompositeFilterDescriptor}\n */\n set filter(value) {\n this._filter = cloneFilters(value);\n }\n get childFilter() {\n if (!isPresent(this._childFilter)) {\n this._childFilter = {\n filters: filtersByField(this.filter, (this.column || {}).field),\n logic: parentLogicOfDefault(this.filter, (this.column || {}).field)\n };\n }\n return this._childFilter;\n }\n ngOnInit() {\n this.subscription = this.childService.changes.subscribe(filter => this._childFilter = filter);\n this.subscription.add(this.localization.changes.subscribe(() => this.cd.markForCheck()));\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n get disabled() {\n return !this.childFilter.filters.some(validFilters);\n }\n get templateContext() {\n this._templateContext.column = this.column;\n this._templateContext.filter = this.childFilter;\n this._templateContext.filterService = this.childService;\n this._templateContext[\"$implicit\"] = this.childFilter;\n return this._templateContext;\n }\n get hasTemplate() {\n return isPresent(this.column) && isPresent(this.column.filterMenuTemplateRef);\n }\n submit() {\n const filter = trimFilters(this.childFilter);\n if (filter.filters.length) {\n const root = this.filter || {\n filters: [],\n logic: \"and\"\n };\n removeFilter(root, this.column.field);\n root.filters.push(filter);\n this.parentService.filter(root);\n }\n this.close.emit();\n return false;\n }\n reset() {\n const root = this.filter || {\n filters: [],\n logic: \"and\"\n };\n removeFilter(root, this.column.field);\n this.parentService.filter(root);\n this.close.emit();\n }\n get clearText() {\n return this.localization.get(\"filterClearButton\");\n }\n get filterText() {\n return this.localization.get(\"filterFilterButton\");\n }\n }\n FilterMenuContainerComponent.ɵfac = function FilterMenuContainerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterMenuContainerComponent)(i0.ɵɵdirectiveInject(FilterService, 4), i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n FilterMenuContainerComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterMenuContainerComponent,\n selectors: [[\"kendo-treelist-filter-menu-container\"]],\n inputs: {\n column: \"column\",\n filter: \"filter\",\n actionsClass: \"actionsClass\"\n },\n outputs: {\n close: \"close\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([FilterService]), i0.ɵɵStandaloneFeature],\n decls: 10,\n vars: 7,\n consts: [[1, \"k-filter-menu\", 3, \"submit\", \"reset\"], [1, \"k-filter-menu-container\"], [3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [3, \"ngClass\"], [\"type\", \"reset\", 1, \"k-button\", \"k-button-solid-base\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\"], [\"type\", \"submit\", 1, \"k-button\", \"k-button-solid-primary\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"disabled\"], [\"kendoFilterMenuHost\", \"\", 3, \"filterService\", \"column\", \"filter\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function FilterMenuContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"form\", 0);\n i0.ɵɵlistener(\"submit\", function FilterMenuContainerComponent_Template_form_submit_0_listener() {\n return ctx.submit();\n })(\"reset\", function FilterMenuContainerComponent_Template_form_reset_0_listener() {\n return ctx.reset();\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵelementContainerStart(2, 2);\n i0.ɵɵtemplate(3, FilterMenuContainerComponent_ng_container_3_Template, 2, 3, \"ng-container\", 3)(4, FilterMenuContainerComponent_ng_container_4_Template, 2, 1, \"ng-container\", 3);\n i0.ɵɵelementContainerEnd();\n i0.ɵɵelementStart(5, \"div\", 4)(6, \"button\", 5);\n i0.ɵɵtext(7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"button\", 6);\n i0.ɵɵtext(9);\n i0.ɵɵelementEnd()()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitch\", ctx.hasTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx.actionsClass);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.clearText, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.filterText, \" \");\n }\n },\n dependencies: [ReactiveFormsModule, i3.ɵNgNoValidate, i3.NgControlStatusGroup, FormsModule, i3.NgForm, NgSwitch, NgSwitchCase, FilterMenuHostDirective, NgIf, NgTemplateOutlet, NgClass],\n encapsulation: 2\n });\n return FilterMenuContainerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the content template of the\n * [`kendo-treelist-columnmenu-item`]({% slug api_treelist_columnmenuitemcomponent %}) component.\n * Provides an option for specifying the content of a column item.\n * To define the content template, nest an `` tag with the\n * `kendoTreeListColumnMenuItemContentTemplate` directive inside a ``.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * Item Content\n * \n * \n * \n * \n * \n * ```\n */\nlet ColumnMenuItemContentTemplateDirective = /*#__PURE__*/(() => {\n class ColumnMenuItemContentTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n ColumnMenuItemContentTemplateDirective.ɵfac = function ColumnMenuItemContentTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuItemContentTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n ColumnMenuItemContentTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ColumnMenuItemContentTemplateDirective,\n selectors: [[\"\", \"kendoTreeListColumnMenuItemContentTemplate\", \"\"]],\n standalone: true\n });\n return ColumnMenuItemContentTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents an item that can be placed inside a\n * [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * ```\n */\nlet ColumnMenuItemComponent = /*#__PURE__*/(() => {\n class ColumnMenuItemComponent {\n constructor() {\n /**\n * Fires when the item is clicked.\n */\n this.itemClick = new EventEmitter();\n /**\n * Fires when the content is expanded.\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the content is collapsed.\n */\n this.collapse = new EventEmitter();\n this.contentState = 'collapsed';\n this.chevronUpIcon = chevronUpIcon;\n this.chevronDownIcon = chevronDownIcon;\n }\n get expandedIcon() {\n return this.expanded ? 'arrow-chevron-up' : 'arrow-chevron-down';\n }\n get expandedSvgIcon() {\n return this.expanded ? this.chevronUpIcon : this.chevronDownIcon;\n }\n ngOnChanges(changes) {\n if (changes.expanded) {\n this.updateContentState();\n }\n }\n /**\n * @hidden\n */\n onClick(e) {\n this.itemClick.emit(e);\n if (this.contentTemplate) {\n this.expanded = !this.expanded;\n this.updateContentState();\n if (this.expanded) {\n this.expand.emit();\n } else {\n this.collapse.emit();\n }\n }\n }\n updateContentState() {\n this.contentState = this.expanded ? 'expanded' : 'collapsed';\n }\n }\n ColumnMenuItemComponent.ɵfac = function ColumnMenuItemComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuItemComponent)();\n };\n ColumnMenuItemComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnMenuItemComponent,\n selectors: [[\"kendo-treelist-columnmenu-item\"]],\n contentQueries: function ColumnMenuItemComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, ColumnMenuItemContentTemplateDirective, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n }\n },\n inputs: {\n icon: \"icon\",\n svgIcon: \"svgIcon\",\n text: \"text\",\n selected: \"selected\",\n disabled: \"disabled\",\n expanded: \"expanded\"\n },\n outputs: {\n itemClick: \"itemClick\",\n expand: \"expand\",\n collapse: \"collapse\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 2,\n consts: [[\"content\", \"\"], [\"class\", \"k-expander\", 4, \"ngIf\", \"ngIfElse\"], [1, \"k-expander\"], [3, \"ngTemplateOutlet\"], [1, \"k-columnmenu-item\", 3, \"click\"], [3, \"name\", \"svgIcon\"], [\"class\", \"k-spacer\", 4, \"ngIf\"], [\"class\", \"k-expander-indicator\", 4, \"ngIf\"], [\"class\", \"k-columnmenu-item-content\", 3, \"overflow\", 4, \"ngIf\"], [1, \"k-spacer\"], [1, \"k-expander-indicator\"], [1, \"k-columnmenu-item-content\"]],\n template: function ColumnMenuItemComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ColumnMenuItemComponent_div_0_Template, 2, 1, \"div\", 1)(1, ColumnMenuItemComponent_ng_template_1_Template, 6, 10, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const content_r1 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", ctx.contentTemplate)(\"ngIfElse\", content_r1);\n }\n },\n dependencies: [IconWrapperComponent, NgIf, NgTemplateOutlet],\n encapsulation: 2,\n data: {\n animation: [trigger('state', [state('collapsed', style({\n display: 'none'\n })), state('expanded', style({\n display: 'block'\n })), transition('collapsed => expanded', [style({\n height: '0px',\n display: 'block'\n }), animate('100ms ease-in', style({\n height: '*'\n }))]), transition('expanded => collapsed', [style({\n height: '*'\n }), animate('100ms ease-in', style({\n height: '0px'\n }))])])]\n }\n });\n return ColumnMenuItemComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column-menu item for editing column filters in the TreeList.\n *\n * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})\n * that is passed by the template to the service input of the `kendo-treelist-columnmenu-filter` component.\n *\n */\nlet ColumnMenuFilterComponent = /*#__PURE__*/(() => {\n class ColumnMenuFilterComponent extends ColumnMenuItemBase {\n constructor(localization) {\n super();\n this.localization = localization;\n /**\n * Fires when the content is expanded.\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the content is collapsed.\n */\n this.collapse = new EventEmitter();\n /**\n * Specifies if the content is expanded.\n * @default false\n */\n this.expanded = false;\n /**\n * @hidden\n */\n this.actionsClass = 'k-actions';\n this.filterIcon = filterIcon;\n }\n }\n ColumnMenuFilterComponent.ɵfac = function ColumnMenuFilterComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuFilterComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n ColumnMenuFilterComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnMenuFilterComponent,\n selectors: [[\"kendo-treelist-columnmenu-filter\"]],\n inputs: {\n expanded: \"expanded\"\n },\n outputs: {\n expand: \"expand\",\n collapse: \"collapse\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 3,\n consts: [[\"icon\", \"filter\", 3, \"collapse\", \"expand\", \"text\", \"svgIcon\", \"expanded\"], [\"kendoTreeListColumnMenuItemContentTemplate\", \"\"], [3, \"close\", \"column\", \"filter\", \"actionsClass\"]],\n template: function ColumnMenuFilterComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-item\", 0);\n i0.ɵɵlistener(\"collapse\", function ColumnMenuFilterComponent_Template_kendo_treelist_columnmenu_item_collapse_0_listener() {\n return ctx.collapse.emit();\n })(\"expand\", function ColumnMenuFilterComponent_Template_kendo_treelist_columnmenu_item_expand_0_listener() {\n return ctx.expand.emit();\n });\n i0.ɵɵtemplate(1, ColumnMenuFilterComponent_ng_template_1_Template, 1, 3, \"ng-template\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"text\", ctx.localization.get(\"filter\"))(\"svgIcon\", ctx.filterIcon)(\"expanded\", ctx.expanded);\n }\n },\n dependencies: [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, FilterMenuContainerComponent],\n encapsulation: 2\n });\n return ColumnMenuFilterComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet ColumnListComponent = /*#__PURE__*/(() => {\n class ColumnListComponent {\n constructor(element, ngZone, renderer) {\n this.element = element;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.reset = new EventEmitter();\n this.apply = new EventEmitter();\n this.columnChange = new EventEmitter();\n this.autoSync = true;\n this.allowHideAll = false;\n this.actionsClass = 'k-actions';\n this.unlockedCount = 0;\n }\n get className() {\n return true;\n }\n set columns(value) {\n this._columns = value.filter(column => column.includeInChooser !== false);\n this.allColumns = value;\n this.updateColumnState();\n }\n get columns() {\n return this._columns;\n }\n isDisabled(column) {\n return !(this.allowHideAll || this.hasFiltered || column.hidden || this.columns.find(current => current !== column && !current.hidden)) || this.hasVisibleLocked && !this.hasUnlockedFiltered && this.unlockedCount === 1 && !column.locked && !column.hidden;\n }\n ngOnInit() {\n if (!this.element) {\n return;\n }\n this.ngZone.runOutsideAngular(() => {\n this.domSubscriptions = this.renderer.listen(this.element.nativeElement, 'click', e => {\n if (hasClasses(e.target, 'k-checkbox')) {\n if (this.autoSync) {\n const index = parseInt(e.target.getAttribute('data-index'), 10);\n const column = this.columns[index];\n const hidden = !e.target.checked;\n if (Boolean(column.hidden) !== hidden) {\n this.ngZone.run(() => {\n column.hidden = hidden;\n this.columnChange.emit([column]);\n });\n }\n } else {\n this.updateDisabled();\n }\n }\n });\n });\n }\n ngOnDestroy() {\n if (this.domSubscriptions) {\n this.domSubscriptions();\n }\n }\n cancelChanges() {\n this.forEachCheckBox((element, index) => {\n element.checked = !this.columns[index].hidden;\n });\n this.updateDisabled();\n this.reset.emit();\n }\n applyChanges() {\n const changed = [];\n this.forEachCheckBox((element, index) => {\n const column = this.columns[index];\n const hidden = !element.checked;\n if (Boolean(column.hidden) !== hidden) {\n column.hidden = hidden;\n changed.push(column);\n }\n });\n this.updateDisabled();\n this.apply.emit(changed);\n }\n forEachCheckBox(callback) {\n const checkboxes = this.element.nativeElement.getElementsByClassName('k-checkbox');\n const length = checkboxes.length;\n for (let idx = 0; idx < length; idx++) {\n callback(checkboxes[idx], idx);\n }\n }\n updateDisabled() {\n if (this.allowHideAll && !this.hasLocked) {\n return;\n }\n const checkedItems = [];\n this.forEachCheckBox((checkbox, index) => {\n if (checkbox.checked) {\n checkedItems.push({\n checkbox,\n index\n });\n }\n checkbox.disabled = false;\n });\n if (!this.allowHideAll && checkedItems.length === 1 && !this.hasFiltered) {\n checkedItems[0].checkbox.disabled = true;\n } else if (this.hasLocked && !this.hasUnlockedFiltered) {\n const columns = this.columns;\n const checkedUnlocked = checkedItems.filter(item => !columns[item.index].locked);\n if (checkedUnlocked.length === 1) {\n checkedUnlocked[0].checkbox.disabled = true;\n }\n }\n }\n updateColumnState() {\n this.hasLocked = this.allColumns.filter(column => column.locked && (!column.hidden || column.includeInChooser !== false)).length > 0;\n this.hasVisibleLocked = this.allColumns.filter(column => column.locked && !column.hidden).length > 0;\n this.unlockedCount = this.columns.filter(column => !column.locked && !column.hidden).length;\n const filteredColumns = this.allColumns.filter(column => column.includeInChooser === false && !column.hidden);\n if (filteredColumns.length) {\n this.hasFiltered = filteredColumns.length > 0;\n this.hasUnlockedFiltered = filteredColumns.filter(column => !column.locked).length > 0;\n } else {\n this.hasFiltered = false;\n this.hasUnlockedFiltered = false;\n }\n }\n }\n ColumnListComponent.ɵfac = function ColumnListComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnListComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n ColumnListComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnListComponent,\n selectors: [[\"kendo-treelist-columnlist\"]],\n hostVars: 2,\n hostBindings: function ColumnListComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-column-list-wrapper\", ctx.className);\n }\n },\n inputs: {\n columns: \"columns\",\n autoSync: \"autoSync\",\n allowHideAll: \"allowHideAll\",\n applyText: \"applyText\",\n resetText: \"resetText\",\n actionsClass: \"actionsClass\"\n },\n outputs: {\n reset: \"reset\",\n apply: \"apply\",\n columnChange: \"columnChange\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 2,\n consts: [[1, \"k-column-list\"], [\"class\", \"k-column-list-item\", 4, \"ngFor\", \"ngForOf\"], [3, \"ngClass\", 4, \"ngIf\"], [1, \"k-column-list-item\"], [\"type\", \"checkbox\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"checked\", \"disabled\"], [1, \"k-checkbox-label\"], [3, \"ngClass\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-solid-base\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"click\"], [\"type\", \"button\", 1, \"k-button\", \"k-button-solid-primary\", \"k-button-solid\", \"k-button-md\", \"k-rounded-md\", \"k-button-rectangle\", 3, \"click\"]],\n template: function ColumnListComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, ColumnListComponent_label_1_Template, 4, 4, \"label\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, ColumnListComponent_div_2_Template, 5, 3, \"div\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.columns);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.autoSync);\n }\n },\n dependencies: [NgFor, NgIf, NgClass],\n encapsulation: 2\n });\n return ColumnListComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column-menu item for selecting columns in the TreeList. [See example](slug:columnmenu_treelist#toc-column-chooser-item).\n *\n * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})\n * that is passed by the template to the service input of the `kendo-treelist-columnmenu-chooser` component.\n *\n */\nlet ColumnMenuChooserComponent = /*#__PURE__*/(() => {\n class ColumnMenuChooserComponent extends ColumnMenuItemBase {\n constructor(localization, columnInfoService, changeDetector) {\n super();\n this.localization = localization;\n this.columnInfoService = columnInfoService;\n this.changeDetector = changeDetector;\n /**\n * Fires when the content is expanded.\n */\n this.expand = new EventEmitter();\n /**\n * Fires when the content is collapsed.\n */\n this.collapse = new EventEmitter();\n /**\n * Specifies if the content is expanded.\n * @default false\n */\n this.expanded = false;\n /**\n * @hidden\n */\n this.actionsClass = 'k-actions';\n this.columnsIcon = columnsIcon;\n }\n get columns() {\n return this.columnInfoService.leafNamedColumns;\n }\n /**\n * @hidden\n */\n onApply(changed) {\n this.close();\n if (changed.length) {\n this.changeDetector.markForCheck();\n this.columnInfoService.changeVisibility(changed);\n }\n }\n }\n ColumnMenuChooserComponent.ɵfac = function ColumnMenuChooserComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuChooserComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(ColumnInfoService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n ColumnMenuChooserComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnMenuChooserComponent,\n selectors: [[\"kendo-treelist-columnmenu-chooser\"]],\n inputs: {\n expanded: \"expanded\"\n },\n outputs: {\n expand: \"expand\",\n collapse: \"collapse\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 3,\n consts: [[\"icon\", \"columns\", 3, \"collapse\", \"expand\", \"text\", \"svgIcon\", \"expanded\"], [\"kendoTreeListColumnMenuItemContentTemplate\", \"\"], [3, \"apply\", \"applyText\", \"resetText\", \"columns\", \"autoSync\", \"allowHideAll\", \"actionsClass\"]],\n template: function ColumnMenuChooserComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-item\", 0);\n i0.ɵɵlistener(\"collapse\", function ColumnMenuChooserComponent_Template_kendo_treelist_columnmenu_item_collapse_0_listener() {\n return ctx.collapse.emit();\n })(\"expand\", function ColumnMenuChooserComponent_Template_kendo_treelist_columnmenu_item_expand_0_listener() {\n return ctx.expand.emit();\n });\n i0.ɵɵtemplate(1, ColumnMenuChooserComponent_ng_template_1_Template, 1, 6, \"ng-template\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"text\", ctx.localization.get(\"columns\"))(\"svgIcon\", ctx.columnsIcon)(\"expanded\", ctx.expanded);\n }\n },\n dependencies: [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnListComponent],\n encapsulation: 2\n });\n return ColumnMenuChooserComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column-menu item that allows the user to lock or unlock columns.\n *\n * The componnt can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n* To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})\n * that is passed by the template to the service input of the `kendo-treelist-columnmenu-lock` component.\n *\n */\nlet ColumnMenuLockComponent = /*#__PURE__*/(() => {\n class ColumnMenuLockComponent extends ColumnMenuItemBase {\n constructor(localization, columnInfoService, changeDetector) {\n super();\n this.localization = localization;\n this.columnInfoService = columnInfoService;\n this.changeDetector = changeDetector;\n this.unlockIcon = unlockIcon;\n this.lockIcon = lockIcon;\n }\n get text() {\n return this.localization.get(this.locked ? 'unlock' : 'lock');\n }\n get icon() {\n return this.locked ? 'unlock' : 'lock';\n }\n get svgIcon() {\n return this.locked ? this.unlockIcon : this.lockIcon;\n }\n get disabled() {\n return !this.locked && this.columnInfoService.unlockedRootCount < 2;\n }\n /**\n * @hidden\n */\n toggleColumn() {\n this.toggleHierarchy(!this.locked);\n this.close();\n this.changeDetector.markForCheck();\n }\n toggleHierarchy(locked) {\n let root = this.service.column;\n while (root.parent) {\n root = root.parent;\n }\n const columns = [root];\n const allChanged = [];\n while (columns.length) {\n const column = columns.shift();\n column.locked = locked;\n allChanged.push(column);\n if (column.hasChildren) {\n columns.push(...column.childrenArray);\n }\n }\n this.columnInfoService.changeLocked(allChanged);\n }\n get locked() {\n return this.service.column.locked;\n }\n }\n ColumnMenuLockComponent.ɵfac = function ColumnMenuLockComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuLockComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(ColumnInfoService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n ColumnMenuLockComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnMenuLockComponent,\n selectors: [[\"kendo-treelist-columnmenu-lock\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 4,\n consts: [[3, \"itemClick\", \"text\", \"icon\", \"svgIcon\", \"disabled\"]],\n template: function ColumnMenuLockComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-item\", 0);\n i0.ɵɵlistener(\"itemClick\", function ColumnMenuLockComponent_Template_kendo_treelist_columnmenu_item_itemClick_0_listener() {\n return ctx.toggleColumn();\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"text\", ctx.text)(\"icon\", ctx.icon)(\"svgIcon\", ctx.svgIcon)(\"disabled\", ctx.disabled);\n }\n },\n dependencies: [ColumnMenuItemComponent],\n encapsulation: 2\n });\n return ColumnMenuLockComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the column-menu item for sorting TreeList columns.\n *\n * The component can be placed inside a [`ColumnMenuTemplate`]({% slug api_treelist_columnmenutemplatedirective %}) directive.\n *\n * To register the component as a known column menu item, set the [`ColumnMenuService`]({% slug api_treelist_columnmenuservice %})\n * that is passed by the template to the service input of the `kendo-treelist-columnmenu-sort` component.\n *\n */\nlet ColumnMenuSortComponent = /*#__PURE__*/(() => {\n class ColumnMenuSortComponent extends ColumnMenuItemBase {\n constructor(localization, sortService) {\n super();\n this.localization = localization;\n this.sortService = sortService;\n this.sortAscSmallIcon = sortAscSmallIcon;\n this.sortDescSmallIcon = sortDescSmallIcon;\n }\n get sortedAsc() {\n const descriptor = this.descriptor;\n return descriptor && (!descriptor.dir || descriptor.dir === 'asc');\n }\n get sortedDesc() {\n const descriptor = this.descriptor;\n return descriptor && descriptor.dir === 'desc';\n }\n /**\n * @hidden\n */\n toggleSort(dir) {\n const field = this.service.column.field;\n const {\n mode,\n allowUnsort\n } = normalize(this.service.sortable);\n const descriptor = this.descriptor;\n const sort = mode === 'multiple' ? this.service.sort.filter(s => s.field !== field) : [];\n if (descriptor && descriptor.dir === dir) {\n if (!allowUnsort) {\n return;\n }\n } else {\n sort.push({\n field,\n dir\n });\n }\n this.sortService.sort(sort);\n this.close();\n }\n get descriptor() {\n return [].concat(this.service.sort || []).find(s => s.field === this.service.column.field);\n }\n }\n ColumnMenuSortComponent.ɵfac = function ColumnMenuSortComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuSortComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(SortService));\n };\n ColumnMenuSortComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnMenuSortComponent,\n selectors: [[\"kendo-treelist-columnmenu-sort\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 6,\n consts: [[\"icon\", \"sort-asc-small\", 3, \"itemClick\", \"text\", \"svgIcon\", \"selected\"], [\"icon\", \"sort-desc-small\", 3, \"itemClick\", \"text\", \"svgIcon\", \"selected\"]],\n template: function ColumnMenuSortComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-columnmenu-item\", 0);\n i0.ɵɵlistener(\"itemClick\", function ColumnMenuSortComponent_Template_kendo_treelist_columnmenu_item_itemClick_0_listener() {\n return ctx.toggleSort(\"asc\");\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(1, \"kendo-treelist-columnmenu-item\", 1);\n i0.ɵɵlistener(\"itemClick\", function ColumnMenuSortComponent_Template_kendo_treelist_columnmenu_item_itemClick_1_listener() {\n return ctx.toggleSort(\"desc\");\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"text\", ctx.localization.get(\"sortAscending\"))(\"svgIcon\", ctx.sortAscSmallIcon)(\"selected\", ctx.sortedAsc);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"text\", ctx.localization.get(\"sortDescending\"))(\"svgIcon\", ctx.sortDescSmallIcon)(\"selected\", ctx.sortedDesc);\n }\n },\n dependencies: [ColumnMenuItemComponent],\n encapsulation: 2\n });\n return ColumnMenuSortComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';\n/**\n * Represents the [column menu]({% slug columnmenu_treelist %}) component of the TreeList.\n */\nlet ColumnMenuComponent = /*#__PURE__*/(() => {\n class ColumnMenuComponent {\n constructor(popupService, localization, service, cdr) {\n this.popupService = popupService;\n this.localization = localization;\n this.service = service;\n this.cdr = cdr;\n /**\n * @hidden\n */\n this.standalone = true;\n /**\n * The settings for the Column Menu.\n */\n this.settings = {};\n /**\n * @hidden\n */\n this.sortable = true;\n /**\n * @hidden\n */\n this.expandedFilter = false;\n /**\n * @hidden\n */\n this.expandedColumns = false;\n this.moreVerticalIcon = moreVerticalIcon;\n this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));\n }\n /**\n * @hidden\n */\n get isActive() {\n return this.hasFilter && filtersByField(this.filter, this.column.field).length > 0 || !this.sortable && this.hasSort && this.sort.find(descriptor => descriptor.field === this.column.field);\n }\n /**\n * @hidden\n */\n get hasFilter() {\n return hasFilter(this.settings, this.column);\n }\n /**\n * @hidden\n */\n get hasSort() {\n return hasSort(this.settings, this.column);\n }\n /**\n * @hidden\n */\n get hasColumnChooser() {\n return hasColumnChooser(this.settings);\n }\n /**\n * @hidden\n */\n get hasLock() {\n return hasLock(this.settings, this.column);\n }\n ngOnChanges() {\n this.service.column = this.column;\n this.service.sort = this.sort;\n this.service.filter = this.filter;\n this.service.sortable = this.sortable;\n }\n ngOnDestroy() {\n this.close();\n this.closeSubscription.unsubscribe();\n }\n /**\n * @hidden\n */\n toggle(e, anchor, template) {\n e.preventDefault();\n this.expandedFilter = !this.hasColumnChooser;\n this.expandedColumns = !this.hasFilter;\n this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASSES);\n }\n /**\n * @hidden\n */\n close() {\n this.popupService.destroy();\n this.popupRef = null;\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n onColumnsExpand() {\n this.expandedColumns = true;\n this.expandedFilter = false;\n }\n /**\n * @hidden\n */\n onFilterExpand() {\n this.expandedFilter = true;\n this.expandedColumns = false;\n }\n }\n ColumnMenuComponent.ɵfac = function ColumnMenuComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnMenuComponent)(i0.ɵɵdirectiveInject(SinglePopupService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(ColumnMenuService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n ColumnMenuComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnMenuComponent,\n selectors: [[\"kendo-treelist-column-menu\"]],\n hostVars: 2,\n hostBindings: function ColumnMenuComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-column-menu-standalone\", ctx.standalone);\n }\n },\n inputs: {\n standalone: \"standalone\",\n column: \"column\",\n settings: \"settings\",\n sort: \"sort\",\n filter: \"filter\",\n sortable: \"sortable\",\n columnMenuTemplate: \"columnMenuTemplate\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ColumnMenuService]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 7,\n vars: 5,\n consts: [[\"anchor\", \"\"], [\"template\", \"\"], [\"defaultTemplate\", \"\"], [\"href\", \"#\", \"tabindex\", \"-1\", 1, \"k-grid-column-menu\", \"k-grid-header-menu\", 3, \"click\", \"ngClass\"], [\"name\", \"more-vertical\", 3, \"svgIcon\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"service\", 4, \"ngIf\"], [3, \"service\", \"expanded\", \"expand\", 4, \"ngIf\"], [3, \"service\"], [3, \"expand\", \"service\", \"expanded\"]],\n template: function ColumnMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 3, 0);\n i0.ɵɵlistener(\"click\", function ColumnMenuComponent_Template_a_click_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const anchor_r2 = i0.ɵɵreference(1);\n const template_r3 = i0.ɵɵreference(4);\n return i0.ɵɵresetView(ctx.toggle($event, anchor_r2, template_r3));\n });\n i0.ɵɵelement(2, \"kendo-icon-wrapper\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, ColumnMenuComponent_ng_template_3_Template, 1, 5, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(5, ColumnMenuComponent_ng_template_5_Template, 4, 4, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(3, _c21, ctx.isActive));\n i0.ɵɵattribute(\"title\", ctx.localization.get(\"columnMenu\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"svgIcon\", ctx.moreVerticalIcon);\n }\n },\n dependencies: [NgClass, IconWrapperComponent, NgTemplateOutlet, NgIf, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent],\n encapsulation: 2\n });\n return ColumnMenuComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet FilterMenuComponent = /*#__PURE__*/(() => {\n class FilterMenuComponent {\n constructor(filterService, popupService, localization) {\n this.filterService = filterService;\n this.popupService = popupService;\n this.localization = localization;\n this.filterIcon = filterIcon;\n /**\n * @hidden\n */\n this.filterLabel = this.localization.get('filter');\n }\n get hasFilters() {\n return filtersByField(this.filter, (this.column || {}).field).length > 0;\n }\n toggle(anchor, template) {\n this.popupRef = this.popupService.open(anchor, template, this.popupRef);\n return false;\n }\n close() {\n this.popupService.destroy();\n }\n }\n FilterMenuComponent.ɵfac = function FilterMenuComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterMenuComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(SinglePopupService), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n FilterMenuComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterMenuComponent,\n selectors: [[\"kendo-treelist-filter-menu\"]],\n inputs: {\n column: \"column\",\n filter: \"filter\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 5,\n vars: 4,\n consts: [[\"anchor\", \"\"], [\"template\", \"\"], [\"href\", \"#\", 1, \"k-grid-filter-menu\", \"k-grid-header-menu\", 3, \"click\"], [\"name\", \"filter\", 3, \"svgIcon\"], [3, \"close\", \"column\", \"filter\"]],\n template: function FilterMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 2, 0);\n i0.ɵɵlistener(\"click\", function FilterMenuComponent_Template_a_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const anchor_r2 = i0.ɵɵreference(1);\n const template_r3 = i0.ɵɵreference(4);\n return i0.ɵɵresetView(ctx.toggle(anchor_r2, template_r3));\n });\n i0.ɵɵelement(2, \"kendo-icon-wrapper\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, FilterMenuComponent_ng_template_3_Template, 1, 2, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-active\", ctx.hasFilters);\n i0.ɵɵattribute(\"title\", ctx.filterLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"svgIcon\", ctx.filterIcon);\n }\n },\n dependencies: [IconWrapperComponent, FilterMenuContainerComponent],\n encapsulation: 2\n });\n return FilterMenuComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst mergeObjects = (...args) => Object.assign.apply(null, [{}].concat(args));\nconst directions = initialDirection => initialDirection === \"asc\" ? [\"asc\", \"desc\"] : [\"desc\", \"asc\"];\n/**\n * @hidden\n */\nconst isRootLevel = ({\n parent\n}) => !isTruthy(parent);\nconst ofColumnType = ({\n draggable\n}) => ['column', 'columnGroup'].indexOf(draggable.context.type) >= 0;\nconst notSameElement = ({\n draggable,\n target\n}) => draggable.element.nativeElement !== target.element.nativeElement;\nconst inSameParent = (x, y) => x.parent === y.parent || isInSpanColumn$1(y) && inSameParent(x, y.parent);\nconst sameParent = ({\n draggable,\n target\n}) => inSameParent(draggable.context.column, target.context.column);\nconst lastNonLocked = ({\n draggable\n}) => !isTruthy(draggable.context.column.locked) && isRootLevel(draggable.context.column) && draggable.context.lastColumn;\nconst notInSpanColumn = ({\n draggable\n}) => !isInSpanColumn$1(draggable.context.column);\nconst reorderable = ({\n draggable\n}) => draggable.context.column.reorderable;\nconst lockable = ({\n draggable,\n target\n}) => draggable.context.column.lockable !== false || draggable.context.column.isLocked === target.context.column.isLocked;\nconst rules = and(ofColumnType, reorderable, notInSpanColumn, notSameElement, sameParent, not(lastNonLocked), lockable);\n/**\n * @hidden\n */\nlet HeaderComponent = /*#__PURE__*/(() => {\n class HeaderComponent {\n constructor(popupService, hint, cue, reorderService, sortService, selectionService, localization, cd) {\n this.popupService = popupService;\n this.hint = hint;\n this.cue = cue;\n this.reorderService = reorderService;\n this.sortService = sortService;\n this.selectionService = selectionService;\n this.localization = localization;\n this.cd = cd;\n this.columns = [];\n this.sort = new Array();\n this.sortable = false;\n this.lockedColumnsCount = 0;\n this.resizable = false;\n this.reorderable = false;\n this.columnMenu = false;\n this.totalColumnsCount = 0;\n this.sortedFields = {};\n this.hostClass = true;\n this.dropTargets = new QueryList();\n this.sortAscSmallIcon = sortAscSmallIcon;\n this.sortDescSmallIcon = sortDescSmallIcon;\n this.subscription = new Subscription();\n }\n get headerClass() {\n return !this.scrollable;\n }\n get sortableLabel() {\n return this.localization.get('sortable');\n }\n get columnMenuSettings() {\n return this.columnMenu;\n }\n // Number of unlocked columns in the next table, if any\n get unlockedColumnsCount() {\n return this.totalColumnsCount - this.lockedColumnsCount - this.columns.length;\n }\n getColumnComponent(column) {\n return column;\n }\n sortColumn(column, event, link) {\n const target = event ? event.target : null;\n if (column.headerTemplateRef && target !== link) {\n const hasFocusableParent = Boolean(closestInScope(target, isFocusable, link));\n if (hasFocusableParent) {\n return target.type === 'checkbox'; // prevent navigation only if the element is not checkbox\n }\n }\n this.sortService.sort(this.toggleSort(column));\n // Prevent navigation\n return false;\n }\n onHeaderKeydown(column, args) {\n if (!this.sortable || args.defaultPrevented || column.sortable === false) {\n return;\n }\n if (args.keyCode === Keys.Enter) {\n this.sortService.sort(this.toggleSort(column));\n }\n }\n showSortNumbering(column) {\n const {\n showIndexes\n } = normalize(this.sortable);\n return showIndexes && this.sort && this.sort.filter(({\n dir\n }) => isPresent(dir)).length > 1 && this.sortOrder(column.field) > 0;\n }\n sortOrder(field) {\n return this.sort.filter(({\n dir\n }) => isPresent(dir)).findIndex(x => x.field === field) + 1;\n }\n sortState(column) {\n if (!this.isSortable(column)) {\n return;\n }\n const state = this.sortDescriptor(column.field);\n if (state.dir === 'asc') {\n return 'ascending';\n }\n if (state.dir === 'desc') {\n return 'descending';\n }\n }\n toggleSort(column) {\n const {\n allowUnsort,\n mode,\n initialDirection\n } = normalize(this.sortable, column.sortable);\n const descriptor = this.toggleDirection(column.field, allowUnsort, initialDirection);\n if (mode === 'single') {\n return [descriptor];\n }\n return [...this.sort.filter(desc => desc.field !== column.field), descriptor];\n }\n ngAfterViewInit() {\n this.subscription.add(observe(this.dropTargets).subscribe(this.attachTargets.bind(this)));\n }\n ngDoCheck() {\n this._leafColumns = columnsToRender(this.columns || []).filter(x => !isColumnGroupComponent(x));\n }\n ngOnChanges(changes) {\n const sortChange = changes.sort;\n if (sortChange && !sortChange.isFirstChange()) {\n sortChange.currentValue.forEach(change => {\n this.sortedFields[change.field] = true;\n });\n }\n }\n ngOnInit() {\n this.subscription.add(this.localization.changes.subscribe(() => this.cd.markForCheck()));\n }\n ngOnDestroy() {\n if (this.targetSubscription) {\n this.targetSubscription.unsubscribe();\n }\n if (this.popupService) {\n this.popupService.destroy();\n }\n this.subscription.unsubscribe();\n }\n isFirstOnRow(column, index) {\n const isTailing = c => c && (this.columnsForLevel(c.level).indexOf(c) > 0 || isTailing(c.parent));\n return index === 0 && isTailing(column.parent);\n }\n logicalColumnIndex(column) {\n const index = column.leafIndex;\n if (isPresent(index)) {\n return index;\n }\n return -1;\n }\n get showFilterMenu() {\n return !this.columnMenu && hasFilterMenu(this.filterable);\n }\n get showFilterRow() {\n return hasFilterRow(this.filterable);\n }\n showColumnMenu(column) {\n return this.columnMenu && column.columnMenu && (this.columnMenuTemplate || column.columnMenuTemplates.length || hasItems(this.columnMenu, column));\n }\n isFilterable(column) {\n return !isNullOrEmptyString(column.field) && column.filterable === true;\n }\n canDrop(draggable, target) {\n return this.reorderable && rules({\n draggable,\n target\n });\n }\n shouldActivate(column) {\n return this.reorderable && column.reorderable;\n }\n isSortable(column) {\n return !isNullOrEmptyString(column.field) && isTruthy(this.sortable) && isTruthy(column.sortable);\n }\n trackByIndex(index, _item) {\n return index;\n }\n toggleDirection(field, allowUnsort, initialDirection) {\n const descriptor = this.sortDescriptor(field);\n const [first, second] = directions(initialDirection);\n let dir = first;\n if (descriptor.dir === first) {\n dir = second;\n } else if (descriptor.dir === second && allowUnsort) {\n dir = undefined;\n }\n return {\n dir,\n field\n };\n }\n columnsForLevel(level) {\n const columns = this.columns ? this.columns.filter(column => column.level === level) : [];\n return sortColumns(columnsToRender(columns));\n }\n isColumnGroupComponent(column) {\n return isColumnGroupComponent(column);\n }\n get columnLevels() {\n return new Array((this.totalColumnLevels || 0) + 1);\n }\n renderSelectAll(column) {\n return column.isCheckboxColumn && column.showSelectAll && !column.headerTemplateRef && this.selectionService.enableMultiple;\n }\n selectAllClick(args) {\n this.selectionService.toggleAll(args.target.checked);\n }\n sortDescriptor(field) {\n return this.sort.find(item => item.field === field) || {\n field\n };\n }\n get leafColumns() {\n return this._leafColumns;\n }\n messageFor(token) {\n return this.localization.get(token);\n }\n attachTargets() {\n if (this.targetSubscription) {\n this.targetSubscription.unsubscribe();\n }\n this.targetSubscription = new Subscription();\n const enterStream = merge(...this.dropTargets.map(target => target.enter));\n const leaveStream = merge(...this.dropTargets.map(target => target.leave));\n const dropStream = merge(...this.dropTargets.map(target => target.drop));\n this.targetSubscription.add(enterStream.pipe(tap(({\n target,\n draggable\n }) => {\n const targetLocked = isTruthy(target.context.column.isLocked);\n const draggableLocked = isTruthy(draggable.context.column.isLocked);\n if (this.lockedColumnsCount > 0 || targetLocked || draggableLocked) {\n this.hint.toggleLock(targetLocked);\n }\n }), filter(({\n draggable,\n target\n }) => this.canDrop(draggable, target)), switchMap(this.trackMove.bind(this, leaveStream, dropStream)), map(e => mergeObjects(e, {\n before: this.calculateBefore(e),\n changeContainer: e.changeContainer\n })), map(this.normalizeTarget.bind(this)), tap(this.enter.bind(this)), switchMap(args => dropStream.pipe(map(() => args), takeUntil(leaveStream.pipe(tap(this.leave.bind(this))))))).subscribe(this.drop.bind(this)));\n }\n normalizeTarget(e) {\n let target = e.target;\n const parent = target.context.column.parent;\n if (parent && parent.isSpanColumn) {\n const arr = this.dropTargets.toArray();\n const firstSpan = arr.find(t => t.context.column.parent === parent);\n const index = arr.indexOf(firstSpan);\n const adjust = e.before ? 0 : parent.childColumns.length - 1;\n target = arr[index + adjust];\n }\n return mergeObjects(e, {\n target\n });\n }\n trackMove(leaveStream, dropStream, e) {\n const column = e.target.context.column;\n const levelColumns = this.columnsForLevel(column.level);\n const index = levelColumns.indexOf(column);\n const isFirst = column.locked ? index === levelColumns.length - 1 : index === 0;\n const changed = e.draggable.context.column.isLocked !== column.isLocked;\n if (changed && isFirst) {\n return e.draggable.drag.pipe(takeUntil(leaveStream), takeUntil(dropStream), map(({\n mouseEvent\n }) => mergeObjects({\n changeContainer: true\n }, e, {\n mouseEvent\n })));\n }\n return of(mergeObjects({\n changeContainer: changed\n }, e));\n }\n calculateBefore({\n draggable,\n target,\n mouseEvent,\n changeContainer = false\n }) {\n const targetElement = target.element.nativeElement;\n let before = false;\n if (changeContainer) {\n const {\n left\n } = offset(targetElement);\n const halfWidth = targetElement.offsetWidth / 2;\n const middle = left + halfWidth;\n before = middle > mouseEvent.pageX;\n if (this.localization.rtl) {\n before = !before;\n }\n } else {\n before = isTargetBefore(draggable.element.nativeElement, targetElement);\n }\n return before;\n }\n enter({\n target,\n before\n }) {\n this.hint.enable();\n if (this.localization.rtl) {\n before = !before;\n }\n this.cue.position(position(target.element.nativeElement, before));\n }\n leave() {\n this.hint.disable();\n this.cue.hide();\n }\n drop({\n draggable,\n target,\n before,\n changeContainer\n }) {\n this.reorderService.reorder({\n before,\n changeContainer,\n source: draggable.context.column,\n target: target.context.column\n });\n }\n }\n HeaderComponent.ɵfac = function HeaderComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HeaderComponent)(i0.ɵɵdirectiveInject(SinglePopupService), i0.ɵɵdirectiveInject(DragHintService), i0.ɵɵdirectiveInject(DropCueService), i0.ɵɵdirectiveInject(ColumnReorderService), i0.ɵɵdirectiveInject(SortService), i0.ɵɵdirectiveInject(SelectionService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n HeaderComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: HeaderComponent,\n selectors: [[\"\", \"kendoTreeListHeader\", \"\"]],\n viewQuery: function HeaderComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(DropTargetDirective, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropTargets = _t);\n }\n },\n hostVars: 4,\n hostBindings: function HeaderComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-header\", ctx.headerClass)(\"k-table-thead\", ctx.hostClass);\n }\n },\n inputs: {\n totalColumnLevels: \"totalColumnLevels\",\n columns: \"columns\",\n scrollable: \"scrollable\",\n filterable: \"filterable\",\n sort: \"sort\",\n filter: \"filter\",\n sortable: \"sortable\",\n lockedColumnsCount: \"lockedColumnsCount\",\n resizable: \"resizable\",\n reorderable: \"reorderable\",\n columnMenu: \"columnMenu\",\n columnMenuTemplate: \"columnMenuTemplate\",\n totalColumnsCount: \"totalColumnsCount\",\n totalColumns: \"totalColumns\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n attrs: _c23,\n decls: 2,\n vars: 2,\n consts: [[\"link\", \"\"], [\"role\", \"row\", \"kendoTreeListLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"totalColumns\", \"logicalSlaveCellsCount\", 4, \"ngFor\", \"ngForOf\"], [\"kendoTreeListFilterRow\", \"\", \"kendoTreeListLogicalRow\", \"\", 3, \"columns\", \"filter\", \"lockedColumnsCount\", \"totalColumns\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\", 4, \"ngIf\"], [\"role\", \"row\", \"kendoTreeListLogicalRow\", \"\", 3, \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"totalColumns\", \"logicalSlaveCellsCount\"], [\"ngFor\", \"\", 3, \"ngForOf\", \"ngForTrackBy\"], [\"kendoTreeListLogicalCell\", \"\", \"role\", \"columnheader\", \"aria-selected\", \"false\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", \"class\", \"k-header k-table-th\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"colSpan\", \"rowSpan\", \"enableDrag\", \"context\", \"k-filterable\", \"k-first\", \"ngClass\", \"ngStyle\", \"keydown\", 4, \"ngIf\"], [\"kendoTreeListLogicalCell\", \"\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", \"class\", \"k-header k-table-th\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"rowSpan\", \"colSpan\", \"enableDrag\", \"context\", \"k-first\", \"k-filterable\", \"ngClass\", \"ngStyle\", 4, \"ngIf\"], [\"kendoTreeListLogicalCell\", \"\", \"role\", \"columnheader\", \"aria-selected\", \"false\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", 1, \"k-header\", \"k-table-th\", 3, \"keydown\", \"logicalRowIndex\", \"logicalColIndex\", \"colSpan\", \"rowSpan\", \"enableDrag\", \"context\", \"ngClass\", \"ngStyle\"], [3, \"ngIf\"], [\"kendoTreeListColumnHandle\", \"\", \"kendoDraggable\", \"\", \"class\", \"k-column-resizer\", 3, \"column\", \"columns\", 4, \"ngIf\"], [3, \"column\", \"filter\", 4, \"ngIf\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", \"sort\", \"filter\", \"sortable\", 4, \"ngIf\"], [3, \"templateContext\"], [3, \"column\", \"filter\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", \"sort\", \"filter\", \"sortable\"], [1, \"k-cell-inner\"], [1, \"k-link\", 3, \"click\"], [4, \"ngIf\"], [1, \"k-sort-icon\"], [\"role\", \"note\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-sort-order\", 4, \"ngIf\"], [1, \"k-column-title\"], [\"role\", \"note\", 3, \"name\", \"svgIcon\"], [1, \"k-sort-order\"], [\"type\", \"checkbox\", \"kendoTreeListFocusable\", \"\", 1, \"k-checkbox\", \"k-checkbox-md\", \"k-rounded-md\", 3, \"click\"], [\"kendoTreeListColumnHandle\", \"\", \"kendoDraggable\", \"\", 1, \"k-column-resizer\", 3, \"column\", \"columns\"], [\"kendoTreeListLogicalCell\", \"\", \"kendoDropTarget\", \"\", \"kendoDraggable\", \"\", \"kendoDraggableColumn\", \"\", 1, \"k-header\", \"k-table-th\", 3, \"logicalRowIndex\", \"logicalColIndex\", \"rowSpan\", \"colSpan\", \"enableDrag\", \"context\", \"ngClass\", \"ngStyle\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\", 4, \"ngIf\"], [3, \"standalone\", \"settings\", \"column\", \"columnMenuTemplate\"], [\"kendoTreeListFilterRow\", \"\", \"kendoTreeListLogicalRow\", \"\", 3, \"columns\", \"filter\", \"lockedColumnsCount\", \"totalColumns\", \"logicalRowIndex\", \"logicalSlaveRow\", \"logicalCellsCount\", \"logicalSlaveCellsCount\"]],\n template: function HeaderComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, HeaderComponent_tr_0_Template, 2, 7, \"tr\", 1)(1, HeaderComponent_tr_1_Template, 1, 8, \"tr\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.columnLevels);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showFilterRow);\n }\n },\n dependencies: [NgFor, LogicalRowDirective, NgIf, LogicalCellDirective, DropTargetDirective, DraggableDirective, DraggableColumnDirective, NgClass, NgStyle, FilterMenuComponent, ColumnMenuComponent, TemplateContextDirective, IconWrapperComponent, FocusableDirective, ColumnHandleDirective, FilterRowComponent],\n encapsulation: 2\n });\n return HeaderComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/* eslint-disable @typescript-eslint/no-inferrable-types */\n/**\n * @hidden\n */\nlet ToolbarComponent = /*#__PURE__*/(() => {\n class ToolbarComponent {\n constructor(elem, renderer, ctx) {\n this.elem = elem;\n this.renderer = renderer;\n this.ctx = ctx;\n this.hostRole = 'toolbar';\n this.context = {};\n this.subs = new Subscription();\n this.navigationService = this.ctx[`${this.elem.nativeElement.getAttribute('position')}ToolbarNavigation`];\n }\n set position(value) {\n this.context.position = value;\n }\n get toolbarTemplateRef() {\n return this.ctx.treelist.toolbarTemplate ? this.ctx.treelist.toolbarTemplate.templateRef : undefined;\n }\n ngAfterViewInit() {\n const element = this.elem.nativeElement;\n this.subs.add(this.renderer.listen(element, 'keydown', event => this.onKeyDown(event)));\n }\n ngOnDestroy() {\n this.subs.unsubscribe();\n }\n onKeyDown(event) {\n if (this.navigable && isDocumentAvailable() && this.navigationService.navigableElements.length) {\n const keyCode = event.keyCode;\n if (keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight) {\n event.preventDefault();\n const dir = keyCode === Keys.ArrowLeft ? -1 : 1;\n this.changeFocusedItem(dir);\n }\n }\n }\n changeFocusedItem(dir) {\n this.navigationService.currentActiveIndex += dir;\n const bottomRange = this.navigationService.currentActiveIndex < 0;\n const topRange = this.navigationService.currentActiveIndex >= this.navigationService.navigableElements.length;\n if (bottomRange || topRange) {\n this.navigationService.currentActiveIndex = bottomRange ? this.navigationService.navigableElements.length - 1 : 0;\n }\n this.navigationService.updateFocus();\n }\n }\n ToolbarComponent.ɵfac = function ToolbarComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ToolbarComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(ContextService));\n };\n ToolbarComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ToolbarComponent,\n selectors: [[\"kendo-treelist-toolbar\"]],\n hostVars: 1,\n hostBindings: function ToolbarComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.hostRole);\n }\n },\n inputs: {\n position: \"position\",\n navigable: \"navigable\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 1,\n consts: [[4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function ToolbarComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ToolbarComponent_0_Template, 1, 2, null, 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.toolbarTemplateRef);\n }\n },\n dependencies: [NgIf, NgTemplateOutlet],\n encapsulation: 2\n });\n return ToolbarComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet Messages = /*#__PURE__*/(() => {\n class Messages extends ComponentMessages {}\n Messages.ɵfac = /* @__PURE__ */(() => {\n let ɵMessages_BaseFactory;\n return function Messages_Factory(__ngFactoryType__) {\n return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = i0.ɵɵgetInheritedFactory(Messages)))(__ngFactoryType__ || Messages);\n };\n })();\n Messages.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: Messages,\n inputs: {\n groupPanelEmpty: \"groupPanelEmpty\",\n noRecords: \"noRecords\",\n pagerLabel: \"pagerLabel\",\n pagerFirstPage: \"pagerFirstPage\",\n pagerLastPage: \"pagerLastPage\",\n pagerPreviousPage: \"pagerPreviousPage\",\n pagerNextPage: \"pagerNextPage\",\n pagerPage: \"pagerPage\",\n pagerPageNumberInputTitle: \"pagerPageNumberInputTitle\",\n pagerItemsPerPage: \"pagerItemsPerPage\",\n pagerOf: \"pagerOf\",\n pagerItemsTotal: \"pagerItemsTotal\",\n selectPage: \"selectPage\",\n filter: \"filter\",\n filterInputLabel: \"filterInputLabel\",\n filterCellOperatorLabel: \"filterCellOperatorLabel\",\n booleanFilterCellLabel: \"booleanFilterCellLabel\",\n filterEqOperator: \"filterEqOperator\",\n filterNotEqOperator: \"filterNotEqOperator\",\n filterIsNullOperator: \"filterIsNullOperator\",\n filterIsNotNullOperator: \"filterIsNotNullOperator\",\n filterIsEmptyOperator: \"filterIsEmptyOperator\",\n filterIsNotEmptyOperator: \"filterIsNotEmptyOperator\",\n filterStartsWithOperator: \"filterStartsWithOperator\",\n filterContainsOperator: \"filterContainsOperator\",\n filterNotContainsOperator: \"filterNotContainsOperator\",\n filterEndsWithOperator: \"filterEndsWithOperator\",\n filterGteOperator: \"filterGteOperator\",\n filterGtOperator: \"filterGtOperator\",\n filterLteOperator: \"filterLteOperator\",\n filterLtOperator: \"filterLtOperator\",\n filterIsTrue: \"filterIsTrue\",\n filterIsFalse: \"filterIsFalse\",\n filterBooleanAll: \"filterBooleanAll\",\n filterAfterOrEqualOperator: \"filterAfterOrEqualOperator\",\n filterAfterOperator: \"filterAfterOperator\",\n filterBeforeOperator: \"filterBeforeOperator\",\n filterBeforeOrEqualOperator: \"filterBeforeOrEqualOperator\",\n filterFilterButton: \"filterFilterButton\",\n filterClearButton: \"filterClearButton\",\n filterAndLogic: \"filterAndLogic\",\n filterOrLogic: \"filterOrLogic\",\n loading: \"loading\",\n columnMenu: \"columnMenu\",\n columns: \"columns\",\n lock: \"lock\",\n unlock: \"unlock\",\n sortable: \"sortable\",\n sortAscending: \"sortAscending\",\n sortDescending: \"sortDescending\",\n sortedAscending: \"sortedAscending\",\n sortedDescending: \"sortedDescending\",\n sortedDefault: \"sortedDefault\",\n columnsApply: \"columnsApply\",\n columnsReset: \"columnsReset\",\n topToolbarLabel: \"topToolbarLabel\",\n bottomToolbarLabel: \"bottomToolbarLabel\",\n dragRowHandleLabel: \"dragRowHandleLabel\",\n selectRowCheckboxLabel: \"selectRowCheckboxLabel\",\n selectAllRowsCheckboxLabel: \"selectAllRowsCheckboxLabel\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return Messages;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet LocalizedMessagesDirective = /*#__PURE__*/(() => {\n class LocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n }\n LocalizedMessagesDirective.ɵfac = function LocalizedMessagesDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LocalizedMessagesDirective)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n LocalizedMessagesDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LocalizedMessagesDirective,\n selectors: [[\"\", \"kendoTreeListLocalizedMessages\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective)\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n return LocalizedMessagesDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst createControl = source => (acc, key) => {\n acc[key] = new FormControl(source[key]);\n return acc;\n};\nconst validateColumnsField = columns => expandColumns(columns.toArray()).filter(isColumnComponent).filter(({\n field\n}) => !isValidFieldName(field)).forEach(({\n field\n}) => console.warn(`\n TreeList column field name '${field}' does not look like a valid JavaScript identifier.\n Identifiers can contain only alphanumeric characters (including \"$\" or \"_\"), and may not start with a digit.\n Please use only valid identifier names to ensure error-free operation.\n `));\nconst isInEditedCell = (element, treelistElement) => closest(element, matchesClasses('k-grid-edit-cell')) && closest(element, matchesNodeName('kendo-treelist')) === treelistElement;\n/**\n * Represents the Kendo UI TreeList component for Angular.\n *\n * @example\n * ```html\n * \n * ```\n *\n */\nlet TreeListComponent = /*#__PURE__*/(() => {\n class TreeListComponent {\n constructor(supportService, wrapper, changeNotification, editService, filterService, pdfService, responsiveService, renderer, excelService, ngZone, scrollSyncService, domEvents, columnResizingService, changeDetectorRef, columnReorderService, columnInfoService, navigationService, sortService, scrollRequestService, expandStateService, optionChanges, selectionService, localization, ctx, rowReorderService) {\n this.supportService = supportService;\n this.wrapper = wrapper;\n this.changeNotification = changeNotification;\n this.editService = editService;\n this.filterService = filterService;\n this.pdfService = pdfService;\n this.responsiveService = responsiveService;\n this.renderer = renderer;\n this.excelService = excelService;\n this.ngZone = ngZone;\n this.scrollSyncService = scrollSyncService;\n this.domEvents = domEvents;\n this.columnResizingService = columnResizingService;\n this.changeDetectorRef = changeDetectorRef;\n this.columnReorderService = columnReorderService;\n this.columnInfoService = columnInfoService;\n this.navigationService = navigationService;\n this.sortService = sortService;\n this.scrollRequestService = scrollRequestService;\n this.expandStateService = expandStateService;\n this.optionChanges = optionChanges;\n this.selectionService = selectionService;\n this.localization = localization;\n this.ctx = ctx;\n this.rowReorderService = rowReorderService;\n /**\n * Defines the page size used by the TreeList when [paging]({% slug paging_treelist %}) is enabled.\n *\n * @default 10\n */\n this.pageSize = 10;\n /**\n * Defines the scroll mode used by the TreeList.\n * @default 'scrollable'\n */\n this.scrollable = 'scrollable';\n /**\n * A function that defines how to track changes for the data rows.\n *\n * By default, the TreeList tracks changes by the index of the data item.\n * Edited rows are tracked by reference.\n *\n */\n this.trackBy = defaultTrackBy;\n /**\n * If set to `true`, the treelist will render only the columns in the current viewport.\n * @default false\n */\n this.virtualColumns = false;\n /**\n * Enables the [filtering]({% slug filtering_treelist %}) of the TreeList columns that have their `field` option set.\n */\n this.filterable = false;\n /**\n * Enables the [sorting]({% slug sorting_treelist %}) of the TreeList columns that have their `field` option set.\n */\n this.sortable = false;\n /**\n * Configures the pager of the TreeList ([see example]({% slug paging_treelist %})).\n *\n */\n this.pageable = false;\n /**\n * If set to `true`, the user can use dedicated shortcuts to interact with the TreeList.\n * By default, navigation is disabled and the TreeList content is accessible in the normal tab sequence.\n * @default false\n */\n this.navigable = false;\n /**\n * Indicates whether the TreeList columns will be resized during initialization so that\n * they fit their headers and row content. Defaults to `false`.\n * Columns with `autoSize` set to `false` are excluded.\n * To dynamically update the column width to match the new content,\n * refer to [this example]({% slug resizing_columns_treelist %}).\n *\n * @default false\n */\n this.autoSize = false;\n /**\n * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells\n * ([see example]({% slug resizing_columns_treelist %})).\n *\n * @default false\n */\n this.resizable = false;\n /**\n * If set to `true`, the user can reorder columns by dragging their header cells\n * ([see example]({% slug reordering_columns_treelist %})).\n *\n * @default false\n */\n this.reorderable = false;\n /**\n * Specifies if the loading indicator of the TreeList will be displayed ([see example]({% slug databinding_treelist %})).\n *\n * @default false\n */\n this.loading = false;\n /**\n * Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_treelist %})).\n *\n * @default false\n */\n this.columnMenu = false;\n /**\n * Specifies if the header of the treelist will be hidden. The header is visible by default.\n *\n * The header includes column headers and the [filter row](slug:filter_row_treelist).\n *\n * @default false\n */\n this.hideHeader = false;\n /**\n * Fires when the TreeList selection is changed.\n */\n this.selectionChange = new EventEmitter();\n /**\n * Fires when the TreeList filter is modified through the UI.\n * You have to handle the event yourself and filter the data.\n */\n this.filterChange = new EventEmitter();\n /**\n * Fires when the page of the TreeList is changed ([see example]({% slug paging_treelist %})).\n * You have to handle the event yourself and page the data.\n */\n this.pageChange = new EventEmitter();\n /**\n * Fires when the sorting of the TreeList is changed ([see example]({% slug sorting_treelist %})).\n * You have to handle the event yourself and sort the data.\n */\n this.sortChange = new EventEmitter();\n /**\n * Fires when the data state of the TreeList is changed.\n */\n this.dataStateChange = new EventEmitter();\n /**\n * Fires when the user clicks the **Edit** command button to edit a row\n * ([see example]({% slug editing_template_forms_treelist %}#toc-editing-records)).\n */\n this.edit = new EventEmitter();\n /**\n * Fires when the user clicks the **Cancel** command button to close a row\n * ([see example]({% slug editing_template_forms_treelist %}#toc-cancelling-editing)).\n */\n this.cancel = new EventEmitter();\n /**\n * Fires when the user clicks the **Save** command button to save changes in a row\n * ([see example]({% slug editing_template_forms_treelist %}#toc-saving-records)).\n */\n this.save = new EventEmitter();\n /**\n * Fires when the user clicks the **Remove** command button to remove a row\n * ([see example]({% slug editing_template_forms_treelist %}#toc-removing-records)).\n */\n this.remove = new EventEmitter();\n /**\n * Fires when the user clicks the **Add** command button to add a new row\n * ([see example]({% slug editing_template_forms_treelist %}#toc-adding-records)).\n */\n this.add = new EventEmitter();\n /**\n * Fires when the user leaves an edited cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).\n */\n this.cellClose = new EventEmitter();\n /**\n * Fires when the user clicks a cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).\n */\n this.cellClick = new EventEmitter();\n /**\n * Fires when the user clicks the **Export to PDF** command button.\n */\n this.pdfExport = new EventEmitter();\n /**\n * Fires when the user clicks the **Export to Excel** command button.\n */\n this.excelExport = new EventEmitter();\n /**\n * Fires when the user completes the resizing of the column.\n */\n this.columnResize = new EventEmitter();\n /**\n * Fires when the user completes the reordering of the column.\n */\n this.columnReorder = new EventEmitter();\n /**\n * Fires when the user changes the visibility of the columns from the column menu or column chooser.\n */\n this.columnVisibilityChange = new EventEmitter();\n /**\n * Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.\n */\n this.columnLockedChange = new EventEmitter();\n /**\n * Fires when the user scrolls to the last record on the page and enables endless scrolling\n * ([see example]({% slug scrollmmodes_treelist %}#toc-endless-scrolling)).\n * You have to handle the event yourself and page the data.\n */\n this.scrollBottom = new EventEmitter();\n /**\n * Fires when the treelist content is scrolled.\n * For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.\n */\n this.contentScroll = new EventEmitter();\n /**\n * Fires when an item is expanded.\n */\n this.expandEvent = new EventEmitter();\n /**\n * Fires when an item is collapsed.\n */\n this.collapseEvent = new EventEmitter();\n /**\n * @hidden\n *\n * Emits when the expand or collapse events are fired.\n * Used by the expand directive and the Gantt component.\n */\n this.expandStateChange = new EventEmitter();\n /**\n * Fires when the user drops the dragged row and reordering is performed.\n * Emits the [RowReorderEvent]({% slug api_treelist_rowreorderevent %}).\n */\n this.rowReorder = new EventEmitter();\n /**\n * @hidden\n */\n this.columnOrderChange = new EventEmitter();\n /**\n * A query list of all declared columns.\n */\n this.columns = new QueryList();\n this.hostClasses = true;\n this.footer = new QueryList();\n this.columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {\n if (!isUniversal()) {\n column.matchesMedia = this.matchesMedia(column);\n }\n return column.isVisible;\n }));\n this.idGetter = getter(undefined);\n this.localEditService = new LocalEditService();\n this.view = new ViewCollection(this.viewFieldAccessor.bind(this), this.expandStateService, this.editService, this.selectionService);\n this.ariaRootId = `k-${guid()}`;\n this.dataChanged = false;\n this._hasChildren = () => false;\n this.subscriptions = new Subscription();\n this.rtl = false;\n this.shouldGenerateColumns = true;\n this._data = [];\n this._sort = new Array();\n this._skip = 0;\n this.cachedWindowWidth = 0;\n this._rowReorderable = false;\n /**\n * @hidden\n */\n this.treeListData = () => {\n return this.view;\n };\n this._rowClass = () => null;\n validatePackage(packageMetadata);\n this.subscriptions.add(localization.changes.subscribe(({\n rtl\n }) => {\n this.rtl = rtl;\n this.direction = this.rtl ? 'rtl' : 'ltr';\n }));\n this.selectionService.init(this);\n this.ctx.treelist = this;\n this.subscriptions.add(this.selectionService.changes.subscribe(args => {\n if (hasObservers(this.selectionChange)) {\n this.ngZone.run(() => {\n args.sender = this;\n this.selectionChange.emit(args);\n this.selectionService.updateSelectedState();\n this.changeDetectorRef.markForCheck();\n });\n }\n }));\n this.columnInfoService.init(this.columnsContainer, () => this.columnList);\n this.subscriptions.add(this.columnInfoService.visibilityChange.subscribe(changed => {\n this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));\n this.changeDetectorRef.markForCheck();\n }));\n this.subscriptions.add(this.columnInfoService.lockedChange.subscribe(changed => {\n this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));\n this.changeDetectorRef.markForCheck();\n }));\n this.subscriptions.add(merge(this.optionChanges.columns, this.optionChanges.options).subscribe(() => {\n this.changeDetectorRef.markForCheck();\n }));\n this.subscriptions.add(this.filterService.changes.subscribe(x => {\n this.filterChange.emit(x);\n }));\n this.subscriptions.add(this.sortService.changes.subscribe(x => {\n this.sortChange.emit(x);\n }));\n this.attachStateChangesEmitter();\n this.attachEditHandlers();\n this.attachDomEventHandlers();\n this.subscriptions.add(this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this)));\n this.subscriptions.add(this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this)));\n this.subscriptions.add(this.excelService.loadingChange.subscribe(() => {\n this.changeDetectorRef.detectChanges();\n }));\n this.columnsContainerChange();\n this.handleColumnResize();\n this.columnList = new ColumnList(this.columns);\n this.subscriptions.add(this.columnReorderService.changes.subscribe(this.reorder.bind(this)));\n this.subscriptions.add(this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this)));\n this.subscriptions.add(this.expandStateService.changes.subscribe(args => {\n if (args.expand) {\n this.expandEvent.emit(args);\n } else {\n this.collapseEvent.emit(args);\n }\n if (!args.isDefaultPrevented()) {\n this.changeDetectorRef.markForCheck();\n this.view.clear();\n this.expandStateChange.emit(args);\n }\n if (this.rowReorderable) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.notifyReorderContainers();\n });\n }\n }));\n this.subscriptions.add(this.view.childrenLoaded.subscribe(() => {\n this.changeDetectorRef.detectChanges();\n }));\n this.subscriptions.add(this.view.resetPage.subscribe(() => {\n if (this.skip > 0 && hasObservers(this.pageChange)) {\n // don't think there is a way to avoid this\n // every callback in which the view can be computed is already passed the change detection\n // computing the current page in advance also does not seem feasible for such a rare case\n this.pageChangeTimeout = setTimeout(() => {\n this.pageChange.emit({\n skip: 0,\n take: this.pageSize\n });\n }, 0);\n }\n this.skip = 0;\n }));\n this.dataLoaded = this.dataLoaded.bind(this);\n this.editService.idGetter = this.idGetter;\n }\n /**\n * Sets the data of the TreeList. If an array is provided, the TreeList automatically gets the total count\n * ([more information and example]({% slug databinding_treelist %})).\n */\n set data(value) {\n this.view.reset();\n this._data = value;\n this.loadedData = null;\n this.unsubscribeDataLoaded();\n if (isObservable(value)) {\n this.dataLoadedSubscription = value.subscribe(this.dataLoaded); // handle error\n } else {\n this.dataLoaded(value);\n }\n }\n get data() {\n return this.loadedData;\n }\n /**\n * Defines the number of records to be skipped by the pager.\n * Required by the [paging]({% slug paging_treelist %}) functionality.\n */\n get skip() {\n return this._skip;\n }\n set skip(value) {\n if (typeof value === 'number' && value >= 0) {\n this._skip = value;\n this.view.clear();\n }\n }\n /**\n * The descriptors by which the data will be sorted ([see example]({% slug sorting_treelist %})).\n */\n set sort(value) {\n if (isArray(value)) {\n this._sort = value;\n }\n }\n get sort() {\n return this._sort;\n }\n /**\n * @hidden\n */\n get showTopToolbar() {\n return this.toolbarTemplate && ['top', 'both'].indexOf(this.toolbarTemplate.position) > -1;\n }\n /**\n * @hidden\n */\n get showBottomToolbar() {\n return this.toolbarTemplate && ['bottom', 'both'].indexOf(this.toolbarTemplate.position) > -1;\n }\n /**\n * @hidden\n */\n get isLocked() {\n return this.lockedLeafColumns.length > 0;\n }\n /**\n * @hidden\n */\n get showPager() {\n return !this.isVirtual && this.pageable !== false;\n }\n get marqueeSelection() {\n return this.selectionService.enableMarquee;\n }\n /**\n * @hidden\n *\n * An alias for `navigable` for users who migrate from Kendo UI for jQuery.\n */\n set navigatable(value) {\n this.navigable = value;\n }\n /**\n * @hidden\n */\n get navigatable() {\n return this.navigable;\n }\n /**\n * Defines a function that is executed for every data row in the component.\n *\n */\n set rowClass(fn) {\n if (typeof fn !== 'function') {\n throw new Error(`rowClass must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._rowClass = fn;\n }\n get rowClass() {\n return this._rowClass;\n }\n /**\n * Returns the currently focused cell (if any).\n */\n get activeCell() {\n return this.navigationService.activeCell;\n }\n /**\n * Returns the currently focused row (if any).\n */\n get activeRow() {\n return this.navigationService.activeRow;\n }\n /**\n * The name of the field which contains the unique identifier of the node.\n *\n * @default \"id\"\n */\n set idField(value) {\n if (typeof value === \"function\") {\n this.idGetter = value;\n } else {\n this.idGetter = getter(value);\n }\n this.editService.idGetter = this.idGetter;\n }\n /**\n * Specified the treelist selection settings\n */\n set selectable(value) {\n this.selectionService.settings = value;\n }\n /**\n * Provides a callback that determines if the given row or cell is selected.\n */\n set isSelected(value) {\n if (typeof value !== 'function' && isDevMode()) {\n throw new Error(`isSelected must be a function, but received \"${JSON.stringify(value)}\".`);\n }\n this.selectionService.isSelected = value;\n }\n /**\n * Enables the [row reordering]({% slug treelist_row_reordering %}) of the TreeList.\n * @default false\n */\n set rowReorderable(value) {\n this._rowReorderable = value;\n if (value) {\n this.rowReorderSubscription = this.rowReorderService.rowReorder.subscribe(args => {\n hasObservers(this.rowReorder) && this.ngZone.run(() => {\n this.rowReorder.emit(args);\n });\n });\n } else {\n this.rowReorderSubscription?.unsubscribe();\n }\n }\n get rowReorderable() {\n return this._rowReorderable;\n }\n /**\n * @hidden\n */\n set columnsRef(columns) {\n this._columnsRef = columns;\n // load the new columns list only if a valid query list is provided\n if (isPresent(columns)) {\n this.loadColumns(columns);\n }\n }\n get columnsRef() {\n return this._columnsRef;\n }\n get dir() {\n return this.direction;\n }\n get lockedClasses() {\n return this.lockedLeafColumns.length > 0;\n }\n get virtualClasses() {\n return this.isVirtual;\n }\n get noScrollbarClass() {\n return this.scrollbarWidth === 0;\n }\n get noRecordsTemplate() {\n if (this._customNoRecordsTemplate) {\n return this._customNoRecordsTemplate;\n }\n return this.noRecordsTemplateChildren ? this.noRecordsTemplateChildren.first : undefined;\n }\n set noRecordsTemplate(customNoRecordsTemplate) {\n this._customNoRecordsTemplate = customNoRecordsTemplate;\n }\n get pagerTemplate() {\n if (this._customPagerTemplate) {\n return this._customPagerTemplate;\n }\n return this.pagerTemplateChildren ? this.pagerTemplateChildren.first : undefined;\n }\n set pagerTemplate(customPagerTemplate) {\n this._customPagerTemplate = customPagerTemplate;\n }\n get toolbarTemplate() {\n if (this._customToolbarTemplate) {\n return this._customToolbarTemplate;\n }\n return this.toolbarTemplateChildren ? this.toolbarTemplateChildren.first : undefined;\n }\n set toolbarTemplate(customToolbarTemplate) {\n this._customToolbarTemplate = customToolbarTemplate;\n }\n get scrollbarWidth() {\n return this.supportService.scrollbarWidth;\n }\n get headerPadding() {\n if (isUniversal()) {\n return '';\n }\n const padding = Math.max(0, this.scrollbarWidth) + 'px';\n const right = this.rtl ? 0 : padding;\n const left = this.rtl ? padding : 0;\n return `0 ${right} 0 ${left}`;\n }\n get showLoading() {\n return this.loading || isObservable(this._data) && !this.loadedData || this.excelService.loading;\n }\n get showFooter() {\n return this.columnsContainer.hasFooter;\n }\n get ariaRowCount() {\n return this.totalColumnLevels + 1 + this.totalCount;\n }\n get ariaColCount() {\n return this.columnsContainer.leafColumnsToRender.length;\n }\n get ariaMultiselectable() {\n if (this.selectionService.enabled) {\n return this.selectionService.enableMultiple;\n }\n }\n get navigation() {\n return this.navigationService;\n }\n get isVirtual() {\n return this.scrollable === 'virtual';\n }\n get isScrollable() {\n return this.scrollable !== 'none';\n }\n get visibleColumns() {\n return this.columnsContainer.allColumns;\n }\n get lockedColumns() {\n return this.columnsContainer.lockedColumns;\n }\n get nonLockedColumns() {\n return this.columnsContainer.nonLockedColumns;\n }\n get lockedLeafColumns() {\n return this.columnsContainer.lockedLeafColumns;\n }\n get nonLockedLeafColumns() {\n return this.columnsContainer.nonLockedLeafColumns;\n }\n get leafColumns() {\n return this.columnsContainer.leafColumns;\n }\n get totalColumnLevels() {\n return this.columnsContainer.totalLevels;\n }\n get headerColumns() {\n if (this.virtualColumns && !this.pdfService.exporting) {\n return this.viewportColumns;\n }\n return this.nonLockedColumns;\n }\n get headerLeafColumns() {\n if (this.virtualColumns && !this.pdfService.exporting) {\n return this.leafViewportColumns;\n }\n return this.nonLockedLeafColumns;\n }\n get lockedWidth() {\n return expandColumns(this.lockedLeafColumns.toArray()).reduce((prev, curr) => prev + (curr.width || 0), 0);\n }\n get nonLockedWidth() {\n if (!this.rtl && this.lockedLeafColumns.length || this.virtualColumns) {\n return !this.virtualColumns ? this.columnsContainer.unlockedWidth : this.leafViewportColumns.reduce((acc, column) => acc + (column.width || 0), 0);\n }\n return undefined;\n }\n get columnMenuTemplate() {\n const template = this.columnMenuTemplates.first;\n return template ? template.templateRef : null;\n }\n get totalCount() {\n return this.view.totalRows;\n }\n /**\n * Gets or sets the callback function that retrieves the child nodes for a particular node.\n */\n set fetchChildren(value) {\n this._fetchChildren = value;\n }\n get fetchChildren() {\n return this._fetchChildren;\n }\n /**\n * Gets or sets the callback function that indicates if a particular node has child nodes.\n */\n set hasChildren(value) {\n this._hasChildren = value;\n }\n get hasChildren() {\n return this._hasChildren;\n }\n /**\n * Sets the callback function that indicates if a particular item is expanded.\n */\n set isExpanded(value) {\n this.expandStateService.isExpanded = value || defaultExpanded;\n this.expandIcons = Boolean(value);\n }\n /**\n * @hidden\n */\n viewFieldAccessor() {\n return {\n fetchChildren: this.fetchChildren,\n hasChildren: this.hasChildren,\n idGetter: this.idGetter,\n skip: this.skip,\n pageSize: this.pageSize,\n pageable: this.pageable,\n isVirtual: this.isVirtual,\n data: this.loadedData,\n hasFooter: this.columnsContainer.hasFooter\n };\n }\n /**\n * @hidden\n */\n onDataChange() {\n this.autoGenerateColumns();\n this.changeNotification.notify();\n this.pdfService.dataChanged.emit();\n this.updateNavigationMetadata();\n }\n ngOnChanges(changes) {\n if (this.lockedLeafColumns.length && anyChanged([\"pageSize\", \"skip\", \"sort\"], changes)) {\n this.changeNotification.notify();\n }\n if (anyChanged([\"pageSize\", \"scrollable\", 'virtualColumns'], changes)) {\n this.updateNavigationMetadata();\n }\n if (isChanged$1(\"virtualColumns\", changes)) {\n this.viewportColumns = this.leafViewportColumns = null;\n }\n if (isChanged$1(\"height\", changes, false)) {\n this.renderer.setStyle(this.wrapper.nativeElement, 'height', `${this.height}px`);\n }\n if (isChanged$1(\"filterable\", changes) && this.lockedColumns.length) {\n this.syncHeaderHeight(this.ngZone.onStable.asObservable().pipe(take(1)));\n }\n if (anyChanged([\"columnMenu\", \"sortable\", \"filterable\"], changes, false)) {\n this.columnMenuOptions = this.columnMenu && Object.assign({\n filter: Boolean(this.filterable),\n sort: Boolean(this.sortable)\n }, this.columnMenu);\n }\n if (isChanged$1(\"scrollable\", changes) && this.isScrollable) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => this.attachScrollSync());\n }\n }\n ngAfterViewInit() {\n this.attachScrollSync();\n this.attachElementEventHandlers();\n this.updateNavigationMetadata();\n this.applyAutoSize();\n this.subscriptions.add(this.pagerTemplateChildren.changes.subscribe(() => this.changeDetectorRef.markForCheck()));\n }\n ngAfterContentChecked() {\n if (this.dataChanged) {\n this.dataChanged = false;\n this.onDataChange();\n }\n this.columnsContainer.refresh();\n this.verifySettings();\n }\n ngAfterContentInit() {\n // initially passed columns though the input prop are overwritten by ContentChildren-queried ones\n if (isPresent(this.columnsRef)) {\n this.loadColumns(this.columnsRef);\n }\n this.shouldGenerateColumns = !this.columns.length;\n this.autoGenerateColumns();\n this.columnList = new ColumnList(this.columns);\n // is this needed? after content checked already does this\n this.subscriptions.add(this.columns.changes.subscribe(() => {\n this.verifySettings();\n this.optionChanges.columnChanged();\n }));\n }\n ngOnInit() {\n if (this.navigable) {\n this.navigationService.init(this.navigationMetadata());\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n if (this.detachElementEventHandlers) {\n this.detachElementEventHandlers();\n }\n if (this.focusElementSubscription) {\n this.focusElementSubscription.unsubscribe();\n }\n this.unsubscribeDataLoaded();\n this.ngZone = null;\n clearTimeout(this.pageChangeTimeout);\n }\n /**\n * @hidden\n */\n handleReorderEvents(ev, evType) {\n this.rowReorderService[evType](ev);\n }\n /**\n * @hidden\n */\n getDefaultSelectors(type) {\n return this.rowReorderService.defaultSelectors[type];\n }\n /**\n * @hidden\n */\n getHintSettings(setting) {\n return this.rowReorderService[setting];\n }\n /**\n * @hidden\n */\n get hintText() {\n return this.rowReorderService.getDefaultHintText(this.columnList, this.view);\n }\n /**\n * @hidden\n */\n attachScrollSync() {\n if (isUniversal()) {\n return;\n }\n if (this.header) {\n this.scrollSyncService.registerEmitter(this.header.nativeElement, \"header\");\n }\n if (this.footer) {\n this.subscriptions.add(observe(this.footer).subscribe(footers => footers.map(footer => footer.nativeElement).filter(isPresent).forEach(element => this.scrollSyncService.registerEmitter(element, \"footer\"))));\n }\n }\n /**\n * Switches the specified table row in the edit mode ([see example]({% slug editing_template_forms_treelist %}#toc-editing-records)).\n *\n * @param dataItem - The data item that will be edited.\n * @param group - The [`FormGroup`](link:site.data.urls.angular['formgroupapi'])\n * that describes the edit form.\n * @param options - Additional options. Use `skipFocus` to determine if the row's edit element should be focused. Defaults to `false`.\n */\n editRow(dataItem, group, options) {\n this.editService.editRow(dataItem, group);\n this.view.updateEditedState();\n this.changeDetectorRef.markForCheck();\n if (options && options['skipFocus']) {\n return;\n }\n this.focusEditElement(() => {\n return `tr[data-treelist-view-index=\"${this.view.itemIndex(dataItem)}\"]`;\n });\n }\n /**\n * Closes the editor for a given row ([see example]({% slug editing_template_forms_treelist %}#toc-cancelling-editing)).\n *\n * @param {any} dataItem - The dataItem that will be switched out of the edit mode.\n * @param {boolean} isNew - Indicates whether the dataItem is new.\n */\n closeRow(dataItem, isNew) {\n this.editService.close(dataItem, isNew);\n this.changeDetectorRef.markForCheck();\n if (isNew) {\n this.view.clear();\n } else {\n this.view.updateEditedState();\n }\n }\n /**\n * Creates a new row editor ([see example]({% slug editing_template_forms_treelist %}#toc-adding-records)).\n *\n * @param {FormGroup} group - The [`FormGroup`](link:site.data.urls.angular['formgroupapi']) that describes\n * the edit form. If called with a data item, it will build the `FormGroup` from the data item fields.\n */\n addRow(group, parent) {\n const isFormGroup = group instanceof FormGroup;\n if (!isFormGroup) {\n const fields = Object.keys(group).reduce(createControl(group), {}); // FormBuilder?\n group = new FormGroup(fields);\n }\n if (this.isVirtual && !parent && this.skip) {\n const firstVisible = this.navigationService.viewport.firstItemIndex;\n if (firstVisible !== this.skip) {\n this.skip = firstVisible;\n this.pageChange.emit({\n skip: this.skip,\n take: this.pageSize\n });\n }\n }\n this.editService.addRow(parent, group);\n this.changeDetectorRef.markForCheck();\n this.view.clear();\n this.focusEditElement(() => {\n return parent ? `tr[data-treelist-view-index=\"${this.view.itemIndex(parent) + 1}\"]` : '.k-grid-add-row';\n });\n }\n /**\n * Puts the cell that is specified by the table row and column in edit mode.\n *\n * @param {any} dataItem - The data item that will be edited.\n * @param {number|string|any} column - The leaf column index, or the field name or the column instance that should be edited.\n * @param {FormGroup} group - The [`FormGroup`](link:site.data.urls.angular['formgroupapi'])\n * that describes the edit form.\n */\n editCell(dataItem, column, group) {\n const instance = this.columnInstance(column);\n this.editService.editCell(dataItem, instance, group);\n this.changeDetectorRef.markForCheck();\n this.view.updateEditedState();\n this.focusEditElement(() => '.k-grid-edit-cell');\n }\n /**\n * Closes the current cell in edit mode and fires\n * the [`cellClose`]({% slug api_treelist_treelistcomponent %}#toc-cellclose) event.\n *\n * @return {boolean} Indicates whether the edited cell was closed.\n * A `false` value indicates that the\n * [`cellClose`]({% slug api_treelist_treelistcomponent %}#toc-cellclose) event was prevented.\n */\n closeCell() {\n return !this.editService.closeCell();\n }\n /**\n * Closes the current cell in edit mode.\n */\n cancelCell() {\n this.editService.cancelCell();\n this.view.updateEditedState();\n }\n /**\n * Returns a flag which indicates if a row or a cell is currently edited.\n *\n * @return {boolean} A flag which indicates if a row or a cell is currently edited.\n */\n isEditing() {\n return this.editService.isEditing();\n }\n /**\n * Returns a flag which indicates if a cell is currently edited.\n *\n * @return {boolean} A flag which indicates if a cell is currently being edited.\n */\n isEditingCell() {\n return this.editService.isEditing() && this.editService.isEditingCell();\n }\n /**\n * Initiates the PDF export ([see example]({% slug pdfexport_treelist %})).\n */\n saveAsPDF() {\n this.pdfService.save(this);\n }\n /**\n * Exports the TreeList element to a Drawing [`Group`]({% slug api_kendo-drawing_group %}) by using the `kendo-treelist-pdf` component options.\n * ([see example]({% slug pdfexport_treelist %}#toc-exporting-multiple-treelists-to-the-same-pdf)).\n *\n * @return {Promise} A promise that will be resolved with the Drawing `Group`.\n */\n drawPDF() {\n const promise = createPromise();\n this.pdfService.draw(this, promise);\n return promise;\n }\n /**\n * Initiates the Excel export ([see example]({% slug excelexport_treelist %})).\n */\n saveAsExcel() {\n this.excelService.save(this);\n }\n /**\n * Applies the minimum possible width for the specified column,\n * so that the whole text fits without wrapping. This method expects the TreeList\n * to be resizable (set `resizable` to `true`).\n * Makes sense to execute this method only\n * after the TreeList is already populated with data. [See example](slug:resizing_columns_treelist#toc-auto-fitting-the-content).\n *\n */\n autoFitColumn(column) {\n this.columnResizingService.autoFit(column);\n }\n /**\n * Adjusts the width of the specified columns to fit the entire content, including headers, without wrapping.\n * If no columns are specified, `autoFitColumns` is applied to all columns.\n *\n * This method requires the TreeList to be resizable (set `resizable` to `true`).\n * [See example](slug:resizing_columns_treelist#toc-auto-fitting-the-content).\n */\n autoFitColumns(columns = this.columns) {\n let cols;\n if (columns instanceof QueryList) {\n cols = columns.toArray();\n } else {\n cols = columns;\n }\n this.columnResizingService.autoFit(...cols);\n }\n /**\n * @hidden\n */\n notifyPageChange(source, event) {\n if (source === \"list\" && !this.isVirtual) {\n return;\n }\n this.skip = event.skip;\n this.pageSize = event.take;\n this.closeCell();\n this.cancelCell();\n this.changeDetectorRef.markForCheck();\n this.pageChange.emit(event);\n }\n /**\n * @hidden\n */\n messageFor(token) {\n return this.localization.get(token);\n }\n /**\n * @hidden\n */\n notifyScrollBottom() {\n if (this.scrollable === 'none') {\n return;\n }\n if (hasObservers(this.scrollBottom)) {\n this.ngZone.run(() => this.scrollBottom.emit({\n sender: this\n }));\n }\n }\n /**\n * @hidden\n */\n focusEditElement(containerSelector) {\n if (this.focusElementSubscription) {\n this.focusElementSubscription.unsubscribe();\n }\n this.ngZone.runOutsideAngular(() => {\n this.focusElementSubscription = this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n const wrapper = this.wrapper.nativeElement;\n const selector = containerSelector();\n if (!this.setEditFocus(wrapper.querySelector(selector)) && this.isLocked) {\n this.setEditFocus(wrapper.querySelector(`.k-grid-content ${selector}`));\n }\n this.focusElementSubscription = null;\n });\n });\n }\n /**\n * Focuses the last active or the first cell of the TreeList.\n *\n * @returns {NavigationCell} The focused cell.\n */\n focus() {\n this.assertNavigable();\n return this.navigationService.focusCell();\n }\n /**\n * Focuses the cell with the specified row and column index.\n *\n * The row index is based on the logical structure of the TreeList and does not correspond to the data item index.\n * The row indexing is absolute and does not change with paging.\n * Header rows are included, starting at index 0.\n *\n * If the TreeList is configured for scrolling, including virtual scrolling, the scroll position will be updated.\n * If the row is not present on the current page, the method will have no effect.\n *\n * @param rowIndex - The logical row index to focus. The top header row has an index 0.\n * @param colIndex - The column index to focus.\n * @returns {NavigationCell} The focused cell.\n *\n */\n focusCell(rowIndex, colIndex) {\n this.assertNavigable();\n return this.navigationService.focusCell(rowIndex, colIndex);\n }\n /**\n * Focuses the next cell, optionally wrapping to the next row.\n *\n * @param wrap - A Boolean value which indicates if the focus will move to the next row. Defaults to `true`.\n * @returns {NavigationCell} The focused cell. If the focus is already on the last cell, returns `null`.\n */\n focusNextCell(wrap = true) {\n this.assertNavigable();\n return this.navigationService.focusNextCell(wrap);\n }\n /**\n * Focuses the previous cell. Optionally wraps to the previous row.\n *\n * @param wrap - A Boolean value which indicates if the focus will move to the next row. Defaults to `true`.\n * @returns {NavigationCell} The focused cell. If the focus is already on the first cell, returns `null`.\n */\n focusPrevCell(wrap = true) {\n this.assertNavigable();\n return this.navigationService.focusPrevCell(wrap);\n }\n /**\n * Scrolls to the specified row and column\n */\n scrollTo(request) {\n this.scrollRequestService.scrollTo(request);\n }\n /**\n * Changes the position of the specified column.\n * The reordering of columns operates only on the level\n * which is inferred by the source column.\n * For the `reorderColumn` method to work properly,\n * the `source` column has to be visible.\n *\n * @param {ColumnBase} source - The column whose position will be changed.\n * @param {number} destIndex - The new position of the column.\n * @param {ColumnReorderConfig} options - Additional options.\n *\n */\n reorderColumn(source, destIndex, options = {\n before: false\n }) {\n const columnsForLevel = sortColumns(this.allColumnsForLevel(source.level));\n let target = columnsForLevel[destIndex];\n if (!target) {\n return;\n }\n const lastNonLocked = target.isLocked && !source.isLocked && this.columnsContainer.nonLockedColumns.length === 1;\n if (lastNonLocked) {\n return;\n }\n if (isSpanColumnComponent(target) && !options.before) {\n target = target.childColumns.last;\n }\n this.reorder({\n before: options.before,\n source: source,\n target: target\n });\n }\n /**\n * Clears the already loaded children for the dataItem so that the TreeList will fetch them again the next time it is rendered.\n */\n reload(dataItem, reloadChildren) {\n if (dataItem) {\n this.view.resetItem(dataItem, reloadChildren);\n this.changeDetectorRef.markForCheck();\n }\n }\n /**\n * Updates the state of the current view without reloading the data.\n *\n * Checks all currently rendered items for changes and\n * triggers re-evaluation of the [isExpanded](#toc-isexpanded) and\n * [isSelected](#toc-isSelected) callbacks.\n */\n updateView() {\n if (this.rowReorderable) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.notifyReorderContainers();\n });\n }\n this.view.clear();\n this.changeDetectorRef.markForCheck();\n }\n /**\n * Expands the row for the specified dataItem.\n */\n expand(dataItem) {\n this.expandStateService.expand(dataItem);\n this.changeDetectorRef.markForCheck();\n }\n /**\n * Collapses the row for the specified dataItem.\n */\n collapse(dataItem) {\n this.expandStateService.collapse(dataItem);\n this.changeDetectorRef.markForCheck();\n }\n /**\n * @hidden\n */\n reorder({\n target,\n source,\n before,\n changeContainer\n }) {\n this.ngZone.run(() => {\n const columnsForLevel = sortColumns(this.allColumnsForLevel(source.level));\n let newIndex = columnsForLevel.indexOf(target);\n if (target.parent && target.parent.isSpanColumn) {\n newIndex = columnsForLevel.indexOf(target.parent);\n if (before) {\n target = target.parent;\n }\n }\n const oldIndex = columnsForLevel.indexOf(source);\n if (changeContainer) {\n if (before && 0 < newIndex && oldIndex < newIndex) {\n // dropped before the first not locked column\n newIndex--;\n } else if (!before && oldIndex > newIndex) {\n // dropped after the last locked column\n newIndex++;\n }\n }\n const args = new ColumnReorderEvent({\n column: source,\n oldIndex: oldIndex,\n newIndex: newIndex\n });\n this.columnReorder.emit(args);\n if (args.isDefaultPrevented()) {\n return;\n }\n if (changeContainer) {\n this.columnLockedChange.emit(new ColumnLockedChangeEvent([source]));\n }\n this.updateColumnIndices({\n columnsForLevel,\n source,\n target,\n before\n });\n if (source.locked !== target.locked) {\n source.locked = target.locked;\n }\n this.columnOrderChange.emit(args);\n this.columnsContainer.refresh();\n this.changeDetectorRef.markForCheck();\n });\n }\n updateColumnIndices({\n columnsForLevel,\n source,\n target,\n before\n }) {\n const expandedColumns = expandColumnsWithSpan(columnsForLevel);\n const sourceColumnIndex = expandedColumns.indexOf(source);\n let nextSourceIndex = 0;\n let nextIndex = 0;\n let toSkip = 1;\n // Possible only when called from the API.\n if (source.isSpanColumn) {\n toSkip += source.childColumns.length;\n }\n let i = 0;\n while (i < expandedColumns.length) {\n const column = expandedColumns[i];\n if (column === target) {\n nextSourceIndex = before ? nextIndex : nextIndex + 1;\n nextIndex = before ? nextIndex + toSkip : nextIndex;\n column.orderIndex = nextIndex;\n if (nextSourceIndex === nextIndex + 1) {\n nextIndex += toSkip;\n }\n } else if (column === source) {\n i += toSkip;\n continue;\n } else {\n column.orderIndex = nextIndex;\n }\n nextIndex++;\n i++;\n }\n for (i = sourceColumnIndex; i < sourceColumnIndex + toSkip; i++) {\n expandedColumns[i].orderIndex = nextSourceIndex++;\n }\n this.updateIndicesForLevel(source.level + 1);\n }\n updateIndicesForLevel(level) {\n const colsForParentLevel = this.allColumnsForLevel(level - 1);\n const colsForLevel = [];\n sortColumns(colsForParentLevel).forEach(c => {\n if (c.isColumnGroup) {\n colsForLevel.push(...c.childrenArray.sort((a, b) => a.orderIndex - b.orderIndex));\n }\n });\n expandColumnsWithSpan(colsForLevel).map((c, i) => c.orderIndex = i);\n if (level < this.columnList.totalColumnLevels()) {\n this.updateIndicesForLevel(level + 1);\n }\n }\n allColumnsForLevel(level) {\n return this.columnList.toArray().filter(column => column.level === level);\n }\n setEditFocus(element) {\n if (element) {\n return this.navigationService.tryFocus(element);\n }\n }\n columnInstance(column) {\n let instance;\n if (typeof column === 'number') {\n instance = this.columnsContainer.lockedLeafColumns.toArray().concat(this.columnsContainer.nonLockedLeafColumns.toArray())[column];\n } else if (typeof column === 'string') {\n instance = this.columnList.filter(item => item.field === column)[0];\n } else {\n instance = column;\n }\n if (!instance && isDevMode()) {\n throw new Error(`Invalid column ${column}`);\n }\n return instance;\n }\n verifySettings() {\n if (isDevMode()) {\n const locked = this.lockedLeafColumns.length || this.columnMenu && this.columnMenu.lock;\n if (this.lockedLeafColumns.length && !this.nonLockedLeafColumns.length) {\n throw new Error('There should be at least one non-locked column');\n }\n if ((locked || this.virtualColumns) && expandColumns(this.columnList.toArray()).filter(column => !column.width && !isColumnGroupComponent(column)).length) {\n throw new Error((locked ? 'Locked' : 'Virtual') + ' columns feature requires all columns to have set width.');\n }\n if (locked && !this.isScrollable) {\n throw new Error('Locked columns are only supported when scrolling is enabled.');\n }\n if (this.columnList.filter(isColumnGroupComponent).filter(x => !x.hasChildren).length) {\n throw new Error('ColumnGroupComponent should contain ColumnComponent or CommandColumnComponent.');\n }\n if (this.columnList.filter(x => x.locked && x.parent && !x.parent.isLocked).length) {\n throw new Error('Locked child columns require their parent columns to be locked.');\n }\n if (this.rowHeight && !this.isVirtual) {\n throw new Error('Row height setting requires virtual scrolling mode to be enabled.');\n }\n validateColumnsField(this.columnList);\n }\n }\n autoGenerateColumns() {\n if (this.shouldGenerateColumns && !this.columns.length && this.view.length) {\n const columns = Object.keys(this.view.at(0).data).map(field => {\n const column = new ColumnComponent();\n column.field = field;\n return column;\n });\n columns[0].expandable = true;\n this.columns.reset(columns);\n }\n }\n attachStateChangesEmitter() {\n this.subscriptions.add(merge(this.sortChange.pipe(map(sort => ({\n filter: this.filter,\n skip: this.skip,\n sort: sort,\n take: this.pageSize\n }))), this.filterChange.pipe(map(filter => ({\n filter: filter,\n skip: 0,\n sort: this.sort,\n take: this.pageSize\n })))).subscribe(x => {\n this.closeCell();\n this.cancelCell();\n this.dataStateChange.emit(x);\n this.rowReorderable && this.notifyReorderContainers();\n }));\n }\n attachEditHandlers() {\n if (!this.editService) {\n return;\n }\n this.subscriptions.add(this.editService.changes.subscribe(this.emitCRUDEvent.bind(this)));\n }\n emitCRUDEvent(args) {\n // eslint-disable-next-line prefer-const\n let {\n action,\n formGroup,\n dataItem\n } = args;\n if (action !== 'add' && !dataItem) {\n dataItem = formGroup.value;\n }\n this.view.clear();\n this.changeDetectorRef.markForCheck();\n this.closeCell();\n Object.assign(args, {\n dataItem: dataItem,\n sender: this\n });\n switch (action) {\n case 'add':\n this.add.emit(args);\n break;\n case 'cancel':\n this.cancel.emit(args);\n break;\n case 'edit':\n this.edit.emit(args);\n break;\n case 'remove':\n this.remove.emit(args);\n break;\n case 'save':\n this.save.emit(args);\n break;\n case 'cellClose':\n this.cellClose.emit(args);\n break;\n default:\n break;\n }\n }\n attachDomEventHandlers() {\n this.subscriptions.add(this.domEvents.cellClick.subscribe(args => {\n if (hasObservers(this.cellClick) || this.selectionService.enabled) {\n this.ngZone.run(() => {\n this.cellClick.emit(Object.assign({\n sender: this\n }, args));\n this.selectionService.click(args);\n });\n }\n }));\n }\n attachElementEventHandlers() {\n if (isUniversal()) {\n return;\n }\n const wrapper = this.wrapper.nativeElement;\n const ariaRoot = this.ariaRoot.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n const resizeCheck = this.resizeCheck.bind(this);\n const resizeSubscription = this.renderer.listen('window', 'resize', resizeCheck);\n const orientationSubscription = this.renderer.listen('window', 'orientationchange', resizeCheck);\n const documentClickSubscription = this.renderer.listen('document', 'click', args => {\n const activeElement = document.activeElement;\n if (this.editService.shouldCloseCell() && !closest(args.target, matchesClasses('k-animation-container k-treelist-ignore-click')) && !(activeElement && (closest(activeElement, matchesClasses('k-animation-container')) || isInEditedCell(activeElement, this.wrapper.nativeElement)))) {\n this.editService.closeCell(args);\n }\n });\n const windowBlurSubscription = this.renderer.listen('window', 'blur', args => {\n const activeElement = document.activeElement;\n if (activeElement && !(matchesNodeName('input')(activeElement) && activeElement.type === 'file' && isInEditedCell(activeElement, this.wrapper.nativeElement))) {\n this.editService.closeCell(args);\n }\n this.domEvents.windowBlur.emit(args);\n });\n const clickSubscription = this.renderer.listen(wrapper, 'click', args => {\n this.domEvents.click.emit(args);\n });\n const keydownSubscription = this.renderer.listen(wrapper, 'keydown', args => {\n this.domEvents.keydown.emit(args);\n });\n // focusIn and focusOut are relative to the element with ARIA role \"treegrid\"\n let focused = false;\n const focusInSubscription = this.renderer.listen(ariaRoot, 'focusin', args => {\n this.domEvents.focus.emit(args);\n if (!focused) {\n this.domEvents.focusIn.emit(args);\n focused = true;\n }\n });\n const focusOutSubscription = this.renderer.listen(ariaRoot, 'focusout', args => {\n const next = args.relatedTarget || document.activeElement;\n const outside = !closest(next, node => node === ariaRoot);\n if (outside) {\n this.domEvents.focusOut.emit(args);\n focused = false;\n }\n });\n this.detachElementEventHandlers = () => {\n resizeSubscription();\n orientationSubscription();\n documentClickSubscription();\n windowBlurSubscription();\n clickSubscription();\n keydownSubscription();\n focusInSubscription();\n focusOutSubscription();\n };\n });\n }\n matchesMedia(c) {\n return this.responsiveService.matchesMedia(c.media);\n }\n resizeCheck() {\n if (window.innerWidth !== this.cachedWindowWidth) {\n this.cachedWindowWidth = window.innerWidth;\n let hasChanges = false;\n this.columnList.filterHierarchy(column => {\n const matchesMedia = this.matchesMedia(column);\n if (column.matchesMedia !== matchesMedia) {\n hasChanges = true;\n column.matchesMedia = matchesMedia;\n }\n return column.isVisible;\n });\n if (hasChanges) {\n this.ngZone.run(() => {\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n }\n emitPDFExportEvent() {\n const args = new PDFExportEvent();\n this.pdfExport.emit(args);\n if (!args.isDefaultPrevented()) {\n this.saveAsPDF();\n }\n }\n syncHeaderHeight(observable) {\n return observable.pipe(filter(() => isPresent(this.lockedHeader))).subscribe(() => syncRowsHeight(this.lockedHeader.nativeElement.children[0], this.header.nativeElement.children[0]));\n }\n columnsContainerChange() {\n this.subscriptions.add(this.syncHeaderHeight(this.columnsContainer.changes.pipe(filter(() => this.lockedColumns.length > 0), switchMap(() => this.ngZone.onStable.asObservable().pipe(take(1))))));\n }\n handleColumnResize() {\n const resizes = this.columnResizingService.changes;\n this.subscriptions.add(resizes.pipe(tap(e => {\n if (e.type === 'start') {\n this.renderer.addClass(this.wrapper.nativeElement, 'k-grid-column-resizing');\n } else if (e.type === 'end') {\n this.renderer.removeClass(this.wrapper.nativeElement, 'k-grid-column-resizing');\n }\n }), filter(e => e.type === 'start'), switchMap(() => resizes.pipe(takeUntil(resizes.pipe(filter(e => e.type === 'triggerAutoFit'))), filter(e => e.type === 'end')))).subscribe(this.notifyResize.bind(this)));\n }\n notifyResize(e) {\n const args = e.resizedColumns.filter(item => isTruthy(item.column.resizable) && !item.column.isColumnGroup).map(item => ({\n column: item.column,\n newWidth: item.column.width,\n oldWidth: item.oldWidth\n }));\n if (hasObservers(this.columnResize)) {\n this.ngZone.run(() => {\n this.columnResize.emit(args);\n });\n }\n }\n assertNavigable() {\n if (isDevMode() && !this.navigable) {\n throw new Error('The TreeList should be configured as [navigable]=\"true\" to control focus');\n }\n }\n navigationMetadata() {\n const isVirtual = this.isVirtual;\n const filterRowOffset = hasFilterRow(this.filterable) ? 1 : 0;\n const headerRows = this.totalColumnLevels + 1 + filterRowOffset;\n return new NavigationMetadata(this.view, headerRows, isVirtual, this.showPager, this.wrapper, this.virtualColumns, this.columnsContainer);\n }\n updateNavigationMetadata() {\n this.navigationService.metadata = this.navigationMetadata();\n }\n applyAutoSize() {\n const cols = this.columns.filter(c => this.autoSize ? c.autoSize !== false : c.autoSize);\n if (cols.length > 0) {\n this.ngZone.onStable.pipe(take(1)).subscribe(_ => this.autoFitColumns(cols));\n }\n }\n onColumnRangeChange(range) {\n const viewportColumns = this.viewportColumns = [];\n const leafViewportColumns = this.columnsContainer.nonLockedLeafColumns.toArray().slice(range.start, range.end + 1);\n for (let idx = 0; idx < leafViewportColumns.length; idx++) {\n let column = leafViewportColumns[idx];\n while (column.parent) {\n column = column.parent;\n }\n const toAdd = [column];\n while (toAdd.length) {\n column = toAdd.shift();\n viewportColumns.push(column);\n if (column.isColumnGroup) {\n toAdd.unshift(...column.childrenArray);\n }\n }\n const lastFromGroup = viewportColumns[viewportColumns.length - 1];\n column = leafViewportColumns[idx];\n while (column !== lastFromGroup && idx < leafViewportColumns.length) {\n idx++;\n column = leafViewportColumns[idx];\n }\n }\n if (range.start > 0) {\n const first = leafViewportColumns[0];\n let offset = range.offset;\n let current = viewportColumns[0];\n let index = 0;\n while (current !== first) {\n offset -= current.isColumnGroup ? 0 : current.width;\n index++;\n current = viewportColumns[index];\n }\n if (offset > 0) {\n const totalLevels = this.columnsContainer.totalLevels;\n let previous;\n for (let idx = 0; idx <= totalLevels; idx++) {\n const offsetColumn = idx < totalLevels ? new ColumnGroupComponent(previous) : new ColumnBase(previous);\n previous = offsetColumn;\n offsetColumn.title = \"\\u00A0\";\n offsetColumn.width = offset;\n viewportColumns.unshift(offsetColumn);\n }\n }\n }\n this.leafViewportColumns = viewportColumns.filter(c => !c.isColumnGroup);\n }\n dataLoaded(result) {\n this.loadedData = result || [];\n this.view.reset();\n this.dataChanged = true;\n this.changeDetectorRef.markForCheck();\n }\n unsubscribeDataLoaded() {\n if (this.dataLoadedSubscription) {\n this.dataLoadedSubscription.unsubscribe();\n this.dataLoadedSubscription = null;\n }\n }\n loadColumns(columns) {\n this.columns.reset(columns.toArray());\n this.columns.notifyOnChanges();\n }\n notifyReorderContainers() {\n this.dragTargetContainer?.notify();\n this.dropTargetContainer?.notify();\n }\n }\n TreeListComponent.ɵfac = function TreeListComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TreeListComponent)(i0.ɵɵdirectiveInject(BrowserSupportService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ChangeNotificationService), i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(PDFService), i0.ɵɵdirectiveInject(ResponsiveService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(ExcelService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ScrollSyncService), i0.ɵɵdirectiveInject(DomEventsService), i0.ɵɵdirectiveInject(ColumnResizingService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ColumnReorderService), i0.ɵɵdirectiveInject(ColumnInfoService), i0.ɵɵdirectiveInject(NavigationService), i0.ɵɵdirectiveInject(SortService), i0.ɵɵdirectiveInject(ScrollRequestService), i0.ɵɵdirectiveInject(ExpandStateService), i0.ɵɵdirectiveInject(OptionChangesService), i0.ɵɵdirectiveInject(SelectionService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(ContextService), i0.ɵɵdirectiveInject(RowReorderService));\n };\n TreeListComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TreeListComponent,\n selectors: [[\"kendo-treelist\"]],\n contentQueries: function TreeListComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, ColumnBase, 4);\n i0.ɵɵcontentQuery(dirIndex, NoRecordsTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, PagerTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, ToolbarTemplateDirective, 4);\n i0.ɵɵcontentQuery(dirIndex, ColumnMenuTemplateDirective, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columns = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.noRecordsTemplateChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pagerTemplateChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarTemplateChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnMenuTemplates = _t);\n }\n },\n viewQuery: function TreeListComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c27, 5);\n i0.ɵɵviewQuery(_c28, 5);\n i0.ɵɵviewQuery(_c29, 7);\n i0.ɵɵviewQuery(DragTargetContainerDirective, 5);\n i0.ɵɵviewQuery(DropTargetContainerDirective, 5);\n i0.ɵɵviewQuery(_c30, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lockedHeader = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.header = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ariaRoot = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dragTargetContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropTargetContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footer = _t);\n }\n },\n hostVars: 13,\n hostBindings: function TreeListComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"dir\", ctx.dir);\n i0.ɵɵclassProp(\"k-grid\", ctx.hostClasses)(\"k-grid-md\", ctx.hostClasses)(\"k-treelist\", ctx.hostClasses)(\"k-grid-lockedcolumns\", ctx.lockedClasses)(\"k-grid-virtual\", ctx.virtualClasses)(\"k-grid-no-scrollbar\", ctx.noScrollbarClass);\n }\n },\n inputs: {\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n data: \"data\",\n pageSize: \"pageSize\",\n height: \"height\",\n rowHeight: \"rowHeight\",\n skip: \"skip\",\n scrollable: \"scrollable\",\n sort: \"sort\",\n trackBy: \"trackBy\",\n filter: \"filter\",\n virtualColumns: \"virtualColumns\",\n filterable: \"filterable\",\n sortable: \"sortable\",\n pageable: \"pageable\",\n navigable: \"navigable\",\n navigatable: \"navigatable\",\n autoSize: \"autoSize\",\n rowClass: \"rowClass\",\n resizable: \"resizable\",\n reorderable: \"reorderable\",\n loading: \"loading\",\n columnMenu: \"columnMenu\",\n hideHeader: \"hideHeader\",\n idField: \"idField\",\n selectable: \"selectable\",\n isSelected: \"isSelected\",\n rowReorderable: \"rowReorderable\",\n columnsRef: [0, \"columns\", \"columnsRef\"],\n fetchChildren: \"fetchChildren\",\n hasChildren: \"hasChildren\",\n isExpanded: \"isExpanded\"\n },\n outputs: {\n selectionChange: \"selectionChange\",\n filterChange: \"filterChange\",\n pageChange: \"pageChange\",\n sortChange: \"sortChange\",\n dataStateChange: \"dataStateChange\",\n edit: \"edit\",\n cancel: \"cancel\",\n save: \"save\",\n remove: \"remove\",\n add: \"add\",\n cellClose: \"cellClose\",\n cellClick: \"cellClick\",\n pdfExport: \"pdfExport\",\n excelExport: \"excelExport\",\n columnResize: \"columnResize\",\n columnReorder: \"columnReorder\",\n columnVisibilityChange: \"columnVisibilityChange\",\n columnLockedChange: \"columnLockedChange\",\n scrollBottom: \"scrollBottom\",\n contentScroll: \"contentScroll\",\n expandEvent: \"expand\",\n collapseEvent: \"collapse\",\n expandStateChange: \"expandStateChange\",\n rowReorder: \"rowReorder\"\n },\n exportAs: [\"kendoTreeList\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([BrowserSupportService, LocalizationService, ColumnInfoService, ChangeNotificationService, EditService, PDFService, SuspendService, {\n provide: L10N_PREFIX,\n useValue: 'kendo.treelist'\n }, FilterService, ResponsiveService, PagerContextService, ExcelService, ScrollSyncService, ResizeService, DomEventsService, ColumnResizingService, SinglePopupService, DragAndDropService, DragHintService, DropCueService, ColumnReorderService, NavigationService, FocusRoot, IdService, ScrollRequestService, SortService, ExpandStateService, OptionChangesService, SelectionService, {\n provide: DataBoundTreeComponent,\n useExisting: forwardRef(() => TreeListComponent)\n }, {\n provide: ExpandableTreeComponent,\n useExisting: forwardRef(() => TreeListComponent)\n }, ContextService, RowReorderService]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 11,\n vars: 23,\n consts: () => {\n let i18n_0;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label visible in the TreeList when there are no records\n * @meaning kendo.treelist.noRecords\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_0 = goog.getMsg(\"No records available.\");\n i18n_0 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_0;\n } else {\n i18n_0 = $localize`:kendo.treelist.noRecords|The label visible in the TreeList when there are no records:No records available.`;\n }\n let i18n_1;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the first page button in TreeList pager\n * @meaning kendo.treelist.pagerFirstPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_1 = goog.getMsg(\"Go to the first page\");\n i18n_1 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_1;\n } else {\n i18n_1 = $localize`:kendo.treelist.pagerFirstPage|The label for the first page button in TreeList pager:Go to the first page`;\n }\n let i18n_2;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the previous page button in TreeList pager\n * @meaning kendo.treelist.pagerPreviousPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_2 = goog.getMsg(\"Go to the previous page\");\n i18n_2 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_2;\n } else {\n i18n_2 = $localize`:kendo.treelist.pagerPreviousPage|The label for the previous page button in TreeList pager:Go to the previous page`;\n }\n let i18n_3;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the next page button in TreeList pager\n * @meaning kendo.treelist.pagerNextPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_3 = goog.getMsg(\"Go to the next page\");\n i18n_3 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_3;\n } else {\n i18n_3 = $localize`:kendo.treelist.pagerNextPage|The label for the next page button in TreeList pager:Go to the next page`;\n }\n let i18n_4;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the last page button in TreeList pager\n * @meaning kendo.treelist.pagerLastPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_4 = goog.getMsg(\"Go to the last page\");\n i18n_4 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_4;\n } else {\n i18n_4 = $localize`:kendo.treelist.pagerLastPage|The label for the last page button in TreeList pager:Go to the last page`;\n }\n let i18n_5;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the current page number in the TreeList pager\n * @meaning kendo.treelist.pagerPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_5 = goog.getMsg(\"Page\");\n i18n_5 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_5;\n } else {\n i18n_5 = $localize`:kendo.treelist.pagerPage|The label before the current page number in the TreeList pager:Page`;\n }\n let i18n_6;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the total pages number in the TreeList pager\n * @meaning kendo.treelist.pagerOf\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_6 = goog.getMsg(\"of\");\n i18n_6 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_6;\n } else {\n i18n_6 = $localize`:kendo.treelist.pagerOf|The label before the total pages number in the TreeList pager:of`;\n }\n let i18n_7;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the pager input in the Treelist pager\n * @meaning kendo.treelist.pagerPageNumberInputTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_7 = goog.getMsg(\"Page Number\");\n i18n_7 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_7;\n } else {\n i18n_7 = $localize`:kendo.treelist.pagerPageNumberInputTitle|The label for the pager input in the Treelist pager:Page Number`;\n }\n let i18n_8;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the page size chooser in the TreeList pager\n * @meaning kendo.treelist.pagerItemsPerPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_8 = goog.getMsg(\"items per page\");\n i18n_8 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_8;\n } else {\n i18n_8 = $localize`:kendo.treelist.pagerItemsPerPage|The label for the page size chooser in the TreeList pager:items per page`;\n }\n let i18n_9;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label after the total items count in the TreeList pager\n * @meaning kendo.treelist.pagerItemsTotal\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_9 = goog.getMsg(\"items total\");\n i18n_9 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_9;\n } else {\n i18n_9 = $localize`:kendo.treelist.pagerItemsTotal|The label after the total items count in the TreeList pager:items total`;\n }\n let i18n_10;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter cell or icon\n * @meaning kendo.treelist.filter\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_10 = goog.getMsg(\"Filter\");\n i18n_10 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_10;\n } else {\n i18n_10 = $localize`:kendo.treelist.filter|The label of the filter cell or icon:Filter`;\n }\n let i18n_11;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the equal filter operator\n * @meaning kendo.treelist.filterEqOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_11 = goog.getMsg(\"Is equal to\");\n i18n_11 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_11;\n } else {\n i18n_11 = $localize`:kendo.treelist.filterEqOperator|The text of the equal filter operator:Is equal to`;\n }\n let i18n_12;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the not equal filter operator\n * @meaning kendo.treelist.filterNotEqOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_12 = goog.getMsg(\"Is not equal to\");\n i18n_12 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_12;\n } else {\n i18n_12 = $localize`:kendo.treelist.filterNotEqOperator|The text of the not equal filter operator:Is not equal to`;\n }\n let i18n_13;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is null filter operator\n * @meaning kendo.treelist.filterIsNullOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_13 = goog.getMsg(\"Is null\");\n i18n_13 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_13;\n } else {\n i18n_13 = $localize`:kendo.treelist.filterIsNullOperator|The text of the is null filter operator:Is null`;\n }\n let i18n_14;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is not null filter operator\n * @meaning kendo.treelist.filterIsNotNullOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_14 = goog.getMsg(\"Is not null\");\n i18n_14 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_14;\n } else {\n i18n_14 = $localize`:kendo.treelist.filterIsNotNullOperator|The text of the is not null filter operator:Is not null`;\n }\n let i18n_15;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is empty filter operator\n * @meaning kendo.treelist.filterIsEmptyOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_15 = goog.getMsg(\"Is empty\");\n i18n_15 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_15;\n } else {\n i18n_15 = $localize`:kendo.treelist.filterIsEmptyOperator|The text of the is empty filter operator:Is empty`;\n }\n let i18n_16;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the is not empty filter operator\n * @meaning kendo.treelist.filterIsNotEmptyOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_16 = goog.getMsg(\"Is not empty\");\n i18n_16 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_16;\n } else {\n i18n_16 = $localize`:kendo.treelist.filterIsNotEmptyOperator|The text of the is not empty filter operator:Is not empty`;\n }\n let i18n_17;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the starts with filter operator\n * @meaning kendo.treelist.filterStartsWithOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_17 = goog.getMsg(\"Starts with\");\n i18n_17 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_17;\n } else {\n i18n_17 = $localize`:kendo.treelist.filterStartsWithOperator|The text of the starts with filter operator:Starts with`;\n }\n let i18n_18;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the contains filter operator\n * @meaning kendo.treelist.filterContainsOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_18 = goog.getMsg(\"Contains\");\n i18n_18 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_18;\n } else {\n i18n_18 = $localize`:kendo.treelist.filterContainsOperator|The text of the contains filter operator:Contains`;\n }\n let i18n_19;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the does not contain filter operator\n * @meaning kendo.treelist.filterNotContainsOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_19 = goog.getMsg(\"Does not contain\");\n i18n_19 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_19;\n } else {\n i18n_19 = $localize`:kendo.treelist.filterNotContainsOperator|The text of the does not contain filter operator:Does not contain`;\n }\n let i18n_20;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the ends with filter operator\n * @meaning kendo.treelist.filterEndsWithOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_20 = goog.getMsg(\"Ends with\");\n i18n_20 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_20;\n } else {\n i18n_20 = $localize`:kendo.treelist.filterEndsWithOperator|The text of the ends with filter operator:Ends with`;\n }\n let i18n_21;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the greater than or equal filter operator\n * @meaning kendo.treelist.filterGteOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_21 = goog.getMsg(\"Is greater than or equal to\");\n i18n_21 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_21;\n } else {\n i18n_21 = $localize`:kendo.treelist.filterGteOperator|The text of the greater than or equal filter operator:Is greater than or equal to`;\n }\n let i18n_22;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the greater than filter operator\n * @meaning kendo.treelist.filterGtOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_22 = goog.getMsg(\"Is greater than\");\n i18n_22 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_22;\n } else {\n i18n_22 = $localize`:kendo.treelist.filterGtOperator|The text of the greater than filter operator:Is greater than`;\n }\n let i18n_23;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the less than or equal filter operator\n * @meaning kendo.treelist.filterLteOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_23 = goog.getMsg(\"Is less than or equal to\");\n i18n_23 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_23;\n } else {\n i18n_23 = $localize`:kendo.treelist.filterLteOperator|The text of the less than or equal filter operator:Is less than or equal to`;\n }\n let i18n_24;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the less than filter operator\n * @meaning kendo.treelist.filterLtOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_24 = goog.getMsg(\"Is less than\");\n i18n_24 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_24;\n } else {\n i18n_24 = $localize`:kendo.treelist.filterLtOperator|The text of the less than filter operator:Is less than`;\n }\n let i18n_25;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the IsTrue boolean filter option\n * @meaning kendo.treelist.filterIsTrue\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_25 = goog.getMsg(\"Is True\");\n i18n_25 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_25;\n } else {\n i18n_25 = $localize`:kendo.treelist.filterIsTrue|The text of the IsTrue boolean filter option:Is True`;\n }\n let i18n_26;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the IsFalse boolean filter option\n * @meaning kendo.treelist.filterIsFalse\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_26 = goog.getMsg(\"Is False\");\n i18n_26 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_26;\n } else {\n i18n_26 = $localize`:kendo.treelist.filterIsFalse|The text of the IsFalse boolean filter option:Is False`;\n }\n let i18n_27;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the (All) boolean filter option\n * @meaning kendo.treelist.filterBooleanAll\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_27 = goog.getMsg(\"(All)\");\n i18n_27 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_27;\n } else {\n i18n_27 = $localize`:kendo.treelist.filterBooleanAll|The text of the (All) boolean filter option:(All)`;\n }\n let i18n_28;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the after or equal date filter operator\n * @meaning kendo.treelist.filterAfterOrEqualOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_28 = goog.getMsg(\"Is after or equal to\");\n i18n_28 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_28;\n } else {\n i18n_28 = $localize`:kendo.treelist.filterAfterOrEqualOperator|The text of the after or equal date filter operator:Is after or equal to`;\n }\n let i18n_29;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the after date filter operator\n * @meaning kendo.treelist.filterAfterOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_29 = goog.getMsg(\"Is after\");\n i18n_29 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_29;\n } else {\n i18n_29 = $localize`:kendo.treelist.filterAfterOperator|The text of the after date filter operator:Is after`;\n }\n let i18n_30;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the before date filter operator\n * @meaning kendo.treelist.filterBeforeOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_30 = goog.getMsg(\"Is before\");\n i18n_30 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_30;\n } else {\n i18n_30 = $localize`:kendo.treelist.filterBeforeOperator|The text of the before date filter operator:Is before`;\n }\n let i18n_31;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the before or equal date filter operator\n * @meaning kendo.treelist.filterBeforeOrEqualOperator\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_31 = goog.getMsg(\"Is before or equal to\");\n i18n_31 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_31;\n } else {\n i18n_31 = $localize`:kendo.treelist.filterBeforeOrEqualOperator|The text of the before or equal date filter operator:Is before or equal to`;\n }\n let i18n_32;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the filter button\n * @meaning kendo.treelist.filterFilterButton\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_32 = goog.getMsg(\"Filter\");\n i18n_32 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_32;\n } else {\n i18n_32 = $localize`:kendo.treelist.filterFilterButton|The text of the filter button:Filter`;\n }\n let i18n_33;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the clear filter button\n * @meaning kendo.treelist.filterClearButton\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_33 = goog.getMsg(\"Clear\");\n i18n_33 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_33;\n } else {\n i18n_33 = $localize`:kendo.treelist.filterClearButton|The text of the clear filter button:Clear`;\n }\n let i18n_34;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the And filter logic\n * @meaning kendo.treelist.filterAndLogic\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_34 = goog.getMsg(\"And\");\n i18n_34 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_34;\n } else {\n i18n_34 = $localize`:kendo.treelist.filterAndLogic|The text of the And filter logic:And`;\n }\n let i18n_35;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the Or filter logic\n * @meaning kendo.treelist.filterOrLogic\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_35 = goog.getMsg(\"Or\");\n i18n_35 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_35;\n } else {\n i18n_35 = $localize`:kendo.treelist.filterOrLogic|The text of the Or filter logic:Or`;\n }\n let i18n_36;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The loading text\n * @meaning kendo.treelist.loading\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_36 = goog.getMsg(\"Loading\");\n i18n_36 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_36;\n } else {\n i18n_36 = $localize`:kendo.treelist.loading|The loading text:Loading`;\n }\n let i18n_37;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The title of the column menu icon\n * @meaning kendo.treelist.columnMenu\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_37 = goog.getMsg(\"Column Menu\");\n i18n_37 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_37;\n } else {\n i18n_37 = $localize`:kendo.treelist.columnMenu|The title of the column menu icon:Column Menu`;\n }\n let i18n_38;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the columns item\n * @meaning kendo.treelist.columns\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_38 = goog.getMsg(\"Columns\");\n i18n_38 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_38;\n } else {\n i18n_38 = $localize`:kendo.treelist.columns|The text shown in the column menu for the columns item:Columns`;\n }\n let i18n_39;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the lock item\n * @meaning kendo.treelist.lock\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_39 = goog.getMsg(\"Lock\");\n i18n_39 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_39;\n } else {\n i18n_39 = $localize`:kendo.treelist.lock|The text shown in the column menu for the lock item:Lock`;\n }\n let i18n_40;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the unlock item\n * @meaning kendo.treelist.unlock\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_40 = goog.getMsg(\"Unlock\");\n i18n_40 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_40;\n } else {\n i18n_40 = $localize`:kendo.treelist.unlock|The text shown in the column menu for the unlock item:Unlock`;\n }\n let i18n_41;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the sort icon\n * @meaning kendo.treelist.sortable\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_41 = goog.getMsg(\"Sortable\");\n i18n_41 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_41;\n } else {\n i18n_41 = $localize`:kendo.treelist.sortable|The label of the sort icon:Sortable`;\n }\n let i18n_42;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the sort ascending item\n * @meaning kendo.treelist.sortAscending\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_42 = goog.getMsg(\"Sort Ascending\");\n i18n_42 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_42;\n } else {\n i18n_42 = $localize`:kendo.treelist.sortAscending|The text shown in the column menu for the sort ascending item:Sort Ascending`;\n }\n let i18n_43;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu for the sort descending item\n * @meaning kendo.treelist.sortDescending\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_43 = goog.getMsg(\"Sort Descending\");\n i18n_43 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_43;\n } else {\n i18n_43 = $localize`:kendo.treelist.sortDescending|The text shown in the column menu for the sort descending item:Sort Descending`;\n }\n let i18n_44;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The status announcement when a column is no longer sorted\n * @meaning kendo.treelist.sortedDefault\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_44 = goog.getMsg(\"Not Sorted\");\n i18n_44 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_44;\n } else {\n i18n_44 = $localize`:kendo.treelist.sortedDefault|The status announcement when a column is no longer sorted:Not Sorted`;\n }\n let i18n_45;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu or column chooser for the columns apply button\n * @meaning kendo.treelist.columnsApply\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_45 = goog.getMsg(\"Apply\");\n i18n_45 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_45;\n } else {\n i18n_45 = $localize`:kendo.treelist.columnsApply|The text shown in the column menu or column chooser for the columns apply button:Apply`;\n }\n let i18n_46;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text shown in the column menu or column chooser for the columns reset button\n * @meaning kendo.treelist.columnsReset\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_46 = goog.getMsg(\"Reset\");\n i18n_46 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_46;\n } else {\n i18n_46 = $localize`:kendo.treelist.columnsReset|The text shown in the column menu or column chooser for the columns reset button:Reset`;\n }\n let i18n_47;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the title and aria-label attributes applied to the page chooser in the TreeList Pager\n * @meaning kendo.treelist.selectPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_47 = goog.getMsg(\"Select page\");\n i18n_47 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_47;\n } else {\n i18n_47 = $localize`:kendo.treelist.selectPage|The text of the title and aria-label attributes applied to the page chooser in the TreeList Pager:Select page`;\n }\n let i18n_48;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the TreeList top toolbar\n * @meaning kendo.treelist.topToolbarLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_48 = goog.getMsg(\"Top toolbar\");\n i18n_48 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_48;\n } else {\n i18n_48 = $localize`:kendo.treelist.topToolbarLabel|The label of the TreeList top toolbar:Top toolbar`;\n }\n let i18n_49;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the TreeList bottom toolbar\n * @meaning kendo.treelist.bottomToolbarLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_49 = goog.getMsg(\"Bottom toolbar\");\n i18n_49 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_49;\n } else {\n i18n_49 = $localize`:kendo.treelist.bottomToolbarLabel|The label of the TreeList bottom toolbar:Bottom toolbar`;\n }\n let i18n_50;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the TreeList drag row handle\n * @meaning kendo.treelist.dragRowHandleLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_50 = goog.getMsg(\"Drag row\");\n i18n_50 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_50;\n } else {\n i18n_50 = $localize`:kendo.treelist.dragRowHandleLabel|The label for the TreeList drag row handle:Drag row`;\n }\n let i18n_51;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the select row checkbox\n * @meaning kendo.treelist.selectRowCheckboxLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_51 = goog.getMsg(\"Select row\");\n i18n_51 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_51;\n } else {\n i18n_51 = $localize`:kendo.treelist.selectRowCheckboxLabel|The label for the select row checkbox:Select row`;\n }\n let i18n_52;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the select all rows checkbox\n * @meaning kendo.treelist.selectAllRowsCheckboxLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_52 = goog.getMsg(\"Select all rows\");\n i18n_52 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_52;\n } else {\n i18n_52 = $localize`:kendo.treelist.selectAllRowsCheckboxLabel|The label for the select all rows checkbox:Select all rows`;\n }\n let i18n_53;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the TreeList pager\n * @meaning kendo.treelist.pagerLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_53 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ 'Page navigation, page {currentPage} of {totalPages}' }}\"\n }\n });\n i18n_53 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_53;\n } else {\n i18n_53 = $localize`:kendo.treelist.pagerLabel|The label for the TreeList pager:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n let i18n_54;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter cell operators dropdown\n * @meaning kendo.treelist.filterCellOperatorLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_54 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ 'Filter cell operators for {columnName}' }}\"\n }\n });\n i18n_54 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_54;\n } else {\n i18n_54 = $localize`:kendo.treelist.filterCellOperatorLabel|The label of the filter cell operators dropdown:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n let i18n_55;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the boolean filter cell dropdown\n * @meaning kendo.treelist.booleanFilterCellLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_55 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ 'Boolean filter cell for {columnName}' }}\"\n }\n });\n i18n_55 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_55;\n } else {\n i18n_55 = $localize`:kendo.treelist.booleanFilterCellLabel|The label of the boolean filter cell dropdown:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n let i18n_56;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label of the filter row and menu inputs\n * @meaning kendo.treelist.filterInputLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_56 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ '{columnName} Filter' }}\"\n }\n });\n i18n_56 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_TREELIST_FESM2020_PROGRESS_KENDO_ANGULAR_TREELIST_MJS_56;\n } else {\n i18n_56 = $localize`:kendo.treelist.filterInputLabel|The label of the filter row and menu inputs:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n return [[\"ariaRoot\", \"\"], [\"defaultHint\", \"\"], [\"header\", \"\"], [\"lockedHeader\", \"\"], [\"pagerLabel\", i18n_53, \"filterCellOperatorLabel\", i18n_54, \"booleanFilterCellLabel\", i18n_55, \"filterInputLabel\", i18n_56], [\"kendoTreeListLocalizedMessages\", \"\", \"noRecords\", i18n_0, \"pagerFirstPage\", i18n_1, \"pagerPreviousPage\", i18n_2, \"pagerNextPage\", i18n_3, \"pagerLastPage\", i18n_4, \"pagerPage\", i18n_5, \"pagerOf\", i18n_6, \"pagerPageNumberInputTitle\", i18n_7, \"pagerItemsPerPage\", i18n_8, \"pagerItemsTotal\", i18n_9, \"filter\", i18n_10, \"filterEqOperator\", i18n_11, \"filterNotEqOperator\", i18n_12, \"filterIsNullOperator\", i18n_13, \"filterIsNotNullOperator\", i18n_14, \"filterIsEmptyOperator\", i18n_15, \"filterIsNotEmptyOperator\", i18n_16, \"filterStartsWithOperator\", i18n_17, \"filterContainsOperator\", i18n_18, \"filterNotContainsOperator\", i18n_19, \"filterEndsWithOperator\", i18n_20, \"filterGteOperator\", i18n_21, \"filterGtOperator\", i18n_22, \"filterLteOperator\", i18n_23, \"filterLtOperator\", i18n_24, \"filterIsTrue\", i18n_25, \"filterIsFalse\", i18n_26, \"filterBooleanAll\", i18n_27, \"filterAfterOrEqualOperator\", i18n_28, \"filterAfterOperator\", i18n_29, \"filterBeforeOperator\", i18n_30, \"filterBeforeOrEqualOperator\", i18n_31, \"filterFilterButton\", i18n_32, \"filterClearButton\", i18n_33, \"filterAndLogic\", i18n_34, \"filterOrLogic\", i18n_35, \"loading\", i18n_36, \"columnMenu\", i18n_37, \"columns\", i18n_38, \"lock\", i18n_39, \"unlock\", i18n_40, \"sortable\", i18n_41, \"sortAscending\", i18n_42, \"sortDescending\", i18n_43, \"sortedDefault\", i18n_44, \"columnsApply\", i18n_45, \"columnsReset\", i18n_46, \"selectPage\", i18n_47, \"topToolbarLabel\", i18n_48, \"bottomToolbarLabel\", i18n_49, \"dragRowHandleLabel\", i18n_50, \"selectRowCheckboxLabel\", i18n_51, \"selectAllRowsCheckboxLabel\", i18n_52, 6, \"pagerLabel\", \"filterCellOperatorLabel\", \"booleanFilterCellLabel\", \"filterInputLabel\"], [\"position\", \"top\", \"class\", \"k-toolbar k-grid-toolbar k-toolbar-md\", 3, \"navigable\", 4, \"ngIf\"], [\"role\", \"treegrid\", \"kendoDragTargetContainer\", \"\", \"kendoDropTargetContainer\", \"\", \"mode\", \"manual\", 1, \"k-grid-aria-root\", 3, \"onPress\", \"onDragStart\", \"onDrag\", \"onDragEnter\", \"onDragLeave\", \"onDragEnd\", \"onDrop\", \"id\", \"dragDisabled\", \"dropDisabled\", \"dragTargetFilter\", \"dropTargetFilter\", \"dragHandle\", \"hint\", \"dragData\"], [3, \"ngIf\"], [3, \"template\", \"pageSize\", \"total\", \"allCount\", \"skip\", \"navigable\", \"options\", \"pageChange\", 4, \"ngIf\"], [\"class\", \"k-toolbar k-grid-toolbar k-grid-toolbar-bottom k-toolbar-md\", \"position\", \"bottom\", 3, \"navigable\", 4, \"ngIf\"], [\"position\", \"top\", 1, \"k-toolbar\", \"k-grid-toolbar\", \"k-toolbar-md\", 3, \"navigable\"], [\"class\", \"k-grid-header\", \"role\", \"presentation\", 3, \"padding\", 4, \"ngIf\"], [\"kendoDraggable\", \"\", \"kendoTreeListSelectionMarquee\", \"\", 3, \"pageChange\", \"scrollBottom\", \"contentScroll\", \"view\", \"loading\", \"rowHeight\", \"total\", \"take\", \"skip\", \"trackBy\", \"columns\", \"filterable\", \"noRecordsTemplate\", \"rowClass\", \"isVirtual\", \"virtualColumns\", \"expandIcons\", \"enableDrag\"], [\"role\", \"presentation\", 1, \"k-grid-header\"], [\"role\", \"presentation\", \"class\", \"k-grid-header-locked\", 3, \"width\", 4, \"ngIf\"], [\"role\", \"presentation\", \"data-scrollable\", \"\", 1, \"k-grid-header-wrap\", 3, \"kendoTreeListResizableContainer\", \"lockedWidth\"], [\"role\", \"presentation\", \"kendoTreeListResizableTable\", \"\", 1, \"k-grid-header-table\", \"k-table\", \"k-table-md\", 3, \"virtualColumns\"], [\"kendoTreeListColGroup\", \"\", 3, \"columns\"], [\"kendoTreeListHeader\", \"\", \"role\", \"rowgroup\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"sort\", \"filter\", \"filterable\", \"reorderable\", \"sortable\", \"columnMenu\", \"columnMenuTemplate\", \"lockedColumnsCount\", \"totalColumnsCount\", \"totalColumns\"], [\"class\", \"k-width-container\", \"role\", \"presentation\", 4, \"ngIf\"], [\"role\", \"presentation\", 1, \"k-grid-header-locked\"], [\"kendoTreeListResizableTable\", \"\", \"role\", \"presentation\", 1, \"k-grid-header-table\", \"k-table\", \"k-table-md\", 3, \"locked\"], [\"kendoTreeListHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"sort\", \"filter\", \"filterable\", \"reorderable\", \"sortable\", \"columnMenu\", \"columnMenuTemplate\", \"totalColumnsCount\", \"totalColumns\"], [\"role\", \"presentation\", 1, \"k-width-container\"], [\"role\", \"presentation\", \"kendoTreeListResizableTable\", \"\", 1, \"k-table\", \"k-table-md\", \"k-grid-header-table\"], [\"kendoTreeListHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"reorderable\", \"sort\", \"sortable\", \"filter\", \"filterable\", \"columnMenu\", \"columnMenuTemplate\", \"totalColumns\", 4, \"ngIf\"], [\"kendoTreeListTableBody\", \"\", \"kendoDraggable\", \"\", \"kendoTreeListSelectionMarquee\", \"\", 3, \"view\", \"skip\", \"columns\", \"filterable\", \"noRecordsTemplate\", \"trackBy\", \"rowClass\", \"expandIcons\", \"enableDrag\"], [\"kendoTreeListLoading\", \"\", 4, \"ngIf\"], [\"kendoTreeListHeader\", \"\", 3, \"resizable\", \"scrollable\", \"columns\", \"totalColumnLevels\", \"reorderable\", \"sort\", \"sortable\", \"filter\", \"filterable\", \"columnMenu\", \"columnMenuTemplate\", \"totalColumns\"], [\"kendoTreeListLoading\", \"\"], [3, \"pageChange\", \"template\", \"pageSize\", \"total\", \"allCount\", \"skip\", \"navigable\", \"options\"], [\"position\", \"bottom\", 1, \"k-toolbar\", \"k-grid-toolbar\", \"k-grid-toolbar-bottom\", \"k-toolbar-md\", 3, \"navigable\"], [\"innerCssClass\", \"k-drag-status\", 3, \"name\", \"svgIcon\"]];\n },\n template: function TreeListComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0, 5);\n i0.ɵɵi18nAttributes(1, 4);\n i0.ɵɵelementContainerEnd();\n i0.ɵɵtemplate(2, TreeListComponent_kendo_treelist_toolbar_2_Template, 1, 3, \"kendo-treelist-toolbar\", 6);\n i0.ɵɵelementStart(3, \"div\", 7, 0);\n i0.ɵɵlistener(\"onPress\", function TreeListComponent_Template_div_onPress_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleReorderEvents($event, \"press\"));\n })(\"onDragStart\", function TreeListComponent_Template_div_onDragStart_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleReorderEvents($event, \"dragStart\"));\n })(\"onDrag\", function TreeListComponent_Template_div_onDrag_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleReorderEvents($event, \"drag\"));\n })(\"onDragEnter\", function TreeListComponent_Template_div_onDragEnter_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleReorderEvents($event, \"dragEnter\"));\n })(\"onDragLeave\", function TreeListComponent_Template_div_onDragLeave_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleReorderEvents($event, \"dragLeave\"));\n })(\"onDragEnd\", function TreeListComponent_Template_div_onDragEnd_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleReorderEvents($event, \"dragEnd\"));\n })(\"onDrop\", function TreeListComponent_Template_div_onDrop_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleReorderEvents($event, \"drop\"));\n });\n i0.ɵɵtemplate(5, TreeListComponent_ng_template_5_Template, 2, 16, \"ng-template\", 8)(6, TreeListComponent_ng_template_6_Template, 5, 14, \"ng-template\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, TreeListComponent_kendo_treelist_pager_7_Template, 1, 8, \"kendo-treelist-pager\", 9)(8, TreeListComponent_kendo_treelist_toolbar_8_Template, 1, 3, \"kendo-treelist-toolbar\", 10)(9, TreeListComponent_ng_template_9_Template, 2, 3, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const defaultHint_r5 = i0.ɵɵreference(10);\n i0.ɵɵi18nExp(\"Page navigation, page {currentPage} of {totalPages}\")(\"Filter cell operators for {columnName}\")(\"Boolean filter cell for {columnName}\")(\"{columnName} Filter\");\n i0.ɵɵi18nApply(1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.showTopToolbar);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"id\", ctx.ariaRootId)(\"dragDisabled\", !ctx.rowReorderable)(\"dropDisabled\", !ctx.rowReorderable)(\"dragTargetFilter\", ctx.getDefaultSelectors(\"dragTarget\"))(\"dropTargetFilter\", ctx.getDefaultSelectors(\"dropTarget\"))(\"dragHandle\", ctx.getDefaultSelectors(\"handle\"))(\"hint\", i0.ɵɵpureFunction1(21, _c31, defaultHint_r5))(\"dragData\", ctx.treeListData);\n i0.ɵɵattribute(\"aria-rowcount\", ctx.ariaRowCount)(\"aria-colcount\", ctx.ariaColCount)(\"aria-multiselectable\", ctx.ariaMultiselectable)(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.isScrollable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isScrollable);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showPager);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showBottomToolbar);\n }\n },\n dependencies: [LocalizedMessagesDirective, NgIf, ToolbarComponent, DragTargetContainerDirective, DropTargetContainerDirective, TableDirective, ColGroupComponent, HeaderComponent, ResizableContainerDirective, ListComponent, DraggableDirective, MarqueeDirective, TableBodyComponent, LoadingComponent, PagerComponent, IconWrapperComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n return TreeListComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Custom component messages override default component messages\n * ([see example](slug:globalization_treelist#toc-custom-messages)).\n */\nlet CustomMessagesComponent = /*#__PURE__*/(() => {\n class CustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n }\n CustomMessagesComponent.ɵfac = function CustomMessagesComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CustomMessagesComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n CustomMessagesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CustomMessagesComponent,\n selectors: [[\"kendo-treelist-messages\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function CustomMessagesComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return CustomMessagesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive applied to all toolbar elements that need to be a part of the TreeList\n * keyboard navigation.\n */\nlet TreeListToolbarFocusableDirective = /*#__PURE__*/(() => {\n class TreeListToolbarFocusableDirective {\n constructor(host, ctx) {\n this.host = host;\n this.ctx = ctx;\n }\n /**\n * @hidden\n */\n get element() {\n return this.host.nativeElement;\n }\n /**\n * @hidden\n */\n get toolbarPosition() {\n return isDocumentAvailable() && this.host.nativeElement.closest('.k-toolbar')?.getAttribute('position');\n }\n ngAfterViewInit() {\n if (!isDocumentAvailable() || !this.toolbarPosition) {\n return;\n }\n this.ctx[`${this.toolbarPosition}ToolbarNavigation`]?.navigableElements.push(this.element);\n this.ctx[`${this.toolbarPosition}ToolbarNavigation`]?.notify();\n }\n ngOnDestroy() {\n if (!isDocumentAvailable() || !this.toolbarPosition) {\n return;\n }\n const elements = this.ctx[`${this.toolbarPosition}ToolbarNavigation`].navigableElements;\n this.ctx[`${this.toolbarPosition}ToolbarNavigation`].navigableElements = elements.filter(el => el !== this.element);\n this.ctx[`${this.toolbarPosition}ToolbarNavigation`].notify();\n }\n }\n TreeListToolbarFocusableDirective.ɵfac = function TreeListToolbarFocusableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TreeListToolbarFocusableDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ContextService));\n };\n TreeListToolbarFocusableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TreeListToolbarFocusableDirective,\n selectors: [[\"\", \"kendoTreeListToolbarFocusable\", \"\"], [\"\", \"kendoTreeListAddCommand\", \"\"], [\"\", \"kendoTreeListCancelCommand\", \"\"], [\"\", \"kendoTreeListEditCommand\", \"\"], [\"\", \"kendoTreeListRemoveCommand\", \"\"], [\"\", \"kendoTreeListSaveCommand\", \"\"], [\"\", \"kendoTreeListExcelCommand\", \"\"], [\"\", \"kendoTreeListPDFCommand\", \"\"]],\n standalone: true\n });\n return TreeListToolbarFocusableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet EditingDirectiveBase = /*#__PURE__*/(() => {\n class EditingDirectiveBase {\n constructor(treelist) {\n this.treelist = treelist;\n this.subscriptions = new Subscription();\n }\n /**\n * The edit service that will handle the operations.\n */\n set editService(value) {\n this.userEditService = value;\n }\n get editService() {\n return this.userEditService || this.defaultEditService;\n }\n /**\n * Gets or sets a function that will be called to determine the unique identifier\n * for new items. The function receives the `item` and its `parent` as parameters\n * and must return an ID.\n */\n set newItemId(callback) {\n this.idCallback = callback;\n }\n get newItemId() {\n return this.idCallback;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.subscriptions.add(this.treelist.add.subscribe(this.addHandler.bind(this)));\n this.subscriptions.add(this.treelist.remove.subscribe(this.removeHandler.bind(this)));\n this.subscriptions.add(this.treelist.cancel.subscribe(this.cancelHandler.bind(this)));\n this.subscriptions.add(this.treelist.save.subscribe(this.saveHandler.bind(this)));\n this.subscriptions.add(merge(this.treelist.dataStateChange, this.treelist.pageChange).subscribe(this.onStateChange.bind(this)));\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n get defaultEditService() {\n return this.treelist.localEditService;\n }\n addHandler({\n parent\n }) {\n this.parent = parent;\n this.isNew = true;\n if (parent) {\n this.treelist.expand(parent);\n }\n this.treelist.addRow(this.createModel({\n isNew: true\n }), parent);\n }\n saveHandler(args) {\n const item = this.saveModel(args);\n if (item) {\n if (args.isNew) {\n this.editService.create(item, args.parent, this.idCallback ? this.idCallback(item, args.parent) : null);\n } else {\n this.editService.update(item);\n }\n }\n this.treelist.closeRow(args.dataItem, args.isNew);\n }\n cancelHandler(args) {\n this.closeEditor(args);\n }\n removeHandler({\n dataItem,\n parent\n }) {\n const removeItem = shouldRemove => {\n if (shouldRemove) {\n this.editService.remove(dataItem, parent);\n }\n };\n if (this.removeConfirmation) {\n const result = this.removeConfirmation(dataItem, parent);\n if (result instanceof Promise) {\n result.then(removeItem);\n } else if (result instanceof Observable) {\n result.pipe(take(1)).subscribe(removeItem);\n } else {\n removeItem(result);\n }\n } else {\n removeItem(true);\n }\n }\n closeEditor(args = {\n dataItem: this.dataItem,\n isNew: this.isNew\n }) {\n this.treelist.closeRow(args.dataItem, args.isNew);\n this.clean();\n }\n clean() {\n this.isNew = false;\n this.dataItem = null;\n this.parent = null;\n }\n onStateChange() {\n this.closeEditor();\n }\n }\n EditingDirectiveBase.ɵfac = function EditingDirectiveBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EditingDirectiveBase)(i0.ɵɵdirectiveInject(TreeListComponent));\n };\n EditingDirectiveBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: EditingDirectiveBase,\n inputs: {\n editService: \"editService\",\n newItemId: \"newItemId\",\n removeConfirmation: \"removeConfirmation\"\n }\n });\n return EditingDirectiveBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet RowEditingDirectiveBase = /*#__PURE__*/(() => {\n class RowEditingDirectiveBase extends EditingDirectiveBase {\n /**\n * @hidden\n */\n ngOnInit() {\n super.ngOnInit();\n this.subscriptions.add(this.treelist.edit.subscribe(this.editHandler.bind(this)));\n }\n addHandler(args) {\n this.closeEditor();\n super.addHandler(args);\n }\n editHandler(args) {\n this.closeEditor();\n this.dataItem = args.dataItem;\n this.treelist.editRow(args.dataItem, this.createModel(args));\n }\n saveHandler(args) {\n super.saveHandler(args);\n this.clean();\n }\n }\n RowEditingDirectiveBase.ɵfac = /* @__PURE__ */(() => {\n let ɵRowEditingDirectiveBase_BaseFactory;\n return function RowEditingDirectiveBase_Factory(__ngFactoryType__) {\n return (ɵRowEditingDirectiveBase_BaseFactory || (ɵRowEditingDirectiveBase_BaseFactory = i0.ɵɵgetInheritedFactory(RowEditingDirectiveBase)))(__ngFactoryType__ || RowEditingDirectiveBase);\n };\n })();\n RowEditingDirectiveBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RowEditingDirectiveBase,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return RowEditingDirectiveBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive which encapsulates the editing operations of the TreeList when using\n * the Template-Driven Angular Forms ([see example](slug:editing_directives_treelist#toc-template-editing-directive)).\n */\nlet TemplateEditingDirective = /*#__PURE__*/(() => {\n class TemplateEditingDirective extends RowEditingDirectiveBase {\n constructor(treelist) {\n super(treelist);\n this.treelist = treelist;\n }\n editHandler(args) {\n super.editHandler(args);\n this.dataItem = args.dataItem;\n this.originalValues = {};\n this.editService.assignValues(this.originalValues, this.dataItem);\n }\n closeEditor(args) {\n if (this.dataItem) {\n this.editService.assignValues(this.dataItem, this.originalValues);\n }\n super.closeEditor(args);\n }\n createModel(args) {\n if (args.isNew) {\n return this.createNewItem();\n }\n }\n saveModel(args) {\n return args.dataItem;\n }\n }\n TemplateEditingDirective.ɵfac = function TemplateEditingDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TemplateEditingDirective)(i0.ɵɵdirectiveInject(TreeListComponent));\n };\n TemplateEditingDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TemplateEditingDirective,\n selectors: [[\"\", \"kendoTreeListTemplateEditing\", \"\"]],\n inputs: {\n createNewItem: [0, \"kendoTreeListTemplateEditing\", \"createNewItem\"]\n },\n exportAs: [\"kendoTreeListTemplateEditing\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return TemplateEditingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst markAllAsTouched = control => {\n control.markAsTouched();\n if (control.hasOwnProperty('controls')) {\n const controls = control.controls;\n for (const inner in controls) {\n if (controls.hasOwnProperty(inner)) {\n markAllAsTouched(controls[inner]);\n }\n }\n }\n};\n/**\n * @hidden\n */\nconst insertNewItem = (newItem, originalData, treelist, parent) => {\n let insertAt = 0;\n if (!parent && treelist.skip) {\n let firstItem = treelist.view.find(item => item.type === 'data' && !item.isNew);\n let firstRootItem = firstItem;\n let firstOffset = 0;\n if (firstItem.level > 0) {\n while (firstItem.level > 0) {\n firstItem = firstItem.parent;\n }\n firstRootItem = firstItem;\n firstOffset = 1;\n }\n const firstIndex = originalData.indexOf(firstRootItem.data);\n if (firstIndex > 0) {\n insertAt = firstIndex + firstOffset;\n }\n }\n originalData.splice(insertAt, 0, newItem);\n};\n\n/**\n * A directive which encapsulates the editing operations of the TreeList when using the\n * Reactive Forms ([see example](slug:editing_directives_treelist#toc-reactive-editing-directive)).\n */\nlet ReactiveEditingDirective = /*#__PURE__*/(() => {\n class ReactiveEditingDirective extends RowEditingDirectiveBase {\n constructor(treelist) {\n super(treelist);\n this.treelist = treelist;\n }\n createModel(args) {\n return this.createFormGroup(args);\n }\n saveModel({\n dataItem,\n formGroup,\n isNew\n }) {\n if (!formGroup.dirty && !isNew) {\n return;\n }\n if (formGroup.valid) {\n this.editService.assignValues(dataItem, formGroup.value);\n return dataItem;\n }\n markAllAsTouched(formGroup);\n }\n }\n ReactiveEditingDirective.ɵfac = function ReactiveEditingDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ReactiveEditingDirective)(i0.ɵɵdirectiveInject(TreeListComponent));\n };\n ReactiveEditingDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ReactiveEditingDirective,\n selectors: [[\"\", \"kendoTreeListReactiveEditing\", \"\"]],\n inputs: {\n createFormGroup: [0, \"kendoTreeListReactiveEditing\", \"createFormGroup\"]\n },\n exportAs: [\"kendoTreeListReactiveEditing\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return ReactiveEditingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive which encapsulates the editing operations of the TreeList when using the in-cell\n * editing with Reactive Forms ([see example](slug:editing_directives_treelist#toc-in-cell-editing-directive)).\n */\nlet InCellEditingDirective = /*#__PURE__*/(() => {\n class InCellEditingDirective extends EditingDirectiveBase {\n constructor(treelist) {\n super(treelist);\n this.treelist = treelist;\n }\n // Need mixin\n createModel(args) {\n return this.createFormGroup(args);\n }\n saveModel({\n dataItem,\n formGroup,\n isNew\n }) {\n if (!formGroup.dirty && !isNew) {\n return;\n }\n if (formGroup.valid) {\n this.editService.assignValues(dataItem, formGroup.value);\n return dataItem;\n }\n markAllAsTouched(formGroup);\n }\n /**\n * @hidden\n */\n ngOnInit() {\n super.ngOnInit();\n this.subscriptions.add(this.treelist.cellClick.subscribe(this.cellClickHandler.bind(this)));\n this.subscriptions.add(this.treelist.cellClose.subscribe(this.cellCloseHandler.bind(this)));\n }\n removeHandler(args) {\n super.removeHandler(args);\n this.treelist.cancelCell();\n }\n cellClickHandler(args) {\n if (!args.isEdited && args.type === 'click') {\n this.treelist.editCell(args.dataItem, args.columnIndex, this.createFormGroup(args));\n }\n }\n cellCloseHandler(args) {\n const {\n formGroup,\n dataItem\n } = args;\n if (!formGroup.valid) {\n args.preventDefault();\n } else if (formGroup.dirty) {\n this.editService.assignValues(dataItem, formGroup.value);\n this.editService.update(dataItem);\n }\n }\n }\n InCellEditingDirective.ɵfac = function InCellEditingDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InCellEditingDirective)(i0.ɵɵdirectiveInject(TreeListComponent));\n };\n InCellEditingDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InCellEditingDirective,\n selectors: [[\"\", \"kendoTreeListInCellEditing\", \"\"]],\n inputs: {\n createFormGroup: [0, \"kendoTreeListInCellEditing\", \"createFormGroup\"]\n },\n exportAs: [\"kendoTreeListInCellEditing\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return InCellEditingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet BaseBindingDirective = /*#__PURE__*/(() => {\n class BaseBindingDirective {\n constructor(component, rowReorderService) {\n this.component = component;\n this.rowReorderService = rowReorderService;\n this.state = {};\n this.cache = new Map();\n this.originalData = [];\n this.subscriptions = new Subscription();\n this.component.fetchChildren = this.fetchChildren.bind(this);\n this.component.hasChildren = this.hasChildren.bind(this);\n }\n /**\n * Defines the descriptors by which the data will be sorted.\n */\n set sort(value) {\n this.component.sort = this.state.sort = value;\n }\n /**\n * Defines the descriptor by which the data will be filtered.\n */\n set filter(value) {\n this.component.filter = this.state.filter = value;\n }\n /**\n * Defines the descriptor by which the data will be aggregated.\n */\n set aggregate(value) {\n this._aggregate = value;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.applyState(this.state);\n this.subscriptions.add(this.component.dataStateChange.subscribe(this.onStateChange.bind(this)));\n this.component.rowReorderable && this.subscriptions.add(this.rowReorderService.rowReorder.subscribe(this.onRowReorder.bind(this)));\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n ngDoCheck() {\n if (this.dataChanged) {\n this.dataChanged = false;\n this.rebind();\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (anyChanged(['sort', 'filter', 'aggregate'], changes)) {\n this.rebind();\n }\n if (isChanged$1('data', changes, false)) {\n this.updateData(changes['data'].currentValue);\n }\n }\n /**\n * @hidden\n */\n onStateChange(state) {\n this.applyState(state);\n this.rebind();\n }\n /**\n * Clears the directive cache and reloads the component data.\n */\n rebind() {\n this.cache.clear();\n this.component.data = this.fetchChildren();\n }\n onRowReorder(_event) {}\n applyState({\n sort,\n filter\n }) {\n this.sort = sort;\n this.filter = filter;\n }\n fetchChildren(item) {\n const key = this.itemKey(item);\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n const children = this.getChildren(item);\n let items = this.filterItems(children);\n let aggregates;\n if (items.length) {\n if (this.state.sort) {\n items = process(items, {\n sort: this.state.sort\n }).data;\n }\n if (this._aggregate) {\n aggregates = this.calculateAggregates(items);\n }\n }\n const result = {\n data: items,\n aggregates: aggregates\n };\n this.cache.set(key, result);\n return result;\n }\n hasChildren(item) {\n const items = this.fetchChildren(item).data;\n return items && items.length > 0;\n }\n filterItems(items) {\n const filter = this.state.filter;\n const hasFilter = filter && filter.filters && filter.filters.length > 0;\n if (hasFilter) {\n const filter = {\n logic: 'or',\n filters: [this.state.filter, {\n operator: item => {\n const children = this.fetchChildren(item);\n return Boolean(children.data && children.data.length);\n }\n }]\n };\n return process(items, {\n filter: filter\n }).data;\n }\n return items;\n }\n calculateAggregates(items) {\n const list = [];\n const toAdd = items.slice(0);\n while (toAdd.length) {\n const current = toAdd.shift();\n list.push(current);\n if (this.hasChildren(current)) {\n toAdd.push(...this.fetchChildren(current).data);\n }\n }\n // can accumulate from children aggregates except for average\n // for average we need the children count that have numeric value\n // maybe move the aggregates implementation here ???\n return aggregateBy(list, this._aggregate);\n }\n updateData(value) {\n this.originalData = value || [];\n this.dataChanged = true;\n }\n }\n BaseBindingDirective.ɵfac = function BaseBindingDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BaseBindingDirective)(i0.ɵɵdirectiveInject(DataBoundTreeComponent), i0.ɵɵdirectiveInject(RowReorderService));\n };\n BaseBindingDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BaseBindingDirective,\n inputs: {\n sort: \"sort\",\n filter: \"filter\",\n aggregate: \"aggregate\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return BaseBindingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass HierarchyEditService extends LocalEditService {\n constructor(bindingDirective) {\n super();\n this.bindingDirective = bindingDirective;\n }\n create(item, parent, _id) {\n const {\n childrenGetter,\n childrenSetter,\n originalData,\n component\n } = this.bindingDirective;\n if (parent) {\n const children = childrenGetter(parent);\n if (children) {\n children.unshift(item);\n } else {\n childrenSetter(parent, [item]);\n }\n } else {\n insertNewItem(item, originalData, component);\n }\n this.bindingDirective.rebind();\n }\n update(_item) {\n this.bindingDirective.rebind();\n }\n remove(item, parent) {\n const idGetter = this.bindingDirective.component.idGetter; // refactor provide idGetter via context service\n const {\n childrenGetter,\n originalData\n } = this.bindingDirective;\n const children = parent ? childrenGetter(parent) : originalData;\n if (children && children.length) {\n const id = idGetter(item);\n const index = children.findIndex(i => idGetter(i) === id);\n if (index >= 0) {\n children.splice(index, 1);\n this.bindingDirective.rebind();\n }\n }\n }\n}\n\n/**\n * @hidden\n */\nlet HierarchicalRowReorderService = /*#__PURE__*/(() => {\n class HierarchicalRowReorderService extends RowReorderService {\n isOverChild(targetItem) {\n const {\n draggedRows\n } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);\n const draggedItem = draggedRows[0].dataItem;\n const hasChildren = isPresent(draggedItem[this.childrenField]) && draggedItem[this.childrenField].length > 0;\n if (!hasChildren) {\n return false;\n }\n if (targetItem && draggedItem.hasOwnProperty(this.childrenField)) {\n if (draggedItem[this.childrenField].includes(targetItem)) {\n return true;\n }\n const parent = findParent$1(this.data, targetItem, this.childrenField);\n if (parent) {\n return this.isOverChild(parent);\n }\n }\n return false;\n }\n reorderRows(ev, collection, field) {\n const draggedItem = ev.draggedRows[0].dataItem;\n const dropTargetItem = ev.dropTargetRow.dataItem;\n const draggedItemParent = findParent$1(collection, draggedItem, field);\n const dropTargetParent = findParent$1(collection, dropTargetItem, field);\n const draggedItemIdx = draggedItemParent ? draggedItemParent[field].indexOf(draggedItem) : collection.indexOf(draggedItem);\n let dropTargetItemIdx = dropTargetParent ? dropTargetParent[field].indexOf(dropTargetItem) : collection.indexOf(dropTargetItem);\n if (ev.dropPosition === dropPosition.after && dropTargetItemIdx < draggedItemIdx) {\n dropTargetItemIdx++;\n }\n draggedItemParent ? draggedItemParent[field].splice(draggedItemIdx, 1) : collection.splice(draggedItemIdx, 1);\n if (ev.dropPosition !== dropPosition.over) {\n dropTargetParent ? dropTargetParent[field].splice(dropTargetItemIdx, 0, draggedItem) : collection.splice(dropTargetItemIdx, 0, draggedItem);\n } else {\n dropTargetItem[field].unshift(draggedItem);\n }\n }\n }\n HierarchicalRowReorderService.ɵfac = /* @__PURE__ */(() => {\n let ɵHierarchicalRowReorderService_BaseFactory;\n return function HierarchicalRowReorderService_Factory(__ngFactoryType__) {\n return (ɵHierarchicalRowReorderService_BaseFactory || (ɵHierarchicalRowReorderService_BaseFactory = i0.ɵɵgetInheritedFactory(HierarchicalRowReorderService)))(__ngFactoryType__ || HierarchicalRowReorderService);\n };\n })();\n HierarchicalRowReorderService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HierarchicalRowReorderService,\n factory: HierarchicalRowReorderService.ɵfac\n });\n return HierarchicalRowReorderService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive which binds the TreeList to a tree of objects.\n *\n * The directive encapsulates the in-memory handling of data operations such as\n * [sorting]({% slug sorting_treelist %}), [aggregation]({% slug treelist_with_aggregates %})\n * and [filtering]({% slug filtering_treelist %}) ([more information and examples](slug:local_databinding_treelist#toc-binding-to-hierarchical-data-1)).\n */\nlet HierarchyBindingDirective = /*#__PURE__*/(() => {\n class HierarchyBindingDirective extends BaseBindingDirective {\n constructor(component, rowReorderService) {\n super(component);\n this.component = component;\n this.rowReorderService = rowReorderService;\n this.childrenGetter = getter('items');\n this.childrenSetter = setter('items');\n component.localEditService = new HierarchyEditService(this);\n if (this.rowReorderService) {\n this.rowReorderService.bindingDirective = this;\n }\n }\n /**\n * The name of the field which holds the child data items of the node.\n */\n set childrenField(value) {\n this.childrenGetter = getter(value);\n this.childrenSetter = setter(value);\n this._childrenField = value;\n }\n get childrenField() {\n return this._childrenField;\n }\n /**\n * @hidden\n */\n getChildren(item) {\n return item ? this.childrenGetter(item) || [] : this.originalData;\n }\n itemKey(item) {\n return item;\n }\n onRowReorder(ev) {\n if (ev.dropPosition === 'forbidden') {\n return;\n }\n const dropTargetItem = ev.dropTargetRow.dataItem;\n if (ev.dropPosition === 'over') {\n if (!dropTargetItem.hasOwnProperty(this.childrenField)) {\n dropTargetItem[this.childrenField] = [];\n }\n }\n this.rowReorderService.reorderRows(ev, this.originalData, this.childrenField);\n this.rebind();\n }\n }\n HierarchyBindingDirective.ɵfac = function HierarchyBindingDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HierarchyBindingDirective)(i0.ɵɵdirectiveInject(DataBoundTreeComponent), i0.ɵɵdirectiveInject(RowReorderService, 8));\n };\n HierarchyBindingDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: HierarchyBindingDirective,\n selectors: [[\"\", \"kendoTreeListHierarchyBinding\", \"\"]],\n inputs: {\n childrenField: \"childrenField\",\n data: [0, \"kendoTreeListHierarchyBinding\", \"data\"]\n },\n exportAs: [\"kendoTreeListHierarchyBinding\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: RowReorderService,\n useClass: HierarchicalRowReorderService\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n return HierarchyBindingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass FlatEditService extends LocalEditService {\n constructor(bindingDirective) {\n super();\n this.bindingDirective = bindingDirective;\n }\n create(item, parent, id) {\n const {\n idGetter,\n idSetter,\n parentIdSetter,\n originalData,\n component\n } = this.bindingDirective;\n idSetter(item, isPresent(id) ? id : guid());\n if (parent) {\n parentIdSetter(item, idGetter(parent));\n }\n insertNewItem(item, originalData, component, parent);\n this.bindingDirective.rebind();\n }\n update(_item) {\n this.bindingDirective.rebind();\n }\n remove(item, _parent) {\n const {\n idGetter,\n parentIdGetter,\n originalData\n } = this.bindingDirective;\n const toRemove = [item];\n while (toRemove.length) {\n const current = toRemove.shift();\n const id = idGetter(current);\n let itemIndex = -1;\n for (let idx = 0; idx < originalData.length; idx++) {\n const dataItem = originalData[idx];\n if (itemIndex === -1 && idGetter(dataItem) === id) {\n itemIndex = idx;\n }\n if (parentIdGetter(dataItem) === id) {\n toRemove.push(dataItem);\n }\n }\n if (itemIndex >= 0) {\n originalData.splice(itemIndex, 1);\n }\n }\n this.bindingDirective.rebind();\n }\n}\n\n/**\n * @hidden\n */\nlet FlatRowReorderService = /*#__PURE__*/(() => {\n class FlatRowReorderService extends RowReorderService {\n isOverChild(targetItem) {\n const {\n draggedRows\n } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view);\n const draggedItem = draggedRows[0].dataItem;\n const hasParent = isPresent(targetItem[this.parentIdField]);\n const sameParents = draggedItem[this.parentIdField] === targetItem[this.parentIdField];\n if (!hasParent || sameParents) {\n return false;\n }\n if (targetItem && targetItem.hasOwnProperty(this.parentIdField)) {\n if (draggedItem[this.idField] === targetItem[this.parentIdField]) {\n return true;\n }\n const parent = this.data.find(i => i[this.idField] === targetItem[this.parentIdField]);\n if (parent) {\n return this.isOverChild(parent);\n }\n }\n }\n reorderRows(ev, collection) {\n const {\n draggedRows,\n dropTargetRow\n } = ev;\n const draggedDataItem = draggedRows[0].dataItem;\n const dropTargetDataItem = dropTargetRow.dataItem;\n let dropTargetIdx = collection.indexOf(dropTargetDataItem);\n const draggedItemIdx = collection.indexOf(draggedDataItem);\n collection.splice(draggedItemIdx, 1);\n if (ev.dropPosition === 'after' && dropTargetIdx < draggedItemIdx) {\n dropTargetIdx++;\n }\n collection.splice(dropTargetIdx, 0, draggedDataItem);\n }\n }\n FlatRowReorderService.ɵfac = /* @__PURE__ */(() => {\n let ɵFlatRowReorderService_BaseFactory;\n return function FlatRowReorderService_Factory(__ngFactoryType__) {\n return (ɵFlatRowReorderService_BaseFactory || (ɵFlatRowReorderService_BaseFactory = i0.ɵɵgetInheritedFactory(FlatRowReorderService)))(__ngFactoryType__ || FlatRowReorderService);\n };\n })();\n FlatRowReorderService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FlatRowReorderService,\n factory: FlatRowReorderService.ɵfac\n });\n return FlatRowReorderService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst ROOT_ID = null;\n/**\n * A directive which binds the TreeList to an array of objects by using\n * an `idField` and `parentIDField` field to define the hierarchy.\n *\n * The directive encapsulates the in-memory handling of data operations such as\n * [sorting]({% slug sorting_treelist %}), [aggregation]({% slug treelist_with_aggregates %})\n * and [filtering]({% slug filtering_treelist %}) ([more information and examples]({% slug databinding_treelist %})).\n */\nlet FlatBindingDirective = /*#__PURE__*/(() => {\n class FlatBindingDirective extends BaseBindingDirective {\n constructor(component, rowReorderService) {\n super(component);\n this.component = component;\n this.rowReorderService = rowReorderService;\n this.idGetter = getter('id');\n this.idSetter = setter('id');\n this.parentIdGetter = getter('parentId');\n this.parentIdSetter = setter('parentId');\n component.localEditService = new FlatEditService(this);\n if (this.rowReorderService) {\n this.rowReorderService.bindingDirective = this;\n }\n }\n /**\n * The name of the field which contains the identifier of the parent node.\n */\n set parentIdField(value) {\n this.parentIdGetter = getter(value);\n this.parentIdSetter = setter(value);\n this._parentIdField = value;\n }\n get parentIdField() {\n return this._parentIdField;\n }\n /**\n * The name of the field which contains the unique identifier of the node.\n */\n set idField(value) {\n this.idGetter = getter(value);\n this.idSetter = setter(value);\n this._idField = value;\n }\n get idField() {\n return this._idField;\n }\n /**\n * @hidden\n */\n getChildren(item) {\n const id = this.itemKey(item);\n const children = id === ROOT_ID ? this.originalData.filter(o => !isPresent(this.parentIdGetter(o))) : this.originalData.filter(o => this.parentIdGetter(o) === id);\n return children;\n }\n itemKey(item) {\n return item ? this.idGetter(item) : ROOT_ID;\n }\n onRowReorder(ev) {\n if (ev.dropPosition === 'forbidden') {\n return;\n }\n const draggedItem = ev.draggedRows[0].dataItem;\n const dropTargetItem = ev.dropTargetRow.dataItem;\n if (ev.dropPosition === 'over') {\n const dropItemId = this.itemKey(dropTargetItem);\n if (draggedItem[this.parentIdField] !== dropItemId) {\n draggedItem[this.parentIdField] = dropItemId;\n }\n } else {\n const dropItemParentId = dropTargetItem[this.parentIdField];\n draggedItem[this.parentIdField] = dropItemParentId;\n this.rowReorderService.reorderRows(ev, this.originalData);\n }\n this.rebind();\n }\n }\n FlatBindingDirective.ɵfac = function FlatBindingDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FlatBindingDirective)(i0.ɵɵdirectiveInject(DataBoundTreeComponent), i0.ɵɵdirectiveInject(RowReorderService, 8));\n };\n FlatBindingDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FlatBindingDirective,\n selectors: [[\"\", \"kendoTreeListFlatBinding\", \"\"]],\n inputs: {\n parentIdField: \"parentIdField\",\n idField: \"idField\",\n data: [0, \"kendoTreeListFlatBinding\", \"data\"]\n },\n exportAs: [\"kendoTreeListFlatBinding\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: RowReorderService,\n useClass: FlatRowReorderService\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n return FlatBindingDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * A directive which controls the expanded state of the items. [See example](slug:treelist_expanded_state#toc-built-in-directive).\n *\n * @example\n * ```html\n * ...\n * \n * ```\n */\nlet ExpandableDirective = /*#__PURE__*/(() => {\n class ExpandableDirective {\n constructor(component) {\n this.component = component;\n /**\n * Fires when the expandedKeys are changed.\n */\n this.expandedKeysChange = new EventEmitter();\n /**\n * Specifies if the items should be initially expanded.\n * @default false\n */\n this.initiallyExpanded = false;\n this.state = new Set();\n this.component.isExpanded = this.isExpanded.bind(this);\n this.toggleState = this.toggleState.bind(this);\n this.subscriptions = this.component.expandStateChange.subscribe(this.toggleState);\n }\n /**\n * Sets the expanded item keys.\n */\n set expandedKeys(value) {\n if (value !== this._expandedKeys) {\n this._expandedKeys = value;\n this.component.updateView();\n }\n }\n get expandedKeys() {\n return Array.from(this.state.keys());\n }\n /**\n * Defines the item key that will be stored in the expandedKeys collection.\n * Defaults to the component idField.\n */\n set expandBy(key) {\n if (isString(key)) {\n this._expandBy = getter(key);\n } else {\n this._expandBy = key;\n }\n }\n get keyGetter() {\n return this._expandBy || this.component.idGetter;\n }\n /**\n * @hidden\n */\n isExpanded(item) {\n const key = this.keyGetter(item);\n return this.state.has(key) ? !this.initiallyExpanded : this.initiallyExpanded;\n }\n ngOnChanges(changes) {\n if (changes.expandedKeys) {\n this.state = new Set(this._expandedKeys);\n } else if (changes.initiallyExpanded) {\n this.state.clear();\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n toggleState(args) {\n const key = this.keyGetter(args.dataItem);\n if (Boolean(this.initiallyExpanded) !== args.expand) {\n this.state.add(key);\n } else {\n this.state.delete(key);\n }\n this.expandedKeysChange.emit(this.expandedKeys);\n }\n }\n ExpandableDirective.ɵfac = function ExpandableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ExpandableDirective)(i0.ɵɵdirectiveInject(ExpandableTreeComponent));\n };\n ExpandableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ExpandableDirective,\n selectors: [[\"\", \"kendoTreeListExpandable\", \"\"]],\n inputs: {\n expandedKeys: \"expandedKeys\",\n initiallyExpanded: \"initiallyExpanded\",\n expandBy: \"expandBy\"\n },\n outputs: {\n expandedKeysChange: \"expandedKeysChange\"\n },\n exportAs: [\"kendoTreeListExpandable\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return ExpandableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst defaultColumnKeyGetter = (_column, columnIndex) => columnIndex;\n/**\n * A directive which controls the selection state. [See example](slug:selection_treelist).\n */\nlet SelectableDirective = /*#__PURE__*/(() => {\n class SelectableDirective {\n constructor(treelist) {\n this.treelist = treelist;\n /**\n * Fires when the selected items are changed.\n */\n this.selectedItemsChange = new EventEmitter();\n this.state = new RowSelectionState();\n this._selectedItems = [];\n this.cellSelected = this.cellSelected.bind(this);\n this.rowSelected = this.rowSelected.bind(this);\n this.selectionChange = this.selectionChange.bind(this);\n this.updateColumnIndices = this.updateColumnIndices.bind(this);\n this.treelist.selectable = this.selectable = true;\n }\n /**\n * @hidden\n */\n set selectable(value) {\n if (typeof value === 'object') {\n // add method to normalize this\n this._settings = value;\n } else {\n this._settings = {\n enabled: value\n };\n }\n this.state = createState(this._settings);\n this.state.fromArray(this._selectedItems || []);\n if (this._settings.enabled !== false) {\n this.treelist.isSelected = this._settings.mode === 'cell' ? this.cellSelected : this.rowSelected;\n this.subscribeSelection();\n } else {\n this.treelist.isSelected = () => false;\n this.unsubscribeSelection();\n }\n this.treelist.updateView();\n }\n /**\n * Specifies the selected items.\n */\n set selectedItems(value) {\n if (!value) {\n this.state.clear();\n } else if (value !== this.lastChange) {\n this.state.fromArray(value);\n this.treelist.updateView();\n }\n this._selectedItems = value;\n }\n /**\n * The field name or a function that specify the dataItems key.\n */\n set itemKey(value) {\n if (isString(value)) {\n this._keyGetter = getter(String(value));\n } else {\n this._keyGetter = value;\n }\n }\n /**\n * The field name or a function that specify the columns key.\n */\n set columnKey(value) {\n if (isString(value)) {\n this._columnKeyGetter = getter(String(value));\n } else if (value) {\n this._columnKeyGetter = value;\n }\n }\n get keyGetter() {\n return this._keyGetter || this.treelist.idGetter;\n }\n get columnKeyGetter() {\n return this._columnKeyGetter || defaultColumnKeyGetter;\n }\n ngOnDestroy() {\n this.unsubscribeSelection();\n }\n /**\n * @hidden\n */\n cellSelected(dataItem, column, columnIndex) {\n return this.state.has(this.keyGetter(dataItem), this.columnKeyGetter(column, columnIndex));\n }\n /**\n * @hidden\n */\n rowSelected(dataItem) {\n return this.state.has(this.keyGetter(dataItem));\n }\n selectionChange({\n action,\n items\n }) {\n if (action === 'select' || action === 'add') {\n if (action === 'select') {\n this.state.clear();\n }\n items.forEach(item => {\n this.state.add(this.keyGetter(item.dataItem), this.columnKeyGetter(item.column, item.columnIndex));\n });\n } else {\n items.forEach(item => {\n this.state.remove(this.keyGetter(item.dataItem), this.columnKeyGetter(item.column, item.columnIndex));\n });\n }\n this.emitSelectedItemsChange();\n }\n emitSelectedItemsChange() {\n this.lastChange = this.state.toArray();\n this.selectedItemsChange.emit(this.lastChange);\n }\n subscribeSelection() {\n this.unsubscribeSelection();\n this.subscriptions = this.treelist.selectionChange.subscribe(this.selectionChange);\n if (this._settings.mode === 'cell') {\n this.subscriptions.add(this.treelist.columnOrderChange.subscribe(this.updateColumnIndices));\n this.subscriptions.add(this.treelist.columnLockedChange.subscribe(this.updateColumnIndices));\n }\n }\n unsubscribeSelection() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n this.subscriptions = null;\n }\n }\n updateColumnIndices() {\n if (!this._columnKeyGetter) {\n const changes = new Map();\n const currentIndices = [];\n this.leafColumns.forEach(column => {\n currentIndices.push(column);\n });\n this.treelist.columnsContainer.refresh();\n const leafColumns = this.leafColumns;\n currentIndices.forEach((column, index) => {\n if (column !== leafColumns[index]) {\n changes.set(index, leafColumns.indexOf(column));\n }\n });\n if (changes.size && this.state.updateColumKeys(changes)) {\n this.emitSelectedItemsChange();\n }\n }\n }\n get leafColumns() {\n return this.treelist.lockedLeafColumns.toArray().concat(this.treelist.nonLockedLeafColumns.toArray());\n }\n }\n SelectableDirective.ɵfac = function SelectableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SelectableDirective)(i0.ɵɵdirectiveInject(TreeListComponent));\n };\n SelectableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SelectableDirective,\n selectors: [[\"\", \"kendoTreeListSelectable\", \"\"]],\n inputs: {\n selectable: \"selectable\",\n selectedItems: \"selectedItems\",\n itemKey: \"itemKey\",\n columnKey: \"columnKey\"\n },\n outputs: {\n selectedItemsChange: \"selectedItemsChange\"\n },\n exportAs: [\"kendoTreeListSelectable\"],\n standalone: true\n });\n return SelectableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the Kendo UI TreeListSpacer component for Angular.\n * Used to give additional white space between the Pager inner elements,\n * and provides a way for customizing the spacer width.\n * It can also be used in any flex container within the TreeList. [See example](slug:toolbartemplate_treelist#toc-defining-the-spacing-between-toolbar-elements).\n */\nlet TreeListSpacerComponent = /*#__PURE__*/(() => {\n class TreeListSpacerComponent {\n constructor() {\n this.hostClass = true;\n }\n get sizedClass() {\n return isPresent(this.width);\n }\n get flexBasisStyle() {\n return this.width;\n }\n }\n TreeListSpacerComponent.ɵfac = function TreeListSpacerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TreeListSpacerComponent)();\n };\n TreeListSpacerComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TreeListSpacerComponent,\n selectors: [[\"kendo-treelist-spacer\"], [\"kendo-treelist-pager-spacer\"]],\n hostVars: 6,\n hostBindings: function TreeListSpacerComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"flex-basis\", ctx.flexBasisStyle);\n i0.ɵɵclassProp(\"k-spacer\", ctx.hostClass)(\"k-spacer-sized\", ctx.sizedClass);\n }\n },\n inputs: {\n width: \"width\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function TreeListSpacerComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return TreeListSpacerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the checkbox for selecting rows in the TreeList. [See example](slug:treelist_row_selection#toc-select-all-checkbox).\n */\nlet CheckboxColumnComponent = /*#__PURE__*/(() => {\n class CheckboxColumnComponent extends ColumnBase {\n constructor(parent) {\n super(parent);\n this.parent = parent;\n /*\n * @hidden\n */\n this.isCheckboxColumn = true;\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n }\n CheckboxColumnComponent.ɵfac = function CheckboxColumnComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CheckboxColumnComponent)(i0.ɵɵdirectiveInject(ColumnBase, 13));\n };\n CheckboxColumnComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CheckboxColumnComponent,\n selectors: [[\"kendo-treelist-checkbox-column\"]],\n contentQueries: function CheckboxColumnComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);\n }\n },\n inputs: {\n showSelectAll: \"showSelectAll\",\n checkChildren: \"checkChildren\",\n expandable: \"expandable\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ColumnBase,\n useExisting: forwardRef(() => CheckboxColumnComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function CheckboxColumnComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return CheckboxColumnComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the drag handle for reordering rows in the TreeList.\n */\nlet RowReorderColumnComponent = /*#__PURE__*/(() => {\n class RowReorderColumnComponent extends ColumnBase {\n constructor(parent) {\n super(parent);\n this.parent = parent;\n /**\n * @hidden\n */\n this.isRowReorderColumn = true;\n }\n }\n RowReorderColumnComponent.ɵfac = function RowReorderColumnComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RowReorderColumnComponent)(i0.ɵɵdirectiveInject(ColumnBase, 13));\n };\n RowReorderColumnComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: RowReorderColumnComponent,\n selectors: [[\"kendo-treelist-rowreorder-column\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ColumnBase,\n useExisting: forwardRef(() => RowReorderColumnComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function RowReorderColumnComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return RowReorderColumnComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the command columns of the TreeList. You have to define the content of the\n * column inside an `` tag. For more information and examples on using the passed fields\n * and the command directives, refer to the article on\n * [editing the TreeList in Angular Reactive Forms]({% slug editing_reactive_forms_treelist %}).\n *\n * Usually, the template contains CRUD command directives such as:\n * - [`EditCommandDirective`]({% slug api_treelist_editcommanddirective %})\n * - [`RemoveCommandDirective`]({% slug api_treelist_removecommanddirective %})\n * - [`CancelCommandDirective`]({% slug api_treelist_cancelcommanddirective %})\n * - [`SaveCommandDirective`]({% slug api_treelist_savecommanddirective %})\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet CommandColumnComponent = /*#__PURE__*/(() => {\n class CommandColumnComponent extends ColumnBase {\n constructor(parent, optionChanges) {\n super(parent, optionChanges);\n this.parent = parent;\n this.isCommand = true;\n }\n get templateRef() {\n return this.template ? this.template.templateRef : undefined;\n }\n }\n CommandColumnComponent.ɵfac = function CommandColumnComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CommandColumnComponent)(i0.ɵɵdirectiveInject(ColumnBase, 13), i0.ɵɵdirectiveInject(OptionChangesService));\n };\n CommandColumnComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CommandColumnComponent,\n selectors: [[\"kendo-treelist-command-column\"]],\n contentQueries: function CommandColumnComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CellTemplateDirective, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: ColumnBase,\n useExisting: forwardRef(() => CommandColumnComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function CommandColumnComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return CommandColumnComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet BaseCommandDirective = /*#__PURE__*/(() => {\n class BaseCommandDirective extends Button {\n constructor(editService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.editService = editService;\n }\n /**\n * @hidden\n */\n get visible() {\n if (this.cellContext) {\n return this.isEdited !== this.readVisible ? '' : 'none';\n }\n }\n get isEdited() {\n return Boolean(this.cellContext && this.editService.isEdited(this.dataItem) && !this.editService.isEditingCell());\n }\n get dataItem() {\n if (this.cellContext) {\n return this.cellContext.viewItem.data;\n }\n }\n /**\n * @hidden\n */\n clickHandler(e) {\n e.preventDefault();\n this.onClick();\n }\n }\n BaseCommandDirective.ɵfac = function BaseCommandDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BaseCommandDirective)(i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n BaseCommandDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BaseCommandDirective,\n selectors: [[\"\", \"kendoTreeListBaseCommand\", \"\"]],\n hostVars: 2,\n hostBindings: function BaseCommandDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function BaseCommandDirective_click_HostBindingHandler($event) {\n return ctx.clickHandler($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"display\", ctx.visible);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c32,\n ngContentSelectors: _c17,\n decls: 5,\n vars: 3,\n consts: [[\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-button-icon k-icon\", 4, \"ngIf\"], [\"class\", \"k-button-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-button-text\"], [\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\"], [1, \"k-button-icon\", \"k-icon\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\"], [1, \"k-button-icon\", 3, \"ngClass\"]],\n template: function BaseCommandDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, BaseCommandDirective_kendo_icon_wrapper_0_Template, 1, 2, \"kendo-icon-wrapper\", 0)(1, BaseCommandDirective_span_1_Template, 2, 1, \"span\", 1)(2, BaseCommandDirective_span_2_Template, 1, 1, \"span\", 2);\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n }\n },\n dependencies: [NgIf, IconWrapperComponent, NgClass],\n encapsulation: 2\n });\n return BaseCommandDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `edit` command of the TreeList. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`edit`]({% slug api_treelist_treelistcomponent %}#toc-edit) event\n * is triggered ([see example](slug:custom_editors_editing_treelist)).\n *\n * When the row is in the `edit` mode, the button with `kendoTreeListEditCommand` is automatically hidden.\n * The directive takes as input the `cellContext` from the cell template.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * ```\n *\n */\nlet EditCommandDirective = /*#__PURE__*/(() => {\n class EditCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = true;\n }\n onClick() {\n if (this.cellContext) {\n this.editService.beginEdit(this.dataItem);\n }\n }\n }\n EditCommandDirective.ɵfac = function EditCommandDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EditCommandDirective)(i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n EditCommandDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: EditCommandDirective,\n selectors: [[\"\", \"kendoTreeListEditCommand\", \"\"]],\n hostVars: 2,\n hostBindings: function EditCommandDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-edit-command\", ctx.commandClass);\n }\n },\n inputs: {\n cellContext: [0, \"kendoTreeListEditCommand\", \"cellContext\"]\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c33,\n ngContentSelectors: _c17,\n decls: 5,\n vars: 3,\n consts: [[\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-button-icon k-icon\", 4, \"ngIf\"], [\"class\", \"k-button-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-button-text\"], [\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\"], [1, \"k-button-icon\", \"k-icon\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\"], [1, \"k-button-icon\", 3, \"ngClass\"]],\n template: function EditCommandDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, EditCommandDirective_kendo_icon_wrapper_0_Template, 1, 2, \"kendo-icon-wrapper\", 0)(1, EditCommandDirective_span_1_Template, 2, 1, \"span\", 1)(2, EditCommandDirective_span_2_Template, 1, 1, \"span\", 2);\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n }\n },\n dependencies: [NgIf, IconWrapperComponent, NgClass],\n encapsulation: 2\n });\n return EditCommandDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `cancel` command of the TreeList. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`cancel`]({% slug api_treelist_treelistcomponent %}#toc-cancel) event\n * is triggered ([see example](slug:custom_editors_editing_treelist)).\n *\n * When the row is not in the `edit` mode, the button with the `kendoTreeListCancelCommand` is automatically hidden.\n * The directive takes as input the `cellContext` from the cell template.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet CancelCommandDirective = /*#__PURE__*/(() => {\n class CancelCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = false;\n }\n onClick() {\n if (this.cellContext) {\n const viewItem = this.cellContext.viewItem;\n this.editService.endEdit(viewItem.data, viewItem.isNew);\n }\n }\n }\n CancelCommandDirective.ɵfac = function CancelCommandDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CancelCommandDirective)(i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n CancelCommandDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CancelCommandDirective,\n selectors: [[\"\", \"kendoTreeListCancelCommand\", \"\"]],\n hostVars: 2,\n hostBindings: function CancelCommandDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-cancel-command\", ctx.commandClass);\n }\n },\n inputs: {\n cellContext: [0, \"kendoTreeListCancelCommand\", \"cellContext\"]\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c34,\n ngContentSelectors: _c17,\n decls: 5,\n vars: 3,\n consts: [[\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-button-icon k-icon\", 4, \"ngIf\"], [\"class\", \"k-button-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-button-text\"], [\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\"], [1, \"k-button-icon\", \"k-icon\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\"], [1, \"k-button-icon\", 3, \"ngClass\"]],\n template: function CancelCommandDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, CancelCommandDirective_kendo_icon_wrapper_0_Template, 1, 2, \"kendo-icon-wrapper\", 0)(1, CancelCommandDirective_span_1_Template, 2, 1, \"span\", 1)(2, CancelCommandDirective_span_2_Template, 1, 1, \"span\", 2);\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n }\n },\n dependencies: [NgIf, IconWrapperComponent, NgClass],\n encapsulation: 2\n });\n return CancelCommandDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `save` command of the TreeList. You can apply this directive to any `button`\n * element inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`save`]({% slug api_treelist_treelistcomponent %}#toc-save) event\n * is triggered ([see example]({% slug editing_treelist %})).\n *\n * When the row is not in the `edit` mode, the button with `kendoTreeListSaveCommand` is automatically hidden.\n * The directive takes as input the `cellContext` from the cell template.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet SaveCommandDirective = /*#__PURE__*/(() => {\n class SaveCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = false;\n }\n onClick() {\n if (this.cellContext) {\n this.editService.save(this.dataItem, this.cellContext.viewItem.isNew);\n }\n }\n }\n SaveCommandDirective.ɵfac = function SaveCommandDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SaveCommandDirective)(i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n SaveCommandDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SaveCommandDirective,\n selectors: [[\"\", \"kendoTreeListSaveCommand\", \"\"]],\n hostVars: 2,\n hostBindings: function SaveCommandDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-save-command\", ctx.commandClass);\n }\n },\n inputs: {\n cellContext: [0, \"kendoTreeListSaveCommand\", \"cellContext\"]\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c35,\n ngContentSelectors: _c17,\n decls: 5,\n vars: 3,\n consts: [[\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-button-icon k-icon\", 4, \"ngIf\"], [\"class\", \"k-button-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-button-text\"], [\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\"], [1, \"k-button-icon\", \"k-icon\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\"], [1, \"k-button-icon\", 3, \"ngClass\"]],\n template: function SaveCommandDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, SaveCommandDirective_kendo_icon_wrapper_0_Template, 1, 2, \"kendo-icon-wrapper\", 0)(1, SaveCommandDirective_span_1_Template, 2, 1, \"span\", 1)(2, SaveCommandDirective_span_2_Template, 1, 1, \"span\", 2);\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n }\n },\n dependencies: [NgIf, IconWrapperComponent, NgClass],\n encapsulation: 2\n });\n return SaveCommandDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `remove` command of the TreeList. You can apply this directive to any `button` element\n * inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n * When an associated button with the directive is clicked, the\n * [`remove` event]({% slug api_treelist_treelistcomponent %}#toc-remove)\n * is triggered ([see example]({% slug editing_reactive_forms_treelist %})).\n *\n * When the row is in the `edit` mode, the button with the `kendoTreeListRemoveCommand` is automatically hidden.\n * The directive takes as input the `cellContext` from the cell template.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet RemoveCommandDirective = /*#__PURE__*/(() => {\n class RemoveCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = true;\n }\n onClick() {\n if (this.cellContext) {\n this.editService.remove(this.dataItem, (this.cellContext.viewItem.parent || {}).data);\n }\n }\n }\n RemoveCommandDirective.ɵfac = function RemoveCommandDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RemoveCommandDirective)(i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n RemoveCommandDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: RemoveCommandDirective,\n selectors: [[\"\", \"kendoTreeListRemoveCommand\", \"\"]],\n hostVars: 2,\n hostBindings: function RemoveCommandDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-remove-command\", ctx.commandClass);\n }\n },\n inputs: {\n cellContext: [0, \"kendoTreeListRemoveCommand\", \"cellContext\"]\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c36,\n ngContentSelectors: _c17,\n decls: 5,\n vars: 3,\n consts: [[\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-button-icon k-icon\", 4, \"ngIf\"], [\"class\", \"k-button-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-button-text\"], [\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\"], [1, \"k-button-icon\", \"k-icon\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\"], [1, \"k-button-icon\", 3, \"ngClass\"]],\n template: function RemoveCommandDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, RemoveCommandDirective_kendo_icon_wrapper_0_Template, 1, 2, \"kendo-icon-wrapper\", 0)(1, RemoveCommandDirective_span_1_Template, 2, 1, \"span\", 1)(2, RemoveCommandDirective_span_2_Template, 1, 1, \"span\", 2);\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n }\n },\n dependencies: [NgIf, IconWrapperComponent, NgClass],\n encapsulation: 2\n });\n return RemoveCommandDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the command for adding a new item to the TreeList. You can apply this directive to any\n * `button` element inside a [`ToolbarTemplate`](slug:toolbartemplate_treelist) or\n * inside a [`CommandColumnComponent`]({% slug api_treelist_commandcolumncomponent %}).\n *\n * When an associated button with the directive is clicked, the\n * [`add`]({% slug api_treelist_treelistcomponent %}#toc-add) event is triggered\n * ([see example](slug:custom_editors_editing_treelist)).\n *\n * When the row is in the `edit mode`, the button with `kendoTreeListAddCommand` is automatically hidden.\n *\n * When added to the command column, the directive takes as input the `cellContext` from the cell template.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nlet AddCommandDirective = /*#__PURE__*/(() => {\n class AddCommandDirective extends BaseCommandDirective {\n constructor(editService, element, renderer, localization, ngZone) {\n super(editService, element, renderer, localization, ngZone);\n this.commandClass = true;\n this.readVisible = true;\n }\n onClick() {\n this.editService.beginAdd(this.dataItem);\n }\n }\n AddCommandDirective.ɵfac = function AddCommandDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AddCommandDirective)(i0.ɵɵdirectiveInject(EditService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n AddCommandDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AddCommandDirective,\n selectors: [[\"\", \"kendoTreeListAddCommand\", \"\"]],\n hostVars: 2,\n hostBindings: function AddCommandDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-add-command\", ctx.commandClass);\n }\n },\n inputs: {\n cellContext: [0, \"kendoTreeListAddCommand\", \"cellContext\"]\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c37,\n ngContentSelectors: _c17,\n decls: 5,\n vars: 3,\n consts: [[\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-button-icon k-icon\", 4, \"ngIf\"], [\"class\", \"k-button-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-button-text\"], [\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\"], [1, \"k-button-icon\", \"k-icon\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\"], [1, \"k-button-icon\", 3, \"ngClass\"]],\n template: function AddCommandDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, AddCommandDirective_kendo_icon_wrapper_0_Template, 1, 2, \"kendo-icon-wrapper\", 0)(1, AddCommandDirective_span_1_Template, 2, 1, \"span\", 1)(2, AddCommandDirective_span_2_Template, 1, 1, \"span\", 2);\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n }\n },\n dependencies: [NgIf, IconWrapperComponent, NgClass],\n encapsulation: 2\n });\n return AddCommandDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\nconst stringOperators = localizeOperators({\n \"filterContainsOperator\": \"contains\",\n \"filterNotContainsOperator\": \"doesnotcontain\",\n \"filterEqOperator\": \"eq\",\n \"filterNotEqOperator\": \"neq\",\n \"filterStartsWithOperator\": \"startswith\",\n \"filterEndsWithOperator\": \"endswith\",\n \"filterIsNullOperator\": \"isnull\",\n \"filterIsNotNullOperator\": \"isnotnull\",\n \"filterIsEmptyOperator\": \"isempty\",\n \"filterIsNotEmptyOperator\": \"isnotempty\"\n});\n/**\n * @hidden\n */\nlet AutoCompleteFilterCellComponent = /*#__PURE__*/(() => {\n class AutoCompleteFilterCellComponent extends BaseFilterCellComponent {\n constructor(filterService, column, localization) {\n super(filterService);\n this.localization = localization;\n this.showOperators = true;\n this.defaultOperators = stringOperators(this.localization);\n this.column = column;\n }\n set valueField(value) {\n this._valueField = value;\n }\n get valueField() {\n return this._valueField ? this._valueField : this.column.field;\n }\n get currentFilter() {\n return this.filterByField(this.column.field);\n }\n get currentOperator() {\n return this.currentFilter ? this.currentFilter.operator : \"contains\";\n }\n /**\n * @hidden\n */\n get columnLabel() {\n const localizationMsg = this.localization.get('filterInputLabel') || '';\n const columnName = this.column.title || this.column.field;\n return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);\n }\n }\n AutoCompleteFilterCellComponent.ɵfac = function AutoCompleteFilterCellComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutoCompleteFilterCellComponent)(i0.ɵɵdirectiveInject(FilterService), i0.ɵɵdirectiveInject(ColumnComponent), i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n AutoCompleteFilterCellComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AutoCompleteFilterCellComponent,\n selectors: [[\"kendo-treelist-autocomplete-filter-cell\"]],\n inputs: {\n showOperators: \"showOperators\",\n column: \"column\",\n filter: \"filter\",\n data: \"data\",\n valueField: \"valueField\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 8,\n consts: [[3, \"column\", \"filter\", \"operators\", \"showOperators\"], [\"kendoFilterInput\", \"\", 3, \"data\", \"columnLabel\", \"valueField\", \"value\"]],\n template: function AutoCompleteFilterCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"kendo-treelist-filter-wrapper-cell\", 0);\n i0.ɵɵelement(1, \"kendo-autocomplete\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"column\", ctx.column)(\"filter\", ctx.filter)(\"operators\", ctx.operators)(\"showOperators\", ctx.showOperators);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"data\", ctx.data)(\"columnLabel\", ctx.columnLabel)(\"valueField\", ctx.valueField)(\"value\", ctx.currentFilter == null ? null : ctx.currentFilter.value);\n }\n },\n dependencies: [FilterCellWrapperComponent, AutoCompleteComponent, FilterInputDirective],\n encapsulation: 2\n });\n return AutoCompleteFilterCellComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `Contains` (**Contains**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet ContainsFilterOperatorComponent = /*#__PURE__*/(() => {\n class ContainsFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"contains\", localization);\n }\n }\n ContainsFilterOperatorComponent.ɵfac = function ContainsFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ContainsFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n ContainsFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ContainsFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-contains-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => ContainsFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function ContainsFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return ContainsFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `DoesNotContain` (**Does not contain**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet DoesNotContainFilterOperatorComponent = /*#__PURE__*/(() => {\n class DoesNotContainFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"doesnotcontain\", localization);\n }\n }\n DoesNotContainFilterOperatorComponent.ɵfac = function DoesNotContainFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DoesNotContainFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n DoesNotContainFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DoesNotContainFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-not-contains-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => DoesNotContainFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function DoesNotContainFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return DoesNotContainFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `EndsWith` (**Ends with**) string filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet EndsWithFilterOperatorComponent = /*#__PURE__*/(() => {\n class EndsWithFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"endswith\", localization);\n }\n }\n EndsWithFilterOperatorComponent.ɵfac = function EndsWithFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EndsWithFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n EndsWithFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: EndsWithFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-endswith-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EndsWithFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function EndsWithFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return EndsWithFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `Equal` (**Is equal to**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet EqualFilterOperatorComponent = /*#__PURE__*/(() => {\n class EqualFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"eq\", localization);\n }\n }\n EqualFilterOperatorComponent.ɵfac = function EqualFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EqualFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n EqualFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: EqualFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-eq-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => EqualFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function EqualFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return EqualFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `IsEmpty` (**Is empty**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet IsEmptyFilterOperatorComponent = /*#__PURE__*/(() => {\n class IsEmptyFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"isempty\", localization);\n }\n }\n IsEmptyFilterOperatorComponent.ɵfac = function IsEmptyFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || IsEmptyFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n IsEmptyFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: IsEmptyFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-isempty-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsEmptyFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function IsEmptyFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return IsEmptyFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `IsNotEmpty` (**Is not empty**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet IsNotEmptyFilterOperatorComponent = /*#__PURE__*/(() => {\n class IsNotEmptyFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"isnotempty\", localization);\n }\n }\n IsNotEmptyFilterOperatorComponent.ɵfac = function IsNotEmptyFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || IsNotEmptyFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n IsNotEmptyFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: IsNotEmptyFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-isnotempty-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotEmptyFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function IsNotEmptyFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return IsNotEmptyFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `IsNotNull` (**Is not null**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet IsNotNullFilterOperatorComponent = /*#__PURE__*/(() => {\n class IsNotNullFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"isnotnull\", localization);\n }\n }\n IsNotNullFilterOperatorComponent.ɵfac = function IsNotNullFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || IsNotNullFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n IsNotNullFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: IsNotNullFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-isnotnull-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNotNullFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function IsNotNullFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return IsNotNullFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `IsNull` (**Is null**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet IsNullFilterOperatorComponent = /*#__PURE__*/(() => {\n class IsNullFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"isnull\", localization);\n }\n }\n IsNullFilterOperatorComponent.ɵfac = function IsNullFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || IsNullFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n IsNullFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: IsNullFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-isnull-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => IsNullFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function IsNullFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return IsNullFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `NotEqual` (**Is not equal to**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet NotEqualFilterOperatorComponent = /*#__PURE__*/(() => {\n class NotEqualFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"neq\", localization);\n }\n }\n NotEqualFilterOperatorComponent.ɵfac = function NotEqualFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NotEqualFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n NotEqualFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NotEqualFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-neq-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => NotEqualFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function NotEqualFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return NotEqualFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `StartsWith` (**Starts with**) filter operator. [See example](slug:filtering_treelist#toc-using-the-built-in-directives).\n * For more information and examples, refer to the article on setting [default filter operators](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet StartsWithFilterOperatorComponent = /*#__PURE__*/(() => {\n class StartsWithFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"startswith\", localization);\n }\n }\n StartsWithFilterOperatorComponent.ɵfac = function StartsWithFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || StartsWithFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n StartsWithFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StartsWithFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-startswith-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => StartsWithFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function StartsWithFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return StartsWithFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Represents the `Greater` (**Is greater than**) [numeric filter](slug:filtering_treelist#toc-numeric-filter) operator.\n * [See example](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet GreaterFilterOperatorComponent = /*#__PURE__*/(() => {\n class GreaterFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"gt\", localization);\n }\n }\n GreaterFilterOperatorComponent.ɵfac = function GreaterFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GreaterFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n GreaterFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GreaterFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-gt-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function GreaterFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return GreaterFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `GreaterOrEqualTo` (**Is greater than or equal to**) [numeric filter](slug:filtering_treelist#toc-numeric-filter) operator.\n * [See example](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet GreaterOrEqualToFilterOperatorComponent = /*#__PURE__*/(() => {\n class GreaterOrEqualToFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"gte\", localization);\n }\n }\n GreaterOrEqualToFilterOperatorComponent.ɵfac = function GreaterOrEqualToFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GreaterOrEqualToFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n GreaterOrEqualToFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GreaterOrEqualToFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-gte-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => GreaterOrEqualToFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function GreaterOrEqualToFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return GreaterOrEqualToFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `Less` (**Is less than**) [numeric filter](slug:filtering_treelist#toc-numeric-filter) operator.\n * [See example](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet LessFilterOperatorComponent = /*#__PURE__*/(() => {\n class LessFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"lt\", localization);\n }\n }\n LessFilterOperatorComponent.ɵfac = function LessFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LessFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n LessFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LessFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-lt-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function LessFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return LessFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Represents the `LessOrEqualTo` (**Is less than or equal to**) [numeric filter](slug:filtering_treelist#toc-numeric-filter) operator.\n * [See example](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet LessOrEqualToFilterOperatorComponent = /*#__PURE__*/(() => {\n class LessOrEqualToFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"lte\", localization);\n }\n }\n LessOrEqualToFilterOperatorComponent.ɵfac = function LessOrEqualToFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LessOrEqualToFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n LessOrEqualToFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LessOrEqualToFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-lte-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => LessOrEqualToFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function LessOrEqualToFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return LessOrEqualToFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `Greater` (**Is after**) [date filter](slug:filtering_treelist#toc-date-filter) operator.\n * [See example](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet AfterFilterOperatorComponent = /*#__PURE__*/(() => {\n class AfterFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"after\", localization);\n }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: \"gt\"\n };\n }\n }\n AfterFilterOperatorComponent.ɵfac = function AfterFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AfterFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n AfterFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AfterFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-after-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function AfterFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return AfterFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `GreaterOrEqualTo` (**Is after or equal to**) [date filter](slug:filtering_treelist#toc-date-filter) operator.\n * [See example](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet AfterEqFilterOperatorComponent = /*#__PURE__*/(() => {\n class AfterEqFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"after-eq\", localization);\n }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: \"gte\"\n };\n }\n }\n AfterEqFilterOperatorComponent.ɵfac = function AfterEqFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AfterEqFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n AfterEqFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AfterEqFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-after-eq-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => AfterEqFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function AfterEqFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return AfterEqFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `LessOrEqualTo` (**Is before or equal to**) [date filter](slug:filtering_treelist#toc-date-filter) operator.\n * [See example](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet BeforeEqFilterOperatorComponent = /*#__PURE__*/(() => {\n class BeforeEqFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"before-eq\", localization);\n }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: \"lte\"\n };\n }\n }\n BeforeEqFilterOperatorComponent.ɵfac = function BeforeEqFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BeforeEqFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n BeforeEqFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BeforeEqFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-before-eq-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeEqFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function BeforeEqFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return BeforeEqFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `Less than` (**Is before**) [date filter](slug:filtering_treelist#toc-date-filter) operator.\n * [See example](slug:filter_row_treelist#toc-setting-the-default-filter-operator).\n */\nlet BeforeFilterOperatorComponent = /*#__PURE__*/(() => {\n class BeforeFilterOperatorComponent extends FilterOperatorBase {\n constructor(localization) {\n super(\"before\", localization);\n }\n /**\n * @hidden\n */\n toJSON() {\n return {\n text: this.text,\n value: \"lt\"\n };\n }\n }\n BeforeFilterOperatorComponent.ɵfac = function BeforeFilterOperatorComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BeforeFilterOperatorComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService));\n };\n BeforeFilterOperatorComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BeforeFilterOperatorComponent,\n selectors: [[\"kendo-treelist-filter-before-operator\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: FilterOperatorBase,\n useExisting: forwardRef(() => BeforeFilterOperatorComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function BeforeFilterOperatorComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return BeforeFilterOperatorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the component for selecting columns in the TreeList. To enable the user to show or hide columns,\n * add the component inside a [`ToolbarTemplate`]({% slug api_treelist_toolbartemplatedirective %}) directive.\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * ```\n */\nlet ColumnChooserComponent = /*#__PURE__*/(() => {\n class ColumnChooserComponent {\n constructor(localization, columnInfoService, popupService, ngZone, renderer, changeDetector) {\n this.localization = localization;\n this.columnInfoService = columnInfoService;\n this.popupService = popupService;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.changeDetector = changeDetector;\n /**\n * Specifies if the changes in the visibility of the column will be immediately applied.\n * @default false\n */\n this.autoSync = false;\n /**\n * Specifies if all columns can be hidden.\n * @default true\n */\n this.allowHideAll = true;\n this.columnsIcon = columnsIcon;\n }\n get columns() {\n return this.columnInfoService.leafNamedColumns;\n }\n ngOnDestroy() {\n this.close();\n }\n /**\n * @hidden\n */\n toggle(anchor, template) {\n if (!this.popupRef) {\n const direction = this.localization.rtl ? 'right' : 'left';\n this.popupRef = this.popupService.open({\n anchor: anchor.element,\n content: template,\n positionMode: 'absolute',\n anchorAlign: {\n vertical: 'bottom',\n horizontal: direction\n },\n popupAlign: {\n vertical: 'top',\n horizontal: direction\n }\n });\n this.renderer.setAttribute(this.popupRef.popupElement, 'dir', this.localization.rtl ? 'rtl' : 'ltr');\n if (!isDocumentAvailable()) {\n return;\n }\n this.ngZone.runOutsideAngular(() => this.closeClick = this.renderer.listen('document', 'click', ({\n target\n }) => {\n if (!closest(target, node => node === this.popupRef.popupElement || node === anchor.element)) {\n this.close();\n }\n }));\n } else {\n this.close();\n }\n }\n /**\n * @hidden\n */\n onApply(changed) {\n this.close();\n if (changed.length) {\n this.changeDetector.markForCheck();\n this.columnInfoService.changeVisibility(changed);\n }\n }\n /**\n * @hidden\n */\n onChange(changed) {\n this.changeDetector.markForCheck();\n this.columnInfoService.changeVisibility(changed);\n }\n close() {\n if (this.popupRef) {\n this.popupRef.close();\n this.popupRef = null;\n this.changeDetector.markForCheck();\n }\n this.detachClose();\n }\n detachClose() {\n if (this.closeClick) {\n this.closeClick();\n this.closeClick = null;\n }\n }\n }\n ColumnChooserComponent.ɵfac = function ColumnChooserComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ColumnChooserComponent)(i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(ColumnInfoService), i0.ɵɵdirectiveInject(i1.PopupService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n ColumnChooserComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnChooserComponent,\n selectors: [[\"kendo-treelist-column-chooser\"]],\n inputs: {\n autoSync: \"autoSync\",\n allowHideAll: \"allowHideAll\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 2,\n consts: [[\"anchor\", \"\"], [\"template\", \"\"], [\"kendoButton\", \"\", \"type\", \"button\", \"fillMode\", \"flat\", \"icon\", \"columns\", 3, \"click\", \"svgIcon\"], [1, \"k-column-chooser-title\"], [3, \"apply\", \"columnChange\", \"columns\", \"applyText\", \"resetText\", \"autoSync\", \"allowHideAll\"]],\n template: function ColumnChooserComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 2, 0);\n i0.ɵɵlistener(\"click\", function ColumnChooserComponent_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const anchor_r2 = i0.ɵɵreference(1);\n const template_r3 = i0.ɵɵreference(3);\n return i0.ɵɵresetView(ctx.toggle(anchor_r2, template_r3));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, ColumnChooserComponent_ng_template_2_Template, 3, 6, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"svgIcon\", ctx.columnsIcon);\n i0.ɵɵattribute(\"title\", ctx.localization.get(\"columns\"));\n }\n },\n dependencies: [ButtonComponent, ColumnListComponent],\n encapsulation: 2\n });\n return ColumnChooserComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Arguments for the `excelExport` event. [See example](slug:excelexport_treelist#toc-customizing-generated-workbooks).\n */\nclass ExcelExportEvent extends PreventableEvent {\n constructor(workbook) {\n super();\n this.workbook = workbook;\n }\n}\nconst hierarchyData = view => {\n const data = view.data;\n const levels = {};\n const aggregates = {};\n const items = [];\n let depth = 0;\n for (let idx = 0, dataIndex = 0; idx < data.length; idx++) {\n const item = data[idx];\n if (item.type === 'data') {\n items.push(item.data);\n levels[dataIndex] = item.level;\n depth = Math.max(depth, item.level);\n dataIndex++;\n } else {\n aggregates[item.parentIndex] = item.aggregates;\n }\n }\n return {\n itemId: (_item, idx) => idx,\n itemLevel: (_item, idx) => levels[idx],\n depth: depth + 1,\n aggregates,\n data: items\n };\n};\nconst toExcelColumn = column => {\n return {\n title: column.title,\n field: column.field,\n locked: Boolean(column.locked),\n width: column.width,\n level: column.level,\n hidden: !column.isVisible,\n footerTemplate: column.footerTemplate\n };\n};\nconst toExcelColumns = columns => {\n const result = [];\n sortColumns(columns).forEach(column => {\n if (column.isSpanColumn) {\n result.push(...toExcelColumns(column.childrenArray));\n } else {\n const excelColumn = toExcelColumn(column);\n if (column.isColumnGroup) {\n excelColumn.children = [excelColumn].concat(toExcelColumns(column.childrenArray));\n }\n result.push(excelColumn);\n }\n });\n return result;\n};\nconst componentColumns = component => {\n const columns = toExcelColumns(component.columns.toArray());\n return orderBy(columns, [{\n field: 'locked',\n dir: 'desc'\n }]);\n};\n/**\n * Configures the settings for the export of TreeList in Excel ([see example]({% slug excelexport_treelist %})).\n */\nlet ExcelComponent = /*#__PURE__*/(() => {\n class ExcelComponent {\n constructor(excelService, localization, zone) {\n this.excelService = excelService;\n this.localization = localization;\n this.zone = zone;\n /**\n * Specifies the file name of the exported Excel file.\n * @default \"Export.xlsx\"\n */\n this.fileName = 'Export.xlsx';\n /**\n * Specifies if export should include all pages\n * @default true\n */\n this.allPages = true;\n /**\n * Specifies if the export should expand all items or should use the current TreeList state.\n * @default true\n */\n this.expandAll = true;\n /**\n * @hidden\n */\n this.columns = new QueryList();\n this.saveSubscription = excelService.saveToExcel.subscribe(this.save.bind(this));\n }\n ngOnDestroy() {\n this.saveSubscription.unsubscribe();\n if (this.dataSubscription) {\n this.dataSubscription.unsubscribe();\n }\n }\n save(component) {\n const result = this.fetchData ? this.fetchData(component) : null;\n this.excelService.toggleLoading(true);\n this.zone.runOutsideAngular(() => {\n if (result && isObservable(result.data)) {\n this.dataSubscription = result.data.pipe(take(1)).subscribe(data => {\n this.dataSubscription = null;\n this.exportData(component, {\n data: data,\n fetchChildren: result.fetchChildren,\n hasChildren: result.hasChildren\n });\n });\n } else {\n // allow the loading to be shown\n setTimeout(() => {\n this.exportData(component, result);\n });\n }\n });\n }\n exportData(component, result) {\n const viewOptions = result ? {\n fields: result,\n expandState: this.expandAll ? EXPANDED_STATE : component.expandStateService\n } : this.componentViewOptions(component);\n ViewCollection.loadView(viewOptions).subscribe(view => {\n if (!view) {\n return;\n }\n const hierarchy = hierarchyData(view);\n const options = workbookOptions({\n columns: this.columns.length ? this.columns : componentColumns(component),\n data: hierarchy.data,\n aggregates: hierarchy.aggregates,\n filterable: this.filterable,\n creator: this.creator,\n date: this.date,\n rtl: this.localization.rtl,\n collapsible: this.collapsible,\n hierarchy: hierarchy,\n paddingCellOptions: this.paddingCellOptions\n });\n const args = new ExcelExportEvent(options);\n if (hasObservers(component.excelExport)) {\n this.zone.run(() => {\n component.excelExport.emit(args);\n });\n }\n this.excelService.toggleLoading(false);\n if (!args.isDefaultPrevented()) {\n this.saveFile(options);\n }\n });\n }\n saveFile(options) {\n toDataURL(options).then(dataURL => {\n saveAs(dataURL, this.fileName, {\n forceProxy: this.forceProxy,\n proxyURL: this.proxyURL\n });\n });\n }\n componentViewOptions(component) {\n return {\n fields: Object.assign(component.viewFieldAccessor(), {\n pageable: !this.allPages,\n skip: this.allPages ? 0 : component.skip\n }),\n expandState: !this.expandAll || !this.allPages && component.pageable ? component.expandStateService : EXPANDED_STATE,\n loaded: new Map(component.view.loaded)\n };\n }\n }\n ExcelComponent.ɵfac = function ExcelComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ExcelComponent)(i0.ɵɵdirectiveInject(ExcelService), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n ExcelComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ExcelComponent,\n selectors: [[\"kendo-treelist-excel\"]],\n contentQueries: function ExcelComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, ColumnBase$1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columns = _t);\n }\n },\n inputs: {\n fileName: \"fileName\",\n filterable: \"filterable\",\n creator: \"creator\",\n date: \"date\",\n forceProxy: \"forceProxy\",\n proxyURL: \"proxyURL\",\n fetchData: \"fetchData\",\n collapsible: \"collapsible\",\n allPages: \"allPages\",\n expandAll: \"expandAll\",\n paddingCellOptions: \"paddingCellOptions\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function ExcelComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return ExcelComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `export-to-Excel` command of the TreeList. You can apply this\n * directive to any `button` element inside a\n * [`ToolbarTemplate`](slug:toolbartemplate_treelist).\n * When the user clicks a button associated with the directive, the\n * [`excelExport`]({% slug api_treelist_treelistcomponent %}#toc-excelexport) event\n * fires ([see example]({% slug excelexport_treelist %})).\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet ExcelCommandDirective = /*#__PURE__*/(() => {\n class ExcelCommandDirective extends Button {\n constructor(excelService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.excelService = excelService;\n this.ngZone = ngZone;\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n this.excelService.exportClick.emit();\n }\n /**\n * @hidden\n */\n get excelClass() {\n return true;\n }\n }\n ExcelCommandDirective.ɵfac = function ExcelCommandDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ExcelCommandDirective)(i0.ɵɵdirectiveInject(ExcelService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n ExcelCommandDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ExcelCommandDirective,\n selectors: [[\"\", \"kendoTreeListExcelCommand\", \"\"]],\n hostVars: 2,\n hostBindings: function ExcelCommandDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function ExcelCommandDirective_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-excel\", ctx.excelClass);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c38,\n ngContentSelectors: _c17,\n decls: 5,\n vars: 3,\n consts: [[\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-button-icon k-icon\", 4, \"ngIf\"], [\"class\", \"k-button-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-button-text\"], [\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\"], [1, \"k-button-icon\", \"k-icon\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\"], [1, \"k-button-icon\", 3, \"ngClass\"]],\n template: function ExcelCommandDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, ExcelCommandDirective_kendo_icon_wrapper_0_Template, 1, 2, \"kendo-icon-wrapper\", 0)(1, ExcelCommandDirective_span_1_Template, 2, 1, \"span\", 1)(2, ExcelCommandDirective_span_2_Template, 1, 1, \"span\", 2);\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n }\n },\n dependencies: [NgIf, IconWrapperComponent, NgClass],\n encapsulation: 2\n });\n return ExcelCommandDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the Kendo UI PDFMargin component for Angular.\n * The supported units are:\n * `\"mm\"`\n * `\"cm\"`\n * `\"in\"`\n * `\"pt\"` (default).\n * Numbers are considered to be points (`\"pt\"`).\n */\nlet PDFMarginComponent = /*#__PURE__*/(() => {\n class PDFMarginComponent extends PDFExportMarginComponent {}\n PDFMarginComponent.ɵfac = /* @__PURE__ */(() => {\n let ɵPDFMarginComponent_BaseFactory;\n return function PDFMarginComponent_Factory(__ngFactoryType__) {\n return (ɵPDFMarginComponent_BaseFactory || (ɵPDFMarginComponent_BaseFactory = i0.ɵɵgetInheritedFactory(PDFMarginComponent)))(__ngFactoryType__ || PDFMarginComponent);\n };\n })();\n PDFMarginComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PDFMarginComponent,\n selectors: [[\"kendo-treelist-pdf-margin\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function PDFMarginComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return PDFMarginComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the PDF page template of the TreeList that helps to customize the PDF pages. To define a page template,\n * nest an `` tag with the `kendoTreeListPDFTemplate` directive inside ``.\n *\n * The template context provides the following fields:\n * - `pageNumber`—Defines PDF page number.\n * - `totalPages`—Defines the total number of PDF pages.\n *\n * @example\n * ```html\n * \n * \n *
\n * Page {{ pageNum }} of {{ totalPages }}\n *
\n *
\n * \n * ```\n */\nlet PDFTemplateDirective = /*#__PURE__*/(() => {\n class PDFTemplateDirective extends PDFExportTemplateDirective {\n constructor(templateRef) {\n super(templateRef);\n }\n }\n PDFTemplateDirective.ɵfac = function PDFTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PDFTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n PDFTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PDFTemplateDirective,\n selectors: [[\"\", \"kendoTreeListPDFTemplate\", \"\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return PDFTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst HEADER_CLASS = 'k-grid-header';\n/**\n * @hidden\n */\nconst FOOTER_CLASS = 'k-grid-footer';\nconst GRID_LIST = 'KENDO-TREELIST-LIST';\nconst TABLE = 'TABLE';\nconst matchesList = matchesNodeName(GRID_LIST);\nconst matchesTable = matchesNodeName(TABLE);\nconst suffix = locked => locked ? 'locked' : 'wrap';\n/**\n * @hidden\n */\nclass TreeListQuery {\n constructor(element) {\n this.element = element;\n this.list = findElement(element, matchesList);\n }\n content(locked) {\n return findElement(this.list, matchesClasses(`k-grid-content${locked ? '-locked' : ''}`));\n }\n header(locked) {\n this.headerWrap = this.headerWrap || findElement(this.element, matchesClasses(HEADER_CLASS));\n return findElement(this.headerWrap, matchesClasses(`${HEADER_CLASS}-${suffix(locked)}`));\n }\n footer(locked) {\n this.footerWrap = this.footerWrap || findElement(this.element, matchesClasses(FOOTER_CLASS));\n return findElement(this.footerWrap, matchesClasses(`${FOOTER_CLASS}-${suffix(locked)}`));\n }\n table() {\n return findElement(this.element, matchesTable);\n }\n}\nconst FIRST_CLASS = 'k-first';\nconst INPUTS = ['input', 'select', 'textarea', 'option'];\n/** @hidden */\nconst cloneNode = node => {\n const clone = node.cloneNode(false);\n if (node._kendoExportVisual) {\n clone._kendoExportVisual = node._kendoExportVisual;\n }\n if (INPUTS.indexOf(String(node.nodeName).toLowerCase()) >= 0) {\n clone.removeAttribute(\"id\");\n clone.removeAttribute(\"name\");\n clone.value = node.value;\n clone.checked = node.checked;\n clone.selected = node.selected;\n }\n let child = node.firstChild;\n while (child) {\n clone.appendChild(cloneNode(child));\n child = child.nextSibling;\n }\n return clone;\n};\nconst appendNodes = (element, nodes) => {\n const length = nodes.length;\n for (let idx = 0; idx < length; idx++) {\n element.appendChild(cloneNode(nodes[idx]));\n }\n};\nconst wrapTable = table => {\n if (!isDocumentAvailable()) {\n return;\n }\n const wrapper = document.createElement('div');\n wrapper.className = 'k-grid k-grid-md';\n wrapper.appendChild(table);\n return wrapper;\n};\nconst createTableElement = sources => {\n const sourceCount = sources.length;\n const element = cloneNode(sources[0]);\n const rowsCount = element.rows.length;\n if (sourceCount > 1) {\n for (let rowIdx = 0; rowIdx < rowsCount; rowIdx++) {\n for (let sourceIdx = 1; sourceIdx < sourceCount; sourceIdx++) {\n appendNodes(element.rows[rowIdx], sources[sourceIdx].rows[rowIdx].cells);\n }\n }\n }\n return element;\n};\nconst setFirstCellClass = (header, headers) => {\n if (headers.length > 1 && header.rows.length > 1) {\n for (let idx = 1; idx < header.rows.length; idx++) {\n const firstCellIndex = headers[0].rows[idx].cells.length;\n const cell = header.rows[idx].cells[firstCellIndex];\n if (String(cell.className).indexOf(FIRST_CLASS) === -1) {\n cell.className += ` ${FIRST_CLASS}`;\n }\n }\n }\n};\nconst createTable = (colGroups, headers, bodies, footers) => {\n const table = document.createElement('table');\n table.classList.add('k-table', 'k-table-md');\n const colGroup = colGroups[0].cloneNode(true);\n for (let idx = 1; idx < colGroups.length; idx++) {\n appendNodes(colGroup, colGroups[idx].querySelectorAll('col'));\n }\n const header = createTableElement(headers);\n const body = createTableElement(bodies);\n setFirstCellClass(header, headers);\n table.appendChild(colGroup);\n table.appendChild(header);\n table.appendChild(body);\n if (footers.length) {\n const footer = createTableElement(footers);\n table.appendChild(footer);\n }\n return wrapTable(table);\n};\n/**\n * @hidden\n */\nconst exportElement = wrapper => {\n const query = new TreeListQuery(wrapper);\n const content = query.content();\n let result;\n if (content) {\n const colGroups = [content.querySelector('colgroup')];\n const headers = [query.header().querySelector('thead')];\n const bodies = [content.querySelector('tbody')];\n const footer = query.footer();\n const footers = [];\n if (footer) {\n footers.push(footer.querySelector('tfoot'));\n }\n const lockedContent = query.content(true);\n if (lockedContent) {\n colGroups.unshift(lockedContent.querySelector('colgroup'));\n headers.unshift(query.header(true).querySelector('thead'));\n bodies.unshift(lockedContent.querySelector('tbody'));\n if (footer) {\n footers.unshift(query.footer(true).querySelector('tfoot'));\n }\n }\n result = createTable(colGroups, headers, bodies, footers);\n } else {\n result = wrapTable(query.table().cloneNode(true));\n }\n return result;\n};\nconst createElement = (tagName, className) => {\n if (!isDocumentAvailable()) {\n return;\n }\n const element = document.createElement(tagName);\n if (className) {\n element.className = className;\n }\n return element;\n};\nconst createDiv = className => {\n return createElement('div', className);\n};\n/**\n * Configures the settings for the export of TreeList in PDF ([see example]({% slug pdfexport_treelist %})).\n */\nlet PDFComponent = /*#__PURE__*/(() => {\n class PDFComponent extends PDFExportComponent {\n constructor(pdfService, suspendService, ngZone, element) {\n super(element);\n this.pdfService = pdfService;\n this.suspendService = suspendService;\n this.ngZone = ngZone;\n this.columns = new QueryList();\n this.saveSubscription = pdfService.savePDF.subscribe(this.savePDF.bind(this));\n this.drawSubscription = pdfService.drawPDF.subscribe(this.drawPDF.bind(this));\n this.reset = this.reset.bind(this);\n this.draw = this.draw.bind(this);\n }\n ngOnDestroy() {\n this.saveSubscription.unsubscribe();\n this.drawSubscription.unsubscribe();\n this.reset();\n }\n savePDF(component) {\n this.createPDF(component, this.draw);\n }\n drawPDF({\n component,\n promise\n }) {\n this.createPDF(component, () => {\n this.createExportGroup(promise);\n });\n }\n createPDF(component, callback) {\n const pageSize = component.pageSize;\n const total = component.view.totalVisible;\n const columns = this.columns.toArray();\n if (columns.length) {\n this.originalColumns = component.columns.toArray();\n }\n this.component = component;\n this.suspendService.scroll = true;\n this.pdfService.exporting = true;\n this.initProgress();\n this.renderAllPages = this.allPages && pageSize < total;\n if (this.renderAllPages) {\n this.skip = component.skip;\n this.pageSize = pageSize;\n this.changePage(0, total, callback, columns);\n } else if (columns.length || component.virtualColumns) {\n this.changeColumns(columns, callback);\n } else {\n callback();\n }\n }\n initProgress() {\n const wrapperElement = this.component.wrapper.nativeElement;\n const progress = this.progress = createDiv('k-loading-pdf-mask');\n const overlay = cloneNode(wrapperElement);\n progress.appendChild(overlay);\n progress.appendChild(createDiv('k-loading-color'));\n progress.appendChild(createElement('span', 'k-i-loading k-icon'));\n this.originalHeight = wrapperElement.style.height;\n this.originalOverflow = wrapperElement.style.overflow;\n wrapperElement.style.height = wrapperElement.offsetHeight + 'px';\n wrapperElement.style.overflow = 'hidden';\n wrapperElement.appendChild(progress);\n this.applyScroll(overlay);\n }\n applyScroll(overlay) {\n const query = new TreeListQuery(this.component.wrapper.nativeElement);\n const content = query.content();\n if (content) {\n const overlayQuery = new TreeListQuery(overlay);\n const overlayContent = overlayQuery.content();\n overlayContent.scrollTop = content.scrollTop;\n overlayContent.scrollLeft = content.scrollLeft;\n overlayQuery.header().scrollLeft = query.header().scrollLeft;\n const footer = query.footer();\n if (footer) {\n overlayQuery.footer().scrollLeft = footer.scrollLeft;\n }\n const lockedContent = query.content(true);\n if (lockedContent) {\n const overlayLockedContent = overlayQuery.content(true);\n overlayLockedContent.scrollTop = lockedContent.scrollTop;\n overlayLockedContent.scrollLeft = lockedContent.scrollLeft;\n }\n }\n }\n draw() {\n this.createExportElement(element => {\n this.save(element, this.fileName);\n });\n }\n createExportGroup(promise) {\n this.createExportElement(element => {\n this.exportElement(element).then(group => promise.resolve(group));\n });\n }\n createExportElement(callback) {\n this.ngZone.runOutsideAngular(() => {\n const container = this.container = createDiv('k-grid-pdf-export-element');\n const element = exportElement(this.component.wrapper.nativeElement);\n container.appendChild(element);\n document.body.appendChild(container);\n callback(element);\n });\n }\n drawOptions() {\n const options = super.drawOptions();\n options._destructive = true;\n return options;\n }\n cleanup() {\n super.cleanup();\n this.pdfService.exporting = false;\n if (this.component) {\n const originalColumns = this.originalColumns;\n delete this.originalColumns;\n if (this.renderAllPages) {\n this.changePage(this.skip, this.pageSize, this.reset, originalColumns);\n } else if (originalColumns || this.component.virtualColumns) {\n this.changeColumns(originalColumns, this.reset);\n } else {\n this.reset();\n }\n } else {\n this.reset();\n }\n this.removeContainer();\n }\n removeContainer() {\n if (this.container) {\n document.body.removeChild(this.container);\n delete this.container;\n }\n }\n changePage(skip, _take, callback, columns) {\n this.ngZone.run(() => {\n const onPageChanged = () => {\n if (columns && columns.length || this.component.virtualColumns) {\n this.changeColumns(columns, callback);\n } else {\n this.onStable(callback);\n }\n };\n this.component.notifyPageChange('pdf', {\n skip: skip,\n take: _take\n });\n if (this.component.view.loading) {\n this.component.view.dataLoaded.pipe(take(1)).subscribe(onPageChanged);\n } else {\n onPageChanged();\n }\n });\n }\n changeColumns(columns, callback) {\n this.ngZone.run(() => {\n this.onStable(callback);\n if (columns && columns.length) {\n this.component.columns.reset(columns);\n }\n });\n }\n reset() {\n this.suspendService.scroll = false;\n this.renderAllPages = false;\n if (!this.component) {\n return;\n }\n const wrapperElement = this.component.wrapper.nativeElement;\n wrapperElement.removeChild(this.progress);\n wrapperElement.style.height = this.originalHeight;\n wrapperElement.style.overflow = this.originalOverflow;\n delete this.progress;\n delete this.component;\n }\n onStable(callback) {\n this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(callback);\n }\n }\n PDFComponent.ɵfac = function PDFComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PDFComponent)(i0.ɵɵdirectiveInject(PDFService), i0.ɵɵdirectiveInject(SuspendService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n PDFComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PDFComponent,\n selectors: [[\"kendo-treelist-pdf\"]],\n contentQueries: function PDFComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PDFMarginComponent, 5);\n i0.ɵɵcontentQuery(dirIndex, PDFTemplateDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, ColumnBase, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.marginComponent = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pageTemplateDirective = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columns = _t);\n }\n },\n inputs: {\n allPages: \"allPages\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function PDFComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return PDFComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the `export-to-PDF` command of the TreeList.\n * You can apply this directive to any `button` element inside a\n * [`ToolbarTemplate`](slug:toolbartemplate_treelist).\n * When the user clicks a button that is associated with the directive, the\n * [`pdfExport`]({% slug api_treelist_treelistcomponent %}#toc-pdfexport) event\n * fires ([see example]({% slug pdfexport_treelist %})).\n *\n * @example\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nlet PDFCommandDirective = /*#__PURE__*/(() => {\n class PDFCommandDirective extends Button {\n constructor(pdfService, element, renderer, localization, ngZone) {\n super(element, renderer, null, localization, ngZone);\n this.pdfService = pdfService;\n this.ngZone = ngZone;\n }\n /**\n * @hidden\n */\n onClick(e) {\n e.preventDefault();\n this.pdfService.exportClick.emit();\n }\n /**\n * @hidden\n */\n get pdfClass() {\n return true;\n }\n }\n PDFCommandDirective.ɵfac = function PDFCommandDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PDFCommandDirective)(i0.ɵɵdirectiveInject(PDFService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1$1.LocalizationService), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n PDFCommandDirective.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PDFCommandDirective,\n selectors: [[\"\", \"kendoTreeListPDFCommand\", \"\"]],\n hostVars: 2,\n hostBindings: function PDFCommandDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function PDFCommandDirective_click_HostBindingHandler($event) {\n return ctx.onClick($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-grid-pdf\", ctx.pdfClass);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c39,\n ngContentSelectors: _c17,\n decls: 5,\n vars: 3,\n consts: [[\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\", 4, \"ngIf\"], [\"class\", \"k-button-icon k-icon\", 4, \"ngIf\"], [\"class\", \"k-button-icon\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"k-button-text\"], [\"innerCssClass\", \"k-button-icon\", 3, \"name\", \"svgIcon\"], [1, \"k-button-icon\", \"k-icon\"], [\"role\", \"presentation\", 1, \"k-image\", 3, \"src\"], [1, \"k-button-icon\", 3, \"ngClass\"]],\n template: function PDFCommandDirective_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, PDFCommandDirective_kendo_icon_wrapper_0_Template, 1, 2, \"kendo-icon-wrapper\", 0)(1, PDFCommandDirective_span_1_Template, 2, 1, \"span\", 1)(2, PDFCommandDirective_span_2_Template, 1, 1, \"span\", 2);\n i0.ɵɵelementStart(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.icon || ctx.svgIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.imageUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.iconClass);\n }\n },\n dependencies: [NgIf, IconWrapperComponent, NgClass],\n encapsulation: 2\n });\n return PDFCommandDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n * Utility array that contains the former Shared module exports\n */\nconst SHARED_EXPORTS = [ColumnComponent, ColumnGroupComponent, LogicalCellDirective, LogicalRowDirective, FocusableDirective, ColGroupComponent, ResizableContainerDirective, TemplateContextDirective, FieldAccessorPipe, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent];\n/**\n * @hidden\n * Utility array that contains the Body module exports\n */\nconst BODY_EXPORTS = [CommandColumnComponent, CellTemplateDirective, CellComponent, NoRecordsTemplateDirective, EditTemplateDirective, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, FooterTemplateDirective];\n/**\n * @hidden\n * Utility array that contains the Header module exports\n */\nconst HEADER_EXPORTS = [HeaderComponent, HeaderTemplateDirective, ColumnHandleDirective];\n/**\n * @hidden\n * Utility array that contains the former Pager module exports\n */\nconst PAGER_EXPORTS = [PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, PagerTemplateDirective];\n/**\n * @hidden\n * Utility array that contains the former SharedFilter module exports\n */\nconst SHARED_FILTER_EXPORTS = [FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, FilterInputDirective, ...SHARED_EXPORTS];\n/**\n * @hidden\n * Utility array that contains the former ColumnMenu module exports\n */\nconst ROW_FILTER_EXPORTS = [FilterRowComponent, FilterCellComponent, FilterCellTemplateDirective, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellHostDirective, FilterCellWrapperComponent, DateFilterCellComponent, ...SHARED_FILTER_EXPORTS];\n/**\n * @hidden\n * Utility array that contains the former FilterMenu module exports\n */\nconst FILTER_MENU_EXPORTS = [FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, FilterMenuTemplateDirective, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, FilterMenuHostDirective, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective];\n/**\n * @hidden\n * Utility array that contains the former ColumnMenu module exports\n */\nconst COLUMN_MENU_EXPORTS = [ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent, ColumnMenuTemplateDirective];\n/**\n * @hidden\n * Utility array that contains the Excel module exports\n */\nconst EXCEL_EXPORTS = [ExcelComponent, ExcelCommandDirective];\n/**\n * @hidden\n * Utility array that contains the PDF module exports\n */\nconst PDF_EXPORTS = [PDFComponent, PDFMarginComponent, PDFCommandDirective, PDFTemplateDirective];\n/**\n * Utility array that contains all `@progress/kendo-angular-treelist` related components and directives\n */\nconst KENDO_TREELIST = [TreeListComponent, ToolbarTemplateDirective, ToolbarComponent, TreeListSpacerComponent, CustomMessagesComponent, TemplateEditingDirective, ReactiveEditingDirective, InCellEditingDirective, HierarchyBindingDirective, FlatBindingDirective, ExpandableDirective, SelectableDirective, TreeListToolbarFocusableDirective, ...SHARED_EXPORTS, ...BODY_EXPORTS, ...HEADER_EXPORTS, ...PAGER_EXPORTS, ...ROW_FILTER_EXPORTS, ...FILTER_MENU_EXPORTS, ...COLUMN_MENU_EXPORTS];\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])\n * definition for the TreeList component.\n *\n * @example\n *\n * ```ts\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from \"@angular/platform-browser\";\n * import { TreeListModule } from '@progress/kendo-angular-treelist';\n *\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * declarations: [AppComponent],\n * imports: [BrowserModule, TreeListModule],\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n * ```\n */\nlet TreeListModule = /*#__PURE__*/(() => {\n class TreeListModule {}\n TreeListModule.ɵfac = function TreeListModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TreeListModule)();\n };\n TreeListModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TreeListModule\n });\n TreeListModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [IconsService, ResizeBatchService, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, PopupService, NavigationService$1, DialogContainerService, DialogService, WindowService, WindowContainerService],\n imports: [TreeListComponent, ToolbarComponent, TreeListSpacerComponent, CustomMessagesComponent, ColumnComponent, ColumnGroupComponent, ColGroupComponent, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent, CommandColumnComponent, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, HeaderComponent, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent, FilterRowComponent, FilterCellComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnComponent, ColumnGroupComponent, ColGroupComponent, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent]\n });\n return TreeListModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// IMPORTANT: NgModule export kept for backwards compatibillity\n/**\n * @hidden\n * @deprecated\n */\nlet SharedModule = /*#__PURE__*/(() => {\n class SharedModule {}\n SharedModule.ɵfac = function SharedModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SharedModule)();\n };\n SharedModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SharedModule\n });\n SharedModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [IconsService],\n imports: [ColumnComponent, ColumnGroupComponent, ColGroupComponent, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent, DraggableModule, IconsModule]\n });\n return SharedModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst ENTRY_COMPONENTS$1 = [StringFilterCellComponent, NumericFilterCellComponent, BooleanFilterCellComponent, DateFilterCellComponent];\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * @hidden\n * @deprecated\n */\nlet RowFilterModule = /*#__PURE__*/(() => {\n class RowFilterModule {}\n RowFilterModule.ɵfac = function RowFilterModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RowFilterModule)();\n };\n RowFilterModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: RowFilterModule\n });\n RowFilterModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [FilterRowComponent, FilterCellComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnComponent, ColumnGroupComponent, ColGroupComponent, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent]\n });\n return RowFilterModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst ENTRY_COMPONENTS = [StringFilterMenuComponent, NumericFilterMenuComponent, DateFilterMenuComponent, BooleanFilterMenuComponent];\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * @hidden\n * @deprecated\n */\nlet FilterMenuModule = /*#__PURE__*/(() => {\n class FilterMenuModule {}\n FilterMenuModule.ɵfac = function FilterMenuModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FilterMenuModule)();\n };\n FilterMenuModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FilterMenuModule\n });\n FilterMenuModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnComponent, ColumnGroupComponent, ColGroupComponent, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent]\n });\n return FilterMenuModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * @hidden\n * @deprecated\n */\nlet BodyModule = /*#__PURE__*/(() => {\n class BodyModule {}\n BodyModule.ɵfac = function BodyModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BodyModule)();\n };\n BodyModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BodyModule\n });\n BodyModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommandColumnComponent, CellComponent, EditCommandDirective, CancelCommandDirective, SaveCommandDirective, RemoveCommandDirective, AddCommandDirective, i1$4.NumericTextBoxComponent, i1$4.NumericTextBoxCustomMessagesComponent, i2$1.SeparatorComponent, i14.DatePickerCustomMessagesComponent, i14.DatePickerComponent]\n });\n return BodyModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * @hidden\n * @deprecated\n */\nlet HeaderModule = /*#__PURE__*/(() => {\n class HeaderModule {}\n HeaderModule.ɵfac = function HeaderModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HeaderModule)();\n };\n HeaderModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: HeaderModule\n });\n HeaderModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [HeaderComponent, FilterRowComponent, FilterCellComponent, StringFilterCellComponent, NumericFilterCellComponent, AutoCompleteFilterCellComponent, BooleanFilterCellComponent, FilterCellWrapperComponent, DateFilterCellComponent, FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnComponent, ColumnGroupComponent, ColGroupComponent, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuInputWrapperComponent, StringFilterMenuInputComponent, StringFilterMenuComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, DateFilterMenuInputComponent, DateFilterMenuComponent, BooleanFilterMenuComponent, ColumnComponent, ColumnGroupComponent, ColGroupComponent, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent, ColumnChooserComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuSortComponent, ColumnMenuComponent, ColumnMenuLockComponent]\n });\n return HeaderModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * @hidden\n * @deprecated\n */\nlet PagerModule = /*#__PURE__*/(() => {\n class PagerModule {}\n PagerModule.ɵfac = function PagerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerModule)();\n };\n PagerModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PagerModule\n });\n PagerModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [ResizeBatchService],\n imports: [i1$4.TextBoxComponent, i1$4.InputSeparatorComponent, i1$4.TextBoxCustomMessagesComponent, i2$1.SeparatorComponent, i1$4.NumericTextBoxComponent, i1$4.NumericTextBoxCustomMessagesComponent, i2$1.SeparatorComponent, i1$4.MaskedTextBoxComponent, i2$1.SeparatorComponent, i1$4.TextAreaComponent, i1$4.TextAreaPrefixComponent, i1$4.TextAreaSuffixComponent, i2$1.SeparatorComponent, i1$4.CheckBoxComponent, i1$4.RadioButtonComponent, i1$4.SwitchComponent, i1$4.SwitchCustomMessagesComponent, i1$4.FormFieldComponent, i1$4.HintComponent, i1$4.ErrorComponent, i1$4.SliderComponent, i1$4.SliderCustomMessagesComponent, i1$4.RangeSliderComponent, i1$4.RangeSliderCustomMessagesComponent, i1$4.RatingComponent, i1$4.SignatureComponent, i1$4.SignatureCustomMessagesComponent, i1$4.ColorPickerComponent, i1$4.ColorPickerCustomMessagesComponent, i1$4.FlatColorPickerComponent, i1$4.ColorPickerCustomMessagesComponent, i1$4.ColorGradientComponent, i1$4.ColorPickerCustomMessagesComponent, i1$4.ColorPaletteComponent, i1$4.ColorPickerCustomMessagesComponent, i3$1.LabelComponent, i3$1.CustomMessagesComponent, KENDO_BUTTON, i5.AutoCompleteComponent, i5.CustomMessagesComponent, i2$1.SeparatorComponent, i5.ComboBoxComponent, i5.CustomMessagesComponent, i2$1.SeparatorComponent, i5.MultiColumnComboBoxComponent, i5.ComboBoxColumnComponent, i5.CustomMessagesComponent, i2$1.SeparatorComponent, i5.DropDownListComponent, i5.CustomMessagesComponent, i5.MultiSelectComponent, i5.CustomMessagesComponent, i2$1.SeparatorComponent, i5.DropDownTreeComponent, i5.CustomMessagesComponent, i5.MultiSelectTreeComponent, i5.CustomMessagesComponent, PagerComponent, PagerPrevButtonsComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerInfoComponent, PagerPageSizesComponent]\n });\n return PagerModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])\n * definition for the TreeList PDF component.\n *\n * @example\n *\n * ```ts\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from \"@angular/platform-browser\";\n * import { TreeListModule, PDFModule } from '@progress/kendo-angular-treelist';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * declarations: [AppComponent],\n * imports: [BrowserModule, TreeListModule, PDFModule],\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n * ```\n */\nlet PDFModule = /*#__PURE__*/(() => {\n class PDFModule {}\n PDFModule.ɵfac = function PDFModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PDFModule)();\n };\n PDFModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PDFModule\n });\n PDFModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [IconsService],\n imports: [PDFComponent, PDFMarginComponent, PDFCommandDirective, KENDO_ICONS]\n });\n return PDFModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])\n * definition for the Excel component of the TreeList.\n *\n * @example\n * ```ts\n * import { NgModule } from '@angular/core';\n * import { BrowserModule } from \"@angular/platform-browser\";\n * import { TreeListModule, ExcelModule } from '@progress/kendo-angular-treelist';\n * import { AppComponent } from './app.component';\n *\n * _@NgModule({\n * declarations: [AppComponent],\n * imports: [BrowserModule, TreeListModule, ExcelModule],\n * bootstrap: [AppComponent]\n * })\n * export class AppModule {}\n * ```\n */\nlet ExcelModule = /*#__PURE__*/(() => {\n class ExcelModule {}\n ExcelModule.ɵfac = function ExcelModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ExcelModule)();\n };\n ExcelModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ExcelModule\n });\n ExcelModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [IconsService],\n imports: [EXCEL_EXPORTS, ExcelExportModule]\n });\n return ExcelModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * @hidden\n * @deprecated\n */\nlet SharedFilterModule = /*#__PURE__*/(() => {\n class SharedFilterModule {}\n SharedFilterModule.ɵfac = function SharedFilterModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SharedFilterModule)();\n };\n SharedFilterModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SharedFilterModule\n });\n SharedFilterModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [PopupService, ResizeBatchService, IconsService, DialogContainerService, DialogService, WindowService, WindowContainerService, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService$1],\n imports: [FilterCellOperatorsComponent, ContainsFilterOperatorComponent, DoesNotContainFilterOperatorComponent, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, NotEqualFilterOperatorComponent, StartsWithFilterOperatorComponent, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, AfterFilterOperatorComponent, AfterEqFilterOperatorComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, ColumnComponent, ColumnGroupComponent, ColGroupComponent, SpanColumnComponent, LoadingComponent, FilterCellOperatorsComponent, CheckboxColumnComponent, RowReorderColumnComponent, DropDownListModule, AutoCompleteModule, InputsModule, DatePickerModule, PopupModule, ButtonModule]\n });\n return SharedFilterModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AddCommandDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BODY_EXPORTS, BaseCommandDirective, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BodyModule, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, COLUMN_MENU_EXPORTS, CancelCommandDirective, CellCloseEvent, CellComponent, CellTemplateDirective, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuLockComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnResizingService, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, CustomMessagesComponent, DataBoundTreeComponent, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DoesNotContainFilterOperatorComponent, EXCEL_EXPORTS, EditCommandDirective, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandEvent, ExpandableDirective, ExpandableTreeComponent, FILTER_MENU_EXPORTS, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuModule, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FlatBindingDirective, FocusableDirective, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, HEADER_EXPORTS, HeaderComponent, HeaderModule, HeaderTemplateDirective, HierarchyBindingDirective, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_TREELIST, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, LevelItemsPipe, ListComponent, LoadingComponent, LogicalCellDirective, LogicalRowDirective, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PAGER_EXPORTS, PDFCommandDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PDF_EXPORTS, PagerComponent, PagerInfoComponent, PagerInputComponent, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PopupCloseEvent, ROW_FILTER_EXPORTS, ReactiveEditingDirective, RemoveCommandDirective, ResizableContainerDirective, RowEditingDirectiveBase, RowFilterModule, RowReorderColumnComponent, RowReorderService, SHARED_EXPORTS, SHARED_FILTER_EXPORTS, SaveCommandDirective, SelectableDirective, SelectionChangeEvent, SharedFilterModule, SharedModule, SinglePopupService, Skip, SpanColumnComponent, StartsWithFilterOperatorComponent, StringFilterCellComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, TreeListComponent, TreeListModule, TreeListSpacerComponent, TreeListToolbarFocusableDirective };","import { cloneDate } from './clone-date';\nimport { Day } from './day.enum';\n/**\n * A function which returns the first date of the current week.\n *\n * @param date - The initial date.\n * @param weekStartDay [default: Day.Sunday] - The first day of the week.\n * @returns - The first date of the current week.\n *\n * @example\n * ```ts-no-run\n * firstDayInWeek(new Date(2016, 0, 15)); // 2016-01-10\n * firstDayInWeek(new Date(2016, 0, 15), Day.Monday); // 2016-01-11\n * ```\n */\nexport const firstDayInWeek = (date, weekStartDay = Day.Sunday) => {\n const first = cloneDate(date);\n while (first.getDay() !== weekStartDay) {\n first.setDate(first.getDate() - 1);\n }\n return first;\n};","/**-----------------------------------------------------------------------------------------\n* Copyright © 2024 Progress Software Corporation. All rights reserved.\n* Licensed under commercial license. See LICENSE.md in the project root for more information\n*-------------------------------------------------------------------------------------------*/\nimport * as i0 from '@angular/core';\nimport { Directive, Input, forwardRef, Component, ChangeDetectionStrategy, ViewChild, HostBinding, Optional, ElementRef, EventEmitter, ContentChildren, Output, HostListener, NgModule } from '@angular/core';\nimport * as i1 from '@progress/kendo-angular-l10n';\nimport { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\nimport { Subject, Subscription } from 'rxjs';\nimport { caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';\nimport { ButtonComponent } from '@progress/kendo-angular-buttons';\nimport { DropDownListComponent } from '@progress/kendo-angular-dropdowns';\nimport { Keys, EventsOutsideAngularDirective, anyChanged, ResizeSensorComponent, ResizeBatchService } from '@progress/kendo-angular-common';\nimport { NgIf, NgFor, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { NumericTextBoxComponent } from '@progress/kendo-angular-inputs';\nimport { validatePackage } from '@progress/kendo-licensing';\nimport { IconsService } from '@progress/kendo-angular-icons';\nimport { PopupService } from '@progress/kendo-angular-popup';\n\n/**\n * @hidden\n */\nconst _c0 = [\"dropdownlist\"];\nconst _c1 = [\"select\"];\nconst _c2 = [\"numbers\"];\nconst _c3 = a0 => ({\n \"k-selected\": a0\n});\nfunction PagerNumericButtonsComponent_option_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 9);\n i0.ɵɵtext(1, \"... \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"selected\", false);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(ctx_r1.start - 1));\n }\n}\nfunction PagerNumericButtonsComponent_option_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 10);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const num_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", num_r3.toString())(\"selected\", num_r3 === ctx_r1.currentPage)(\"ngClass\", i0.ɵɵpureFunction1(6, _c3, ctx_r1.currentPage === num_r3));\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(num_r3))(\"aria-current\", ctx_r1.currentPage === num_r3 ? \"page\" : undefined);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", num_r3, \" \");\n }\n}\nfunction PagerNumericButtonsComponent_option_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 11);\n i0.ɵɵtext(1, \"... \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"selected\", false);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(ctx_r1.end + 1));\n }\n}\nfunction PagerNumericButtonsComponent_button_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 12);\n i0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_button_7_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changePage(ctx_r1.start - 2));\n });\n i0.ɵɵtext(1, \"...\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"size\", ctx_r1.size);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(ctx_r1.start - 1))(\"title\", ctx_r1.pageLabel(ctx_r1.start - 1));\n }\n}\nfunction PagerNumericButtonsComponent_button_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 13);\n i0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_button_8_Template_button_click_0_listener() {\n const num_r6 = i0.ɵɵrestoreView(_r5).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changePage(num_r6 - 1));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const num_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"size\", ctx_r1.size)(\"selected\", ctx_r1.currentPage === num_r6);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(num_r6))(\"title\", ctx_r1.pageLabel(num_r6))(\"aria-current\", ctx_r1.currentPage === num_r6 ? \"page\" : undefined);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", num_r6, \" \");\n }\n}\nfunction PagerNumericButtonsComponent_button_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 12);\n i0.ɵɵlistener(\"click\", function PagerNumericButtonsComponent_button_9_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changePage(ctx_r1.end));\n });\n i0.ɵɵtext(1, \"...\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"size\", ctx_r1.size);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.pageLabel(ctx_r1.end + 1))(\"title\", ctx_r1.pageLabel(ctx_r1.end + 1));\n }\n}\nconst _c4 = () => ({\n \"k-pager-input\": true,\n \"k-label\": true\n});\nconst _c5 = a0 => ({\n \"aria-label\": a0\n});\nconst _c6 = (a0, a1) => ({\n keydown: a0,\n focusout: a1\n});\nfunction PagerComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 3);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.template.first == null ? null : ctx_r0.template.first.templateRef)(\"ngTemplateOutletContext\", ctx_r0.templateContext);\n }\n}\nfunction PagerComponent_ng_container_2_kendo_datapager_prev_buttons_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-datapager-prev-buttons\", 8);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"size\", ctx_r0.size);\n }\n}\nfunction PagerComponent_ng_container_2_kendo_datapager_numeric_buttons_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-datapager-numeric-buttons\", 9);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"size\", ctx_r0.size)(\"buttonCount\", ctx_r0.buttonCount);\n }\n}\nfunction PagerComponent_ng_container_2_kendo_datapager_input_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-datapager-input\", 8);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"size\", ctx_r0.size);\n }\n}\nfunction PagerComponent_ng_container_2_kendo_datapager_next_buttons_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-datapager-next-buttons\", 8);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"size\", ctx_r0.size);\n }\n}\nfunction PagerComponent_ng_container_2_kendo_datapager_page_sizes_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-datapager-page-sizes\", 10);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"size\", ctx_r0.size)(\"pageSizes\", ctx_r0.pageSizeValues);\n }\n}\nfunction PagerComponent_ng_container_2_kendo_datapager_info_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"kendo-datapager-info\");\n }\n}\nfunction PagerComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 4);\n i0.ɵɵtemplate(2, PagerComponent_ng_container_2_kendo_datapager_prev_buttons_2_Template, 1, 1, \"kendo-datapager-prev-buttons\", 5)(3, PagerComponent_ng_container_2_kendo_datapager_numeric_buttons_3_Template, 1, 2, \"kendo-datapager-numeric-buttons\", 6)(4, PagerComponent_ng_container_2_kendo_datapager_input_4_Template, 1, 1, \"kendo-datapager-input\", 5)(5, PagerComponent_ng_container_2_kendo_datapager_next_buttons_5_Template, 1, 1, \"kendo-datapager-next-buttons\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, PagerComponent_ng_container_2_kendo_datapager_page_sizes_6_Template, 1, 2, \"kendo-datapager-page-sizes\", 7)(7, PagerComponent_ng_container_2_kendo_datapager_info_7_Template, 1, 0, \"kendo-datapager-info\", 2);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.previousNext);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.type === \"numeric\" && ctx_r0.buttonCount > 0);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.type === \"input\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.previousNext);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.pageSizeValues);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.info);\n }\n}\nclass PreventableEvent {\n constructor() {\n this.prevented = false;\n }\n /**\n * Prevents the default action for a specified event.\n * In this way, the source component suppresses the built-in behavior that follows the event.\n */\n preventDefault() {\n this.prevented = true;\n }\n /**\n * If the event is prevented by any of its subscribers, returns `true`.\n *\n * @returns `true` if the default action was prevented. Otherwise, returns `false`.\n */\n isDefaultPrevented() {\n return this.prevented;\n }\n}\n\n/**\n * Arguments for the `pageSizeChange` event. The `pageSizeChange` event fires when the page size\n * is changed from the UI. If you cancel the event, the change is prevented.\n */\nclass PageSizeChangeEvent extends PreventableEvent {\n /**\n * Constructs the event arguments for the `pageSizeChange` event.\n * @param newPageSize - The newly selected page size.\n * @hidden\n */\n constructor(newPageSize) {\n super();\n this.newPageSize = newPageSize;\n }\n}\n\n/**\n * @hidden\n */\nlet Messages = /*#__PURE__*/(() => {\n class Messages extends ComponentMessages {}\n Messages.ɵfac = /* @__PURE__ */(() => {\n let ɵMessages_BaseFactory;\n return function Messages_Factory(__ngFactoryType__) {\n return (ɵMessages_BaseFactory || (ɵMessages_BaseFactory = i0.ɵɵgetInheritedFactory(Messages)))(__ngFactoryType__ || Messages);\n };\n })();\n Messages.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: Messages,\n selectors: [[\"kendoPagerMessages\"]],\n inputs: {\n firstPage: \"firstPage\",\n lastPage: \"lastPage\",\n previousPage: \"previousPage\",\n nextPage: \"nextPage\",\n page: \"page\",\n pageNumberInputTitle: \"pageNumberInputTitle\",\n itemsPerPage: \"itemsPerPage\",\n of: \"of\",\n items: \"items\",\n selectPage: \"selectPage\",\n inputLabel: \"inputLabel\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return Messages;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Custom component messages override default component messages\n * ([see example]({% slug pager_globalization %}#toc-messages)).\n */\nlet CustomMessagesComponent = /*#__PURE__*/(() => {\n class CustomMessagesComponent extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n get override() {\n return true;\n }\n }\n CustomMessagesComponent.ɵfac = function CustomMessagesComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CustomMessagesComponent)(i0.ɵɵdirectiveInject(i1.LocalizationService));\n };\n CustomMessagesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CustomMessagesComponent,\n selectors: [[\"kendo-datapager-messages\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: Messages,\n useExisting: forwardRef(() => CustomMessagesComponent)\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function CustomMessagesComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return CustomMessagesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nlet LocalizedMessagesDirective = /*#__PURE__*/(() => {\n class LocalizedMessagesDirective extends Messages {\n constructor(service) {\n super();\n this.service = service;\n }\n }\n LocalizedMessagesDirective.ɵfac = function LocalizedMessagesDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LocalizedMessagesDirective)(i0.ɵɵdirectiveInject(i1.LocalizationService));\n };\n LocalizedMessagesDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LocalizedMessagesDirective,\n selectors: [[\"\", \"kendoDataPagerLocalizedMessages\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: Messages,\n useExisting: forwardRef(() => LocalizedMessagesDirective)\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n return LocalizedMessagesDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nclass PagerContextService {\n constructor() {\n this.changes = new Subject();\n this.pageChange = new Subject();\n this.pageSizeChange = new Subject();\n }\n get currentPage() {\n return this.skip / this.pageSize;\n }\n notifyChanges(changes) {\n this.total = changes.total;\n this.pageSize = changes.pageSize;\n this.skip = changes.skip;\n this.changes.next(changes);\n }\n changePage(page) {\n this.pageChange.next({\n skip: page * this.pageSize,\n take: this.pageSize\n });\n }\n changePageSize(event) {\n this.pageSizeChange.next(event);\n }\n nextPage() {\n const nextPage = this.currentPage + 1;\n if (nextPage * this.pageSize <= this.total) {\n this.changePage(nextPage);\n }\n }\n prevPage() {\n const prevPage = this.currentPage - 1;\n if (prevPage * this.pageSize >= 0) {\n this.changePage(prevPage);\n }\n }\n}\n\n/**\n * @hidden\n */\nlet PagerElementComponent = /*#__PURE__*/(() => {\n class PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n this.localization = localization;\n this.pagerContext = pagerContext;\n this.cd = cd;\n this.total = this.pagerContext.total;\n this.skip = this.pagerContext.skip;\n this.pageSize = this.pagerContext.pageSize;\n this.caretAltLeftIcon = caretAltLeftIcon;\n this.caretAltToLeftIcon = caretAltToLeftIcon;\n this.caretAltRightIcon = caretAltRightIcon;\n this.caretAltToRightIcon = caretAltToRightIcon;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerElementComponent\n */\n get currentPage() {\n return Math.floor((this.skip || 0) / this.pageSize) + 1;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerElementComponent\n */\n get totalPages() {\n return Math.ceil((this.total || 0) / this.pageSize);\n }\n /**\n * @hidden\n *\n * @param {string} key\n * @returns {string}\n *\n * @memberOf PagerElementComponent\n */\n textFor(key) {\n return this.localization.get(key);\n }\n /**\n * @hidden\n *\n * @param {number} page\n *\n * @memberOf PagerElementComponent\n */\n changePage(page) {\n this.pagerContext.changePage(page);\n return false;\n }\n /**\n * @hidden\n *\n * @memberOf PagerElementComponent\n */\n ngOnInit() {\n this.subscriptions = this.pagerContext.changes.subscribe(this.onChanges.bind(this));\n this.subscriptions.add(this.localization.changes.subscribe(() => this.cd.markForCheck()));\n }\n ngOnDestroy() {\n if (this.subscriptions) {\n this.subscriptions.unsubscribe();\n }\n }\n get prevArrowIcons() {\n return !this.localization.rtl ? ['caret-alt-to-left', 'caret-alt-left'] : ['caret-alt-to-right', 'caret-alt-right'];\n }\n get prevArrowSVGIcons() {\n return !this.localization.rtl ? [this.caretAltToLeftIcon, this.caretAltLeftIcon] : [this.caretAltToRightIcon, this.caretAltRightIcon];\n }\n get nextArrowIcons() {\n return !this.localization.rtl ? ['caret-alt-right', 'caret-alt-to-right'] : ['caret-alt-left', 'caret-alt-to-left'];\n }\n get nextArrowSVGIcons() {\n return !this.localization.rtl ? [this.caretAltRightIcon, this.caretAltToRightIcon] : [this.caretAltLeftIcon, this.caretAltToLeftIcon];\n }\n }\n PagerElementComponent.ɵfac = function PagerElementComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerElementComponent)(i0.ɵɵdirectiveInject(i1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n PagerElementComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerElementComponent,\n selectors: [[\"kendo-pager-element\"]],\n decls: 0,\n vars: 0,\n template: function PagerElementComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n return PagerElementComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst DEFAULT_PAGE_SIZE_VALUES = [5, 10, 20];\n/**\n * @hidden\n */\nconst focusableDirectiveSelector = '[kendoPagerFocusable]';\n/**\n * @hidden\n */\nconst getAllFocusableChildren = parent => {\n return parent.querySelectorAll(focusableDirectiveSelector);\n};\n/**\n * @hidden\n */\nconst focusableSelector = ['a[href]:not([disabled])', 'area[href]:not([disabled])', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button', 'iframe:not([disabled])', 'object:not([disabled])', 'embed:not([disabled])', '*[tabindex]:not([disabled])', '*[contenteditable]:not([disabled]):not([contenteditable=\"false\"])'].join(',');\n/**\n * @hidden\n */\nconst DEFAULT_SIZE = 'medium';\nconst SIZES = {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n};\n/**\n * @hidden\n *\n * Returns the styling classes to be added and removed\n */\nconst getStylingClasses = (componentType, stylingOption, previousValue, newValue) => {\n switch (stylingOption) {\n case 'size':\n return {\n toRemove: `k-${componentType}-${SIZES[previousValue]}`,\n toAdd: newValue !== 'none' ? `k-${componentType}-${SIZES[newValue]}` : ''\n };\n default:\n break;\n }\n};\n\n/**\n * @hidden\n */\nclass PagerNavigationService {\n constructor() {\n this.isNavigable = false;\n this.innerNavigationChange = new Subject();\n }\n toggleInnerNavigation(value) {\n this.innerNavigationChange.next(value);\n }\n keepFocusWithinComponent(wrapper, target, event) {\n const [firstFocusable, lastFocusable] = this.getFirstAndLastFocusable(wrapper);\n const tabAfterLastFocusable = !event.shiftKey && target === lastFocusable;\n const shiftTabAfterFirstFocusable = event.shiftKey && target === firstFocusable;\n if (tabAfterLastFocusable) {\n event.preventDefault();\n firstFocusable.focus();\n }\n if (shiftTabAfterFirstFocusable) {\n event.preventDefault();\n lastFocusable.focus();\n }\n }\n getFirstAndLastFocusable(wrapper) {\n const all = getAllFocusableChildren(wrapper);\n const firstFocusable = all.length > 0 ? all[0] : parent;\n const lastFocusable = all.length > 0 ? all[all.length - 1] : parent;\n return [firstFocusable, lastFocusable];\n }\n}\n\n/**\n * Place the directive on custom focusable elements in the [`kendoDataPagerTemplate`]({% slug api_pager_pagertemplatedirective %}) to include them in the built-in Pager keyboard navigation.\n */\nlet PagerFocusableDirective = /*#__PURE__*/(() => {\n class PagerFocusableDirective {\n constructor(navigationService, element, renderer) {\n this.navigationService = navigationService;\n this.element = element;\n this.renderer = renderer;\n this.subscriptions = new Subscription();\n }\n ngOnInit() {\n this.subscriptions.add(this.navigationService.innerNavigationChange.subscribe(this.innerNavigationChange.bind(this)));\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n get nativeElement() {\n return this.element.nativeElement;\n }\n innerNavigationChange(value) {\n if (!this.navigationService.isNavigable) {\n return;\n }\n const index = value ? '0' : '-1';\n if (this.nativeElement.matches(focusableSelector)) {\n this.renderer.setAttribute(this.nativeElement, 'tabindex', index);\n }\n const focusableElements = this.nativeElement.querySelectorAll(focusableSelector);\n focusableElements.forEach(el => {\n this.renderer.setAttribute(el, 'tabindex', index);\n });\n }\n }\n PagerFocusableDirective.ɵfac = function PagerFocusableDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerFocusableDirective)(i0.ɵɵdirectiveInject(PagerNavigationService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n PagerFocusableDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PagerFocusableDirective,\n selectors: [[\"\", \"kendoPagerFocusable\", \"\"]],\n exportAs: [\"kendoPagerFocusable\"],\n standalone: true\n });\n return PagerFocusableDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\n/**\n * Displays buttons for navigating to the first and to the previous page ([see example]({% slug pager_settings %})).\n */\nlet PagerPrevButtonsComponent = /*#__PURE__*/(() => {\n class PagerPrevButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n super(localization, pagerContext, cd);\n /**\n * Specifies the padding of the buttons.\n *\n * The possible values are:\n * * `small`\n * * `medium` (default)\n * * `large`\n * * `none`\n */\n this.size = DEFAULT_SIZE;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerPrevButtonsComponent\n */\n get disabled() {\n return this.currentPage === 1 || !this.total;\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n }\n PagerPrevButtonsComponent.ɵfac = function PagerPrevButtonsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerPrevButtonsComponent)(i0.ɵɵdirectiveInject(i1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n PagerPrevButtonsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerPrevButtonsComponent,\n selectors: [[\"kendo-datapager-prev-buttons\"]],\n inputs: {\n size: \"size\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 12,\n consts: [[\"type\", \"button\", \"kendoButton\", \"\", \"kendoPagerFocusable\", \"\", \"fillMode\", \"flat\", \"rounded\", \"none\", 1, \"k-pager-nav\", \"k-pager-first\", 3, \"click\", \"disabled\", \"icon\", \"svgIcon\", \"size\", \"title\"], [\"type\", \"button\", \"kendoButton\", \"\", \"kendoPagerFocusable\", \"\", \"fillMode\", \"flat\", \"rounded\", \"none\", 1, \"k-pager-nav\", 3, \"click\", \"disabled\", \"icon\", \"svgIcon\", \"size\", \"title\"]],\n template: function PagerPrevButtonsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_button_click_0_listener() {\n return ctx.currentPage !== 1 ? ctx.changePage(0) : false;\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(1, \"button\", 1);\n i0.ɵɵlistener(\"click\", function PagerPrevButtonsComponent_Template_button_click_1_listener() {\n return ctx.currentPage !== 1 ? ctx.changePage(ctx.currentPage - 2) : false;\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"icon\", ctx.prevArrowIcons[0])(\"svgIcon\", ctx.prevArrowSVGIcons[0])(\"size\", ctx.size)(\"title\", ctx.textFor(\"firstPage\"));\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"firstPage\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"icon\", ctx.prevArrowIcons[1])(\"svgIcon\", ctx.prevArrowSVGIcons[1])(\"size\", ctx.size)(\"title\", ctx.textFor(\"previousPage\"));\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"previousPage\"));\n }\n },\n dependencies: [ButtonComponent, PagerFocusableDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerPrevButtonsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Displays a drop-down list for the page size selection ([see example]({% slug pager_settings %})).\n */\nlet PagerPageSizesComponent = /*#__PURE__*/(() => {\n class PagerPageSizesComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext, element, ngZone) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.element = element;\n this.ngZone = ngZone;\n /**\n * Specifies the padding of the dropdown.\n *\n * The possible values are:\n * * `small`\n * * `medium` (default)\n * * `large`\n * * `none`\n */\n this.size = DEFAULT_SIZE;\n this._pageSizes = [];\n }\n /**\n * The page sizes collection. Can contain numbers and [PageSizeItem]({% slug api_pager_pagesizeitem %}) objects.\n *\n * @example\n *\n * ```ts-preview\n * _@Component({\n * selector: 'my-app',\n * template: `\n *
\n * {{item.ProductID}}. \n * {{item.ProductName}}\n *
\n * \n * \n * \n * \n * \n * `\n * })\n * class AppComponent {\n * public data: any[] = products;\n * public pagedData = [];\n * public skip = 0;\n * public pageSize = 2;\n * public total = products.length;\n * public pagesizes = [{text: 'One', value: 1}, {text: 'Two', value: 2}, {text: 'All', value : 'all'}];\n *\n * public ngOnInit() {\n * this.pageData();\n * }\n *\n * public onPageChange(e) {\n * this.skip = e.skip;\n * this.pageSize = e.take;\n * this.pageData();\n * }\n *\n * private pageData() {\n * this.pagedData = this.data.slice(this.skip, this.skip + this.pageSize);\n * }\n * }\n *\n * const products = [{\n * 'ProductID' : 1,\n * 'ProductName' : \"Chai\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 1,\n * 'QuantityPerUnit' : \"10 boxes x 20 bags\",\n * 'UnitPrice' : 18.0000,\n * 'UnitsInStock' : 39,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 10,\n * 'Discontinued' : false\n *\n * }, {\n * 'ProductID' : 2,\n * 'ProductName' : \"Chang\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 1,\n * 'QuantityPerUnit' : \"24 - 12 oz bottles\",\n * 'UnitPrice' : 19.0000,\n * 'UnitsInStock' : 17,\n * 'UnitsOnOrder' : 40,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 3,\n * 'ProductName' : \"Aniseed Syrup\",\n * 'SupplierID' : 1,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"12 - 550 ml bottles\",\n * 'UnitPrice' : 10.0000,\n * 'UnitsInStock' : 13,\n * 'UnitsOnOrder' : 70,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 4,\n * 'ProductName' : \"Chef Anton\\'s Cajun Seasoning\",\n * 'SupplierID' : 2,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"48 - 6 oz jars\",\n * 'UnitPrice' : 22.0000,\n * 'UnitsInStock' : 53,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 0,\n * 'Discontinued' : false\n * }, {\n * 'ProductID' : 5,\n * 'ProductName' : \"Chef Anton\\'s Gumbo Mix\",\n * 'SupplierID' : 2,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"36 boxes\",\n * 'UnitPrice' : 21.3500,\n * 'UnitsInStock' : 0,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 0,\n * 'Discontinued' : true\n * }, {\n * 'ProductID' : 6,\n * 'ProductName' : \"Grandma\\'s Boysenberry Spread\",\n * 'SupplierID' : 3,\n * 'CategoryID' : 2,\n * 'QuantityPerUnit' : \"12 - 8 oz jars\",\n * 'UnitPrice' : 25.0000,\n * 'UnitsInStock' : 120,\n * 'UnitsOnOrder' : 0,\n * 'ReorderLevel' : 25,\n * 'Discontinued' : false\n * }];\n * ```\n *\n */\n set pageSizes(pageSizes) {\n let normalizedItems = [];\n if (Array.isArray(pageSizes)) {\n pageSizes.forEach(item => {\n if (typeof item === 'number') {\n normalizedItems.push({\n text: item.toString(),\n value: item\n });\n } else {\n normalizedItems.push(item);\n }\n });\n }\n if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {\n normalizedItems = [{\n text: this.pageSize.toString(),\n value: this.pageSize\n }, ...normalizedItems];\n }\n this._pageSizes = normalizedItems;\n }\n get pageSizes() {\n return this._pageSizes;\n }\n /**\n * @hidden\n *\n * @readonly\n */\n get classes() {\n return true;\n }\n ngAfterViewInit() {\n this.ngZone.runOutsideAngular(() => {\n this.element.nativeElement.addEventListener('keydown', this.keyDownHandler.bind(this), true);\n });\n }\n ngOnDestroy() {\n this.element.nativeElement.removeEventListener('keydown', this.keyDownHandler);\n }\n /**\n * @hidden\n */\n pageSizeChange(value, dropdownlist) {\n const event = new PageSizeChangeEvent(value);\n this.pagerContext.changePageSize(event);\n if (event.isDefaultPrevented()) {\n dropdownlist.writeValue(this.pageSize);\n }\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;\n this.cd.markForCheck();\n }\n keyDownHandler(ev) {\n if (ev.keyCode === Keys.Escape && this.dropDownList.isOpen) {\n ev.stopPropagation();\n this.dropDownList.toggle(false);\n }\n }\n }\n PagerPageSizesComponent.ɵfac = function PagerPageSizesComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerPageSizesComponent)(i0.ɵɵdirectiveInject(i1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n PagerPageSizesComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerPageSizesComponent,\n selectors: [[\"kendo-datapager-page-sizes\"]],\n viewQuery: function PagerPageSizesComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropDownList = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function PagerPageSizesComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-pager-sizes\", ctx.classes);\n }\n },\n inputs: {\n pageSizes: \"pageSizes\",\n size: \"size\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 6,\n consts: [[\"dropdownlist\", \"\"], [\"kendoPagerFocusable\", \"\", \"textField\", \"text\", \"valueField\", \"value\", 3, \"valueChange\", \"size\", \"data\", \"valuePrimitive\", \"value\"]],\n template: function PagerPageSizesComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"kendo-dropdownlist\", 1, 0);\n i0.ɵɵlistener(\"valueChange\", function PagerPageSizesComponent_Template_kendo_dropdownlist_valueChange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const dropdownlist_r2 = i0.ɵɵreference(1);\n return i0.ɵɵresetView(ctx.pageSizeChange($event, dropdownlist_r2));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtext(2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"size\", ctx.size)(\"data\", ctx.pageSizes)(\"valuePrimitive\", true)(\"value\", ctx.pageSize);\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"itemsPerPage\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"itemsPerPage\"), \" \");\n }\n },\n dependencies: [DropDownListComponent, PagerFocusableDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerPageSizesComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Represents the pager template which helps to customize the pager appearance. To define a pager\n * template, nest an `` tag with the `kendoDataPagerTemplate` directive inside ``.\n *\n * The template context provides the following fields:\n * * `currentPage`—The index of the displayed page.\n * * `pageSize`—The value of the current `pageSize`.\n * * `skip`—The current skip value.\n * * `total`—The total number of records.\n * * `totalPages`—The total number of available pages.\n *\n * @example\n * ```ts-preview\n *\n * _@Component({\n * selector: 'my-app',\n * template: `\n * \n * \n * \n * \n * \n * \n * Current page: {{currentPage}}\n * \n * \n * `\n * })\n *\n * class AppComponent {\n * public skip = 0;\n * public pageSize = 10;\n * public total = 100;\n *\n * public onPageChange(e: any): void {\n * this.skip = e.skip;\n * this.pageSize = e.take;\n * }\n * }\n *\n * ```\n */\nlet PagerTemplateDirective = /*#__PURE__*/(() => {\n class PagerTemplateDirective {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n }\n PagerTemplateDirective.ɵfac = function PagerTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef, 8));\n };\n PagerTemplateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PagerTemplateDirective,\n selectors: [[\"\", \"kendoDataPagerTemplate\", \"\"]],\n standalone: true\n });\n return PagerTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Displays numeric buttons to enable navigation between the pages.\n */\nlet PagerNumericButtonsComponent = /*#__PURE__*/(() => {\n class PagerNumericButtonsComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext, renderer) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.renderer = renderer;\n this._size = DEFAULT_SIZE;\n }\n /**\n * Specifies the padding of the numeric buttons.\n *\n * The possible values are:\n * * `small`\n * * `medium` (default)\n * * `large`\n * * `none`\n */\n set size(size) {\n const newSize = size ? size : DEFAULT_SIZE;\n this.handleClasses(newSize, 'size');\n this._size = newSize;\n }\n get size() {\n return this._size;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number[]}\n * @memberOf PagerNumericButtonsComponent\n */\n get buttons() {\n const result = [];\n for (let idx = this.start; idx <= this.end; idx++) {\n result.push(idx);\n }\n return result;\n }\n /**\n * @hidden\n */\n get end() {\n return Math.min(this.start + this.buttonCount - 1, this.totalPages);\n }\n /**\n * @hidden\n */\n get start() {\n const page = this.currentPage;\n const buttonCount = this.buttonCount;\n if (page > buttonCount) {\n const reminder = page % buttonCount;\n return reminder === 0 ? page - buttonCount + 1 : page - reminder + 1;\n }\n return 1;\n }\n ngAfterViewInit() {\n this.handleClasses(this.size, 'size');\n }\n /**\n * @hidden\n */\n pageLabel(num) {\n const pageText = this.textFor('page');\n if (pageText) {\n return pageText + ' ' + num;\n }\n return num.toString();\n }\n /**\n * @hidden\n */\n onSelectChange(e) {\n const target = e.target;\n const valueAsNumber = Number(target.value);\n if (!Number.isNaN(valueAsNumber)) {\n this.changePage(valueAsNumber - 1);\n } else {\n if (target.value === 'previousButtons') {\n this.changePage(this.start - 2);\n } else {\n this.changePage(this.end);\n }\n }\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n get pageChooserLabel() {\n return this.textFor('selectPage');\n }\n handleClasses(value, input) {\n const elem = this.selectElement?.nativeElement;\n const classes = getStylingClasses('picker', input, this[input], value);\n if (!elem) {\n return;\n }\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n }\n PagerNumericButtonsComponent.ɵfac = function PagerNumericButtonsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerNumericButtonsComponent)(i0.ɵɵdirectiveInject(i1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n PagerNumericButtonsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerNumericButtonsComponent,\n selectors: [[\"kendo-datapager-numeric-buttons\"]],\n viewQuery: function PagerNumericButtonsComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c1, 5, ElementRef);\n i0.ɵɵviewQuery(_c2, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectElement = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.numbersElement = _t.first);\n }\n },\n inputs: {\n buttonCount: \"buttonCount\",\n size: \"size\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 10,\n vars: 10,\n consts: [[\"select\", \"\"], [\"numbers\", \"\"], [\"kendoPagerFocusable\", \"\", 1, \"k-dropdown-list\", \"k-dropdown\", \"k-picker\", \"k-picker-solid\", \"k-rounded-md\", 3, \"change\"], [\"value\", \"previousButtons\", 3, \"selected\", 4, \"ngIf\"], [3, \"value\", \"selected\", \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [\"value\", \"nextButtons\", 3, \"selected\", 4, \"ngIf\"], [1, \"k-pager-numbers\"], [\"type\", \"button\", \"kendoPagerFocusable\", \"\", \"kendoButton\", \"\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"rounded\", \"none\", 3, \"size\", \"click\", 4, \"ngIf\"], [\"type\", \"button\", \"kendoPagerFocusable\", \"\", \"kendoButton\", \"\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"rounded\", \"none\", 3, \"size\", \"selected\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"value\", \"previousButtons\", 3, \"selected\"], [3, \"value\", \"selected\", \"ngClass\"], [\"value\", \"nextButtons\", 3, \"selected\"], [\"type\", \"button\", \"kendoPagerFocusable\", \"\", \"kendoButton\", \"\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"rounded\", \"none\", 3, \"click\", \"size\"], [\"type\", \"button\", \"kendoPagerFocusable\", \"\", \"kendoButton\", \"\", \"fillMode\", \"flat\", \"themeColor\", \"primary\", \"rounded\", \"none\", 3, \"click\", \"size\", \"selected\"]],\n template: function PagerNumericButtonsComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"select\", 2, 0);\n i0.ɵɵlistener(\"change\", function PagerNumericButtonsComponent_Template_select_change_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onSelectChange($event));\n });\n i0.ɵɵtemplate(2, PagerNumericButtonsComponent_option_2_Template, 2, 2, \"option\", 3)(3, PagerNumericButtonsComponent_option_3_Template, 2, 8, \"option\", 4)(4, PagerNumericButtonsComponent_option_4_Template, 2, 2, \"option\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 6, 1);\n i0.ɵɵtemplate(7, PagerNumericButtonsComponent_button_7_Template, 2, 3, \"button\", 7)(8, PagerNumericButtonsComponent_button_8_Template, 2, 6, \"button\", 8)(9, PagerNumericButtonsComponent_button_9_Template, 2, 3, \"button\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"display\", \"none\");\n i0.ɵɵattribute(\"title\", ctx.pageChooserLabel)(\"aria-label\", ctx.pageChooserLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.start > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.buttons);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.end < ctx.totalPages);\n }\n },\n dependencies: [PagerFocusableDirective, NgIf, NgFor, NgClass, ButtonComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerNumericButtonsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\n/**\n * Displays buttons for navigating to the next and to the last page ([see example]({% slug pager_settings %})).\n */\nlet PagerNextButtonsComponent = /*#__PURE__*/(() => {\n class PagerNextButtonsComponent extends PagerElementComponent {\n constructor(localization, pagerContext, cd) {\n super(localization, pagerContext, cd);\n /**\n * Specifies the padding of the buttons.\n *\n * The possible values are:\n * * `small`\n * * `medium` (default)\n * * `large`\n * * `none`\n */\n this.size = DEFAULT_SIZE;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerNextButtonsComponent\n */\n get disabled() {\n return this.currentPage === this.totalPages || !this.total;\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n }\n PagerNextButtonsComponent.ɵfac = function PagerNextButtonsComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerNextButtonsComponent)(i0.ɵɵdirectiveInject(i1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n PagerNextButtonsComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerNextButtonsComponent,\n selectors: [[\"kendo-datapager-next-buttons\"]],\n inputs: {\n size: \"size\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 12,\n consts: [[\"kendoButton\", \"\", \"kendoPagerFocusable\", \"\", \"type\", \"button\", \"fillMode\", \"flat\", \"rounded\", \"none\", 1, \"k-pager-nav\", 3, \"click\", \"size\", \"icon\", \"svgIcon\", \"disabled\", \"title\"], [\"kendoButton\", \"\", \"kendoPagerFocusable\", \"\", \"type\", \"button\", \"fillMode\", \"flat\", \"rounded\", \"none\", 1, \"k-pager-nav\", \"k-pager-last\", 3, \"click\", \"size\", \"icon\", \"svgIcon\", \"disabled\", \"title\"]],\n template: function PagerNextButtonsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_button_click_0_listener() {\n return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.currentPage) : false;\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(1, \"button\", 1);\n i0.ɵɵlistener(\"click\", function PagerNextButtonsComponent_Template_button_click_1_listener() {\n return ctx.currentPage !== ctx.totalPages ? ctx.changePage(ctx.totalPages - 1) : false;\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"size\", ctx.size)(\"icon\", ctx.nextArrowIcons[0])(\"svgIcon\", ctx.nextArrowSVGIcons[0])(\"disabled\", ctx.disabled)(\"title\", ctx.textFor(\"nextPage\"));\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"nextPage\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"size\", ctx.size)(\"icon\", ctx.nextArrowIcons[1])(\"svgIcon\", ctx.nextArrowSVGIcons[1])(\"disabled\", ctx.disabled)(\"title\", ctx.textFor(\"lastPage\"));\n i0.ɵɵattribute(\"aria-label\", ctx.textFor(\"lastPage\"));\n }\n },\n dependencies: [ButtonComponent, PagerFocusableDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerNextButtonsComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Displays an input element which allows the typing and rendering of page numbers.\n */\nlet PagerInputComponent = /*#__PURE__*/(() => {\n class PagerInputComponent extends PagerElementComponent {\n constructor(localization, pagerContext, zone, cd, renderer) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n this.zone = zone;\n this.renderer = renderer;\n /**\n * Specifies the padding of the internal numeric input element.\n *\n * The possible values are:\n * * `small`\n * * `medium` (default)\n * * `large`\n * * `none`\n */\n this.size = DEFAULT_SIZE;\n /**\n * @hidden\n *\n * @param {string} value\n *\n * @memberOf PagerInputComponent\n */\n this.handleKeyDown = event => {\n const incomingValue = this.numericInput.value || this.current;\n // eslint-disable import/no-deprecated\n if (event.keyCode === Keys.Enter) {\n event.preventDefault();\n if (incomingValue !== this.current) {\n this.zone.run(() => {\n this.changePage(incomingValue - 1);\n });\n }\n }\n };\n /**\n * @hidden\n *\n * @param {string} value\n *\n * @memberOf PagerInputComponent\n */\n this.handleBlur = () => {\n const inputValue = this.numericInput.value;\n if (!inputValue) {\n this.numericInput.writeValue(this.current);\n return;\n }\n if (inputValue !== this.current) {\n this.zone.run(() => {\n this.changePage(inputValue - 1);\n });\n }\n };\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n /**\n * @hidden\n */\n get current() {\n return this.hasPages ? this.currentPage : 0;\n }\n /**\n * @hidden\n */\n get hasPages() {\n return this.totalPages !== 0;\n }\n }\n PagerInputComponent.ɵfac = function PagerInputComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerInputComponent)(i0.ɵɵdirectiveInject(i1.LocalizationService), i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n PagerInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerInputComponent,\n selectors: [[\"kendo-datapager-input\"]],\n viewQuery: function PagerInputComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(NumericTextBoxComponent, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.numericInput = _t.first);\n }\n },\n inputs: {\n size: \"size\"\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 21,\n consts: [[3, \"ngClass\"], [\"kendoPagerFocusable\", \"\", \"format\", \"n0\", 3, \"spinners\", \"decimals\", \"size\", \"disabled\", \"value\", \"min\", \"max\", \"autoCorrect\", \"inputAttributes\", \"title\", \"kendoEventsOutsideAngular\"]],\n template: function PagerInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵelement(2, \"kendo-numerictextbox\", 1);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction0(15, _c4));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.textFor(\"page\"), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"spinners\", false)(\"decimals\", 0)(\"size\", ctx.size)(\"disabled\", !ctx.hasPages)(\"value\", ctx.current)(\"min\", ctx.hasPages ? 1 : 0)(\"max\", ctx.totalPages)(\"autoCorrect\", true)(\"inputAttributes\", i0.ɵɵpureFunction1(16, _c5, ctx.textFor(\"inputLabel\")))(\"title\", ctx.textFor(\"pageNumberInputTitle\"))(\"kendoEventsOutsideAngular\", i0.ɵɵpureFunction2(18, _c6, ctx.handleKeyDown, ctx.handleBlur));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate2(\" \", ctx.textFor(\"of\"), \" \", ctx.totalPages, \" \");\n }\n },\n dependencies: [NgClass, NumericTextBoxComponent, PagerFocusableDirective, EventsOutsideAngularDirective],\n encapsulation: 2\n });\n return PagerInputComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// eslint-disable no-access-missing-member\n/**\n * Displays information about the current page and the total number of records ([see example]({% slug pager_settings %})).\n */\nlet PagerInfoComponent = /*#__PURE__*/(() => {\n class PagerInfoComponent extends PagerElementComponent {\n constructor(localization, cd, pagerContext) {\n super(localization, pagerContext, cd);\n this.pagerContext = pagerContext;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get maxItems() {\n return Math.min(this.currentPage * this.pageSize, this.total);\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {number}\n * @memberOf PagerInfoComponent\n */\n get currentPageText() {\n return this.total ? (this.currentPage - 1) * this.pageSize + 1 : 0;\n }\n /**\n * @hidden\n *\n * @readonly\n * @type {boolean}\n * @memberOf PagerInfoComponent\n */\n get classes() {\n return true;\n }\n onChanges({\n total,\n skip,\n pageSize\n }) {\n this.total = total;\n this.skip = skip;\n this.pageSize = pageSize;\n this.cd.markForCheck();\n }\n }\n PagerInfoComponent.ɵfac = function PagerInfoComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerInfoComponent)(i0.ɵɵdirectiveInject(i1.LocalizationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PagerContextService));\n };\n PagerInfoComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerInfoComponent,\n selectors: [[\"kendo-datapager-info\"]],\n hostVars: 2,\n hostBindings: function PagerInfoComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"k-pager-info\", ctx.classes);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 5,\n template: function PagerInfoComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n i0.ɵɵtextInterpolate5(\"\", ctx.currentPageText, \" - \", ctx.maxItems, \" \", ctx.textFor(\"of\"), \" \", ctx.total, \" \", ctx.textFor(\"items\"), \"\");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n return PagerInfoComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @hidden\n */\nconst packageMetadata = {\n name: '@progress/kendo-angular-pager',\n productName: 'Kendo UI for Angular',\n productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],\n publishDate: 1728372430,\n version: '16.11.0',\n licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'\n};\n\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_MEDIUM = 600;\n/**\n * @hidden\n */\nconst RESPONSIVE_BREAKPOINT_LARGE = 768;\nlet PagerComponent = /*#__PURE__*/(() => {\n class PagerComponent {\n constructor(pagerContext, element, localization, renderer, ngZone, navigationService) {\n this.pagerContext = pagerContext;\n this.element = element;\n this.localization = localization;\n this.renderer = renderer;\n this.ngZone = ngZone;\n this.navigationService = navigationService;\n /**\n * Represents the total number of data items in the collection.\n */\n this.total = 0;\n /**\n * Defines the number of data items to be skipped.\n */\n this.skip = 0;\n /**\n * Sets the maximum numeric buttons count before the buttons are collapsed.\n */\n this.buttonCount = 10;\n /**\n * Toggles the information about the current page and the total number of records.\n */\n this.info = true;\n /**\n * Defines the type of the pager.\n */\n this.type = 'numeric';\n /**\n * Toggles the **Previous** and **Next** buttons.\n */\n this.previousNext = true;\n /**\n * Fires when the current page of the Pager is changed ([see example](slug:overview_pager)).\n * You have to handle the event yourself and page the data.\n */\n this.pageChange = new EventEmitter();\n /**\n * Fires when the page size of the Pager is changed.\n * You have to handle the event yourself and page the data.\n * If the event is prevented, the page size will remain unchanged ([see example]({% slug pager_events %})).\n */\n this.pageSizeChange = new EventEmitter();\n this.pagerClass = true;\n this.widgetRole = 'application';\n this.roleDescription = 'pager';\n this.keyShortcuts = 'Enter ArrowRight ArrowLeft';\n this.hostTabindex = '0';\n this.subscriptions = new Subscription();\n this._templateContext = {};\n this._pageSizeValues = DEFAULT_PAGE_SIZE_VALUES;\n this.isInnerNavigationEnabled = false;\n this._navigable = false;\n this._size = DEFAULT_SIZE;\n this.resizeHandler = () => {\n if (this.template?.first) {\n return;\n }\n const width = this.element.nativeElement.offsetWidth;\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n if (this.numericButtons) {\n const selectElement = this.numericButtons.selectElement.nativeElement;\n const numbersElement = this.numericButtons.numbersElement.nativeElement;\n this.renderer.removeStyle(numbersElement, 'display');\n this.renderer.setStyle(selectElement, 'display', 'none');\n this.renderer.addClass(selectElement, 'k-hidden');\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n this.renderer.removeStyle(selectElement, 'display');\n this.renderer.removeClass(selectElement, 'k-hidden');\n this.renderer.setStyle(numbersElement, 'display', 'none');\n } else {\n this.renderer.addClass(selectElement, 'k-hidden');\n }\n }\n if (this.pagerInfo) {\n this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');\n if (width < RESPONSIVE_BREAKPOINT_LARGE) {\n this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');\n }\n }\n if (this.pagerPageSizes) {\n this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');\n }\n }\n });\n });\n };\n validatePackage(packageMetadata);\n this.direction = localization.rtl ? 'rtl' : 'ltr';\n }\n /**\n * Shows a dropdown for selecting the page size.\n * When set to `true`, the dropdown will contain the default list of options - 5, 10, 20.\n * To customize the list of options, set `pageSizeValues` to an array of the desired values.\n * The array can contain numbers and [PageSizeItem]({% slug api_pager_pagesizeitem %}) objects.\n */\n set pageSizeValues(pageSizeValues) {\n this._pageSizeValues = Array.isArray(pageSizeValues) ? pageSizeValues : pageSizeValues ? DEFAULT_PAGE_SIZE_VALUES : false;\n }\n get pageSizeValues() {\n return this._pageSizeValues;\n }\n /**\n * If set to `true`, the user can use dedicated shortcuts to interact with the Pager ([see example]({% slug keyboard_navigation_pager %})).\n * By default, navigation is disabled and the Pager content is accessible in the normal tab sequence.\n * @default false\n */\n set navigable(value) {\n this._navigable = value;\n this.navigationService.isNavigable = value;\n }\n get navigable() {\n return this._navigable;\n }\n /**\n * Specifies the padding of all Pager elements.\n *\n * The possible values are:\n * * `small`\n * * `medium` (default)\n * * `large`\n * * `none`\n */\n set size(size) {\n const newSize = size ? size : DEFAULT_SIZE;\n this.handleClasses(newSize, 'size');\n this._size = newSize;\n }\n get size() {\n return this._size;\n }\n get dir() {\n return this.direction;\n }\n /**\n * @hidden\n */\n focusHandler(ev) {\n const isInnerNavigationEnabled = ev.target !== this.element.nativeElement;\n this.navigationService.toggleInnerNavigation(isInnerNavigationEnabled);\n }\n get totalPages() {\n return Math.ceil((this.total || 0) / this.pageSize);\n }\n get currentPage() {\n return Math.floor((this.skip || 0) / this.pageSize) + 1;\n }\n get templateContext() {\n const context = this._templateContext;\n context.totalPages = this.totalPages;\n context.total = this.total;\n context.skip = this.skip;\n context.pageSize = this.pageSize;\n context.currentPage = this.currentPage;\n return context;\n }\n ngOnInit() {\n this.subscriptions.add(this.pagerContext.pageChange.subscribe(this.changePage.bind(this)));\n this.subscriptions.add(this.pagerContext.pageSizeChange.subscribe(this.changePageSize.bind(this)));\n this.subscriptions.add(this.resizeSensor.resize.subscribe(() => this.resizeHandler()));\n this.subscriptions.add(this.localization.changes.subscribe(({\n rtl\n }) => {\n this.direction = rtl ? 'rtl' : 'ltr';\n }));\n this.subscriptions.add(this.navigationService.innerNavigationChange.subscribe(this.innerNavigationChange.bind(this)));\n if (this.navigable) {\n const wrapper = this.element.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n this.subscriptions.add(this.renderer.listen(wrapper, 'keydown', this.keyDownHandler.bind(this)));\n });\n }\n }\n ngAfterViewInit() {\n this.resizeHandler();\n this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);\n this.subscriptions.add(this.template.changes.subscribe(() => {\n this.resizeHandler();\n }));\n this.handleClasses(this.size, 'size');\n }\n ngOnChanges(changes) {\n if (anyChanged([\"pageSize\", \"skip\", \"total\"], changes, false)) {\n this.pagerContext.notifyChanges({\n pageSize: this.pageSize,\n skip: this.skip,\n total: this.total\n });\n this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);\n }\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n /**\n * @hidden\n */\n changePage(event) {\n this.pageChange.emit(event);\n }\n /**\n * @hidden\n */\n changePageSize(event) {\n this.pageSizeChange.emit(event);\n if (!event.isDefaultPrevented()) {\n if (event.newPageSize === 'all') {\n this.pageChange.emit({\n skip: 0,\n take: this.total\n });\n } else {\n this.pageChange.emit({\n skip: 0,\n take: event.newPageSize\n });\n }\n }\n }\n /**\n * @hidden\n */\n onPageSizeChange(event) {\n this.pageSizeChange.emit(event);\n if (!event.isDefaultPrevented()) {\n this.pageChange.emit({\n skip: this.skip,\n take: event.newPageSize\n });\n }\n }\n textFor(value) {\n return this.localization.get(value);\n }\n get ariaLabel() {\n return `${this.textFor('page')} ${this.currentPage} ${this.textFor('of')} ${this.totalPages}`;\n }\n keyDownHandler(e) {\n const target = e.target;\n const wrapper = this.element.nativeElement;\n const isArrowLeftOrPageUp = e.keyCode === Keys.ArrowLeft || e.keyCode === Keys.PageUp;\n const isArrowRightOrPageDown = e.keyCode === Keys.ArrowRight || e.keyCode === Keys.PageDown;\n const isEnter = e.keyCode === Keys.Enter;\n const isHome = e.keyCode === Keys.Home;\n const isEnd = e.keyCode === Keys.End;\n const isEsc = e.keyCode === Keys.Escape;\n const isTab = e.keyCode === Keys.Tab;\n const isFirstPage = this.currentPage === 1;\n const isLastPage = this.currentPage === this.totalPages;\n this.ngZone.run(() => {\n if (isHome) {\n e.preventDefault();\n !isFirstPage && this.pagerContext.changePage(0);\n } else if (isEnd) {\n e.preventDefault();\n !isLastPage && this.pagerContext.changePage(this.totalPages - 1);\n } else if (this.isInnerNavigationEnabled) {\n if (isEsc) {\n this.navigationService.toggleInnerNavigation(false);\n wrapper.focus();\n } else if (isTab) {\n this.navigationService.keepFocusWithinComponent(wrapper, target, e);\n }\n } else {\n if (isArrowLeftOrPageUp) {\n e.preventDefault();\n !isFirstPage && this.pagerContext.prevPage();\n } else if (isArrowRightOrPageDown) {\n e.preventDefault();\n !isLastPage && this.pagerContext.nextPage();\n } else if (isEnter) {\n if (e.target !== wrapper) {\n return;\n }\n e.preventDefault();\n const [firstFocusable] = this.navigationService.getFirstAndLastFocusable(wrapper);\n this.navigationService.toggleInnerNavigation(true);\n firstFocusable?.focus();\n }\n }\n });\n }\n innerNavigationChange(value) {\n this.isInnerNavigationEnabled = value;\n }\n handleClasses(value, input) {\n const elem = this.element.nativeElement;\n const classes = getStylingClasses('pager', input, this[input], value);\n if (classes.toRemove) {\n this.renderer.removeClass(elem, classes.toRemove);\n }\n if (classes.toAdd) {\n this.renderer.addClass(elem, classes.toAdd);\n }\n }\n }\n PagerComponent.ɵfac = function PagerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerComponent)(i0.ɵɵdirectiveInject(PagerContextService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.LocalizationService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(PagerNavigationService));\n };\n PagerComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagerComponent,\n selectors: [[\"kendo-datapager\"]],\n contentQueries: function PagerComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, PagerTemplateDirective, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t);\n }\n },\n viewQuery: function PagerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(ResizeSensorComponent, 7);\n i0.ɵɵviewQuery(PagerInfoComponent, 5, ElementRef);\n i0.ɵɵviewQuery(PagerPageSizesComponent, 5, ElementRef);\n i0.ɵɵviewQuery(PagerNumericButtonsComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resizeSensor = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pagerInfo = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pagerPageSizes = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.numericButtons = _t.first);\n }\n },\n hostVars: 7,\n hostBindings: function PagerComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focusin\", function PagerComponent_focusin_HostBindingHandler($event) {\n return ctx.focusHandler($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.widgetRole)(\"aria-roledescription\", ctx.roleDescription)(\"aria-keyshortcuts\", ctx.keyShortcuts)(\"tabindex\", ctx.hostTabindex)(\"dir\", ctx.dir);\n i0.ɵɵclassProp(\"k-pager\", ctx.pagerClass);\n }\n },\n inputs: {\n total: \"total\",\n skip: \"skip\",\n pageSize: \"pageSize\",\n buttonCount: \"buttonCount\",\n info: \"info\",\n type: \"type\",\n pageSizeValues: \"pageSizeValues\",\n previousNext: \"previousNext\",\n navigable: \"navigable\",\n size: \"size\"\n },\n outputs: {\n pageChange: \"pageChange\",\n pageSizeChange: \"pageSizeChange\"\n },\n exportAs: [\"kendoDataPager\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([LocalizationService, PagerContextService, PagerNavigationService, {\n provide: L10N_PREFIX,\n useValue: 'kendo.pager'\n }]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 2,\n consts: () => {\n let i18n_0;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the first page button in the Pager\n * @meaning kendo.pager.firstPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_0 = goog.getMsg(\"Go to the first page\");\n i18n_0 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_0;\n } else {\n i18n_0 = $localize`:kendo.pager.firstPage|The label for the first page button in the Pager:Go to the first page`;\n }\n let i18n_1;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the previous page button in the Pager\n * @meaning kendo.pager.previousPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_1 = goog.getMsg(\"Go to the previous page\");\n i18n_1 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_1;\n } else {\n i18n_1 = $localize`:kendo.pager.previousPage|The label for the previous page button in the Pager:Go to the previous page`;\n }\n let i18n_2;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the next page button in the Pager\n * @meaning kendo.pager.nextPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_2 = goog.getMsg(\"Go to the next page\");\n i18n_2 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_2;\n } else {\n i18n_2 = $localize`:kendo.pager.nextPage|The label for the next page button in the Pager:Go to the next page`;\n }\n let i18n_3;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the last page button in the Pager\n * @meaning kendo.pager.lastPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_3 = goog.getMsg(\"Go to the last page\");\n i18n_3 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_3;\n } else {\n i18n_3 = $localize`:kendo.pager.lastPage|The label for the last page button in the Pager:Go to the last page`;\n }\n let i18n_4;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the current page number in the Pager\n * @meaning kendo.pager.page\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_4 = goog.getMsg(\"Page\");\n i18n_4 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_4;\n } else {\n i18n_4 = $localize`:kendo.pager.page|The label before the current page number in the Pager:Page`;\n }\n let i18n_5;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label before the total pages number in the Pager\n * @meaning kendo.pager.of\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_5 = goog.getMsg(\"of\");\n i18n_5 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_5;\n } else {\n i18n_5 = $localize`:kendo.pager.of|The label before the total pages number in the Pager:of`;\n }\n let i18n_6;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the pager input in the Pager\n * @meaning kendo.pager.pageNumberInputTitle\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_6 = goog.getMsg(\"Page Number\");\n i18n_6 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_6;\n } else {\n i18n_6 = $localize`:kendo.pager.pageNumberInputTitle|The label for the pager input in the Pager:Page Number`;\n }\n let i18n_7;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label after the total pages number in the Pager\n * @meaning kendo.pager.items\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_7 = goog.getMsg(\"items\");\n i18n_7 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_7;\n } else {\n i18n_7 = $localize`:kendo.pager.items|The label after the total pages number in the Pager:items`;\n }\n let i18n_8;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The label for the page size chooser in the Pager\n * @meaning kendo.pager.itemsPerPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_8 = goog.getMsg(\"items per page\");\n i18n_8 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_8;\n } else {\n i18n_8 = $localize`:kendo.pager.itemsPerPage|The label for the page size chooser in the Pager:items per page`;\n }\n let i18n_9;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the title and aria-label attributes applied to the page chooser in the Pager\n * @meaning kendo.pager.selectPage\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_9 = goog.getMsg(\"Select page\");\n i18n_9 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_9;\n } else {\n i18n_9 = $localize`:kendo.pager.selectPage|The text of the title and aria-label attributes applied to the page chooser in the Pager:Select page`;\n }\n let i18n_10;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc The text of the aria-label attribute applied to the input element for entering the page number.\n * @meaning kendo.pager.inputLabel\n */\n const MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_10 = goog.getMsg(\"Type a page number\");\n i18n_10 = MSG_E__AGENT__WORK_26_S_FRONTEND_NODE_MODULES__PROGRESS_KENDO_ANGULAR_PAGER_FESM2020_PROGRESS_KENDO_ANGULAR_PAGER_MJS_10;\n } else {\n i18n_10 = $localize`:kendo.pager.inputLabel|The text of the aria-label attribute applied to the input element for entering the page number.:Type a page number`;\n }\n return [[\"kendoDataPagerLocalizedMessages\", \"\", \"firstPage\", i18n_0, \"previousPage\", i18n_1, \"nextPage\", i18n_2, \"lastPage\", i18n_3, \"page\", i18n_4, \"of\", i18n_5, \"pageNumberInputTitle\", i18n_6, \"items\", i18n_7, \"itemsPerPage\", i18n_8, \"selectPage\", i18n_9, \"inputLabel\", i18n_10], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"k-pager-numbers-wrap\"], [3, \"size\", 4, \"ngIf\"], [3, \"size\", \"buttonCount\", 4, \"ngIf\"], [3, \"size\", \"pageSizes\", 4, \"ngIf\"], [3, \"size\"], [3, \"size\", \"buttonCount\"], [3, \"size\", \"pageSizes\"]];\n },\n template: function PagerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n i0.ɵɵtemplate(1, PagerComponent_ng_container_1_Template, 1, 2, \"ng-container\", 1)(2, PagerComponent_ng_container_2_Template, 8, 6, \"ng-container\", 2);\n i0.ɵɵelement(3, \"kendo-resize-sensor\");\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.template.first == null ? null : ctx.template.first.templateRef);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(ctx.template == null ? null : ctx.template.first == null ? null : ctx.template.first.templateRef));\n }\n },\n dependencies: [LocalizedMessagesDirective, NgIf, NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerPageSizesComponent, PagerInfoComponent, ResizeSensorComponent],\n encapsulation: 2\n });\n return PagerComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Utility array that contains all `@progress/kendo-angular-pager` related components and directives\n */\nconst KENDO_PAGER = [CustomMessagesComponent, PagerFocusableDirective, PagerInfoComponent, PagerInputComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PagerComponent];\n\n// IMPORTANT: NgModule export kept for backwards compatibility\n/**\n * @hidden\n */\nlet PagerModule = /*#__PURE__*/(() => {\n class PagerModule {}\n PagerModule.ɵfac = function PagerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PagerModule)();\n };\n PagerModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PagerModule\n });\n PagerModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [IconsService, PopupService, ResizeBatchService],\n imports: [CustomMessagesComponent, PagerInfoComponent, PagerInputComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerComponent]\n });\n return PagerModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CustomMessagesComponent, KENDO_PAGER, LocalizedMessagesDirective, PageSizeChangeEvent, PagerComponent, PagerFocusableDirective, PagerInfoComponent, PagerInputComponent, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective };"],"mappings":"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","names":["init_core","init_core","firstDayInWeek","date","weekStartDay","Day","first","cloneDate","init_esm","init_operators","init_dist","init_progress_kendo_angular_intl","_c0","_c1","_c2","a0","PagerNumericButtonsComponent_option_2_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r1","ɵɵnextContext","ɵɵproperty","ɵɵattribute","PagerNumericButtonsComponent_option_3_Template","num_r3","ɵɵpureFunction1","ɵɵadvance","ɵɵtextInterpolate1","PagerNumericButtonsComponent_option_4_Template","PagerNumericButtonsComponent_button_7_Template","_r4","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ɵɵresetView","PagerNumericButtonsComponent_button_8_Template","_r5","num_r6","PagerNumericButtonsComponent_button_9_Template","_r7","_c3","a1","PagerComponent_div_0_Template","_r1","$event","PagerComponent_ng_container_1_Template","ɵɵelementContainer","PagerComponent_ng_container_2_kendo_treelist_pager_prev_buttons_2_Template","ɵɵelement","PagerComponent_ng_container_2_kendo_treelist_pager_numeric_buttons_3_Template","PagerComponent_ng_container_2_kendo_treelist_pager_input_4_Template","PagerComponent_ng_container_2_kendo_treelist_pager_next_buttons_5_Template","PagerComponent_ng_container_2_kendo_treelist_pager_info_6_Template","PagerComponent_ng_container_2_kendo_treelist_pager_page_sizes_7_Template","PagerComponent_ng_container_2_Template","ɵɵelementContainerStart","ɵɵtemplate","ɵɵelementContainerEnd","PagerComponent_div_3_Template","_r3","PagerComponent_kendo_resize_sensor_4_Template","_c4","_c5","CellComponent_ng_container_1_ng_container_1_kendo_icon_wrapper_1_Template","ctx_r0","CellComponent_ng_container_1_ng_container_1_kendo_icon_wrapper_3_Template","CellComponent_ng_container_1_ng_container_1_span_4_Template","CellComponent_ng_container_1_ng_container_1_Template","ɵɵpipe","ɵɵpipeBind2","CellComponent_ng_container_1_ng_container_2_Template","CellComponent_ng_container_1_ng_container_3_ng_container_1_Template","childColumn_r2","ɵɵpipeBind3","CellComponent_ng_container_1_ng_container_3_Template","CellComponent_ng_container_1_ng_container_4_Template","ɵɵtextInterpolate","CellComponent_ng_container_1_ng_template_5_Template","CellComponent_ng_container_1_ng_container_6_Template","CellComponent_ng_container_1_Template","CellComponent_ng_container_2_ng_container_1_Template","CellComponent_ng_container_2_ng_container_2_kendo_numerictextbox_1_Template","CellComponent_ng_container_2_ng_container_2_kendo_datepicker_2_Template","CellComponent_ng_container_2_ng_container_2_input_3_Template","CellComponent_ng_container_2_ng_container_2_input_4_Template","CellComponent_ng_container_2_ng_container_2_Template","CellComponent_ng_container_2_Template","_c6","_c7","_c8","a2","a3","a4","a5","a6","TableBodyComponent_tr_0_ng_container_2_Template","TableBodyComponent_tr_0_ng_container_3_Template","TableBodyComponent_tr_0_Template","TableBodyComponent_ng_container_1_tr_1_td_1_Template","column_r2","columnIndex_r3","item_r4","ɵɵclassProp","TableBodyComponent_ng_container_1_tr_1_Template","ctx_r4","rowIndex_r6","ɵɵclassMapInterpolate1","ɵɵpureFunction2","TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_kendo_icon_wrapper_1_Template","TableBodyComponent_ng_container_1_tr_2_td_1_ng_container_1_Template","ɵɵpipeBind1","TableBodyComponent_ng_container_1_tr_2_td_1_Template","column_r7","columnIndex_r8","ɵɵpureFunction7","TableBodyComponent_ng_container_1_tr_2_Template","TableBodyComponent_ng_container_1_Template","_c9","ColGroupComponent_col_0_Template","column_r1","ɵɵstyleProp","_c10","_c11","_c12","_c13","_c14","ListComponent_div_0_Template","ɵɵpureFunction4","ListComponent_kendo_resize_sensor_8_Template","ListComponent_kendo_resize_sensor_9_Template","ListComponent_div_12_Template","ListComponent_div_13_Template","_c15","_c16","FilterCellOperatorsComponent_kendo_dropdownlist_0_Template","ɵɵpureFunction0","FilterCellOperatorsComponent_button_1_Template","_c17","_c18","FilterCellComponent_ng_container_0_ng_container_2_Template","FilterCellComponent_ng_container_0_ng_container_3_1_ng_template_0_Template","FilterCellComponent_ng_container_0_ng_container_3_1_Template","FilterCellComponent_ng_container_0_ng_container_3_Template","FilterCellComponent_ng_container_0_Template","_c19","FilterRowComponent_td_0_Template","columnIndex_r2","ctx_r2","StringFilterMenuComponent_kendo_dropdownlist_1_Template","StringFilterMenuComponent_kendo_treelist_string_filter_menu_input_2_Template","NumericFilterMenuComponent_kendo_dropdownlist_1_Template","NumericFilterMenuComponent_kendo_treelist_numeric_filter_menu_input_2_Template","DateFilterMenuComponent_kendo_dropdownlist_1_Template","DateFilterMenuComponent_kendo_treelist_date_filter_menu_input_2_Template","_c20","BooleanFilterMenuComponent_li_1_Template","item_r2","FilterMenuContainerComponent_ng_container_3_Template","FilterMenuContainerComponent_ng_container_4_1_ng_template_0_Template","FilterMenuContainerComponent_ng_container_4_1_Template","FilterMenuContainerComponent_ng_container_4_Template","ColumnMenuItemComponent_div_0_Template","content_r1","ɵɵreference","ColumnMenuItemComponent_ng_template_1_span_3_Template","ColumnMenuItemComponent_ng_template_1_span_4_Template","ColumnMenuItemComponent_ng_template_1_div_5_Template","ColumnMenuItemComponent_ng_template_1_Template","_r2","ColumnMenuFilterComponent_ng_template_1_Template","ColumnListComponent_label_1_Template","index_r2","ColumnListComponent_div_2_Template","ColumnMenuChooserComponent_ng_template_1_Template","_c21","_c22","ColumnMenuComponent_ng_template_3_Template","ctx_r3","defaultTemplate_r5","ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_sort_0_Template","ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_lock_1_Template","ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_chooser_2_Template","_r6","ColumnMenuComponent_ng_template_5_kendo_treelist_columnmenu_filter_3_Template","ColumnMenuComponent_ng_template_5_Template","FilterMenuComponent_ng_template_3_Template","_c23","_c24","_c25","_c26","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_filter_menu_0_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_kendo_treelist_column_menu_1_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_2_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_ng_template_3_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_1_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_template_3_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_ng_container_4_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_icon_wrapper_6_Template","ɵɵpropertyInterpolate1","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_span_7_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_filter_menu_8_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_kendo_treelist_column_menu_9_Template","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_2_Template","link_r5","HeaderComponent_tr_0_ng_template_1_th_0_ng_template_3_Template","HeaderComponent_tr_0_ng_template_1_th_0_span_4_Template","HeaderComponent_tr_0_ng_template_1_th_0_Template","ctx_r6","last_r9","levelIndex_r10","HeaderComponent_tr_0_ng_template_1_th_1_kendo_treelist_column_menu_1_Template","HeaderComponent_tr_0_ng_template_1_th_1_ng_template_2_Template","HeaderComponent_tr_0_ng_template_1_th_1_ng_template_3_Template","HeaderComponent_tr_0_ng_template_1_th_1_span_4_Template","HeaderComponent_tr_0_ng_template_1_th_1_Template","ɵɵpureFunction3","HeaderComponent_tr_0_ng_template_1_Template","HeaderComponent_tr_0_Template","HeaderComponent_tr_1_Template","ToolbarComponent_0_ng_template_0_Template","ToolbarComponent_0_Template","_c27","_c28","_c29","_c30","_c31","TreeListComponent_kendo_treelist_toolbar_2_Template","TreeListComponent_ng_template_5_div_0_div_1_Template","TreeListComponent_ng_template_5_div_0_div_7_Template","TreeListComponent_ng_template_5_div_0_Template","TreeListComponent_ng_template_5_Template","TreeListComponent_ng_template_6_thead_2_Template","TreeListComponent_ng_template_6_div_4_Template","TreeListComponent_ng_template_6_Template","TreeListComponent_kendo_treelist_pager_7_Template","TreeListComponent_kendo_treelist_toolbar_8_Template","TreeListComponent_ng_template_9_Template","_c32","BaseCommandDirective_kendo_icon_wrapper_0_Template","BaseCommandDirective_span_1_Template","ɵɵsanitizeUrl","BaseCommandDirective_span_2_Template","_c33","EditCommandDirective_kendo_icon_wrapper_0_Template","EditCommandDirective_span_1_Template","EditCommandDirective_span_2_Template","_c34","CancelCommandDirective_kendo_icon_wrapper_0_Template","CancelCommandDirective_span_1_Template","CancelCommandDirective_span_2_Template","_c35","SaveCommandDirective_kendo_icon_wrapper_0_Template","SaveCommandDirective_span_1_Template","SaveCommandDirective_span_2_Template","_c36","RemoveCommandDirective_kendo_icon_wrapper_0_Template","RemoveCommandDirective_span_1_Template","RemoveCommandDirective_span_2_Template","_c37","AddCommandDirective_kendo_icon_wrapper_0_Template","AddCommandDirective_span_1_Template","AddCommandDirective_span_2_Template","ColumnChooserComponent_ng_template_2_Template","packageMetadata","CellTemplateDirective","templateRef","__ngFactoryType__","ɵɵdirectiveInject","TemplateRef","ɵɵdefineDirective","EditTemplateDirective","ColumnMenuTemplateDirective","OptionChangesService","EventEmitter","ɵɵdefineInjectable","FooterTemplateDirective","HeaderTemplateDirective","isSpanColumn","column","isCheckboxColumn","isRowReorderColumn","isColumnContainer","ColumnBase","parent","optionChanges","QueryList","value","totalColumnLevels","template","_changes","rf","ctx","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵNgOnChangesFeature","EMPTY_REGEX","isPresent","isBlank","isArray","isTruthy","isNullOrEmptyString","observe","list","merge","of","isUniversal","isString","isNumber","extractFormat","format","not","fn","args","or","conditions","acc","x","and","Skip","InjectionToken","createPromise","resolveFn","rejectFn","promise","resolve","reject","data","iterator","getIterator","keys","proto","i","key","FRAME_DURATION","wnd","requestAnimationFrame","callback","cancelAnimationFrame","isColumnEditable","formGroup","replaceMessagePlaceholder","message","name","FilterCellTemplateDirective","FilterMenuTemplateDirective","isColumnComponent","ColumnComponent","ɵɵdefineComponent","ɵɵProvidersFeature","forwardRef","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","isSpanColumnComponent","SpanColumnComponent","_value","total","editTemplate","c","expandColumns","columns","expandColumnsWithSpan","columnsToRender","sumProp","prop","array","prev","curr","sumColumnWidths","columnsSpan","validField","isValidFieldName","fieldName","children","child","leafColumns","someLeafColumn","resizableColumns","sortColumns","orderBy","isInSpanColumn$1","isColumnGroupComponent","ColumnGroupComponent","canCreateElement","isDocumentAvailable","cachedScrollbarWidth","cachedPixelRatio","cachedRtlScrollLeft","scrollbarWidth","div","rtlScrollLeft","innerDiv","initial","BrowserSupportService","zone","changeDetector","fromEvent","auditTime","ɵɵinject","NgZone","ChangeDetectorRef","EXPANDED_STATE","UNSELECTED_STATE","NOT_EDITED_STATE","identity$1","item","loadView","view","subject","take","LOADING","ViewRange","_ViewRange","skip","pageSize","pageable","options","isVirtual","rangeType","PagerRange","VirtualRange","_index","_rowIndex","_parent","_items","_children","isPagerSettings","index","items","parentLevel","rowIndex","ViewItemFactory","expandState","editState","selectionState","loaded","fieldAccessor","rootItem","result","dataLevels","itemIndex","itemCount","dataLevel","currentLevel","dataItem","viewItem","expanded","parentId","isObservable","inRange","ViewCollection","_ViewCollection","BehaviorSubject","viewFields","childrenView","idGetter","init","resetChildren","toReset","current","id","Subscription","o","PreventableEvent","CellCloseEvent","identity","EditService","ngZone","Subject","switchMap","group","isNew","originalEvent","reset","lists","diff","idx","ColumnsContainer","currentLevels","lockedLeafColumns","nonLockedLeafColumns","lockedColumns","nonLockedColumns","allColumns","leafColumnsToRender","lockedColumnsToRender","nonLockedColumnsToRender","hasFooter","unlockedWidth","leafIndex","containerLeafColumns","containerColumns","toRenderContainer","leaf","changes","ChangeNotificationService","NoRecordsTemplateDirective","set","pair","clearHeight","pairs","left","right","zip","arr1","arr2","len","setHeight$1","heights","row","getHeights","rows","height","offsetHeight2","syncRowsHeight","table1","table2","activeElement","FilterService","PagerTemplateDirective","PagerContextService","page","nextPage","prevPage","PDFService","component","emitter","isDevMode","PDFExportEvent","SuspendService","bootstrapToMedia","media","browserMatchMedia","ResponsiveService","ExcelService","forEachColumn","forEachLevel","filterHierarchy","predicate","a","b","ColumnList","_ColumnList","totalLevels","ToolbarTemplateDirective","position","ScrollSyncService","el","sourceType","obs","map","scrollLeft","subscription","distinctUntilChanged","y","filter","tap","element","ResizeService","throttleTime","resizes","focusableRegex","NODE_NAME_PREDICATES","toClassList","classNames","hasClasses","namesList","className","matchesClasses","matchesNodeName","nodeName","closest","node","closestInScope","scope","contains$2","matchSelf","isVisible","rect","hasSize","hasPosition","isFocusable","tagName","hasTabIndex","isFocusableWithTabKey","checkVisibility","tabIndex","ariaHidden","findElement","findLastElement","last","findFocusable","findFocusableChild","findLastFocusableChild","rtlScrollPosition","DomEventsService","isLocked","resizeArgs","extra","ColumnResizingService","deltaPercent","action","delta","state","tableMetadata","info","locked","onComplete","observables","table","widths","hasFilterMenu","settings","hasFilterRow","contains$1","node","predicate","PopupCloseEvent","PreventableEvent","e","DEFAULT_POPUP_CLASS","SinglePopupService","popupService","renderer","ngZone","scrollSyncService","localization","Subject","skip","anchor","template","popupRef","popupClass","toggle","isPresent","direction","skipElement","isDocumentAvailable","x","args","__ngFactoryType__","ɵɵinject","PopupService","Renderer2","NgZone","ScrollSyncService","LocalizationService","ɵɵdefineInjectable","append","element","appended","getDocument$1","getWindow$1","offset","clientTop","clientLeft","pageYOffset","pageXOffset","top","left","isTargetBefore","draggable","target","contains","container","position","before","targetRect","offsetWidth","offsetHeight","DragAndDropService","EventEmitter","current","mouseEvent","comparer","nativeElement","updateClass","valid","svg","icon","path","plusIcon","cancelIcon","updateLock","locked","value","lockIcon","unlockIcon","decorate","svgIconsMarkup","viewBox","content","safeTitle","fontIconsMarkup","DragHintService","santizer","iconsService","title","SecurityContext","innerHtml","el","move","DomSanitizer","IconsService","DropCueService","height","width","ColumnReorderService","ColumnReorderEvent","column","newIndex","oldIndex","FOCUS_ROOT_ACTIVE","InjectionToken","FocusRoot","active","group","f","isButton","matchesNodeName","isInputTag","navigableRegex","isNavigableInput","isNavigable","DefaultFocusableElement","host","findFocusable","isVisible","closest","FocusGroup","root","focusable","focused","FocusableDirective","hostElement","isActive","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","NavigationCursor","model","row","rowIndex","colIndex","force","prevColIndex","prevRowIndex","cell","start","end","rowRange","cellRange","activeCol","activeRow","prevRow","lastIndex","virtualCol","nextColIndex","nextRowIndex","nextCell","maxIndex","nextIndex","nextRow","nextPos","ItemMap","result","item","keys","key","callback","ModelCell","modelRow","NavigationModel","modelCell","index","match","rows","currentIndex","firstCell","TreeListFocusableElement","navigationService","ExpandEvent","defaultExpanded","_item","ExpandStateService","dataItem","isExpanded","ScrollRequestService","request","SelectionChangeEvent","action","items","defaultSelected","noop","SelectionService","Subscription","checkboxOnly","dragAndMultiple","treelist","merge","table","isCheckbox","hasClasses","columnIndex","originalEvent","Keys","selected","ctrlKey","toggleSelected","origin","data","ViewCollection","view","selectedItems","select","firstPoint","secondPoint","rangeItems","firstIndex","secondIndex","startIndex","endIndex","leafColumns","startColumnIndex","endColumnIndex","idx","columnIdx","skipFocusable","t","isInSameTreeList","treelistElement","matchHeaderCell","matchDataCell","matchCell","treelistCell","targetCell","isArrowKey","keyCode","isNavigationKey","isInput","isTextInput","isPrintableCharacter","str","NavigationViewport","firstItemIndex","lastItemIndex","dataRowIndex","NavigationService","zone","domEvents","pagerContextService","scrollRequestService","focusRoot","editService","expandState","selectionService","changeDetector","focusableParent","meta","onStableSubscriber","operators","from","map","take","onStable","switchMap","filter","takeUntil","CellCloseEvent","switchMapTo","interval","oldMode","focusInCell","contains$2","focusInActiveRowContent","alreadyActive","findFocusableChild","ahead","behind","wrap","fwd","success","colIdx","preventDefault","modifier","step","nextItemIndex","viewportSize","lastRowIndex","editing","confirm","cancel","navigate","DomEventsService","PagerContextService","EditService","ChangeDetectorRef","NavigationMetadata","headerRows","isVirtual","hasPager","virtualColumns","columns","sequence","IdService","ColumnInfoService","ColumnsContainer","expandColumns","orderBy","list","SortService","ColumnVisibilityChangeEvent","ColumnLockedChangeEvent","defaultTrackBy","LocalEditService","_parent","_id","source","isDevMode","DataBoundTreeComponent","ExpandableTreeComponent","TreeListToolbarNavigationService","ContextService","isNextSibling","dropTarget","dragTarget","isPreviousSibling","getOffset","getDocument","getWindow","hintIcons","hintSVGIcons","insertMiddleIcon","dropPosition","hintStyles","hintClasses","dropIndicatorStyles","dropIndicatorClasses","defaultSelectors","rowIndexAttr","findParent$1","collection","searchItem","field","parent","checked","queue","RowReorderService","ev","rowReorderArgs","hintText","columnFieldsArray","draggedDataItem","columnValue","dragRow","dropRow","dragRowData","dropRowData","_ev","_collection","_field","className","style","itemViewPortCoords","itemDivisionHeight","dropTargetRow","pointerPosition","itemTop","currentDropPosition","destinationItemOffset","indicatorOffsetTop","indicatorOffsetLeft","normalizeSettings","buttonCount","info","type","pageSizes","previousNext","responsive","normalize$1","RESPONSIVE_BREAKPOINT_MEDIUM","RESPONSIVE_BREAKPOINT_LARGE","PagerElementComponent","pagerContext","cd","caretAltLeftIcon","caretAltToLeftIcon","caretAltRightIcon","caretAltToRightIcon","page","PagerInfoComponent","allCount","total","pageSize","ɵɵdefineComponent","rf","ctx","ɵɵclassProp","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ɵɵtext","ɵɵtextInterpolate6","PagerPageSizesComponent","elem","normalizedItems","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","ɵɵelementEnd","ɵɵelement","dropdownlist_r2","ɵɵreference","ɵɵproperty","ɵɵattribute","ɵɵadvance","DropDownListComponent","LabelComponent","PagerNumericButtonsComponent","reminder","num","pageText","valueAsNumber","ɵɵviewQuery","_c0","_c1","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵtemplate","PagerNumericButtonsComponent_option_2_Template","PagerNumericButtonsComponent_option_3_Template","PagerNumericButtonsComponent_option_4_Template","PagerNumericButtonsComponent_button_7_Template","PagerNumericButtonsComponent_button_8_Template","PagerNumericButtonsComponent_button_9_Template","ɵɵstyleProp","NgIf","NgForOf","NgClass","ButtonComponent","PagerNextButtonsComponent","buttonName","skipToPage","PagerInputComponent","event","incomingValue","inputValue","NumericTextBoxComponent","ɵɵtextInterpolate1","ɵɵpureFunction2","_c3","ɵɵtextInterpolate2","EventsOutsideAngularDirective","PagerPrevButtonsComponent","PagerComponent","localizationService","focusGroup","selectElement","numbersElement","context","changes","anyChanged","changesInTemplate","localizationMsg","replaceMessagePlaceholder","isTargetCompElement","isArrowLeft","condition","pageDir","isHome","pageNumber","first","last","findLastFocusableChild","ɵɵProvidersFeature","ɵɵNgOnChangesFeature","PagerComponent_div_0_Template","PagerComponent_ng_container_1_Template","PagerComponent_ng_container_2_Template","PagerComponent_div_3_Template","PagerComponent_kendo_resize_sensor_4_Template","NgTemplateOutlet","ResizeSensorComponent","LoadingComponent","_c4","ɵɵtextInterpolate","NON_DATA_CELL_CLASSES","NON_DATA_ROW_CLASSES","EMPTY_ICON_CLASS","ICON_CLASS","IGNORE_CONTAINER_CLASSES","DRAG_HANDLE_CLASS","LevelItemsPipe","level","hasChildren","count","ɵɵdefinePipe","id$1","nextId$1","LogicalCellDirective","columnInfoService","idService","indexChange","rowIndexChange","wasActive","FORMAT_REGEX","FieldAccessorPipe","intlService","fieldName","format","isNullOrEmptyString","getter","intl","isString","IntlService","CellComponent","caretAltDownIcon","reorderIcon","isCheckboxColumn","isRowReorderColumn","isColumnEditable","isColumnComponent","extractFormat","isSpanColumn","columnsToRender","token","_c5","ɵɵelementContainerStart","CellComponent_ng_container_1_Template","CellComponent_ng_container_2_Template","ɵɵelementContainerEnd","NgSwitch","NgSwitchCase","IconWrapperComponent","ReactiveFormsModule","DefaultValueAccessor","CheckboxControlValueAccessor","NgControlStatus","FormControlDirective","DatePickerComponent","NgSwitchDefault","id","nextId","LogicalRowDirective","navigation","ids","cellIndex","logicalSlaveRowChange","isNewChange","columnCellIndex","cells","TableBodyComponent","changeNotification","selection","allColumns","allColumnsCount","contentColumnsCount","headerFooterColumnsCount","isChanged","clickHandler","mousedownSubscription","clickSubscription","contextmenuSubscription","originalNoRecordText","columnsSpan","isFocusableWithTabKey","closestInScope","matchesClasses","eventArg","forbiddenCellClasses","isValidCell","targetClickable","viewItem","body","currentTarget","isCheckboxCell","viewIndex","ChangeNotificationService","_c6","TableBodyComponent_tr_0_Template","TableBodyComponent_ng_container_1_Template","NgStyle","RowSelectionState","arr","CellSelectionState","columnKey","columnSet","itemKey","state","hasChanges","newKeys","createState","MINIMAL_DRAG_DISTANCE","createElement$1","marquee","marqueeColor","elementUnderCursor$1","clientX","clientY","MarqueeDirective","pressTarget","press","releaseTarget","drag","DraggableDirective","RowHeightService","rowHeight","ScrollAction","PageAction","ScrollBottomAction","SCROLL_BOTTOM_THRESHOLD","ScrollerService","scrollObservable","rowHeightService","scrollTop","subject","BehaviorSubject","Observable","observer","scrollHeight","clientHeight","up","firstItemOffset","overflow","nextTake","nonVisibleBuffer","ResizableContainerDirective","resizeService","enabled","refresh","containerElement","ResizeService","ColGroupComponent","_c9","ColGroupComponent_col_0_Template","columnsToResize","resizableColumns","selector","headerRow","pipe","fns","fn","TableDirective","service","cdr","obs","tap","bufferCount","deltas","delta","sum","columnInfo","widths","dom","header","ColumnResizingService","elementAt","elements","elementOffset","elementIdx","rowAt","cellAt","EMPTY_OBJECT","SCROLLER_FACTORY_TOKEN","DEFAULT_SCROLLER_FACTORY","observable","wheelDeltaY","deltaY","preventLockedScroll","translateY","maybeNativeElement","hasScrollbar","setHeight","bufferSize","ListComponent","scrollerFactory","suspendService","supportService","columnResizingService","pdfService","QueryList","prev","curr","sumColumnWidths","rtl","isLocked","syncRowsHeight","isUniversal","lockedScrollTop","scrollDelta","dir","fromEvent","rowViewport","columnViewport","temp","change","scrollLeft","sensor","delay","itemIndex","isNumber","firstRow","scrollBottom","lastItemOverflows","range","startIdx","endIdx","currentColumns","offsetColumn","ColumnBase","cancelAnimationFrame","requestAnimationFrame","lockedCount","viewportStart","viewportEnd","clientWidth","normalizedScrollLeft","rtlScrollPosition","SuspendService","BrowserSupportService","PDFService","_c10","_c11","_c12","_c13","ListComponent_div_0_Template","ListComponent_kendo_resize_sensor_8_Template","ListComponent_kendo_resize_sensor_9_Template","ListComponent_div_12_Template","ListComponent_div_13_Template","DEFAULTS","normalize","DropTargetDirective","preventOnDblClick$1","release","mouseDown","of","hasClass","isDeleteButton","or","isSortIcon","skipButtons","and","not","elementUnderCursor","hideThenShow","cont","DraggableColumnDirective","hint","cue","nav","_","down","upEvent","cursorElement","hasFilter","hasSort","hasLock","hasColumnChooser","hasItems","copyObject","obj","result","proto","property","cloneFilter","filter","cloneFilters","isCompositeFilterDescriptor","FilterHostDirective","host","resolver","changes","anyChanged","column","filter","instance","__ngFactoryType__","ɵɵdirectiveInject","ViewContainerRef","ComponentFactoryResolver$1","ɵɵdefineDirective","ɵɵNgOnChangesFeature","localizeOperators$1","operators","localization","acc","key","operatorTexts","toJSON","xs","x","FilterOperatorBase","operator","value","isNullOrEmptyString","update","LocalizationService","insertDefaultFilter","index","rootFilter","setFilter","field","defaultOperator","isPresent","logicOperators","flatten","curr","isCompositeFilterDescriptor","trimFilterByField","filtersByField","filterByField","currentFilter","removeFilter","localizeOperators","BaseFilterCellComponent","filterService","QueryList","values","observe","map","q","root","FilterService","rf","ctx","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵclassProp","stringOperators$1","StringFilterComponent","ɵɵInheritDefinitionFeature","FilterInputDirective","valueAccessors","ngZone","element","renderer","EventEmitter","Subject","unsubscribeStart","unsubscribeEnd","isChanged","debounceTime","ariaValue","isDocumentAvailable","focusableElement","inputElement","elementToSetLabel","NG_VALUE_ACCESSOR","NgZone","ElementRef","Renderer2","KendoInput","EMPTY_VALUE_OPERATORS","isEmptyValueOperator","FilterInputWrapperComponent","emptyValueOperator","isBlank","disabled","FilterCellOperatorsComponent","filterClearIcon","filterIcon","dataItem","args","Keys","localizationMsg","columnName","replaceMessagePlaceholder","token","ɵɵdefineComponent","ɵɵviewQuery","_c15","ɵɵStandaloneFeature","ɵɵtemplate","FilterCellOperatorsComponent_kendo_dropdownlist_0_Template","FilterCellOperatorsComponent_button_1_Template","ɵɵproperty","ɵɵadvance","NgIf","DropDownListComponent","FocusableDirective","ButtonComponent","EMPTY_FILTER_OPERATORS","FilterCellWrapperComponent","_c17","ɵɵprojectionDef","ɵɵprojection","ɵɵelementStart","ɵɵlistener","ɵɵtwoWayListener","$event","ɵɵtwoWayBindingSet","ɵɵelementEnd","ɵɵtwoWayProperty","StringFilterCellComponent","ɵɵelement","ɵɵattribute","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormsModule","NgModel","numericOperators","NumericFilterComponent","extractFormat","NumericFilterCellComponent","NumericTextBoxComponent","BooleanFilterComponent","BooleanFilterCellComponent","cd","ChangeDetectorRef","ɵɵpureFunction0","_c16","dateOperators","DateFilterComponent","DateFilterCellComponent","DatePickerComponent","filterComponentFactory","type","FilterCellHostDirective","FilterCellComponent","focusGroup","cloneFilters","FocusGroup","_c18","FilterCellComponent_ng_container_0_Template","NgSwitch","NgSwitchCase","NgTemplateOutlet","FilterRowComponent","_c19","FilterRowComponent_td_0_Template","NgForOf","LogicalCellDirective","fromPercentage","percent","sign","toPercentage","whole","headerWidth","handle","allLeafColumns","columns","expandColumns","c","stopPropagation","event","createMoveStream","service","draggable","mouseDown","takeUntil","tap","pageX","preventOnDblClick","release","of","delay","isInSpanColumn","indexOf","target","list","ignore","skip","current","isParentSpanColumn","ColumnHandleDirective","zone","cdr","Subscription","isTruthy","allLeafs","currentLeafs","leafColumns","columnInfo","isParentSpan","isLastInSpan","e","take","switchMap","originalX","delta","rtl","deltaPercent","newWidth","tableDelta","widths","width","w","level","columnsToRender","DraggableDirective","ColumnResizingService","ɵɵstyleProp","ColumnMenuService","ɵɵdefineInjectable","ColumnMenuItemBase","isDevMode","FilterMenuInputWrapperComponent","StringFilterMenuInputComponent","TextBoxDirective","StringFilterMenuComponent","StringFilterMenuComponent_kendo_dropdownlist_1_Template","StringFilterMenuComponent_kendo_treelist_string_filter_menu_input_2_Template","NumericFilterMenuInputComponent","NumericFilterMenuComponent","NumericFilterMenuComponent_kendo_dropdownlist_1_Template","NumericFilterMenuComponent_kendo_treelist_numeric_filter_menu_input_2_Template","DateFilterMenuInputComponent","popupService","picker","SinglePopupService","_r1","ɵɵgetCurrentView","ɵɵrestoreView","picker_r2","ɵɵreference","ɵɵresetView","DateFilterMenuComponent","DateFilterMenuComponent_kendo_dropdownlist_1_Template","DateFilterMenuComponent_kendo_treelist_date_filter_menu_input_2_Template","BooleanFilterRadioButtonDirective","hostElement","BooleanFilterMenuComponent","domSanitizer","guid","radioValue","DomSanitizer","_c20","BooleanFilterMenuComponent_li_1_Template","RadioButtonDirective","filterMenuComponentFactory","FilterMenuHostDirective","isNoValueOperator","validFilters","trimFilters","findParent","filters","parent","parentLogicOfDefault","def","FilterMenuContainerComponent","parentService","childService","ɵɵProvidersFeature","ɵɵelementContainerStart","FilterMenuContainerComponent_ng_container_3_Template","FilterMenuContainerComponent_ng_container_4_Template","ɵɵelementContainerEnd","ɵɵtext","ɵɵtextInterpolate1","ɵNgNoValidate","NgControlStatusGroup","NgForm","NgClass","ColumnMenuItemContentTemplateDirective","templateRef","TemplateRef","ColumnMenuItemComponent","chevronUpIcon","chevronDownIcon","ColumnMenuItemComponent_div_0_Template","ColumnMenuItemComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","content_r1","IconWrapperComponent","trigger","state","style","transition","animate","ColumnMenuFilterComponent","ColumnMenuFilterComponent_ng_template_1_Template","ColumnListComponent","hasClasses","hidden","changed","callback","checkboxes","length","idx","checkedItems","checkbox","checkedUnlocked","item","filteredColumns","ColumnListComponent_label_1_Template","ColumnListComponent_div_2_Template","ColumnMenuChooserComponent","columnInfoService","changeDetector","columnsIcon","ColumnInfoService","ColumnMenuChooserComponent_ng_template_1_Template","ColumnMenuLockComponent","unlockIcon","lockIcon","locked","allChanged","ColumnMenuSortComponent","sortService","sortAscSmallIcon","sortDescSmallIcon","descriptor","dir","mode","allowUnsort","normalize","sort","s","SortService","POPUP_CLASSES","ColumnMenuComponent","moreVerticalIcon","hasFilter","hasSort","hasColumnChooser","hasLock","anchor","template","anchor_r2","template_r3","ColumnMenuComponent_ng_template_3_Template","ColumnMenuComponent_ng_template_5_Template","ɵɵpureFunction1","_c21","FilterMenuComponent","FilterMenuComponent_ng_template_3_Template","mergeObjects","directions","initialDirection","isRootLevel","ofColumnType","notSameElement","inSameParent","y","isInSpanColumn$1","sameParent","lastNonLocked","notInSpanColumn","reorderable","lockable","rules","and","not","HeaderComponent","hint","cue","reorderService","selectionService","link","closestInScope","isFocusable","showIndexes","desc","isColumnGroupComponent","sortChange","change","isTailing","hasFilterMenu","hasFilterRow","hasItems","_item","first","second","sortColumns","enterStream","merge","leaveStream","dropStream","targetLocked","draggableLocked","arr","firstSpan","t","adjust","levelColumns","isFirst","mouseEvent","changeContainer","targetElement","before","left","offset","halfWidth","isTargetBefore","position","DragHintService","DropCueService","ColumnReorderService","SelectionService","DropTargetDirective","_c23","HeaderComponent_tr_0_Template","HeaderComponent_tr_1_Template","LogicalRowDirective","DraggableColumnDirective","NgStyle","TemplateContextDirective","ToolbarComponent","elem","keyCode","bottomRange","topRange","ContextService","ToolbarComponent_0_Template","Messages","ComponentMessages","ɵMessages_BaseFactory","ɵɵgetInheritedFactory","LocalizedMessagesDirective","forwardRef","createControl","source","FormControl","validateColumnsField","isColumnComponent","isValidFieldName","isInEditedCell","treelistElement","closest","matchesClasses","matchesNodeName","TreeListComponent","supportService","wrapper","changeNotification","editService","pdfService","responsiveService","excelService","scrollSyncService","domEvents","columnResizingService","changeDetectorRef","columnReorderService","navigationService","scrollRequestService","expandStateService","optionChanges","rowReorderService","defaultTrackBy","ColumnsContainer","isUniversal","getter","LocalEditService","ViewCollection","validatePackage","packageMetadata","hasObservers","ColumnVisibilityChangeEvent","ColumnLockedChangeEvent","ColumnList","isObservable","isArray","fn","customNoRecordsTemplate","customPagerTemplate","customToolbarTemplate","padding","right","prev","defaultExpanded","ev","evType","setting","footers","footer","group","options","isNew","FormGroup","fields","firstVisible","promise","createPromise","cols","containerSelector","selector","rowIndex","colIndex","wrap","request","destIndex","isSpanColumnComponent","reloadChildren","columnsForLevel","newIndex","oldIndex","ColumnReorderEvent","expandedColumns","expandColumnsWithSpan","sourceColumnIndex","nextSourceIndex","nextIndex","toSkip","i","colsForParentLevel","colsForLevel","a","b","ColumnComponent","action","formGroup","ariaRoot","resizeCheck","resizeSubscription","orientationSubscription","documentClickSubscription","activeElement","windowBlurSubscription","clickSubscription","keydownSubscription","focused","focusInSubscription","focusOutSubscription","next","node","hasChanges","matchesMedia","PDFExportEvent","observable","syncRowsHeight","resizes","isVirtual","filterRowOffset","headerRows","NavigationMetadata","_","range","viewportColumns","leafViewportColumns","toAdd","lastFromGroup","totalLevels","previous","offsetColumn","ColumnGroupComponent","ColumnBase","result","BrowserSupportService","ChangeNotificationService","EditService","PDFService","ResponsiveService","ExcelService","ScrollSyncService","DomEventsService","NavigationService","ScrollRequestService","ExpandStateService","OptionChangesService","RowReorderService","NoRecordsTemplateDirective","PagerTemplateDirective","ToolbarTemplateDirective","ColumnMenuTemplateDirective","_c27","_c28","_c29","DragTargetContainerDirective","DropTargetContainerDirective","_c30","SuspendService","L10N_PREFIX","PagerContextService","ResizeService","DragAndDropService","FocusRoot","IdService","DataBoundTreeComponent","ExpandableTreeComponent","i18n_0","i18n_1","i18n_2","i18n_3","i18n_4","i18n_5","i18n_6","i18n_7","i18n_8","i18n_9","i18n_10","i18n_11","i18n_12","i18n_13","i18n_14","i18n_15","i18n_16","i18n_17","i18n_18","i18n_19","i18n_20","i18n_21","i18n_22","i18n_23","i18n_24","i18n_25","i18n_26","i18n_27","i18n_28","i18n_29","i18n_30","i18n_31","i18n_32","i18n_33","i18n_34","i18n_35","i18n_36","i18n_37","i18n_38","i18n_39","i18n_40","i18n_41","i18n_42","i18n_43","i18n_44","i18n_45","i18n_46","i18n_47","i18n_48","i18n_49","i18n_50","i18n_51","i18n_52","i18n_53","i18n_54","i18n_55","i18n_56","ɵɵi18nAttributes","TreeListComponent_kendo_treelist_toolbar_2_Template","TreeListComponent_ng_template_5_Template","TreeListComponent_ng_template_6_Template","TreeListComponent_kendo_treelist_pager_7_Template","TreeListComponent_kendo_treelist_toolbar_8_Template","TreeListComponent_ng_template_9_Template","defaultHint_r5","ɵɵi18nExp","ɵɵi18nApply","_c31","TableDirective","ColGroupComponent","ResizableContainerDirective","ListComponent","MarqueeDirective","TableBodyComponent","LoadingComponent","PagerComponent","CustomMessagesComponent","TreeListToolbarFocusableDirective","elements","el","EditingDirectiveBase","treelist","removeItem","shouldRemove","Observable","RowEditingDirectiveBase","ɵRowEditingDirectiveBase_BaseFactory","TemplateEditingDirective","markAllAsTouched","control","controls","inner","insertNewItem","newItem","originalData","insertAt","firstItem","firstRootItem","firstOffset","firstIndex","ReactiveEditingDirective","InCellEditingDirective","BaseBindingDirective","component","_event","children","items","aggregates","process","aggregateBy","HierarchyEditService","bindingDirective","_id","childrenGetter","childrenSetter","idGetter","id","HierarchicalRowReorderService","targetItem","draggedRows","draggedItem","findParent$1","collection","dropTargetItem","draggedItemParent","dropTargetParent","draggedItemIdx","dropTargetItemIdx","dropPosition","ɵHierarchicalRowReorderService_BaseFactory","HierarchyBindingDirective","setter","FlatEditService","idSetter","parentIdSetter","_parent","parentIdGetter","toRemove","itemIndex","FlatRowReorderService","hasParent","sameParents","dropTargetRow","draggedDataItem","dropTargetDataItem","dropTargetIdx","ɵFlatRowReorderService_BaseFactory","ROOT_ID","FlatBindingDirective","o","dropItemId","dropItemParentId","ExpandableDirective","isString","defaultColumnKeyGetter","_column","columnIndex","SelectableDirective","RowSelectionState","createState","currentIndices","TreeListSpacerComponent","CheckboxColumnComponent","CellTemplateDirective","RowReorderColumnComponent","CommandColumnComponent","BaseCommandDirective","_c32","BaseCommandDirective_kendo_icon_wrapper_0_Template","BaseCommandDirective_span_1_Template","BaseCommandDirective_span_2_Template","EditCommandDirective","_c33","EditCommandDirective_kendo_icon_wrapper_0_Template","EditCommandDirective_span_1_Template","EditCommandDirective_span_2_Template","CancelCommandDirective","viewItem","_c34","CancelCommandDirective_kendo_icon_wrapper_0_Template","CancelCommandDirective_span_1_Template","CancelCommandDirective_span_2_Template","SaveCommandDirective","_c35","SaveCommandDirective_kendo_icon_wrapper_0_Template","SaveCommandDirective_span_1_Template","SaveCommandDirective_span_2_Template","RemoveCommandDirective","_c36","RemoveCommandDirective_kendo_icon_wrapper_0_Template","RemoveCommandDirective_span_1_Template","RemoveCommandDirective_span_2_Template","AddCommandDirective","_c37","AddCommandDirective_kendo_icon_wrapper_0_Template","AddCommandDirective_span_1_Template","AddCommandDirective_span_2_Template","stringOperators","AutoCompleteFilterCellComponent","AutoCompleteComponent","ContainsFilterOperatorComponent","DoesNotContainFilterOperatorComponent","EndsWithFilterOperatorComponent","EqualFilterOperatorComponent","IsEmptyFilterOperatorComponent","IsNotEmptyFilterOperatorComponent","IsNotNullFilterOperatorComponent","IsNullFilterOperatorComponent","NotEqualFilterOperatorComponent","StartsWithFilterOperatorComponent","GreaterFilterOperatorComponent","GreaterOrEqualToFilterOperatorComponent","LessFilterOperatorComponent","LessOrEqualToFilterOperatorComponent","AfterFilterOperatorComponent","AfterEqFilterOperatorComponent","BeforeEqFilterOperatorComponent","BeforeFilterOperatorComponent","ColumnChooserComponent","direction","PopupService","ColumnChooserComponent_ng_template_2_Template","GRID_LIST","TABLE","matchesList","matchesNodeName","matchesTable","SHARED_EXPORTS","ColumnComponent","ColumnGroupComponent","LogicalCellDirective","LogicalRowDirective","FocusableDirective","ColGroupComponent","ResizableContainerDirective","TemplateContextDirective","FieldAccessorPipe","SpanColumnComponent","LoadingComponent","FilterCellOperatorsComponent","CheckboxColumnComponent","RowReorderColumnComponent","BODY_EXPORTS","CommandColumnComponent","CellTemplateDirective","CellComponent","NoRecordsTemplateDirective","EditTemplateDirective","EditCommandDirective","CancelCommandDirective","SaveCommandDirective","RemoveCommandDirective","AddCommandDirective","FooterTemplateDirective","HEADER_EXPORTS","HeaderComponent","HeaderTemplateDirective","ColumnHandleDirective","PAGER_EXPORTS","PagerComponent","PagerPrevButtonsComponent","PagerNextButtonsComponent","PagerNumericButtonsComponent","PagerInputComponent","PagerInfoComponent","PagerPageSizesComponent","PagerTemplateDirective","SHARED_FILTER_EXPORTS","ContainsFilterOperatorComponent","DoesNotContainFilterOperatorComponent","EndsWithFilterOperatorComponent","EqualFilterOperatorComponent","IsEmptyFilterOperatorComponent","IsNotEmptyFilterOperatorComponent","IsNotNullFilterOperatorComponent","IsNullFilterOperatorComponent","NotEqualFilterOperatorComponent","StartsWithFilterOperatorComponent","GreaterFilterOperatorComponent","GreaterOrEqualToFilterOperatorComponent","LessFilterOperatorComponent","LessOrEqualToFilterOperatorComponent","AfterFilterOperatorComponent","AfterEqFilterOperatorComponent","BeforeEqFilterOperatorComponent","BeforeFilterOperatorComponent","FilterInputDirective","ROW_FILTER_EXPORTS","FilterRowComponent","FilterCellComponent","FilterCellTemplateDirective","StringFilterCellComponent","NumericFilterCellComponent","AutoCompleteFilterCellComponent","BooleanFilterCellComponent","FilterCellHostDirective","FilterCellWrapperComponent","DateFilterCellComponent","FILTER_MENU_EXPORTS","FilterMenuComponent","FilterMenuContainerComponent","FilterMenuInputWrapperComponent","StringFilterMenuInputComponent","StringFilterMenuComponent","FilterMenuTemplateDirective","NumericFilterMenuComponent","NumericFilterMenuInputComponent","DateFilterMenuInputComponent","DateFilterMenuComponent","FilterMenuHostDirective","BooleanFilterMenuComponent","BooleanFilterRadioButtonDirective","COLUMN_MENU_EXPORTS","ColumnChooserComponent","ColumnMenuChooserComponent","ColumnMenuFilterComponent","ColumnMenuItemComponent","ColumnMenuItemContentTemplateDirective","ColumnMenuSortComponent","ColumnMenuComponent","ColumnMenuLockComponent","ColumnMenuTemplateDirective","KENDO_TREELIST","TreeListComponent","ToolbarTemplateDirective","ToolbarComponent","TreeListSpacerComponent","CustomMessagesComponent","TemplateEditingDirective","ReactiveEditingDirective","InCellEditingDirective","HierarchyBindingDirective","FlatBindingDirective","ExpandableDirective","SelectableDirective","TreeListToolbarFocusableDirective","SHARED_EXPORTS","BODY_EXPORTS","HEADER_EXPORTS","PAGER_EXPORTS","ROW_FILTER_EXPORTS","FILTER_MENU_EXPORTS","COLUMN_MENU_EXPORTS","init_esm","init_dist","init_operators","init_progress_kendo_angular_intl","init_tslib_es6","_c0","_c1","a0","_c2","_c3","a1","GanttTaskComponent_ng_container_2_ng_container_4_Template","rf","ctx","ɵɵelementContainerStart","ɵɵtext","ɵɵelementContainerEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate1","GanttTaskComponent_ng_container_2_ng_template_5_Template","GanttTaskComponent_ng_container_2_Template","ɵɵelement","ɵɵelementStart","ɵɵtemplate","ɵɵtemplateRefExtractor","ɵɵelementEnd","taskContent_r2","ɵɵreference","ɵɵstyleProp","ɵɵproperty","ɵɵpureFunction1","GanttTaskComponent_3_ng_template_0_Template","GanttTaskComponent_3_Template","ɵɵpureFunction2","GanttTaskComponent_ng_container_4_Template","ɵɵclassProp","GanttSummaryTaskComponent_div_2_Template","GanttSummaryTaskComponent_ng_template_3_Template","GanttSummaryTaskComponent_ng_container_5_Template","GanttMilestoneTaskComponent_ng_container_2_Template","_c4","_c5","GanttTasksTableBodyComponent_tr_0_kendo_gantt_milestone_task_3_Template","item_r2","index_r3","ctx_r3","GanttTasksTableBodyComponent_tr_0_ng_template_4_kendo_gantt_summary_task_0_Template","GanttTasksTableBodyComponent_tr_0_ng_template_4_kendo_gantt_task_1_Template","GanttTasksTableBodyComponent_tr_0_ng_template_4_Template","GanttTasksTableBodyComponent_tr_0_Template","task_r5","_c6","GanttHeaderTableBodyComponent_td_1_Template","item_r1","ɵɵattribute","ɵɵtextInterpolate","GanttHeaderTableBodyComponent_td_3_Template","_c7","_c8","_c9","_c10","_c11","_c12","GanttTimelineComponent_tr_11_Template","i_r2","ɵɵclassMapInterpolate1","GanttTimelineComponent_col_15_Template","GanttTimelineComponent_td_18_Template","item_r3","GanttTimelineComponent__svg_polyline_23_Template","ɵɵnamespaceSVG","dependency_r5","_c13","DependenciesTableComponent_ng_template_1_Template","_r1","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ctx_r1","ɵɵresetView","DependenciesTableComponent_ng_template_3_Template","column_r3","rowIndex_r4","DependenciesTableComponent_ng_template_5_Template","column_r5","rowIndex_r6","TaskFieldsComponent_kendo_formfield_1_Template","title_r1","TaskFieldsComponent_kendo_formfield_3_Template","start_r3","TaskFieldsComponent_kendo_formfield_5_Template","end_r4","TaskFieldsComponent_kendo_formfield_6_Template","completionRatio_r5","EditDialogComponent_ng_template_4_Template","EditDialogComponent_ng_template_6_Template","ɵɵtwoWayListener","$event","ɵɵtwoWayBindingSet","ɵɵtwoWayProperty","EditDialogComponent_ng_template_8_Template","_r3","ViewSelectorComponent_option_1_Template","view_r1","ViewSelectorComponent_button_3_Template","view_r4","ToolbarComponent_ng_container_0_kendo_gantt_add_task_1_Template","ToolbarComponent_ng_container_0_kendo_gantt_view_selector_3_Template","ToolbarComponent_ng_container_0_Template","ToolbarComponent_1_ng_template_0_Template","ToolbarComponent_1_Template","_c14","_c15","a2","a3","GanttComponent_kendo_gantt_toolbar_1_Template","GanttComponent_kendo_gantt_timeline_8_Template","ɵɵpureFunction4","GanttComponent_kendo_gantt_toolbar_9_Template","GanttComponent_kendo_gantt_edit_dialog_10_Template","GanttComponent_kendo_dialog_11_Template","GanttComponent_div_12_Template","packageMetadata","NumpadKeys","isArrowUpDownKey","keyCode","Keys","arrowKeyCode","isNavigationKey","navigationKeyCode","isExpandCollapseKey","altKey","isViewDigitKey","digitKeyCode","getIndexFromViewDigitKeyCode","ScrollSyncService","ngZone","Subject","Subscription","args","el","sourceType","obs","fromEvent","map","scrollTop","scrollLeft","comparisonFn","x","y","distinctUntilChanged","event","targetType","source","element","target","take","header","treelist","timeline","__ngFactoryType__","ɵɵinject","NgZone","ɵɵdefineInjectable","DEFAULT_DEPENDENCY_MODEL_FIELDS","DEFAULT_TASK_MODEL_FIELDS","DependencyType","isWorkDay","date","start","end","isWorkHour","isPresent","item","normalizeGanttData","data","setTime$1","date","hours","minutes","seconds","milliseconds","isPresent","result","cloneDate","lastDayOfWeek","standingPoint","firstWeekDay","followingWeek","addWeeks","firstDayOfFollowingWeek","firstDayInWeek","addDays","getTotalDaysInMonth","lastDayOfMonth","getTotalMonthsInBetween","start","end","diff","SCROLLBAR_WIDTH","scrollbarWidth","isDocumentAvailable","div","isColumnGroup","column","isNumber","contender","isString","getClosestTaskIndex","element","parentScope","task","closestInScope","matchesClasses","isPresent","isTask","contender","isToolbar","toolbar","isClearButton","clearButtonContainer","fitToRange","contender","min","max","isPresent","areParentChild","taskA","taskB","parentChildRelationship","taskAParent","taskBParent","MappingService","__spreadValues","DEFAULT_TASK_MODEL_FIELDS","DEFAULT_DEPENDENCY_MODEL_FIELDS","fields","dataItem","field","isPresent","getter","__ngFactoryType__","ɵɵdefineInjectable","DependencyDomService","mapper","Subject","timelineRow","contentContainer","task","element","id","ɵɵinject","MS_PER_SECOND","MS_PER_MINUTE","CurrentTimeMarkerService","renderer","cdr","isDocumentAvailable","total","fractionInsideCell","deltaOffsetToSlot","deltaOffsetInsideSlot","slot","Renderer2","ChangeDetectorRef","getOffsetRelativeToParent","targetParent","offset","offsetParent","getElementRect","relativeContainer","top","left","dependencyCoordinates","from","to","rowHeight","type","minDistanceBeforeTurn","arrowSize","points","minTurnHeight","drawingDown","DependencyType","dir","getArrow","startDir","endDir","additionalTurn","isArrowWest","getArrowWest","getArrowEast","ARROW_SIZE","MIN_DISTANCE_BEFORE_TURN","GanttDependencyDirective","polyline","zone","renderer","mapper","dependencyDomService","Subscription","switchMap","changes","take","map","isPresent","timelineRow","contentContainer","tasks","fromCoordinates","getElementRect","toCoordinates","timelineRowHeight","isDocumentAvailable","points","dependencyCoordinates","parsedCoords","left","top","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","NgZone","Renderer2","MappingService","DependencyDomService","ɵɵdefineDirective","ɵɵNgOnChangesFeature","NavigationService","scrollSyncService","Subject","index","lastAvailableIndex","fitToRange","cell","lastAvailableRowIndex","rowIndex","lastAvailableColIndex","colIndex","metadata","splitbar","removeListener","target","isTask","relatedTarget","event","task","isScrollBeforeTask","isScrollAfterTask","isClearButton","taskIndex","getClosestTaskIndex","ɵɵinject","ScrollSyncService","ɵɵdefineInjectable","EditService","item","data","dataItem","items","dataItemId","taskFormGroup","dependencies","editResultType","updatedIndex","initialValues","isInitializer","forkJoin","v","value","acc","normalizeGanttData","expand","values","el","EMPTY","reduce","children","isObservable","of","OptionChangesService","EventEmitter","setTime","origin","candidate","date","cloneDate","DAY_FORMAT","HOUR_FORMAT","MONTH_FORMAT","YEAR_FORMAT","END_OF_DAY_DATE","TimelineBaseViewService","intlService","localeId","startResult","orderBy","endResult","rangeStart","rangeEnd","start","end","customDateFormat","slots","workDayStart","workDayEnd","hourSpan","startDate","hoursFormat","endDate","slotEnd","isWorkSlot","isWorkHour","startDay","dayFormat","endDay","nextDay","getDate","addDays","isWorking","isWorkDay","weekStart","lastWeekDay","lastDayOfWeek","daySlots","span","firstDay","firstDayInWeek","lastDay","addWeeks","isMainViewType","monthFormat","endMonth","lastDayOfMonth","weekSlots","monthStart","firstDayOfMonth","shortText","addMonths","yearFormat","yearEnd","lastMonthOfYear","monthSlots","__decorate","__param","Inject","LOCALE_ID","__metadata","IntlService","TimelineDayViewService","setTime$1","timeSlots","slotWidth","hourSlots","i","daySlot","hours","TimelineMonthViewService","months","weeks","TimelineWeekViewService","days","TimeLineYearViewService","monthEnd","years","services","TimelineViewService","injector","view","serviceType","Injector","slotUnitDuration","FOCUSED_CLASS","GanttTaskBase","timelineViewService","optionChangesService","cdr","navigationService","taskStart","taskEnd","monthsDiff","getTotalMonthsInBetween","totalDaysInStartMonth","getTotalDaysInMonth","startFraction","endFraction","viewStart","viewStartDate","offsetSlots","currentMonthOffset","overlayWidth","isNumber","activeIndex","isFocused","isActive","tabindex","ChangeDetectorRef","rf","ctx","ɵɵviewQuery","_c0","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵattribute","ɵɵstyleProp","ɵɵclassProp","GanttTaskComponent","editService","xIcon","touchEnabled","ɵɵdefineComponent","ɵɵProvidersFeature","forwardRef","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ɵɵelementStart","ɵɵtemplate","GanttTaskComponent_ng_container_2_Template","GanttTaskComponent_3_Template","ɵɵelementEnd","GanttTaskComponent_ng_container_4_Template","ɵɵproperty","ɵɵadvance","NgClass","NgIf","NgTemplateOutlet","EventsOutsideAngularDirective","IconWrapperComponent","GanttSummaryTaskComponent","isExpanded","GanttSummaryTaskComponent_div_2_Template","GanttSummaryTaskComponent_ng_template_3_Template","ɵɵtemplateRefExtractor","GanttSummaryTaskComponent_ng_container_5_Template","summaryTemplate_r2","ɵɵreference","ɵɵpureFunction2","_c3","GanttMilestoneTaskComponent","ɵɵelement","GanttMilestoneTaskComponent_ng_container_2_Template","GanttTasksTableBodyComponent","isEqual","_c4","_c5","GanttTasksTableBodyComponent_tr_0_Template","NgForOf","ScrollDirection","ScrollAxis","TimelineScrollService","clientTop","clientLeft","isUpperLimitReached","element","axis","isBottomLimitReached","elementSize","scrollElement","step","direction","scrollAxis","initialScrollPosition","currentStep","iterations","getViewportBoundaries","elementRect","topLimit","leftLimit","bottomLimit","rightLimit","TimelineScrollableDirective","timelineScrollableContainer","scrollService","container","visibleBoundaries","GanttHeaderTableBodyComponent","_c6","GanttHeaderTableBodyComponent_td_1_Template","GanttHeaderTableBodyComponent_td_3_Template","GanttTimelineComponent","currentTimeMarkerService","filter","args","timelineHeader","rightContainer","CurrentTimeMarkerService","_c7","_c8","_c9","_c10","_c11","ViewContainerRef","_c12","_r1","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","GanttTimelineComponent_tr_11_Template","GanttTimelineComponent_col_15_Template","GanttTimelineComponent_td_18_Template","ɵɵnamespaceSVG","GanttTimelineComponent__svg_polyline_23_Template","ɵɵnamespaceHTML","ɵɵelementContainer","DraggableDirective","GanttColumnBase","ColumnBase","ɵGanttColumnBase_BaseFactory","ɵɵgetInheritedFactory","CellTemplateDirective","templateRef","TemplateRef","ColumnMenuTemplateDirective","FilterCellTemplateDirective","FilterMenuTemplateDirective","FooterTemplateDirective","HeaderTemplateDirective","EditTemplateDirective","GanttColumnComponent","ColumnComponent","options","parent","QueryList","dirIndex","ɵɵcontentQuery","GanttColumnGroupComponent","ColumnGroupComponent","GanttSpanColumnComponent","SpanColumnComponent","hasChildren","fetchChildren","rowClassCallback","taskClassCallback","isSelected","CellCloseEvent","PreventableEvent","GanttLocalizationService","localizationService","token","LocalizationService","DEFAULT_TREELIST_PANE_SETTINGS","DEFAULT_TIMELINE_PANE_SETTINGS","GanttTaskTemplateDirective","GanttSummaryTaskTemplateDirective","GanttTaskContentTemplateDirective","ToolbarTemplateDirective","position","ViewBase","anyChanged","getEditItem","treeListDataItem","mapPath","DependenciesTableComponent","FormArray","plusIcon","minusIcon","fields","formGroup","FormGroup","FormControl","Validators","val","control","dataItemIndex","field","_control","DependencyType","type","selectedIndex","ɵɵtwoWayListener","ɵɵtwoWayBindingSet","DependenciesTableComponent_ng_template_1_Template","DependenciesTableComponent_ng_template_3_Template","DependenciesTableComponent_ng_template_5_Template","ɵɵpureFunction0","_c13","ɵɵtwoWayProperty","GridComponent","SelectionDirective","ButtonComponent","DropDownListComponent","ReactiveFormsModule","NgControlStatus","FormControlDirective","TaskFieldsComponent","TaskFieldsComponent_kendo_formfield_1_Template","TaskFieldsComponent_kendo_formfield_3_Template","TaskFieldsComponent_kendo_formfield_5_Template","TaskFieldsComponent_kendo_formfield_6_Template","ɵNgNoValidate","DefaultValueAccessor","NgControlStatusGroup","FormGroupDirective","FormControlName","FormFieldComponent","LabelComponent","TextBoxDirective","DateTimePickerComponent","TreeListSpacerComponent","NumericTextBoxComponent","EditDialogComponent","saveIcon","cancelOutlineIcon","trashIcon","typeId","EditDialogComponent_ng_template_4_Template","EditDialogComponent_ng_template_6_Template","EditDialogComponent_ng_template_8_Template","ɵɵtext","ɵɵtextInterpolate1","ɵɵpureFunction1","_c2","DialogComponent","CustomMessagesComponent","TabStripComponent","TabStripTabComponent","TabContentDirective","DialogActionsComponent","ToolbarNavigationService","ViewSelectorComponent","viewType","ViewSelectorComponent_option_1_Template","ViewSelectorComponent_button_3_Template","NgSelectOption","ɵNgSelectMultipleOption","ButtonGroupComponent","GanttAddTaskComponent","ngZone","message","DropDownButtonComponent","ToolbarComponent","hostEl","ev","closestFocusable","closest","isFocusable","targetIndex","ganttToolbarTemplate","templatePosition","focusableElements","focusableSelector","isVisible","ToolbarComponent_ng_container_0_Template","ToolbarComponent_1_Template","Messages","ComponentMessages","ɵMessages_BaseFactory","LocalizedMessagesDirective","service","TREELIST_GROUP_COLUMNS_CLASS","DEFAULT_VIEW","DEFAULT_DRAG_SCROLL_SETTINGS","GanttComponent","hostElement","navigation","__spreadValues","isValid","validatePackage","packageMetadata","shouldShowValidationUI","show","hasObservers","selectedItem","rtl","customToolbarTemplate","columns","activeViewCurrentTimeMarker","fn","__spreadProps","isDevMode","settings","leftContainer","column","reloadChildren","source","destIndex","taskId","collapsed","activeViewOptions","groupedSlots","gantt","selectionAction","action","itemIndex","ctrlKey","metaKey","isColumnGroup","childColumn","treeListContentEl","scrollbarWidth","isSelectedCallback","dependency","fromTaskId","toTaskId","fromTask","toTask","current","currentFromId","currentToId","areParentChild","fromTaskStart","fromTaskEnd","toTaskStart","toTaskEnd","keyCode","altKey","isTimelineActive","isArrowUpDownKey","Keys","isNavigationKey","isExpandCollapseKey","shouldExpand","expandEvent","isTreeListActive","isViewDigitKey","isToolbar","targetViewIndex","getIndexFromViewDigitKeyCode","targetView","TreeListComponent","L10N_PREFIX","DataBoundTreeComponent","ExpandableTreeComponent","i18n_0","i18n_1","i18n_2","i18n_3","i18n_4","i18n_5","i18n_6","i18n_7","i18n_8","i18n_9","i18n_10","i18n_11","i18n_12","i18n_13","i18n_14","i18n_15","i18n_16","i18n_17","i18n_18","i18n_19","i18n_20","i18n_21","i18n_22","i18n_23","i18n_24","i18n_25","i18n_26","i18n_27","i18n_28","i18n_29","i18n_30","i18n_31","i18n_32","i18n_33","i18n_34","i18n_35","i18n_36","i18n_37","i18n_38","i18n_39","i18n_40","i18n_41","i18n_42","i18n_43","i18n_44","i18n_45","i18n_46","i18n_47","i18n_48","i18n_49","i18n_50","i18n_51","i18n_52","i18n_53","i18n_54","i18n_55","i18n_56","i18n_57","i18n_58","i18n_59","i18n_60","i18n_61","i18n_62","i18n_63","i18n_64","GanttComponent_kendo_gantt_toolbar_1_Template","GanttComponent_kendo_gantt_timeline_8_Template","GanttComponent_kendo_gantt_toolbar_9_Template","GanttComponent_kendo_gantt_edit_dialog_10_Template","GanttComponent_kendo_dialog_11_Template","GanttComponent_div_12_Template","_c14","SplitterComponent","SplitterPaneComponent","WatermarkOverlayComponent","GanttFlatBindingDirective","FlatBindingDirective","ɵGanttFlatBindingDirective_BaseFactory","GanttExpandableDirective","ExpandableDirective","value","ɵGanttExpandableDirective_BaseFactory","__ngFactoryType__","ɵɵgetInheritedFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","TimelineDayViewComponent","ViewBase","optionChangesService","dependencyDomService","__ngFactoryType__","ɵɵdirectiveInject","OptionChangesService","DependencyDomService","ɵɵdefineComponent","ɵɵProvidersFeature","forwardRef","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","rf","ctx","TimelineWeekViewComponent","TimelineMonthViewComponent","TimelineYearViewComponent","SelectableDirective","gantt","EventEmitter","value","isPresent","keys","isString","getter","dataItem","action","items","item","GanttComponent","ɵɵdefineDirective","CustomMessagesComponent","Messages","service","LocalizationService","GanttModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","L10N_PREFIX","IconsService","PopupService","ResizeBatchService","DialogContainerService","DialogService","WindowService","WindowContainerService","CalendarDOMService","CenturyViewService","DecadeViewService","MonthViewService","YearViewService","NavigationService","TimePickerDOMService","HoursService","MinutesService","SecondsService","MillisecondsService","DayPeriodService","ColumnResizingService","GanttComponent","ViewSelectorComponent","GanttColumnComponent","GanttColumnGroupComponent","GanttSpanColumnComponent","TimelineDayViewComponent","TimelineWeekViewComponent","TimelineMonthViewComponent","TimelineYearViewComponent","CustomMessagesComponent","GanttAddTaskComponent","init_core","init_esm","init_dist","_c0","_c1","_c2","_c3","a0","PagerNumericButtonsComponent_option_2_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r1","ɵɵnextContext","ɵɵproperty","ɵɵattribute","PagerNumericButtonsComponent_option_3_Template","num_r3","ɵɵpureFunction1","ɵɵadvance","ɵɵtextInterpolate1","PagerNumericButtonsComponent_option_4_Template","PagerNumericButtonsComponent_button_7_Template","_r4","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ɵɵresetView","PagerNumericButtonsComponent_button_8_Template","_r5","num_r6","PagerNumericButtonsComponent_button_9_Template","_r7","_c4","_c5","_c6","a1","PagerComponent_ng_container_1_Template","ɵɵelementContainer","ctx_r0","PagerComponent_ng_container_2_kendo_datapager_prev_buttons_2_Template","ɵɵelement","PagerComponent_ng_container_2_kendo_datapager_numeric_buttons_3_Template","PagerComponent_ng_container_2_kendo_datapager_input_4_Template","PagerComponent_ng_container_2_kendo_datapager_next_buttons_5_Template","PagerComponent_ng_container_2_kendo_datapager_page_sizes_6_Template","PagerComponent_ng_container_2_kendo_datapager_info_7_Template","PagerComponent_ng_container_2_Template","ɵɵelementContainerStart","ɵɵtemplate","ɵɵelementContainerEnd","PreventableEvent","PageSizeChangeEvent","newPageSize","Messages","ComponentMessages","ɵMessages_BaseFactory","__ngFactoryType__","ɵɵgetInheritedFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","CustomMessagesComponent","service","ɵɵdirectiveInject","LocalizationService","ɵɵdefineComponent","ɵɵProvidersFeature","forwardRef","ɵɵStandaloneFeature","LocalizedMessagesDirective","PagerContextService","Subject","changes","page","event","nextPage","prevPage","PagerElementComponent","localization","pagerContext","cd","caretAltLeftIcon","caretAltToLeftIcon","caretAltRightIcon","caretAltToRightIcon","key","ChangeDetectorRef","DEFAULT_PAGE_SIZE_VALUES","focusableDirectiveSelector","getAllFocusableChildren","parent","focusableSelector","DEFAULT_SIZE","SIZES","getStylingClasses","componentType","stylingOption","previousValue","newValue","PagerNavigationService","value","wrapper","target","firstFocusable","lastFocusable","tabAfterLastFocusable","shiftTabAfterFirstFocusable","all","PagerFocusableDirective","navigationService","element","renderer","Subscription","index","el","ElementRef","Renderer2","PagerPrevButtonsComponent","total","skip","pageSize","ButtonComponent","PagerPageSizesComponent","ngZone","pageSizes","normalizedItems","item","dropdownlist","ev","Keys","NgZone","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵclassProp","_r1","$event","dropdownlist_r2","ɵɵreference","DropDownListComponent","PagerTemplateDirective","templateRef","TemplateRef","PagerNumericButtonsComponent","size","newSize","result","idx","buttonCount","reminder","num","pageText","valueAsNumber","input","elem","classes","ɵɵstyleProp","NgIf","NgForOf","NgClass","PagerNextButtonsComponent","PagerInputComponent","zone","incomingValue","inputValue","NumericTextBoxComponent","ɵɵpureFunction0","ɵɵpureFunction2","ɵɵtextInterpolate2","EventsOutsideAngularDirective","PagerInfoComponent","ɵɵtextInterpolate5","packageMetadata","RESPONSIVE_BREAKPOINT_MEDIUM","RESPONSIVE_BREAKPOINT_LARGE","PagerComponent","EventEmitter","width","selectElement","numbersElement","validatePackage","pageSizeValues","isInnerNavigationEnabled","context","rtl","anyChanged","isArrowLeftOrPageUp","isArrowRightOrPageDown","isEnter","isHome","isEnd","isEsc","isTab","isFirstPage","isLastPage","dirIndex","ɵɵcontentQuery","ResizeSensorComponent","L10N_PREFIX","ɵɵNgOnChangesFeature","i18n_0","i18n_1","i18n_2","i18n_3","i18n_4","i18n_5","i18n_6","i18n_7","i18n_8","i18n_9","i18n_10","NgTemplateOutlet","PagerModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","IconsService","PopupService","ResizeBatchService","CustomMessagesComponent","PagerInfoComponent","PagerInputComponent","PagerNextButtonsComponent","PagerNumericButtonsComponent","PagerPageSizesComponent","PagerPrevButtonsComponent","PagerComponent"],"x_google_ignoreList":[0,1,2,3]}