@zeedhi/teknisa-components-common 3.0.0 → 3.0.2

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 (104) hide show
  1. package/.package.json +5 -2
  2. package/dist/teknisa-components-common.js +3722 -32
  3. package/dist/teknisa-components-common.min.js +3722 -32
  4. package/dist/types/components/index.d.ts +5 -0
  5. package/dist/types/components/tek-datasource/index.d.ts +3 -0
  6. package/dist/types/components/tek-datasource/interfaces.d.ts +16 -0
  7. package/dist/types/components/tek-datasource/tek-memory-datasource.d.ts +93 -0
  8. package/dist/types/components/tek-datasource/tek-rest-datasource.d.ts +95 -0
  9. package/dist/types/components/tek-grid/columns-searcher.d.ts +5 -0
  10. package/dist/types/components/tek-grid/dynamic-filter-datasource-factory.d.ts +6 -0
  11. package/dist/types/components/tek-grid/filter-helper.d.ts +7 -0
  12. package/dist/types/components/tek-grid/grid-filter-button.d.ts +29 -0
  13. package/dist/types/components/tek-grid/grouped-data-manager.d.ts +82 -0
  14. package/dist/types/components/tek-grid/grouped-data-selector.d.ts +7 -0
  15. package/dist/types/components/tek-grid/grouped-view-navigator.d.ts +14 -0
  16. package/dist/types/components/tek-grid/index.d.ts +18 -0
  17. package/dist/types/components/tek-grid/interfaces.d.ts +259 -0
  18. package/dist/types/components/tek-grid/keymap-grouped.d.ts +6 -0
  19. package/dist/types/components/tek-grid/layout-options.d.ts +39 -0
  20. package/dist/types/components/tek-grid/tek-grid-column.d.ts +42 -0
  21. package/dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.d.ts +8 -0
  22. package/dist/types/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.d.ts +13 -0
  23. package/dist/types/components/tek-grid/tek-grid-controller.d.ts +31 -0
  24. package/dist/types/components/tek-grid/tek-grid-events.d.ts +31 -0
  25. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.d.ts +17 -0
  26. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/index.d.ts +3 -0
  27. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.d.ts +5 -0
  28. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.d.ts +12 -0
  29. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/index.d.ts +2 -0
  30. package/dist/types/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.d.ts +22 -0
  31. package/dist/types/components/tek-grid/tek-grid.d.ts +216 -0
  32. package/dist/types/components/tek-user-info/TekUserInfoController.d.ts +22 -0
  33. package/dist/types/components/tek-user-info/interfaces.d.ts +27 -0
  34. package/dist/types/components/tek-user-info/tek-user-info-list.d.ts +32 -0
  35. package/dist/types/components/tek-user-info/tek-user-info.d.ts +37 -0
  36. package/dist/types/error/tek-grid-delete-rows-error.d.ts +7 -0
  37. package/dist/types/error/teknisa-common-error.d.ts +6 -0
  38. package/dist/types/index.d.ts +1 -0
  39. package/dist/types/utils/config/config.d.ts +7 -0
  40. package/dist/types/utils/index.d.ts +3 -0
  41. package/dist/types/utils/is-filled-object/is-filled-object.d.ts +2 -0
  42. package/dist/types/utils/is-nil.d.ts +1 -0
  43. package/package.json +2 -2
  44. package/src/components/index.ts +5 -12
  45. package/src/components/tek-datasource/index.ts +3 -0
  46. package/src/components/tek-datasource/interfaces.ts +36 -0
  47. package/src/components/tek-datasource/tek-memory-datasource.ts +314 -0
  48. package/src/components/tek-datasource/tek-rest-datasource.ts +224 -0
  49. package/src/components/tek-grid/columns-searcher.ts +22 -0
  50. package/src/components/tek-grid/dynamic-filter-datasource-factory.ts +20 -0
  51. package/src/components/tek-grid/filter-helper.ts +20 -0
  52. package/src/components/tek-grid/grid-filter-button.ts +419 -0
  53. package/src/components/tek-grid/grouped-data-manager.ts +448 -0
  54. package/src/components/tek-grid/grouped-data-selector.ts +40 -0
  55. package/src/components/tek-grid/grouped-view-navigator.ts +84 -0
  56. package/src/components/tek-grid/index.ts +18 -0
  57. package/src/components/tek-grid/interfaces.ts +329 -0
  58. package/src/components/tek-grid/keymap-grouped.ts +20 -0
  59. package/src/components/tek-grid/layout-options.ts +248 -0
  60. package/src/components/tek-grid/tek-grid-column.ts +193 -0
  61. package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button-controller.ts +28 -0
  62. package/src/components/tek-grid/tek-grid-columns-button/tek-grid-columns-button.ts +38 -0
  63. package/src/components/tek-grid/tek-grid-controller.ts +140 -0
  64. package/src/components/tek-grid/tek-grid-events.ts +105 -0
  65. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/button-option.ts +26 -0
  66. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/index.ts +3 -0
  67. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/interfaces.ts +6 -0
  68. package/src/components/tek-grid/tek-grid-toolbar-provider/export-options/multi-option.ts +85 -0
  69. package/src/components/tek-grid/tek-grid-toolbar-provider/index.ts +2 -0
  70. package/src/components/tek-grid/tek-grid-toolbar-provider/tek-grid-toolbar-provider.ts +365 -0
  71. package/src/components/tek-grid/tek-grid.ts +1118 -0
  72. package/src/components/tek-user-info/TekUserInfoController.ts +87 -0
  73. package/src/components/tek-user-info/interfaces.ts +21 -0
  74. package/src/components/tek-user-info/tek-user-info-list.ts +64 -0
  75. package/src/components/tek-user-info/tek-user-info.ts +337 -0
  76. package/src/error/tek-grid-delete-rows-error.ts +15 -0
  77. package/src/error/teknisa-common-error.ts +8 -0
  78. package/src/index.ts +1 -0
  79. package/src/utils/config/config.ts +8 -0
  80. package/src/utils/index.ts +3 -0
  81. package/src/utils/is-filled-object/is-filled-object.ts +5 -0
  82. package/src/utils/is-nil.ts +3 -0
  83. package/tests/unit/components/tek-grid/button-option.spec.ts +49 -0
  84. package/tests/unit/components/tek-grid/columns-searcher.spec.ts +112 -0
  85. package/tests/unit/components/tek-grid/dynamic-filter-datasource-factory.spec.ts +90 -0
  86. package/tests/unit/components/tek-grid/filter-helper.spec.ts +34 -130
  87. package/tests/unit/components/tek-grid/grid-filter-button.spec.ts +110 -241
  88. package/tests/unit/components/tek-grid/grouped-data-manager.spec.ts +593 -0
  89. package/tests/unit/components/tek-grid/grouped-data-selector.spec.ts +136 -0
  90. package/tests/unit/components/tek-grid/grouped-view-navigator.spec.ts +244 -0
  91. package/tests/unit/components/tek-grid/keymap-grouped.spec.ts +20 -0
  92. package/tests/unit/components/tek-grid/{layout_options.spec.ts → layout-options.spec.ts} +77 -35
  93. package/tests/unit/components/tek-grid/multi-option.spec.ts +139 -0
  94. package/tests/unit/components/tek-grid/{grid-column.spec.ts → tek-grid-column.spec.ts} +48 -6
  95. package/tests/unit/components/tek-grid/{grid-columns-button.spec.ts → tek-grid-columns-button.spec.ts} +42 -9
  96. package/tests/unit/components/tek-grid/tek-grid-controller.spec.ts +253 -0
  97. package/tests/unit/components/tek-grid/tek-grid-events.spec.ts +186 -0
  98. package/tests/unit/components/tek-grid/tek-grid-toolbar-provider.spec.ts +34 -0
  99. package/tests/unit/components/tek-grid/tek-grid.spec.ts +895 -0
  100. package/tests/unit/components/tek-grid/tek-memory-datasource.spec.ts +482 -0
  101. package/tests/unit/components/tek-grid/tek-rest-datasource.spec.ts +422 -0
  102. package/dist/types/error/delete-rows-error.d.ts +0 -6
  103. package/src/error/delete-rows-error.ts +0 -11
  104. package/tests/unit/components/tek-grid/grid.spec.ts +0 -2701
