@progress/kendo-vue-grid 3.5.0 → 3.5.1-dev.202208150613
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/dist/cdn/js/kendo-vue-grid.js +1 -1
- package/dist/es/Grid.js +20 -24
- package/dist/es/ScrollMode.js +1 -0
- package/dist/es/columnMenu/ColumnMenu.js +2 -2
- package/dist/es/columnMenu/GridColumnMenuCheckboxFilter.js +9 -13
- package/dist/es/columnMenu/GridColumnMenuFilter.js +423 -107
- package/dist/es/columnMenu/GridColumnMenuFilterCell.js +74 -97
- package/dist/es/columnMenu/GridColumnMenuFilterOperators.d.ts +36 -0
- package/dist/es/columnMenu/GridColumnMenuFilterOperators.js +68 -0
- package/dist/es/columnMenu/GridColumnMenuItem.js +2 -2
- package/dist/es/filterCommon.d.ts +1 -1
- package/dist/es/footer/Footer.js +1 -1
- package/dist/es/footer/FooterRow.js +1 -1
- package/dist/es/header/FilterRow.js +1 -1
- package/dist/es/header/Header.js +1 -1
- package/dist/es/header/HeaderRow.js +1 -1
- package/dist/es/interfaces/ExtendedColumnProps.js +1 -0
- package/dist/es/interfaces/GridCellProps.js +1 -0
- package/dist/es/interfaces/GridColumnMenuColumnProps.js +1 -0
- package/dist/es/interfaces/GridColumnMenuExtendedFilterProps.js +1 -0
- package/dist/es/interfaces/GridColumnMenuFilterBaseProps.js +1 -0
- package/dist/es/interfaces/GridColumnMenuFilterProps.js +1 -0
- package/dist/es/interfaces/GridColumnMenuFilterUIProps.js +1 -0
- package/dist/es/interfaces/GridColumnMenuProps.js +1 -0
- package/dist/es/interfaces/GridColumnMenuSortBaseProps.js +1 -0
- package/dist/es/interfaces/GridColumnProps.js +1 -0
- package/dist/es/interfaces/GridDetailRowProps.js +1 -0
- package/dist/es/interfaces/GridFilterCellProps.js +1 -0
- package/dist/es/interfaces/GridFilterOperator.js +1 -0
- package/dist/es/interfaces/GridFilterOperators.js +1 -0
- package/dist/es/interfaces/GridFooterCellProps.js +1 -0
- package/dist/es/interfaces/GridGroupableSettings.js +1 -0
- package/dist/es/interfaces/GridHeaderCellProps.js +1 -0
- package/dist/es/interfaces/GridHeaderSelectionCellProps.js +1 -0
- package/dist/es/interfaces/GridNoRecordsProps.js +1 -0
- package/dist/es/interfaces/GridProps.js +1 -0
- package/dist/es/interfaces/GridRowProps.js +1 -0
- package/dist/es/interfaces/GridRowType.js +1 -0
- package/dist/es/interfaces/GridSortSettings.js +9 -7
- package/dist/es/interfaces/GridToolbarProps.js +1 -0
- package/dist/es/interfaces/events.js +1 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/rows/GridDetailRow.d.ts +2 -1
- package/dist/es/utils/index.js +4 -4
- package/dist/esm/Grid.d.ts +180 -0
- package/dist/esm/Grid.js +2086 -0
- package/dist/esm/GridNav.d.ts +46 -0
- package/dist/esm/GridNav.js +112 -0
- package/dist/esm/GridNoRecords.d.ts +51 -0
- package/dist/esm/GridNoRecords.js +83 -0
- package/dist/esm/GridToolbar.d.ts +58 -0
- package/dist/esm/GridToolbar.js +77 -0
- package/dist/esm/ScrollMode.d.ts +1 -0
- package/dist/esm/ScrollMode.js +1 -0
- package/dist/esm/VirtualScroll.d.ts +41 -0
- package/dist/esm/VirtualScroll.js +217 -0
- package/dist/esm/additionalTypes.ts +21 -0
- package/dist/esm/cells/GridCell.d.ts +30 -0
- package/dist/esm/cells/GridCell.js +161 -0
- package/dist/esm/cells/GridDetailCell.d.ts +29 -0
- package/dist/esm/cells/GridDetailCell.js +82 -0
- package/dist/esm/cells/GridDetailHierarchyCell.d.ts +24 -0
- package/dist/esm/cells/GridDetailHierarchyCell.js +53 -0
- package/dist/esm/cells/GridEditCell.d.ts +40 -0
- package/dist/esm/cells/GridEditCell.js +312 -0
- package/dist/esm/cells/GridFilterCell.d.ts +26 -0
- package/dist/esm/cells/GridFilterCell.js +259 -0
- package/dist/esm/cells/GridGroupCell.d.ts +23 -0
- package/dist/esm/cells/GridGroupCell.js +179 -0
- package/dist/esm/cells/GridHierarchyCell.d.ts +23 -0
- package/dist/esm/cells/GridHierarchyCell.js +162 -0
- package/dist/esm/cells/GridSelectionCell.d.ts +34 -0
- package/dist/esm/cells/GridSelectionCell.js +138 -0
- package/dist/esm/columnMenu/ColumnMenu.d.ts +56 -0
- package/dist/esm/columnMenu/ColumnMenu.js +252 -0
- package/dist/esm/columnMenu/ColumnMenuContent.d.ts +33 -0
- package/dist/esm/columnMenu/ColumnMenuContent.js +123 -0
- package/dist/esm/columnMenu/GridColumnMenuCheckboxFilter.d.ts +86 -0
- package/dist/esm/columnMenu/GridColumnMenuCheckboxFilter.js +709 -0
- package/dist/esm/columnMenu/GridColumnMenuFilter.d.ts +339 -0
- package/dist/esm/columnMenu/GridColumnMenuFilter.js +1079 -0
- package/dist/esm/columnMenu/GridColumnMenuFilterCell.d.ts +45 -0
- package/dist/esm/columnMenu/GridColumnMenuFilterCell.js +152 -0
- package/dist/esm/columnMenu/GridColumnMenuFilterOperators.d.ts +36 -0
- package/dist/esm/columnMenu/GridColumnMenuFilterOperators.js +68 -0
- package/dist/esm/columnMenu/GridColumnMenuFilterUI.d.ts +24 -0
- package/dist/esm/columnMenu/GridColumnMenuFilterUI.js +155 -0
- package/dist/esm/columnMenu/GridColumnMenuItem.d.ts +42 -0
- package/dist/esm/columnMenu/GridColumnMenuItem.js +63 -0
- package/dist/esm/columnMenu/GridColumnMenuItemContent.d.ts +34 -0
- package/dist/esm/columnMenu/GridColumnMenuItemContent.js +51 -0
- package/dist/esm/columnMenu/GridColumnMenuItemGroup.d.ts +19 -0
- package/dist/esm/columnMenu/GridColumnMenuItemGroup.js +33 -0
- package/dist/esm/columnMenu/GridColumnMenuSort.d.ts +283 -0
- package/dist/esm/columnMenu/GridColumnMenuSort.js +375 -0
- package/dist/esm/drag/ColumnDraggable.d.ts +43 -0
- package/dist/esm/drag/ColumnDraggable.js +73 -0
- package/dist/esm/drag/ColumnResize.d.ts +31 -0
- package/dist/esm/drag/ColumnResize.js +126 -0
- package/dist/esm/drag/ColumnResizer.d.ts +40 -0
- package/dist/esm/drag/ColumnResizer.js +89 -0
- package/dist/esm/drag/CommonDragLogic.d.ts +35 -0
- package/dist/esm/drag/CommonDragLogic.js +177 -0
- package/dist/esm/drag/DragClue.d.ts +25 -0
- package/dist/esm/drag/DragClue.js +52 -0
- package/dist/esm/drag/DropClue.d.ts +24 -0
- package/dist/esm/drag/DropClue.js +46 -0
- package/dist/esm/drag/GroupingIndicator.d.ts +51 -0
- package/dist/esm/drag/GroupingIndicator.js +153 -0
- package/dist/esm/filterCommon.d.ts +75 -0
- package/dist/esm/filterCommon.js +156 -0
- package/dist/esm/footer/Footer.d.ts +52 -0
- package/dist/esm/footer/Footer.js +103 -0
- package/dist/esm/footer/FooterRow.d.ts +30 -0
- package/dist/esm/footer/FooterRow.js +73 -0
- package/dist/esm/header/FilterRow.d.ts +36 -0
- package/dist/esm/header/FilterRow.js +203 -0
- package/dist/esm/header/GridHeaderCell.d.ts +21 -0
- package/dist/esm/header/GridHeaderCell.js +60 -0
- package/dist/esm/header/GridHeaderSelectionCell.d.ts +32 -0
- package/dist/esm/header/GridHeaderSelectionCell.js +81 -0
- package/dist/esm/header/GroupPanel.d.ts +38 -0
- package/dist/esm/header/GroupPanel.js +108 -0
- package/dist/esm/header/Header.d.ts +64 -0
- package/dist/esm/header/Header.js +123 -0
- package/dist/esm/header/HeaderRow.d.ts +86 -0
- package/dist/esm/header/HeaderRow.js +517 -0
- package/dist/esm/interfaces/ExtendedColumnProps.d.ts +20 -0
- package/dist/esm/interfaces/ExtendedColumnProps.js +1 -0
- package/dist/esm/interfaces/GridCellProps.d.ts +156 -0
- package/dist/esm/interfaces/GridCellProps.js +1 -0
- package/dist/esm/interfaces/GridColumnMenuColumnProps.d.ts +13 -0
- package/dist/esm/interfaces/GridColumnMenuColumnProps.js +1 -0
- package/dist/esm/interfaces/GridColumnMenuExtendedFilterProps.d.ts +42 -0
- package/dist/esm/interfaces/GridColumnMenuExtendedFilterProps.js +1 -0
- package/dist/esm/interfaces/GridColumnMenuFilterBaseProps.d.ts +49 -0
- package/dist/esm/interfaces/GridColumnMenuFilterBaseProps.js +1 -0
- package/dist/esm/interfaces/GridColumnMenuFilterProps.d.ts +27 -0
- package/dist/esm/interfaces/GridColumnMenuFilterProps.js +1 -0
- package/dist/esm/interfaces/GridColumnMenuFilterUIProps.d.ts +55 -0
- package/dist/esm/interfaces/GridColumnMenuFilterUIProps.js +1 -0
- package/dist/esm/interfaces/GridColumnMenuProps.d.ts +19 -0
- package/dist/esm/interfaces/GridColumnMenuProps.js +1 -0
- package/dist/esm/interfaces/GridColumnMenuSortBaseProps.d.ts +28 -0
- package/dist/esm/interfaces/GridColumnMenuSortBaseProps.js +1 -0
- package/dist/esm/interfaces/GridColumnProps.d.ts +147 -0
- package/dist/esm/interfaces/GridColumnProps.js +1 -0
- package/dist/esm/interfaces/GridDetailRowProps.d.ts +9 -0
- package/dist/esm/interfaces/GridDetailRowProps.js +1 -0
- package/dist/esm/interfaces/GridFilterCellProps.d.ts +64 -0
- package/dist/esm/interfaces/GridFilterCellProps.js +1 -0
- package/dist/esm/interfaces/GridFilterOperator.d.ts +7 -0
- package/dist/esm/interfaces/GridFilterOperator.js +1 -0
- package/dist/esm/interfaces/GridFilterOperators.d.ts +49 -0
- package/dist/esm/interfaces/GridFilterOperators.js +1 -0
- package/dist/esm/interfaces/GridFooterCellProps.d.ts +7 -0
- package/dist/esm/interfaces/GridFooterCellProps.js +1 -0
- package/dist/esm/interfaces/GridGroupableSettings.d.ts +15 -0
- package/dist/esm/interfaces/GridGroupableSettings.js +1 -0
- package/dist/esm/interfaces/GridHeaderCellProps.d.ts +37 -0
- package/dist/esm/interfaces/GridHeaderCellProps.js +1 -0
- package/dist/esm/interfaces/GridHeaderSelectionCellProps.d.ts +17 -0
- package/dist/esm/interfaces/GridHeaderSelectionCellProps.js +1 -0
- package/dist/esm/interfaces/GridNoRecordsProps.d.ts +9 -0
- package/dist/esm/interfaces/GridNoRecordsProps.js +1 -0
- package/dist/esm/interfaces/GridProps.d.ts +311 -0
- package/dist/esm/interfaces/GridProps.js +1 -0
- package/dist/esm/interfaces/GridRowProps.d.ts +55 -0
- package/dist/esm/interfaces/GridRowProps.js +1 -0
- package/dist/esm/interfaces/GridRowType.d.ts +9 -0
- package/dist/esm/interfaces/GridRowType.js +1 -0
- package/dist/esm/interfaces/GridSortSettings.d.ts +26 -0
- package/dist/esm/interfaces/GridSortSettings.js +20 -0
- package/dist/esm/interfaces/GridToolbarProps.d.ts +9 -0
- package/dist/esm/interfaces/GridToolbarProps.js +1 -0
- package/dist/esm/interfaces/events.d.ts +248 -0
- package/dist/esm/interfaces/events.js +1 -0
- package/dist/esm/main.d.ts +38 -0
- package/dist/esm/main.js +31 -0
- package/dist/esm/messages/index.d.ts +150 -0
- package/dist/esm/messages/index.js +151 -0
- package/dist/esm/package-metadata.d.ts +5 -0
- package/dist/esm/package-metadata.js +11 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/rows/GridDetailRow.d.ts +16 -0
- package/dist/esm/rows/GridDetailRow.js +29 -0
- package/dist/esm/rows/GridRow.d.ts +28 -0
- package/dist/esm/rows/GridRow.js +84 -0
- package/dist/esm/utils/browser-support.service.d.ts +7 -0
- package/dist/esm/utils/browser-support.service.js +26 -0
- package/dist/esm/utils/index.d.ts +91 -0
- package/dist/esm/utils/index.js +393 -0
- package/dist/npm/Grid.js +66 -70
- package/dist/npm/GridNav.js +1 -1
- package/dist/npm/GridNoRecords.js +2 -2
- package/dist/npm/GridToolbar.js +1 -1
- package/dist/npm/cells/GridCell.js +2 -2
- package/dist/npm/cells/GridEditCell.js +2 -2
- package/dist/npm/cells/GridFilterCell.js +4 -4
- package/dist/npm/cells/GridHierarchyCell.js +1 -1
- package/dist/npm/cells/GridSelectionCell.js +2 -2
- package/dist/npm/columnMenu/ColumnMenu.js +5 -5
- package/dist/npm/columnMenu/GridColumnMenuCheckboxFilter.js +14 -18
- package/dist/npm/columnMenu/GridColumnMenuFilter.js +445 -125
- package/dist/npm/columnMenu/GridColumnMenuFilterCell.js +79 -102
- package/dist/npm/columnMenu/GridColumnMenuFilterOperators.d.ts +36 -0
- package/dist/npm/columnMenu/GridColumnMenuFilterOperators.js +79 -0
- package/dist/npm/columnMenu/GridColumnMenuItem.js +2 -2
- package/dist/npm/columnMenu/GridColumnMenuItemContent.js +1 -1
- package/dist/npm/columnMenu/GridColumnMenuItemGroup.js +1 -1
- package/dist/npm/columnMenu/GridColumnMenuSort.js +5 -4
- package/dist/npm/drag/ColumnDraggable.js +1 -1
- package/dist/npm/drag/CommonDragLogic.js +2 -2
- package/dist/npm/drag/GroupingIndicator.js +3 -3
- package/dist/npm/filterCommon.d.ts +1 -1
- package/dist/npm/filterCommon.js +19 -12
- package/dist/npm/footer/Footer.js +6 -6
- package/dist/npm/footer/FooterRow.js +2 -2
- package/dist/npm/header/FilterRow.js +7 -7
- package/dist/npm/header/GridHeaderCell.js +1 -1
- package/dist/npm/header/GridHeaderSelectionCell.js +1 -1
- package/dist/npm/header/GroupPanel.js +1 -1
- package/dist/npm/header/Header.js +8 -8
- package/dist/npm/header/HeaderRow.js +2 -2
- package/dist/npm/interfaces/GridSortSettings.js +11 -8
- package/dist/npm/main.js +6 -2
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/rows/GridDetailRow.d.ts +2 -1
- package/dist/npm/rows/GridRow.js +2 -2
- package/dist/npm/utils/index.js +6 -5
- package/package.json +20 -14
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { GridProps } from '../interfaces/GridProps';
|
|
2
|
+
import { ExtendedColumnProps } from '../interfaces/ExtendedColumnProps';
|
|
3
|
+
import { DataResult, GroupDescriptor } from '@progress/kendo-data-query';
|
|
4
|
+
import { GridRowType } from '../interfaces/GridRowType';
|
|
5
|
+
import { GridColumnProps } from '../interfaces/GridColumnProps';
|
|
6
|
+
import { IntlService } from '@progress/kendo-vue-intl';
|
|
7
|
+
/**
|
|
8
|
+
* @hidden
|
|
9
|
+
*/
|
|
10
|
+
export declare function getNestedValue(fieldName: string, dataItem: any): any;
|
|
11
|
+
/**
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
export interface DataItemWrapper {
|
|
15
|
+
dataItem: any;
|
|
16
|
+
rowType: GridRowType;
|
|
17
|
+
level: number;
|
|
18
|
+
expanded: boolean;
|
|
19
|
+
dataIndex: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @hidden
|
|
23
|
+
*/
|
|
24
|
+
export declare function flatData(output: Array<DataItemWrapper>, input: Array<any>, footer: 'always' | 'visible' | 'none', dataIndex: {
|
|
25
|
+
index: number;
|
|
26
|
+
}, groupDefined: boolean, field?: string, level?: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* @hidden
|
|
29
|
+
*/
|
|
30
|
+
export declare function isRtl(element: Element | null): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* @hidden
|
|
33
|
+
*/
|
|
34
|
+
export declare function getIndex(event: any, parent: HTMLElement | null): number;
|
|
35
|
+
/**
|
|
36
|
+
* @hidden
|
|
37
|
+
*/
|
|
38
|
+
export declare function checkPropCompatibility(props: GridProps): void;
|
|
39
|
+
/**
|
|
40
|
+
* @hidden
|
|
41
|
+
*/
|
|
42
|
+
export declare function mapColumns(columns: Array<{
|
|
43
|
+
parentIndex: number;
|
|
44
|
+
colSpan: number;
|
|
45
|
+
rowSpan: number;
|
|
46
|
+
depth: number;
|
|
47
|
+
kFirst?: boolean;
|
|
48
|
+
children: any[];
|
|
49
|
+
width?: string | number;
|
|
50
|
+
locked?: boolean;
|
|
51
|
+
index: number;
|
|
52
|
+
left: number;
|
|
53
|
+
right: number;
|
|
54
|
+
rightBorder: boolean;
|
|
55
|
+
}>): number[][];
|
|
56
|
+
/**
|
|
57
|
+
* @hidden
|
|
58
|
+
*/
|
|
59
|
+
export declare function readColumns(newColumns: GridColumnProps[] | null | undefined, oldColumns: GridColumnProps[], idInfo: {
|
|
60
|
+
prevId: number;
|
|
61
|
+
idPrefix: string;
|
|
62
|
+
}, depth?: number): ExtendedColumnProps[];
|
|
63
|
+
/**
|
|
64
|
+
* @hidden
|
|
65
|
+
*/
|
|
66
|
+
export declare function autoGenerateColumns(data: any[] | DataResult | null | undefined, group: GroupDescriptor[] | undefined, expandField: string | undefined, idInfo: {
|
|
67
|
+
prevId: number;
|
|
68
|
+
idPrefix: string;
|
|
69
|
+
}): ExtendedColumnProps[];
|
|
70
|
+
/**
|
|
71
|
+
* @hidden
|
|
72
|
+
*/
|
|
73
|
+
export declare const footerColumns: (columns: ExtendedColumnProps[]) => ExtendedColumnProps[];
|
|
74
|
+
/**
|
|
75
|
+
* @hidden
|
|
76
|
+
*/
|
|
77
|
+
export declare const parsers: {
|
|
78
|
+
number: (value: any, intl: IntlService, format?: string) => number;
|
|
79
|
+
date: (value: any, intl: IntlService, format?: string) => Date;
|
|
80
|
+
boolean: (value: any) => any;
|
|
81
|
+
string: (value: any) => any;
|
|
82
|
+
default: (value: any) => any;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* @hidden
|
|
86
|
+
*/
|
|
87
|
+
export declare function applyExpandedState(sdata: DataResult, collapsed: any[], uniqueField: string): DataResult;
|
|
88
|
+
/**
|
|
89
|
+
* @hidden
|
|
90
|
+
*/
|
|
91
|
+
export declare function groupedFirstItemValue(item: any, field: string): any;
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import { tableKeyboardNavigationTools as navigationTools } from '@progress/kendo-vue-data-tools';
|
|
2
|
+
import { canUseDOM } from '@progress/kendo-vue-common';
|
|
3
|
+
var STRING = 'string';
|
|
4
|
+
/**
|
|
5
|
+
* @hidden
|
|
6
|
+
*/
|
|
7
|
+
export function getNestedValue(fieldName, dataItem) {
|
|
8
|
+
var path = fieldName.split('.');
|
|
9
|
+
var data = dataItem;
|
|
10
|
+
path.forEach(function (p) {
|
|
11
|
+
data = data ? data[p] : undefined;
|
|
12
|
+
});
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @hidden
|
|
17
|
+
*/
|
|
18
|
+
export function flatData(output, input, footer, dataIndex, groupDefined, field, level) {
|
|
19
|
+
if (level === void 0) { level = 0; }
|
|
20
|
+
var maxLevel = level;
|
|
21
|
+
for (var i = 0; i < input.length; i++) {
|
|
22
|
+
if (!groupDefined || input[i].value === undefined || input[i].items === undefined) {
|
|
23
|
+
output[output.length] = {
|
|
24
|
+
dataIndex: ++dataIndex.index,
|
|
25
|
+
dataItem: input[i],
|
|
26
|
+
rowType: 'data',
|
|
27
|
+
level: level,
|
|
28
|
+
expanded: field === undefined || getNestedValue(field, input[i])
|
|
29
|
+
};
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
maxLevel = Math.max(maxLevel, level + 1);
|
|
33
|
+
var expanded = field === undefined ||
|
|
34
|
+
getNestedValue(field, input[i]) === undefined ||
|
|
35
|
+
getNestedValue(field, input[i]);
|
|
36
|
+
// header
|
|
37
|
+
output[output.length] = {
|
|
38
|
+
dataIndex: -1,
|
|
39
|
+
dataItem: input[i],
|
|
40
|
+
level: level,
|
|
41
|
+
rowType: 'groupHeader',
|
|
42
|
+
expanded: expanded
|
|
43
|
+
};
|
|
44
|
+
// children
|
|
45
|
+
if (expanded) {
|
|
46
|
+
maxLevel = Math.max(flatData(output, input[i].items, footer, dataIndex, groupDefined, field, level + 1), maxLevel);
|
|
47
|
+
}
|
|
48
|
+
// footer
|
|
49
|
+
if (footer === 'always' || (expanded && footer === 'visible')) {
|
|
50
|
+
output[output.length] = {
|
|
51
|
+
dataIndex: -1,
|
|
52
|
+
dataItem: input[i],
|
|
53
|
+
rowType: 'groupFooter',
|
|
54
|
+
level: level,
|
|
55
|
+
expanded: expanded
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return maxLevel;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @hidden
|
|
63
|
+
*/
|
|
64
|
+
export function isRtl(element) {
|
|
65
|
+
return element && (getComputedStyle(element).direction === 'rtl') || false;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @hidden
|
|
69
|
+
*/
|
|
70
|
+
export function getIndex(event, parent) {
|
|
71
|
+
if (!parent || !event || !event.originalEvent || !canUseDOM) {
|
|
72
|
+
return -1;
|
|
73
|
+
}
|
|
74
|
+
var target = document.elementFromPoint(event.clientX, event.originalEvent.clientY);
|
|
75
|
+
while (target && target.parentElement !== parent) {
|
|
76
|
+
target = target.parentElement;
|
|
77
|
+
}
|
|
78
|
+
var children = parent.children;
|
|
79
|
+
for (var i = 0; i < children.length; i++) {
|
|
80
|
+
if (children[i] === target) {
|
|
81
|
+
return i;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return -1;
|
|
85
|
+
}
|
|
86
|
+
var eventKeys = [
|
|
87
|
+
'sortChange',
|
|
88
|
+
'filterChange',
|
|
89
|
+
'groupChange',
|
|
90
|
+
'pageChange',
|
|
91
|
+
'expandChange',
|
|
92
|
+
'selectionChange',
|
|
93
|
+
'headerSelectionChange',
|
|
94
|
+
'rowClick',
|
|
95
|
+
'itemChange',
|
|
96
|
+
'dataStateChange',
|
|
97
|
+
'columnResize',
|
|
98
|
+
'columnReorder'
|
|
99
|
+
];
|
|
100
|
+
var GridColumnDefaults = {
|
|
101
|
+
filterable: true,
|
|
102
|
+
editable: true,
|
|
103
|
+
sortable: true,
|
|
104
|
+
resizable: true,
|
|
105
|
+
reorderable: true,
|
|
106
|
+
groupable: true
|
|
107
|
+
};
|
|
108
|
+
var deprecatedHandlerMessage = function (oldKey, newKey) { return ("The ".concat(oldKey, " event handler property is deprecated, ") +
|
|
109
|
+
"use https://www.telerik.com/kendo-vue-ui/components/grid/api/GridProps/#toc-".concat(newKey, " instead")); };
|
|
110
|
+
/**
|
|
111
|
+
* @hidden
|
|
112
|
+
*/
|
|
113
|
+
export function checkPropCompatibility(props) {
|
|
114
|
+
for (var index = 0; index < eventKeys.length; index++) {
|
|
115
|
+
var eventKey = eventKeys[index];
|
|
116
|
+
if (props[eventKey] !== undefined) {
|
|
117
|
+
var newKey = 'on' + eventKey.charAt(0).toUpperCase() + eventKey.slice(1);
|
|
118
|
+
console.warn(deprecatedHandlerMessage(eventKey, newKey));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function nextColumn(columns, current) {
|
|
123
|
+
var currentDepth = columns[current].depth;
|
|
124
|
+
var next = null;
|
|
125
|
+
for (var index = current + 1; index < columns.length; index++) {
|
|
126
|
+
if (columns[index].depth === currentDepth) {
|
|
127
|
+
next = columns[index];
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return next;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* @hidden
|
|
135
|
+
*/
|
|
136
|
+
export function mapColumns(columns) {
|
|
137
|
+
var columnsMap = [[]];
|
|
138
|
+
var maxDepth = 0;
|
|
139
|
+
// set colspans, get maxdepth
|
|
140
|
+
for (var q = columns.length - 1; q >= 0; q--) {
|
|
141
|
+
maxDepth = Math.max(maxDepth, columns[q].depth);
|
|
142
|
+
columns[q].colSpan = columns[q].colSpan || 1;
|
|
143
|
+
if (columns[q].parentIndex !== -1) {
|
|
144
|
+
columns[columns[q].parentIndex].colSpan =
|
|
145
|
+
(columns[columns[q].parentIndex].colSpan || 0) + columns[q].colSpan;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
var rowSpan = 1;
|
|
149
|
+
// set rowspan, kFirst, index AND create columnsMap
|
|
150
|
+
columns.forEach(function (column, i) {
|
|
151
|
+
columnsMap[column.depth] = columnsMap[column.depth] || [];
|
|
152
|
+
var needKFirst = false;
|
|
153
|
+
if (columnsMap[column.depth].length === 0) {
|
|
154
|
+
if (rowSpan <= 1) {
|
|
155
|
+
rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
rowSpan--;
|
|
159
|
+
needKFirst = true;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
column.rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);
|
|
163
|
+
column.kFirst = needKFirst;
|
|
164
|
+
column.index = columnsMap[column.depth].length;
|
|
165
|
+
columnsMap[column.depth].push(i);
|
|
166
|
+
});
|
|
167
|
+
var stickyLeftWidth = new Array(columnsMap.length).fill(0);
|
|
168
|
+
var width = 0;
|
|
169
|
+
// set left AND create stickyLeftWidth
|
|
170
|
+
columns.forEach(function (column) {
|
|
171
|
+
if (column.locked) {
|
|
172
|
+
column.left = stickyLeftWidth[column.depth];
|
|
173
|
+
width = column.width ? parseFloat(column.width.toString()) : 0;
|
|
174
|
+
if (column.children.length === 0) {
|
|
175
|
+
for (var i = column.depth; i < stickyLeftWidth.length; i++) {
|
|
176
|
+
stickyLeftWidth[i] += width;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
stickyLeftWidth[column.depth] += width;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
var stickyRightWidth = new Array(columnsMap.length).fill(0);
|
|
185
|
+
// set right, rightBorder AND create stickyRightWidth
|
|
186
|
+
for (var i = columns.length - 1; i >= 0; i--) {
|
|
187
|
+
var column = columns[i];
|
|
188
|
+
if (column.locked) {
|
|
189
|
+
column.right = stickyRightWidth[column.depth];
|
|
190
|
+
width = column.width ? parseFloat(column.width.toString()) : 0;
|
|
191
|
+
if (column.children.length === 0) {
|
|
192
|
+
for (var j = column.depth; j < stickyRightWidth.length; j++) {
|
|
193
|
+
stickyRightWidth[j] += width;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
stickyRightWidth[column.depth] += width;
|
|
198
|
+
}
|
|
199
|
+
var next = nextColumn(columns, i);
|
|
200
|
+
column.rightBorder = !(next && next.locked);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return columnsMap;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* @hidden
|
|
207
|
+
*/
|
|
208
|
+
export function readColumns(newColumns, oldColumns, idInfo, depth) {
|
|
209
|
+
if (depth === void 0) { depth = 0; }
|
|
210
|
+
var columns = [];
|
|
211
|
+
var sameLength = (newColumns && newColumns.length) ? newColumns.length === oldColumns.length : false;
|
|
212
|
+
if (!newColumns) {
|
|
213
|
+
return [];
|
|
214
|
+
}
|
|
215
|
+
if (newColumns && newColumns.length === undefined) {
|
|
216
|
+
newColumns = [newColumns];
|
|
217
|
+
}
|
|
218
|
+
// @ts-ignore
|
|
219
|
+
newColumns.forEach(function (columnProps, index) {
|
|
220
|
+
columnProps = columnProps;
|
|
221
|
+
var oldColumn = sameLength ? oldColumns[index] || null : null;
|
|
222
|
+
var notHiddenChildren = columnProps.children ?
|
|
223
|
+
columnProps.children.filter(function (column) { return !column.hidden; }) : columnProps.children;
|
|
224
|
+
var c = readColumns(notHiddenChildren, oldColumn && oldColumn.children || [], idInfo, depth + 1);
|
|
225
|
+
columns.push(Object.assign({ depth: depth }, GridColumnDefaults, (c.length) ? { cell: function () { return null; }, filterCell: function () { return null; } } : {}, oldColumn ? { width: oldColumn.width, orderIndex: oldColumn.orderIndex } : {}, columnProps, {
|
|
226
|
+
id: navigationTools.generateNavigatableId("".concat(idInfo.prevId++), idInfo.idPrefix, 'column'),
|
|
227
|
+
declarationIndex: columns.length,
|
|
228
|
+
children: c,
|
|
229
|
+
rowSpan: 0,
|
|
230
|
+
colSpan: 0,
|
|
231
|
+
isAccessible: true
|
|
232
|
+
}));
|
|
233
|
+
});
|
|
234
|
+
var comparator = function (a, b) {
|
|
235
|
+
return a.orderIndex === b.orderIndex ?
|
|
236
|
+
a.declarationIndex - b.declarationIndex :
|
|
237
|
+
((a.orderIndex || 0) - (b.orderIndex || 0));
|
|
238
|
+
};
|
|
239
|
+
columns.sort(comparator);
|
|
240
|
+
if (depth === 0) {
|
|
241
|
+
var ret_1 = [];
|
|
242
|
+
var flat_1 = function (cols, pIndex) {
|
|
243
|
+
return cols.forEach(function (c) {
|
|
244
|
+
c.parentIndex = pIndex;
|
|
245
|
+
flat_1(c.children, ret_1.push(c) - 1);
|
|
246
|
+
});
|
|
247
|
+
};
|
|
248
|
+
flat_1(columns, -1);
|
|
249
|
+
return ret_1;
|
|
250
|
+
}
|
|
251
|
+
return columns;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* @hidden
|
|
255
|
+
*/
|
|
256
|
+
export function autoGenerateColumns(data, group, expandField, idInfo) {
|
|
257
|
+
var propData = [];
|
|
258
|
+
if (Array.isArray(data)) {
|
|
259
|
+
propData = data;
|
|
260
|
+
}
|
|
261
|
+
else if (data) {
|
|
262
|
+
propData = data.data;
|
|
263
|
+
}
|
|
264
|
+
if (!propData.length) {
|
|
265
|
+
console.warn('Kendo Grid autogeneration of columns is only possible if some items are defined when the component is created.');
|
|
266
|
+
}
|
|
267
|
+
var columns = [];
|
|
268
|
+
if (propData.length > 0) {
|
|
269
|
+
var itemForColumnsGen = propData[0];
|
|
270
|
+
if (group) {
|
|
271
|
+
for (var i = 0; i < group.length; i++) {
|
|
272
|
+
itemForColumnsGen = itemForColumnsGen.items && itemForColumnsGen.items[0];
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
var fields = Object.getOwnPropertyNames(itemForColumnsGen);
|
|
276
|
+
fields.forEach(function (field) {
|
|
277
|
+
if (field !== expandField && field !== '__ob__') {
|
|
278
|
+
columns.push(Object.assign({
|
|
279
|
+
id: navigationTools.generateNavigatableId("".concat(idInfo.prevId++), idInfo.idPrefix, 'column'),
|
|
280
|
+
declarationIndex: -1,
|
|
281
|
+
parentIndex: -1,
|
|
282
|
+
depth: 0,
|
|
283
|
+
colSpan: 0,
|
|
284
|
+
rowSpan: 0,
|
|
285
|
+
index: 0,
|
|
286
|
+
left: 0,
|
|
287
|
+
right: 0,
|
|
288
|
+
children: [],
|
|
289
|
+
rightBorder: false,
|
|
290
|
+
ariaColumnIndex: 0,
|
|
291
|
+
isAccessible: true
|
|
292
|
+
}, GridColumnDefaults, { field: field }));
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
return columns;
|
|
297
|
+
}
|
|
298
|
+
var hasParentFooterCell = function (columns, column) {
|
|
299
|
+
var parent = columns[column.parentIndex];
|
|
300
|
+
while (parent) {
|
|
301
|
+
if (parent.footerCell) {
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
parent = columns[parent.parentIndex];
|
|
305
|
+
}
|
|
306
|
+
return false;
|
|
307
|
+
};
|
|
308
|
+
/**
|
|
309
|
+
* @hidden
|
|
310
|
+
*/
|
|
311
|
+
export var footerColumns = function (columns) {
|
|
312
|
+
return columns.filter(function (column) {
|
|
313
|
+
if (hasParentFooterCell(columns, column)) {
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
316
|
+
return Boolean(column.footerCell) || !(column.children && column.children.length > 0);
|
|
317
|
+
});
|
|
318
|
+
};
|
|
319
|
+
/**
|
|
320
|
+
* @hidden
|
|
321
|
+
*/
|
|
322
|
+
export var parsers = {
|
|
323
|
+
'number': function (value, intl, format) {
|
|
324
|
+
if (typeof value === STRING && value.toLowerCase() === 'null') {
|
|
325
|
+
return null;
|
|
326
|
+
}
|
|
327
|
+
return intl.parseNumber(value, format);
|
|
328
|
+
},
|
|
329
|
+
'date': function (value, intl, format) {
|
|
330
|
+
if (typeof value === STRING && value.toLowerCase() === 'null') {
|
|
331
|
+
return null;
|
|
332
|
+
}
|
|
333
|
+
return intl.parseDate(value, format);
|
|
334
|
+
},
|
|
335
|
+
'boolean': function (value) {
|
|
336
|
+
if (typeof value === STRING) {
|
|
337
|
+
if (value.toLowerCase() === 'null') {
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
return value.toLowerCase() === 'true';
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return value != null ? !!value : value;
|
|
345
|
+
},
|
|
346
|
+
'string': function (value) {
|
|
347
|
+
if (typeof value === STRING && value.toLowerCase() === 'null') {
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
return value != null ? (value + '') : value;
|
|
351
|
+
},
|
|
352
|
+
'default': function (value) {
|
|
353
|
+
return value;
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
/**
|
|
357
|
+
* @hidden
|
|
358
|
+
*/
|
|
359
|
+
function updateItemsExpanded(items, collapsed, uniqueField, level) {
|
|
360
|
+
items.forEach(function (di) {
|
|
361
|
+
di.expanded = collapsed[level] && !collapsed[level].includes(groupedFirstItemValue(di, uniqueField));
|
|
362
|
+
if (di.items && di.items.length) {
|
|
363
|
+
di.items = updateItemsExpanded(di.items, collapsed, uniqueField, level + 1);
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
return items;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* @hidden
|
|
370
|
+
*/
|
|
371
|
+
export function applyExpandedState(sdata, collapsed, uniqueField) {
|
|
372
|
+
if (collapsed && collapsed.length) {
|
|
373
|
+
sdata.data.forEach(function (di) {
|
|
374
|
+
di.expanded = di.expanded !== undefined
|
|
375
|
+
? di.expanded
|
|
376
|
+
: collapsed[0] && !collapsed[0].includes(groupedFirstItemValue(di, uniqueField));
|
|
377
|
+
if (di.items && di.items.length) {
|
|
378
|
+
di.items = updateItemsExpanded(di.items, collapsed, uniqueField, 1);
|
|
379
|
+
}
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
return sdata;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* @hidden
|
|
386
|
+
*/
|
|
387
|
+
export function groupedFirstItemValue(item, field) {
|
|
388
|
+
var resultItem = item;
|
|
389
|
+
while (resultItem.items && resultItem.items.length) {
|
|
390
|
+
resultItem = resultItem.items[0];
|
|
391
|
+
}
|
|
392
|
+
return field ? resultItem[field] : item.value;
|
|
393
|
+
}
|