@zeedhi/teknisa-components-common 1.117.1 → 3.0.1

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.
Files changed (177) hide show
  1. package/.package.json +43 -0
  2. package/dist/teknisa-components-common.js +3802 -0
  3. package/dist/teknisa-components-common.min.js +3802 -0
  4. package/dist/types/components/index.d.ts +7 -0
  5. package/{types → dist/types}/components/tek-breadcrumb-header/breadcrumb-header.d.ts +12 -12
  6. package/{types → dist/types}/components/tek-breadcrumb-header/interfaces.d.ts +6 -6
  7. package/dist/types/components/tek-datasource/index.d.ts +3 -0
  8. package/{types → dist/types}/components/tek-datasource/interfaces.d.ts +16 -16
  9. package/{types/components/tek-datasource/memory-datasource.d.ts → dist/types/components/tek-datasource/tek-memory-datasource.d.ts} +93 -100
  10. package/{types/components/tek-datasource/rest-datasource.d.ts → dist/types/components/tek-datasource/tek-rest-datasource.d.ts} +95 -103
  11. package/dist/types/components/tek-grid/columns-searcher.d.ts +5 -0
  12. package/dist/types/components/tek-grid/dynamic-filter-datasource-factory.d.ts +6 -0
  13. package/{types → dist/types}/components/tek-grid/filter-helper.d.ts +7 -7
  14. package/{types → dist/types}/components/tek-grid/grid-filter-button.d.ts +29 -31
  15. package/dist/types/components/tek-grid/grouped-data-manager.d.ts +82 -0
  16. package/dist/types/components/tek-grid/grouped-data-selector.d.ts +7 -0
  17. package/dist/types/components/tek-grid/grouped-view-navigator.d.ts +14 -0
  18. package/dist/types/components/tek-grid/index.d.ts +18 -0
  19. package/dist/types/components/tek-grid/interfaces.d.ts +259 -0
  20. package/dist/types/components/tek-grid/keymap-grouped.d.ts +6 -0
  21. package/{types → dist/types}/components/tek-grid/layout-options.d.ts +39 -31
  22. package/{types/components/tek-grid/grid-column.d.ts → dist/types/components/tek-grid/tek-grid-column.d.ts} +42 -45
  23. package/{types/components/tek-grid/grid-columns-button-controller.d.ts → dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.d.ts} +8 -8
  24. package/{types/components/tek-grid/grid-columns-button.d.ts → dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.d.ts} +13 -12
  25. package/dist/types/components/tek-grid/tek-grid-controller.d.ts +31 -0
  26. package/dist/types/components/tek-grid/tek-grid-events.d.ts +31 -0
  27. package/{types/utils/grid-base → dist/types/components/tek-grid/tek-grid-toolbar-provider}/export-options/button-option.d.ts +17 -16
  28. package/{types/utils/grid-base → dist/types/components/tek-grid/tek-grid-toolbar-provider}/export-options/index.d.ts +3 -3
  29. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.d.ts +5 -0
  30. package/{types/utils/grid-base → dist/types/components/tek-grid/tek-grid-toolbar-provider}/export-options/multi-option.d.ts +12 -12
  31. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/index.d.ts +2 -0
  32. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.d.ts +22 -0
  33. package/dist/types/components/tek-grid/tek-grid.d.ts +216 -0
  34. package/{types → dist/types}/components/tek-user-info/TekUserInfoController.d.ts +22 -21
  35. package/{types → dist/types}/components/tek-user-info/interfaces.d.ts +27 -28
  36. package/{types → dist/types}/components/tek-user-info/tek-user-info-list.d.ts +32 -31
  37. package/{types → dist/types}/components/tek-user-info/tek-user-info.d.ts +37 -38
  38. package/{types → dist/types}/error/delete-rows-error.d.ts +6 -6
  39. package/dist/types/error/tek-grid-delete-rows-error.d.ts +7 -0
  40. package/dist/types/error/teknisa-common-error.d.ts +6 -0
  41. package/dist/types/index.d.ts +2 -0
  42. package/{types → dist/types}/utils/config/config.d.ts +7 -7
  43. package/dist/types/utils/index.d.ts +3 -0
  44. package/dist/types/utils/is-filled-object/is-filled-object.d.ts +2 -0
  45. package/dist/types/utils/is-nil.d.ts +1 -0
  46. package/environments.json +14 -0
  47. package/package.json +26 -18
  48. package/src/components/index.ts +101 -0
  49. package/src/components/tek-breadcrumb-header/breadcrumb-header.ts +29 -0
  50. package/src/components/tek-breadcrumb-header/interfaces.ts +7 -0
  51. package/src/components/tek-datasource/index.ts +3 -0
  52. package/src/components/tek-datasource/interfaces.ts +36 -0
  53. package/src/components/tek-datasource/tek-memory-datasource.ts +314 -0
  54. package/src/components/tek-datasource/tek-rest-datasource.ts +224 -0
  55. package/src/components/tek-grid/columns-searcher.ts +22 -0
  56. package/src/components/tek-grid/dynamic-filter-datasource-factory.ts +20 -0
  57. package/src/components/tek-grid/filter-helper.ts +20 -0
  58. package/src/components/tek-grid/grid-filter-button.ts +419 -0
  59. package/src/components/tek-grid/grouped-data-manager.ts +448 -0
  60. package/src/components/tek-grid/grouped-data-selector.ts +40 -0
  61. package/src/components/tek-grid/grouped-view-navigator.ts +84 -0
  62. package/src/components/tek-grid/index.ts +18 -0
  63. package/src/components/tek-grid/interfaces.ts +329 -0
  64. package/src/components/tek-grid/keymap-grouped.ts +20 -0
  65. package/src/components/tek-grid/layout-options.ts +248 -0
  66. package/src/components/tek-grid/tek-grid-column.ts +193 -0
  67. package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts +28 -0
  68. package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts +38 -0
  69. package/src/components/tek-grid/tek-grid-controller.ts +140 -0
  70. package/src/components/tek-grid/tek-grid-events.ts +105 -0
  71. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts +26 -0
  72. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts +3 -0
  73. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.ts +6 -0
  74. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts +85 -0
  75. package/src/components/tek-grid/tek-grid-toolbar-provider/index.ts +2 -0
  76. package/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts +365 -0
  77. package/src/components/tek-grid/tek-grid.ts +1118 -0
  78. package/src/components/tek-user-info/TekUserInfoController.ts +87 -0
  79. package/src/components/tek-user-info/interfaces.ts +21 -0
  80. package/src/components/tek-user-info/tek-user-info-list.ts +64 -0
  81. package/src/components/tek-user-info/tek-user-info.ts +337 -0
  82. package/src/error/tek-grid-delete-rows-error.ts +15 -0
  83. package/src/error/teknisa-common-error.ts +8 -0
  84. package/src/index.ts +2 -0
  85. package/src/utils/config/config.ts +8 -0
  86. package/src/utils/index.ts +3 -0
  87. package/src/utils/is-filled-object/is-filled-object.ts +5 -0
  88. package/src/utils/is-nil.ts +3 -0
  89. package/tests/__helpers__/component-event-helper.ts +1 -1
  90. package/tests/__helpers__/get-child-helper.ts +1 -1
  91. package/tests/__helpers__/mock-created-helper.ts +1 -1
  92. package/tests/unit/components/crud/crud-button.spec.ts +1 -1
  93. package/tests/unit/components/tek-datasource/memory-datasource.spec.ts +1 -11
  94. package/tests/unit/components/tek-datasource/rest-datasource.spec.ts +5 -7
  95. package/tests/unit/components/tek-drag-grid/tek-drag-grid.spec.ts +1 -1
  96. package/tests/unit/components/tek-grid/button-option.spec.ts +49 -0
  97. package/tests/unit/components/tek-grid/columns-searcher.spec.ts +112 -0
  98. package/tests/unit/components/tek-grid/dynamic-filter-datasource-factory.spec.ts +90 -0
  99. package/tests/unit/components/tek-grid/filter-helper.spec.ts +34 -130
  100. package/tests/unit/components/tek-grid/grid-filter-button.spec.ts +114 -239
  101. package/tests/unit/components/tek-grid/grouped-data-manager.spec.ts +593 -0
  102. package/tests/unit/components/tek-grid/grouped-data-selector.spec.ts +136 -0
  103. package/tests/unit/components/tek-grid/grouped-view-navigator.spec.ts +244 -0
  104. package/tests/unit/components/tek-grid/keymap-grouped.spec.ts +20 -0
  105. package/tests/unit/components/tek-grid/{layout_options.spec.ts → layout-options.spec.ts} +70 -30
  106. package/tests/unit/components/tek-grid/multi-option.spec.ts +139 -0
  107. package/tests/unit/components/tek-grid/{grid-column.spec.ts → tek-grid-column.spec.ts} +44 -2
  108. package/tests/unit/components/tek-grid/{grid-columns-button.spec.ts → tek-grid-columns-button.spec.ts} +42 -9
  109. package/tests/unit/components/tek-grid/tek-grid-controller.spec.ts +253 -0
  110. package/tests/unit/components/tek-grid/tek-grid-events.spec.ts +186 -0
  111. package/tests/unit/components/tek-grid/tek-grid-toolbar-provider.spec.ts +34 -0
  112. package/tests/unit/components/tek-grid/tek-grid.spec.ts +895 -0
  113. package/tests/unit/components/tek-grid/tek-memory-datasource.spec.ts +482 -0
  114. package/tests/unit/components/tek-grid/tek-rest-datasource.spec.ts +422 -0
  115. package/tests/unit/components/tek-user-info/tek-user-info-list.spec.ts +1 -1
  116. package/tests/unit/components/tek-user-info/tek-user-info.spec.ts +10 -14
  117. package/tests/unit/components/tree-grid/tree-grid.spec.ts +4 -28
  118. package/tests/unit/utils/grid-base/export-options/multi-option.spec.ts +2 -2
  119. package/tests/unit/utils/grid-base/grid-controller.spec.ts +17 -152
  120. package/tsconfig.build.json +7 -0
  121. package/coverage/clover.xml +0 -2007
  122. package/coverage/coverage-final.json +0 -48
  123. package/coverage/lcov-report/base.css +0 -224
  124. package/coverage/lcov-report/block-navigation.js +0 -87
  125. package/coverage/lcov-report/favicon.png +0 -0
  126. package/coverage/lcov-report/index.html +0 -431
  127. package/coverage/lcov-report/prettify.css +0 -1
  128. package/coverage/lcov-report/prettify.js +0 -2
  129. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  130. package/coverage/lcov-report/sorter.js +0 -210
  131. package/coverage/lcov-report/tests/__helpers__/component-event-helper.ts.html +0 -100
  132. package/coverage/lcov-report/tests/__helpers__/flush-promises-helper.ts.html +0 -94
  133. package/coverage/lcov-report/tests/__helpers__/get-child-helper.ts.html +0 -166
  134. package/coverage/lcov-report/tests/__helpers__/index.html +0 -176
  135. package/coverage/lcov-report/tests/__helpers__/index.ts.html +0 -94
  136. package/coverage/lcov-report/tests/__helpers__/mock-created-helper.ts.html +0 -121
  137. package/coverage/lcov.info +0 -3885
  138. package/dist/tek-components-common.esm.js +0 -4833
  139. package/dist/tek-components-common.umd.js +0 -4870
  140. package/tests/unit/components/tek-grid/grid.spec.ts +0 -3377
  141. package/tests/unit/utils/grid-base/delete-rows-error.spec.ts +0 -24
  142. package/types/components/crud/crud-add-button.d.ts +0 -38
  143. package/types/components/crud/crud-button.d.ts +0 -27
  144. package/types/components/crud/crud-cancel-button.d.ts +0 -28
  145. package/types/components/crud/crud-delete-button.d.ts +0 -42
  146. package/types/components/crud/crud-form.d.ts +0 -46
  147. package/types/components/crud/crud-save-button.d.ts +0 -24
  148. package/types/components/crud/interfaces.d.ts +0 -15
  149. package/types/components/index.d.ts +0 -41
  150. package/types/components/tek-card-title/card-title.d.ts +0 -14
  151. package/types/components/tek-card-title/interfaces.d.ts +0 -9
  152. package/types/components/tek-drag-grid/interfaces.d.ts +0 -7
  153. package/types/components/tek-drag-grid/tek-drag-grid.d.ts +0 -36
  154. package/types/components/tek-grid/grid.d.ts +0 -267
  155. package/types/components/tek-grid/interfaces.d.ts +0 -203
  156. package/types/components/tek-image/image.d.ts +0 -55
  157. package/types/components/tek-image/interfaces.d.ts +0 -12
  158. package/types/components/tek-iterable-carousel/interfaces.d.ts +0 -5
  159. package/types/components/tek-iterable-carousel/iterable-carousel.d.ts +0 -13
  160. package/types/components/tek-iterable-component-render/interfaces.d.ts +0 -3
  161. package/types/components/tek-iterable-component-render/iterable-component-render.d.ts +0 -10
  162. package/types/components/tek-loading/interfaces.d.ts +0 -6
  163. package/types/components/tek-loading/loading.d.ts +0 -24
  164. package/types/components/tek-notifications/interfaces.d.ts +0 -22
  165. package/types/components/tek-notifications/notifications.d.ts +0 -35
  166. package/types/components/tek-product-card/interfaces.d.ts +0 -19
  167. package/types/components/tek-product-card/product-card.d.ts +0 -66
  168. package/types/components/tek-tree-grid/interfaces.d.ts +0 -30
  169. package/types/components/tek-tree-grid/tree-grid.d.ts +0 -102
  170. package/types/error/incomplete-groups-error.d.ts +0 -8
  171. package/types/index.d.ts +0 -2
  172. package/types/utils/extract-properties.d.ts +0 -7
  173. package/types/utils/grid-base/export-options/interfaces.d.ts +0 -5
  174. package/types/utils/grid-base/grid-base.d.ts +0 -59
  175. package/types/utils/grid-base/grid-controller.d.ts +0 -27
  176. package/types/utils/index.d.ts +0 -6
  177. package/types/utils/report-filter/report-filter.d.ts +0 -12
