@genesislcap/grid-pro 14.108.0 → 14.109.1-alpha-cf055218219.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/custom-elements.json +691 -23
- package/dist/dts/cell-editors/date.editor.d.ts +5 -0
- package/dist/dts/cell-editors/date.editor.d.ts.map +1 -1
- package/dist/dts/cell-editors/index.d.ts +1 -0
- package/dist/dts/cell-editors/index.d.ts.map +1 -1
- package/dist/dts/cell-editors/multiselect.editor.d.ts +1 -0
- package/dist/dts/cell-editors/multiselect.editor.d.ts.map +1 -1
- package/dist/dts/cell-editors/number.editor.d.ts +2 -0
- package/dist/dts/cell-editors/number.editor.d.ts.map +1 -1
- package/dist/dts/cell-editors/select.editor.d.ts +2 -1
- package/dist/dts/cell-editors/select.editor.d.ts.map +1 -1
- package/dist/dts/cell-editors/string.editor.d.ts +56 -0
- package/dist/dts/cell-editors/string.editor.d.ts.map +1 -0
- package/dist/dts/cell-renderers/action.renderer.d.ts.map +1 -1
- package/dist/dts/cell-renderers/boolean.renderer.d.ts +1 -0
- package/dist/dts/cell-renderers/boolean.renderer.d.ts.map +1 -1
- package/dist/dts/cell-renderers/editable.renderer.d.ts +42 -0
- package/dist/dts/cell-renderers/editable.renderer.d.ts.map +1 -0
- package/dist/dts/cell-renderers/index.d.ts +1 -0
- package/dist/dts/cell-renderers/index.d.ts.map +1 -1
- package/dist/dts/grid-components.d.ts +18 -0
- package/dist/dts/grid-components.d.ts.map +1 -1
- package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts.map +1 -1
- package/dist/dts/grid-pro.d.ts +0 -6
- package/dist/dts/grid-pro.d.ts.map +1 -1
- package/dist/dts/grid-pro.types.d.ts +12 -0
- package/dist/dts/grid-pro.types.d.ts.map +1 -1
- package/dist/dts/index.d.ts +1 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/tooltips/error-tooltip.d.ts +11 -0
- package/dist/dts/tooltips/error-tooltip.d.ts.map +1 -0
- package/dist/dts/tooltips/index.d.ts +2 -0
- package/dist/dts/tooltips/index.d.ts.map +1 -0
- package/dist/esm/cell-editors/date.editor.js +15 -2
- package/dist/esm/cell-editors/index.js +1 -0
- package/dist/esm/cell-editors/multiselect.editor.js +5 -10
- package/dist/esm/cell-editors/number.editor.js +9 -1
- package/dist/esm/cell-editors/select.editor.js +10 -12
- package/dist/esm/cell-editors/string.editor.js +86 -0
- package/dist/esm/cell-renderers/action.renderer.js +6 -0
- package/dist/esm/cell-renderers/boolean.renderer.js +4 -0
- package/dist/esm/cell-renderers/editable.renderer.js +60 -0
- package/dist/esm/cell-renderers/index.js +1 -0
- package/dist/esm/grid-components.js +4 -2
- package/dist/esm/grid-pro-genesis-datasource/grid-pro-genesis-datasource.js +10 -6
- package/dist/esm/grid-pro.js +34 -3
- package/dist/esm/grid-pro.types.js +12 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/tooltips/error-tooltip.js +21 -0
- package/dist/esm/tooltips/index.js +1 -0
- package/dist/grid-pro.api.json +2314 -670
- package/dist/grid-pro.d.ts +156 -7
- package/docs/api/grid-pro.ageditablerendererstyles.md +13 -0
- package/docs/api/grid-pro.agstringeditorstyles.md +13 -0
- package/docs/api/grid-pro.booleanrenderer.iscancelbeforestart.md +15 -0
- package/docs/api/grid-pro.booleanrenderer.md +1 -0
- package/docs/api/grid-pro.dateeditor.actualwidth.md +11 -0
- package/docs/api/grid-pro.dateeditor.afterguiattached.md +15 -0
- package/docs/api/grid-pro.dateeditor.input.md +11 -0
- package/docs/api/grid-pro.dateeditor.iscancelbeforestart.md +15 -0
- package/docs/api/grid-pro.dateeditor.md +5 -0
- package/docs/api/grid-pro.dateeditor.params.md +11 -0
- package/docs/api/grid-pro.editablerenderer.getgui.md +15 -0
- package/docs/api/grid-pro.editablerenderer.init.md +22 -0
- package/docs/api/grid-pro.editablerenderer.md +31 -0
- package/docs/api/grid-pro.editablerenderer.refresh.md +22 -0
- package/docs/api/grid-pro.editablerenderer.valueformatted.md +11 -0
- package/docs/api/grid-pro.edited_column_field.md +13 -0
- package/docs/api/grid-pro.error_column_field.md +13 -0
- package/docs/api/grid-pro.foundationageditablerenderer.md +26 -0
- package/docs/api/grid-pro.foundationgridcomponents.md +18 -0
- package/docs/api/grid-pro.foundationstringeditor.md +24 -0
- package/docs/api/grid-pro.getageditablerenderertemplate.md +13 -0
- package/docs/api/grid-pro.getstringeditortemplate.md +13 -0
- package/docs/api/grid-pro.gridprorenderertypes.md +2 -0
- package/docs/api/grid-pro.md +11 -0
- package/docs/api/grid-pro.multiselecteditor.iscancelbeforestart.md +15 -0
- package/docs/api/grid-pro.multiselecteditor.md +1 -0
- package/docs/api/grid-pro.numbereditor.actualwidth.md +11 -0
- package/docs/api/grid-pro.numbereditor.iscancelbeforestart.md +15 -0
- package/docs/api/grid-pro.numbereditor.md +2 -0
- package/docs/api/grid-pro.selecteditor.actualwidth.md +11 -0
- package/docs/api/grid-pro.selecteditor.iscancelbeforestart.md +15 -0
- package/docs/api/grid-pro.selecteditor.md +2 -1
- package/docs/api/grid-pro.stringeditor.actualwidth.md +11 -0
- package/docs/api/grid-pro.stringeditor.afterguiattached.md +15 -0
- package/docs/api/grid-pro.stringeditor.changehandler.md +22 -0
- package/docs/api/grid-pro.stringeditor.getgui.md +15 -0
- package/docs/api/grid-pro.stringeditor.getvalue.md +15 -0
- package/docs/api/grid-pro.stringeditor.init.md +22 -0
- package/docs/api/grid-pro.stringeditor.input.md +11 -0
- package/docs/api/grid-pro.stringeditor.iscancelbeforestart.md +15 -0
- package/docs/api/{grid-pro.selecteditor.destroy.md → grid-pro.stringeditor.ispopup.md} +4 -4
- package/docs/api/grid-pro.stringeditor.md +39 -0
- package/docs/api/grid-pro.stringeditor.params.md +11 -0
- package/docs/api/grid-pro.stringeditor.refresh.md +22 -0
- package/docs/api/grid-pro.stringeditor.value.md +11 -0
- package/docs/api/grid-pro.stringeditorparams.md +21 -0
- package/docs/api/grid-pro.stringeditorparams.placeholder.md +11 -0
- package/docs/api-report.md +142 -2
- package/package.json +8 -8
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, observable, ref } from '@microsoft/fast-element';
|
|
3
|
+
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
4
|
+
import { EDITED_COLUMN_FIELD } from '../grid-pro.types';
|
|
5
|
+
/**
|
|
6
|
+
* The AG String Editor element.
|
|
7
|
+
* @public
|
|
8
|
+
* @tagname %%prefix%%-string-editor
|
|
9
|
+
*/
|
|
10
|
+
export class StringEditor extends FoundationElement {
|
|
11
|
+
init(params) {
|
|
12
|
+
if (!params)
|
|
13
|
+
return;
|
|
14
|
+
this.params = params;
|
|
15
|
+
this.value = params.value;
|
|
16
|
+
this.actualWidth = params.column.getActualWidth();
|
|
17
|
+
}
|
|
18
|
+
getGui() {
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
refresh(params) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
getValue() {
|
|
25
|
+
return this.value;
|
|
26
|
+
}
|
|
27
|
+
isPopup() {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
afterGuiAttached() {
|
|
31
|
+
this.input.focus();
|
|
32
|
+
}
|
|
33
|
+
changeHandler(event) {
|
|
34
|
+
this.value = event.target.value;
|
|
35
|
+
}
|
|
36
|
+
isCancelBeforeStart() {
|
|
37
|
+
return !!this.params.data[EDITED_COLUMN_FIELD];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
__decorate([
|
|
41
|
+
observable
|
|
42
|
+
], StringEditor.prototype, "params", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
observable
|
|
45
|
+
], StringEditor.prototype, "value", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
observable
|
|
48
|
+
], StringEditor.prototype, "actualWidth", void 0);
|
|
49
|
+
/**
|
|
50
|
+
* The AG String Renderer Styles.
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
export const agStringEditorStyles = css `
|
|
54
|
+
:host {
|
|
55
|
+
display: flex;
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
58
|
+
/**
|
|
59
|
+
* Get a Design System prefixed String template.
|
|
60
|
+
* @param designSystem - The design system prefix to use. Defaults to 'foundation'.
|
|
61
|
+
* @returns A String component template prefixed with the correct design system.
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
export const getStringEditorTemplate = (designSystem = 'foundation') => html `
|
|
65
|
+
<${designSystem}-text-field
|
|
66
|
+
${ref('input')}
|
|
67
|
+
:value=${(x) => (x.value === undefined ? '' : x.value)}
|
|
68
|
+
@input=${(x, c) => {
|
|
69
|
+
x.changeHandler(c.event);
|
|
70
|
+
}}
|
|
71
|
+
placeholder=${(x) => x.params.placeholder}
|
|
72
|
+
style="width: ${(x) => x.actualWidth}px"
|
|
73
|
+
>
|
|
74
|
+
</${designSystem}-text-field>
|
|
75
|
+
`;
|
|
76
|
+
/**
|
|
77
|
+
*
|
|
78
|
+
* @public
|
|
79
|
+
* @remarks
|
|
80
|
+
* HTML Element: \<foundation-string-editor\>
|
|
81
|
+
*/
|
|
82
|
+
export const foundationStringEditor = StringEditor.compose({
|
|
83
|
+
baseName: 'string-editor',
|
|
84
|
+
styles: agStringEditorStyles,
|
|
85
|
+
template: getStringEditorTemplate(),
|
|
86
|
+
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { KeyCode } from '@ag-grid-community/core';
|
|
2
3
|
import { css, html, observable } from '@microsoft/fast-element';
|
|
3
4
|
import { DesignToken, FoundationElement } from '@microsoft/fast-foundation';
|
|
4
5
|
import { logger } from '../utils';
|
|
@@ -12,6 +13,11 @@ export class ActionRenderer extends FoundationElement {
|
|
|
12
13
|
if (!params)
|
|
13
14
|
return;
|
|
14
15
|
this.params = params;
|
|
16
|
+
params.eGridCell.addEventListener('keydown', (event) => {
|
|
17
|
+
if (event.key === KeyCode.ENTER) {
|
|
18
|
+
this.clickHandler();
|
|
19
|
+
}
|
|
20
|
+
});
|
|
15
21
|
}
|
|
16
22
|
getGui() {
|
|
17
23
|
return this;
|
|
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { Events, } from '@ag-grid-community/core';
|
|
3
3
|
import { css, html, observable } from '@microsoft/fast-element';
|
|
4
4
|
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
5
|
+
import { EDITED_COLUMN_FIELD } from '../grid-pro.types';
|
|
5
6
|
/**
|
|
6
7
|
* The AG Boolean Renderer element.
|
|
7
8
|
* @public
|
|
@@ -62,6 +63,9 @@ export class BooleanRenderer extends FoundationElement {
|
|
|
62
63
|
getValue() {
|
|
63
64
|
return this.selected;
|
|
64
65
|
}
|
|
66
|
+
isCancelBeforeStart() {
|
|
67
|
+
return !!this.params.data[EDITED_COLUMN_FIELD];
|
|
68
|
+
}
|
|
65
69
|
}
|
|
66
70
|
__decorate([
|
|
67
71
|
observable
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, observable } from '@microsoft/fast-element';
|
|
3
|
+
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
4
|
+
/**
|
|
5
|
+
* The AG Editable Renderer element.
|
|
6
|
+
* @public
|
|
7
|
+
* @tagname %%prefix%%-editable-renderer
|
|
8
|
+
*/
|
|
9
|
+
export class EditableRenderer extends FoundationElement {
|
|
10
|
+
init(params) {
|
|
11
|
+
if (!params)
|
|
12
|
+
return;
|
|
13
|
+
this.valueFormatted = params.formatValue(params.value);
|
|
14
|
+
}
|
|
15
|
+
getGui() {
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
refresh(params) {
|
|
19
|
+
this.valueFormatted = params.formatValue(params.value);
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
__decorate([
|
|
24
|
+
observable
|
|
25
|
+
], EditableRenderer.prototype, "valueFormatted", void 0);
|
|
26
|
+
/**
|
|
27
|
+
* The AG Editable Renderer Styles.
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
export const agEditableRendererStyles = css `
|
|
31
|
+
:host {
|
|
32
|
+
display: flex;
|
|
33
|
+
justify-content: space-between;
|
|
34
|
+
align-items: center;
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
/**
|
|
38
|
+
* Get a Design System prefixed Checkbox template.
|
|
39
|
+
* @param designSystem - The design system prefix to use. Defaults to 'foundation'.
|
|
40
|
+
* @returns A Checkbox component template prefixed with the correct design system.
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
export const getAgEditableRendererTemplate = (designSystem = 'foundation') => {
|
|
44
|
+
return html `
|
|
45
|
+
<span>${(x) => x.valueFormatted}</span>
|
|
46
|
+
<${designSystem}-progress-ring style="margin: 0; width: 20px; height: 20px"></${designSystem}-progress-ring>
|
|
47
|
+
`;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* A function that returns a Foundation Editable Renderer registration for configuring the component with a DesignSystem.
|
|
51
|
+
*
|
|
52
|
+
* @public
|
|
53
|
+
* @remarks
|
|
54
|
+
* HTML Element: \<foundation-editable-renderer\>
|
|
55
|
+
*/
|
|
56
|
+
export const foundationAgEditableRenderer = EditableRenderer.compose({
|
|
57
|
+
baseName: 'editable-renderer',
|
|
58
|
+
styles: agEditableRendererStyles,
|
|
59
|
+
template: getAgEditableRendererTemplate(),
|
|
60
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { foundationSelectEditor, foundationNumberEditor, foundationMultiselectEditor, foundationDateEditor, } from './cell-editors';
|
|
2
|
-
import { foundationGridProActionRenderer, foundationGridProActionsMenuRenderer, foundationAgBooleanRenderer, foundationAgSelectRenderer, foundationAgTextRenderer, foundationAgTextFieldRenderer, } from './cell-renderers';
|
|
1
|
+
import { foundationSelectEditor, foundationNumberEditor, foundationMultiselectEditor, foundationDateEditor, foundationStringEditor, } from './cell-editors';
|
|
2
|
+
import { foundationGridProActionRenderer, foundationGridProActionsMenuRenderer, foundationAgBooleanRenderer, foundationAgEditableRenderer, foundationAgSelectRenderer, foundationAgTextRenderer, foundationAgTextFieldRenderer, } from './cell-renderers';
|
|
3
3
|
import { foundationGridPro } from './grid-pro';
|
|
4
4
|
/**
|
|
5
5
|
* The Grid Pro Components.
|
|
@@ -12,12 +12,14 @@ export const foundationGridComponents = {
|
|
|
12
12
|
foundationAgBooleanRenderer,
|
|
13
13
|
foundationAgTextRenderer,
|
|
14
14
|
foundationAgTextFieldRenderer,
|
|
15
|
+
foundationAgEditableRenderer,
|
|
15
16
|
foundationAgSelectRenderer,
|
|
16
17
|
foundationGridPro,
|
|
17
18
|
foundationSelectEditor,
|
|
18
19
|
foundationNumberEditor,
|
|
19
20
|
foundationDateEditor,
|
|
20
21
|
foundationMultiselectEditor,
|
|
22
|
+
foundationStringEditor,
|
|
21
23
|
register(container, ...rest) {
|
|
22
24
|
if (!container) {
|
|
23
25
|
// preserve backward compatibility with code that loops through
|
|
@@ -214,16 +214,16 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
|
|
|
214
214
|
* @internal
|
|
215
215
|
*/
|
|
216
216
|
setRowData(rowData) {
|
|
217
|
-
var _a;
|
|
217
|
+
var _a, _b, _c;
|
|
218
218
|
const preSetColumnDefs = (_a = this.agGrid.gridApi) === null || _a === void 0 ? void 0 : _a.getColumnDefs();
|
|
219
219
|
if (!preSetColumnDefs || preSetColumnDefs.length === 0) {
|
|
220
220
|
const agColumnDefs = this.getAgColumnDefs(this.datasource.fieldMetadata);
|
|
221
221
|
if (agColumnDefs) {
|
|
222
|
-
this.agGrid.gridApi.setColumnDefs(agColumnDefs);
|
|
222
|
+
(_b = this.agGrid.gridApi) === null || _b === void 0 ? void 0 : _b.setColumnDefs(agColumnDefs);
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
225
|
const data = this.rowDataMapper ? this.rowDataMapper(rowData) : rowData;
|
|
226
|
-
this.agGrid.gridApi.setRowData(data);
|
|
226
|
+
(_c = this.agGrid.gridApi) === null || _c === void 0 ? void 0 : _c.setRowData(data);
|
|
227
227
|
this.requiresFullRowDataAndColDefs = false;
|
|
228
228
|
}
|
|
229
229
|
/**
|
|
@@ -233,7 +233,7 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
|
|
|
233
233
|
* @internal
|
|
234
234
|
*/
|
|
235
235
|
reloadResourceData() {
|
|
236
|
-
var _a
|
|
236
|
+
var _a;
|
|
237
237
|
return __awaiter(this, void 0, void 0, function* () {
|
|
238
238
|
if (this.dataSub) {
|
|
239
239
|
this.dataSub.unsubscribe();
|
|
@@ -241,7 +241,7 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
|
|
|
241
241
|
}
|
|
242
242
|
this.dataLogoff();
|
|
243
243
|
this.clearRowData(withoutColumnDefs);
|
|
244
|
-
(
|
|
244
|
+
(_a = this.agGrid.gridApi) === null || _a === void 0 ? void 0 : _a.showLoadingOverlay();
|
|
245
245
|
this.loadResourceData(withoutFullInit);
|
|
246
246
|
});
|
|
247
247
|
}
|
|
@@ -374,10 +374,11 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
|
|
|
374
374
|
this.applyAllAgTransactions();
|
|
375
375
|
}
|
|
376
376
|
applyAllAgTransactions() {
|
|
377
|
+
var _a;
|
|
377
378
|
if (!this.agTransaction.add.length &&
|
|
378
379
|
!this.agTransaction.update.length &&
|
|
379
380
|
!this.agTransaction.remove.length) {
|
|
380
|
-
this.agGrid.gridApi.showNoRowsOverlay();
|
|
381
|
+
(_a = this.agGrid.gridApi) === null || _a === void 0 ? void 0 : _a.showNoRowsOverlay();
|
|
381
382
|
return;
|
|
382
383
|
}
|
|
383
384
|
if (this.agTransaction.add.length > 0) {
|
|
@@ -463,6 +464,9 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
|
|
|
463
464
|
const colDefBase = {};
|
|
464
465
|
colDefBase.filterParams = getFilterParamsByFieldType(field.type);
|
|
465
466
|
switch (field.type) {
|
|
467
|
+
case FieldTypeEnum.STRING:
|
|
468
|
+
colDefBase.cellEditor = GridProRendererTypes.stringEditor;
|
|
469
|
+
break;
|
|
466
470
|
case FieldTypeEnum.NUMBER:
|
|
467
471
|
colDefBase.cellEditor = GridProRendererTypes.numberEditor;
|
|
468
472
|
break;
|
package/dist/esm/grid-pro.js
CHANGED
|
@@ -8,8 +8,8 @@ import { attr, DOM, observable } from '@microsoft/fast-element';
|
|
|
8
8
|
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
9
9
|
import { classNames } from '@microsoft/fast-web-utilities';
|
|
10
10
|
import { GridProCell } from './cell';
|
|
11
|
-
import { SelectEditor, NumberEditor, MultiselectEditor, DateEditor } from './cell-editors';
|
|
12
|
-
import { ActionRenderer, ActionsMenuRenderer, BooleanRenderer } from './cell-renderers';
|
|
11
|
+
import { SelectEditor, NumberEditor, MultiselectEditor, DateEditor, StringEditor, } from './cell-editors';
|
|
12
|
+
import { ActionRenderer, ActionsMenuRenderer, BooleanRenderer, EditableRenderer, } from './cell-renderers';
|
|
13
13
|
import { GridProColumn } from './column';
|
|
14
14
|
import { GridProClientSideDatasource, GridProServerSideDatasource } from './datasource';
|
|
15
15
|
import { agThemeFontFaceMap, defaultAgGridFontFace } from './external';
|
|
@@ -17,7 +17,8 @@ import { GridProGenesisDatasource } from './grid-pro-genesis-datasource';
|
|
|
17
17
|
import { DEBOUNCED_RESIZE_TIME } from './grid-pro.definitions';
|
|
18
18
|
import { foundationGridProStyles as styles } from './grid-pro.styles';
|
|
19
19
|
import { gridProTemplate as template } from './grid-pro.template';
|
|
20
|
-
import { AgGridTheme, GridProRendererTypes, agThemeFontsId, agThemeTokenMapClassname, GRID_READY_EVENT, } from './grid-pro.types';
|
|
20
|
+
import { AgGridTheme, GridProRendererTypes, agThemeFontsId, agThemeTokenMapClassname, GRID_READY_EVENT, ERROR_COLUMN_FIELD, EDITED_COLUMN_FIELD, } from './grid-pro.types';
|
|
21
|
+
import { ErrorTooltip } from './tooltips';
|
|
21
22
|
import { logger, mergeAndDedupColDefWithColumnState } from './utils';
|
|
22
23
|
GridProGenesisDatasource;
|
|
23
24
|
GridProClientSideDatasource;
|
|
@@ -107,6 +108,7 @@ export class GridPro extends LifecycleMixin(FoundationElement) {
|
|
|
107
108
|
connectedCallback() {
|
|
108
109
|
super.connectedCallback();
|
|
109
110
|
this.rehydrationAttempted = false;
|
|
111
|
+
this.initialised = false;
|
|
110
112
|
if (this.gridAutosizingEnabled) {
|
|
111
113
|
respondToVisibility(this, (gridVisible) => {
|
|
112
114
|
if (gridVisible) {
|
|
@@ -134,16 +136,20 @@ export class GridPro extends LifecycleMixin(FoundationElement) {
|
|
|
134
136
|
if (!this.shouldRunDisconnect)
|
|
135
137
|
return;
|
|
136
138
|
(_a = this.gridApi) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
139
|
+
this.gridApi = null;
|
|
140
|
+
this.columnApi = null;
|
|
137
141
|
}
|
|
138
142
|
combineAllGridComponents(gridOptionsComponents) {
|
|
139
143
|
const defaultFoundationAgComponents = {
|
|
140
144
|
[GridProRendererTypes.action]: ActionRenderer,
|
|
141
145
|
[GridProRendererTypes.actionsMenu]: ActionsMenuRenderer,
|
|
142
146
|
[GridProRendererTypes.boolean]: BooleanRenderer,
|
|
147
|
+
[GridProRendererTypes.editable]: EditableRenderer,
|
|
143
148
|
[GridProRendererTypes.selectEditor]: SelectEditor,
|
|
144
149
|
[GridProRendererTypes.numberEditor]: NumberEditor,
|
|
145
150
|
[GridProRendererTypes.multiselectEditor]: MultiselectEditor,
|
|
146
151
|
[GridProRendererTypes.dateEditor]: DateEditor,
|
|
152
|
+
[GridProRendererTypes.stringEditor]: StringEditor,
|
|
147
153
|
};
|
|
148
154
|
return Object.assign(Object.assign(Object.assign({}, defaultFoundationAgComponents), gridOptionsComponents), this.gridComponents);
|
|
149
155
|
}
|
|
@@ -323,6 +329,31 @@ export class GridPro extends LifecycleMixin(FoundationElement) {
|
|
|
323
329
|
if (this.enableCellFlashing && columnDef.enableCellChangeFlash === undefined) {
|
|
324
330
|
columnDef.enableCellChangeFlash = true;
|
|
325
331
|
}
|
|
332
|
+
if (columnDef.editable) {
|
|
333
|
+
if (!columnDef.cellRenderer && !columnDef.cellRendererSelector) {
|
|
334
|
+
columnDef.cellRendererSelector = (params) => {
|
|
335
|
+
if (params.data[EDITED_COLUMN_FIELD] === columnDef.field) {
|
|
336
|
+
return {
|
|
337
|
+
component: GridProRendererTypes.editable,
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
if (!columnDef.tooltipComponent && !columnDef.tooltipValueGetter) {
|
|
343
|
+
columnDef.tooltipComponent = ErrorTooltip;
|
|
344
|
+
columnDef.tooltipValueGetter = (params) => {
|
|
345
|
+
const error = params.data[ERROR_COLUMN_FIELD];
|
|
346
|
+
if (error && error.column === columnDef.field) {
|
|
347
|
+
return error.message;
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
if (!columnDef.cellClassRules) {
|
|
352
|
+
columnDef.cellClassRules = {
|
|
353
|
+
error: (params) => { var _a; return ((_a = params.data[ERROR_COLUMN_FIELD]) === null || _a === void 0 ? void 0 : _a.column) === params.colDef.field; },
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
}
|
|
326
357
|
const metadataColumnDef = columnDefinitionsFromMetadata.find((colDef) => columnDef.field === colDef.field);
|
|
327
358
|
return Object.assign(Object.assign({}, metadataColumnDef), columnDef);
|
|
328
359
|
});
|
|
@@ -125,11 +125,13 @@ export var GridProRendererTypes;
|
|
|
125
125
|
GridProRendererTypes["action"] = "action";
|
|
126
126
|
GridProRendererTypes["actionsMenu"] = "actionsMenu";
|
|
127
127
|
GridProRendererTypes["boolean"] = "boolean";
|
|
128
|
+
GridProRendererTypes["editable"] = "editable";
|
|
128
129
|
GridProRendererTypes["text"] = "text";
|
|
129
130
|
GridProRendererTypes["select"] = "select";
|
|
130
131
|
GridProRendererTypes["dateEditor"] = "dateEditor";
|
|
131
132
|
GridProRendererTypes["selectEditor"] = "selectEditor";
|
|
132
133
|
GridProRendererTypes["numberEditor"] = "numberEditor";
|
|
134
|
+
GridProRendererTypes["stringEditor"] = "stringEditor";
|
|
133
135
|
GridProRendererTypes["multiselectEditor"] = "multiselectEditor";
|
|
134
136
|
})(GridProRendererTypes || (GridProRendererTypes = {}));
|
|
135
137
|
/**
|
|
@@ -137,3 +139,13 @@ export var GridProRendererTypes;
|
|
|
137
139
|
* @public
|
|
138
140
|
*/
|
|
139
141
|
export const GRID_READY_EVENT = 'onGridReady';
|
|
142
|
+
/**
|
|
143
|
+
* Key used to store currently edited column when it being synced with server side data
|
|
144
|
+
* @public
|
|
145
|
+
*/
|
|
146
|
+
export const EDITED_COLUMN_FIELD = '__editedColumn';
|
|
147
|
+
/**
|
|
148
|
+
* Key used to store error details (column, message) when inline edit fails sync with server side data
|
|
149
|
+
* @public
|
|
150
|
+
*/
|
|
151
|
+
export const ERROR_COLUMN_FIELD = '__errorColumn';
|
package/dist/esm/index.js
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tooltip for errors that happen while syncing data with server after inline editing
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export class ErrorTooltip {
|
|
6
|
+
init(params) {
|
|
7
|
+
const eGui = (this.eGui = document.createElement('div'));
|
|
8
|
+
const message = params.value;
|
|
9
|
+
eGui.classList.add('custom-tooltip');
|
|
10
|
+
eGui.style['background-color'] = '#f14376';
|
|
11
|
+
eGui.style['border'] = '1px inside';
|
|
12
|
+
eGui.style['border-color'] = '#2e3339';
|
|
13
|
+
eGui.style['border-radius'] = '4px';
|
|
14
|
+
eGui.style['padding'] = '5px';
|
|
15
|
+
eGui.style['box-shadow'] = '0px 4px 10px 0px rgba(0, 0, 0, 0.25);';
|
|
16
|
+
eGui.innerHTML = `<span style='color: #000000; font-size: 10px'>${message}</span>`;
|
|
17
|
+
}
|
|
18
|
+
getGui() {
|
|
19
|
+
return this.eGui;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './error-tooltip';
|