@zeedhi/teknisa-components-vuetify 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 (92) hide show
  1. package/.package.json +49 -0
  2. package/dist/teknisa-vuetify.css +1 -0
  3. package/dist/teknisa-vuetify.js +3882 -0
  4. package/environments.json +16 -0
  5. package/package.json +18 -17
  6. package/src/components/index.ts +38 -0
  7. package/src/components/public.ts +41 -0
  8. package/src/components/tek-breadcrumb-header/TekBreadcrumbHeader.ts +34 -0
  9. package/src/components/tek-breadcrumb-header/TekBreadcrumbHeader.vue +75 -0
  10. package/src/components/tek-grid/TekGrid.ts +318 -0
  11. package/src/components/tek-grid/TekGrid.vue +235 -0
  12. package/src/components/tek-grid/column-filter/TekGridColumnFilter.ts +244 -0
  13. package/src/components/tek-grid/column-filter/TekGridColumnFilter.vue +93 -0
  14. package/src/components/tek-grid/column-header/TekGridHeaderRow.ts +147 -0
  15. package/src/components/tek-grid/column-header/TekGridHeaderRow.vue +78 -0
  16. package/src/components/tek-grid/columns-button/TekGridColumnsButton.ts +96 -0
  17. package/src/components/tek-grid/columns-button/TekGridColumnsButton.vue +273 -0
  18. package/src/components/tek-grid/columns-button/TekGridColumnsOptionsController.ts +470 -0
  19. package/src/components/tek-grid/columns-button/TekGridColumnsOptionsModal.ts +513 -0
  20. package/src/components/tek-grid/filter-button/TekGridFilterButton.ts +47 -0
  21. package/src/components/tek-grid/filter-button/TekGridFilterButton.vue +28 -0
  22. package/src/components/tek-grid/indentation/TekGridIndentation.ts +21 -0
  23. package/src/components/tek-grid/indentation/TekGridIndentation.vue +33 -0
  24. package/src/components/tek-grid/layout-options/TekGridLayoutOptions.ts +119 -0
  25. package/src/components/tek-grid/layout-options/TekGridLayoutOptions.vue +172 -0
  26. package/src/components/tek-grid/row/TekGridFooterRow.ts +62 -0
  27. package/src/components/tek-grid/row/TekGridFooterRow.vue +64 -0
  28. package/src/components/tek-grid/row/TekGridGroupRow.ts +65 -0
  29. package/src/components/tek-grid/row/TekGridGroupRow.vue +65 -0
  30. package/src/components/tek-user-info/TekUserInfo.ts +51 -0
  31. package/src/components/tek-user-info/TekUserInfo.vue +53 -0
  32. package/src/components/tek-user-info/TekUserInfoList.ts +39 -0
  33. package/src/components/tek-user-info/TekUserInfoList.vue +12 -0
  34. package/src/composables/useTableLayout.ts +290 -0
  35. package/src/index.ts +29 -0
  36. package/src/shims-vue.d.ts +6 -0
  37. package/src/styles/index.scss +0 -0
  38. package/src/utils/isArrayOperation.ts +5 -0
  39. package/types/components/index.d.ts +5 -3
  40. package/types/components/public.d.ts +5 -18
  41. package/types/components/tek-breadcrumb-header/TekBreadcrumbHeader.d.ts +1137 -12
  42. package/types/components/tek-breadcrumb-header/TekBreadcrumbHeader.ts.d.ts +1138 -0
  43. package/types/components/tek-grid/TekGrid.d.ts +7208 -86
  44. package/types/components/tek-grid/TekGrid.ts.d.ts +7211 -0
  45. package/types/components/tek-grid/column-filter/TekGridColumnFilter.d.ts +130 -0
  46. package/types/components/tek-grid/column-filter/TekGridColumnFilter.ts.d.ts +130 -0
  47. package/types/components/tek-grid/column-header/TekGridHeaderRow.d.ts +225 -0
  48. package/types/components/tek-grid/column-header/TekGridHeaderRow.ts.d.ts +225 -0
  49. package/types/components/tek-grid/columns-button/TekGridColumnsButton.d.ts +2432 -0
  50. package/types/components/tek-grid/columns-button/TekGridColumnsButton.ts.d.ts +2432 -0
  51. package/types/components/tek-grid/{TekGridColumnsOptionsController.d.ts → columns-button/TekGridColumnsOptionsController.d.ts} +7 -8
  52. package/types/components/tek-grid/{TekGridColumnsOptionsModal.d.ts → columns-button/TekGridColumnsOptionsModal.d.ts} +2 -3
  53. package/types/components/tek-grid/filter-button/TekGridFilterButton.d.ts +2920 -0
  54. package/types/components/tek-grid/filter-button/TekGridFilterButton.ts.d.ts +2920 -0
  55. package/types/components/tek-grid/indentation/TekGridIndentation.d.ts +32 -0
  56. package/types/components/tek-grid/indentation/TekGridIndentation.ts.d.ts +32 -0
  57. package/types/components/tek-grid/layout-options/TekGridLayoutOptions.d.ts +1893 -0
  58. package/types/components/tek-grid/layout-options/TekGridLayoutOptions.ts.d.ts +1893 -0
  59. package/types/components/tek-grid/row/TekGridFooterRow.d.ts +90 -0
  60. package/types/components/tek-grid/row/TekGridFooterRow.ts.d.ts +90 -0
  61. package/types/components/tek-grid/row/TekGridGroupRow.d.ts +87 -0
  62. package/types/components/tek-grid/row/TekGridGroupRow.ts.d.ts +87 -0
  63. package/types/components/tek-user-info/TekUserInfo.d.ts +1937 -10
  64. package/types/components/tek-user-info/TekUserInfo.ts.d.ts +1940 -0
  65. package/types/components/tek-user-info/TekUserInfoList.d.ts +1014 -8
  66. package/types/components/tek-user-info/TekUserInfoList.ts.d.ts +1015 -0
  67. package/types/composables/useTableLayout.d.ts +26 -0
  68. package/types/index.d.ts +2 -2
  69. package/types/utils/isArrayOperation.d.ts +2 -0
  70. package/dist/tek-components-vuetify.esm.js +0 -8924
  71. package/dist/tek-components-vuetify.umd.js +0 -8949
  72. package/types/components/crud/TekCrudAddButton.d.ts +0 -14
  73. package/types/components/crud/TekCrudButton.d.ts +0 -12
  74. package/types/components/crud/TekCrudCancelButton.d.ts +0 -12
  75. package/types/components/crud/TekCrudDeleteButton.d.ts +0 -14
  76. package/types/components/crud/TekCrudForm.d.ts +0 -9
  77. package/types/components/crud/TekCrudSaveButton.d.ts +0 -11
  78. package/types/components/tek-card-title/TekCardTitle.d.ts +0 -16
  79. package/types/components/tek-drag-grid/TekDragGrid.d.ts +0 -20
  80. package/types/components/tek-grid/TekGridColumnsButton.d.ts +0 -16
  81. package/types/components/tek-grid/TekGridFilterButton.d.ts +0 -27
  82. package/types/components/tek-grid/TekGridLayoutOptions.d.ts +0 -19
  83. package/types/components/tek-grid/subcomponents/TekGridCellIdentation.d.ts +0 -9
  84. package/types/components/tek-grid/subcomponents/TekGridColumnFilter.d.ts +0 -16
  85. package/types/components/tek-grid/subcomponents/TekGridHeaderIndentation.d.ts +0 -5
  86. package/types/components/tek-image/TekImage.d.ts +0 -20
  87. package/types/components/tek-iterable-carousel/TekIterableCarousel.d.ts +0 -11
  88. package/types/components/tek-iterable-component-render/TekIterableComponentRender.d.ts +0 -9
  89. package/types/components/tek-loading/TekLoading.d.ts +0 -9
  90. package/types/components/tek-notifications/TekNotifications.d.ts +0 -12
  91. package/types/components/tek-product-card/TekProductCard.d.ts +0 -24
  92. package/types/components/tek-tree-grid/TekTreeGrid.d.ts +0 -72
