@zeedhi/teknisa-components-common 3.0.4 → 3.2.0

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 (134) hide show
  1. package/dist/teknisa-components-common.es.js +3536 -0
  2. package/dist/types/components/index.d.ts +2 -0
  3. package/dist/types/components/tek-breadcrumb-header/breadcrumb-header.d.ts +2 -2
  4. package/dist/types/components/tek-breadcrumb-header/interfaces.d.ts +1 -1
  5. package/dist/types/components/tek-datasource/tek-memory-datasource.d.ts +1 -21
  6. package/dist/types/components/tek-datasource/tek-rest-datasource.d.ts +6 -30
  7. package/dist/types/components/tek-grid/filter-helper.d.ts +2 -2
  8. package/dist/types/components/tek-grid/grid-filter-button.d.ts +1 -0
  9. package/dist/types/components/tek-grid/grouped-data-manager.d.ts +8 -1
  10. package/dist/types/components/tek-grid/grouped-data-navigator.d.ts +12 -0
  11. package/dist/types/components/tek-grid/index.d.ts +1 -1
  12. package/dist/types/components/tek-grid/interfaces.d.ts +8 -1
  13. package/dist/types/components/tek-grid/tek-grid-controller.d.ts +19 -17
  14. package/dist/types/components/tek-grid/tek-grid-data-editor.d.ts +11 -0
  15. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.d.ts +1 -1
  16. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.d.ts +8 -1
  17. package/dist/types/components/tek-grid/tek-grid.d.ts +24 -6
  18. package/dist/types/components/tek-loading/interfaces.d.ts +6 -0
  19. package/dist/types/components/tek-loading/loading.d.ts +16 -0
  20. package/dist/types/components/tek-user-info/TekUserInfoController.d.ts +4 -4
  21. package/dist/types/utils/extract-properties/extract-properties.d.ts +1 -0
  22. package/dist/types/utils/index.d.ts +2 -0
  23. package/dist/types/utils/report-filter/report-filter.d.ts +12 -0
  24. package/package.json +32 -12
  25. package/coverage/clover.xml +0 -6
  26. package/coverage/coverage-final.json +0 -1
  27. package/coverage/lcov-report/base.css +0 -224
  28. package/coverage/lcov-report/block-navigation.js +0 -87
  29. package/coverage/lcov-report/favicon.png +0 -0
  30. package/coverage/lcov-report/index.html +0 -101
  31. package/coverage/lcov-report/prettify.css +0 -1
  32. package/coverage/lcov-report/prettify.js +0 -2
  33. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  34. package/coverage/lcov-report/sorter.js +0 -210
  35. package/coverage/lcov.info +0 -0
  36. package/dist/teknisa-components-common.js +0 -3802
  37. package/dist/teknisa-components-common.min.js +0 -3802
  38. package/dist/types/components/tek-grid/grouped-view-navigator.d.ts +0 -14
  39. package/dist/types/error/delete-rows-error.d.ts +0 -6
  40. package/environments.json +0 -14
  41. package/jest.config.js +0 -1
  42. package/src/components/index.ts +0 -101
  43. package/src/components/tek-breadcrumb-header/breadcrumb-header.ts +0 -29
  44. package/src/components/tek-breadcrumb-header/interfaces.ts +0 -7
  45. package/src/components/tek-datasource/index.ts +0 -3
  46. package/src/components/tek-datasource/interfaces.ts +0 -36
  47. package/src/components/tek-datasource/tek-memory-datasource.ts +0 -314
  48. package/src/components/tek-datasource/tek-rest-datasource.ts +0 -224
  49. package/src/components/tek-grid/columns-searcher.ts +0 -22
  50. package/src/components/tek-grid/dynamic-filter-datasource-factory.ts +0 -20
  51. package/src/components/tek-grid/filter-helper.ts +0 -20
  52. package/src/components/tek-grid/grid-filter-button.ts +0 -419
  53. package/src/components/tek-grid/grouped-data-manager.ts +0 -448
  54. package/src/components/tek-grid/grouped-data-selector.ts +0 -40
  55. package/src/components/tek-grid/grouped-view-navigator.ts +0 -84
  56. package/src/components/tek-grid/index.ts +0 -18
  57. package/src/components/tek-grid/interfaces.ts +0 -329
  58. package/src/components/tek-grid/keymap-grouped.ts +0 -20
  59. package/src/components/tek-grid/layout-options.ts +0 -248
  60. package/src/components/tek-grid/tek-grid-column.ts +0 -193
  61. package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts +0 -28
  62. package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts +0 -38
  63. package/src/components/tek-grid/tek-grid-controller.ts +0 -140
  64. package/src/components/tek-grid/tek-grid-events.ts +0 -105
  65. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts +0 -26
  66. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts +0 -3
  67. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.ts +0 -6
  68. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts +0 -85
  69. package/src/components/tek-grid/tek-grid-toolbar-provider/index.ts +0 -2
  70. package/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts +0 -365
  71. package/src/components/tek-grid/tek-grid.ts +0 -1118
  72. package/src/components/tek-user-info/TekUserInfoController.ts +0 -87
  73. package/src/components/tek-user-info/interfaces.ts +0 -21
  74. package/src/components/tek-user-info/tek-user-info-list.ts +0 -64
  75. package/src/components/tek-user-info/tek-user-info.ts +0 -337
  76. package/src/error/tek-grid-delete-rows-error.ts +0 -15
  77. package/src/error/teknisa-common-error.ts +0 -8
  78. package/src/utils/config/config.ts +0 -8
  79. package/src/utils/index.ts +0 -3
  80. package/src/utils/is-filled-object/is-filled-object.ts +0 -5
  81. package/src/utils/is-nil.ts +0 -3
  82. package/tests/__helpers__/component-event-helper.ts +0 -5
  83. package/tests/__helpers__/flush-promises-helper.ts +0 -3
  84. package/tests/__helpers__/get-child-helper.ts +0 -27
  85. package/tests/__helpers__/index.ts +0 -3
  86. package/tests/__helpers__/mock-created-helper.ts +0 -12
  87. package/tests/__mocks__/@zeedhi/core/i18n.js +0 -75
  88. package/tests/__mocks__/@zeedhi/core.js +0 -5
  89. package/tests/unit/components/crud/crud-add-button.spec.ts +0 -56
  90. package/tests/unit/components/crud/crud-button.spec.ts +0 -94
  91. package/tests/unit/components/crud/crud-cancel-button.spec.ts +0 -91
  92. package/tests/unit/components/crud/crud-delete-button.spec.ts +0 -122
  93. package/tests/unit/components/crud/crud-form.spec.ts +0 -165
  94. package/tests/unit/components/crud/crud-save-button.spec.ts +0 -118
  95. package/tests/unit/components/tek-breadcrumb-header/tek-breadcrumb-header.spec.ts +0 -42
  96. package/tests/unit/components/tek-card-title/CardTitle.spec.ts +0 -34
  97. package/tests/unit/components/tek-datasource/memory-datasource.spec.ts +0 -460
  98. package/tests/unit/components/tek-datasource/rest-datasource.spec.ts +0 -362
  99. package/tests/unit/components/tek-drag-grid/tek-drag-grid.spec.ts +0 -112
  100. package/tests/unit/components/tek-grid/button-option.spec.ts +0 -49
  101. package/tests/unit/components/tek-grid/columns-searcher.spec.ts +0 -112
  102. package/tests/unit/components/tek-grid/dynamic-filter-datasource-factory.spec.ts +0 -90
  103. package/tests/unit/components/tek-grid/filter-helper.spec.ts +0 -52
  104. package/tests/unit/components/tek-grid/grid-filter-button.spec.ts +0 -842
  105. package/tests/unit/components/tek-grid/grouped-data-manager.spec.ts +0 -593
  106. package/tests/unit/components/tek-grid/grouped-data-selector.spec.ts +0 -136
  107. package/tests/unit/components/tek-grid/grouped-view-navigator.spec.ts +0 -244
  108. package/tests/unit/components/tek-grid/keymap-grouped.spec.ts +0 -20
  109. package/tests/unit/components/tek-grid/layout-options.spec.ts +0 -1020
  110. package/tests/unit/components/tek-grid/multi-option.spec.ts +0 -139
  111. package/tests/unit/components/tek-grid/tek-grid-column.spec.ts +0 -312
  112. package/tests/unit/components/tek-grid/tek-grid-columns-button.spec.ts +0 -228
  113. package/tests/unit/components/tek-grid/tek-grid-controller.spec.ts +0 -253
  114. package/tests/unit/components/tek-grid/tek-grid-events.spec.ts +0 -186
  115. package/tests/unit/components/tek-grid/tek-grid-toolbar-provider.spec.ts +0 -34
  116. package/tests/unit/components/tek-grid/tek-grid.spec.ts +0 -895
  117. package/tests/unit/components/tek-grid/tek-memory-datasource.spec.ts +0 -482
  118. package/tests/unit/components/tek-grid/tek-rest-datasource.spec.ts +0 -422
  119. package/tests/unit/components/tek-image/Image.spec.ts +0 -67
  120. package/tests/unit/components/tek-iterable-carousel/iterable-carousel.spec.ts +0 -37
  121. package/tests/unit/components/tek-iterable-component-render/iterable-component-render.spec.ts +0 -200
  122. package/tests/unit/components/tek-loading/Loading.spec.ts +0 -30
  123. package/tests/unit/components/tek-notifications/notifications.spec.ts +0 -201
  124. package/tests/unit/components/tek-product-card/product-card.spec.ts +0 -61
  125. package/tests/unit/components/tek-user-info/TekUserInfoContoller.spec.ts +0 -220
  126. package/tests/unit/components/tek-user-info/tek-user-info-list.spec.ts +0 -86
  127. package/tests/unit/components/tek-user-info/tek-user-info.spec.ts +0 -430
  128. package/tests/unit/components/tree-grid/tree-grid.spec.ts +0 -776
  129. package/tests/unit/utils/grid-base/export-options/button-option.spec.ts +0 -44
  130. package/tests/unit/utils/grid-base/export-options/multi-option.spec.ts +0 -135
  131. package/tests/unit/utils/grid-base/grid-controller.spec.ts +0 -174
  132. package/tests/unit/utils/report-filter/report-filter.spec.ts +0 -66
  133. package/tsconfig.build.json +0 -7
  134. package/tsconfig.eslint.json +0 -9
