@progress/kendo-angular-grid
Version:
Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.
473 lines (472 loc) • 21.1 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
// DRAGGABLE COLUMN
import { DraggableColumnDirective } from "./dragdrop/draggable-column.directive";
import { DropTargetDirective } from "./dragdrop/drop-target.directive";
// SHARED
import { ColumnComponent } from './columns/column.component';
import { SpanColumnComponent } from './columns/span-column.component';
import { ColumnGroupComponent } from './columns/column-group.component';
import { FooterTemplateDirective } from './rendering/footer/footer-template.directive';
import { ColGroupComponent } from './rendering/common/col-group.component';
import { LoadingComponent } from './rendering/common/loading.component';
import { ResizableContainerDirective } from './layout/resizable.directive';
import { DetailTemplateDirective } from './rendering/details/detail-template.directive';
import { LogicalCellDirective } from './navigation/logical-cell.directive';
import { LogicalRowDirective } from './navigation/logical-row.directive';
import { FieldAccessorPipe } from "./rendering/common/field-accessor.pipe";
import { FocusableDirective } from "./navigation/focusable.directive";
import { GridTableDirective } from './rendering/grid-table.directive';
// GROUPING
import { GroupHeaderTemplateDirective } from './grouping/group-header-template.directive';
import { GroupHeaderColumnTemplateDirective } from './grouping/group-header-column-template.directive';
import { GroupHeaderComponent } from './grouping/group-header.component';
import { GroupFooterTemplateDirective } from './grouping/group-footer-template.directive';
import { GroupPanelComponent } from './grouping/group-panel.component';
// FILTERING
import { ContainsFilterOperatorComponent } from './filtering/operators/contains-filter-operator.component';
import { DoesNotContainFilterOperatorComponent } from './filtering/operators/not-contains-filter-operator.component';
import { EndsWithFilterOperatorComponent } from './filtering/operators/ends-with-filter-operator.component';
import { EqualFilterOperatorComponent } from './filtering/operators/eq-filter-operator.component';
import { IsEmptyFilterOperatorComponent } from './filtering/operators/is-empty-filter-operator.component';
import { IsNotEmptyFilterOperatorComponent } from './filtering/operators/is-not-empty-filter-operator.component';
import { IsNotNullFilterOperatorComponent } from './filtering/operators/is-not-null-filter-operator.component';
import { IsNullFilterOperatorComponent } from './filtering/operators/isnull-filter-operator.component';
import { NotEqualFilterOperatorComponent } from './filtering/operators/neq-filter-operator.component';
import { StartsWithFilterOperatorComponent } from './filtering/operators/starts-with-filter-operator.component';
import { GreaterFilterOperatorComponent } from './filtering/operators/gt-filter-operator.component';
import { GreaterOrEqualToFilterOperatorComponent } from './filtering/operators/gte-filter-operator.component';
import { LessFilterOperatorComponent } from './filtering/operators/lt-filter-operator.component';
import { LessOrEqualToFilterOperatorComponent } from './filtering/operators/lte-filter-operator.component';
import { AfterFilterOperatorComponent } from './filtering/operators/after-filter-operator.component';
import { AfterEqFilterOperatorComponent } from './filtering/operators/after-eq-filter-operator.component';
import { BeforeEqFilterOperatorComponent } from './filtering/operators/before-eq-filter-operator.component';
import { BeforeFilterOperatorComponent } from './filtering/operators/before-filter-operator.component';
import { FilterCellOperatorsComponent } from "./filtering/cell/filter-cell-operators.component";
import { FilterInputDirective } from "./filtering/filter-input.directive";
import { FilterMenuComponent } from "./filtering/menu/filter-menu.component";
import { FilterMenuContainerComponent } from "./filtering/menu/filter-menu-container.component";
import { FilterMenuInputWrapperComponent } from "./filtering/menu/filter-menu-input-wrapper.component";
import { StringFilterMenuInputComponent } from "./filtering/menu/string-filter-menu-input.component";
import { StringFilterMenuComponent } from "./filtering/menu/string-filter-menu.component";
import { FilterMenuTemplateDirective } from "./filtering/menu/filter-menu-template.directive";
import { NumericFilterMenuComponent } from "./filtering/menu/numeric-filter-menu.component";
import { NumericFilterMenuInputComponent } from "./filtering/menu/numeric-filter-menu-input.component";
import { DateFilterMenuInputComponent } from "./filtering/menu/date-filter-menu-input.component";
import { DateFilterMenuComponent } from "./filtering/menu/date-filter-menu.component";
import { FilterMenuHostDirective } from "./filtering/menu/filter-menu-host.directive";
import { BooleanFilterMenuComponent } from "./filtering/menu/boolean-filter-menu.component";
import { FilterMenuDropDownListDirective } from "./filtering/menu/filter-menu-dropdownlist.directive";
import { BooleanFilterRadioButtonDirective } from "./filtering/menu/filter-radio-button.directive";
import { AutoCompleteFilterCellComponent } from "./filtering/cell/autocomplete-filter-cell.component";
import { BooleanFilterCellComponent } from "./filtering/cell/boolean-filter-cell.component";
import { DateFilterCellComponent } from "./filtering/cell/date-filter-cell.component";
import { FilterCellHostDirective } from "./filtering/cell/filter-cell-host.directive";
import { FilterCellTemplateDirective } from "./filtering/cell/filter-cell-template.directive";
import { FilterCellWrapperComponent } from "./filtering/cell/filter-cell-wrapper.component";
import { FilterCellComponent } from "./filtering/cell/filter-cell.component";
import { NumericFilterCellComponent } from "./filtering/cell/numeric-filter-cell.component";
import { StringFilterCellComponent } from "./filtering/cell/string-filter-cell.component";
import { FilterRowComponent } from "./filtering/filter-row.component";
// COLUMN MENU
import { ColumnMenuChooserItemCheckedDirective } from "./column-menu/column-chooser-item-checked.directive";
import { ColumnChooserComponent } from "./column-menu/column-chooser.component";
import { ColumnChooserToolbarDirective } from "./column-menu/column-chooser-tool.directive";
import { ColumnListComponent } from "./column-menu/column-list.component";
import { ColumnMenuAutoSizeAllColumnsComponent } from "./column-menu/column-menu-autosize-all.component";
import { ColumnMenuAutoSizeColumnComponent } from "./column-menu/column-menu-autosize.component";
import { ColumnMenuChooserComponent } from "./column-menu/column-menu-chooser.component";
import { ColumnMenuContainerComponent } from "./column-menu/column-menu-container.component";
import { ColumnMenuFilterComponent } from "./column-menu/column-menu-filter.component";
import { ColumnMenuItemContentTemplateDirective } from "./column-menu/column-menu-item-content-template.directive";
import { ColumnMenuItemComponent } from "./column-menu/column-menu-item.component";
import { ColumnMenuItemDirective } from "./column-menu/column-menu-item.directive";
import { ColumnMenuLockComponent } from "./column-menu/column-menu-lock.component";
import { ColumnMenuPositionComponent } from "./column-menu/column-menu-position.component";
import { ColumnMenuSortComponent } from "./column-menu/column-menu-sort.component";
import { ColumnMenuStickComponent } from "./column-menu/column-menu-stick.component";
import { ColumnMenuTemplateDirective } from "./column-menu/column-menu-template.directive";
import { ColumnMenuComponent } from "./column-menu/column-menu.component";
// EXCEL EXPORT
import { ExcelComponent } from "./excel/excel.component";
import { ExcelCommandDirective } from "./excel/excel-command.directive";
import { ColumnComponent as ExcelColumnComponent, ColumnGroupComponent as ExcelColumnGroupComponent, FooterTemplateDirective as ExcelFooterTemplateDirective, GroupFooterTemplateDirective as ExcelGroupFooterTemplateDirective, GroupHeaderTemplateDirective as ExcelGroupHeaderTemplateDirective, GroupHeaderColumnTemplateDirective as ExcelGroupHeaderColumnTemplateDirective } from '@progress/kendo-angular-excel-export';
// PDF EXPORT
import { PDFComponent } from "./pdf/pdf.component";
import { PDFMarginComponent } from "./pdf/pdf-margin.component";
import { PDFCommandDirective } from "./pdf/pdf-command.directive";
import { PDFTemplateDirective } from "./pdf/pdf-template.directive";
// HEADER
import { HeaderComponent } from "./rendering/header/header.component";
import { HeaderTemplateDirective } from "./rendering/header/header-template.directive";
import { ColumnHandleDirective } from "./column-resizing/column-handle.directive";
import { SelectAllCheckboxDirective } from "./selection/selectall-checkbox.directive";
import { FooterComponent } from "./rendering/footer/footer.component";
import { CommandColumnComponent } from "./columns/command-column.component";
import { CheckboxColumnComponent } from "./columns/checkbox-column.component";
import { SelectionCheckboxDirective } from "./selection/selection-checkbox.directive";
import { CellTemplateDirective } from "./rendering/cell-template.directive";
import { EditTemplateDirective } from "./editing/edit-template.directive";
import { TableBodyComponent } from "./rendering/table-body.component";
import { NoRecordsTemplateDirective } from "./rendering/no-records-template.directive";
import { CellComponent } from "./rendering/cell.component";
import { EditCommandDirective } from "./editing/edit-command.directive";
import { CancelCommandDirective } from "./editing/cancel-command.directive";
import { SaveCommandDirective } from "./editing/save-command.directive";
import { RemoveCommandDirective } from "./editing/remove-command.directive";
import { AddCommandDirective } from "./editing/add-command.directive";
import { CellLoadingTemplateDirective } from "./rendering/cell-loading.template.directive";
import { LoadingTemplateDirective } from "./rendering/loading-template.directive";
import { RowReorderColumnComponent } from "./columns/reorder-column.component";
import { GridComponent } from "./grid.component";
import { ListComponent } from "./rendering/list.component";
import { ToolbarComponent } from "./rendering/toolbar/toolbar.component";
import { LocalizedMessagesDirective } from "./localization/localized-messages.directive";
import { CustomMessagesComponent } from "./localization/custom-messages.component";
import { DataBindingDirective } from "./databinding.directive";
import { ToolbarTemplateDirective } from "./rendering/toolbar/toolbar-template.directive";
import { SelectionDirective } from "./selection/selection.directive";
import { TemplateEditingDirective } from "./editing-directives/template-editing.directive";
import { ReactiveEditingDirective } from "./editing-directives/reactive-editing.directive";
import { InCellEditingDirective } from "./editing-directives/in-cell-editing.directive";
import { ExternalEditingDirective } from "./editing-directives/external-editing.directive";
import { ExpandDetailsDirective } from "./rendering/details-expand.directive";
import { ExpandGroupDirective } from "./rendering/groups-expand.directive";
import { GroupBindingDirective } from "./grouping/group-scroll-binding.directive";
import { GridMarqueeDirective } from "./selection/marquee.directive";
import { GridSpacerComponent } from "./rendering/common/spacer.component";
import { GridToolbarFocusableDirective } from "./rendering/toolbar/toolbar-focusable.directive";
import { StatusBarComponent } from "./aggregates/status-bar.component";
import { StatusBarTemplateDirective } from "./aggregates/status-bar-template.directive";
import { GridClipboardDirective } from "./common/clipboard.directive";
import { TemplateContextDirective } from "@progress/kendo-angular-common";
import { PDFCommandToolbarDirective } from "./pdf/pdf-command-tool.directive";
import { ExcelCommandToolbarDirective } from "./excel/excel-command-tool.directive";
import { AddCommandToolbarDirective } from "./editing/add-command-tool.directive";
import { RowDragHandleTemplateDirective } from "./row-reordering/drag-handle-template.directive";
import { RowDragHintTemplateDirective } from "./row-reordering/drag-hint-template.directive";
import { DialogFormComponent, FormComponent, FormFormFieldComponent } from "./editing/form";
/**
* @hidden
*
* Utility array that contains all column dragging components and directives
*/
export const KENDO_GRID_COLUMN_DRAGANDDROP = [
DraggableColumnDirective,
DropTargetDirective
];
/**
* @hidden
*
* Utility array that contains the former Shared module exports
*/
export const KENDO_GRID_SHARED = [
ColumnComponent,
ColumnGroupComponent,
LogicalCellDirective,
LogicalRowDirective,
FocusableDirective,
FooterTemplateDirective,
ColGroupComponent,
ResizableContainerDirective,
TemplateContextDirective,
FieldAccessorPipe,
DetailTemplateDirective,
SpanColumnComponent,
LoadingComponent,
GridTableDirective
];
/**
* @hidden
*
* Utility array that contains the former Group module exports
*/
export const KENDO_GRID_GROUP_EXPORTS = [
GroupHeaderTemplateDirective,
GroupHeaderColumnTemplateDirective,
GroupFooterTemplateDirective,
GroupHeaderComponent,
GroupPanelComponent,
];
/**
* @hidden
*
* Utility array that contains the filter operator components
*/
export const KENDO_GRID_FILTER_OPERATORS = [
FilterCellOperatorsComponent,
ContainsFilterOperatorComponent,
DoesNotContainFilterOperatorComponent,
EndsWithFilterOperatorComponent,
EqualFilterOperatorComponent,
IsEmptyFilterOperatorComponent,
IsNotEmptyFilterOperatorComponent,
IsNotNullFilterOperatorComponent,
IsNullFilterOperatorComponent,
NotEqualFilterOperatorComponent,
StartsWithFilterOperatorComponent,
GreaterFilterOperatorComponent,
GreaterOrEqualToFilterOperatorComponent,
LessFilterOperatorComponent,
LessOrEqualToFilterOperatorComponent,
AfterFilterOperatorComponent,
AfterEqFilterOperatorComponent,
BeforeEqFilterOperatorComponent,
BeforeFilterOperatorComponent
];
/**
* @hidden
*
* Utility array that contains the former SharedFilterModule exports
*/
export const KENDO_GRID_FILTER_SHARED = [
...KENDO_GRID_SHARED,
...KENDO_GRID_FILTER_OPERATORS,
FilterInputDirective,
];
/**
* @hidden
*
* Utility array that contains the former FilterMenuModule declarations
*/
export const KENDO_GRID_FILTER_MENU_EXPORTS = [
FilterMenuComponent,
FilterMenuContainerComponent,
FilterMenuInputWrapperComponent,
StringFilterMenuInputComponent,
StringFilterMenuComponent,
FilterMenuTemplateDirective,
NumericFilterMenuComponent,
NumericFilterMenuInputComponent,
DateFilterMenuInputComponent,
DateFilterMenuComponent,
FilterMenuHostDirective,
BooleanFilterMenuComponent,
FilterMenuDropDownListDirective,
BooleanFilterRadioButtonDirective
];
/**
* @hidden
*
* Utility array that contains the former FilterMenuModule exports
*/
export const KENDO_GRID_FILTER_MENU = [
...KENDO_GRID_FILTER_SHARED,
...KENDO_GRID_FILTER_MENU_EXPORTS
];
/**
* @hidden
*
* Utility array that contains the former RowFilterModule declarations
*/
export const KENDO_GRID_FILTER_ROW_EXPORTS = [
FilterRowComponent,
FilterCellComponent,
FilterCellTemplateDirective,
StringFilterCellComponent,
NumericFilterCellComponent,
AutoCompleteFilterCellComponent,
BooleanFilterCellComponent,
FilterCellHostDirective,
FilterCellWrapperComponent,
DateFilterCellComponent
];
/**
* @hidden
*
* Utility array that contains the former RowFilterModule exports
*/
export const KENDO_GRID_FILTER_ROW = [
...KENDO_GRID_FILTER_ROW_EXPORTS,
...KENDO_GRID_FILTER_SHARED
];
/**
* @hidden
*
* Utility array that contains the former ColumnMenu module declarations
*/
export const KENDO_GRID_COLUMN_MENU_DECLARATIONS = [
ColumnMenuChooserItemCheckedDirective,
ColumnListComponent,
ColumnChooserComponent,
ColumnChooserToolbarDirective,
ColumnMenuChooserComponent,
ColumnMenuFilterComponent,
ColumnMenuItemComponent,
ColumnMenuItemContentTemplateDirective,
ColumnMenuSortComponent,
ColumnMenuComponent,
ColumnMenuLockComponent,
ColumnMenuTemplateDirective,
ColumnMenuContainerComponent,
ColumnMenuItemDirective,
ColumnMenuStickComponent,
ColumnMenuPositionComponent,
ColumnMenuAutoSizeColumnComponent,
ColumnMenuAutoSizeAllColumnsComponent
];
/**
* @hidden
*
* Utility array that contains the former ColumnMenu module exports
*/
export const KENDO_GRID_COLUMN_MENU_EXPORTS = [
ColumnChooserComponent,
ColumnChooserToolbarDirective,
ColumnMenuFilterComponent,
ColumnMenuItemComponent,
ColumnMenuItemContentTemplateDirective,
ColumnMenuSortComponent,
ColumnMenuLockComponent,
ColumnMenuStickComponent,
ColumnMenuPositionComponent,
ColumnMenuChooserComponent,
ColumnMenuTemplateDirective,
ColumnMenuContainerComponent,
ColumnMenuItemDirective,
ColumnMenuComponent,
ColumnMenuAutoSizeColumnComponent,
ColumnMenuAutoSizeAllColumnsComponent
];
/**
* @hidden
*/
export const KENDO_GRID_HEADER_EXPORTS = [
HeaderComponent,
HeaderTemplateDirective,
ColumnHandleDirective,
SelectAllCheckboxDirective
];
/**
* @hidden
*
* Utility array that contains the Footer module exports
*/
export const KENDO_GRID_FOOTER_EXPORTS = [FooterComponent];
/**
* @hidden
*
* Utility array that contains the Body module exports
*/
export const KENDO_GRID_BODY_EXPORTS = [
CommandColumnComponent,
CheckboxColumnComponent,
SelectionCheckboxDirective,
CellTemplateDirective,
EditTemplateDirective,
RowDragHandleTemplateDirective,
RowDragHintTemplateDirective,
TableBodyComponent,
NoRecordsTemplateDirective,
CellComponent,
EditCommandDirective,
CancelCommandDirective,
SaveCommandDirective,
RemoveCommandDirective,
AddCommandDirective,
AddCommandToolbarDirective,
CellLoadingTemplateDirective,
LoadingTemplateDirective,
RowReorderColumnComponent
];
/**
* @hidden
*
* Utility array that contains the Grid module declarations
*/
export const KENDO_GRID_DECLARATIONS = [
GridComponent,
ListComponent,
ToolbarComponent,
LocalizedMessagesDirective,
CustomMessagesComponent,
DataBindingDirective,
ToolbarTemplateDirective,
SelectionDirective,
TemplateEditingDirective,
ReactiveEditingDirective,
InCellEditingDirective,
ExternalEditingDirective,
ExpandDetailsDirective,
ExpandGroupDirective,
GroupBindingDirective,
GridMarqueeDirective,
GridSpacerComponent,
GridToolbarFocusableDirective,
StatusBarComponent,
StatusBarTemplateDirective,
GridClipboardDirective,
FormComponent,
DialogFormComponent,
FormFormFieldComponent
];
/**
* @hidden
*
* Utility array that contains the Grid module exports
*/
export const KENDO_GRID_EXPORTS = [
GridComponent,
ToolbarTemplateDirective,
ToolbarComponent,
GridSpacerComponent,
StatusBarTemplateDirective,
DataBindingDirective,
SelectionDirective,
CustomMessagesComponent,
GroupBindingDirective,
TemplateEditingDirective,
ReactiveEditingDirective,
InCellEditingDirective,
ExternalEditingDirective,
ExpandDetailsDirective,
ExpandGroupDirective,
GridToolbarFocusableDirective,
...KENDO_GRID_GROUP_EXPORTS,
...KENDO_GRID_SHARED,
...KENDO_GRID_BODY_EXPORTS,
...KENDO_GRID_HEADER_EXPORTS,
...KENDO_GRID_FILTER_ROW_EXPORTS,
...KENDO_GRID_FILTER_OPERATORS,
...KENDO_GRID_FILTER_MENU_EXPORTS,
...KENDO_GRID_COLUMN_MENU_EXPORTS,
GridClipboardDirective
];
/**
* @hidden
*
* Utility array that contains the ExcelExport module exports
*/
export const KENDO_GRID_EXCEL_EXPORT = [
ExcelComponent,
ExcelCommandDirective,
ExcelCommandToolbarDirective,
ExcelColumnComponent,
ExcelColumnGroupComponent,
ExcelFooterTemplateDirective,
ExcelGroupFooterTemplateDirective,
ExcelGroupHeaderColumnTemplateDirective,
ExcelGroupHeaderTemplateDirective
];
/**
* @hidden
*
* Utility array that contains the PDFModule declarations and exports
*/
export const KENDO_GRID_PDF_EXPORT = [
PDFComponent,
PDFMarginComponent,
PDFCommandDirective,
PDFTemplateDirective,
PDFCommandToolbarDirective
];
/**
* Utility array that contains all `Grid` related components and directives
*/
export const KENDO_GRID = [
...KENDO_GRID_EXPORTS,
...KENDO_GRID_EXCEL_EXPORT,
...KENDO_GRID_PDF_EXPORT
];