@@ -0,0 +1,290 @@
1
+ import { IIterable } from '@zeedhi/common';
2
+ import { IDynamicFilterItem, IGroupedDataManager,
3
+ ITekGridLayout,
4
+ ITekGridLayoutColumn,
5
+ TekFilterHelper,
6
+ TekGridColumn,
7
+ TekRestDatasource, } from '@zeedhi/teknisa-components-common';
8
+ import { IDictionary, Utils } from '@zeedhi/core';
9
+ import cloneDeep from 'lodash.clonedeep';
10
+ import { NotProvidedError } from '@zeedhi/vuetify';
11
+ import { ComputedRef, UnwrapNestedRefs, computed, inject, nextTick, provide } from 'vue';
12
+
13
+ export type DefaultLayout = {
14
+ originalDatasourceOrder: string[];
15
+ originalDatasourceFilter: IDictionary<any>;
16
+ originalColumnProps: ITekGridLayoutColumn[];
17
+ originalDatasourceDynamicFilter: IDictionary<IDynamicFilterItem[]>;
18
+ };
19
+
20
+ export type ApplyLayout = (params: {
21
+ layout?: ITekGridLayout;
22
+ defaultLayout: DefaultLayout;
23
+ changeLayoutCallback: (layout: ITekGridLayout) => void;
24
+ }) => void;
25
+ export type GetColumnElements = () => IDictionary<Element>;
26
+ export type GetTableWidth = () => string;
27
+
28
+ export function useTableLayout() {
29
+ const applyLayout = inject<ApplyLayout>('applyLayout');
30
+ const getColumnElements = inject<GetColumnElements>('getColumnElements');
31
+ const getTableWidth = inject<GetTableWidth>('getTableWidth');
32
+
33
+ if (!applyLayout) {
34
+ throw new NotProvidedError('applyLayout');
35
+ }
36
+
37
+ if (!getColumnElements) {
38
+ throw new NotProvidedError('getColumnElements');
39
+ }
40
+
41
+ if (!getTableWidth) {
42
+ throw new NotProvidedError('getTableWidth');
43
+ }
44
+
45
+ return { applyLayout, getColumnElements, getTableWidth };
46
+ }
47
+
48
+ export function provideTableLayout<T extends IIterable<TekGridColumn> & IGroupedDataManager>({
49
+ instance,
50
+ rootEl,
51
+ }: {
52
+ instance: UnwrapNestedRefs<T>;
53
+ rootEl: ComputedRef<HTMLElement | undefined>;
54
+ }) {
55
+ const tableElement = rootEl.value?.querySelector('table');
56
+
57
+ const columnDictionary = computed(() => getColumnDictionary(instance.columns));
58
+
59
+ const datasourceDynamicFilter = () => {
60
+ const datasource = instance.datasource;
61
+ if (datasource instanceof TekRestDatasource) return datasource.dynamicFilter;
62
+ return {};
63
+ };
64
+
65
+ const getColumnDictionary = (columns: UnwrapNestedRefs<TekGridColumn>[]) => {
66
+ const columnDictionary: IDictionary<UnwrapNestedRefs<TekGridColumn>> = {};
67
+ columns.forEach((column: UnwrapNestedRefs<TekGridColumn>) => {
68
+ columnDictionary[column.name] = column;
69
+ });
70
+ return columnDictionary;
71
+ };
72
+
73
+ const addMissingColumns = (layout: ITekGridLayout) => {
74
+ const layoutColumnNames: string[] = layout.columns?.map((column) => column.name) || [];
75
+ const columnNames: string[] = Object.keys(columnDictionary.value);
76
+ columnNames.forEach((columnName) => {
77
+ if (!layoutColumnNames.includes(columnName)) {
78
+ layout.columns?.push(columnDictionary.value[columnName]);
79
+ }
80
+ });
81
+ };
82
+
83
+ const setHelperValue = (column: any, value: string | IDictionary<any>) => {
84
+ if (column instanceof TekGridColumn) {
85
+ if (!Array.isArray(column.filterProps) && typeof value === 'string') {
86
+ column.filterProps.helperValue = value;
87
+ } else if (Array.isArray(column.filterProps) && Array.isArray(value)) {
88
+ column.filterProps.forEach((prop: any, index: number) => {
89
+ prop.value = value[index];
90
+ });
91
+ }
92
+ }
93
+ };
94
+
95
+ const getHelperValues = (dynamicFilter: IDictionary<IDynamicFilterItem[]>, columns: any[]) => {
96
+ const filter = cloneDeep(dynamicFilter);
97
+ Object.keys(filter).forEach((columnName) => {
98
+ const filterOptions = filter[columnName];
99
+ const column = columns[columns.findIndex((col) => col.name === columnName)];
100
+ const { filterHelperValue } = column;
101
+
102
+ filterOptions.forEach((item) => {
103
+ if (['IN', 'NOT_IN', 'BETWEEN'].includes(item.operation) && !Array.isArray(item.value)) {
104
+ item.value = item.value.split(';');
105
+ }
106
+
107
+ let helperValue = '';
108
+ if (!Array.isArray(filterHelperValue)) {
109
+ helperValue = filterHelperValue;
110
+ } else {
111
+ Object.keys(filterHelperValue).forEach((key: any) => {
112
+ const value = filterHelperValue[key] || '';
113
+ if (`${item.relation || 'AND'}-${item.operation || 'CONTAINS'}` === key) {
114
+ helperValue = value;
115
+ }
116
+ });
117
+ }
118
+
119
+ if (helperValue) {
120
+ const columnObj = instance.getColumn(column.name);
121
+ item.value = TekFilterHelper.getValue(helperValue, columnObj as any);
122
+ }
123
+ });
124
+ });
125
+
126
+ return filter;
127
+ };
128
+
129
+ /**
130
+ * Applies the default grid layout
131
+ * @returns a boolean to indicate whether the group parameters changed
132
+ */
133
+ const applyDefaultLayout = (defaultLayout: DefaultLayout) => {
134
+ let groupParamsChanged = false;
135
+
136
+ instance.datasource.order = [...defaultLayout.originalDatasourceOrder];
137
+ instance.datasource.filter = { ...defaultLayout.originalDatasourceFilter };
138
+ if (instance.datasource instanceof TekRestDatasource) {
139
+ instance.datasource.dynamicFilter = getHelperValues(
140
+ defaultLayout.originalDatasourceDynamicFilter,
141
+ defaultLayout.originalColumnProps,
142
+ );
143
+ }
144
+ instance.columns = defaultLayout.originalColumnProps.map((defaultColumn) => {
145
+ const col = columnDictionary.value[defaultColumn.name];
146
+
147
+ groupParamsChanged =
148
+ groupParamsChanged ||
149
+ col.grouped !== defaultColumn.grouped ||
150
+ col.groupOpened !== defaultColumn.groupOpened ||
151
+ col.aggregation !== defaultColumn.aggregation;
152
+
153
+ col.isVisible = defaultColumn.isVisible ?? col.isVisible;
154
+ col.label = defaultColumn.label ?? col.label;
155
+ col.align = defaultColumn.align ?? col.align;
156
+ col.fixed = defaultColumn.fixed ?? col.fixed;
157
+ col.grouped = defaultColumn.grouped ?? col.grouped;
158
+ col.groupOpened = defaultColumn.groupOpened ?? col.groupOpened;
159
+ col.aggregation = defaultColumn.aggregation ?? col.aggregation;
160
+ col.minWidth = defaultColumn.minWidth ?? col.minWidth;
161
+ col.maxWidth = defaultColumn.maxWidth ?? col.maxWidth;
162
+ col.width = defaultColumn.width ?? col.width;
163
+
164
+ setHelperValue(col, defaultColumn.filterHelperValue || '');
165
+ return col;
166
+ });
167
+
168
+ if (tableElement) {
169
+ tableElement.style.width = '100%';
170
+ const columnElements = Array.from(tableElement.querySelectorAll('tr th:not(.selectable)'));
171
+ columnElements.forEach((item) => {
172
+ (item as HTMLElement).style.width = 'unset';
173
+ });
174
+ }
175
+
176
+ return groupParamsChanged;
177
+ };
178
+
179
+ const applyNewLayout = (layout: ITekGridLayout, changeLayoutCallback: (layout: ITekGridLayout) => void) => {
180
+ const gridColumnNames: string[] = Object.keys(columnDictionary.value);
181
+ let layoutChanged = false;
182
+
183
+ // removes columns that are in the layout but not in grid
184
+ layout.columns = layout.columns?.filter((column: any) => {
185
+ const isInGrid = gridColumnNames.includes(column.name);
186
+ if (!isInGrid) layoutChanged = true;
187
+
188
+ return isInGrid;
189
+ });
190
+
191
+ if (layoutChanged) {
192
+ changeLayoutCallback(layout);
193
+ }
194
+
195
+ if (tableElement) tableElement.style.width = layout.gridWidth || 'auto';
196
+
197
+ instance.datasource.order = layout.order !== undefined ? layout.order : instance.datasource.order;
198
+ instance.datasource.filter = layout.filter !== undefined ? layout.filter : instance.datasource.filter;
199
+ if (instance.datasource instanceof TekRestDatasource && layout.dynamicFilter !== undefined) {
200
+ instance.datasource.dynamicFilter = getHelperValues(layout.dynamicFilter, layout.columns || instance.columns);
201
+ }
202
+
203
+ if (layout.columns) {
204
+ instance.columns = layout.columns.map((column) => {
205
+ const col = columnDictionary.value[column.name];
206
+ col.label = column.label !== undefined ? column.label : col.label;
207
+ col.align = column.align !== undefined ? column.align : col.align;
208
+ col.isVisible = column.isVisible !== undefined ? column.isVisible : col.isVisible;
209
+ col.fixed = !!column.fixed;
210
+ col.grouped = !!column.grouped;
211
+ col.groupOpened = !!column.groupOpened;
212
+ col.aggregation = column.aggregation;
213
+ col.minWidth = column.minWidth || '';
214
+ col.maxWidth = column.maxWidth || '';
215
+ col.width = column.width;
216
+ setHelperValue(col, column.filterHelperValue || '');
217
+
218
+ return col;
219
+ });
220
+
221
+ // wait to change column orders
222
+ nextTick(() => {
223
+ gridColumnNames.forEach((_key, index) => {
224
+ const columnElement: HTMLElement | null | undefined = tableElement?.querySelector(
225
+ `tr th:not(.selectable)[index="${index}"]`,
226
+ );
227
+ if (columnElement) {
228
+ columnElement.style.width = layout.columns![index].width || 'unset';
229
+ }
230
+ });
231
+ });
232
+ }
233
+ };
234
+
235
+ const applyLayout: ApplyLayout = ({
236
+ layout,
237
+ defaultLayout,
238
+ changeLayoutCallback,
239
+ }: {
240
+ defaultLayout: DefaultLayout;
241
+ layout?: ITekGridLayout;
242
+ changeLayoutCallback: (layout: ITekGridLayout) => void;
243
+ }) => {
244
+ const oldOrder = instance.datasource.order;
245
+ const oldFilter = instance.datasource.filter;
246
+ const oldDynamicFilter = datasourceDynamicFilter();
247
+
248
+ let groupParamsChanged = false;
249
+
250
+ if (layout) {
251
+ addMissingColumns(layout);
252
+ applyNewLayout(layout, changeLayoutCallback);
253
+ } else {
254
+ groupParamsChanged = applyDefaultLayout(defaultLayout);
255
+ }
256
+
257
+ if (
258
+ (!Utils.isEqual(instance.datasource.order, oldOrder) ||
259
+ !Utils.isEqual(instance.datasource.filter, oldFilter) ||
260
+ !Utils.isEqual(datasourceDynamicFilter(), oldDynamicFilter)) &&
261
+ !groupParamsChanged
262
+ ) {
263
+ // Se os parametros de agrupamento tiverem sido alterados um get é feito automaticamente
264
+ instance.loadAfterTasks();
265
+ }
266
+ };
267
+
268
+ const getColumnElements: GetColumnElements = () => {
269
+ const elementDict: IDictionary<Element> = {};
270
+
271
+ const columnElements = tableElement?.querySelectorAll('tr th:not(.selectable)[index]') || [];
272
+
273
+ columnElements.forEach((el) => {
274
+ const index = el.getAttribute('index');
275
+ if (index === null) return;
276
+
277
+ elementDict[index] = el;
278
+ });
279
+
280
+ return elementDict;
281
+ };
282
+
283
+ const getTableWidth: GetTableWidth = () => {
284
+ return tableElement ? window.getComputedStyle(tableElement).width : 'auto';
285
+ };
286
+
287
+ provide('applyLayout', applyLayout);
288
+ provide('getColumnElements', getColumnElements);
289
+ provide('getTableWidth', getTableWidth);
290
+ }
package/src/index.ts ADDED
@@ -0,0 +1,29 @@
1
+ /* eslint-disable max-len */
2
+ import type { App } from 'vue';
3
+ import { Icons } from '@zeedhi/common';
4
+ import ZdUserInfoComponent from '@zeedhi/zd-user-info-vue';
5
+ import { components } from './components';
6
+
7
+ Icons.addIcons({
8
+ add: 'mdi-plus-box',
9
+ delete: 'mdi-trash-can-outline',
10
+ refresh: 'mdi-refresh',
11
+ more: 'mdi-dots-vertical',
12
+ filter: 'mdi-filter',
13
+ confirmLayout: 'mdi-check',
14
+ updateLayout: 'mdi-square-edit-outline',
15
+ layout: 'mdi-table-star',
16
+ });
17
+
18
+ const TeknisaComponents = {
19
+ install(app: App): void {
20
+ Object.keys(components).forEach((id) => {
21
+ app.component(id, components[id]);
22
+ });
23
+
24
+ app.component('ZdUserInfo', ZdUserInfoComponent);
25
+ },
26
+ };
27
+
28
+ export default TeknisaComponents;
29
+ export * from './components/public';
@@ -0,0 +1,6 @@
1
+ declare module '*.vue' {
2
+ import type { DefineComponent } from 'vue';
3
+
4
+ const component: DefineComponent<object, object, any>;
5
+ export default component;
6
+ }
File without changes
@@ -0,0 +1,5 @@
1
+ const isArrayOperation = (operation: string) => {
2
+ return ['IN', 'NOT_IN', 'BETWEEN'].includes(operation);
3
+ };
4
+
5
+ export { isArrayOperation };
@@ -1,3 +1,5 @@
1
- import { VueConstructor } from 'vue';
2
- import { IDictionary } from '@zeedhi/core';
3
- export declare const components: IDictionary<VueConstructor>;
1
+ import type { App, DefineComponent } from 'vue';
2
+ import type { IDictionary } from '@zeedhi/core';
3
+ export * from './tek-breadcrumb-header/TekBreadcrumbHeader';
4
+ export declare const components: IDictionary<DefineComponent<any, any, any>>;
5
+ export declare function RegisterComponents(app: App): void;
@@ -1,22 +1,9 @@
1
1
  import TekBreadcrumbHeader from './tek-breadcrumb-header/TekBreadcrumbHeader';
