@sankhyalabs/ezui 0.0.0-bugfix-dev-KB-77074.0 → 0.0.0-bugfix-dev-KB-75047.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/DataBinder-3b083480.js +445 -0
- package/dist/cjs/FocusResolver-885f2173.js +35 -0
- package/dist/cjs/ez-actions-button.cjs.entry.js +1 -1
- package/dist/cjs/ez-alert-list.cjs.entry.js +1 -1
- package/dist/cjs/ez-alert.cjs.entry.js +1 -1
- package/dist/cjs/ez-application.cjs.entry.js +1 -1
- package/dist/cjs/ez-badge.cjs.entry.js +1 -1
- package/dist/cjs/ez-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ez-button.cjs.entry.js +2 -2
- package/dist/cjs/ez-calendar.cjs.entry.js +1 -1
- package/dist/cjs/ez-card-item_3.cjs.entry.js +13 -20
- package/dist/cjs/ez-chart.cjs.entry.js +2 -2
- package/dist/cjs/ez-check.cjs.entry.js +1 -1
- package/dist/cjs/ez-chip.cjs.entry.js +1 -1
- package/dist/cjs/ez-collapsible-box.cjs.entry.js +1 -1
- package/dist/cjs/ez-combo-box.cjs.entry.js +49 -13
- package/dist/cjs/ez-custom-form-input_2.cjs.entry.js +5 -4
- package/dist/cjs/ez-date-input.cjs.entry.js +9 -3
- package/dist/cjs/ez-date-time-input.cjs.entry.js +9 -3
- package/dist/cjs/ez-dialog.cjs.entry.js +10 -2
- package/dist/cjs/ez-dropdown_2.cjs.entry.js +1 -1
- package/dist/cjs/ez-file-item.cjs.entry.js +1 -1
- package/dist/cjs/ez-form-view.cjs.entry.js +3 -3
- package/dist/cjs/ez-form.cjs.entry.js +6 -326
- package/dist/cjs/ez-grid.cjs.entry.js +14615 -70501
- package/dist/cjs/ez-guide-navigator.cjs.entry.js +1 -1
- package/dist/cjs/ez-icon.cjs.entry.js +1 -1
- package/dist/cjs/ez-list.cjs.entry.js +152 -101
- package/dist/cjs/ez-loading-bar.cjs.entry.js +1 -1
- package/dist/cjs/ez-modal-container.cjs.entry.js +1 -1
- package/dist/cjs/ez-modal.cjs.entry.js +2 -2
- package/dist/cjs/ez-multi-selection-list.cjs.entry.js +1 -1
- package/dist/cjs/ez-number-input.cjs.entry.js +9 -2
- package/dist/cjs/ez-popover.cjs.entry.js +2 -2
- package/dist/cjs/ez-popup.cjs.entry.js +2 -2
- package/dist/cjs/ez-radio-button.cjs.entry.js +1 -1
- package/dist/cjs/ez-scroller_2.cjs.entry.js +1 -1
- package/dist/cjs/ez-search.cjs.entry.js +69 -20
- package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +1 -1
- package/dist/cjs/ez-split-button.cjs.entry.js +2 -2
- package/dist/cjs/ez-split-item.cjs.entry.js +1 -1
- package/dist/cjs/ez-split-panel.cjs.entry.js +1 -1
- package/dist/cjs/ez-tabselector.cjs.entry.js +1 -1
- package/dist/cjs/ez-text-area.cjs.entry.js +67 -5
- package/dist/cjs/ez-text-input.cjs.entry.js +80 -8
- package/dist/cjs/ez-time-input.cjs.entry.js +7 -1
- package/dist/cjs/ez-toast.cjs.entry.js +1 -1
- package/dist/cjs/ez-tree.cjs.entry.js +1 -1
- package/dist/cjs/ez-upload.cjs.entry.js +1 -1
- package/dist/cjs/ez-view-stack.cjs.entry.js +1 -1
- package/dist/cjs/ezui.cjs.js +2 -2
- package/dist/cjs/filter-column.cjs.entry.js +1 -1
- package/dist/cjs/{index-a7b0c73d.js → index-9e5554cb.js} +3 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/ez-button/ez-button.css +2 -2
- package/dist/collection/components/ez-card-item/ez-card-item.css +14 -5
- package/dist/collection/components/ez-combo-box/ez-combo-box.css +12 -0
- package/dist/collection/components/ez-combo-box/ez-combo-box.js +76 -15
- package/dist/collection/components/ez-date-input/ez-date-input.js +35 -4
- package/dist/collection/components/ez-date-time-input/ez-date-time-input.js +35 -4
- package/dist/collection/components/ez-dialog/ez-dialog.js +9 -1
- package/dist/collection/components/ez-filter-input/ez-filter-input.css +0 -11
- package/dist/collection/components/ez-filter-input/ez-filter-input.js +22 -52
- package/dist/collection/components/ez-form/ez-form.js +1 -0
- package/dist/collection/components/ez-form-view/custom-input/ez-custom-form-input.js +3 -2
- package/dist/collection/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.js +2 -2
- package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +96 -27
- package/dist/collection/components/ez-grid/controller/ag-grid/DataSource.js +8 -0
- package/dist/collection/components/ez-grid/controller/ag-grid/GridEditionManager.js +164 -46
- package/dist/collection/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.js +7 -0
- package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/ComboBox.tpl.js +1 -0
- package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/DateInput.tpl.js +1 -0
- package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/NumberInput.tpl.js +1 -0
- package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/Search.tpl.js +1 -0
- package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/TextInput.tpl.js +4 -1
- package/dist/collection/components/ez-grid/ez-grid.js +90 -3
- package/dist/collection/components/ez-list/ez-list.css +5 -5
- package/dist/collection/components/ez-list/ez-list.js +152 -170
- package/dist/collection/components/ez-modal/ez-modal.css +4 -0
- package/dist/collection/components/ez-modal/ez-modal.js +2 -2
- package/dist/collection/components/ez-number-input/ez-number-input.css +8 -0
- package/dist/collection/components/ez-number-input/ez-number-input.js +25 -0
- package/dist/collection/components/ez-popover/ez-popover.css +3 -10
- package/dist/collection/components/ez-popup/ez-popup.js +1 -1
- package/dist/collection/components/ez-search/ez-search.css +1 -1
- package/dist/collection/components/ez-search/ez-search.js +95 -21
- package/dist/collection/components/ez-split-button/ez-split-button.css +2 -2
- package/dist/collection/components/ez-text-area/ez-text-area.css +49 -0
- package/dist/collection/components/ez-text-area/ez-text-area.js +102 -2
- package/dist/collection/components/ez-text-input/ez-text-input.css +33 -53
- package/dist/collection/components/ez-text-input/ez-text-input.js +88 -6
- package/dist/collection/components/ez-time-input/ez-time-input.js +24 -0
- package/dist/collection/utils/FocusResolver.js +31 -0
- package/dist/collection/utils/ResponsiveInputUtils.js +26 -0
- package/dist/collection/utils/form/DataBinder.js +18 -3
- package/dist/collection/utils/form/FormMetadata.js +1 -1
- package/dist/collection/utils/interfaces/AbstractFieldMetadata.js +1 -1
- package/dist/custom-elements/index.js +15360 -70903
- package/dist/esm/DataBinder-02fa9bb9.js +441 -0
- package/dist/esm/FocusResolver-1ccbf850.js +33 -0
- package/dist/esm/ez-actions-button.entry.js +1 -1
- package/dist/esm/ez-alert-list.entry.js +1 -1
- package/dist/esm/ez-alert.entry.js +1 -1
- package/dist/esm/ez-application.entry.js +1 -1
- package/dist/esm/ez-badge.entry.js +1 -1
- package/dist/esm/ez-breadcrumb.entry.js +1 -1
- package/dist/esm/ez-button.entry.js +2 -2
- package/dist/esm/ez-calendar.entry.js +1 -1
- package/dist/esm/ez-card-item_3.entry.js +13 -20
- package/dist/esm/ez-chart.entry.js +2 -2
- package/dist/esm/ez-check.entry.js +1 -1
- package/dist/esm/ez-chip.entry.js +1 -1
- package/dist/esm/ez-collapsible-box.entry.js +1 -1
- package/dist/esm/ez-combo-box.entry.js +50 -14
- package/dist/esm/ez-custom-form-input_2.entry.js +5 -4
- package/dist/esm/ez-date-input.entry.js +9 -3
- package/dist/esm/ez-date-time-input.entry.js +9 -3
- package/dist/esm/ez-dialog.entry.js +10 -2
- package/dist/esm/ez-dropdown_2.entry.js +1 -1
- package/dist/esm/ez-file-item.entry.js +1 -1
- package/dist/esm/ez-form-view.entry.js +3 -3
- package/dist/esm/ez-form.entry.js +5 -325
- package/dist/esm/ez-grid.entry.js +14585 -70471
- package/dist/esm/ez-guide-navigator.entry.js +1 -1
- package/dist/esm/ez-icon.entry.js +1 -1
- package/dist/esm/ez-list.entry.js +153 -102
- package/dist/esm/ez-loading-bar.entry.js +1 -1
- package/dist/esm/ez-modal-container.entry.js +1 -1
- package/dist/esm/ez-modal.entry.js +2 -2
- package/dist/esm/ez-multi-selection-list.entry.js +1 -1
- package/dist/esm/ez-number-input.entry.js +9 -2
- package/dist/esm/ez-popover.entry.js +2 -2
- package/dist/esm/ez-popup.entry.js +2 -2
- package/dist/esm/ez-radio-button.entry.js +1 -1
- package/dist/esm/ez-scroller_2.entry.js +1 -1
- package/dist/esm/ez-search.entry.js +69 -20
- package/dist/esm/ez-sidebar-navigator.entry.js +1 -1
- package/dist/esm/ez-split-button.entry.js +2 -2
- package/dist/esm/ez-split-item.entry.js +1 -1
- package/dist/esm/ez-split-panel.entry.js +1 -1
- package/dist/esm/ez-tabselector.entry.js +1 -1
- package/dist/esm/ez-text-area.entry.js +67 -5
- package/dist/esm/ez-text-input.entry.js +80 -8
- package/dist/esm/ez-time-input.entry.js +7 -1
- package/dist/esm/ez-toast.entry.js +1 -1
- package/dist/esm/ez-tree.entry.js +1 -1
- package/dist/esm/ez-upload.entry.js +1 -1
- package/dist/esm/ez-view-stack.entry.js +1 -1
- package/dist/esm/ezui.js +3 -3
- package/dist/esm/filter-column.entry.js +1 -1
- package/dist/esm/{index-baa5e267.js → index-5a720e56.js} +3 -1
- package/dist/esm/loader.js +3 -3
- package/dist/ezui/ezui.esm.js +1 -1
- package/dist/ezui/{p-44caad9a.entry.js → p-0378416a.entry.js} +1 -1
- package/dist/ezui/p-076e868b.entry.js +1 -0
- package/dist/ezui/p-0e1cc2d1.entry.js +1 -0
- package/dist/ezui/{p-1285c902.entry.js → p-11b09aa1.entry.js} +1 -1
- package/dist/ezui/{p-77a4bd35.entry.js → p-11bfeca3.entry.js} +1 -1
- package/dist/ezui/p-16e21a40.entry.js +1 -0
- package/dist/ezui/p-1af7fae4.entry.js +1 -0
- package/dist/ezui/{p-8888d9ed.entry.js → p-1b08bf3c.entry.js} +1 -1
- package/dist/ezui/{p-a2e5b8c3.entry.js → p-2f53435e.entry.js} +1 -1
- package/dist/ezui/{p-baf80b13.entry.js → p-30951bd7.entry.js} +1 -1
- package/dist/ezui/p-33675dae.entry.js +1 -0
- package/dist/ezui/p-3af64edd.entry.js +1 -0
- package/dist/ezui/p-3cc9b84a.entry.js +1 -0
- package/dist/ezui/p-3d38bfea.entry.js +1 -0
- package/dist/ezui/{p-7bc07c31.entry.js → p-3f8c33e0.entry.js} +1 -1
- package/dist/ezui/p-455e737c.js +1 -0
- package/dist/ezui/{p-6d79930d.entry.js → p-554522db.entry.js} +1 -1
- package/dist/ezui/{p-1f50fa05.entry.js → p-6b51c9cc.entry.js} +1 -1
- package/dist/ezui/p-6bda82d1.entry.js +1 -0
- package/dist/ezui/p-6d31c43c.entry.js +1 -0
- package/dist/ezui/p-6ec40dec.entry.js +1 -0
- package/dist/ezui/p-6f0422ff.entry.js +309 -0
- package/dist/ezui/{p-5ed81457.entry.js → p-6fc26622.entry.js} +1 -1
- package/dist/ezui/{p-f9e551de.entry.js → p-70f1c812.entry.js} +1 -1
- package/dist/ezui/{p-555c9018.entry.js → p-7567ccdd.entry.js} +1 -1
- package/dist/ezui/p-7de7baa3.entry.js +1 -0
- package/dist/ezui/p-7f5afb1f.entry.js +1 -0
- package/dist/ezui/{p-1e7a8633.entry.js → p-81461d2f.entry.js} +1 -1
- package/dist/ezui/{p-8df1ca33.entry.js → p-82fa4b09.entry.js} +1 -1
- package/dist/ezui/{p-bcb53f27.entry.js → p-868b56f7.entry.js} +1 -1
- package/dist/ezui/p-8f026744.entry.js +1 -0
- package/dist/ezui/{p-09de35a2.entry.js → p-91ccae0c.entry.js} +1 -1
- package/dist/ezui/{p-c0d9c4f8.entry.js → p-92748142.entry.js} +1 -1
- package/dist/ezui/{p-c4320a39.entry.js → p-a563df31.entry.js} +1 -1
- package/dist/ezui/{p-990b4318.entry.js → p-a921e3e7.entry.js} +1 -1
- package/dist/ezui/{p-17be134a.entry.js → p-b2f6bc0a.entry.js} +1 -1
- package/dist/ezui/{p-c3045972.entry.js → p-b858fc6e.entry.js} +1 -1
- package/dist/ezui/{p-e347df9c.entry.js → p-bef7daac.entry.js} +1 -1
- package/dist/ezui/p-bfc30e61.entry.js +1 -0
- package/dist/ezui/p-bfc59380.entry.js +1 -0
- package/dist/ezui/{p-9f5fa3f9.entry.js → p-c2b20f78.entry.js} +1 -1
- package/dist/ezui/p-d27b4b3e.entry.js +1 -0
- package/dist/ezui/p-d960a031.entry.js +1 -0
- package/dist/ezui/p-dc628ed3.js +1 -0
- package/dist/ezui/p-dfca5946.entry.js +1 -0
- package/dist/ezui/{p-7fdd479f.entry.js → p-e18d9e6a.entry.js} +1 -1
- package/dist/ezui/{p-23a36bb6.js → p-e4c7eb39.js} +2 -2
- package/dist/ezui/{p-0306dff7.entry.js → p-e6b38ade.entry.js} +1 -1
- package/dist/ezui/{p-90bcd2ba.entry.js → p-e7395eae.entry.js} +1 -1
- package/dist/ezui/p-e80dcf86.entry.js +1 -0
- package/dist/ezui/{p-650e4b6d.entry.js → p-f1c2c19e.entry.js} +1 -1
- package/dist/ezui/{p-6e429cff.entry.js → p-fc194825.entry.js} +1 -1
- package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +7 -1
- package/dist/types/components/ez-date-input/ez-date-input.d.ts +6 -1
- package/dist/types/components/ez-date-time-input/ez-date-time-input.d.ts +6 -1
- package/dist/types/components/ez-dialog/ez-dialog.d.ts +2 -0
- package/dist/types/components/ez-filter-input/ez-filter-input.d.ts +4 -11
- package/dist/types/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.d.ts +1 -1
- package/dist/types/components/ez-grid/controller/EzGridController.d.ts +12 -0
- package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +7 -2
- package/dist/types/components/ez-grid/controller/ag-grid/DataSource.d.ts +2 -1
- package/dist/types/components/ez-grid/controller/ag-grid/GridEditionManager.d.ts +19 -7
- package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.d.ts +3 -1
- package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomCellRender.d.ts +1 -1
- package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomHeader.d.ts +1 -1
- package/dist/types/components/ez-grid/controller/ag-grid/components/cellRendererStatus.d.ts +1 -1
- package/dist/types/components/ez-grid/controller/ag-grid/components/selectionHeader.d.ts +1 -1
- package/dist/types/components/ez-grid/controller/ag-grid/editor/EzCellEditor.d.ts +1 -1
- package/dist/types/components/ez-grid/controller/ag-grid/editor/EzCellRender.d.ts +1 -1
- package/dist/types/components/ez-grid/controller/ag-grid/editor/IUICellEditor.d.ts +1 -0
- package/dist/types/components/ez-grid/controller/ag-grid/mock/Server.d.ts +1 -1
- package/dist/types/components/ez-grid/ez-grid.d.ts +11 -1
- package/dist/types/components/ez-list/ez-list.d.ts +3 -26
- package/dist/types/components/ez-modal/ez-modal.d.ts +1 -1
- package/dist/types/components/ez-number-input/ez-number-input.d.ts +4 -0
- package/dist/types/components/ez-search/ez-search.d.ts +10 -2
- package/dist/types/components/ez-text-area/ez-text-area.d.ts +17 -0
- package/dist/types/components/ez-text-input/ez-text-input.d.ts +9 -0
- package/dist/types/components/ez-time-input/ez-time-input.d.ts +4 -0
- package/dist/types/components.d.ts +109 -44
- package/dist/types/utils/FocusResolver.d.ts +5 -0
- package/dist/types/utils/ResponsiveInputUtils.d.ts +6 -0
- package/dist/types/utils/form/DataBinder.d.ts +3 -0
- package/package.json +11 -4
- package/dist/cjs/RecordValidationProcessor-10846595.js +0 -108
- package/dist/esm/RecordValidationProcessor-9c6cc267.js +0 -105
- package/dist/ezui/p-10820c20.entry.js +0 -1
- package/dist/ezui/p-188f1c4c.entry.js +0 -1
- package/dist/ezui/p-49456b34.entry.js +0 -1
- package/dist/ezui/p-5a90d7d1.entry.js +0 -1
- package/dist/ezui/p-5b205c80.entry.js +0 -1
- package/dist/ezui/p-62732269.entry.js +0 -1
- package/dist/ezui/p-86b6aa01.entry.js +0 -1
- package/dist/ezui/p-9d9ecb7c.entry.js +0 -1
- package/dist/ezui/p-abce5219.entry.js +0 -1
- package/dist/ezui/p-b3b94f72.entry.js +0 -1
- package/dist/ezui/p-b95632e8.entry.js +0 -1
- package/dist/ezui/p-bc2f844e.entry.js +0 -1
- package/dist/ezui/p-bcd47eda.entry.js +0 -1
- package/dist/ezui/p-c3c3d640.entry.js +0 -304
- package/dist/ezui/p-cdc472cc.entry.js +0 -1
- package/dist/ezui/p-d2c06f38.entry.js +0 -1
- package/dist/ezui/p-d8f64bb7.entry.js +0 -1
- package/dist/ezui/p-dc4ada32.entry.js +0 -1
- package/dist/ezui/p-e85c48d7.entry.js +0 -1
- package/dist/ezui/p-f299c608.entry.js +0 -1
- package/dist/ezui/p-f42855b9.js +0 -1
- package/dist/ezui/p-f80ac647.entry.js +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ApplicationContext, DataType, MaskFormatter, NumberUtils, SortMode, StringUtils, UserInterface, } from '@sankhyalabs/core';
|
|
2
|
-
import { Grid
|
|
3
|
-
import {
|
|
1
|
+
import { ApplicationContext, DataType, LockManager, MaskFormatter, NumberUtils, SortMode, StringUtils, UserInterface, } from '@sankhyalabs/core';
|
|
2
|
+
import { Grid } from "@ag-grid-community/core";
|
|
3
|
+
import { LicenseManager } from '@ag-grid-enterprise/core';
|
|
4
4
|
import DataSource from './DataSource';
|
|
5
5
|
import { EzGridCustomHeader } from './components/EzGridCustomHeader';
|
|
6
6
|
import { CellRendererStatus } from './components/cellRendererStatus';
|
|
@@ -8,6 +8,12 @@ import SelectionHeader from './components/selectionHeader';
|
|
|
8
8
|
import gridTerms from './i18n/pt-BR';
|
|
9
9
|
import { DISTINCT_FILTER_NAME_PREFIX, EZ_GRID_LOADING_SOURCE } from '../../../../utils/constants';
|
|
10
10
|
import GridEditionManager from './GridEditionManager';
|
|
11
|
+
import { ModuleRegistry } from '@ag-grid-community/core';
|
|
12
|
+
import { EnterpriseCoreModule } from '@ag-grid-enterprise/core';
|
|
13
|
+
import { RangeSelectionModule } from '@ag-grid-enterprise/range-selection';
|
|
14
|
+
import { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';
|
|
15
|
+
import { ClipboardModule } from '@ag-grid-enterprise/clipboard';
|
|
16
|
+
import { MenuModule } from '@ag-grid-enterprise/menu';
|
|
11
17
|
export default class AgGridController {
|
|
12
18
|
configFilterColumn(filterColumn) {
|
|
13
19
|
this._filterColumn = filterColumn;
|
|
@@ -27,7 +33,7 @@ export default class AgGridController {
|
|
|
27
33
|
var _a;
|
|
28
34
|
(_a = this._filterColumn) === null || _a === void 0 ? void 0 : _a.show(configs);
|
|
29
35
|
}
|
|
30
|
-
constructor(
|
|
36
|
+
constructor(_enterprise) {
|
|
31
37
|
this.DEFAULT_ROW_HEIGHT = 30;
|
|
32
38
|
this.DEFAULT_HEADER_ROW_HEIGHT = 32;
|
|
33
39
|
this.CHECK_BOX_COL_ID = 'checkBoxColumn';
|
|
@@ -43,7 +49,13 @@ export default class AgGridController {
|
|
|
43
49
|
this._customFormatters = new Map();
|
|
44
50
|
this._gridShowDom = false;
|
|
45
51
|
this.peddingExecutionsOnGridShow = [];
|
|
46
|
-
|
|
52
|
+
ModuleRegistry.registerModules([
|
|
53
|
+
EnterpriseCoreModule,
|
|
54
|
+
RangeSelectionModule,
|
|
55
|
+
ServerSideRowModelModule,
|
|
56
|
+
ClipboardModule,
|
|
57
|
+
MenuModule
|
|
58
|
+
]);
|
|
47
59
|
}
|
|
48
60
|
getGridConfig() {
|
|
49
61
|
return this._gridConfig;
|
|
@@ -121,6 +133,7 @@ export default class AgGridController {
|
|
|
121
133
|
var _a;
|
|
122
134
|
this._options = options;
|
|
123
135
|
this._container = container;
|
|
136
|
+
const lockerId = options.enableLockManger ? LockManager.addLockManagerCtxId(this._container) : null;
|
|
124
137
|
if (this._grid === undefined) {
|
|
125
138
|
LicenseManager.setLicenseKey(ApplicationContext.getContextValue('__EZUI__GRID_LICENSE__'));
|
|
126
139
|
this._columnStateChangeCallback = options.onColumnStateChange;
|
|
@@ -128,7 +141,7 @@ export default class AgGridController {
|
|
|
128
141
|
this._doubleClickCallBack = options.onDoubleClick;
|
|
129
142
|
this._multipleSelection = options.allowMultipleSelection;
|
|
130
143
|
this._dataUnit = options.dataUnit;
|
|
131
|
-
this._editionManager = new GridEditionManager(this._dataUnit, options.useEnterLikeTab, options.recordsValidator, options.editionIsDisabled, options.customEditors || this._customEditors, options.customRenders || this._customRenders, options.enableContinuousInsert, options.enableGridInsert);
|
|
144
|
+
this._editionManager = new GridEditionManager(this._dataUnit, options.useEnterLikeTab, options.recordsValidator, options.editionIsDisabled, options.customEditors || this._customEditors, options.customRenders || this._customRenders, options.enableContinuousInsert, options.enableGridInsert, lockerId);
|
|
132
145
|
this._statusResolver = options.statusResolver;
|
|
133
146
|
if (this._dataUnit) {
|
|
134
147
|
this._dataUnit.sortingProvider = this;
|
|
@@ -175,12 +188,7 @@ export default class AgGridController {
|
|
|
175
188
|
this.setOptionsEvents(this._gridOptions);
|
|
176
189
|
this.setOptionsSupress(this._gridOptions);
|
|
177
190
|
this._gridOptions = this._editionManager.configureGrid(this._gridOptions);
|
|
178
|
-
|
|
179
|
-
this._grid = new EnterpriseGrid(container, this._gridOptions);
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
this._grid = new Grid(container, this._gridOptions);
|
|
183
|
-
}
|
|
191
|
+
this._grid = new Grid(container, this._gridOptions);
|
|
184
192
|
const selection = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectionInfo();
|
|
185
193
|
if (selection === null || selection === void 0 ? void 0 : selection.isAllRecords()) {
|
|
186
194
|
this.selectAll(true);
|
|
@@ -340,7 +348,7 @@ export default class AgGridController {
|
|
|
340
348
|
defineRowModelType(opt, sourceOptions) {
|
|
341
349
|
if (this._dataUnit != undefined) {
|
|
342
350
|
opt.rowModelType = 'serverSide';
|
|
343
|
-
opt.serverSideDatasource = new DataSource(this._dataUnit, this, sourceOptions);
|
|
351
|
+
opt.serverSideDatasource = this._dataSource = new DataSource(this._dataUnit, this, sourceOptions);
|
|
344
352
|
opt.serverSideSortOnServer = true;
|
|
345
353
|
opt.columnDefs = this._colDefs;
|
|
346
354
|
}
|
|
@@ -491,7 +499,7 @@ export default class AgGridController {
|
|
|
491
499
|
r.setData(data);
|
|
492
500
|
});
|
|
493
501
|
this._gridOptions.api.refreshCells({ force: true });
|
|
494
|
-
const invalidCell = this._editionManager.
|
|
502
|
+
const invalidCell = this._editionManager.getNextInvalidCell();
|
|
495
503
|
if (invalidCell) {
|
|
496
504
|
const rowNode = this._gridOptions.api.getRowNode(invalidCell.recordId);
|
|
497
505
|
if (rowNode && invalidCell.field) {
|
|
@@ -511,6 +519,7 @@ export default class AgGridController {
|
|
|
511
519
|
if (this._grid === undefined) {
|
|
512
520
|
throw new Error('Erro interno: Grid ainda não inicializado.');
|
|
513
521
|
}
|
|
522
|
+
this._gridOptions.api.clearRangeSelection();
|
|
514
523
|
this._gridOptions.api.refreshServerSide({ purge: true });
|
|
515
524
|
this._options.onRefresh();
|
|
516
525
|
if (scrollToSelectedRow)
|
|
@@ -533,12 +542,15 @@ export default class AgGridController {
|
|
|
533
542
|
}
|
|
534
543
|
setFocus() {
|
|
535
544
|
var _a, _b;
|
|
536
|
-
if ((_b = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.records) === null || _b === void 0 ? void 0 : _b.length) {
|
|
537
|
-
this.setFocusFirstRow();
|
|
538
|
-
}
|
|
539
|
-
else {
|
|
545
|
+
if (!((_b = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.records) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
540
546
|
this.focusOnGridContainer();
|
|
547
|
+
return;
|
|
541
548
|
}
|
|
549
|
+
if (!this._dataUnit.getSelectedRecord()) {
|
|
550
|
+
this.setFocusFirstRow();
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
this.syncSelectWithDataUnit();
|
|
542
554
|
}
|
|
543
555
|
setAutoFocus(autoFocus) {
|
|
544
556
|
var _a;
|
|
@@ -582,6 +594,23 @@ export default class AgGridController {
|
|
|
582
594
|
this.startEditionOnRowByIndex(newRowIndex);
|
|
583
595
|
}
|
|
584
596
|
}
|
|
597
|
+
syncSelectWithDataUnit() {
|
|
598
|
+
const rowNode = this._gridOptions.api.getRowNode(this._dataUnit.getSelectedRecord().__record__id__);
|
|
599
|
+
if ((rowNode === null || rowNode === void 0 ? void 0 : rowNode.rowIndex) < 0)
|
|
600
|
+
return;
|
|
601
|
+
const rowRange = this._gridOptions.api.getCellRanges().find(row => row.startRow.rowIndex === rowNode.rowIndex);
|
|
602
|
+
if ((rowRange === null || rowRange === void 0 ? void 0 : rowRange.columns.length) > 0) {
|
|
603
|
+
if (this._dataUnit.hasNewRecord()) {
|
|
604
|
+
this.startEdition(rowNode.rowIndex, rowRange.columns[0]);
|
|
605
|
+
return;
|
|
606
|
+
}
|
|
607
|
+
this.focusByCollAndRow(rowRange.columns[0], rowNode.rowIndex);
|
|
608
|
+
this._gridOptions.api.addCellRange({ rowStartIndex: rowNode.rowIndex, rowEndIndex: rowNode.rowIndex, columns: rowRange.columns });
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
611
|
+
this._gridOptions.api.clearRangeSelection();
|
|
612
|
+
this.setFocusOnRow(rowNode.rowIndex);
|
|
613
|
+
}
|
|
585
614
|
startEdition(rowIndex, firstCol) {
|
|
586
615
|
this._gridOptions.api.clearRangeSelection();
|
|
587
616
|
this._gridOptions.api.addCellRange({ rowStartIndex: rowIndex, rowEndIndex: rowIndex, columns: [firstCol] });
|
|
@@ -612,6 +641,7 @@ export default class AgGridController {
|
|
|
612
641
|
let displayedColumns = this._gridOptions.columnApi.getAllDisplayedColumns();
|
|
613
642
|
let firstColl = displayedColumns.find(column => column.getColDef().headerName !== '');
|
|
614
643
|
this.focusByCollAndRow(firstColl, rowIndex);
|
|
644
|
+
this._gridOptions.api.addCellRange({ rowStartIndex: rowIndex, rowEndIndex: rowIndex, columns: [firstColl] });
|
|
615
645
|
}
|
|
616
646
|
focusByCollAndRow(firstCell, rowIndex) {
|
|
617
647
|
this._gridOptions.api.ensureColumnVisible(firstCell);
|
|
@@ -651,6 +681,14 @@ export default class AgGridController {
|
|
|
651
681
|
this._gridOptions.api.setColumnDefs(this._colDefs);
|
|
652
682
|
}
|
|
653
683
|
}
|
|
684
|
+
hideSelectionColumn() {
|
|
685
|
+
var _a, _b;
|
|
686
|
+
(_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.columnApi) === null || _b === void 0 ? void 0 : _b.setColumnVisible(this.CHECK_BOX_COL_ID, false);
|
|
687
|
+
}
|
|
688
|
+
showSelectionColumn() {
|
|
689
|
+
var _a, _b;
|
|
690
|
+
(_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.columnApi) === null || _b === void 0 ? void 0 : _b.setColumnVisible(this.CHECK_BOX_COL_ID, true);
|
|
691
|
+
}
|
|
654
692
|
getColumnsDef() {
|
|
655
693
|
if (this._grid === undefined) {
|
|
656
694
|
throw new Error('Erro interno: Grid ainda não inicializado.');
|
|
@@ -935,18 +973,24 @@ export default class AgGridController {
|
|
|
935
973
|
return false;
|
|
936
974
|
}
|
|
937
975
|
onSelectionChange(event) {
|
|
976
|
+
var _a, _b;
|
|
977
|
+
const selectedRowId = (_b = (_a = event.api.getSelectedNodes()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id;
|
|
978
|
+
const isNewRecord = this._dataUnit.isNewRecord(selectedRowId);
|
|
938
979
|
if (!this._selectionChangeCallback)
|
|
939
980
|
return;
|
|
940
981
|
clearTimeout(this._selectionChangeDeboucing);
|
|
941
|
-
this._selectionChangeDeboucing = window.setTimeout(() => {
|
|
942
|
-
this.handleExecuteProceedAutosave();
|
|
982
|
+
this._selectionChangeDeboucing = window.setTimeout(async () => {
|
|
983
|
+
const saveSuccess = (!isNewRecord && selectedRowId) ? await this.handleExecuteProceedAutosave() : true;
|
|
984
|
+
if (!saveSuccess)
|
|
985
|
+
return;
|
|
943
986
|
this.processBuildSelectionChangeCallback(event);
|
|
944
987
|
}, 0);
|
|
945
988
|
}
|
|
946
|
-
handleExecuteProceedAutosave() {
|
|
989
|
+
async handleExecuteProceedAutosave() {
|
|
947
990
|
if (this._gridShowDom) {
|
|
948
|
-
this._editionManager.proceedAutoSave();
|
|
991
|
+
return await this._editionManager.proceedAutoSave();
|
|
949
992
|
}
|
|
993
|
+
return true;
|
|
950
994
|
}
|
|
951
995
|
processBuildSelectionChangeCallback(event) {
|
|
952
996
|
if (this._dataUnit) {
|
|
@@ -971,7 +1015,12 @@ export default class AgGridController {
|
|
|
971
1015
|
});
|
|
972
1016
|
}
|
|
973
1017
|
onRowDoubleClick(evt) {
|
|
974
|
-
|
|
1018
|
+
var _a, _b;
|
|
1019
|
+
if (this._doubleClickCallBack && (!this._options.enableGridInsert || !this._dataUnit.hasNewRecord())) {
|
|
1020
|
+
/**
|
|
1021
|
+
* Evita mudança de view e a grade permanecer no modo de edição.
|
|
1022
|
+
*/
|
|
1023
|
+
(_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.api) === null || _b === void 0 ? void 0 : _b.stopEditing();
|
|
975
1024
|
this._doubleClickCallBack(evt.data);
|
|
976
1025
|
}
|
|
977
1026
|
}
|
|
@@ -987,22 +1036,29 @@ export default class AgGridController {
|
|
|
987
1036
|
}
|
|
988
1037
|
}
|
|
989
1038
|
setCellEditors(customEditors) {
|
|
990
|
-
var _a;
|
|
1039
|
+
var _a, _b, _c, _d, _e;
|
|
991
1040
|
if (!this._editionManager) {
|
|
992
1041
|
this._customEditors = customEditors;
|
|
993
1042
|
return;
|
|
994
1043
|
}
|
|
1044
|
+
const currentEditingCells = (_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.api) === null || _b === void 0 ? void 0 : _b.getEditingCells();
|
|
995
1045
|
this._editionManager.setCellEditors(customEditors);
|
|
996
|
-
(
|
|
1046
|
+
if ((currentEditingCells === null || currentEditingCells === void 0 ? void 0 : currentEditingCells.length) > 0) {
|
|
1047
|
+
this._gridOptions.api.startEditingCell({ colKey: (_d = (_c = currentEditingCells[0]) === null || _c === void 0 ? void 0 : _c.column) === null || _d === void 0 ? void 0 : _d.getColId(), rowIndex: (_e = currentEditingCells[0]) === null || _e === void 0 ? void 0 : _e.rowIndex });
|
|
1048
|
+
}
|
|
997
1049
|
}
|
|
998
1050
|
setCellRenders(customRenders) {
|
|
999
|
-
var _a;
|
|
1051
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1000
1052
|
if (!this._editionManager) {
|
|
1001
1053
|
this._customRenders = customRenders;
|
|
1002
1054
|
return;
|
|
1003
1055
|
}
|
|
1004
1056
|
this._editionManager.setCellRenders(customRenders);
|
|
1005
|
-
(_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.api.
|
|
1057
|
+
const currentEditingCells = (_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.api) === null || _b === void 0 ? void 0 : _b.getEditingCells();
|
|
1058
|
+
(_c = this._gridOptions) === null || _c === void 0 ? void 0 : _c.api.redrawRows();
|
|
1059
|
+
if ((currentEditingCells === null || currentEditingCells === void 0 ? void 0 : currentEditingCells.length) > 0) {
|
|
1060
|
+
this._gridOptions.api.startEditingCell({ colKey: (_e = (_d = currentEditingCells[0]) === null || _d === void 0 ? void 0 : _d.column) === null || _e === void 0 ? void 0 : _e.getColId(), rowIndex: (_f = currentEditingCells[0]) === null || _f === void 0 ? void 0 : _f.rowIndex });
|
|
1061
|
+
}
|
|
1006
1062
|
}
|
|
1007
1063
|
clearInvalidCells(stopEdition) {
|
|
1008
1064
|
if (!this._editionManager)
|
|
@@ -1014,6 +1070,19 @@ export default class AgGridController {
|
|
|
1014
1070
|
this._editionManager.processContinuousInsert();
|
|
1015
1071
|
}
|
|
1016
1072
|
destroy() {
|
|
1073
|
+
var _a;
|
|
1017
1074
|
this.observer.disconnect();
|
|
1075
|
+
(_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
1076
|
+
}
|
|
1077
|
+
registryListeners() {
|
|
1078
|
+
var _a;
|
|
1079
|
+
(_a = this._dataSource) === null || _a === void 0 ? void 0 : _a.registryListeners();
|
|
1080
|
+
}
|
|
1081
|
+
resetPaginationState() {
|
|
1082
|
+
var _a, _b;
|
|
1083
|
+
(_b = (_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.api) === null || _b === void 0 ? void 0 : _b.clearRangeSelection();
|
|
1084
|
+
}
|
|
1085
|
+
stopEdit() {
|
|
1086
|
+
this._gridOptions.api.stopEditing();
|
|
1018
1087
|
}
|
|
1019
1088
|
}
|
|
@@ -6,12 +6,14 @@ export default class DataSource {
|
|
|
6
6
|
this._controller.clearInvalidCells();
|
|
7
7
|
this.handleRefreshOrReload(action);
|
|
8
8
|
this._controller.processContinuousInsert();
|
|
9
|
+
this._controller.showSelectionColumn();
|
|
9
10
|
}
|
|
10
11
|
handleEditionCanceled(action) {
|
|
11
12
|
if (this._options.enableGridInsert) {
|
|
12
13
|
this._controller.processEditionCanceled();
|
|
13
14
|
}
|
|
14
15
|
this.handleRefreshOrReload(action);
|
|
16
|
+
this._controller.showSelectionColumn();
|
|
15
17
|
}
|
|
16
18
|
handleSavingCanceled(action) {
|
|
17
19
|
var _a, _b, _c, _d;
|
|
@@ -66,6 +68,7 @@ export default class DataSource {
|
|
|
66
68
|
}
|
|
67
69
|
handleRecordsAdded() {
|
|
68
70
|
if (this._options.enableGridInsert) {
|
|
71
|
+
this._controller.hideSelectionColumn();
|
|
69
72
|
this._controller.refresh();
|
|
70
73
|
this.focusOnNewRecord();
|
|
71
74
|
}
|
|
@@ -213,6 +216,11 @@ export default class DataSource {
|
|
|
213
216
|
destroy() {
|
|
214
217
|
this._dataUnit.unsubscribe(this.duObserver);
|
|
215
218
|
}
|
|
219
|
+
registryListeners() {
|
|
220
|
+
var _a, _b;
|
|
221
|
+
(_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.unsubscribe(this.duObserver);
|
|
222
|
+
(_b = this._dataUnit) === null || _b === void 0 ? void 0 : _b.subscribe(this.duObserver);
|
|
223
|
+
}
|
|
216
224
|
buildColumnDefs() {
|
|
217
225
|
const gridConfig = this._controller.getGridConfig() || [];
|
|
218
226
|
const columnDefs = [];
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { UserInterface } from '@sankhyalabs/core';
|
|
2
|
-
import { KeyCode, } from
|
|
1
|
+
import { LockManager, LockManagerOperation, UserInterface } from '@sankhyalabs/core';
|
|
2
|
+
import { KeyCode, } from "@ag-grid-community/core";
|
|
3
3
|
import { RecordValidationProcessor } from '../../../../utils/validators/recordvalidator/RecordValidationProcessor';
|
|
4
4
|
import EzCellEditor from './editor/EzCellEditor';
|
|
5
5
|
import EzGridCustomCellEditor from './components/EzGridCustomCellEditor';
|
|
6
6
|
import EzGridCustomCellRender from './components/EzGridCustomCellRender';
|
|
7
|
+
import { DataBinder } from '../../../../utils';
|
|
7
8
|
export default class GridEditionManager {
|
|
8
|
-
constructor(dataUnit, useEnterLikeTab, recordsValidator, editionIsDisabled, customEditors, customRenders, enableContinuousInsert, enableGridInsert) {
|
|
9
|
+
constructor(dataUnit, useEnterLikeTab, recordsValidator, editionIsDisabled, customEditors, customRenders, enableContinuousInsert, enableGridInsert, lockerId) {
|
|
9
10
|
this._dataUnit = dataUnit;
|
|
10
11
|
this._recordValidationProcessor = new RecordValidationProcessor(this._dataUnit, {
|
|
11
12
|
getRequiredFields: () => this.getRequiredFields(),
|
|
12
|
-
markAsInvalid: (invalidField, recordId) => { this.
|
|
13
|
+
markAsInvalid: (invalidField, recordId) => { this.pushInvalidCell(invalidField, recordId); },
|
|
13
14
|
getMessageForField: () => null,
|
|
14
15
|
}, recordsValidator);
|
|
15
16
|
this._useEnterLikeTab = useEnterLikeTab;
|
|
@@ -18,16 +19,34 @@ export default class GridEditionManager {
|
|
|
18
19
|
this._enableGridInsert = enableGridInsert;
|
|
19
20
|
this._customEditors = customEditors;
|
|
20
21
|
this._customRenders = customRenders;
|
|
22
|
+
this._lockerId = lockerId;
|
|
21
23
|
}
|
|
22
24
|
configureGrid(options) {
|
|
23
25
|
this._gridOptions = options;
|
|
24
26
|
options.readOnlyEdit = true;
|
|
25
27
|
options.onCellEditRequest = evt => this.onCellEditRequest(evt);
|
|
28
|
+
options.onCellEditingStarted = async (evt) => {
|
|
29
|
+
var _a;
|
|
30
|
+
if (this._dataUnit.hasNewRecord()) {
|
|
31
|
+
this.handleCellEditingStartedRowAdd(evt);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this._lastCellOpened = this._lastCellEdited = { rowIndex: evt.rowIndex, column: evt.column, rowPinned: undefined };
|
|
35
|
+
}
|
|
36
|
+
(_a = this._currentEditLock) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
37
|
+
this._currentEditLock = LockManager.lock(this._lockerId, LockManagerOperation.TASKBAR_CLICK);
|
|
38
|
+
};
|
|
39
|
+
options.onCellEditingStopped = () => {
|
|
40
|
+
var _a;
|
|
41
|
+
(_a = this._currentEditLock) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
42
|
+
};
|
|
26
43
|
options.onCellKeyDown = evt => {
|
|
27
44
|
if (evt.event && evt["column"]) {
|
|
28
45
|
this.onCellKeyDown(evt);
|
|
29
46
|
}
|
|
30
47
|
};
|
|
48
|
+
options.isRowSelectable = (node) => this.isSelectableRow(node);
|
|
49
|
+
options.onCellFocused = () => this.lockFocusWhenAddRow();
|
|
31
50
|
return options;
|
|
32
51
|
}
|
|
33
52
|
updateCurrentEditorGuiValue(updatedRowValue) {
|
|
@@ -40,37 +59,82 @@ export default class GridEditionManager {
|
|
|
40
59
|
const value = updatedRowValue[fieldName];
|
|
41
60
|
currentEditor.setGuiValue(value);
|
|
42
61
|
}
|
|
62
|
+
lockFocusWhenAddRow() {
|
|
63
|
+
var _a, _b, _c, _d;
|
|
64
|
+
const api = this._gridOptions.api;
|
|
65
|
+
const newFocusCell = api.getFocusedCell();
|
|
66
|
+
const rowIndex = newFocusCell === null || newFocusCell === void 0 ? void 0 : newFocusCell.rowIndex;
|
|
67
|
+
const recordId = (_b = (_a = this._dataUnit.getAddedRecords()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.__record__id__;
|
|
68
|
+
const rowNode = api.getRowNode(recordId);
|
|
69
|
+
if (!this._dataUnit.hasNewRecord() || rowIndex == (rowNode === null || rowNode === void 0 ? void 0 : rowNode.rowIndex)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const lastCell = (_d = (_c = this._lastCellOpened) !== null && _c !== void 0 ? _c : this._lastCellEdited) !== null && _d !== void 0 ? _d : this._lastCellClicked;
|
|
73
|
+
if ((lastCell === null || lastCell === void 0 ? void 0 : lastCell.rowIndex) < (rowNode === null || rowNode === void 0 ? void 0 : rowNode.rowIndex)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
api.clearFocusedCell();
|
|
77
|
+
if (!lastCell || (rowNode === null || rowNode === void 0 ? void 0 : rowNode.rowIndex) == undefined) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
lastCell.rowIndex = rowNode === null || rowNode === void 0 ? void 0 : rowNode.rowIndex;
|
|
81
|
+
this.focusOnCell(lastCell);
|
|
82
|
+
}
|
|
83
|
+
handleCellEditingStartedRowAdd(evt) {
|
|
84
|
+
var _a, _b, _c, _d, _e;
|
|
85
|
+
const nodeId = (_a = evt.node) === null || _a === void 0 ? void 0 : _a.id;
|
|
86
|
+
const addedRecordId = (_c = (_b = this._dataUnit.getAddedRecords()) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.__record__id__;
|
|
87
|
+
if (nodeId == addedRecordId) {
|
|
88
|
+
this._lastCellOpened = this._lastCellEdited = { rowIndex: evt.rowIndex, column: evt === null || evt === void 0 ? void 0 : evt.column, rowPinned: undefined };
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
evt.api.stopEditing();
|
|
92
|
+
const rowIndex = (_d = evt.api.getRowNode(addedRecordId)) === null || _d === void 0 ? void 0 : _d.rowIndex;
|
|
93
|
+
this._lastCellOpened = this._lastCellEdited = { rowIndex: rowIndex, column: (_e = this._lastCellEdited) === null || _e === void 0 ? void 0 : _e.column, rowPinned: undefined };
|
|
94
|
+
}
|
|
95
|
+
isSelectableRow(node) {
|
|
96
|
+
if (!this._dataUnit.hasNewRecord()) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
if (!this._dataUnit.isNewRecord(node.id)) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
43
104
|
canContinuousInsert() {
|
|
44
105
|
var _a;
|
|
45
106
|
return this._enableContinuousInsert && (this._dataUnit.records.length - 1) === ((_a = this._lastCellEdited) === null || _a === void 0 ? void 0 : _a.rowIndex);
|
|
46
107
|
}
|
|
47
|
-
proceedAutoSave() {
|
|
108
|
+
async proceedAutoSave() {
|
|
48
109
|
if (!this._dataUnit.isDirty()) {
|
|
49
110
|
this.saveSuccess();
|
|
50
|
-
return;
|
|
111
|
+
return true;
|
|
51
112
|
}
|
|
52
|
-
|
|
53
|
-
|
|
113
|
+
const currentRecord = this._dataUnit.getSelectedRecord();
|
|
114
|
+
if (currentRecord == undefined) {
|
|
115
|
+
return true;
|
|
54
116
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
117
|
+
this.clearInvalidCells(false);
|
|
118
|
+
try {
|
|
119
|
+
await this._recordValidationProcessor.validate(true);
|
|
120
|
+
await this.saveDataUnit();
|
|
121
|
+
this.saveSuccess();
|
|
122
|
+
return true;
|
|
58
123
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
.catch(reason => this.saveFail(reason));
|
|
124
|
+
catch (reason) {
|
|
125
|
+
this.saveFail(reason);
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async saveDataUnit() {
|
|
130
|
+
await this._dataUnit.saveData();
|
|
131
|
+
return true;
|
|
68
132
|
}
|
|
69
133
|
async recordValidate() {
|
|
70
134
|
if (!this._dataUnit.isDirty())
|
|
71
135
|
return;
|
|
72
136
|
try {
|
|
73
|
-
this.
|
|
137
|
+
this.clearInvalidCells(false);
|
|
74
138
|
await this._recordValidationProcessor.validate(false);
|
|
75
139
|
}
|
|
76
140
|
catch (error) { }
|
|
@@ -98,6 +162,13 @@ export default class GridEditionManager {
|
|
|
98
162
|
return { ezCellEditor: EzCellEditor };
|
|
99
163
|
}
|
|
100
164
|
verifyClickToEdition(api, cellClicked) {
|
|
165
|
+
var _a, _b;
|
|
166
|
+
const selectedRecordID = (_a = this._dataUnit.getSelectedRecord()) === null || _a === void 0 ? void 0 : _a.__record__id__;
|
|
167
|
+
if (this._dataUnit.hasNewRecord() && selectedRecordID) {
|
|
168
|
+
const dataUnitRecordIndex = (_b = api.getRowNode(selectedRecordID)) === null || _b === void 0 ? void 0 : _b.rowIndex;
|
|
169
|
+
if (dataUnitRecordIndex != cellClicked.rowIndex)
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
101
172
|
if (this.isSecondClick(cellClicked)) {
|
|
102
173
|
api.startEditingCell({ rowIndex: cellClicked.rowIndex, colKey: cellClicked.column.getColId() });
|
|
103
174
|
}
|
|
@@ -107,6 +178,9 @@ export default class GridEditionManager {
|
|
|
107
178
|
col.cellEditor = 'ezCellEditor';
|
|
108
179
|
col.editable = params => this.canEdit(params);
|
|
109
180
|
col.suppressKeyboardEvent = (params) => {
|
|
181
|
+
if (params.event.key === KeyCode.ESCAPE && params.editing) {
|
|
182
|
+
return this._dataUnit.isDirty();
|
|
183
|
+
}
|
|
110
184
|
return params.event.key === KeyCode.ENTER;
|
|
111
185
|
};
|
|
112
186
|
col.cellEditorSelector = (params) => {
|
|
@@ -136,10 +210,21 @@ export default class GridEditionManager {
|
|
|
136
210
|
return col;
|
|
137
211
|
}
|
|
138
212
|
getRequiredFields() {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
213
|
+
const formRequiredFields = this.getFormRequiredFields();
|
|
214
|
+
return this._gridOptions.columnApi.getAllDisplayedColumns()
|
|
215
|
+
.filter(column => {
|
|
216
|
+
const fieldDefinition = this._dataUnit.getField(column.getColId());
|
|
217
|
+
return (fieldDefinition && fieldDefinition.required) || formRequiredFields.includes(column.getColId());
|
|
218
|
+
})
|
|
219
|
+
.map(column => column.getColId());
|
|
220
|
+
}
|
|
221
|
+
getFormRequiredFields() {
|
|
222
|
+
const formRequiredFields = [];
|
|
223
|
+
const dataBinders = DataBinder.getDataBindersByDataUnit(this._dataUnit);
|
|
224
|
+
dataBinders.forEach(dataBinder => {
|
|
225
|
+
formRequiredFields.push(...dataBinder.getFormRequiredFields());
|
|
226
|
+
});
|
|
227
|
+
return formRequiredFields;
|
|
143
228
|
}
|
|
144
229
|
saveSuccess() {
|
|
145
230
|
var _a;
|
|
@@ -152,10 +237,11 @@ export default class GridEditionManager {
|
|
|
152
237
|
this._isGridEdition = false;
|
|
153
238
|
}
|
|
154
239
|
saveFail(reason) {
|
|
155
|
-
|
|
240
|
+
var _a;
|
|
241
|
+
this.focusOnCell((_a = this._lastCellOpened) !== null && _a !== void 0 ? _a : this._lastCellEdited);
|
|
156
242
|
this._isGridEdition = false;
|
|
157
243
|
if (reason) {
|
|
158
|
-
|
|
244
|
+
throw reason;
|
|
159
245
|
}
|
|
160
246
|
}
|
|
161
247
|
focusOnCell(cell) {
|
|
@@ -220,6 +306,9 @@ export default class GridEditionManager {
|
|
|
220
306
|
this.moveEditionVertically(api, 1);
|
|
221
307
|
}
|
|
222
308
|
moveEditionVertically(api, offset) {
|
|
309
|
+
if (this._dataUnit.hasNewRecord() && this._isGridEdition) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
223
312
|
const editionCell = api.getEditingCells()[0];
|
|
224
313
|
if (!editionCell) {
|
|
225
314
|
return;
|
|
@@ -264,41 +353,63 @@ export default class GridEditionManager {
|
|
|
264
353
|
return true;
|
|
265
354
|
}
|
|
266
355
|
onCellEditRequest(event) {
|
|
267
|
-
|
|
356
|
+
var _a;
|
|
268
357
|
const value = event.newValue;
|
|
269
|
-
if (event.oldValue
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
358
|
+
if (event.oldValue == value) {
|
|
359
|
+
(_a = this._currentEditLock) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
362
|
+
if (value instanceof Promise) {
|
|
363
|
+
this.handlePromiseValue(event, value);
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
this.updateCellValue(event, value);
|
|
367
|
+
}
|
|
368
|
+
async handlePromiseValue(event, value) {
|
|
369
|
+
const fieldName = event.colDef.field;
|
|
370
|
+
const fieldDescriptor = this._dataUnit.getField(event.colDef.colId);
|
|
371
|
+
const initialValue = (fieldDescriptor === null || fieldDescriptor === void 0 ? void 0 : fieldDescriptor.userInterface) === UserInterface.SEARCH ? value : event.oldValue;
|
|
372
|
+
event.node.setData(Object.assign(Object.assign({}, event.data), { [fieldName]: initialValue }));
|
|
373
|
+
const resolved = await value;
|
|
374
|
+
return this.updateCellValue(event, resolved);
|
|
375
|
+
}
|
|
376
|
+
updateCellValue(event, newValue) {
|
|
377
|
+
var _a;
|
|
378
|
+
const fieldName = event.colDef.field;
|
|
379
|
+
event.node.setData(Object.assign(Object.assign({}, event.data), { [fieldName]: newValue }));
|
|
380
|
+
(_a = this._currentEditLock) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
381
|
+
if (event.oldValue !== newValue) {
|
|
278
382
|
this._isGridEdition = true;
|
|
279
|
-
this._dataUnit.setFieldValue(fieldName,
|
|
383
|
+
this._dataUnit.setFieldValue(fieldName, newValue, [event.data.__record__id__], { suppressCreateNewRecord: true });
|
|
280
384
|
this._lastCellEdited = { rowIndex: event.rowIndex, column: event.column, rowPinned: undefined };
|
|
281
385
|
}
|
|
282
386
|
}
|
|
283
387
|
setCellEditors(customEditors) {
|
|
388
|
+
var _a;
|
|
284
389
|
this._customEditors = customEditors;
|
|
390
|
+
(_a = this._gridOptions) === null || _a === void 0 ? void 0 : _a.api.stopEditing();
|
|
285
391
|
}
|
|
286
392
|
setCellRenders(customRenders) {
|
|
287
393
|
this._customRenders = customRenders;
|
|
288
394
|
}
|
|
289
|
-
|
|
290
|
-
this.
|
|
395
|
+
pushInvalidCell(invalidField, recordId) {
|
|
396
|
+
this._invalidCells.push({ field: invalidField, recordId });
|
|
397
|
+
this._nextInvalidCell = this._invalidCells[0];
|
|
398
|
+
}
|
|
399
|
+
getInvalidCells() {
|
|
400
|
+
return this._invalidCells;
|
|
291
401
|
}
|
|
292
|
-
|
|
293
|
-
return this.
|
|
402
|
+
getNextInvalidCell() {
|
|
403
|
+
return this._nextInvalidCell;
|
|
294
404
|
}
|
|
295
|
-
processContinuousInsert() {
|
|
405
|
+
async processContinuousInsert() {
|
|
296
406
|
if (!this.canContinuousInsert())
|
|
297
407
|
return;
|
|
298
408
|
this._dataUnit.addRecord();
|
|
299
409
|
}
|
|
300
410
|
clearInvalidCells(stopEdition) {
|
|
301
|
-
this.
|
|
411
|
+
this._invalidCells = [];
|
|
412
|
+
this._nextInvalidCell = undefined;
|
|
302
413
|
if (stopEdition) {
|
|
303
414
|
this._isGridEdition = false;
|
|
304
415
|
}
|
|
@@ -309,10 +420,17 @@ export default class GridEditionManager {
|
|
|
309
420
|
hasInvalidField(fieldName, recordId) {
|
|
310
421
|
if (!this.hasInvalidCell())
|
|
311
422
|
return false;
|
|
312
|
-
|
|
423
|
+
this._nextInvalidCell = this._invalidCells[0];
|
|
424
|
+
const containsFieldName = this._nextInvalidCell.field.name === fieldName;
|
|
425
|
+
const containsRecordId = this._nextInvalidCell.recordId === recordId;
|
|
426
|
+
return containsFieldName && containsRecordId;
|
|
313
427
|
}
|
|
314
428
|
hasInvalidCell() {
|
|
315
|
-
|
|
429
|
+
var _a, _b, _c;
|
|
430
|
+
const hasInvalidCell = ((_a = this._invalidCells) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
431
|
+
const hasField = (_b = this._invalidCells) === null || _b === void 0 ? void 0 : _b.filter(invalidCell => { invalidCell.field; });
|
|
432
|
+
const hasRecordId = (_c = this._invalidCells) === null || _c === void 0 ? void 0 : _c.filter(invalidCell => { invalidCell.recordId; });
|
|
433
|
+
if (!hasInvalidCell || !hasField || !hasRecordId)
|
|
316
434
|
return false;
|
|
317
435
|
return true;
|
|
318
436
|
}
|
package/dist/collection/components/ez-grid/controller/ag-grid/components/EzGridCustomCellEditor.js
CHANGED
|
@@ -2,6 +2,7 @@ import { HTMLBuilder } from "@sankhyalabs/core";
|
|
|
2
2
|
import { CustomEditorSource } from "../../../../../utils/customEditor/interfaces/ICustomEditor";
|
|
3
3
|
import EzCellEditor from "../editor/EzCellEditor";
|
|
4
4
|
import { getViewPortHeight } from "../editor/GridEditorUtils";
|
|
5
|
+
import FocusResolver from "../../../../../utils/FocusResolver";
|
|
5
6
|
export default class EzGridCustomCellEditor extends EzCellEditor {
|
|
6
7
|
init(params) {
|
|
7
8
|
var _a, _b;
|
|
@@ -65,4 +66,10 @@ export default class EzGridCustomCellEditor extends EzCellEditor {
|
|
|
65
66
|
return this._customGui.value;
|
|
66
67
|
return this._value;
|
|
67
68
|
}
|
|
69
|
+
afterGuiAttached() {
|
|
70
|
+
this.focusIn();
|
|
71
|
+
}
|
|
72
|
+
focusIn() {
|
|
73
|
+
FocusResolver.resolveFocus(this._customGui);
|
|
74
|
+
}
|
|
68
75
|
}
|
package/dist/collection/components/ez-grid/controller/ag-grid/editor/templates/ComboBox.tpl.js
CHANGED
|
@@ -19,6 +19,7 @@ export const buildComboBox = ({ required, props, eGridCell }) => {
|
|
|
19
19
|
combo.options = options;
|
|
20
20
|
combo.stopPropagateEnterKeyEvent = true;
|
|
21
21
|
combo.listOptionsPosition = { verticalPosition: 29, bottomLimit: getViewPortHeight(eGridCell), hardPosition: true };
|
|
22
|
+
combo.autoFocus = true;
|
|
22
23
|
return combo;
|
|
23
24
|
};
|
|
24
25
|
export const buildSwitch = (fieldMetadata) => {
|