@@ -0,0 +1,39 @@
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
+ }
@@ -0,0 +1,42 @@
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
+ }
@@ -0,0 +1,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
+ }
@@ -0,0 +1,13 @@
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
+ }
@@ -0,0 +1,17 @@
1
+ import { IComponent } from '@zeedhi/common';
2
+ import { IExportable, ITekGridExportConfig } from '../../interfaces';
3
+ import { IExportOption } from './interfaces';
4
+ export declare class ButtonOption implements IExportOption {
5
+ private config;
6
+ constructor(config: ITekGridExportConfig);
7
+ buildComponent(grid: IComponent & IExportable): {
8
+ label: string | undefined;
9
+ iconName: string | undefined;
10
+ name: string;
11
+ component: string;
12
+ flat: boolean;
13
+ events: {
14
+ click: () => any;
15
+ };
16
+ };
17
+ }
@@ -0,0 +1,3 @@
1
+ export * from './button-option';
2
+ export * from './multi-option';
3
+ export * from './interfaces';
@@ -0,0 +1,5 @@
1
+ import { IComponent, IComponentRender } from '@zeedhi/common';
2
+ import { IExportable } from '../../interfaces';
3
+ export interface IExportOption {
4
+ buildComponent: (grid: IComponent & IExportable) => IComponentRender;
5
+ }
@@ -0,0 +1,12 @@
1
+ import { IComponent, IRow } from '@zeedhi/common';
2
+ import { IExportable, ITekGridExportConfig } from '../../interfaces';
3
+ import { IExportOption } from './interfaces';
4
+ export declare class MultiOption implements IExportOption {
5
+ private config;
6
+ constructor(config: ITekGridExportConfig);
7
+ private formatName;
8
+ private buildTooltip;
9
+ private buildButton;
10
+ private buildDivider;
11
+ buildComponent(grid: IComponent & IExportable): IRow;
12
+ }
@@ -0,0 +1,2 @@
1
+ export * from './export-options';
2
+ export * from './tek-grid-toolbar-provider';
@@ -0,0 +1,22 @@
1
+ import { IEventParam } from '@zeedhi/core';
2
+ import { IComponentRender, IGridEditable } from '@zeedhi/common';
3
+ import { IExportable, ISupportsToolbar, ITekGridAtoms, ITekGridToolbarProvider } from '../interfaces';
4
+ type GridEditableWithToolbar = IGridEditable & ISupportsToolbar & IExportable;
5
+ export declare class TekGridToolbarProvider implements ITekGridToolbarProvider {
6
+ private grid;
7
+ private groupsVisibility;
8
+ constructor(grid: GridEditableWithToolbar, groupsVisibility: 'hide' | 'show');
9
+ protected atoms: ITekGridAtoms;
10
+ getAtomName(key: keyof ITekGridAtoms): string;
11
+ getAtomInstance<T>(key: keyof ITekGridAtoms): T;
12
+ private getOption;
13
+ private getExportConfigButtons;
14
+ private hideButtonClick;
15
+ private cancelChanges;
16
+ private saveChanges;
17
+ private addButtonClick;
18
+ private deleteButtonClick;
19
+ reloadGrid({ event }: IEventParam<any>): void;
20
+ getProperties(): IComponentRender[];
21
+ }
22
+ export {};
@@ -0,0 +1,216 @@
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';
4
+ import { TekGridColumn } from './tek-grid-column';
5
+ export declare class TekGrid extends Iterable<TekGridColumn> implements ITekGrid {
6
+ private tableActionBuilder;
7
+ private iterableTable;
8
+ private dataSelector;
9
+ private tekGridEvents;
10
+ private dataNavigator;
11
+ private groupedViewNavigator;
12
+ private keyMapMerger;
13
+ private dataEditor;
14
+ private columnsSearcher;
15
+ private groupedDataManager;
16
+ private tekGridToolbarProvider;
17
+ title: string;
18
+ addButton: boolean;
19
+ deleteButton: 'none' | 'currentRow' | 'selection';
20
+ actions: IComponentRender[];
21
+ showEditButtons: boolean;
22
+ filterButton: boolean;
23
+ showSearch: boolean;
24
+ columnFilterButton: boolean;
25
+ columnsButton: boolean;
26
+ mainGrid: boolean;
27
+ columnsButtonIgnore: string[];
28
+ /**
29
+ * Enables column dragging
30
+ * @public
31
+ */
32
+ dragColumns: boolean;
33
+ /**
34
+ * Enables column resizing
35
+ * @public
36
+ */
37
+ resizeColumns: boolean;
38
+ /**
39
+ * Enables layout saving
40
+ * @public
41
+ */
42
+ showLayoutOptions: boolean;
43
+ xlsDefaultType?: string;
44
+ modalFilterProps: IModalFilterProps;
45
+ /**
46
+ * Show export button
47
+ */
48
+ showExport: boolean;
49
+ /**
50
+ * Show refresh button
51
+ */
52
+ showReload: boolean;
53
+ /**
54
+ * Export config
55
+ */
56
+ exportConfig: ITekGridExportConfig[];
57
+ /**
58
+ * Actions to overwrite the default export config
59
+ */
60
+ exportActions?: IComponentRender[];
61
+ /**
62
+ * Groups should be opened by default after building
63
+ */
64
+ groupsOpened: boolean;
65
+ /**
66
+ * Show Total summary
67
+ */
68
+ showSummaryTotal: boolean;
69
+ editNewRowsOnly: boolean;
70
+ protected keyShortcutKeyMapping: any;
71
+ showCheckboxAllFilter: boolean;
72
+ defaultFilter: IDictionary;
73
+ toolbarOpened: boolean;
74
+ reportTitle: string;
75
+ editing: boolean;
76
+ currentColumn: TekGridColumn | null;
77
+ selectedRows: IDictionary<any>[];
78
+ selectionState: {
79
+ allSelected: boolean;
80
+ except: IDictionary<any>[];
81
+ };
82
+ rowStyleConditions?: (row: IDictionary) => IDictionary;
83
+ selectAllPages: boolean;
84
+ selectable: boolean;
85
+ disableSelection?: (args: {
86
+ row: IDictionary<any>;
87
+ component: IGrid;
88
+ }) => boolean;
89
+ cellSelection: boolean;
90
+ toolbarSlot: IComponentRender[];
91
+ footerSlot: IComponentRender[];
92
+ noResultsText: string;
93
+ noResultSlot: IComponentRender[];
94
+ errorSlot: IComponentRender[];
95
+ dense: boolean;
96
+ headerBackground: string;
97
+ headerCellTextColor: string;
98
+ height: string | number;
99
+ loadingText: string;
100
+ maxHeight: string | number;
101
+ maxWidth: string | number;
102
+ minHeight: string | number;
103
+ minWidth: string | number;
104
+ noDataText: string;
105
+ noDataSlot: IComponentRender[];
106
+ showFooter: boolean;
107
+ showHeader: boolean;
108
+ showSelectAll: boolean;
109
+ width: string | number;
110
+ backgroundColor: string;
111
+ canEditRow?: ((args: {
112
+ row: IDictionary<any>;
113
+ component: IGridEditable;
114
+ }) => boolean) | undefined;
115
+ showCancelColumn: boolean;
116
+ doubleClickEdit: boolean;
117
+ singleEdit: boolean;
118
+ editingNewRows: boolean;
119
+ private defaultLazy;
120
+ private toolbarSlotProps;
121
+ filterRelationsDatasource?: Datasource;
122
+ filterOperationsDatasource?: Datasource;
123
+ /**
124
+ * TekGrid class constructor
125
+ * @param props TekGrid properties
126
+ */
127
+ constructor(props: ITekGridProps);
128
+ protected initializeDatasource(props: IIterableProps): void;
129
+ columnHasFilter(columnName: string): boolean;
130
+ registerTask(task: Promise<any>): void;
131
+ loadAfterTasks(): Promise<void>;
132
+ calcSummary(column: TekGridColumn, columnNamesummary: ITekGridSummary, row: IDictionary): void;
133
+ private getDefaultLazy;
134
+ initializeGrouping(lazyLoad: boolean): void;
135
+ updateGrouping(): void;
136
+ updateGroupedData(lazyLoad: boolean): Promise<void>;
137
+ buildGroupedData(): void;
138
+ openGroup(group: IDictionary<any>): void;
139
+ isItemVisible(row: IDictionary<any>): any;
140
+ isGrouped(): boolean;
141
+ isColumnSearchable(column: TekGridColumn): boolean;
142
+ getGroupedData(): IDictionary<any>[];
143
+ directionalLeft(param: IEventParam<any>): void;
144
+ directionalRight(param: IEventParam<any>): void;
145
+ getReport(): Promise<Window | null>;
146
+ setViewUpdateFixedColumns(fn: () => void): void;
147
+ setViewUpdateScrollData(fn: () => void): void;
148
+ onCreated(): void;
149
+ private createDynamicFilterDatasources;
150
+ onMounted(element: HTMLElement): void;
151
+ onBeforeDestroy(): void;
152
+ createColumn(column: ITekGridColumn): TekGridColumn;
153
+ getConditionalProps({ row, column }: {
154
+ row: IDictionary;
155
+ column: TekGridColumn;
156
+ }): Partial<IComponentRender>;
157
+ changeOrder(sortBy: {
158
+ key: string;
159
+ order: 'asc' | 'desc';
160
+ }[]): Promise<void>;
161
+ selectCell(row: IDictionary, column: TekGridColumn): void;
162
+ reapplyRowStyleConditions(row: IDictionary): IDictionary;
163
+ getRowStyleConditions(row: IDictionary): IDictionary;
164
+ deleteRows(): Promise<any[]>;
165
+ selectAll(isSelected: boolean): void;
166
+ toggleRow(row: IDictionary): void;
167
+ selectRow(row: IDictionary, select: boolean): void;
168
+ callDisableSelection(row: IDictionary): boolean;
169
+ selectClick(row: IDictionary<any>, isSelected: boolean, event: Event, element?: HTMLElement): void;
170
+ selectAllClick(isSelected: boolean, event: Event, element?: HTMLElement): void;
171
+ navigatePageUp(): void;
172
+ navigatePageDown(): void;
173
+ setViewNavigate(viewNavigate: (direction: Direction, event?: Event) => void): void;
174
+ navigateLeft(params: IEventParam<any>): void;
175
+ navigateRight(params: IEventParam<any>): void;
176
+ navigateUp(): void;
177
+ navigateDown(): void;
178
+ navigateDatasource(direction: VerticalDirection): void;
179
+ getActionComponent(actionComponent: IComponent, column: TekGridColumn, row: IDictionary, parentPath?: string): IComponent;
180
+ addCancelColumn(): void;
181
+ getCancelColumnProps(): IGridColumnEditable;
182
+ isAdded(row: IDictionary): boolean;
183
+ cancelAddedRow(key: string | number): Promise<any>;
184
+ cancelAddedRows(): Promise<void>;
185
+ getAddedRows(): IDictionary<any>[];
186
+ addNewRow(row: IDictionary, position?: 'end' | 'start'): Promise<void>;
187
+ getVisibleValue(row: IDictionary, column: ITekGridColumn): any;
188
+ getEditableComponent(column: ITekGridColumn, row: IDictionary<any>): IComponentRender;
189
+ isEdited(column: ITekGridColumn, row: IDictionary): boolean;
190
+ isValid(column: ITekGridColumn, row: IDictionary, revalidate?: boolean): Promise<boolean>;
191
+ checkValid(column: ITekGridColumn, row: IDictionary): boolean;
192
+ isGridValid(revalidate?: boolean): boolean;
193
+ getComponent<T>(key: string, columnName: string): T;
194
+ updateRow(newRow: IDictionary): void;
195
+ updateCell(rowKey: string, columnName: string, value: any): void;
196
+ setViewEnterEdit(fn: ((rowKey: string, columnName: string) => void) | null): void;
197
+ enterEdit(rowKey: string, columnName: string): void;
198
+ cancelEditedRows(): Promise<void>;
199
+ saveEditedRows(revalidate?: boolean): Promise<void[]>;
200
+ reapplyCanEditRow(row: IDictionary<any>): void;
201
+ getCanEditRow(row: IDictionary<any>): boolean | undefined;
202
+ getEditedRows(revalidate?: boolean, silent?: boolean): IDictionary<any>[];
203
+ getEditedRow(row: IDictionary): IDictionary | undefined;
204
+ rowClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void;
205
+ rowDoubleClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void;
206
+ cellDoubleClick(row: IDictionary<any>, column: TekGridColumn, event: Event, element?: HTMLElement): void;
207
+ inlineEdit(row: IDictionary, column: TekGridColumn, event?: Event, element?: HTMLElement): void;
208
+ cellClick(row: IDictionary<any>, column: TekGridColumn, event: Event, element?: HTMLElement): void;
209
+ cellClickEvent(row: IDictionary<any>, column: TekGridColumn, event: Event, element?: HTMLElement): void;
210
+ groupRowClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void;
211
+ groupRowDoubleClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void;
212
+ selectGroupClick(row: IDictionary<any>, isSelected: boolean, event: Event, element?: HTMLElement): void;
213
+ setSearch(search: string): Promise<any>;
214
+ getAtomInstance<T>(key: keyof ITekGridAtoms): T;
215
+ getAtomName(key: keyof ITekGridAtoms): string;
216
+ }
@@ -0,0 +1,22 @@
1
+ import { TekUserInfo } from './tek-user-info';
2
+ declare class TekUserInfoController {
3
+ component: TekUserInfo;
4
+ get versionInfo(): import("./interfaces").IVersionInfo | null;
5
+ constructor(component: TekUserInfo);
6
+ get name(): string;
7
+ set name(value: string);
8
+ get version(): string;
9
+ set version(value: string);
10
+ get hasDefaultEmail(): boolean;
11
+ get hasAboutImage(): boolean;
12
+ mergeText(name: string, version: string): string;
13
+ get mainVersion(): string;
14
+ protected getItems(tab: 'frontend' | 'backend' | 'modules'): string | never[];
15
+ get frontendItems(): string | never[];
16
+ get backendItems(): string | never[];
17
+ get modulesItems(): string | never[];
18
+ get showReportError(): boolean;
19
+ get showVersionInfo(): boolean;
20
+ get showAbout(): boolean;
21
+ }
22
+ export { TekUserInfoController };
@@ -0,0 +1,27 @@
1
+ import { IList } from '@zeedhi/common';
2
+ import { IUserInfo } from '@zeedhi/zd-user-info-common';
3
+ export interface IVersionInfo {
4
+ name: string;
5
+ version: string;
6
+ frontend: {
7
+ name: string;
8
+ version: string;
9
+ }[];
10
+ backend: {
11
+ name: string;
12
+ version: string;
13
+ }[];
14
+ modules: {
15
+ name: string;
16
+ version: string;
17
+ }[];
18
+ }
19
+ export interface ITekUserInfo extends IUserInfo {
20
+ aboutImage?: string;
21
+ defaultEmail?: string;
22
+ versionInfo?: IVersionInfo | null;
23
+ versionUrl?: string;
24
+ }
25
+ export interface ITekUserInfoList extends IList {
26
+ parentName?: string;
27
+ }
@@ -0,0 +1,32 @@
1
+ import { List } from '@zeedhi/common';
2
+ import { ITekUserInfoList } from './interfaces';
3
+ export declare class TekUserInfoList extends List implements ITekUserInfoList {
4
+ /**
5
+ * Name of the user info component
6
+ */
7
+ parentName: string;
8
+ dense: boolean;
9
+ constructor(props: ITekUserInfoList);
10
+ onCreated(): void;
11
+ protected getItems(): ({
12
+ name: string;
13
+ component: string;
14
+ title: string;
15
+ subtitle: string;
16
+ isVisible: string;
17
+ cssClass: string;
18
+ prependIcon?: undefined;
19
+ events?: undefined;
20
+ } | {
21
+ name: string;
22
+ component: string;
23
+ title: string;
24
+ prependIcon: string;
25
+ cssClass: string;
26
+ isVisible: string;
27
+ events: {
28
+ click: () => void;
29
+ };
30
+ subtitle?: undefined;
31
+ })[];
32
+ }
@@ -0,0 +1,37 @@
1
+ import { Button, IComponentRender, Modal } from '@zeedhi/common';
2
+ import { IEventParam } from '@zeedhi/core';
3
+ import { ITekUserInfo, IVersionInfo } from './interfaces';
4
+ import { UserInfo } from '@zeedhi/zd-user-info-common';
5
+ export declare class TekUserInfo extends UserInfo implements ITekUserInfo {
6
+ aboutModal?: Modal;
7
+ reportModal?: Modal;
8
+ /**
9
+ * Data about the application version
10
+ */
11
+ versionInfo: IVersionInfo | null;
12
+ /**
13
+ * Default email address to be defined in the Report Bug form
14
+ */
15
+ defaultEmail: string;
16
+ /**
17
+ * Url from which the version info will be retrieved
18
+ */
19
+ versionUrl: string;
20
+ /**
21
+ * Path to the image to be shown on about modal
22
+ */
23
+ aboutImage: string;
24
+ protected propBottomSlot?: IComponentRender[];
25
+ constructor(props: ITekUserInfo);
26
+ protected getBottomSlot(): IComponentRender[];
27
+ onAboutClick(): void;
28
+ protected getVersionTree(tab: 'frontend' | 'backend' | 'modules'): {
29
+ name: string;
30
+ component: string;
31
+ text: string;
32
+ }[];
33
+ onReportClick(): void;
34
+ onSendReport({ event, element }: IEventParam<Button>): Promise<void>;
35
+ onCreated(): void;
36
+ onMounted(element: any): Promise<void>;
37
+ }
@@ -0,0 +1,7 @@
1
+ import { TeknisaCommonError } from './teknisa-common-error';
2
+ /**
3
+ * TekGridDelete rows error
4
+ */
5
+ export declare class TekGridDeleteRowsError extends TeknisaCommonError {
6
+ constructor();
7
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Base Teknisa error
3
+ */
4
+ export declare class TeknisaCommonError extends Error {
5
+ constructor(message: string);
6
+ }
@@ -1 +1,2 @@
1
1
  export * from './components';
2
+ export * from './utils';
@@ -0,0 +1,7 @@
1
+ import { IConfig } from '@zeedhi/core';
2
+ export interface ITekConfig extends IConfig {
3
+ saveGridLayoutsEndPoint?: string;
4
+ loadGridLayoutsEndPoint?: string;
5
+ selectAllCompatibilityMode?: boolean;
6
+ gridShowCheckboxAllFilter?: boolean;
7
+ }
@@ -0,0 +1,3 @@
1
+ export * from './config/config';
2
+ export * from './is-filled-object/is-filled-object';
3
+ export * from './is-nil';
@@ -0,0 +1,2 @@
1
+ declare const isFilledObject: (obj: unknown) => obj is object;
2
+ export { isFilledObject };
@@ -0,0 +1 @@
1
+ export declare function isNil(value: unknown): value is null | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeedhi/teknisa-components-common",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "Teknisa Components Common",
5
5
  "author": "Zeedhi <zeedhi@teknisa.com>",
6
6
  "license": "ISC",
@@ -40,5 +40,5 @@
40
40
  "env": {
41
41
  "NODE_ENV": "production"
42
42
  },
43
- "gitHead": "8f96c641dd2a27edfd63eadf165843c9499d32b0"
43
+ "gitHead": "0a89bda111d18a0910bfed7f1cd316b1ab9a9114"
44
44
  }
