@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,1118 @@
1
+ import {
2
+ Accessor,
3
+ Config,
4
+ Datasource,
5
+ DatasourceFactory,
6
+ I18n,
7
+ IDictionary,
8
+ IEventParam,
9
+ Loader,
10
+ Messages,
11
+ } from '@zeedhi/core';
12
+ import clonedeep from 'lodash.clonedeep';
13
+ import {
14
+ DataNavigator,
15
+ Direction,
16
+ IDataNavigator,
17
+ IDataSelector,
18
+ IGrid,
19
+ IIterableTable,
20
+ IKeyMapMerger,
21
+ ITableActionBuilder,
22
+ IViewNavigator,
23
+ IterableTable,
24
+ KeyMapMerger,
25
+ KeyMapNavigation,
26
+ TableActionBuilder,
27
+ VerticalDirection, IComponent, IComponentRender, DataEditorWithAdd, IDataEditorWithAdd, IGridColumnEditable, IGridEditable,
28
+ KeyMapEditing, Iterable, IIterableProps,
29
+ } from '@zeedhi/common';
30
+ import {
31
+ IColumnsSearcher,
32
+ IGroupedDataManager,
33
+ IModalFilterProps,
34
+ ITekGrid,
35
+ ITekGridAtoms,
36
+ ITekGridColumn,
37
+ ITekGridEvents,
38
+ ITekGridExportConfig,
39
+ ITekGridProps,
40
+ ITekGridSummary,
41
+ ITekGridToolbarProvider,
42
+ } from './interfaces';
43
+ import { KeyMapGrouped } from './keymap-grouped';
44
+ import { TekMemoryDatasource } from '../tek-datasource/tek-memory-datasource';
45
+ import { TekRestDatasource } from '../tek-datasource/tek-rest-datasource';
46
+ import { TekGridColumn } from './tek-grid-column';
47
+ import { TekGridController } from './tek-grid-controller';
48
+ import { TekGridEvents } from './tek-grid-events';
49
+ import { ColumnsSearcher } from './columns-searcher';
50
+ import { DynamicFilterDatasourceFactory } from './dynamic-filter-datasource-factory';
51
+ import { GroupedDataManager } from './grouped-data-manager';
52
+ import { GroupedDataSelector } from './grouped-data-selector';
53
+ import { GroupedViewNavigator } from './grouped-view-navigator';
54
+ import { ITekConfig } from '../../utils';
55
+ import { TekGridToolbarProvider } from './tek-grid-toolbar-provider/tek-grid-toolbar-provider';
56
+
57
+ /* TekGrid Class */
58
+ export class TekGrid extends Iterable<TekGridColumn> implements ITekGrid {
59
+ private tableActionBuilder: ITableActionBuilder;
60
+
61
+ private iterableTable: IIterableTable;
62
+
63
+ private dataSelector: IDataSelector;
64
+
65
+ private tekGridEvents: ITekGridEvents;
66
+
67
+ private dataNavigator: IDataNavigator;
68
+
69
+ private groupedViewNavigator: IViewNavigator;
70
+
71
+ private keyMapMerger!: IKeyMapMerger;
72
+
73
+ private dataEditor: IDataEditorWithAdd;
74
+
75
+ private columnsSearcher: IColumnsSearcher;
76
+
77
+ private groupedDataManager: IGroupedDataManager;
78
+
79
+ private tekGridToolbarProvider: ITekGridToolbarProvider;
80
+
81
+ /* Grid Title */
82
+ public title = '';
83
+
84
+ /* Show Add button */
85
+ public addButton = false;
86
+
87
+ /* Show Delete button */
88
+ public deleteButton: 'none' | 'currentRow' | 'selection' = 'none';
89
+
90
+ /* Show Delete button */
91
+ public actions: IComponentRender[] = [];
92
+
93
+ /* Show edit button */
94
+ public showEditButtons = true;
95
+
96
+ /* Show Filter button */
97
+ public filterButton = false;
98
+
99
+ /* Show SearchInput */
100
+ public showSearch = true;
101
+
102
+ /* Show Column Filter button */
103
+ public columnFilterButton = false;
104
+
105
+ /* Show Columns button */
106
+ public columnsButton = false;
107
+
108
+ /* Defines if the grid is the unique grid on screen */
109
+ public mainGrid = true;
110
+
111
+ /* Columns to be ignored on columns button */
112
+ public columnsButtonIgnore: string[] = [];
113
+
114
+ /**
115
+ * Enables column dragging
116
+ * @public
117
+ */
118
+ public dragColumns = true;
119
+
120
+ /**
121
+ * Enables column resizing
122
+ * @public
123
+ */
124
+ public resizeColumns = true;
125
+
126
+ /**
127
+ * Enables layout saving
128
+ * @public
129
+ */
130
+ public showLayoutOptions = true;
131
+
132
+ public xlsDefaultType?: string;
133
+
134
+ public modalFilterProps: IModalFilterProps = {
135
+ name: this.name,
136
+ height: 'auto',
137
+ persistent: true,
138
+ cssClass: '',
139
+ cssStyle: '',
140
+ dark: false,
141
+ draggable: false,
142
+ fullscreen: false,
143
+ dragHandle: '',
144
+ title: 'FILTER',
145
+ };
146
+
147
+ /**
148
+ * Show export button
149
+ */
150
+ public showExport = false;
151
+
152
+ /**
153
+ * Show refresh button
154
+ */
155
+ public showReload = true;
156
+
157
+ /**
158
+ * Export config
159
+ */
160
+ public exportConfig: ITekGridExportConfig[] = [
161
+ {
162
+ type: 'pdf',
163
+ label: I18n.translate('TEKGRID_EXPORT_AS', { type: 'PDF' }),
164
+ multiOption: [
165
+ { label: I18n.translate('TEKGRID_PORTRAIT'), iconName: 'mdi-file-outline' },
166
+ {
167
+ label: I18n.translate('TEKGRID_LANDSCAPE'),
168
+ iconName: 'mdi-file-outline',
169
+ cssClass: 'tek-grid-export-landscape',
170
+ reportParams: { portrait: false },
171
+ },
172
+ ],
173
+ },
174
+ {
175
+ type: 'xls',
176
+ label: I18n.translate('TEKGRID_EXPORT_AS', {
177
+ type: 'XLS',
178
+ }),
179
+ },
180
+ {
181
+ type: 'xls2',
182
+ label: I18n.translate('TEKGRID_EXPORT_AS', {
183
+ type: `XLS ${I18n.translate('TEKGRID_WITH_GROUPS')}`,
184
+ }),
185
+ },
186
+ {
187
+ type: 'xls3',
188
+ label: I18n.translate('TEKGRID_EXPORT_AS', {
189
+ type: `XLS ${I18n.translate('TEKGRID_GRID_MIRROR')}`,
190
+ }),
191
+ },
192
+ {
193
+ type: 'csv',
194
+ label: I18n.translate('TEKGRID_EXPORT_AS', { type: 'CSV' }),
195
+ },
196
+ ];
197
+
198
+ /**
199
+ * Actions to overwrite the default export config
200
+ */
201
+ public exportActions?: IComponentRender[];
202
+
203
+ /**
204
+ * Groups should be opened by default after building
205
+ */
206
+ public groupsOpened = false;
207
+
208
+ /**
209
+ * Show Total summary
210
+ */
211
+ public showSummaryTotal = true;
212
+
213
+ public editNewRowsOnly = false;
214
+
215
+ protected keyShortcutKeyMapping: any;
216
+
217
+ public showCheckboxAllFilter: boolean = (Config as ITekConfig).gridShowCheckboxAllFilter || false;
218
+
219
+ public defaultFilter: IDictionary = {};
220
+
221
+ public toolbarOpened = true;
222
+
223
+ public reportTitle = '';
224
+
225
+ editing = false;
226
+
227
+ currentColumn: TekGridColumn | null = null;
228
+
229
+ selectedRows: IDictionary<any>[] = [];
230
+
231
+ selectionState: { allSelected: boolean; except: IDictionary<any>[] } = {
232
+ allSelected: false,
233
+ except: [],
234
+ };
235
+
236
+ rowStyleConditions?: (row: IDictionary) => IDictionary;
237
+
238
+ selectAllPages: boolean = Config.gridSelectAllPages;
239
+
240
+ selectable = false;
241
+
242
+ disableSelection?: (args: { row: IDictionary<any>; component: IGrid }) => boolean;
243
+
244
+ cellSelection = false;
245
+
246
+ toolbarSlot: IComponentRender[] = [{ name: '<<NAME>>_gridSearch', component: 'ZdSearch' }];
247
+
248
+ footerSlot: IComponentRender[] = [
249
+ { name: '<<NAME>>_iterablePagination', component: 'ZdIterablePagination' },
250
+ {
251
+ name: '<<NAME>>_iterableInfoDiv',
252
+ component: 'ZdTag',
253
+ cssClass: 'zd-grid-div-footer',
254
+ tag: 'div',
255
+ children: [
256
+ {
257
+ name: '<<NAME>>_iterablePageSize',
258
+ component: 'ZdIterablePageSize',
259
+ iterableComponentName: '<<NAME>>',
260
+ },
261
+ {
262
+ name: '<<NAME>>_iterablePageInfo',
263
+ component: 'ZdIterablePageInfo',
264
+ iterableComponentName: '<<NAME>>',
265
+ },
266
+ ],
267
+ },
268
+ ];
269
+
270
+ noResultsText = 'NO_RESULT';
271
+
272
+ noResultSlot: IComponentRender[] = [
273
+ {
274
+ name: '<<NAME>>_no-result',
275
+ component: 'ZdText',
276
+ cssClass: 'no-result',
277
+ text: this.noResultsText,
278
+ },
279
+ ];
280
+
281
+ errorSlot: IComponentRender[] = [];
282
+
283
+ dense = true;
284
+
285
+ headerBackground = '';
286
+
287
+ headerCellTextColor = '';
288
+
289
+ height: string | number = 'auto';
290
+
291
+ loadingText = 'LOADING';
292
+
293
+ maxHeight: string | number = 'none';
294
+
295
+ maxWidth: string | number = 'none';
296
+
297
+ minHeight: string | number = 'auto';
298
+
299
+ minWidth: string | number = 'auto';
300
+
301
+ noDataText = 'NO_DATA';
302
+
303
+ noDataSlot: IComponentRender[] = [
304
+ {
305
+ name: '<<NAME>>_no-data',
306
+ component: 'ZdText',
307
+ cssClass: 'no-data',
308
+ text: this.noDataText,
309
+ },
310
+ ];
311
+
312
+ showFooter = true;
313
+
314
+ showHeader = true;
315
+
316
+ showSelectAll = true;
317
+
318
+ width: string | number = '100%';
319
+
320
+ backgroundColor = 'transparent';
321
+
322
+ canEditRow?: ((args: { row: IDictionary<any>; component: IGridEditable }) => boolean) | undefined;
323
+
324
+ showCancelColumn = false;
325
+
326
+ doubleClickEdit = false;
327
+
328
+ singleEdit = false;
329
+
330
+ editingNewRows = false;
331
+
332
+ private defaultLazy = false;
333
+
334
+ private toolbarSlotProps = false;
335
+
336
+ public filterRelationsDatasource?: Datasource;
337
+
338
+ public filterOperationsDatasource?: Datasource;
339
+
340
+ /**
341
+ * TekGrid class constructor
342
+ * @param props TekGrid properties
343
+ */
344
+ constructor(props: ITekGridProps) {
345
+ super(props);
346
+ this.title = this.getInitValue('title', props.title, this.title);
347
+ this.addButton = this.getInitValue('addButton', props.addButton, this.addButton);
348
+ this.deleteButton = this.getInitValue('deleteButton', props.deleteButton, this.deleteButton);
349
+ this.filterButton = this.getInitValue('filterButton', props.filterButton, this.filterButton);
350
+ this.showSearch = this.getInitValue('showSearch', props.showSearch, this.showSearch);
351
+ this.columnFilterButton = this.getInitValue(
352
+ 'columnFilterButton',
353
+ props.columnFilterButton,
354
+ this.columnFilterButton,
355
+ );
356
+ this.columnsButton = this.getInitValue('columnsButton', props.columnsButton, this.columnsButton);
357
+ this.columnsButtonIgnore = this.getInitValue(
358
+ 'columnsButtonIgnore',
359
+ props.columnsButtonIgnore,
360
+ this.columnsButtonIgnore,
361
+ );
362
+ this.showEditButtons = this.getInitValue('showEditButtons', props.showEditButtons, this.showEditButtons);
363
+ this.dragColumns = this.getInitValue('dragColumns', props.dragColumns, this.dragColumns);
364
+ this.resizeColumns = this.getInitValue('resizeColumns', props.resizeColumns, this.resizeColumns);
365
+ this.showLayoutOptions = this.getInitValue('showLayoutOptions', props.showLayoutOptions, this.showLayoutOptions);
366
+ this.xlsDefaultType = this.getInitValue('xlsDefaultType', props.xlsDefaultType, this.xlsDefaultType);
367
+ this.showExport = this.getInitValue('showExport', props.showExport, this.showExport);
368
+ this.showReload = this.getInitValue('showReload', props.showReload, this.showReload);
369
+ this.exportConfig = this.getInitValue('exportConfig', props.exportConfig, this.exportConfig);
370
+ this.modalFilterProps = this.getInitValue('modalFilterProps', props.modalFilterProps, this.modalFilterProps);
371
+ this.exportActions = props.exportActions || this.exportActions;
372
+ this.groupsOpened = this.getInitValue('groupsOpened', props.groupsOpened, this.groupsOpened);
373
+ this.showSummaryTotal = this.getInitValue('showSummaryTotal', props.showSummaryTotal, this.showSummaryTotal);
374
+ this.showCheckboxAllFilter = this.getInitValue(
375
+ 'showCheckboxAllFilter',
376
+ props.showCheckboxAllFilter,
377
+ this.showCheckboxAllFilter,
378
+ );
379
+ this.defaultFilter = this.getInitValue('defaultFilter', props.defaultFilter, this.defaultFilter);
380
+ this.toolbarOpened = this.getInitValue('toolbarOpened', props.toolbarOpened, this.toolbarOpened);
381
+ this.editNewRowsOnly = this.getInitValue('editNewRowsOnly', props.editNewRowsOnly, this.editNewRowsOnly);
382
+ this.mainGrid = this.getInitValue('mainGrid', props.mainGrid, this.mainGrid);
383
+ this.reportTitle = this.getInitValue('reportTitle', props.reportTitle, this.reportTitle);
384
+ this.actions = props.actions || this.actions;
385
+ this.toolbarSlotProps = props.toolbarSlot !== undefined;
386
+
387
+ this.cellSelection = this.getInitValue('cellSelection', props.cellSelection, this.cellSelection);
388
+ this.dense = this.getInitValue('dense', props.dense, this.dense);
389
+ this.disableSelection = this.getInitValue('disableSelection', props.disableSelection, this.disableSelection);
390
+ this.dragColumns = this.getInitValue('dragColumns', props.dragColumns, this.dragColumns);
391
+ this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
392
+ this.headerCellTextColor = this.getInitValue(
393
+ 'headerCellTextColor',
394
+ props.headerCellTextColor,
395
+ this.headerCellTextColor,
396
+ );
397
+ this.height = this.getInitValue('height', props.height, this.height);
398
+ this.loadingText = this.getInitValue('loadingText', props.loadingText, this.loadingText);
399
+ this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
400
+ this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
401
+ this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
402
+ this.minWidth = this.getInitValue('minWidth', props.minWidth, this.minWidth);
403
+ this.noDataText = this.getInitValue('noDataText', props.noDataText, this.noDataText);
404
+ this.noResultsText = this.getInitValue('noResultsText', props.noResultsText, this.noResultsText);
405
+ this.resizeColumns = this.getInitValue('resizeColumns', props.resizeColumns, this.resizeColumns);
406
+ this.rowStyleConditions = this.getInitValue(
407
+ 'rowStyleConditions',
408
+ props.rowStyleConditions,
409
+ this.rowStyleConditions,
410
+ );
411
+ this.selectable = this.getInitValue('selectable', props.selectable, this.selectable);
412
+ this.selectAllPages = this.getInitValue('selectAllPages', props.selectAllPages, this.selectAllPages);
413
+ this.showFooter = this.getInitValue('showFooter', props.showFooter, this.showFooter);
414
+ this.showHeader = this.getInitValue('showHeader', props.showHeader, this.showHeader);
415
+ this.showSelectAll = this.getInitValue('showSelectAll', props.showSelectAll, this.showSelectAll);
416
+ this.width = this.getInitValue('width', props.width, this.width);
417
+ this.backgroundColor = this.getInitValue('backgroundColor', props.backgroundColor, this.backgroundColor);
418
+ // headerBackground defaults to the backgroundColor, unless backgroundColor is transparent
419
+ const defaultHeaderBackground = this.backgroundColor === 'transparent' ? '' : this.backgroundColor;
420
+ this.headerBackground = this.getInitValue('headerBackground', props.headerBackground, defaultHeaderBackground);
421
+ this.doubleClickEdit = this.getInitValue('doubleClickEdit', props.doubleClickEdit, this.doubleClickEdit);
422
+ this.singleEdit = this.getInitValue('singleEdit', props.singleEdit, this.singleEdit);
423
+ this.showCancelColumn = this.getInitValue('showCancelColumn', props.showCancelColumn, this.showCancelColumn);
424
+ this.canEditRow = this.getInitValue('canEditRow', props.canEditRow, this.canEditRow);
425
+ this.editingNewRows = this.getInitValue('editingNewRows', props.editingNewRows, this.editingNewRows);
426
+
427
+ this.toolbarSlot = props.toolbarSlot || this.toolbarSlot;
428
+ this.footerSlot = props.footerSlot || this.footerSlot;
429
+ this.noDataSlot = props.noDataSlot || this.noDataSlot;
430
+ this.noResultSlot = props.noResultSlot || this.noResultSlot;
431
+ this.errorSlot = props.errorSlot || this.errorSlot;
432
+ this.noDataSlot = this.changeDefaultSlotNames(this.noDataSlot);
433
+ this.footerSlot = this.changeDefaultSlotNames(this.footerSlot);
434
+ this.toolbarSlot = this.changeDefaultSlotNames(this.toolbarSlot);
435
+ this.noResultSlot = this.changeDefaultSlotNames(this.noResultSlot);
436
+ this.errorSlot = this.changeDefaultSlotNames(this.errorSlot);
437
+
438
+ this.defaultLazy = this.getDefaultLazy(props);
439
+
440
+ if (this.deleteButton === 'selection') {
441
+ this.selectable = true;
442
+ }
443
+
444
+ this.tableActionBuilder = new TableActionBuilder(this);
445
+ this.iterableTable = new IterableTable(this);
446
+ this.dataSelector = new GroupedDataSelector(this);
447
+ this.tekGridEvents = new TekGridEvents(this);
448
+ this.dataNavigator = new DataNavigator(this);
449
+ this.groupedViewNavigator = new GroupedViewNavigator(this);
450
+ this.dataEditor = new DataEditorWithAdd(this);
451
+ this.columnsSearcher = new ColumnsSearcher();
452
+ this.groupedDataManager = new GroupedDataManager(this);
453
+ this.tekGridToolbarProvider = new TekGridToolbarProvider(this, 'show');
454
+ }
455
+
456
+ protected initializeDatasource(props: IIterableProps) {
457
+ let datasourceProps = clonedeep(props.datasource);
458
+ // if using accessor, get props from the controller
459
+ if (typeof props.datasource === 'string' && Accessor.isAccessorDefinition(props.datasource)) {
460
+ const [controller, accessor] = Accessor.getAccessor(props.datasource);
461
+ const instance = Loader.getInstance(controller);
462
+ datasourceProps = instance[accessor];
463
+ }
464
+ this.datasource = DatasourceFactory.factory({
465
+ ...datasourceProps,
466
+ searchIn: props.datasource?.searchIn || (`{{IterableController_${this.name}.searchIn}}` as any),
467
+ lazyLoad: true,
468
+ });
469
+ }
470
+
471
+ public columnHasFilter(columnName: string): boolean {
472
+ return this.datasource.hasFilter(columnName);
473
+ }
474
+
475
+ public registerTask(task: Promise<any>) {
476
+ this.groupedDataManager.registerTask(task);
477
+ }
478
+
479
+ public async loadAfterTasks() {
480
+ return this.groupedDataManager.loadAfterTasks();
481
+ }
482
+
483
+ calcSummary(column: TekGridColumn, columnNamesummary: ITekGridSummary, row: IDictionary): void {
484
+ this.tekGridEvents.calcSummary(column, columnNamesummary, row);
485
+ }
486
+
487
+ private getDefaultLazy(props: ITekGridProps) {
488
+ if (typeof props.datasource === 'object') {
489
+ return props.datasource.lazyLoad;
490
+ }
491
+
492
+ if (typeof props.datasource === 'string' && Accessor.isAccessorDefinition(props.datasource)) {
493
+ const [controller, accessor] = Accessor.getAccessor(props.datasource);
494
+ const instance = Loader.getInstance(controller);
495
+ return instance[accessor].lazyLoad || false;
496
+ }
497
+
498
+ return false;
499
+ }
500
+
501
+ initializeGrouping(lazyLoad: boolean): void {
502
+ this.groupedDataManager.initializeGrouping(lazyLoad);
503
+ }
504
+
505
+ updateGrouping() {
506
+ return this.groupedDataManager.updateGrouping();
507
+ }
508
+
509
+ updateGroupedData(lazyLoad: boolean): Promise<void> {
510
+ return this.groupedDataManager.updateGroupedData(lazyLoad);
511
+ }
512
+
513
+ buildGroupedData(): void {
514
+ this.groupedDataManager.buildGroupedData();
515
+ }
516
+
517
+ openGroup(group: IDictionary<any>): void {
518
+ this.groupedDataManager.openGroup(group);
519
+ }
520
+
521
+ isItemVisible(row: IDictionary<any>) {
522
+ return this.groupedDataManager.isItemVisible(row);
523
+ }
524
+
525
+ isGrouped(): boolean {
526
+ return this.groupedDataManager.isGrouped();
527
+ }
528
+
529
+ isColumnSearchable(column: TekGridColumn): boolean {
530
+ return this.groupedDataManager.isColumnSearchable(column);
531
+ }
532
+
533
+ getGroupedData(): IDictionary<any>[] {
534
+ return this.groupedDataManager.getGroupedData();
535
+ }
536
+
537
+ directionalLeft(param: IEventParam<any>): void {
538
+ this.groupedDataManager.directionalLeft(param);
539
+ this.groupedViewNavigator.navigateLeft(param);
540
+ }
541
+
542
+ directionalRight(param: IEventParam<any>): void {
543
+ this.groupedDataManager.directionalRight(param);
544
+ this.groupedViewNavigator.navigateRight(param);
545
+ }
546
+
547
+ getReport(): Promise<Window | null> {
548
+ throw new Error('Method not implemented.');
549
+ }
550
+
551
+ setViewUpdateFixedColumns(fn: () => void) {
552
+ this.groupedDataManager.setViewUpdateFixedColumns(fn);
553
+ }
554
+
555
+ setViewUpdateScrollData(fn: () => void): void {
556
+ this.groupedDataManager.setViewUpdateScrollData(fn);
557
+ }
558
+
559
+ public onCreated(): void {
560
+ super.onCreated();
561
+
562
+ Loader.addController(`GridController_${this.name}`, TekGridController, [this]);
563
+ if (!this.toolbarSlotProps) this.toolbarSlot = this.tekGridToolbarProvider.getProperties();
564
+
565
+ this.createDynamicFilterDatasources();
566
+ }
567
+
568
+ private createDynamicFilterDatasources() {
569
+ if (!(this.datasource instanceof TekRestDatasource || this.datasource instanceof TekMemoryDatasource)) return;
570
+
571
+ const datasourceFactory = new DynamicFilterDatasourceFactory();
572
+ this.filterRelationsDatasource = datasourceFactory.factory(this.datasource.dynamicFilterRelations);
573
+ this.filterOperationsDatasource = datasourceFactory.factory(this.datasource.dynamicFilterOperations);
574
+ }
575
+
576
+ public onMounted(element: HTMLElement): void {
577
+ super.onMounted(element);
578
+ this.keyMapMerger = new KeyMapMerger(this, [KeyMapNavigation, KeyMapEditing, KeyMapGrouped]);
579
+ this.keyMapMerger.bind(element);
580
+
581
+ this.initializeGrouping(this.defaultLazy);
582
+ }
583
+
584
+ public onBeforeDestroy(): void {
585
+ super.onBeforeDestroy();
586
+ this.keyMapMerger.unbind();
587
+ }
588
+
589
+ public createColumn(column: ITekGridColumn): TekGridColumn {
590
+ return new TekGridColumn(column, this);
591
+ }
592
+
593
+ getConditionalProps({ row, column }: { row: IDictionary; column: TekGridColumn }): Partial<IComponentRender> {
594
+ const rowStyle = this.getRowStyleConditions(row);
595
+ const cellsApplied = this.getAppliedConditions({ row, column });
596
+
597
+ return { ...rowStyle, ...cellsApplied };
598
+ }
599
+
600
+ changeOrder(sortBy: { key: string; order: 'asc' | 'desc' }[]): Promise<void> {
601
+ return this.iterableTable.changeOrder(sortBy);
602
+ }
603
+
604
+ selectCell(row: IDictionary, column: TekGridColumn): void {
605
+ this.iterableTable.selectCell(row, column);
606
+ }
607
+
608
+ reapplyRowStyleConditions(row: IDictionary): IDictionary {
609
+ return this.iterableTable.reapplyRowStyleConditions(row);
610
+ }
611
+
612
+ getRowStyleConditions(row: IDictionary): IDictionary {
613
+ return this.iterableTable.getRowStyleConditions(row);
614
+ }
615
+
616
+ deleteRows(): Promise<any[]> {
617
+ return this.iterableTable.deleteRows();
618
+ }
619
+
620
+ selectAll(isSelected: boolean): void {
621
+ this.dataSelector.selectAll(isSelected);
622
+ }
623
+
624
+ toggleRow(row: IDictionary): void {
625
+ this.dataSelector.toggleRow(row);
626
+ }
627
+
628
+ selectRow(row: IDictionary, select: boolean): void {
629
+ this.dataSelector.selectRow(row, select);
630
+ }
631
+
632
+ callDisableSelection(row: IDictionary): boolean {
633
+ return this.dataSelector.callDisableSelection(row);
634
+ }
635
+
636
+ selectClick(row: IDictionary<any>, isSelected: boolean, event: Event, element?: HTMLElement): void {
637
+ this.dataSelector.selectClick(row, isSelected, event, element);
638
+ }
639
+
640
+ selectAllClick(isSelected: boolean, event: Event, element?: HTMLElement): void {
641
+ this.dataSelector.selectAllClick(isSelected, event, element);
642
+ }
643
+
644
+ navigatePageUp(): void {
645
+ this.dataNavigator.navigatePageUp();
646
+ }
647
+
648
+ navigatePageDown(): void {
649
+ this.dataNavigator.navigatePageDown();
650
+ }
651
+
652
+ setViewNavigate(viewNavigate: (direction: Direction, event?: Event) => void): void {
653
+ this.groupedViewNavigator.setViewNavigate(viewNavigate);
654
+ }
655
+
656
+ navigateLeft(params: IEventParam<any>): void {
657
+ if (!this.cellSelection) return;
658
+ this.groupedViewNavigator.navigateLeft(params);
659
+ }
660
+
661
+ navigateRight(params: IEventParam<any>): void {
662
+ if (!this.cellSelection) return;
663
+ this.groupedViewNavigator.navigateRight(params);
664
+ }
665
+
666
+ navigateUp(): void {
667
+ this.groupedViewNavigator.navigateUp();
668
+ }
669
+
670
+ navigateDown(): void {
671
+ this.groupedViewNavigator.navigateDown();
672
+ }
673
+
674
+ navigateDatasource(direction: VerticalDirection): void {
675
+ this.dataNavigator.navigateDatasource(direction);
676
+ }
677
+
678
+ getActionComponent(
679
+ actionComponent: IComponent,
680
+ column: TekGridColumn,
681
+ row: IDictionary,
682
+ parentPath?: string,
683
+ ): IComponent {
684
+ return this.tableActionBuilder.getActionComponent(actionComponent, column, row, parentPath);
685
+ }
686
+
687
+ addCancelColumn(): void {
688
+ this.dataEditor.addCancelColumn();
689
+ }
690
+
691
+ getCancelColumnProps(): IGridColumnEditable {
692
+ return this.dataEditor.getCancelColumnProps();
693
+ }
694
+
695
+ isAdded(row: IDictionary): boolean {
696
+ return this.dataEditor.isAdded(row);
697
+ }
698
+
699
+ cancelAddedRow(key: string | number): Promise<any> {
700
+ return this.dataEditor.cancelAddedRow(key);
701
+ }
702
+
703
+ cancelAddedRows(): Promise<void> {
704
+ return this.dataEditor.cancelAddedRows();
705
+ }
706
+
707
+ getAddedRows(): IDictionary<any>[] {
708
+ return this.dataEditor.getAddedRows();
709
+ }
710
+
711
+ addNewRow(row: IDictionary, position?: 'end' | 'start'): Promise<void> {
712
+ return this.dataEditor.addNewRow(row, position);
713
+ }
714
+
715
+ getVisibleValue(row: IDictionary, column: ITekGridColumn) {
716
+ return this.dataEditor.getVisibleValue(row, column);
717
+ }
718
+
719
+ getEditableComponent(column: ITekGridColumn, row: IDictionary<any>): IComponentRender {
720
+ return this.dataEditor.getEditableComponent(column, row);
721
+ }
722
+
723
+ isEdited(column: ITekGridColumn, row: IDictionary): boolean {
724
+ return this.dataEditor.isEdited(column, row);
725
+ }
726
+
727
+ isValid(column: ITekGridColumn, row: IDictionary, revalidate?: boolean): Promise<boolean> {
728
+ return this.dataEditor.isValid(column, row, revalidate);
729
+ }
730
+
731
+ checkValid(column: ITekGridColumn, row: IDictionary): boolean {
732
+ return this.dataEditor.checkValid(column, row);
733
+ }
734
+
735
+ isGridValid(revalidate?: boolean): boolean {
736
+ return this.dataEditor.isGridValid(revalidate);
737
+ }
738
+
739
+ getComponent<T>(key: string, columnName: string): T {
740
+ return this.dataEditor.getComponent(key, columnName);
741
+ }
742
+
743
+ updateRow(newRow: IDictionary): void {
744
+ this.dataEditor.updateRow(newRow);
745
+ }
746
+
747
+ updateCell(rowKey: string, columnName: string, value: any): void {
748
+ this.dataEditor.updateCell(rowKey, columnName, value);
749
+ }
750
+
751
+ setViewEnterEdit(fn: ((rowKey: string, columnName: string) => void) | null): void {
752
+ this.dataEditor.setViewEnterEdit(fn);
753
+ }
754
+
755
+ enterEdit(rowKey: string, columnName: string): void {
756
+ this.dataEditor.enterEdit(rowKey, columnName);
757
+ }
758
+
759
+ cancelEditedRows(): Promise<void> {
760
+ return this.dataEditor.cancelEditedRows();
761
+ }
762
+
763
+ saveEditedRows(revalidate?: boolean): Promise<void[]> {
764
+ return this.dataEditor.saveEditedRows(revalidate);
765
+ }
766
+
767
+ reapplyCanEditRow(row: IDictionary<any>) {
768
+ return this.dataEditor.reapplyCanEditRow(row);
769
+ }
770
+
771
+ getCanEditRow(row: IDictionary<any>): boolean | undefined {
772
+ return this.dataEditor.getCanEditRow(row);
773
+ }
774
+
775
+ getEditedRows(revalidate?: boolean, silent?: boolean): IDictionary<any>[] {
776
+ return this.dataEditor.getEditedRows(revalidate, silent);
777
+ }
778
+
779
+ getEditedRow(row: IDictionary): IDictionary | undefined {
780
+ return this.dataEditor.getEditedRow(row);
781
+ }
782
+
783
+ rowClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void {
784
+ this.tekGridEvents.rowClick(row, event, element);
785
+ }
786
+
787
+ rowDoubleClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void {
788
+ this.tekGridEvents.rowDoubleClick(row, event, element);
789
+ }
790
+
791
+ cellDoubleClick(row: IDictionary<any>, column: TekGridColumn, event: Event, element?: HTMLElement): void {
792
+ this.tekGridEvents.cellDoubleClick(row, column, event, element);
793
+ }
794
+
795
+ inlineEdit(row: IDictionary, column: TekGridColumn, event?: Event, element?: HTMLElement): void {
796
+ this.tekGridEvents.inlineEdit(row, column, event, element);
797
+ }
798
+
799
+ cellClick(row: IDictionary<any>, column: TekGridColumn, event: Event, element?: HTMLElement): void {
800
+ this.tekGridEvents.cellClick(row, column, event, element);
801
+ }
802
+
803
+ cellClickEvent(row: IDictionary<any>, column: TekGridColumn, event: Event, element?: HTMLElement): void {
804
+ this.tekGridEvents.cellClickEvent(row, column, event, element);
805
+ }
806
+
807
+ groupRowClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void {
808
+ this.tekGridEvents.groupRowClick(row, event, element);
809
+ }
810
+
811
+ groupRowDoubleClick(row: IDictionary<any>, event: Event, element?: HTMLElement): void {
812
+ this.tekGridEvents.groupRowDoubleClick(row, event, element);
813
+ }
814
+
815
+ selectGroupClick(row: IDictionary<any>, isSelected: boolean, event: Event, element?: HTMLElement): void {
816
+ this.tekGridEvents.selectGroupClick(row, isSelected, event, element);
817
+ }
818
+
819
+ public async setSearch(search: string): Promise<any> {
820
+ const { datasource } = this;
821
+ if (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {
822
+ datasource.searchJoin = await this.columnsSearcher.searchColumn(this.columns, search);
823
+ }
824
+
825
+ datasource.page = 1;
826
+ return datasource.setSearch(search);
827
+ }
828
+
829
+ getAtomInstance<T>(key: keyof ITekGridAtoms) {
830
+ return this.tekGridToolbarProvider.getAtomInstance<T>(key);
831
+ }
832
+
833
+ getAtomName(key: keyof ITekGridAtoms) {
834
+ return this.tekGridToolbarProvider.getAtomName(key);
835
+ }
836
+ }
837
+
838
+ Messages.add({
839
+ 'pt-BR': {
840
+ translation: {
841
+ TEKGRID_CONTAINS: 'contém',
842
+ TEKGRID_NOT_CONTAINS: 'não contém',
843
+ TEKGRID_EQUALS: 'é igual a',
844
+ TEKGRID_NOT_EQUALS: 'é diferente de',
845
+ TEKGRID_GREATER_THAN: 'é maior que',
846
+ TEKGRID_LESS_THAN: 'é menor que',
847
+ TEKGRID_GREATER_THAN_EQUALS: 'é maior ou igual a',
848
+ TEKGRID_LESS_THAN_EQUALS: 'é menor ou igual a',
849
+ TEKGRID_IN: 'um dos valores',
850
+ TEKGRID_NOT_IN: 'nenhum dos valores',
851
+ TEKGRID_BETWEEN: 'está entre',
852
+ TEKGRID_AND: 'e',
853
+ TEKGRID_OR: 'ou',
854
+ TEKGRID_HIDE: 'Esconder Ações',
855
+ TEKGRID_SHOW: 'Mostrar Ações',
856
+ TEKGRID_ADD: 'Adicionar',
857
+ TEKGRID_DELETE: 'Excluir',
858
+ TEKGRID_REFRESH: 'Atualizar',
859
+ TEKGRID_COLUMNS: 'Colunas',
860
+ TEKGRID_SAVE: 'Salvar',
861
+ TEKGRID_CANCEL: 'Cancelar',
862
+ TEKGRID_APPLY: 'Aplicar',
863
+ TEKGRID_FILTER: 'Filtro',
864
+ TEKGRID_MULTIPLE_VALUE_HINT: 'Separe valores usando ";"',
865
+ TEKGRID_EXPORT: 'Exportar',
866
+ TEKGRID_EXPORT_AS: 'Exportar como {{ type }}',
867
+ TEKGRID_PORTRAIT: 'Retrato',
868
+ TEKGRID_LANDSCAPE: 'Paisagem',
869
+ TEKGRID_COLUMN_VISIBLE: 'Visível',
870
+ TEKGRID_COLUMN_GROUPED: 'Grupo',
871
+ TEKGRID_COLUMN_AGGREGATION: 'Totalização',
872
+ TEKGRID_COLUMN_LABEL: 'Rótulo',
873
+ TEKGRID_COLUMN_ALIGNMENT: 'Alinhamento',
874
+ TEKGRID_COLUMN_GROUP_OPENED: 'Aberto (grupo)',
875
+ TEKGRID_COLUMN_ORDER: 'Ordem',
876
+ TEKGRID_COLUMN_ORDER_DIRECTION: 'Direção (ordem)',
877
+ TEKGRID_AGGREGATION_SUM: 'Soma',
878
+ TEKGRID_AGGREGATION_AVG: 'Média',
879
+ TEKGRID_AGGREGATION_MAX: 'Máximo',
880
+ TEKGRID_AGGREGATION_MIN: 'Mínimo',
881
+ TEKGRID_AGGREGATION_COUNT: 'Contador',
882
+ TEKGRID_MORE_OPTIONS: 'Mais opções',
883
+ TEKGRID_COLUMNS_OPTIONS: 'Configuração de colunas',
884
+ TEKGRID_CLOSE: 'Fechar',
885
+ TEKGRID_FIXED_COLUMNS: 'Colunas fixadas',
886
+ TEKGRID_VISIBLE_COLUMNS: 'Colunas visíveis',
887
+ TEKGRID_GROUPED_COLUMNS: 'Colunas agrupadas',
888
+ TEKGRID_ORDER: 'Ordem',
889
+ TEKGRID_OTHER_COLUMNS: 'Outras colunas',
890
+ TEKGRID_DROP_COLUMNS: 'Arraste colunas aqui',
891
+ TEKGRID_DETAILS_FOR: 'Detalhes para:',
892
+ TEKGRID_LEFT: 'Esquerda',
893
+ TEKGRID_CENTER: 'Centro',
894
+ TEKGRID_RIGHT: 'Direita',
895
+ TEKGRID_ASC: 'Crescente',
896
+ TEKGRID_DESC: 'Decrescente',
897
+ TEKGRID_SELECT_COLUMN: '(selecione uma ou mais colunas)',
898
+ TEKGRID_SELECT_ALL: 'Selecionar todas',
899
+ TEKGRID_HELPERVALUE_TODAY: 'Hoje',
900
+ TEKGRID_HELPERVALUE_TOMORROW: 'Amanhã',
901
+ TEKGRID_HELPERVALUE_YESTERDAY: 'Ontem',
902
+ TEKGRID_HELPERVALUE_LAST_7_DAYS: 'Últimos 7 Dias',
903
+ TEKGRID_HELPERVALUE_NEXT_7_DAYS: 'Próximos 7 Dias',
904
+ TEKGRID_HELPERVALUE_CURRENT_WEEK: 'Semana Atual',
905
+ TEKGRID_HELPERVALUE_CURRENT_MONTH: 'Mês Atual',
906
+ TEKGRID_HELPERVALUE_CURRENT_YEAR: 'Ano Atual',
907
+ TEKGRID_WITH_GROUPS: '(Com grupos)',
908
+ TEKGRID_GRID_MIRROR: '(Espelho do grid)',
909
+ TEKGRID_NO_DATA: 'Não há dados para gerar o relatório',
910
+ },
911
+ },
912
+ 'en-US': {
913
+ translation: {
914
+ TEKGRID_CONTAINS: 'contains',
915
+ TEKGRID_NOT_CONTAINS: 'does not contain',
916
+ TEKGRID_EQUALS: 'is equal to',
917
+ TEKGRID_NOT_EQUALS: 'is different from',
918
+ TEKGRID_GREATER_THAN: 'is greater than',
919
+ TEKGRID_LESS_THAN: 'is less than',
920
+ TEKGRID_GREATER_THAN_EQUALS: 'is greater or equals to',
921
+ TEKGRID_LESS_THAN_EQUALS: 'is less or equals to',
922
+ TEKGRID_IN: 'is in',
923
+ TEKGRID_NOT_IN: 'is not in',
924
+ TEKGRID_BETWEEN: 'is between',
925
+ TEKGRID_AND: 'and',
926
+ TEKGRID_OR: 'or',
927
+ TEKGRID_HIDE: 'Hide Actions',
928
+ TEKGRID_SHOW: 'Show Actions',
929
+ TEKGRID_ADD: 'Add',
930
+ TEKGRID_DELETE: 'Delete',
931
+ TEKGRID_REFRESH: 'Refresh',
932
+ TEKGRID_COLUMNS: 'Columns',
933
+ TEKGRID_SAVE: 'Save',
934
+ TEKGRID_CANCEL: 'Cancel',
935
+ TEKGRID_APPLY: 'Apply',
936
+ TEKGRID_FILTER: 'Filter',
937
+ TEKGRID_MULTIPLE_VALUE_HINT: 'Separate values using ";"',
938
+ TEKGRID_EXPORT: 'Export',
939
+ TEKGRID_EXPORT_AS: 'Export as {{ type }}',
940
+ TEKGRID_PORTRAIT: 'Portrait',
941
+ TEKGRID_LANDSCAPE: 'Landscape',
942
+ TEKGRID_COLUMN_VISIBLE: 'Visible',
943
+ TEKGRID_COLUMN_GROUPED: 'Grouped',
944
+ TEKGRID_COLUMN_AGGREGATION: 'Aggregation',
945
+ TEKGRID_COLUMN_LABEL: 'Label',
946
+ TEKGRID_COLUMN_ALIGNMENT: 'Alignment',
947
+ TEKGRID_COLUMN_GROUP_OPENED: 'Opened (group)',
948
+ TEKGRID_COLUMN_ORDER: 'Order',
949
+ TEKGRID_COLUMN_ORDER_DIRECTION: 'Direction (order)',
950
+ TEKGRID_AGGREGATION_SUM: 'Sum',
951
+ TEKGRID_AGGREGATION_AVG: 'Average',
952
+ TEKGRID_AGGREGATION_MAX: 'Maximum',
953
+ TEKGRID_AGGREGATION_MIN: 'Minimum',
954
+ TEKGRID_AGGREGATION_COUNT: 'Count',
955
+ TEKGRID_MORE_OPTIONS: 'More options',
956
+ TEKGRID_COLUMNS_OPTIONS: 'Columns configuration',
957
+ TEKGRID_CLOSE: 'Close',
958
+ TEKGRID_FIXED_COLUMNS: 'Fixed columns',
959
+ TEKGRID_VISIBLE_COLUMNS: 'Visible columns',
960
+ TEKGRID_GROUPED_COLUMNS: 'Grouped columns',
961
+ TEKGRID_ORDER: 'Order',
962
+ TEKGRID_OTHER_COLUMNS: 'Other columns',
963
+ TEKGRID_DROP_COLUMNS: 'Drop columns here',
964
+ TEKGRID_DETAILS_FOR: 'Details for:',
965
+ TEKGRID_LEFT: 'Left',
966
+ TEKGRID_CENTER: 'Center',
967
+ TEKGRID_RIGHT: 'Right',
968
+ TEKGRID_ASC: 'Ascending',
969
+ TEKGRID_DESC: 'Descending',
970
+ TEKGRID_SELECT_COLUMN: '(select one or more columns)',
971
+ TEKGRID_SELECT_ALL: 'Select all',
972
+ TEKGRID_HELPERVALUE_TODAY: 'Today',
973
+ TEKGRID_HELPERVALUE_TOMORROW: 'Tomorrow',
974
+ TEKGRID_HELPERVALUE_YESTERDAY: 'Yesterday',
975
+ TEKGRID_HELPERVALUE_LAST_7_DAYS: 'Last 7 Days',
976
+ TEKGRID_HELPERVALUE_NEXT_7_DAYS: 'Next 7 Days',
977
+ TEKGRID_HELPERVALUE_CURRENT_WEEK: 'Current Week',
978
+ TEKGRID_HELPERVALUE_CURRENT_MONTH: 'Current Month',
979
+ TEKGRID_HELPERVALUE_CURRENT_YEAR: 'Current Year',
980
+ TEKGRID_WITH_GROUPS: '(With groups)',
981
+ TEKGRID_GRID_MIRROR: '(Grid mirror)',
982
+ TEKGRID_NO_DATA: 'There is no data to generate the report',
983
+ },
984
+ },
985
+ 'es-CL': {
986
+ translation: {
987
+ TEKGRID_CONTAINS: 'contiene',
988
+ TEKGRID_NOT_CONTAINS: 'no contiene',
989
+ TEKGRID_EQUALS: 'igual',
990
+ TEKGRID_NOT_EQUALS: 'es diferente de',
991
+ TEKGRID_GREATER_THAN: 'es mayor que',
992
+ TEKGRID_LESS_THAN: 'es menor que',
993
+ TEKGRID_GREATER_THAN_EQUALS: 'es mayor o igual que',
994
+ TEKGRID_LESS_THAN_EQUALS: 'es menor o igual que',
995
+ TEKGRID_IN: 'uno de los valores',
996
+ TEKGRID_NOT_IN: 'ninguno de los valores',
997
+ TEKGRID_BETWEEN: 'está entre',
998
+ TEKGRID_AND: 'e',
999
+ TEKGRID_OR: 'o',
1000
+ TEKGRID_HIDE: 'Ocultar Acciones',
1001
+ TEKGRID_SHOW: 'Mostrar Acciones',
1002
+ TEKGRID_ADD: 'Añadir',
1003
+ TEKGRID_DELETE: 'Eliminar',
1004
+ TEKGRID_REFRESH: 'Actualizar',
1005
+ TEKGRID_COLUMNS: 'Colunas',
1006
+ TEKGRID_SAVE: 'Guardar',
1007
+ TEKGRID_CANCEL: 'Cancelar',
1008
+ TEKGRID_APPLY: 'Aplicar',
1009
+ TEKGRID_FILTER: 'Filtro',
1010
+ TEKGRID_MULTIPLE_VALUE_HINT: 'Separe los valores usando ";"',
1011
+ TEKGRID_EXPORT: 'Exportar',
1012
+ TEKGRID_EXPORT_AS: 'Exportar como {{ type }}',
1013
+ TEKGRID_PORTRAIT: 'Vertical',
1014
+ TEKGRID_LANDSCAPE: 'Horizontal',
1015
+ TEKGRID_COLUMN_VISIBLE: 'Visible',
1016
+ TEKGRID_COLUMN_GROUPED: 'Grupo',
1017
+ TEKGRID_COLUMN_AGGREGATION: 'Totalización',
1018
+ TEKGRID_COLUMN_LABEL: 'Etiqueta',
1019
+ TEKGRID_COLUMN_ALIGNMENT: 'alineación',
1020
+ TEKGRID_COLUMN_GROUP_OPENED: 'Abierto (grupo)',
1021
+ TEKGRID_COLUMN_ORDER: 'Orden',
1022
+ TEKGRID_COLUMN_ORDER_DIRECTION: 'Dirección (orden)',
1023
+ TEKGRID_AGGREGATION_SUM: 'Suma',
1024
+ TEKGRID_AGGREGATION_AVG: 'Media',
1025
+ TEKGRID_AGGREGATION_MAX: 'Máximo',
1026
+ TEKGRID_AGGREGATION_MIN: 'Mínimo',
1027
+ TEKGRID_AGGREGATION_COUNT: 'Contar',
1028
+ TEKGRID_MORE_OPTIONS: 'Mas opciones',
1029
+ TEKGRID_COLUMNS_OPTIONS: 'Configuración de columna',
1030
+ TEKGRID_CLOSE: 'Cerrar',
1031
+ TEKGRID_FIXED_COLUMNS: 'Columnas fijas',
1032
+ TEKGRID_VISIBLE_COLUMNS: 'Columnas visibles',
1033
+ TEKGRID_GROUPED_COLUMNS: 'Columnas agrupadas',
1034
+ TEKGRID_ORDER: 'Orden',
1035
+ TEKGRID_OTHER_COLUMNS: 'Otras columnas',
1036
+ TEKGRID_DROP_COLUMNS: 'Arrastra columnas aquí',
1037
+ TEKGRID_DETAILS_FOR: 'Detalles para',
1038
+ TEKGRID_LEFT: 'Izquierda',
1039
+ TEKGRID_CENTER: 'Centro',
1040
+ TEKGRID_RIGHT: 'Derecha',
1041
+ TEKGRID_ASC: 'Creciente',
1042
+ TEKGRID_DESC: 'Decreciente',
1043
+ TEKGRID_SELECT_COLUMN: '(seleccione una o más columnas)',
1044
+ TEKGRID_SELECT_ALL: 'Seleccionar todas',
1045
+ TEKGRID_HELPERVALUE_TODAY: 'Hoy',
1046
+ TEKGRID_HELPERVALUE_TOMORROW: 'Mañana',
1047
+ TEKGRID_HELPERVALUE_YESTERDAY: 'Ayer',
1048
+ TEKGRID_HELPERVALUE_LAST_7_DAYS: 'Últimos 7 días',
1049
+ TEKGRID_HELPERVALUE_NEXT_7_DAYS: 'Próximos 7 días',
1050
+ TEKGRID_HELPERVALUE_CURRENT_WEEK: 'Semana actual',
1051
+ TEKGRID_HELPERVALUE_CURRENT_MONTH: 'Mes actual',
1052
+ TEKGRID_HELPERVALUE_CURRENT_YEAR: 'Año actual',
1053
+ TEKGRID_WITH_GROUPS: '(Con grupos)',
1054
+ TEKGRID_GRID_MIRROR: '(Espejo de grid)',
1055
+ TEKGRID_NO_DATA: 'No hay datos para generar el reporte',
1056
+ },
1057
+ },
1058
+ });
1059
+
1060
+ Messages.add({
1061
+ 'pt-BR': {
1062
+ translation: {
1063
+ NO_NOTIFICATIONS: 'Nenhuma Notificação',
1064
+ MARK_ALL_AS_READ: 'Marcar todas como lidas',
1065
+ NOTIFICATIONS: 'Notificações',
1066
+ SEE_ALL_NOTIFICATIONS: 'Ver todas notificações',
1067
+ UNAVAILABLE_IMAGE: 'Imagem indisponível',
1068
+ REFRESH: 'Atualizar',
1069
+ ACTIONS: 'Ações',
1070
+ FILTER: 'Filtro',
1071
+ LAYOUT: 'Layout: ',
1072
+ NEW_LAYOUT: 'Novo layout',
1073
+ DEFAULT_LAYOUT: 'Padrão',
1074
+ LAYOUT_MODIFIED:
1075
+ 'O layout atual foi modificado. Crie um novo layout, sobrescreva um existente ou descarte as alterações', // eslint-disable-line
1076
+ LAYOUT_NOT_MODIFIED: 'Crie um novo layout ou aplique um dos layouts já existentes',
1077
+ LAYOUT_DISCART_CHANGES: 'Descartar alterações',
1078
+ },
1079
+ },
1080
+ 'en-US': {
1081
+ translation: {
1082
+ NO_NOTIFICATIONS: 'No Notifications',
1083
+ MARK_ALL_AS_READ: 'Mark all as read',
1084
+ NOTIFICATIONS: 'Notifications',
1085
+ SEE_ALL_NOTIFICATIONS: 'See all notifications',
1086
+ UNAVAILABLE_IMAGE: 'Unavailable image',
1087
+ REFRESH: 'Refresh',
1088
+ ACTIONS: 'Actions',
1089
+ FILTER: 'Filter',
1090
+ LAYOUT: 'Layout: ',
1091
+ NEW_LAYOUT: 'New layout',
1092
+ DEFAULT_LAYOUT: 'Default',
1093
+ LAYOUT_MODIFIED:
1094
+ 'The current layout has been modified. Create a new layout, overwrite an existing one or discard changes', // eslint-disable-line
1095
+ LAYOUT_NOT_MODIFIED: 'Create a new layout or apply one of the existing layouts',
1096
+ LAYOUT_DISCART_CHANGES: 'Discard changes',
1097
+ },
1098
+ },
1099
+ 'es-CL': {
1100
+ translation: {
1101
+ NO_NOTIFICATIONS: 'Sin Notificación',
1102
+ MARK_ALL_AS_READ: 'Marcar todo como leído',
1103
+ NOTIFICATIONS: 'Notificaciones',
1104
+ SEE_ALL_NOTIFICATIONS: 'Ver todas las notificaciones',
1105
+ UNAVAILABLE_IMAGE: 'Imagen no disponible',
1106
+ REFRESH: 'Actualizar',
1107
+ ACTIONS: 'Acciones',
1108
+ FILTER: 'Filtro',
1109
+ LAYOUT: 'Disposición: ',
1110
+ NEW_LAYOUT: 'Nueva disposición',
1111
+ DEFAULT_LAYOUT: 'Default',
1112
+ LAYOUT_MODIFIED:
1113
+ 'La disposición actual ha sido modificada. Cree una nueva disposición, sobrescriba una existente o descarte los cambios', // eslint-disable-line
1114
+ LAYOUT_NOT_MODIFIED: 'Cree una nueva disposición o aplique una de las disposiciones existentes',
1115
+ LAYOUT_DISCART_CHANGES: 'Descartar los cambios',
1116
+ },
1117
+ },
1118
+ });