@progress/kendo-angular-treelist 17.0.0-develop.3 → 17.0.0-develop.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -19
- package/binding-directives/base-binding.directive.d.ts +1 -1
- package/binding-directives/flat-binding.directive.d.ts +1 -1
- package/binding-directives/hierarchy-binding.directive.d.ts +1 -1
- package/column-menu/column-chooser.component.d.ts +1 -1
- package/column-menu/column-list.component.d.ts +1 -1
- package/column-menu/column-menu-chooser.component.d.ts +1 -1
- package/column-menu/column-menu-filter.component.d.ts +1 -1
- package/column-menu/column-menu-item-base.d.ts +1 -1
- package/column-menu/column-menu-item.component.d.ts +1 -1
- package/column-menu/column-menu.component.d.ts +1 -1
- package/column-resizing/column-handle.directive.d.ts +1 -1
- package/column-resizing/column-resize.interface.d.ts +3 -3
- package/column-resizing/table.directive.d.ts +1 -1
- package/columns/checkbox-column.component.d.ts +1 -1
- package/columns/column-base.d.ts +1 -1
- package/columns/column.component.d.ts +1 -1
- package/columns/sort-settings.d.ts +2 -2
- package/columns/span-column.component.d.ts +13 -13
- package/common/create-form-group.d.ts +1 -1
- package/common/provider.service.d.ts +0 -1
- package/common/remove-confirmation.d.ts +1 -1
- package/data/treelist-item.interface.d.ts +1 -1
- package/directives.d.ts +7 -4
- package/dragdrop/context-types.d.ts +1 -1
- package/dragdrop/draggable-column.directive.d.ts +1 -1
- package/dragdrop/drop-target.directive.d.ts +1 -1
- package/editing/add-command-tool.directive.d.ts +38 -0
- package/editing/add-command.directive.d.ts +1 -1
- package/editing/cancel-command.directive.d.ts +1 -1
- package/editing/cancel-event-args.interface.d.ts +1 -1
- package/editing/edit-command.directive.d.ts +1 -1
- package/editing/edit.service.d.ts +3 -3
- package/editing/remove-command.directive.d.ts +1 -1
- package/editing/save-command.directive.d.ts +1 -1
- package/editing-directives/create-form-group-args.interface.d.ts +1 -1
- package/editing-directives/editing-directive-base.d.ts +1 -1
- package/editing-directives/in-cell-editing.directive.d.ts +1 -1
- package/editing-directives/reactive-editing.directive.d.ts +1 -1
- package/editing-directives/row-editing-directive-base.d.ts +0 -1
- package/editing-directives/template-editing.directive.d.ts +1 -2
- package/{esm2020 → esm2022}/binding-directives/base-binding.directive.mjs +17 -13
- package/{esm2020 → esm2022}/binding-directives/data-bound-tree-component.mjs +3 -3
- package/{esm2020 → esm2022}/binding-directives/flat-binding.directive.mjs +29 -21
- package/{esm2020 → esm2022}/binding-directives/hierarchy-binding.directive.mjs +26 -19
- package/{esm2020 → esm2022}/column-menu/column-chooser.component.mjs +27 -19
- package/{esm2020 → esm2022}/column-menu/column-list.component.mjs +28 -16
- package/{esm2020 → esm2022}/column-menu/column-locked-change-event.mjs +4 -0
- package/{esm2020 → esm2022}/column-menu/column-menu-chooser.component.mjs +28 -25
- package/{esm2020 → esm2022}/column-menu/column-menu-filter.component.mjs +23 -22
- package/{esm2020 → esm2022}/column-menu/column-menu-item-base.mjs +9 -6
- package/{esm2020 → esm2022}/column-menu/column-menu-item-content-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/column-menu/column-menu-item.component.mjs +67 -42
- package/{esm2020 → esm2022}/column-menu/column-menu-lock.component.mjs +9 -6
- package/{esm2020 → esm2022}/column-menu/column-menu-sort.component.mjs +8 -6
- package/{esm2020 → esm2022}/column-menu/column-menu-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/column-menu/column-menu.component.mjs +49 -25
- package/{esm2020 → esm2022}/column-menu/column-menu.service.mjs +23 -9
- package/{esm2020 → esm2022}/column-menu/column-visibility-change-event.mjs +4 -0
- package/{esm2020 → esm2022}/column-resizing/column-handle.directive.mjs +21 -14
- package/{esm2020 → esm2022}/column-resizing/column-resizing.service.mjs +8 -8
- package/{esm2020 → esm2022}/column-resizing/table.directive.mjs +17 -8
- package/{esm2020 → esm2022}/columns/checkbox-column.component.mjs +27 -12
- package/{esm2020 → esm2022}/columns/column-base.mjs +140 -72
- package/{esm2020 → esm2022}/columns/column-group.component.mjs +24 -20
- package/{esm2020 → esm2022}/columns/column-list.mjs +4 -3
- package/{esm2020 → esm2022}/columns/column.component.mjs +56 -38
- package/{esm2020 → esm2022}/columns/columns-container.mjs +14 -13
- package/{esm2020 → esm2022}/columns/command-column.component.mjs +11 -9
- package/{esm2020 → esm2022}/columns/rowreorder-column.component.mjs +13 -12
- package/{esm2020 → esm2022}/columns/span-column.component.mjs +64 -29
- package/{esm2020 → esm2022}/common/column-info.service.mjs +8 -9
- package/esm2022/common/dom-events.service.mjs +24 -0
- package/{esm2020 → esm2022}/common/id.service.mjs +4 -3
- package/{esm2020 → esm2022}/common/option-changes.service.mjs +5 -7
- package/{esm2020 → esm2022}/common/preventable-event.mjs +1 -3
- package/{esm2020 → esm2022}/common/provider.service.mjs +8 -6
- package/{esm2020 → esm2022}/common/single-popup.service.mjs +19 -8
- package/{esm2020 → esm2022}/common/sort.service.mjs +1 -3
- package/{esm2020 → esm2022}/data/change-notification.service.mjs +6 -4
- package/{esm2020 → esm2022}/data/data.collection.mjs +45 -23
- package/{esm2020 → esm2022}/directives.mjs +8 -2
- package/{esm2020 → esm2022}/dragdrop/column-reorder-event.mjs +14 -0
- package/{esm2020 → esm2022}/dragdrop/column-reorder.service.mjs +4 -6
- package/{esm2020 → esm2022}/dragdrop/drag-and-drop.service.mjs +6 -8
- package/{esm2020 → esm2022}/dragdrop/drag-hint.service.mjs +7 -4
- package/{esm2020 → esm2022}/dragdrop/draggable-column.directive.mjs +22 -13
- package/{esm2020 → esm2022}/dragdrop/drop-cue.service.mjs +4 -3
- package/{esm2020 → esm2022}/dragdrop/drop-target.directive.mjs +10 -8
- package/esm2022/editing/add-command-tool.directive.mjs +63 -0
- package/{esm2020 → esm2022}/editing/add-command.directive.mjs +10 -6
- package/{esm2020 → esm2022}/editing/base-command.directive.mjs +9 -8
- package/{esm2020 → esm2022}/editing/cancel-command.directive.mjs +10 -6
- package/{esm2020 → esm2022}/editing/cell-close-event.mjs +20 -4
- package/{esm2020 → esm2022}/editing/edit-command.directive.mjs +10 -6
- package/{esm2020 → esm2022}/editing/edit-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/editing/edit.service.mjs +18 -13
- package/{esm2020 → esm2022}/editing/remove-command.directive.mjs +10 -6
- package/{esm2020 → esm2022}/editing/save-command.directive.mjs +10 -6
- package/{esm2020 → esm2022}/editing-directives/editing-directive-base.mjs +17 -7
- package/{esm2020 → esm2022}/editing-directives/flat-edit.service.mjs +1 -0
- package/{esm2020 → esm2022}/editing-directives/hierarchy-edit.service.mjs +1 -0
- package/{esm2020 → esm2022}/editing-directives/in-cell-editing.directive.mjs +8 -3
- package/{esm2020 → esm2022}/editing-directives/reactive-editing.directive.mjs +8 -3
- package/{esm2020 → esm2022}/editing-directives/row-editing-directive-base.mjs +3 -3
- package/{esm2020 → esm2022}/editing-directives/template-editing.directive.mjs +9 -3
- package/esm2022/excel/excel-command-tool.directive.mjs +66 -0
- package/{esm2020 → esm2022}/excel/excel-command.directive.mjs +10 -9
- package/{esm2020 → esm2022}/excel/excel-export-event.mjs +1 -0
- package/{esm2020 → esm2022}/excel/excel.component.mjs +71 -22
- package/{esm2020 → esm2022}/excel/excel.module.mjs +5 -4
- package/{esm2020 → esm2022}/excel/excel.service.mjs +7 -8
- package/{esm2020 → esm2022}/expand-state/expand-event.mjs +12 -0
- package/{esm2020 → esm2022}/expand-state/expand-state.service.mjs +5 -7
- package/{esm2020 → esm2022}/expand-state/expandable-tree-component.mjs +3 -3
- package/{esm2020 → esm2022}/expand-state/expandable.directive.mjs +23 -19
- package/{esm2020 → esm2022}/filtering/base-filter-cell.component.mjs +18 -7
- package/{esm2020 → esm2022}/filtering/boolean-filter.component.mjs +31 -24
- package/{esm2020 → esm2022}/filtering/cell/autocomplete-filter-cell.component.mjs +15 -13
- package/{esm2020 → esm2022}/filtering/cell/boolean-filter-cell.component.mjs +5 -4
- package/{esm2020 → esm2022}/filtering/cell/date-filter-cell.component.mjs +11 -10
- package/{esm2020 → esm2022}/filtering/cell/filter-cell-host.directive.mjs +3 -3
- package/{esm2020 → esm2022}/filtering/cell/filter-cell-operators.component.mjs +54 -34
- package/{esm2020 → esm2022}/filtering/cell/filter-cell-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/filtering/cell/filter-cell-wrapper.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/cell/filter-cell.component.mjs +11 -8
- package/{esm2020 → esm2022}/filtering/cell/numeric-filter-cell.component.mjs +23 -17
- package/esm2022/filtering/cell/row-filtering.module.mjs +77 -0
- package/{esm2020 → esm2022}/filtering/cell/string-filter-cell.component.mjs +23 -18
- package/{esm2020 → esm2022}/filtering/date-filter.component.mjs +64 -39
- package/{esm2020 → esm2022}/filtering/filter-host.directive.mjs +8 -3
- package/{esm2020 → esm2022}/filtering/filter-input-wrapper.component.mjs +11 -8
- package/{esm2020 → esm2022}/filtering/filter-input.directive.mjs +21 -13
- package/{esm2020 → esm2022}/filtering/filter-row.component.mjs +11 -8
- package/{esm2020 → esm2022}/filtering/filter.service.mjs +7 -9
- package/{esm2020 → esm2022}/filtering/menu/boolean-filter-menu.component.mjs +22 -15
- package/{esm2020 → esm2022}/filtering/menu/date-filter-menu-input.component.mjs +21 -5
- package/{esm2020 → esm2022}/filtering/menu/date-filter-menu.component.mjs +22 -21
- package/{esm2020 → esm2022}/filtering/menu/filter-menu-container.component.mjs +28 -16
- package/{esm2020 → esm2022}/filtering/menu/filter-menu-host.directive.mjs +4 -3
- package/{esm2020 → esm2022}/filtering/menu/filter-menu-input-wrapper.component.mjs +9 -7
- package/{esm2020 → esm2022}/filtering/menu/filter-menu-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/filtering/menu/filter-menu.component.mjs +20 -8
- package/esm2022/filtering/menu/filter-menu.module.mjs +80 -0
- package/{esm2020 → esm2022}/filtering/menu/filter-radio-button.directive.mjs +7 -3
- package/{esm2020 → esm2022}/filtering/menu/numeric-filter-menu-input.component.mjs +43 -17
- package/{esm2020 → esm2022}/filtering/menu/numeric-filter-menu.component.mjs +32 -31
- package/{esm2020 → esm2022}/filtering/menu/string-filter-menu-input.component.mjs +12 -5
- package/{esm2020 → esm2022}/filtering/menu/string-filter-menu.component.mjs +32 -21
- package/{esm2020 → esm2022}/filtering/numeric-filter.component.mjs +51 -28
- package/{esm2020 → esm2022}/filtering/operators/after-eq-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/after-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/before-eq-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/before-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/contains-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/ends-with-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/eq-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/filter-operator.base.mjs +15 -10
- package/{esm2020 → esm2022}/filtering/operators/gt-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/gte-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/is-empty-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/is-not-empty-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/is-not-null-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/isnull-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/lt-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/lte-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/neq-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/not-contains-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/operators/starts-with-filter-operator.component.mjs +8 -8
- package/{esm2020 → esm2022}/filtering/shared-filtering.module.mjs +18 -18
- package/{esm2020 → esm2022}/filtering/string-filter.component.mjs +20 -15
- package/{esm2020 → esm2022}/index.mjs +3 -0
- package/{esm2020 → esm2022}/layout/browser-support.service.mjs +7 -4
- package/{esm2020 → esm2022}/layout/resizable.directive.mjs +16 -10
- package/{esm2020 → esm2022}/layout/resize.service.mjs +6 -8
- package/{esm2020 → esm2022}/layout/responsive.service.mjs +7 -9
- package/{esm2020 → esm2022}/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/localization/localized-messages.directive.mjs +9 -8
- package/esm2022/localization/messages.mjs +410 -0
- package/{esm2020 → esm2022}/navigation/default-focusable-element.mjs +8 -5
- package/{esm2020 → esm2022}/navigation/focus-group.mjs +12 -11
- package/{esm2020 → esm2022}/navigation/focus-root.mjs +5 -4
- package/{esm2020 → esm2022}/navigation/focusable.directive.mjs +18 -10
- package/{esm2020 → esm2022}/navigation/item-map.mjs +2 -4
- package/{esm2020 → esm2022}/navigation/logical-cell.directive.mjs +35 -22
- package/{esm2020 → esm2022}/navigation/logical-row.directive.mjs +19 -13
- package/{esm2020 → esm2022}/navigation/model-cell.mjs +11 -0
- package/{esm2020 → esm2022}/navigation/navigation-cursor.mjs +10 -8
- package/{esm2020 → esm2022}/navigation/navigation-metadata.mjs +13 -6
- package/{esm2020 → esm2022}/navigation/navigation-model.mjs +1 -3
- package/{esm2020 → esm2022}/navigation/navigation.service.mjs +44 -24
- package/{esm2020 → esm2022}/navigation/treelist-focusable-element.mjs +1 -0
- package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
- package/{esm2020 → esm2022}/pager/pager-context.service.mjs +6 -4
- package/{esm2020 → esm2022}/pager/pager-element.component.mjs +24 -16
- package/{esm2020 → esm2022}/pager/pager-info.component.mjs +8 -7
- package/{esm2020 → esm2022}/pager/pager-input.component.mjs +43 -39
- package/{esm2020 → esm2022}/pager/pager-next-buttons.component.mjs +14 -9
- package/{esm2020 → esm2022}/pager/pager-numeric-buttons.component.mjs +19 -9
- package/{esm2020 → esm2022}/pager/pager-page-sizes.component.mjs +12 -10
- package/{esm2020 → esm2022}/pager/pager-prev-buttons.component.mjs +6 -5
- package/{esm2020 → esm2022}/pager/pager-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/pager/pager.component.mjs +84 -70
- package/esm2022/pager/pager.module.mjs +43 -0
- package/esm2022/pdf/pdf-command-tool.directive.mjs +66 -0
- package/{esm2020 → esm2022}/pdf/pdf-command.directive.mjs +10 -9
- package/{esm2020 → esm2022}/pdf/pdf-margin.component.mjs +3 -3
- package/{esm2020 → esm2022}/pdf/pdf-template.directive.mjs +3 -3
- package/{esm2020 → esm2022}/pdf/pdf.component.mjs +24 -4
- package/{esm2020 → esm2022}/pdf/pdf.module.mjs +6 -5
- package/{esm2020 → esm2022}/pdf/pdf.service.mjs +8 -9
- package/{esm2020 → esm2022}/pdf/treelist-query.mjs +4 -0
- package/esm2022/rendering/body.module.mjs +41 -0
- package/{esm2020 → esm2022}/rendering/cell-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/rendering/cell.component.mjs +41 -25
- package/{esm2020 → esm2022}/rendering/common/col-group.component.mjs +5 -7
- package/{esm2020 → esm2022}/rendering/common/field-accessor.pipe.mjs +4 -3
- package/{esm2020 → esm2022}/rendering/common/level-items.pipe.mjs +3 -3
- package/{esm2020 → esm2022}/rendering/common/loading.component.mjs +9 -8
- package/{esm2020 → esm2022}/rendering/common/spacer.component.mjs +11 -6
- package/{esm2020 → esm2022}/rendering/footer-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/rendering/header/header-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/rendering/header/header.component.mjs +47 -28
- package/{esm2020 → esm2022}/rendering/header/header.module.mjs +4 -4
- package/{esm2020 → esm2022}/rendering/list.component.mjs +80 -40
- package/{esm2020 → esm2022}/rendering/no-records-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/rendering/table-body.component.mjs +45 -19
- package/{esm2020 → esm2022}/rendering/toolbar/toolbar-focusable.directive.mjs +9 -7
- package/{esm2020 → esm2022}/rendering/toolbar/toolbar-navigation.service.mjs +9 -8
- package/{esm2020 → esm2022}/rendering/toolbar/toolbar-template.directive.mjs +10 -8
- package/{esm2020 → esm2022}/rendering/toolbar/toolbar.component.mjs +18 -13
- package/{esm2020 → esm2022}/row-reordering/flat-reorder.service.mjs +3 -3
- package/{esm2020 → esm2022}/row-reordering/hierarchical-reorder.service.mjs +3 -3
- package/{esm2020 → esm2022}/row-reordering/row-reorder.service.mjs +14 -9
- package/{esm2020 → esm2022}/scrolling/row-height.service.mjs +2 -0
- package/{esm2020 → esm2022}/scrolling/scroll-request.service.mjs +4 -6
- package/{esm2020 → esm2022}/scrolling/scroll-sync.service.mjs +10 -8
- package/{esm2020 → esm2022}/scrolling/scroller.service.mjs +12 -2
- package/{esm2020 → esm2022}/scrolling/suspend.service.mjs +4 -6
- package/{esm2020 → esm2022}/selection/marquee.directive.mjs +18 -7
- package/{esm2020 → esm2022}/selection/selectable.directive.mjs +23 -17
- package/{esm2020 → esm2022}/selection/selection-change-event.mjs +12 -0
- package/{esm2020 → esm2022}/selection/selection-state.mjs +2 -6
- package/{esm2020 → esm2022}/selection/selection.service.mjs +15 -14
- package/{esm2020 → esm2022}/shared.module.mjs +4 -4
- package/{esm2020 → esm2022}/treelist.component.mjs +474 -394
- package/esm2022/treelist.module.mjs +178 -0
- package/excel/excel-command-tool.directive.d.ts +41 -0
- package/excel/excel.component.d.ts +1 -1
- package/excel/excel.module.d.ts +3 -2
- package/expand-state/expandable.directive.d.ts +1 -1
- package/{fesm2020 → fesm2022}/progress-kendo-angular-treelist.mjs +4012 -2474
- package/filtering/base-filter-cell.component.d.ts +5 -1
- package/filtering/boolean-filter.component.d.ts +2 -7
- package/filtering/cell/autocomplete-filter-cell.component.d.ts +2 -7
- package/filtering/cell/date-filter-cell.component.d.ts +1 -1
- package/filtering/cell/filter-cell-operators.component.d.ts +1 -1
- package/filtering/cell/filter-cell-wrapper.component.d.ts +1 -1
- package/filtering/cell/filter-cell.component.d.ts +1 -1
- package/filtering/cell/numeric-filter-cell.component.d.ts +1 -1
- package/filtering/cell/string-filter-cell.component.d.ts +1 -1
- package/filtering/date-filter.component.d.ts +2 -11
- package/filtering/filter-host.directive.d.ts +2 -2
- package/filtering/filter-input-wrapper.component.d.ts +1 -2
- package/filtering/filter-input.directive.d.ts +1 -1
- package/filtering/filter-row.component.d.ts +1 -2
- package/filtering/filterable.d.ts +1 -1
- package/filtering/menu/boolean-filter-menu.component.d.ts +1 -1
- package/filtering/menu/date-filter-menu-input.component.d.ts +1 -1
- package/filtering/menu/date-filter-menu.component.d.ts +1 -7
- package/filtering/menu/filter-menu-container.component.d.ts +1 -1
- package/filtering/menu/filter-menu-host.directive.d.ts +1 -1
- package/filtering/menu/filter-menu-input-wrapper.component.d.ts +1 -1
- package/filtering/menu/filter-menu.component.d.ts +1 -4
- package/filtering/menu/filter-radio-button.directive.d.ts +1 -1
- package/filtering/menu/numeric-filter-menu-input.component.d.ts +1 -1
- package/filtering/menu/numeric-filter-menu.component.d.ts +1 -7
- package/filtering/menu/string-filter-menu-input.component.d.ts +1 -1
- package/filtering/menu/string-filter-menu.component.d.ts +1 -7
- package/filtering/numeric-filter.component.d.ts +2 -11
- package/filtering/operators/filter-operator.base.d.ts +1 -1
- package/filtering/string-filter.component.d.ts +2 -11
- package/index.d.ts +3 -0
- package/layout/resizable.directive.d.ts +1 -1
- package/localization/messages.d.ts +1 -1
- package/navigation/focusable.directive.d.ts +1 -1
- package/navigation/logical-cell.directive.d.ts +1 -1
- package/navigation/logical-row.directive.d.ts +1 -1
- package/package.json +27 -32
- package/pager/pager-context.service.d.ts +1 -1
- package/pager/pager-next-buttons.component.d.ts +1 -1
- package/pager/pager-numeric-buttons.component.d.ts +1 -1
- package/pager/pager-page-sizes.component.d.ts +1 -1
- package/pager/pager-settings.d.ts +1 -1
- package/pager/pager.component.d.ts +1 -1
- package/pdf/pdf-command-tool.directive.d.ts +41 -0
- package/pdf/pdf-margin.interface.d.ts +1 -1
- package/pdf/pdf.component.d.ts +1 -7
- package/pdf/pdf.module.d.ts +3 -2
- package/rendering/body.module.d.ts +6 -5
- package/rendering/cell.component.d.ts +2 -1
- package/rendering/common/col-group.component.d.ts +1 -1
- package/rendering/common/row-class.d.ts +2 -2
- package/rendering/common/spacer.component.d.ts +1 -1
- package/rendering/header/header.component.d.ts +1 -1
- package/rendering/list.component.d.ts +1 -1
- package/rendering/table-body.component.d.ts +1 -1
- package/rendering/toolbar/toolbar-template.directive.d.ts +1 -1
- package/rendering/toolbar/toolbar.component.d.ts +1 -1
- package/row-reordering/types.d.ts +1 -1
- package/schematics/ngAdd/index.js +3 -3
- package/scrolling/scroll-sync.service.d.ts +1 -1
- package/scrolling/scroller.service.d.ts +1 -1
- package/scrolling/scrollmode.d.ts +1 -1
- package/selection/is-selected.d.ts +1 -1
- package/selection/selectable.directive.d.ts +1 -1
- package/treelist.component.d.ts +1 -1
- package/treelist.module.d.ts +67 -65
- package/utils.d.ts +1 -1
- package/esm2020/common/dom-events.service.mjs +0 -26
- package/esm2020/filtering/cell/row-filtering.module.mjs +0 -77
- package/esm2020/filtering/menu/filter-menu.module.mjs +0 -80
- package/esm2020/localization/messages.mjs +0 -138
- package/esm2020/pager/pager.module.mjs +0 -43
- package/esm2020/rendering/body.module.mjs +0 -40
- package/esm2020/treelist.module.mjs +0 -176
- package/fesm2015/progress-kendo-angular-treelist.mjs +0 -21537
- /package/{esm2020 → esm2022}/column-menu/column-menu-settings.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/column-menu/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/column-resizing/column-resize.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/columns/column-common.mjs +0 -0
- /package/{esm2020 → esm2022}/columns/sort-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/common/cell-click-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/common/create-form-group.mjs +0 -0
- /package/{esm2020 → esm2022}/common/default-track-by.mjs +0 -0
- /package/{esm2020 → esm2022}/common/filter-descriptor-differ.mjs +0 -0
- /package/{esm2020 → esm2022}/common/filter-operator.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/common/remove-confirmation.mjs +0 -0
- /package/{esm2020 → esm2022}/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/data/change-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/data/data-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/data/treelist-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/dragdrop/column-reorder-config.mjs +0 -0
- /package/{esm2020 → esm2022}/dragdrop/common.mjs +0 -0
- /package/{esm2020 → esm2022}/dragdrop/context-types.mjs +0 -0
- /package/{esm2020 → esm2022}/editing/add-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/editing/cancel-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/editing/edit-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/editing/remove-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/editing/save-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/editing-directives/create-form-group-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/editing-directives/edit-service.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/editing-directives/local-edit.service.mjs +0 -0
- /package/{esm2020 → esm2022}/editing-directives/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/excel/excel-export-data.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/filtering/cell/filter-cell-component.factory.mjs +0 -0
- /package/{esm2020 → esm2022}/filtering/filter-component.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/filtering/filterable.mjs +0 -0
- /package/{esm2020 → esm2022}/filtering/menu/filter-menu-component.factory.mjs +0 -0
- /package/{esm2020 → esm2022}/layout/row-sync.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/focusable-element.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/logical-cell.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/logical-row.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/navigation-cell.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/navigation-change.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/navigation-mode.mjs +0 -0
- /package/{esm2020 → esm2022}/navigation/navigation-row.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/pager/pager-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/pager/pagesize-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/pdf/export-element.mjs +0 -0
- /package/{esm2020 → esm2022}/pdf/pdf-export-event.mjs +0 -0
- /package/{esm2020 → esm2022}/pdf/pdf-margin.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/progress-kendo-angular-treelist.mjs +0 -0
- /package/{esm2020 → esm2022}/rendering/common/dom-queries.mjs +0 -0
- /package/{esm2020 → esm2022}/rendering/common/row-class.mjs +0 -0
- /package/{esm2020 → esm2022}/rendering/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/row-reordering/types.mjs +0 -0
- /package/{esm2020 → esm2022}/row-reordering/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/scrolling/content-scroll-event.mjs +0 -0
- /package/{esm2020 → esm2022}/scrolling/scroll-bottom-event.mjs +0 -0
- /package/{esm2020 → esm2022}/scrolling/scrollmode.mjs +0 -0
- /package/{esm2020 → esm2022}/selection/is-selected.mjs +0 -0
- /package/{esm2020 → esm2022}/selection/selectable-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/utils.mjs +0 -0
@@ -127,349 +127,35 @@ const isInEditedCell = (element, treelistElement) => closest(element, matchesCla
|
|
127
127
|
*
|
128
128
|
*/
|
129
129
|
export class TreeListComponent {
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
* @default 10
|
160
|
-
*/
|
161
|
-
this.pageSize = 10;
|
162
|
-
/**
|
163
|
-
* Defines the scroll mode used by the TreeList.
|
164
|
-
* @default 'scrollable'
|
165
|
-
*/
|
166
|
-
this.scrollable = 'scrollable';
|
167
|
-
/**
|
168
|
-
* A function that defines how to track changes for the data rows.
|
169
|
-
*
|
170
|
-
* By default, the TreeList tracks changes by the index of the data item.
|
171
|
-
* Edited rows are tracked by reference.
|
172
|
-
*
|
173
|
-
*/
|
174
|
-
this.trackBy = defaultTrackBy;
|
175
|
-
/**
|
176
|
-
* If set to `true`, the treelist will render only the columns in the current viewport.
|
177
|
-
* @default false
|
178
|
-
*/
|
179
|
-
this.virtualColumns = false;
|
180
|
-
/**
|
181
|
-
* Enables the [filtering]({% slug filtering_treelist %}) of the TreeList columns that have their `field` option set.
|
182
|
-
*/
|
183
|
-
this.filterable = false;
|
184
|
-
/**
|
185
|
-
* Enables the [sorting]({% slug sorting_treelist %}) of the TreeList columns that have their `field` option set.
|
186
|
-
*/
|
187
|
-
this.sortable = false;
|
188
|
-
/**
|
189
|
-
* Configures the pager of the TreeList ([see example]({% slug paging_treelist %})).
|
190
|
-
*
|
191
|
-
*/
|
192
|
-
this.pageable = false;
|
193
|
-
/**
|
194
|
-
* If set to `true`, the user can use dedicated shortcuts to interact with the TreeList.
|
195
|
-
* By default, navigation is disabled and the TreeList content is accessible in the normal tab sequence.
|
196
|
-
* @default false
|
197
|
-
*/
|
198
|
-
this.navigable = false;
|
199
|
-
/**
|
200
|
-
* Indicates whether the TreeList columns will be resized during initialization so that
|
201
|
-
* they fit their headers and row content. Defaults to `false`.
|
202
|
-
* Columns with `autoSize` set to `false` are excluded.
|
203
|
-
* To dynamically update the column width to match the new content,
|
204
|
-
* refer to [this example]({% slug resizing_columns_treelist %}).
|
205
|
-
*
|
206
|
-
* @default false
|
207
|
-
*/
|
208
|
-
this.autoSize = false;
|
209
|
-
/**
|
210
|
-
* If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
|
211
|
-
* ([see example]({% slug resizing_columns_treelist %})).
|
212
|
-
*
|
213
|
-
* @default false
|
214
|
-
*/
|
215
|
-
this.resizable = false;
|
216
|
-
/**
|
217
|
-
* If set to `true`, the user can reorder columns by dragging their header cells
|
218
|
-
* ([see example]({% slug reordering_columns_treelist %})).
|
219
|
-
*
|
220
|
-
* @default false
|
221
|
-
*/
|
222
|
-
this.reorderable = false;
|
223
|
-
/**
|
224
|
-
* Specifies if the loading indicator of the TreeList will be displayed ([see example]({% slug databinding_treelist %})).
|
225
|
-
*
|
226
|
-
* @default false
|
227
|
-
*/
|
228
|
-
this.loading = false;
|
229
|
-
/**
|
230
|
-
* Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_treelist %})).
|
231
|
-
*
|
232
|
-
* @default false
|
233
|
-
*/
|
234
|
-
this.columnMenu = false;
|
235
|
-
/**
|
236
|
-
* Specifies if the header of the treelist will be hidden. The header is visible by default.
|
237
|
-
*
|
238
|
-
* The header includes column headers and the [filter row](slug:filter_row_treelist).
|
239
|
-
*
|
240
|
-
* @default false
|
241
|
-
*/
|
242
|
-
this.hideHeader = false;
|
243
|
-
/**
|
244
|
-
* Fires when the TreeList selection is changed.
|
245
|
-
*/
|
246
|
-
this.selectionChange = new EventEmitter();
|
247
|
-
/**
|
248
|
-
* Fires when the TreeList filter is modified through the UI.
|
249
|
-
* You have to handle the event yourself and filter the data.
|
250
|
-
*/
|
251
|
-
this.filterChange = new EventEmitter();
|
252
|
-
/**
|
253
|
-
* Fires when the page of the TreeList is changed ([see example]({% slug paging_treelist %})).
|
254
|
-
* You have to handle the event yourself and page the data.
|
255
|
-
*/
|
256
|
-
this.pageChange = new EventEmitter();
|
257
|
-
/**
|
258
|
-
* Fires when the sorting of the TreeList is changed ([see example]({% slug sorting_treelist %})).
|
259
|
-
* You have to handle the event yourself and sort the data.
|
260
|
-
*/
|
261
|
-
this.sortChange = new EventEmitter();
|
262
|
-
/**
|
263
|
-
* Fires when the data state of the TreeList is changed.
|
264
|
-
*/
|
265
|
-
this.dataStateChange = new EventEmitter();
|
266
|
-
/**
|
267
|
-
* Fires when the user clicks the **Edit** command button to edit a row
|
268
|
-
* ([see example]({% slug editing_template_forms_treelist %}#toc-editing-records)).
|
269
|
-
*/
|
270
|
-
this.edit = new EventEmitter();
|
271
|
-
/**
|
272
|
-
* Fires when the user clicks the **Cancel** command button to close a row
|
273
|
-
* ([see example]({% slug editing_template_forms_treelist %}#toc-cancelling-editing)).
|
274
|
-
*/
|
275
|
-
this.cancel = new EventEmitter();
|
276
|
-
/**
|
277
|
-
* Fires when the user clicks the **Save** command button to save changes in a row
|
278
|
-
* ([see example]({% slug editing_template_forms_treelist %}#toc-saving-records)).
|
279
|
-
*/
|
280
|
-
this.save = new EventEmitter();
|
281
|
-
/**
|
282
|
-
* Fires when the user clicks the **Remove** command button to remove a row
|
283
|
-
* ([see example]({% slug editing_template_forms_treelist %}#toc-removing-records)).
|
284
|
-
*/
|
285
|
-
this.remove = new EventEmitter();
|
286
|
-
/**
|
287
|
-
* Fires when the user clicks the **Add** command button to add a new row
|
288
|
-
* ([see example]({% slug editing_template_forms_treelist %}#toc-adding-records)).
|
289
|
-
*/
|
290
|
-
this.add = new EventEmitter();
|
291
|
-
/**
|
292
|
-
* Fires when the user leaves an edited cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).
|
293
|
-
*/
|
294
|
-
this.cellClose = new EventEmitter();
|
295
|
-
/**
|
296
|
-
* Fires when the user clicks a cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).
|
297
|
-
*/
|
298
|
-
this.cellClick = new EventEmitter();
|
299
|
-
/**
|
300
|
-
* Fires when the user clicks the **Export to PDF** command button.
|
301
|
-
*/
|
302
|
-
this.pdfExport = new EventEmitter();
|
303
|
-
/**
|
304
|
-
* Fires when the user clicks the **Export to Excel** command button.
|
305
|
-
*/
|
306
|
-
this.excelExport = new EventEmitter();
|
307
|
-
/**
|
308
|
-
* Fires when the user completes the resizing of the column.
|
309
|
-
*/
|
310
|
-
this.columnResize = new EventEmitter();
|
311
|
-
/**
|
312
|
-
* Fires when the user completes the reordering of the column.
|
313
|
-
*/
|
314
|
-
this.columnReorder = new EventEmitter();
|
315
|
-
/**
|
316
|
-
* Fires when the user changes the visibility of the columns from the column menu or column chooser.
|
317
|
-
*/
|
318
|
-
this.columnVisibilityChange = new EventEmitter();
|
319
|
-
/**
|
320
|
-
* Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
|
321
|
-
*/
|
322
|
-
this.columnLockedChange = new EventEmitter();
|
323
|
-
/**
|
324
|
-
* Fires when the user scrolls to the last record on the page and enables endless scrolling
|
325
|
-
* ([see example]({% slug scrollmmodes_treelist %}#toc-endless-scrolling)).
|
326
|
-
* You have to handle the event yourself and page the data.
|
327
|
-
*/
|
328
|
-
this.scrollBottom = new EventEmitter();
|
329
|
-
/**
|
330
|
-
* Fires when the treelist content is scrolled.
|
331
|
-
* For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.
|
332
|
-
*/
|
333
|
-
this.contentScroll = new EventEmitter();
|
334
|
-
/**
|
335
|
-
* Fires when an item is expanded.
|
336
|
-
*/
|
337
|
-
this.expandEvent = new EventEmitter();
|
338
|
-
/**
|
339
|
-
* Fires when an item is collapsed.
|
340
|
-
*/
|
341
|
-
this.collapseEvent = new EventEmitter();
|
342
|
-
/**
|
343
|
-
* @hidden
|
344
|
-
*
|
345
|
-
* Emits when the expand or collapse events are fired.
|
346
|
-
* Used by the expand directive and the Gantt component.
|
347
|
-
*/
|
348
|
-
this.expandStateChange = new EventEmitter();
|
349
|
-
/**
|
350
|
-
* Fires when the user drops the dragged row and reordering is performed.
|
351
|
-
* Emits the [RowReorderEvent]({% slug api_treelist_rowreorderevent %}).
|
352
|
-
*/
|
353
|
-
this.rowReorder = new EventEmitter();
|
354
|
-
/**
|
355
|
-
* @hidden
|
356
|
-
*/
|
357
|
-
this.columnOrderChange = new EventEmitter();
|
358
|
-
/**
|
359
|
-
* A query list of all declared columns.
|
360
|
-
*/
|
361
|
-
this.columns = new QueryList();
|
362
|
-
this.hostClasses = true;
|
363
|
-
this.footer = new QueryList();
|
364
|
-
this.columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
|
365
|
-
if (!isUniversal()) {
|
366
|
-
column.matchesMedia = this.matchesMedia(column);
|
367
|
-
}
|
368
|
-
return column.isVisible;
|
369
|
-
}));
|
370
|
-
this.idGetter = getter(undefined);
|
371
|
-
this.localEditService = new LocalEditService();
|
372
|
-
this.view = new ViewCollection(this.viewFieldAccessor.bind(this), this.expandStateService, this.editService, this.selectionService);
|
373
|
-
this.ariaRootId = `k-${guid()}`;
|
374
|
-
this.dataChanged = false;
|
375
|
-
this._hasChildren = (() => false);
|
376
|
-
this.subscriptions = new Subscription();
|
377
|
-
this.rtl = false;
|
378
|
-
this.shouldGenerateColumns = true;
|
379
|
-
this._data = [];
|
380
|
-
this._sort = new Array();
|
381
|
-
this._skip = 0;
|
382
|
-
this.cachedWindowWidth = 0;
|
383
|
-
this._rowReorderable = false;
|
384
|
-
/**
|
385
|
-
* @hidden
|
386
|
-
*/
|
387
|
-
this.treeListData = () => { return this.view; };
|
388
|
-
this._rowClass = () => null;
|
389
|
-
validatePackage(packageMetadata);
|
390
|
-
this.subscriptions.add(localization.changes.subscribe(({ rtl }) => {
|
391
|
-
this.rtl = rtl;
|
392
|
-
this.direction = this.rtl ? 'rtl' : 'ltr';
|
393
|
-
}));
|
394
|
-
this.selectionService.init(this);
|
395
|
-
this.ctx.treelist = this;
|
396
|
-
this.subscriptions.add(this.selectionService.changes.subscribe((args) => {
|
397
|
-
if (hasObservers(this.selectionChange)) {
|
398
|
-
this.ngZone.run(() => {
|
399
|
-
args.sender = this;
|
400
|
-
this.selectionChange.emit(args);
|
401
|
-
this.selectionService.updateSelectedState();
|
402
|
-
this.changeDetectorRef.markForCheck();
|
403
|
-
});
|
404
|
-
}
|
405
|
-
}));
|
406
|
-
this.columnInfoService.init(this.columnsContainer, () => this.columnList);
|
407
|
-
this.subscriptions.add(this.columnInfoService.visibilityChange.subscribe((changed) => {
|
408
|
-
this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));
|
409
|
-
this.changeDetectorRef.markForCheck();
|
410
|
-
}));
|
411
|
-
this.subscriptions.add(this.columnInfoService.lockedChange.subscribe((changed) => {
|
412
|
-
this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));
|
413
|
-
this.changeDetectorRef.markForCheck();
|
414
|
-
}));
|
415
|
-
this.subscriptions.add(merge(this.optionChanges.columns, this.optionChanges.options).subscribe(() => {
|
416
|
-
this.changeDetectorRef.markForCheck();
|
417
|
-
}));
|
418
|
-
this.subscriptions.add(this.filterService.changes.subscribe(x => {
|
419
|
-
this.filterChange.emit(x);
|
420
|
-
}));
|
421
|
-
this.subscriptions.add(this.sortService.changes.subscribe(x => {
|
422
|
-
this.sortChange.emit(x);
|
423
|
-
}));
|
424
|
-
this.attachStateChangesEmitter();
|
425
|
-
this.attachEditHandlers();
|
426
|
-
this.attachDomEventHandlers();
|
427
|
-
this.subscriptions.add(this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this)));
|
428
|
-
this.subscriptions.add(this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this)));
|
429
|
-
this.subscriptions.add(this.excelService.loadingChange.subscribe(() => {
|
430
|
-
this.changeDetectorRef.detectChanges();
|
431
|
-
}));
|
432
|
-
this.columnsContainerChange();
|
433
|
-
this.handleColumnResize();
|
434
|
-
this.columnList = new ColumnList(this.columns);
|
435
|
-
this.subscriptions.add(this.columnReorderService
|
436
|
-
.changes.subscribe(this.reorder.bind(this)));
|
437
|
-
this.subscriptions.add(this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this)));
|
438
|
-
this.subscriptions.add(this.expandStateService.changes.subscribe((args) => {
|
439
|
-
if (args.expand) {
|
440
|
-
this.expandEvent.emit(args);
|
441
|
-
}
|
442
|
-
else {
|
443
|
-
this.collapseEvent.emit(args);
|
444
|
-
}
|
445
|
-
if (!args.isDefaultPrevented()) {
|
446
|
-
this.changeDetectorRef.markForCheck();
|
447
|
-
this.view.clear();
|
448
|
-
this.expandStateChange.emit(args);
|
449
|
-
}
|
450
|
-
if (this.rowReorderable) {
|
451
|
-
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
452
|
-
this.notifyReorderContainers();
|
453
|
-
});
|
454
|
-
}
|
455
|
-
}));
|
456
|
-
this.subscriptions.add(this.view.childrenLoaded.subscribe(() => {
|
457
|
-
this.changeDetectorRef.detectChanges();
|
458
|
-
}));
|
459
|
-
this.subscriptions.add(this.view.resetPage.subscribe(() => {
|
460
|
-
if (this.skip > 0 && hasObservers(this.pageChange)) {
|
461
|
-
// don't think there is a way to avoid this
|
462
|
-
// every callback in which the view can be computed is already passed the change detection
|
463
|
-
// computing the current page in advance also does not seem feasible for such a rare case
|
464
|
-
this.pageChangeTimeout = setTimeout(() => {
|
465
|
-
this.pageChange.emit({ skip: 0, take: this.pageSize });
|
466
|
-
}, 0);
|
467
|
-
}
|
468
|
-
this.skip = 0;
|
469
|
-
}));
|
470
|
-
this.dataLoaded = this.dataLoaded.bind(this);
|
471
|
-
this.editService.idGetter = this.idGetter;
|
472
|
-
}
|
130
|
+
supportService;
|
131
|
+
wrapper;
|
132
|
+
changeNotification;
|
133
|
+
editService;
|
134
|
+
filterService;
|
135
|
+
pdfService;
|
136
|
+
responsiveService;
|
137
|
+
renderer;
|
138
|
+
excelService;
|
139
|
+
ngZone;
|
140
|
+
scrollSyncService;
|
141
|
+
domEvents;
|
142
|
+
columnResizingService;
|
143
|
+
changeDetectorRef;
|
144
|
+
columnReorderService;
|
145
|
+
columnInfoService;
|
146
|
+
navigationService;
|
147
|
+
sortService;
|
148
|
+
scrollRequestService;
|
149
|
+
expandStateService;
|
150
|
+
optionChanges;
|
151
|
+
selectionService;
|
152
|
+
localization;
|
153
|
+
ctx;
|
154
|
+
rowReorderService;
|
155
|
+
/**
|
156
|
+
* An optional accessible description of the component.
|
157
|
+
*/
|
158
|
+
ariaLabel;
|
473
159
|
/**
|
474
160
|
* Sets the data of the TreeList. If an array is provided, the TreeList automatically gets the total count
|
475
161
|
* ([more information and example]({% slug databinding_treelist %})).
|
@@ -489,6 +175,24 @@ export class TreeListComponent {
|
|
489
175
|
get data() {
|
490
176
|
return this.loadedData;
|
491
177
|
}
|
178
|
+
/**
|
179
|
+
* Defines the page size used by the TreeList when [paging]({% slug paging_treelist %}) is enabled.
|
180
|
+
*
|
181
|
+
* @default 10
|
182
|
+
*/
|
183
|
+
pageSize = 10;
|
184
|
+
/**
|
185
|
+
* Defines the height (in pixels) that is used when the `scrollable` option of the TreeList is set.
|
186
|
+
* To set the height of the TreeList, you can also use `style.height`. The `style.height`
|
187
|
+
* option supports units such as `px`, `%`, `em`, `rem`, and others.
|
188
|
+
*/
|
189
|
+
height;
|
190
|
+
/**
|
191
|
+
* Represent the actual height of each TreeList row (`tr`) element in the DOM.
|
192
|
+
* Required by the [virtual scrolling functionality]({% slug scrollmmodes_treelist %}).
|
193
|
+
* Set the `rowHeight` option to the exact pixels as the height of the `tr` element appears in the DOM.
|
194
|
+
*/
|
195
|
+
rowHeight;
|
492
196
|
/**
|
493
197
|
* Defines the number of records to be skipped by the pager.
|
494
198
|
* Required by the [paging]({% slug paging_treelist %}) functionality.
|
@@ -502,6 +206,11 @@ export class TreeListComponent {
|
|
502
206
|
this.view.clear();
|
503
207
|
}
|
504
208
|
}
|
209
|
+
/**
|
210
|
+
* Defines the scroll mode used by the TreeList.
|
211
|
+
* @default 'scrollable'
|
212
|
+
*/
|
213
|
+
scrollable = 'scrollable';
|
505
214
|
/**
|
506
215
|
* The descriptors by which the data will be sorted ([see example]({% slug sorting_treelist %})).
|
507
216
|
*/
|
@@ -513,6 +222,23 @@ export class TreeListComponent {
|
|
513
222
|
get sort() {
|
514
223
|
return this._sort;
|
515
224
|
}
|
225
|
+
/**
|
226
|
+
* A function that defines how to track changes for the data rows.
|
227
|
+
*
|
228
|
+
* By default, the TreeList tracks changes by the index of the data item.
|
229
|
+
* Edited rows are tracked by reference.
|
230
|
+
*
|
231
|
+
*/
|
232
|
+
trackBy = defaultTrackBy;
|
233
|
+
/**
|
234
|
+
* The descriptor by which the data will be filtered ([see examples]({% slug filtering_treelist %})).
|
235
|
+
*/
|
236
|
+
filter;
|
237
|
+
/**
|
238
|
+
* If set to `true`, the treelist will render only the columns in the current viewport.
|
239
|
+
* @default false
|
240
|
+
*/
|
241
|
+
virtualColumns = false;
|
516
242
|
/**
|
517
243
|
* @hidden
|
518
244
|
*/
|
@@ -540,6 +266,25 @@ export class TreeListComponent {
|
|
540
266
|
get marqueeSelection() {
|
541
267
|
return this.selectionService.enableMarquee;
|
542
268
|
}
|
269
|
+
/**
|
270
|
+
* Enables the [filtering]({% slug filtering_treelist %}) of the TreeList columns that have their `field` option set.
|
271
|
+
*/
|
272
|
+
filterable = false;
|
273
|
+
/**
|
274
|
+
* Enables the [sorting]({% slug sorting_treelist %}) of the TreeList columns that have their `field` option set.
|
275
|
+
*/
|
276
|
+
sortable = false;
|
277
|
+
/**
|
278
|
+
* Configures the pager of the TreeList ([see example]({% slug paging_treelist %})).
|
279
|
+
*
|
280
|
+
*/
|
281
|
+
pageable = false;
|
282
|
+
/**
|
283
|
+
* If set to `true`, the user can use dedicated shortcuts to interact with the TreeList.
|
284
|
+
* By default, navigation is disabled and the TreeList content is accessible in the normal tab sequence.
|
285
|
+
* @default false
|
286
|
+
*/
|
287
|
+
navigable = false;
|
543
288
|
/**
|
544
289
|
* @hidden
|
545
290
|
*
|
@@ -554,6 +299,16 @@ export class TreeListComponent {
|
|
554
299
|
get navigatable() {
|
555
300
|
return this.navigable;
|
556
301
|
}
|
302
|
+
/**
|
303
|
+
* Indicates whether the TreeList columns will be resized during initialization so that
|
304
|
+
* they fit their headers and row content. Defaults to `false`.
|
305
|
+
* Columns with `autoSize` set to `false` are excluded.
|
306
|
+
* To dynamically update the column width to match the new content,
|
307
|
+
* refer to [this example]({% slug resizing_columns_treelist %}).
|
308
|
+
*
|
309
|
+
* @default false
|
310
|
+
*/
|
311
|
+
autoSize = false;
|
557
312
|
/**
|
558
313
|
* Defines a function that is executed for every data row in the component.
|
559
314
|
*
|
@@ -579,6 +334,40 @@ export class TreeListComponent {
|
|
579
334
|
get activeRow() {
|
580
335
|
return this.navigationService.activeRow;
|
581
336
|
}
|
337
|
+
/**
|
338
|
+
* If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells
|
339
|
+
* ([see example]({% slug resizing_columns_treelist %})).
|
340
|
+
*
|
341
|
+
* @default false
|
342
|
+
*/
|
343
|
+
resizable = false;
|
344
|
+
/**
|
345
|
+
* If set to `true`, the user can reorder columns by dragging their header cells
|
346
|
+
* ([see example]({% slug reordering_columns_treelist %})).
|
347
|
+
*
|
348
|
+
* @default false
|
349
|
+
*/
|
350
|
+
reorderable = false;
|
351
|
+
/**
|
352
|
+
* Specifies if the loading indicator of the TreeList will be displayed ([see example]({% slug databinding_treelist %})).
|
353
|
+
*
|
354
|
+
* @default false
|
355
|
+
*/
|
356
|
+
loading = false;
|
357
|
+
/**
|
358
|
+
* Specifies if the column menu of the columns will be displayed ([see example]({% slug columnmenu_treelist %})).
|
359
|
+
*
|
360
|
+
* @default false
|
361
|
+
*/
|
362
|
+
columnMenu = false;
|
363
|
+
/**
|
364
|
+
* Specifies if the header of the treelist will be hidden. The header is visible by default.
|
365
|
+
*
|
366
|
+
* The header includes column headers and the [filter row](slug:filter_row_treelist).
|
367
|
+
*
|
368
|
+
* @default false
|
369
|
+
*/
|
370
|
+
hideHeader = false;
|
582
371
|
/**
|
583
372
|
* The name of the field which contains the unique identifier of the node.
|
584
373
|
*
|
@@ -628,6 +417,121 @@ export class TreeListComponent {
|
|
628
417
|
get rowReorderable() {
|
629
418
|
return this._rowReorderable;
|
630
419
|
}
|
420
|
+
/**
|
421
|
+
* Fires when the TreeList selection is changed.
|
422
|
+
*/
|
423
|
+
selectionChange = new EventEmitter();
|
424
|
+
/**
|
425
|
+
* Fires when the TreeList filter is modified through the UI.
|
426
|
+
* You have to handle the event yourself and filter the data.
|
427
|
+
*/
|
428
|
+
filterChange = new EventEmitter();
|
429
|
+
/**
|
430
|
+
* Fires when the page of the TreeList is changed ([see example]({% slug paging_treelist %})).
|
431
|
+
* You have to handle the event yourself and page the data.
|
432
|
+
*/
|
433
|
+
pageChange = new EventEmitter();
|
434
|
+
/**
|
435
|
+
* Fires when the sorting of the TreeList is changed ([see example]({% slug sorting_treelist %})).
|
436
|
+
* You have to handle the event yourself and sort the data.
|
437
|
+
*/
|
438
|
+
sortChange = new EventEmitter();
|
439
|
+
/**
|
440
|
+
* Fires when the data state of the TreeList is changed.
|
441
|
+
*/
|
442
|
+
dataStateChange = new EventEmitter();
|
443
|
+
/**
|
444
|
+
* Fires when the user clicks the **Edit** command button to edit a row
|
445
|
+
* ([see example]({% slug editing_template_forms_treelist %}#toc-editing-records)).
|
446
|
+
*/
|
447
|
+
edit = new EventEmitter();
|
448
|
+
/**
|
449
|
+
* Fires when the user clicks the **Cancel** command button to close a row
|
450
|
+
* ([see example]({% slug editing_template_forms_treelist %}#toc-cancelling-editing)).
|
451
|
+
*/
|
452
|
+
cancel = new EventEmitter();
|
453
|
+
/**
|
454
|
+
* Fires when the user clicks the **Save** command button to save changes in a row
|
455
|
+
* ([see example]({% slug editing_template_forms_treelist %}#toc-saving-records)).
|
456
|
+
*/
|
457
|
+
save = new EventEmitter();
|
458
|
+
/**
|
459
|
+
* Fires when the user clicks the **Remove** command button to remove a row
|
460
|
+
* ([see example]({% slug editing_template_forms_treelist %}#toc-removing-records)).
|
461
|
+
*/
|
462
|
+
remove = new EventEmitter();
|
463
|
+
/**
|
464
|
+
* Fires when the user clicks the **Add** command button to add a new row
|
465
|
+
* ([see example]({% slug editing_template_forms_treelist %}#toc-adding-records)).
|
466
|
+
*/
|
467
|
+
add = new EventEmitter();
|
468
|
+
/**
|
469
|
+
* Fires when the user leaves an edited cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).
|
470
|
+
*/
|
471
|
+
cellClose = new EventEmitter();
|
472
|
+
/**
|
473
|
+
* Fires when the user clicks a cell ([see example]({% slug editing_incell_treelist %}#toc-basic-concepts)).
|
474
|
+
*/
|
475
|
+
cellClick = new EventEmitter();
|
476
|
+
/**
|
477
|
+
* Fires when the user clicks the **Export to PDF** command button.
|
478
|
+
*/
|
479
|
+
pdfExport = new EventEmitter();
|
480
|
+
/**
|
481
|
+
* Fires when the user clicks the **Export to Excel** command button.
|
482
|
+
*/
|
483
|
+
excelExport = new EventEmitter();
|
484
|
+
/**
|
485
|
+
* Fires when the user completes the resizing of the column.
|
486
|
+
*/
|
487
|
+
columnResize = new EventEmitter();
|
488
|
+
/**
|
489
|
+
* Fires when the user completes the reordering of the column.
|
490
|
+
*/
|
491
|
+
columnReorder = new EventEmitter();
|
492
|
+
/**
|
493
|
+
* Fires when the user changes the visibility of the columns from the column menu or column chooser.
|
494
|
+
*/
|
495
|
+
columnVisibilityChange = new EventEmitter();
|
496
|
+
/**
|
497
|
+
* Fires when the user changes the locked state of the columns from the column menu or by reordering the columns.
|
498
|
+
*/
|
499
|
+
columnLockedChange = new EventEmitter();
|
500
|
+
/**
|
501
|
+
* Fires when the user scrolls to the last record on the page and enables endless scrolling
|
502
|
+
* ([see example]({% slug scrollmmodes_treelist %}#toc-endless-scrolling)).
|
503
|
+
* You have to handle the event yourself and page the data.
|
504
|
+
*/
|
505
|
+
scrollBottom = new EventEmitter();
|
506
|
+
/**
|
507
|
+
* Fires when the treelist content is scrolled.
|
508
|
+
* For performance reasons, the event is triggered outside the Angular zone. Enter the Angular zone if you make any changes that require change detection.
|
509
|
+
*/
|
510
|
+
contentScroll = new EventEmitter();
|
511
|
+
/**
|
512
|
+
* Fires when an item is expanded.
|
513
|
+
*/
|
514
|
+
expandEvent = new EventEmitter();
|
515
|
+
/**
|
516
|
+
* Fires when an item is collapsed.
|
517
|
+
*/
|
518
|
+
collapseEvent = new EventEmitter();
|
519
|
+
/**
|
520
|
+
* @hidden
|
521
|
+
*
|
522
|
+
* Emits when the expand or collapse events are fired.
|
523
|
+
* Used by the expand directive and the Gantt component.
|
524
|
+
*/
|
525
|
+
expandStateChange = new EventEmitter();
|
526
|
+
/**
|
527
|
+
* Fires when the user drops the dragged row and reordering is performed.
|
528
|
+
* Emits the [RowReorderEvent]({% slug api_treelist_rowreorderevent %}).
|
529
|
+
*/
|
530
|
+
rowReorder = new EventEmitter();
|
531
|
+
/**
|
532
|
+
* @hidden
|
533
|
+
*/
|
534
|
+
columnOrderChange = new EventEmitter();
|
631
535
|
/**
|
632
536
|
* @hidden
|
633
537
|
*/
|
@@ -641,9 +545,14 @@ export class TreeListComponent {
|
|
641
545
|
get columnsRef() {
|
642
546
|
return this._columnsRef;
|
643
547
|
}
|
548
|
+
/**
|
549
|
+
* A query list of all declared columns.
|
550
|
+
*/
|
551
|
+
columns = new QueryList();
|
644
552
|
get dir() {
|
645
553
|
return this.direction;
|
646
554
|
}
|
555
|
+
hostClasses = true;
|
647
556
|
get lockedClasses() {
|
648
557
|
return this.lockedLeafColumns.length > 0;
|
649
558
|
}
|
@@ -653,6 +562,7 @@ export class TreeListComponent {
|
|
653
562
|
get noScrollbarClass() {
|
654
563
|
return this.scrollbarWidth === 0;
|
655
564
|
}
|
565
|
+
noRecordsTemplateChildren;
|
656
566
|
get noRecordsTemplate() {
|
657
567
|
if (this._customNoRecordsTemplate) {
|
658
568
|
return this._customNoRecordsTemplate;
|
@@ -662,6 +572,7 @@ export class TreeListComponent {
|
|
662
572
|
set noRecordsTemplate(customNoRecordsTemplate) {
|
663
573
|
this._customNoRecordsTemplate = customNoRecordsTemplate;
|
664
574
|
}
|
575
|
+
pagerTemplateChildren;
|
665
576
|
get pagerTemplate() {
|
666
577
|
if (this._customPagerTemplate) {
|
667
578
|
return this._customPagerTemplate;
|
@@ -671,6 +582,7 @@ export class TreeListComponent {
|
|
671
582
|
set pagerTemplate(customPagerTemplate) {
|
672
583
|
this._customPagerTemplate = customPagerTemplate;
|
673
584
|
}
|
585
|
+
toolbarTemplateChildren;
|
674
586
|
get toolbarTemplate() {
|
675
587
|
if (this._customToolbarTemplate) {
|
676
588
|
return this._customToolbarTemplate;
|
@@ -680,6 +592,13 @@ export class TreeListComponent {
|
|
680
592
|
set toolbarTemplate(customToolbarTemplate) {
|
681
593
|
this._customToolbarTemplate = customToolbarTemplate;
|
682
594
|
}
|
595
|
+
columnMenuTemplates;
|
596
|
+
lockedHeader;
|
597
|
+
header;
|
598
|
+
footer = new QueryList();
|
599
|
+
ariaRoot;
|
600
|
+
dragTargetContainer;
|
601
|
+
dropTargetContainer;
|
683
602
|
get scrollbarWidth() {
|
684
603
|
return this.supportService.scrollbarWidth;
|
685
604
|
}
|
@@ -692,6 +611,14 @@ export class TreeListComponent {
|
|
692
611
|
const left = this.rtl ? padding : 0;
|
693
612
|
return `0 ${right} 0 ${left}`;
|
694
613
|
}
|
614
|
+
columnMenuOptions;
|
615
|
+
columnList;
|
616
|
+
columnsContainer = new ColumnsContainer(() => this.columnList.filterHierarchy(column => {
|
617
|
+
if (!isUniversal()) {
|
618
|
+
column.matchesMedia = this.matchesMedia(column);
|
619
|
+
}
|
620
|
+
return column.isVisible;
|
621
|
+
}));
|
695
622
|
get showLoading() {
|
696
623
|
return this.loading || (isObservable(this._data) && !this.loadedData) || this.excelService.loading;
|
697
624
|
}
|
@@ -793,6 +720,146 @@ export class TreeListComponent {
|
|
793
720
|
this.expandStateService.isExpanded = value || defaultExpanded;
|
794
721
|
this.expandIcons = Boolean(value);
|
795
722
|
}
|
723
|
+
idGetter = getter(undefined);
|
724
|
+
localEditService = new LocalEditService();
|
725
|
+
view;
|
726
|
+
expandIcons;
|
727
|
+
ariaRootId = `k-${guid()}`;
|
728
|
+
dataChanged = false;
|
729
|
+
loadedData;
|
730
|
+
_fetchChildren;
|
731
|
+
_hasChildren = (() => false);
|
732
|
+
subscriptions = new Subscription();
|
733
|
+
dataLoadedSubscription;
|
734
|
+
focusElementSubscription;
|
735
|
+
rowReorderSubscription;
|
736
|
+
detachElementEventHandlers;
|
737
|
+
rtl = false;
|
738
|
+
shouldGenerateColumns = true;
|
739
|
+
direction;
|
740
|
+
_data = [];
|
741
|
+
_sort = new Array();
|
742
|
+
_skip = 0;
|
743
|
+
_columnsRef;
|
744
|
+
cachedWindowWidth = 0;
|
745
|
+
_customNoRecordsTemplate;
|
746
|
+
_customPagerTemplate;
|
747
|
+
_customToolbarTemplate;
|
748
|
+
leafViewportColumns;
|
749
|
+
viewportColumns;
|
750
|
+
pageChangeTimeout;
|
751
|
+
_rowReorderable = false;
|
752
|
+
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) {
|
753
|
+
this.supportService = supportService;
|
754
|
+
this.wrapper = wrapper;
|
755
|
+
this.changeNotification = changeNotification;
|
756
|
+
this.editService = editService;
|
757
|
+
this.filterService = filterService;
|
758
|
+
this.pdfService = pdfService;
|
759
|
+
this.responsiveService = responsiveService;
|
760
|
+
this.renderer = renderer;
|
761
|
+
this.excelService = excelService;
|
762
|
+
this.ngZone = ngZone;
|
763
|
+
this.scrollSyncService = scrollSyncService;
|
764
|
+
this.domEvents = domEvents;
|
765
|
+
this.columnResizingService = columnResizingService;
|
766
|
+
this.changeDetectorRef = changeDetectorRef;
|
767
|
+
this.columnReorderService = columnReorderService;
|
768
|
+
this.columnInfoService = columnInfoService;
|
769
|
+
this.navigationService = navigationService;
|
770
|
+
this.sortService = sortService;
|
771
|
+
this.scrollRequestService = scrollRequestService;
|
772
|
+
this.expandStateService = expandStateService;
|
773
|
+
this.optionChanges = optionChanges;
|
774
|
+
this.selectionService = selectionService;
|
775
|
+
this.localization = localization;
|
776
|
+
this.ctx = ctx;
|
777
|
+
this.rowReorderService = rowReorderService;
|
778
|
+
validatePackage(packageMetadata);
|
779
|
+
this.subscriptions.add(localization.changes.subscribe(({ rtl }) => {
|
780
|
+
this.rtl = rtl;
|
781
|
+
this.direction = this.rtl ? 'rtl' : 'ltr';
|
782
|
+
}));
|
783
|
+
this.view = new ViewCollection(this.viewFieldAccessor.bind(this), this.expandStateService, this.editService, this.selectionService);
|
784
|
+
this.selectionService.init(this);
|
785
|
+
this.ctx.treelist = this;
|
786
|
+
this.subscriptions.add(this.selectionService.changes.subscribe((args) => {
|
787
|
+
if (hasObservers(this.selectionChange)) {
|
788
|
+
this.ngZone.run(() => {
|
789
|
+
args.sender = this;
|
790
|
+
this.selectionChange.emit(args);
|
791
|
+
this.selectionService.updateSelectedState();
|
792
|
+
this.changeDetectorRef.markForCheck();
|
793
|
+
});
|
794
|
+
}
|
795
|
+
}));
|
796
|
+
this.columnInfoService.init(this.columnsContainer, () => this.columnList);
|
797
|
+
this.subscriptions.add(this.columnInfoService.visibilityChange.subscribe((changed) => {
|
798
|
+
this.columnVisibilityChange.emit(new ColumnVisibilityChangeEvent(changed));
|
799
|
+
this.changeDetectorRef.markForCheck();
|
800
|
+
}));
|
801
|
+
this.subscriptions.add(this.columnInfoService.lockedChange.subscribe((changed) => {
|
802
|
+
this.columnLockedChange.emit(new ColumnLockedChangeEvent(changed));
|
803
|
+
this.changeDetectorRef.markForCheck();
|
804
|
+
}));
|
805
|
+
this.subscriptions.add(merge(this.optionChanges.columns, this.optionChanges.options).subscribe(() => {
|
806
|
+
this.changeDetectorRef.markForCheck();
|
807
|
+
}));
|
808
|
+
this.subscriptions.add(this.filterService.changes.subscribe(x => {
|
809
|
+
this.filterChange.emit(x);
|
810
|
+
}));
|
811
|
+
this.subscriptions.add(this.sortService.changes.subscribe(x => {
|
812
|
+
this.sortChange.emit(x);
|
813
|
+
}));
|
814
|
+
this.attachStateChangesEmitter();
|
815
|
+
this.attachEditHandlers();
|
816
|
+
this.attachDomEventHandlers();
|
817
|
+
this.subscriptions.add(this.pdfService.exportClick.subscribe(this.emitPDFExportEvent.bind(this)));
|
818
|
+
this.subscriptions.add(this.excelService.exportClick.subscribe(this.saveAsExcel.bind(this)));
|
819
|
+
this.subscriptions.add(this.excelService.loadingChange.subscribe(() => {
|
820
|
+
this.changeDetectorRef.detectChanges();
|
821
|
+
}));
|
822
|
+
this.columnsContainerChange();
|
823
|
+
this.handleColumnResize();
|
824
|
+
this.columnList = new ColumnList(this.columns);
|
825
|
+
this.subscriptions.add(this.columnReorderService
|
826
|
+
.changes.subscribe(this.reorder.bind(this)));
|
827
|
+
this.subscriptions.add(this.columnInfoService.columnRangeChange.subscribe(this.onColumnRangeChange.bind(this)));
|
828
|
+
this.subscriptions.add(this.expandStateService.changes.subscribe((args) => {
|
829
|
+
if (args.expand) {
|
830
|
+
this.expandEvent.emit(args);
|
831
|
+
}
|
832
|
+
else {
|
833
|
+
this.collapseEvent.emit(args);
|
834
|
+
}
|
835
|
+
if (!args.isDefaultPrevented()) {
|
836
|
+
this.changeDetectorRef.markForCheck();
|
837
|
+
this.view.clear();
|
838
|
+
this.expandStateChange.emit(args);
|
839
|
+
}
|
840
|
+
if (this.rowReorderable) {
|
841
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
842
|
+
this.notifyReorderContainers();
|
843
|
+
});
|
844
|
+
}
|
845
|
+
}));
|
846
|
+
this.subscriptions.add(this.view.childrenLoaded.subscribe(() => {
|
847
|
+
this.changeDetectorRef.detectChanges();
|
848
|
+
}));
|
849
|
+
this.subscriptions.add(this.view.resetPage.subscribe(() => {
|
850
|
+
if (this.skip > 0 && hasObservers(this.pageChange)) {
|
851
|
+
// don't think there is a way to avoid this
|
852
|
+
// every callback in which the view can be computed is already passed the change detection
|
853
|
+
// computing the current page in advance also does not seem feasible for such a rare case
|
854
|
+
this.pageChangeTimeout = setTimeout(() => {
|
855
|
+
this.pageChange.emit({ skip: 0, take: this.pageSize });
|
856
|
+
}, 0);
|
857
|
+
}
|
858
|
+
this.skip = 0;
|
859
|
+
}));
|
860
|
+
this.dataLoaded = this.dataLoaded.bind(this);
|
861
|
+
this.editService.idGetter = this.idGetter;
|
862
|
+
}
|
796
863
|
/**
|
797
864
|
* @hidden
|
798
865
|
*/
|
@@ -850,6 +917,10 @@ export class TreeListComponent {
|
|
850
917
|
this.updateNavigationMetadata();
|
851
918
|
this.applyAutoSize();
|
852
919
|
this.subscriptions.add(this.pagerTemplateChildren.changes.subscribe(() => this.changeDetectorRef.markForCheck()));
|
920
|
+
const toolbarComponentWrapper = this.wrapper?.nativeElement?.querySelector('kendo-toolbar');
|
921
|
+
if (toolbarComponentWrapper) {
|
922
|
+
this.renderer.addClass(toolbarComponentWrapper, 'k-grid-toolbar');
|
923
|
+
}
|
853
924
|
}
|
854
925
|
ngAfterContentChecked() {
|
855
926
|
if (this.dataChanged) {
|
@@ -902,6 +973,10 @@ export class TreeListComponent {
|
|
902
973
|
getDefaultSelectors(type) {
|
903
974
|
return this.rowReorderService.defaultSelectors[type];
|
904
975
|
}
|
976
|
+
/**
|
977
|
+
* @hidden
|
978
|
+
*/
|
979
|
+
treeListData = () => { return this.view; };
|
905
980
|
/**
|
906
981
|
* @hidden
|
907
982
|
*/
|
@@ -1409,6 +1484,10 @@ export class TreeListComponent {
|
|
1409
1484
|
if ((this.rowHeight) && !this.isVirtual) {
|
1410
1485
|
throw new Error('Row height setting requires virtual scrolling mode to be enabled.');
|
1411
1486
|
}
|
1487
|
+
if (this.wrapper?.nativeElement?.querySelector('kendo-toolbar') && this.toolbarTemplate) {
|
1488
|
+
console.warn(`Defining both a toolbar template and a ToolBarComponent within the TreeList is not supported.
|
1489
|
+
Please use either the ToolBarComponent or a custom template.`);
|
1490
|
+
}
|
1412
1491
|
validateColumnsField(this.columnList);
|
1413
1492
|
}
|
1414
1493
|
}
|
@@ -1617,6 +1696,7 @@ export class TreeListComponent {
|
|
1617
1696
|
throw new Error('The TreeList should be configured as [navigable]="true" to control focus');
|
1618
1697
|
}
|
1619
1698
|
}
|
1699
|
+
_rowClass = () => null;
|
1620
1700
|
navigationMetadata() {
|
1621
1701
|
const isVirtual = this.isVirtual;
|
1622
1702
|
const filterRowOffset = hasFilterRow(this.filterable) ? 1 : 0;
|
@@ -1700,52 +1780,51 @@ export class TreeListComponent {
|
|
1700
1780
|
this.dragTargetContainer?.notify();
|
1701
1781
|
this.dropTargetContainer?.notify();
|
1702
1782
|
}
|
1703
|
-
}
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
1736
|
-
|
1737
|
-
|
1738
|
-
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
|
1743
|
-
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
1747
|
-
|
1748
|
-
], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoTreeList"], usesOnChanges: true, ngImport: i0, template: `
|
1783
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeListComponent, deps: [{ token: i1.BrowserSupportService }, { token: i0.ElementRef }, { token: i2.ChangeNotificationService }, { token: i3.EditService }, { token: i4.FilterService }, { token: i5.PDFService }, { token: i6.ResponsiveService }, { token: i0.Renderer2 }, { token: i7.ExcelService }, { token: i0.NgZone }, { token: i8.ScrollSyncService }, { token: i9.DomEventsService }, { token: i10.ColumnResizingService }, { token: i0.ChangeDetectorRef }, { token: i11.ColumnReorderService }, { token: i12.ColumnInfoService }, { token: i13.NavigationService }, { token: i14.SortService }, { token: i15.ScrollRequestService }, { token: i16.ExpandStateService }, { token: i17.OptionChangesService }, { token: i18.SelectionService }, { token: i19.LocalizationService }, { token: i20.ContextService }, { token: i21.RowReorderService }], target: i0.ɵɵFactoryTarget.Component });
|
1784
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TreeListComponent, isStandalone: true, selector: "kendo-treelist", inputs: { ariaLabel: ["aria-label", "ariaLabel"], data: "data", pageSize: "pageSize", height: "height", rowHeight: "rowHeight", skip: "skip", scrollable: "scrollable", sort: "sort", trackBy: "trackBy", filter: "filter", virtualColumns: "virtualColumns", filterable: "filterable", sortable: "sortable", pageable: "pageable", navigable: "navigable", navigatable: "navigatable", autoSize: "autoSize", rowClass: "rowClass", resizable: "resizable", reorderable: "reorderable", loading: "loading", columnMenu: "columnMenu", hideHeader: "hideHeader", idField: "idField", selectable: "selectable", isSelected: "isSelected", rowReorderable: "rowReorderable", columnsRef: ["columns", "columnsRef"], fetchChildren: "fetchChildren", hasChildren: "hasChildren", isExpanded: "isExpanded" }, outputs: { selectionChange: "selectionChange", filterChange: "filterChange", pageChange: "pageChange", sortChange: "sortChange", dataStateChange: "dataStateChange", edit: "edit", cancel: "cancel", save: "save", remove: "remove", add: "add", cellClose: "cellClose", cellClick: "cellClick", pdfExport: "pdfExport", excelExport: "excelExport", columnResize: "columnResize", columnReorder: "columnReorder", columnVisibilityChange: "columnVisibilityChange", columnLockedChange: "columnLockedChange", scrollBottom: "scrollBottom", contentScroll: "contentScroll", expandEvent: "expand", collapseEvent: "collapse", expandStateChange: "expandStateChange", rowReorder: "rowReorder" }, host: { properties: { "attr.dir": "this.dir", "class.k-grid": "this.hostClasses", "class.k-grid-md": "this.hostClasses", "class.k-treelist": "this.hostClasses", "class.k-grid-lockedcolumns": "this.lockedClasses", "class.k-grid-virtual": "this.virtualClasses", "class.k-grid-no-scrollbar": "this.noScrollbarClass" } }, providers: [
|
1785
|
+
BrowserSupportService,
|
1786
|
+
LocalizationService,
|
1787
|
+
ColumnInfoService,
|
1788
|
+
ChangeNotificationService,
|
1789
|
+
EditService,
|
1790
|
+
PDFService,
|
1791
|
+
SuspendService,
|
1792
|
+
{
|
1793
|
+
provide: L10N_PREFIX,
|
1794
|
+
useValue: 'kendo.treelist'
|
1795
|
+
},
|
1796
|
+
FilterService,
|
1797
|
+
ResponsiveService,
|
1798
|
+
PagerContextService,
|
1799
|
+
ExcelService,
|
1800
|
+
ScrollSyncService,
|
1801
|
+
ResizeService,
|
1802
|
+
DomEventsService,
|
1803
|
+
ColumnResizingService,
|
1804
|
+
SinglePopupService,
|
1805
|
+
DragAndDropService,
|
1806
|
+
DragHintService,
|
1807
|
+
DropCueService,
|
1808
|
+
ColumnReorderService,
|
1809
|
+
NavigationService,
|
1810
|
+
FocusRoot,
|
1811
|
+
IdService,
|
1812
|
+
ScrollRequestService,
|
1813
|
+
SortService,
|
1814
|
+
ExpandStateService,
|
1815
|
+
OptionChangesService,
|
1816
|
+
SelectionService,
|
1817
|
+
{
|
1818
|
+
provide: DataBoundTreeComponent,
|
1819
|
+
useExisting: forwardRef(() => TreeListComponent)
|
1820
|
+
},
|
1821
|
+
{
|
1822
|
+
provide: ExpandableTreeComponent,
|
1823
|
+
useExisting: forwardRef(() => TreeListComponent)
|
1824
|
+
},
|
1825
|
+
ContextService,
|
1826
|
+
RowReorderService
|
1827
|
+
], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoTreeList"], usesOnChanges: true, ngImport: i0, template: `
|
1749
1828
|
<ng-container kendoTreeListLocalizedMessages
|
1750
1829
|
|
1751
1830
|
i18n-noRecords="kendo.treelist.noRecords|The label visible in the TreeList when there are no records"
|
@@ -1926,8 +2005,8 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
1926
2005
|
[navigable]="navigable"
|
1927
2006
|
class="k-toolbar k-grid-toolbar k-toolbar-md"
|
1928
2007
|
[attr.aria-label]="messageFor('topToolbarLabel')"
|
1929
|
-
[attr.aria-controls]="ariaRootId">
|
1930
|
-
|
2008
|
+
[attr.aria-controls]="ariaRootId"></kendo-treelist-toolbar>
|
2009
|
+
<ng-content select="kendo-toolbar"></ng-content>
|
1931
2010
|
<div #ariaRoot
|
1932
2011
|
class="k-grid-aria-root"
|
1933
2012
|
role="treegrid"
|
@@ -2122,7 +2201,8 @@ TreeListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
2122
2201
|
{{hintText}}
|
2123
2202
|
</ng-template>
|
2124
2203
|
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoTreeListLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ToolbarComponent, selector: "kendo-treelist-toolbar", inputs: ["position", "navigable"] }, { kind: "directive", type: DragTargetContainerDirective, selector: "[kendoDragTargetContainer]", inputs: ["hint", "dragTargetFilter", "dragHandle", "dragDelay", "threshold", "dragTargetId", "dragData", "dragDisabled", "mode"], outputs: ["onDragReady", "onPress", "onDragStart", "onDrag", "onRelease", "onDragEnd"], exportAs: ["kendoDragTargetContainer"] }, { kind: "directive", type: DropTargetContainerDirective, selector: "[kendoDropTargetContainer]", inputs: ["dropTargetFilter", "dropDisabled"], outputs: ["onDragEnter", "onDragOver", "onDragLeave", "onDrop"], exportAs: ["kendoDropTargetContainer"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: HeaderComponent, selector: "[kendoTreeListHeader]", inputs: ["totalColumnLevels", "columns", "scrollable", "filterable", "sort", "filter", "sortable", "lockedColumnsCount", "resizable", "reorderable", "columnMenu", "columnMenuTemplate", "totalColumnsCount", "totalColumns"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", type: ListComponent, selector: "kendo-treelist-list", inputs: ["view", "total", "rowHeight", "take", "skip", "columns", "noRecordsTemplate", "filterable", "rowClass", "loading", "trackBy", "virtualColumns", "isVirtual", "expandIcons"], outputs: ["contentScroll", "pageChange", "scrollBottom"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "directive", type: MarqueeDirective, selector: "[kendoTreeListSelectionMarquee]" }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }, { kind: "component", type: PagerComponent, selector: "kendo-treelist-pager", inputs: ["allCount", "total", "skip", "navigable", "pageSize", "options", "template"], outputs: ["pageChange"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
2125
|
-
|
2204
|
+
}
|
2205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeListComponent, decorators: [{
|
2126
2206
|
type: Component,
|
2127
2207
|
args: [{
|
2128
2208
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
@@ -2354,8 +2434,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
2354
2434
|
[navigable]="navigable"
|
2355
2435
|
class="k-toolbar k-grid-toolbar k-toolbar-md"
|
2356
2436
|
[attr.aria-label]="messageFor('topToolbarLabel')"
|
2357
|
-
[attr.aria-controls]="ariaRootId">
|
2358
|
-
|
2437
|
+
[attr.aria-controls]="ariaRootId"></kendo-treelist-toolbar>
|
2438
|
+
<ng-content select="kendo-toolbar"></ng-content>
|
2359
2439
|
<div #ariaRoot
|
2360
2440
|
class="k-grid-aria-root"
|
2361
2441
|
role="treegrid"
|