@@ -0,0 +1,82 @@
1
+ import { IDictionary } from '@zeedhi/core';
2
+ import { IGroupedDataManager, ITekGrid, ITekGridSummary } from './interfaces';
3
+ import { TekGridColumn } from './tek-grid-column';
4
+ export declare class GroupedDataManager implements IGroupedDataManager {
5
+ protected grid: ITekGrid;
6
+ summaryColumns: TekGridColumn[];
7
+ private groups;
8
+ private summary;
9
+ private groupedData;
10
+ private groupColumnNames;
11
+ private groupColumns;
12
+ private originalDatasourceLoadAll?;
13
+ private originalDatasourceLimit?;
14
+ private viewUpdateScrollData?;
15
+ private viewUpdateFixedColumns?;
16
+ constructor(grid: ITekGrid);
17
+ setViewUpdateFixedColumns(fn: () => void): void;
18
+ setViewUpdateScrollData(fn: () => void): void;
19
+ /**
20
+ * Tasks that should be finished before loading the grid data
21
+ */
22
+ private tasksBeforeLoad;
23
+ registerTask(task: Promise<any>): void;
24
+ private request;
25
+ private debounceUpdateGrouping;
26
+ /**
27
+ * Loads grid data after resolving all tasks
28
+ */
29
+ loadAfterTasks(): Promise<void>;
30
+ private initializeDebounceFunctions;
31
+ /**
32
+ * Initializes grid groups, summary columns and registers the grid datasource callback
33
+ * @param lazyLoad defines if the grid should automatically load data after updating the datasource
34
+ */
35
+ initializeGrouping(lazyLoad: boolean): void;
36
+ private onGet;
37
+ private resetFooterVariables;
38
+ private initGroups;
39
+ getGroupedData(): IDictionary<any>[];
40
+ private initSummaryColumns;
41
+ /**
42
+ * Calls updateGroupedData with debounce
43
+ */
44
+ updateGrouping(lazyLoad?: boolean): void;
45
+ /**
46
+ * Inits summary columns, updates the grid datasource and, if needed, reloads the grid data
47
+ */
48
+ updateGroupedData(lazyLoad: boolean): Promise<void>;
49
+ /**
50
+ * When using groups, should update the grid datasource order to reflect the group order
51
+ * If the grid is not grouped, should not update the datasource order
52
+ */
53
+ private updateGridDatasource;
54
+ /**
55
+ * Returns the order to be used in the grid datasource based on the group column names and the grid order
56
+ */
57
+ private getOrder;
58
+ /**
59
+ * Returns the summary data for the group
60
+ */
61
+ getSummaryData(group: IDictionary<ITekGridSummary>): IDictionary<any>;
62
+ /**
63
+ * Adds group footers to the grouped data
64
+ */
65
+ private addGroupFooters;
66
+ private getGroupValue;
67
+ private addGroupHeader;
68
+ private calcSummaryValues;
69
+ private calcSummary;
70
+ private addSummary;
71
+ /**
72
+ * It takes a flat array of data and groups it by the group columns specified in
73
+ * the grid.
74
+ */
75
+ buildGroupedData(): void;
76
+ openGroup(group: IDictionary<any>): void;
77
+ isItemVisible(row: IDictionary<any>): any;
78
+ isGrouped(): boolean;
79
+ isColumnSearchable(column: TekGridColumn): boolean;
80
+ directionalLeft(): void;
81
+ directionalRight(): void;
82
+ }
@@ -0,0 +1,7 @@
1
+ import { DataSelector, IDataSelector, IGrid } from '@zeedhi/common';
2
+ import { IGroupedDataManager } from './interfaces';
3
+ export declare class GroupedDataSelector extends DataSelector implements IDataSelector {
4
+ protected iterable: IGrid & IGroupedDataManager;
5
+ selectAll(isSelected: boolean): void;
6
+ private getData;
7
+ }
@@ -0,0 +1,14 @@
1
+ import { IEventParam } from '@zeedhi/core';
2
+ import { Direction, IViewNavigator } from '@zeedhi/common';
3
+ import { ITekGrid } from './interfaces';
4
+ export declare class GroupedViewNavigator implements IViewNavigator {
5
+ private viewNavigator;
6
+ protected grid: ITekGrid;
7
+ constructor(iterable: ITekGrid);
8
+ navigateLeft(param: IEventParam<any>): void;
9
+ navigateRight(param: IEventParam<any>): void;
10
+ setViewNavigate(viewNavigate: (direction: Direction, event?: Event) => void): void;
11
+ private getRowIndex;
12
+ navigateUp(index?: number): void;
13
+ navigateDown(index?: number): void;
14
+ }
@@ -0,0 +1,18 @@
1
+ export * from '../tek-datasource';
2
+ export * from './tek-grid-toolbar-provider';
3
+ export * from './columns-searcher';
4
+ export * from './dynamic-filter-datasource-factory';
5
+ export * from './filter-helper';
6
+ export * from './grid-filter-button';
7
+ export * from './grouped-data-manager';
8
+ export * from './grouped-view-navigator';
9
+ export * from './interfaces';
10
+ export * from './keymap-grouped';
11
+ export * from './layout-options';
12
+ export * from './tek-grid-column';
13
+ export * from './tek-grid-controller';
14
+ export * from './tek-grid-events';
15
+ export * from './tek-grid';
16
+ export * from './tek-grid-columns-button/tek-grid-columns-button';
17
+ export * from './tek-grid-columns-button/tek-grid-columns-button-controller';
18
+ export * from './grouped-data-selector';
@@ -0,0 +1,259 @@
1
+ import { Datasource, IDictionary, IEvent, IEventParam } from '@zeedhi/core';
2
+ import { EventDef, GridEventsProp, IButton, IComponent, IComponentEvents, IComponentRender, IGridColumnEditable, IGridEditable, IGridEditableEvents, IGridEditableProps, IGridEvent, IIterableColumnsButton, IModal, Iterable } from '@zeedhi/common';
3
+ import { IDynamicFilterItem } from '../tek-datasource/interfaces';
4
+ import { TekGridColumn } from './tek-grid-column';
5
+ export interface IModalFilterProps extends IModal {
6
+ height?: string;
7
+ maxHeight?: string;
8
+ }
9
+ export interface ITekGridLayoutColumn {
10
+ name: string;
11
+ width?: string;
12
+ minWidth?: string;
13
+ maxWidth?: string;
14
+ isVisible?: boolean;
15
+ fixed?: boolean;
16
+ grouped?: boolean;
17
+ aggregation?: ITekGridColumnAggregation;
18
+ label?: string;
19
+ align?: 'left' | 'right' | 'center';
20
+ groupOpened?: boolean;
21
+ filterHelperValue?: string | IDictionary<any>;
22
+ }
23
+ export interface ITekGridLayout {
24
+ name: string;
25
+ gridWidth?: string;
26
+ columns?: ITekGridLayoutColumn[];
27
+ order?: string[];
28
+ dynamicFilter?: IDictionary<IDynamicFilterItem[]>;
29
+ filter?: IDictionary<any>;
30
+ }
31
+ export interface ITekGridLayoutInfo {
32
+ currentLayoutName?: string;
33
+ layouts?: IDictionary<ITekGridLayout>;
34
+ }
35
+ export interface ITekGridLayoutEventParams extends IEventParam<ITekGrid> {
36
+ layouts: ITekGridLayoutInfo;
37
+ }
38
+ export interface ITekGridSummary {
39
+ sum: any;
40
+ avg: any;
41
+ count: number;
42
+ min: any;
43
+ max: any;
44
+ }
45
+ export interface ITekGridCalcSummaryEventParams extends IEventParam<ITekGrid> {
46
+ summary: ITekGridSummary;
47
+ columnName: string;
48
+ rowValue: IDictionary<any>;
49
+ }
50
+ export interface ITekGridProps extends IGridEditableProps, Partial<ISupportsToolbar>, Partial<IExportable> {
51
+ events?: TekGridEventsProp;
52
+ groupsOpened?: boolean;
53
+ showSummaryTotal?: boolean;
54
+ mainGrid?: boolean;
55
+ }
56
+ export interface ITekGrid extends IGridEditable<TekGridColumn>, ITekGridEvents, ISupportsToolbar, IExportable, IGroupedDataManager {
57
+ events: TekGridEventsProp;
58
+ groupsOpened: boolean;
59
+ showSummaryTotal: boolean;
60
+ mainGrid: boolean;
61
+ columnHasFilter: (columnName: string) => boolean;
62
+ }
63
+ export interface ISupportsToolbar {
64
+ actions: IComponentRender[];
65
+ addButton: boolean;
66
+ columnsButton: boolean;
67
+ columnsButtonIgnore: string[];
68
+ deleteButton: 'none' | 'currentRow' | 'selection';
69
+ showEditButtons: boolean;
70
+ filterButton: boolean;
71
+ showSearch: boolean;
72
+ showLayoutOptions: boolean;
73
+ title: string;
74
+ showExport: boolean;
75
+ showReload: boolean;
76
+ exportConfig: ITekGridExportConfig[];
77
+ exportActions?: IComponentRender[];
78
+ toolbarOpened: boolean;
79
+ columnFilterButton: boolean;
80
+ modalFilterProps: IModalFilterProps;
81
+ showCheckboxAllFilter: boolean;
82
+ defaultFilter: IDictionary;
83
+ editNewRowsOnly: boolean;
84
+ }
85
+ export interface IExportable {
86
+ reportTitle: string;
87
+ xlsDefaultType?: string;
88
+ getReport(type: string, portrait?: boolean, rowObj?: any): Promise<Window | null>;
89
+ }
90
+ export type IAsyncEvent<T> = (event: T) => Promise<any>;
91
+ export interface TekGridEventsProp<T = IGridEvent | IEventParam<any> | ITekGridLayoutEventParams | ITekGridCalcSummaryEventParams> extends GridEventsProp<T> {
92
+ addClick?: EventDef<T>;
93
+ afterCancel?: EventDef<T>;
94
+ afterDelete?: EventDef<T>;
95
+ afterSave?: EventDef<T>;
96
+ beforeApplyFilter?: EventDef<T>;
97
+ beforeCancel?: EventDef<T>;
98
+ beforeDelete?: EventDef<T>;
99
+ beforeSave?: EventDef<T>;
100
+ calcSummary?: EventDef<T>;
101
+ filterClick?: EventDef<T>;
102
+ loadLayouts?: EventDef<T, IAsyncEvent<T>>;
103
+ saveLayouts?: EventDef<T>;
104
+ groupRowClick?: EventDef<T>;
105
+ groupSelect?: EventDef<T>;
106
+ groupUnselect?: EventDef<T>;
107
+ beforeReload?: EventDef<T>;
108
+ }
109
+ export type MultiOptionParams = {
110
+ iconName: string;
111
+ label: string;
112
+ cssClass?: string;
113
+ reportParams?: {
114
+ portrait?: boolean;
115
+ rowObj?: any;
116
+ };
117
+ };
118
+ export interface ITekGridExportConfig {
119
+ type: string;
120
+ portrait?: boolean;
121
+ label?: string;
122
+ iconName?: string;
123
+ multiOption?: MultiOptionParams[];
124
+ }
125
+ export interface ITekGridEvents extends IGridEditableEvents {
126
+ rowDoubleClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void;
127
+ groupRowClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void;
128
+ groupRowDoubleClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void;
129
+ selectGroupClick(row: IDictionary<any>, isSelected: boolean, event: Event, element?: HTMLElement): void;
130
+ calcSummary(column: TekGridColumn, summary: ITekGridSummary, row: IDictionary): void;
131
+ }
132
+ export type IFilterRelation = 'AND' | 'OR';
133
+ export type IFilterOperation = 'CONTAINS' | 'NOT_CONTAINS' | 'EQUALS' | 'NOT_EQUALS' | 'GREATER_THAN' | 'LESS_THAN' | 'GREATER_THAN_EQUALS' | 'LESS_THAN_EQUALS' | 'IN' | 'NOT_IN' | 'BETWEEN';
134
+ export interface IFilterPropsComponent extends IComponent {
135
+ relation?: IFilterRelation;
136
+ operation?: IFilterOperation;
137
+ helperOptions?: string[];
138
+ helperValue?: string;
139
+ }
140
+ export declare const columnAggregationValues: ["SUM", "MIN", "MAX", "AVG", "COUNT", undefined];
141
+ export type ITekGridColumnAggregation = (typeof columnAggregationValues)[number];
142
+ export interface ITekGridColumn extends IGridColumnEditable {
143
+ filterProps?: IFilterPropsComponent | IFilterPropsComponent[];
144
+ filterable?: boolean;
145
+ filterIndex?: number;
146
+ skipLookupSearch?: boolean;
147
+ grouped?: boolean;
148
+ aggregation?: ITekGridColumnAggregation;
149
+ groupOpened?: boolean;
150
+ groupLabelForEmptyValue?: string;
151
+ }
152
+ export interface IColumnsSearcher {
153
+ searchColumn(columns: ITekGridColumn[], search: string): Promise<IDictionary<(string | number)[]>>;
154
+ }
155
+ export interface IGroupedDataManager {
156
+ initializeGrouping(lazyLoad: boolean): void;
157
+ updateGrouping: (lazyLoad?: boolean) => void;
158
+ updateGroupedData(lazyLoad: boolean): Promise<void>;
159
+ buildGroupedData(): void;
160
+ openGroup(group: IDictionary<any>): void;
161
+ isItemVisible(row: IDictionary<any>): any;
162
+ isGrouped(): boolean;
163
+ isColumnSearchable(column: TekGridColumn): boolean;
164
+ getGroupedData(): IDictionary<any>[];
165
+ directionalLeft(param: IEventParam<any>): void;
166
+ directionalRight(param: IEventParam<any>): void;
167
+ loadAfterTasks(): Promise<void>;
168
+ registerTask(task: Promise<any>): void;
169
+ setViewUpdateFixedColumns(fn: () => void): void;
170
+ setViewUpdateScrollData(fn: () => void): void;
171
+ }
172
+ export interface ITekGridGroupHeader {
173
+ group: boolean;
174
+ groupRow: IDictionary;
175
+ groupColumnName: string;
176
+ groupHeader: boolean;
177
+ groupIndex: number;
178
+ groupLabel: string;
179
+ groupValue: any;
180
+ groupOpened: boolean;
181
+ groupHeaders: ITekGridGroupHeader[];
182
+ children: IDictionary<any>[];
183
+ }
184
+ export interface ITekGridGroupFooter {
185
+ groupFooter: boolean;
186
+ groupIndex: number;
187
+ groupHeaders: ITekGridGroupHeader[];
188
+ groupLabel: string;
189
+ groupValue: any;
190
+ [key: string]: any;
191
+ }
192
+ export interface ITekGridFooter {
193
+ [key: string]: ITekGridSummary;
194
+ }
195
+ export interface ITekGridGroup {
196
+ column: ITekGridColumn;
197
+ name: string;
198
+ label: string;
199
+ lastValue: any;
200
+ footer: ITekGridFooter;
201
+ initialized: boolean;
202
+ lastGroupHeaderRow?: ITekGridGroupHeader;
203
+ }
204
+ export interface ITekGridAtoms {
205
+ TITLE: string;
206
+ HIDE_BUTTON: string;
207
+ ADD_BUTTON: string;
208
+ DELETE_BUTTON: string;
209
+ REFRESH_BUTTON: string;
210
+ COLUMNS_BUTTON: string;
211
+ LAYOUT_BUTTON: string;
212
+ EXPORT_BUTTON: string;
213
+ ACTIONS_BUTTON: string;
214
+ SAVE_BUTTON: string;
215
+ CANCEL_BUTTON: string;
216
+ SEARCH: string;
217
+ FILTER_BUTTON: string;
218
+ FILTER_MODAL: string;
219
+ FILTER_FORM: string;
220
+ EXPORT_DROPDOWN: string;
221
+ ACTIONS_DROPDOWN: string;
222
+ HIDE_TOOLTIP: string;
223
+ TOOLBAR_DIV: string;
224
+ NOT_EDITING_SPAN: string;
225
+ ADD_TOOLTIP: string;
226
+ DELETE_TOOLTIP: string;
227
+ DIVIDER1: string;
228
+ REFRESH_TOOLTIP: string;
229
+ DIVIDER2: string;
230
+ COLUMNS_TOOLTIP: string;
231
+ DIVIDER_ACTIONS: string;
232
+ DIVIDER3: string;
233
+ FILTER_TOOLTIP: string;
234
+ }
235
+ export interface ITekGridToolbarProvider {
236
+ getProperties(): IComponentRender[];
237
+ getAtomInstance<T>(key: keyof ITekGridAtoms): T;
238
+ getAtomName(key: keyof ITekGridAtoms): string;
239
+ }
240
+ export interface IDynamicFilterDatasourceFactory {
241
+ factory(options: IDictionary<boolean>): Datasource;
242
+ }
243
+ export type ITekGridLayoutOptionsEvent<T> = (event: T) => Promise<any>;
244
+ export interface ITekGridLayoutOptionsEvents<T = IEventParam<any> | ITekGridLayoutEventParams> extends IComponentEvents<T> {
245
+ loadLayouts?: IAsyncEvent<T>;
246
+ saveLayouts?: IEvent<T>;
247
+ [key: string]: any;
248
+ }
249
+ export interface ITekGridLayoutOptions extends IComponentRender {
250
+ events?: ITekGridLayoutOptionsEvents;
251
+ }
252
+ export interface ITekGridFilterButton extends IButton {
253
+ gridName?: string;
254
+ grid?: Iterable & ISupportsToolbar;
255
+ showCheckboxAll?: boolean;
256
+ }
257
+ export interface ITekGridColumnsButton extends IIterableColumnsButton {
258
+ hideGroups?: boolean;
259
+ }
@@ -0,0 +1,6 @@
1
+ import { IKeyMap } from '@zeedhi/core';
2
+ import { Component, IKeyMapConfig } from '@zeedhi/common';
3
+ import { IGroupedDataManager } from './interfaces';
4
+ export declare class KeyMapGrouped implements IKeyMapConfig<IGroupedDataManager> {
5
+ getMap(instance: Component & IGroupedDataManager): IKeyMap;
6
+ }
@@ -1,31 +1,39 @@
1
- import { ComponentRender, Grid } from '@zeedhi/common';
2
- import { IDictionary } from '@zeedhi/core';
3
- import { IDynamicFilterItem, ITekGridLayoutColumn } from '..';
4
- import { ITekGridLayoutOptions, ITekGridLayout, ITekGridLayoutOptionsEvents } from './interfaces';
5
- export declare class TekGridLayoutOptions extends ComponentRender implements ITekGridLayoutOptions {
6
- currentLayoutName: string;
7
- layoutEdited: boolean;
8
- layouts: IDictionary<ITekGridLayout>;
9
- layoutNames: string[];
10
- viewApplyLayout?: Function;
11
- viewGetCurrentLayout?: Function;
12
- originalColumnProps: ITekGridLayoutColumn[];
13
- originalDatasourceOrder: string[];
14
- originalDatasourceDynamicFilter: IDictionary<IDynamicFilterItem[]>;
15
- originalDatasourceFilter: IDictionary<any>;
16
- events: ITekGridLayoutOptionsEvents;
17
- grid: Grid;
18
- private getParentGrid;
19
- onMounted(element: HTMLElement): Promise<void>;
20
- protected loadLayoutsInfo(): Promise<any>;
21
- getHelperValue(column: any): string | (string | undefined)[] | undefined;
22
- newLayout(layout: ITekGridLayout): void;
23
- addLayout(layout: ITekGridLayout): void;
24
- discardChanges(): void;
25
- applyLayout(name: string, save?: boolean): void;
26
- private saveLayouts;
27
- deleteLayout(name: string): void;
28
- updateLayout(name: string, layout: ITekGridLayout): void;
29
- updateDefaultLayout(layout: ITekGridLayout): void;
30
- private fixColumns;
31
- }
1
+ import { IDictionary } from '@zeedhi/core';
2
+ import { Column, ComponentRender, Iterable } from '@zeedhi/common';
3
+ import { ITekGridLayout, ITekGridLayoutColumn, ITekGridLayoutOptions, ITekGridLayoutOptionsEvents } from './interfaces';
4
+ import { IDynamicFilterItem } from '../tek-datasource/interfaces';
5
+ import { TekGridColumn } from './tek-grid-column';
6
+ export declare class TekGridLayoutOptions extends ComponentRender implements ITekGridLayoutOptions {
7
+ currentLayoutName: string;
8
+ layoutEdited: boolean;
9
+ layouts: IDictionary<ITekGridLayout>;
10
+ layoutNames: string[];
11
+ viewApplyLayout?: (layout?: ITekGridLayout) => void;
12
+ viewGetCurrentLayout?: (layoutName: string) => {
13
+ name: string;
14
+ gridWidth: any;
15
+ order: any;
16
+ filter: any;
17
+ dynamicFilter: any;
18
+ columns: any;
19
+ };
20
+ originalColumnProps: ITekGridLayoutColumn[];
21
+ originalDatasourceOrder: string[];
22
+ originalDatasourceDynamicFilter: IDictionary<IDynamicFilterItem[]>;
23
+ originalDatasourceFilter: IDictionary<any>;
24
+ events: ITekGridLayoutOptionsEvents;
25
+ grid: Iterable<TekGridColumn>;
26
+ private getParentGrid;
27
+ onMounted(element: HTMLElement): Promise<void>;
28
+ protected loadLayoutsInfo(): Promise<any>;
29
+ getHelperValue(column: Column): string | (string | undefined)[] | undefined;
30
+ newLayout(layout: ITekGridLayout): void;
31
+ addLayout(layout: ITekGridLayout): void;
32
+ discardChanges(): void;
33
+ applyLayout(name: string, save?: boolean): void;
34
+ private saveLayouts;
35
+ deleteLayout(name: string): void;
36
+ updateLayout(name: string, layout: ITekGridLayout): void;
37
+ updateDefaultLayout(layout: ITekGridLayout): void;
38
+ private fixColumns;
39
+ }
@@ -1,45 +1,42 @@
1
- import { GridColumnEditable } from '@zeedhi/common';
2
- import { IDictionary } from '@zeedhi/core';
3
- import { TekGrid } from './grid';
4
- import { IFilterPropsComponent, ITekGridColumn, ITekGridColumnAggregation } from './interfaces';
5
- /**
6
- * Base class for TekGrid column
7
- */
8
- export declare class TekGridColumn extends GridColumnEditable implements ITekGridColumn {
9
- filterProps: IFilterPropsComponent | IFilterPropsComponent[];
10
- filterable: boolean;
11
- filterIndex?: number;
12
- skipLookupSearch: boolean;
13
- private groupedValue;
14
- private groupOpenedValue?;
15
- groupLabelForEmptyValue: string;
16
- private aggregationValue?;
17
- private isVisibleValue;
18
- /**
19
- * Defines if the column should store the componentProps datasource.data in memory
20
- */
21
- storeData: boolean;
22
- private grid;
23
- /**
24
- * Creates a new TekGrid Column.
25
- * @param props TekGrid column properties
26
- */
27
- constructor(props: ITekGridColumn, grid: TekGrid);
28
- getLookupData(lookupColumn: string, value: any): any;
29
- protected lookupFn(lookupColumn: string, dataToLookup?: any[]): Promise<void>;
30
- protected lookup: (lookupColumn: string) => void;
31
- getBatchLookupData(lookupColumn: string, values: any[]): Promise<IDictionary[]>;
32
- /**
33
- * Memory search, without changing lookupDatasource
34
- */
35
- memorySearch(search: string): Promise<any>;
36
- get grouped(): boolean;
37
- set grouped(value: boolean);
38
- get aggregation(): ITekGridColumnAggregation;
39
- set aggregation(value: ITekGridColumnAggregation);
40
- get groupOpened(): boolean | undefined;
41
- set groupOpened(value: boolean | undefined);
42
- get isVisible(): boolean;
43
- set isVisible(value: boolean);
44
- private changeGrouping;
45
- }
1
+ import { IDictionary } from '@zeedhi/core';
2
+ import { GridColumnEditable } from '@zeedhi/common';
3
+ import { IFilterPropsComponent, ITekGridColumn, ITekGridColumnAggregation } from './interfaces';
4
+ import { TekGrid } from './tek-grid';
5
+ /**
6
+ * Base class for TekGrid column
7
+ */
8
+ export declare class TekGridColumn extends GridColumnEditable implements ITekGridColumn {
9
+ filterProps: IFilterPropsComponent | IFilterPropsComponent[];
10
+ filterable: boolean;
11
+ filterIndex?: number;
12
+ skipLookupSearch: boolean;
13
+ private groupedValue;
14
+ private groupOpenedValue?;
15
+ groupLabelForEmptyValue: string;
16
+ private aggregationValue?;
17
+ private isVisibleValue;
18
+ /**
19
+ * Defines if the column should store the componentProps datasource.data in memory
20
+ */
21
+ storeData: boolean;
22
+ private grid;
23
+ /**
24
+ * Creates a new TekGrid Column.
25
+ * @param props TekGrid column properties
26
+ */
27
+ constructor(props: ITekGridColumn, grid: TekGrid);
28
+ getBatchLookupData(lookupColumn: string, values: any[]): Promise<IDictionary[]>;
29
+ /**
30
+ * Memory search, without changing lookupDatasource
31
+ */
32
+ memorySearch(search: string): Promise<any>;
33
+ get grouped(): boolean;
34
+ set grouped(value: boolean);
35
+ get aggregation(): ITekGridColumnAggregation;
36
+ set aggregation(value: ITekGridColumnAggregation);
37
+ get groupOpened(): boolean | undefined;
38
+ set groupOpened(value: boolean | undefined);
39
+ get isVisible(): boolean;
40
+ set isVisible(value: boolean);
41
+ private changeGrouping;
42
+ }
@@ -1,8 +1,8 @@
1
- import { IterableColumnsButtonController, Checkbox } from '@zeedhi/common';
2
- import { IEventParam } from '@zeedhi/core';
3
- import { TekGridColumn } from './grid-column';
4
- export declare class TekGridColumnsButtonController extends IterableColumnsButtonController {
5
- changeGroupedColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
6
- changeAggregationColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
7
- showHideTekColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
8
- }
1
+ import { IEventParam } from '@zeedhi/core';
2
+ import { Checkbox, IterableColumnsButtonController } from '@zeedhi/common';
3
+ import { TekGridColumn } from '../tek-grid-column';
4
+ export declare class TekGridColumnsButtonController extends IterableColumnsButtonController {
5
+ changeGroupedColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
6
+ changeAggregationColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
7
+ showHideTekColumn(column: TekGridColumn, { component, event, element }: IEventParam<Checkbox>): void;
8
+ }
@@ -1,12 +1,13 @@
1
- import { IterableColumnsButton } from '@zeedhi/common';
2
- import { ITekGridColumnsButton } from './interfaces';
3
- /**
4
- * Base class for TekGrid Columns Button component
5
- */
6
- export declare class TekGridColumnsButton extends IterableColumnsButton implements ITekGridColumnsButton {
7
- hideGroups: boolean;
8
- constructor(props: ITekGridColumnsButton);
9
- onCreated(): void;
10
- private aggregationDataSet;
11
- getAggregationSelectData(): any[];
12
- }
1
+ import { IterableColumnsButton } from '@zeedhi/common';
2
+ import { TekGridColumn } from '../tek-grid-column';
3
+ import { ITekGridColumnsButton } from '../interfaces';
4
+ /**
5
+ * Base class for TekGrid Columns Button component
6
+ */
7
+ export declare class TekGridColumnsButton extends IterableColumnsButton<TekGridColumn> implements ITekGridColumnsButton {
8
+ hideGroups: boolean;
9
+ constructor(props: ITekGridColumnsButton);
10
+ onCreated(): void;
11
+ private aggregationDataSet;
12
+ getAggregationSelectData(): any[];
13
+ }
@@ -0,0 +1,31 @@
1
+ import { IGridEditable } from '@zeedhi/common';
2
+ import { ISupportsToolbar } from './interfaces';
3
+ export declare class TekGridController {
4
+ private grid;
5
+ openToolbar: boolean;
6
+ constructor(grid: IGridEditable & ISupportsToolbar);
7
+ get gridTitle(): string;
8
+ get showAddButton(): boolean;
9
+ get showDeleteButton(): boolean;
10
+ get showFilterButton(): boolean;
11
+ get showModalFilterProps(): import("./interfaces").IModalFilterProps;
12
+ get showSearchInput(): boolean;
13
+ get showToolbar(): boolean;
14
+ set showToolbar(value: boolean);
15
+ get toolbarClass(): string;
16
+ get tooltipName(): "TEKGRID_SHOW" | "TEKGRID_HIDE";
17
+ get showReloadButton(): boolean;
18
+ get showDivider2(): boolean;
19
+ get showColumnsButton(): boolean;
20
+ get columnsButtonIgnore(): string[];
21
+ get showLayoutOptionsButton(): boolean;
22
+ get showDivider1(): boolean;
23
+ get showActionsButton(): boolean;
24
+ get showExportButton(): boolean;
25
+ get showActionAndExportButton(): boolean;
26
+ get showDivider3(): boolean;
27
+ get isEditing(): boolean;
28
+ get showEditButtons(): boolean;
29
+ get isNotEditing(): boolean;
30
+ get disableDeleteButton(): boolean;
31
+ }
@@ -0,0 +1,31 @@
1
+ import { IDictionary } from '@zeedhi/core';
2
+ import { GridEditableEvents } from '@zeedhi/common';
3
+ import { ITekGrid, ITekGridEvents, ITekGridSummary } from './interfaces';
4
+ import { TekGridColumn } from './tek-grid-column';
5
+ export declare class TekGridEvents extends GridEditableEvents implements ITekGridEvents {
6
+ protected tekGrid: ITekGrid;
7
+ /**
8
+ * Flag to prevent row click
9
+ */
10
+ protected preventRowClick: boolean;
11
+ protected preventRowDoubleClick: boolean;
12
+ constructor(tekGrid: ITekGrid);
13
+ calcSummary(column: TekGridColumn, summary: ITekGridSummary, row: IDictionary): void;
14
+ rowDoubleClick(row: IDictionary<any>, event: Event, element: HTMLElement): void;
15
+ /**
16
+ * Dispatches group row click event
17
+ * @param row Grid row
18
+ * @param event DOM event
19
+ * @param element DOM Element
20
+ */
21
+ groupRowClick(row: IDictionary<any>, event: Event, element: HTMLElement): void;
22
+ groupRowDoubleClick(row: IDictionary<any>, event: Event, element: HTMLElement): void;
23
+ /**
24
+ * Dispatches group select/unselect event
25
+ * @param row Group row
26
+ * @param isSelected Row is selected
27
+ * @param event DOM event
28
+ * @param element DOM Element
29
+ */
30
+ selectGroupClick(row: IDictionary<any>, isSelected: boolean, event: Event, element: HTMLElement): void;
31
+ }