@@ -1,5 +1,7 @@
1
1
  export * from './tek-breadcrumb-header/breadcrumb-header';
2
2
  export * from './tek-breadcrumb-header/interfaces';
3
+ export * from './tek-loading/interfaces';
4
+ export * from './tek-loading/loading';
3
5
  export * from './tek-grid';
4
6
  export * from './tek-datasource';
5
7
  export * from './tek-user-info/interfaces';
@@ -1,5 +1,5 @@
1
- import { type IBreadcrumbs, ComponentRender, type IComponentRender } from '@zeedhi/common';
2
- import type { IBreadcrumbHeader } from './interfaces';
1
+ import { IBreadcrumbs, ComponentRender, IComponentRender } from '@zeedhi/common';
2
+ import { IBreadcrumbHeader } from './interfaces';
3
3
  /**
4
4
  * BreadcrumbHeader join breadcrumb and title
5
5
  */
@@ -1,4 +1,4 @@
1
- import type { IBreadcrumbs, IComponentRender } from '@zeedhi/common';
1
+ import { IBreadcrumbs, IComponentRender } from '@zeedhi/common';
2
2
  export interface IBreadcrumbHeader extends IComponentRender {
3
3
  breadcrumb: IBreadcrumbs;
4
4
  title: string;
@@ -62,27 +62,7 @@ export declare class TekMemoryDatasource extends MemoryDatasource implements ITe
62
62
  * @returns Is valid filter value
63
63
  */
64
64
  protected isValidDynamicFilterValue(column: string, value?: IDictionary<any>[]): boolean | undefined;
65
- clone(): {
66
- dynamicFilter: IDictionary<IDynamicFilterItem[]>;
67
- searchJoin: IDictionary<(string | number)[]>;
68
- type: string;
69
- translate?: boolean | string[] | undefined;
70
- sortFunction?: ((value1: any, value2: any, columnName: string) => boolean) | undefined;
71
- sortParams?: IDictionary<any> | undefined;
72
- currentRow?: IDictionary<any> | undefined;
73
- data?: IDictionary<any>[] | undefined;
74
- filter?: IDictionary<any> | undefined;
75
- limit?: string | number | undefined;
76
- loadAll?: boolean | undefined;
77
- loading?: boolean | undefined;
78
- order?: string[] | undefined;
79
- page?: string | number | undefined;
80
- search?: string | undefined;
81
- searchIn?: string[] | undefined;
82
- uniqueKey?: string | undefined;
83
- watchUrl?: boolean | undefined;
84
- events?: import("@zeedhi/core").IDatasourceEvents<import("@zeedhi/core").IEventParam<any>> | undefined;
85
- };
65
+ clone(): any;
86
66
  /**
87
67
  * Updates filtered data
88
68
  */
@@ -33,29 +33,29 @@ export declare class TekRestDatasource extends RestDatasource implements ITekRes
33
33
  * @param value Dynamic Filter value
34
34
  * @returns Promise with data collection
35
35
  */
36
- addDynamicFilter(column: string, value: any): Promise<IDictionary<any> | IDictionary<any>[]>;
36
+ addDynamicFilter(column: string, value: any): Promise<any>;
37
37
  /**
38
38
  * Removes a dynamic filter position
39
39
  * @param column Dynamic Filter column name
40
40
  * @returns Promise with data collection
41
41
  */
42
- removeDynamicFilter(column: string): Promise<IDictionary<any> | IDictionary<any>[]>;
42
+ removeDynamicFilter(column: string): Promise<any>;
43
43
  /**
44
44
  * Sets new dynamic filter value
45
45
  * @param filter Dynamic Filter value
46
46
  * @returns Promise with data collection
47
47
  */
48
- setDynamicFilter(filter: IDictionary<any>): Promise<IDictionary<any> | IDictionary<any>[]>;
48
+ setDynamicFilter(filter: IDictionary<any>): Promise<any>;
49
49
  /**
50
50
  * Clears Dynamic filter value
51
51
  * @returns Promise with data collection
52
52
  */
53
- clearDynamicFilter(): Promise<IDictionary<any> | IDictionary<any>[]>;
53
+ clearDynamicFilter(): Promise<any>;
54
54
  /**
55
55
  * Resets page and selected rows and tries to update the url
56
56
  * @returns Promise with data collection
57
57
  */
58
- updateDynamicFilter(): Promise<IDictionary<any> | IDictionary<any>[]>;
58
+ updateDynamicFilter(): Promise<any>;
59
59
  /**
60
60
  * Checks if a filter value is valid
61
61
  * @param value Filter value
@@ -67,29 +67,5 @@ export declare class TekRestDatasource extends RestDatasource implements ITekRes
67
67
  */
68
68
  protected getRequestParams(): any;
69
69
  hasFilter(columnName: string): boolean;
70
- clone(): {
71
- dynamicFilter: IDictionary<IDynamicFilterItem[]>;
72
- searchJoin: IDictionary<(string | number)[]>;
73
- type: string;
74
- route?: string | undefined;
75
- lazyLoad?: boolean | undefined;
76
- arrayFormat?: import("@zeedhi/core").ArrayFormatType | undefined;
77
- find?: IDictionary<any> | undefined;
78
- localSearch?: boolean | undefined;
79
- currentRow?: IDictionary<any> | undefined; /** Search Join data */
80
- data?: IDictionary<any>[] | undefined;
81
- filter?: IDictionary<any> | undefined;
82
- limit?: string | number | undefined;
83
- loadAll?: boolean | undefined;
84
- loading?: boolean | undefined;
85
- order?: string[] | undefined;
86
- page?: string | number | undefined;
87
- search?: string | undefined;
88
- searchIn?: string[] | undefined;
89
- uniqueKey?: string | undefined;
90
- watchUrl?: boolean | undefined; /**
91
- * Dynamic Filter applied flag
92
- */
93
- events?: import("@zeedhi/core").IDatasourceEvents<import("@zeedhi/core").IEventParam<any>> | undefined;
94
- };
70
+ clone(): any;
95
71
  }