@@ -89,20 +89,13 @@ export * from './tek-breadcrumb-header/interfaces';
89
89
  // export * from './tek-notifications/notifications';
90
90
  // export * from './tek-notifications/interfaces';
91
91
 
92
- // export * from './tek-grid/interfaces';
93
- // export * from './tek-grid/grid';
94
- // export * from './tek-grid/grid-column';
95
- // export * from './tek-grid/grid-columns-button';
96
- // export * from './tek-grid/layout-options';
97
- // export * from './tek-grid/filter-helper';
92
+ export * from './tek-grid';
98
93
 
99
- // export * from './tek-datasource/interfaces';
100
- // export * from './tek-datasource/rest-datasource';
101
- // export * from './tek-datasource/memory-datasource';
94
+ export * from './tek-datasource';
102
95
 
103
96
  // export * from './tek-tree-grid/interfaces';
104
97
  // export * from './tek-tree-grid/tree-grid';
105
98
 
106
- // export * from './tek-user-info/interfaces';
107
- // export * from './tek-user-info/tek-user-info';
108
- // export * from './tek-user-info/tek-user-info-list';
99
+ export * from './tek-user-info/interfaces';
100
+ export * from './tek-user-info/tek-user-info';
101
+ export * from './tek-user-info/tek-user-info-list';