2
- import TekCardTitle from './tek-card-title/TekCardTitle';
3
- import TekCrudAddButton from './crud/TekCrudAddButton';
4
- import TekCrudCancelButton from './crud/TekCrudCancelButton';
5
- import TekCrudDeleteButton from './crud/TekCrudDeleteButton';
6
- import TekCrudForm from './crud/TekCrudForm';
7
- import TekCrudSaveButton from './crud/TekCrudSaveButton';
8
2
  import TekGrid from './tek-grid/TekGrid';
9
- import TekGridCellIdentation from './tek-grid/subcomponents/TekGridCellIdentation';
10
- import TekGridHeaderIndentation from './tek-grid/subcomponents/TekGridHeaderIndentation';
11
- import TekGridColumnFilter from './tek-grid/subcomponents/TekGridColumnFilter';
12
- import TekDragGrid from './tek-drag-grid/TekDragGrid';
13
- import TekGridColumnsButton from './tek-grid/TekGridColumnsButton';
14
- import TekGridFilterButton from './tek-grid/TekGridFilterButton';
15
- import TekGridLayoutOptions from './tek-grid/TekGridLayoutOptions';
16
- import TekImage from './tek-image/TekImage';
17
- import TekIterableComponentRender from './tek-iterable-component-render/TekIterableComponentRender';
18
- import TekProductCard from './tek-product-card/TekProductCard';
19
- import TekTreeGrid from './tek-tree-grid/TekTreeGrid';
3
+ import TekGridColumnFilter from './tek-grid/column-filter/TekGridColumnFilter';
4
+ import TekGridColumnsButton from './tek-grid/columns-button/TekGridColumnsButton';
5
+ import TekGridFilterButton from './tek-grid/filter-button/TekGridFilterButton';
6
+ import TekGridLayoutOptions from './tek-grid/layout-options/TekGridLayoutOptions';
20
7
  import TekUserInfo from './tek-user-info/TekUserInfo';
21
8
  import TekUserInfoList from './tek-user-info/TekUserInfoList';
22
- export { TekBreadcrumbHeader, TekCardTitle, TekCrudAddButton, TekCrudCancelButton, TekCrudDeleteButton, TekCrudForm, TekCrudSaveButton, TekGrid, TekGridCellIdentation, TekGridHeaderIndentation, TekGridColumnFilter, TekDragGrid, TekGridColumnsButton, TekGridFilterButton, TekGridLayoutOptions, TekImage, TekProductCard, TekIterableComponentRender, TekTreeGrid, TekUserInfo, TekUserInfoList, };
9
+ export { TekBreadcrumbHeader, TekGrid, TekGridColumnFilter, TekGridColumnsButton, TekGridFilterButton, TekGridLayoutOptions, TekUserInfo, TekUserInfoList, };