@@ -1,7 +1,7 @@
1
1
  import { TekGridColumn } from './tek-grid-column';
2
2
  export declare class TekFilterHelper {
3
- static getLabel(name: string): string;
4
- static getValue(name: string, column: TekGridColumn): string | string[];
3
+ static getLabel(name: string): any;
4
+ static getValue(name: string, column: TekGridColumn): any;
5
5
  static register(name: string, label: string, fn: () => Date | [Date, Date]): void;
6
6
  static unregister(name: string): void;
7
7
  }
@@ -24,6 +24,7 @@ export declare class TekGridFilterButton extends Button implements ITekGridFilte
24
24
  private setFilter;
25
25
  private clearFilter;
26
26
  private sortFilterIndex;
27
+ getFilterInputs(columnName?: string): any;
27
28
  private getFilterModalComponents;
28
29
  private changeHelperEvent;
29
30
  }
@@ -58,7 +58,7 @@ export declare class GroupedDataManager implements IGroupedDataManager {
58
58
  /**
59
59
  * Returns the summary data for the group
60
60
  */
61
- getSummaryData(group: IDictionary<ITekGridSummary>): IDictionary<any>;
61
+ getSummaryData(group: IDictionary<ITekGridSummary>): IDictionary;
62
62
  /**
63
63
  * Adds group footers to the grouped data
64
64
  */
@@ -73,6 +73,13 @@ export declare class GroupedDataManager implements IGroupedDataManager {
73
73
  * the grid.
74
74
  */
75
75
  buildGroupedData(): void;
76
+ private updateGroupFooterSummary;
77
+ private updateSummaryTotal;
78
+ /**
79
+ * Recalculates all group footers and the summary total in place, without rebuilding
80
+ * the grouped data structure. Used to reflect in-progress cell edits.
81
+ */
82
+ updateSummary(): void;
76
83
  openGroup(group: IDictionary<any>): void;
77
84
  isItemVisible(row: IDictionary<any>): any;
78
85
  isGrouped(): boolean;
@@ -0,0 +1,12 @@
1
+ import { IDataNavigator, VerticalDirection } from '@zeedhi/common';
2
+ import { ITekGrid } from './interfaces';
3
+ export declare class GroupedDataNavigator implements IDataNavigator {
4
+ private dataNavigator;
5
+ protected grid: ITekGrid;
6
+ constructor(grid: ITekGrid);
7
+ navigatePageUp(): void;
8
+ navigatePageDown(): void;
9
+ navigateDatasource(direction: VerticalDirection): void;
10
+ private getRowIndex;
11
+ private navigateGroupedDatasource;
12
+ }
@@ -5,7 +5,7 @@ export * from './dynamic-filter-datasource-factory';
5
5
  export * from './filter-helper';
6
6
  export * from './grid-filter-button';
7
7
  export * from './grouped-data-manager';
8
- export * from './grouped-view-navigator';
8
+ export * from './grouped-data-navigator';
9
9
  export * from './interfaces';
10
10
  export * from './keymap-grouped';
11
11
  export * from './layout-options';
@@ -1,5 +1,5 @@
1
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';
2
+ import { EventDef, GridEventsProp, IBeforeReportEvent, IButton, IComponent, IComponentEvents, IComponentRender, IGridColumnEditable, IGridEditable, IGridEditableEvents, IGridEditableProps, IGridEvent, IIterableColumnsButton, IModal, Input, Iterable, LabelFormatter } from '@zeedhi/common';
3
3
  import { IDynamicFilterItem } from '../tek-datasource/interfaces';
4
4
  import { TekGridColumn } from './tek-grid-column';
5
5
  export interface IModalFilterProps extends IModal {
@@ -81,10 +81,13 @@ export interface ISupportsToolbar {
81
81
  showCheckboxAllFilter: boolean;
82
82
  defaultFilter: IDictionary;
83
83
  editNewRowsOnly: boolean;
84
+ toolbarConfig: (IComponentRender | string)[];
85
+ showHideButton: boolean;
84
86
  }
85
87
  export interface IExportable {
86
88
  reportTitle: string;
87
89
  xlsDefaultType?: string;
90
+ reportLabelFormatter?: LabelFormatter;
88
91
  getReport(type: string, portrait?: boolean, rowObj?: any): Promise<Window | null>;
89
92
  }
90
93
  export type IAsyncEvent<T> = (event: T) => Promise<any>;
@@ -96,6 +99,7 @@ export interface TekGridEventsProp<T = IGridEvent | IEventParam<any> | ITekGridL
96
99
  beforeApplyFilter?: EventDef<T>;
97
100
  beforeCancel?: EventDef<T>;
98
101
  beforeDelete?: EventDef<T>;
102
+ beforeOpenReport?: EventDef<T, IBeforeReportEvent>;
99
103
  beforeSave?: EventDef<T>;
100
104
  calcSummary?: EventDef<T>;
101
105
  filterClick?: EventDef<T>;
@@ -105,6 +109,7 @@ export interface TekGridEventsProp<T = IGridEvent | IEventParam<any> | ITekGridL
105
109
  groupSelect?: EventDef<T>;
106
110
  groupUnselect?: EventDef<T>;
107
111
  beforeReload?: EventDef<T>;
112
+ [key: string]: any;
108
113
  }
109
114
  export type MultiOptionParams = {
110
115
  iconName: string;
@@ -157,6 +162,7 @@ export interface IGroupedDataManager {
157
162
  updateGrouping: (lazyLoad?: boolean) => void;
158
163
  updateGroupedData(lazyLoad: boolean): Promise<void>;
159
164
  buildGroupedData(): void;
165
+ updateSummary(): void;
160
166
  openGroup(group: IDictionary<any>): void;
161
167
  isItemVisible(row: IDictionary<any>): any;
162
168
  isGrouped(): boolean;
@@ -236,6 +242,7 @@ export interface ITekGridToolbarProvider {
236
242
  getProperties(): IComponentRender[];
237
243
  getAtomInstance<T>(key: keyof ITekGridAtoms): T;
238
244
  getAtomName(key: keyof ITekGridAtoms): string;
245
+ getFilterInputs(columnName?: string): Input[];
239
246
  }
240
247
  export interface IDynamicFilterDatasourceFactory {
241
248
  factory(options: IDictionary<boolean>): Datasource;
@@ -4,28 +4,30 @@ export declare class TekGridController {
4
4
  private grid;
5
5
  openToolbar: boolean;
6
6
  constructor(grid: IGridEditable & ISupportsToolbar);
7
- get gridTitle(): string;
8
- get showAddButton(): boolean;
7
+ get gridTitle(): any;
8
+ get showAddButton(): any;
9
9
  get showDeleteButton(): boolean;
10
- get showFilterButton(): boolean;
11
- get showModalFilterProps(): import("./interfaces").IModalFilterProps;
12
- get showSearchInput(): boolean;
10
+ get showFilterButton(): any;
11
+ get showModalFilterProps(): any;
12
+ get showSearchInput(): any;
13
13
  get showToolbar(): boolean;
14
+ get showHideButton(): any;
15
+ get toolbarCollapseClass(): string;
14
16
  set showToolbar(value: boolean);
15
17
  get toolbarClass(): string;
16
18
  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;
19
+ get showReloadButton(): any;
20
+ get showDivider2(): any;
21
+ get showColumnsButton(): any;
22
+ get columnsButtonIgnore(): any;
23
+ get showLayoutOptionsButton(): any;
24
+ get showDivider1(): any;
23
25
  get showActionsButton(): boolean;
24
- get showExportButton(): boolean;
25
- get showActionAndExportButton(): boolean;
26
- get showDivider3(): boolean;
27
- get isEditing(): boolean;
28
- get showEditButtons(): boolean;
26
+ get showExportButton(): any;
27
+ get showActionAndExportButton(): any;
28
+ get showDivider3(): any;
29
+ get isEditing(): any;
30
+ get showEditButtons(): any;
29
31
  get isNotEditing(): boolean;
30
- get disableDeleteButton(): boolean;
32
+ get disableDeleteButton(): any;
31
33
  }
@@ -0,0 +1,11 @@
1
+ import { IDictionary } from '@zeedhi/core';
2
+ import { DataEditorWithAdd, IGridColumnEditable, Input } from '@zeedhi/common';
3
+ import { ITekGrid } from './interfaces';
4
+ /**
5
+ * Extends DataEditorWithAdd to refresh the grouped data summary/footers after an inline cell edit,
6
+ * since TekGrid composes its data editor instead of inheriting from it.
7
+ */
8
+ export declare class TekGridDataEditor extends DataEditorWithAdd {
9
+ protected grid: ITekGrid;
10
+ changeEditableComponent(column: IGridColumnEditable, row: IDictionary<any>, value: any, component?: Input): void;
11
+ }
@@ -1,4 +1,4 @@
1
- import { IComponent, IRow } from '@zeedhi/common';
1
+ import { IComponent } from '@zeedhi/common';
2
2
  import { IExportable, ITekGridExportConfig } from '../../interfaces';
3
3
  import { IExportOption } from './interfaces';
4
4
  export declare class MultiOption implements IExportOption {
@@ -1,6 +1,7 @@
1
1
  import { IEventParam } from '@zeedhi/core';
2
- import { IComponentRender, IGridEditable } from '@zeedhi/common';
2
+ import { IComponentRender, IGridEditable, Input } from '@zeedhi/common';
3
3
  import { IExportable, ISupportsToolbar, ITekGridAtoms, ITekGridToolbarProvider } from '../interfaces';
4
+ import { TekGridFilterButton } from '../grid-filter-button';
4
5
  type GridEditableWithToolbar = IGridEditable & ISupportsToolbar & IExportable;
5
6
  export declare class TekGridToolbarProvider implements ITekGridToolbarProvider {
6
7
  private grid;
@@ -9,6 +10,9 @@ export declare class TekGridToolbarProvider implements ITekGridToolbarProvider {
9
10
  protected atoms: ITekGridAtoms;
10
11
  getAtomName(key: keyof ITekGridAtoms): string;
11
12
  getAtomInstance<T>(key: keyof ITekGridAtoms): T;
13
+ filterButton?: TekGridFilterButton;
14
+ private loadFilterButton;
15
+ getFilterInputs(columnName?: string): Input[];
12
16
  private getOption;
13
17
  private getExportConfigButtons;
14
18
  private hideButtonClick;
@@ -17,6 +21,9 @@ export declare class TekGridToolbarProvider implements ITekGridToolbarProvider {
17
21
  private addButtonClick;
18
22
  private deleteButtonClick;
19
23
  reloadGrid({ event }: IEventParam<any>): void;
24
+ private getDefaultToolbarItems;
25
+ private processUserToolbarItems;
26
+ private getHeaderItems;
20
27
  getProperties(): IComponentRender[];
21
28
  }
22
29
  export {};
@@ -1,6 +1,6 @@
1
1
  import { Datasource, IDictionary, IEventParam } from '@zeedhi/core';
2
- import { Direction, IGrid, VerticalDirection, IComponent, IComponentRender, IGridColumnEditable, IGridEditable, Iterable, IIterableProps } from '@zeedhi/common';
3
- import { IModalFilterProps, ITekGrid, ITekGridAtoms, ITekGridColumn, ITekGridExportConfig, ITekGridProps, ITekGridSummary } from './interfaces';
2
+ import { Direction, IGrid, LabelFormatter, VerticalDirection, IComponent, IComponentRender, IGridColumnEditable, IGridEditable, Iterable, IIterableProps } from '@zeedhi/common';
3
+ import { IModalFilterProps, ITekGrid, ITekGridAtoms, ITekGridColumn, ITekGridExportConfig, ITekGridProps, ITekGridSummary, TekGridEventsProp } from './interfaces';
4
4
  import { TekGridColumn } from './tek-grid-column';
5
5
  export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid {
6
6
  private tableActionBuilder;
@@ -8,12 +8,13 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
8
8
  private dataSelector;
9
9
  private tekGridEvents;
10
10
  private dataNavigator;
11
- private groupedViewNavigator;
11
+ private viewNavigator;
12
12
  private keyMapMerger;
13
13
  private dataEditor;
14
14
  private columnsSearcher;
15
15
  private groupedDataManager;
16
16
  private tekGridToolbarProvider;
17
+ events: TekGridEventsProp;
17
18
  title: string;
18
19
  addButton: boolean;
19
20
  deleteButton: 'none' | 'currentRow' | 'selection';
@@ -25,6 +26,11 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
25
26
  columnsButton: boolean;
26
27
  mainGrid: boolean;
27
28
  columnsButtonIgnore: string[];
29
+ /**
30
+ * Components that will be rendered on toolbar slot
31
+ */
32
+ toolbarConfig: (IComponentRender | string)[];
33
+ showHideButton: boolean;
28
34
  /**
29
35
  * Enables column dragging
30
36
  * @public
@@ -72,6 +78,7 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
72
78
  defaultFilter: IDictionary;
73
79
  toolbarOpened: boolean;
74
80
  reportTitle: string;
81
+ reportLabelFormatter?: LabelFormatter;
75
82
  editing: boolean;
76
83
  currentColumn: TekGridColumn | null;
77
84
  selectedRows: IDictionary<any>[];
@@ -132,9 +139,10 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
132
139
  calcSummary(column: TekGridColumn, columnNamesummary: ITekGridSummary, row: IDictionary): void;
133
140
  private getDefaultLazy;
134
141
  initializeGrouping(lazyLoad: boolean): void;
135
- updateGrouping(): void;
142
+ updateGrouping(lazyLoad?: boolean): void;
136
143
  updateGroupedData(lazyLoad: boolean): Promise<void>;
137
144
  buildGroupedData(): void;
145
+ updateSummary(): void;
138
146
  openGroup(group: IDictionary<any>): void;
139
147
  isItemVisible(row: IDictionary<any>): any;
140
148
  isGrouped(): boolean;
@@ -142,7 +150,9 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
142
150
  getGroupedData(): IDictionary<any>[];
143
151
  directionalLeft(param: IEventParam<any>): void;
144
152
  directionalRight(param: IEventParam<any>): void;
145
- getReport(): Promise<Window | null>;
153
+ private buildReportGroups;
154
+ private buildReportAggregations;
155
+ getReport(type: string, portrait?: boolean, rowObj?: any): Promise<Window | null>;
146
156
  setViewUpdateFixedColumns(fn: () => void): void;
147
157
  setViewUpdateScrollData(fn: () => void): void;
148
158
  onCreated(): void;
@@ -177,6 +187,7 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
177
187
  navigateDown(): void;
178
188
  navigateDatasource(direction: VerticalDirection): void;
179
189
  getActionComponent(actionComponent: IComponent, column: TekGridColumn, row: IDictionary, parentPath?: string): IComponent;
190
+ createGridController(): void;
180
191
  addCancelColumn(): void;
181
192
  getCancelColumnProps(): IGridColumnEditable;
182
193
  isAdded(row: IDictionary): boolean;
@@ -184,7 +195,13 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
184
195
  cancelAddedRows(): Promise<void>;
185
196
  getAddedRows(): IDictionary<any>[];
186
197
  addNewRow(row: IDictionary, position?: 'end' | 'start'): Promise<void>;
198
+ /**
199
+ * Adds a new row taking the group column values from the currently selected row (or group header),
200
+ * so callers don't need to manually specify them when adding a row within a selected group.
201
+ */
202
+ addToSelection(row: IDictionary, position?: 'end' | 'start'): Promise<void>;
187
203
  getVisibleValue(row: IDictionary, column: ITekGridColumn): any;
204
+ getVisibleRow(row: IDictionary): any;
188
205
  getEditableComponent(column: ITekGridColumn, row: IDictionary<any>): IComponentRender;
189
206
  isEdited(column: ITekGridColumn, row: IDictionary): boolean;
190
207
  isValid(column: ITekGridColumn, row: IDictionary, revalidate?: boolean): Promise<boolean>;
@@ -197,7 +214,7 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
197
214
  enterEdit(rowKey: string, columnName: string): void;
198
215
  cancelEditedRows(): Promise<void>;
199
216
  saveEditedRows(revalidate?: boolean): Promise<void[]>;
200
- reapplyCanEditRow(row: IDictionary<any>): void;
217
+ reapplyCanEditRow(row: IDictionary<any>): any;
201
218
  getCanEditRow(row: IDictionary<any>): boolean | undefined;
202
219
  getEditedRows(revalidate?: boolean, silent?: boolean): IDictionary<any>[];
203
220
  getEditedRow(row: IDictionary): IDictionary | undefined;
@@ -213,4 +230,5 @@ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid
213
230
  setSearch(search: string): Promise<any>;
214
231
  getAtomInstance<T>(key: keyof ITekGridAtoms): T;
215
232
  getAtomName(key: keyof ITekGridAtoms): string;
233
+ getFilterInputs(columnName?: string): Input[];
216
234
  }
@@ -0,0 +1,6 @@
1
+ import { ILoading as IZdLoading } from '@zeedhi/common';
2
+ export interface ILoading extends IZdLoading {
3
+ text?: string;
4
+ zIndex?: number | string;
5
+ image?: string;
6
+ }
@@ -0,0 +1,16 @@
1
+ import { Loading as ZdLoading } from '@zeedhi/common';
2
+ import { ILoading } from './interfaces';
3
+ /**
4
+ * Teknisa component
5
+ */
6
+ export declare class Loading extends ZdLoading implements ILoading {
7
+ /**
8
+ * Text shown in the loading overlay.
9
+ */
10
+ text: string;
11
+ /**
12
+ * Loading image.
13
+ */
14
+ image: string;
15
+ constructor(props: ILoading);
16
+ }
@@ -1,7 +1,7 @@
1
1
  import { TekUserInfo } from './tek-user-info';
2
2
  declare class TekUserInfoController {
3
3
  component: TekUserInfo;
4
- get versionInfo(): import("./interfaces").IVersionInfo | null;
4
+ get versionInfo(): import('./interfaces').IVersionInfo | null;
5
5
  constructor(component: TekUserInfo);
6
6
  get name(): string;
7
7
  set name(value: string);
@@ -15,8 +15,8 @@ declare class TekUserInfoController {
15
15
  get frontendItems(): string | never[];
16
16
  get backendItems(): string | never[];
17
17
  get modulesItems(): string | never[];
18
- get showReportError(): boolean;
19
- get showVersionInfo(): boolean;
20
- get showAbout(): boolean;
18
+ get showReportError(): any;
19
+ get showVersionInfo(): any;
20
+ get showAbout(): any;
21
21
  }
22
22
  export { TekUserInfoController };
@@ -0,0 +1 @@
1
+ export declare const extractProperties: (obj: any, props: string[]) => any;
@@ -1,3 +1,5 @@
1
1
  export * from './config/config';
2
+ export * from './extract-properties/extract-properties';
2
3
  export * from './is-filled-object/is-filled-object';
3
4
  export * from './is-nil';
5
+ export * from './report-filter/report-filter';
@@ -0,0 +1,12 @@
1
+ import { MetadataFilter } from '@zeedhi/common';
2
+ import { IDictionary } from '@zeedhi/core';
3
+ import { IDynamicFilterItem } from '../../components/tek-datasource/interfaces';
4
+ /**
5
+ * Class to translate a TekRestDatasource dynamicFilter to the ZhReports format
6
+ */
7
+ export declare class ReportFilter {
8
+ filter: IDictionary<IDynamicFilterItem[]>;
9
+ private messages;
10
+ constructor(filter: IDictionary);
11
+ build(): MetadataFilter;
12
+ }
package/package.json CHANGED
@@ -1,44 +1,64 @@
1
1
  {
2
2
  "name": "@zeedhi/teknisa-components-common",
3
- "version": "3.0.4",
3
+ "version": "3.2.0",
4
4
  "description": "Teknisa Components Common",
5
5
  "author": "Zeedhi <zeedhi@teknisa.com>",
6
6
  "license": "ISC",
7
7
  "main": "src/index.ts",
8
8
  "types": "dist/types/index.d.ts",
9
9
  "type": "module",
10
- "module": "dist/teknisa-components-common.js",
10
+ "module": "dist/teknisa-components-common.es.js",
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "exports": {
15
+ ".": {
16
+ "import": "./dist/teknisa-components-common.es.js",
17
+ "types": "./dist/types/index.d.ts"
18
+ }
19
+ },
11
20
  "packageManager": "npm@8.19.2",
12
21
  "publishConfig": {
13
22
  "access": "public"
14
23
  },
15
24
  "scripts": {
16
- "build": "rollup -c",
17
- "clean": "rm -rf ./dist",
18
- "test": "jest --verbose=false",
19
- "watch": "rollup -cw"
25
+ "dev": "vite",
26
+ "build": "tsc && vite build",
27
+ "test": "vitest run --coverage",
28
+ "test:watch": "vitest"
20
29
  },
21
30
  "dependencies": {
31
+ "lodash.clonedeep": "4.5.*",
22
32
  "lodash.debounce": "^4.0.8",
23
33
  "lodash.get": "^4.4.2",
24
34
  "lodash.merge": "^4.6.2"
25
35
  },
26
36
  "devDependencies": {
27
- "@rollup/plugin-commonjs": "^24.0.1",
28
- "@rollup/plugin-json": "^6.0.0",
29
- "@rollup/plugin-typescript": "^11.1.1",
37
+ "@types/lodash.clonedeep": "4.5.*",
30
38
  "@types/lodash.debounce": "^4.0.7",
31
39
  "@types/lodash.get": "^4.4.7",
32
40
  "@types/lodash.merge": "^4.6.7",
41
+ "@types/node": "^22.10.2",
42
+ "@vitest/coverage-v8": "^2.1.8",
33
43
  "@zeedhi/common": "^3.0.0",
34
- "@zeedhi/core": "^3.0.0"
44
+ "@zeedhi/core": "^3.0.0",
45
+ "@zeedhi/zd-user-info-common": "^3.0.0",
46
+ "@zeedhi/zd-user-info-vue": "^3.0.0",
47
+ "jsdom": "^27.1.0",
48
+ "lodash.debounce": "^4.0.8",
49
+ "typescript": "~5.6.2",
50
+ "vite": "^6.0.1",
51
+ "vite-plugin-dts": "^4.3.0",
52
+ "vitest": "^2.1.8"
35
53
  },
36
54
  "peerDependencies": {
37
55
  "@zeedhi/common": "^3.0.0",
38
- "@zeedhi/core": "^3.0.0"
56
+ "@zeedhi/core": "^3.0.0",
57
+ "@zeedhi/zd-user-info-common": "^3.0.0",
58
+ "@zeedhi/zd-user-info-vue": "^3.0.0"
39
59
  },
40
60
  "env": {
41
61
  "NODE_ENV": "production"
42
62
  },
43
- "gitHead": "c9110a75a584766dfe49c370bb10eedfceab2b64"
63
+ "gitHead": "43ffebef28c3efaf5e4f1a6947c37487c439f9a3"
44
64
  }
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1762963901733" clover="3.2.0">
3
- <project timestamp="1762963901733" name="All files">
4
- <metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0" elements="0" coveredelements="0" complexity="0" loc="0" ncloc="0" packages="0" files="0" classes="0"/>
5
- </project>
6
- </coverage>
@@ -1 +0,0 @@
1
- {}