@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.
Files changed (101) hide show
  1. package/dist/custom-elements.json +691 -23
  2. package/dist/dts/cell-editors/date.editor.d.ts +5 -0
  3. package/dist/dts/cell-editors/date.editor.d.ts.map +1 -1
  4. package/dist/dts/cell-editors/index.d.ts +1 -0
  5. package/dist/dts/cell-editors/index.d.ts.map +1 -1
  6. package/dist/dts/cell-editors/multiselect.editor.d.ts +1 -0
  7. package/dist/dts/cell-editors/multiselect.editor.d.ts.map +1 -1
  8. package/dist/dts/cell-editors/number.editor.d.ts +2 -0
  9. package/dist/dts/cell-editors/number.editor.d.ts.map +1 -1
  10. package/dist/dts/cell-editors/select.editor.d.ts +2 -1
  11. package/dist/dts/cell-editors/select.editor.d.ts.map +1 -1
  12. package/dist/dts/cell-editors/string.editor.d.ts +56 -0
  13. package/dist/dts/cell-editors/string.editor.d.ts.map +1 -0
  14. package/dist/dts/cell-renderers/action.renderer.d.ts.map +1 -1
  15. package/dist/dts/cell-renderers/boolean.renderer.d.ts +1 -0
  16. package/dist/dts/cell-renderers/boolean.renderer.d.ts.map +1 -1
  17. package/dist/dts/cell-renderers/editable.renderer.d.ts +42 -0
  18. package/dist/dts/cell-renderers/editable.renderer.d.ts.map +1 -0
  19. package/dist/dts/cell-renderers/index.d.ts +1 -0
  20. package/dist/dts/cell-renderers/index.d.ts.map +1 -1
  21. package/dist/dts/grid-components.d.ts +18 -0
  22. package/dist/dts/grid-components.d.ts.map +1 -1
  23. package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts.map +1 -1
  24. package/dist/dts/grid-pro.d.ts +0 -6
  25. package/dist/dts/grid-pro.d.ts.map +1 -1
  26. package/dist/dts/grid-pro.types.d.ts +12 -0
  27. package/dist/dts/grid-pro.types.d.ts.map +1 -1
  28. package/dist/dts/index.d.ts +1 -0
  29. package/dist/dts/index.d.ts.map +1 -1
  30. package/dist/dts/tooltips/error-tooltip.d.ts +11 -0
  31. package/dist/dts/tooltips/error-tooltip.d.ts.map +1 -0
  32. package/dist/dts/tooltips/index.d.ts +2 -0
  33. package/dist/dts/tooltips/index.d.ts.map +1 -0
  34. package/dist/esm/cell-editors/date.editor.js +15 -2
  35. package/dist/esm/cell-editors/index.js +1 -0
  36. package/dist/esm/cell-editors/multiselect.editor.js +5 -10
  37. package/dist/esm/cell-editors/number.editor.js +9 -1
  38. package/dist/esm/cell-editors/select.editor.js +10 -12
  39. package/dist/esm/cell-editors/string.editor.js +86 -0
  40. package/dist/esm/cell-renderers/action.renderer.js +6 -0
  41. package/dist/esm/cell-renderers/boolean.renderer.js +4 -0
  42. package/dist/esm/cell-renderers/editable.renderer.js +60 -0
  43. package/dist/esm/cell-renderers/index.js +1 -0
  44. package/dist/esm/grid-components.js +4 -2
  45. package/dist/esm/grid-pro-genesis-datasource/grid-pro-genesis-datasource.js +10 -6
  46. package/dist/esm/grid-pro.js +34 -3
  47. package/dist/esm/grid-pro.types.js +12 -0
  48. package/dist/esm/index.js +1 -0
  49. package/dist/esm/tooltips/error-tooltip.js +21 -0
  50. package/dist/esm/tooltips/index.js +1 -0
  51. package/dist/grid-pro.api.json +2314 -670
  52. package/dist/grid-pro.d.ts +156 -7
  53. package/docs/api/grid-pro.ageditablerendererstyles.md +13 -0
  54. package/docs/api/grid-pro.agstringeditorstyles.md +13 -0
  55. package/docs/api/grid-pro.booleanrenderer.iscancelbeforestart.md +15 -0
  56. package/docs/api/grid-pro.booleanrenderer.md +1 -0
  57. package/docs/api/grid-pro.dateeditor.actualwidth.md +11 -0
  58. package/docs/api/grid-pro.dateeditor.afterguiattached.md +15 -0
  59. package/docs/api/grid-pro.dateeditor.input.md +11 -0
  60. package/docs/api/grid-pro.dateeditor.iscancelbeforestart.md +15 -0
  61. package/docs/api/grid-pro.dateeditor.md +5 -0
  62. package/docs/api/grid-pro.dateeditor.params.md +11 -0
  63. package/docs/api/grid-pro.editablerenderer.getgui.md +15 -0
  64. package/docs/api/grid-pro.editablerenderer.init.md +22 -0
  65. package/docs/api/grid-pro.editablerenderer.md +31 -0
  66. package/docs/api/grid-pro.editablerenderer.refresh.md +22 -0
  67. package/docs/api/grid-pro.editablerenderer.valueformatted.md +11 -0
  68. package/docs/api/grid-pro.edited_column_field.md +13 -0
  69. package/docs/api/grid-pro.error_column_field.md +13 -0
  70. package/docs/api/grid-pro.foundationageditablerenderer.md +26 -0
  71. package/docs/api/grid-pro.foundationgridcomponents.md +18 -0
  72. package/docs/api/grid-pro.foundationstringeditor.md +24 -0
  73. package/docs/api/grid-pro.getageditablerenderertemplate.md +13 -0
  74. package/docs/api/grid-pro.getstringeditortemplate.md +13 -0
  75. package/docs/api/grid-pro.gridprorenderertypes.md +2 -0
  76. package/docs/api/grid-pro.md +11 -0
  77. package/docs/api/grid-pro.multiselecteditor.iscancelbeforestart.md +15 -0
  78. package/docs/api/grid-pro.multiselecteditor.md +1 -0
  79. package/docs/api/grid-pro.numbereditor.actualwidth.md +11 -0
  80. package/docs/api/grid-pro.numbereditor.iscancelbeforestart.md +15 -0
  81. package/docs/api/grid-pro.numbereditor.md +2 -0
  82. package/docs/api/grid-pro.selecteditor.actualwidth.md +11 -0
  83. package/docs/api/grid-pro.selecteditor.iscancelbeforestart.md +15 -0
  84. package/docs/api/grid-pro.selecteditor.md +2 -1
  85. package/docs/api/grid-pro.stringeditor.actualwidth.md +11 -0
  86. package/docs/api/grid-pro.stringeditor.afterguiattached.md +15 -0
  87. package/docs/api/grid-pro.stringeditor.changehandler.md +22 -0
  88. package/docs/api/grid-pro.stringeditor.getgui.md +15 -0
  89. package/docs/api/grid-pro.stringeditor.getvalue.md +15 -0
  90. package/docs/api/grid-pro.stringeditor.init.md +22 -0
  91. package/docs/api/grid-pro.stringeditor.input.md +11 -0
  92. package/docs/api/grid-pro.stringeditor.iscancelbeforestart.md +15 -0
  93. package/docs/api/{grid-pro.selecteditor.destroy.md → grid-pro.stringeditor.ispopup.md} +4 -4
  94. package/docs/api/grid-pro.stringeditor.md +39 -0
  95. package/docs/api/grid-pro.stringeditor.params.md +11 -0
  96. package/docs/api/grid-pro.stringeditor.refresh.md +22 -0
  97. package/docs/api/grid-pro.stringeditor.value.md +11 -0
  98. package/docs/api/grid-pro.stringeditorparams.md +21 -0
  99. package/docs/api/grid-pro.stringeditorparams.placeholder.md +11 -0
  100. package/docs/api-report.md +142 -2
  101. 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,6 +1,7 @@
1
1
  export * from './action.renderer';
2
2
  export * from './actions-menu.renderer';
3
3
  export * from './boolean.renderer';
4
+ export * from './editable.renderer';
4
5
  export * from './text.renderer';
5
6
  export * from './text-field.renderer';
6
7
  export * from './select.renderer';
@@ -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, _b;
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
- (_b = (_a = this.agGrid) === null || _a === void 0 ? void 0 : _a.gridApi) === null || _b === void 0 ? void 0 : _b.showLoadingOverlay();
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;
@@ -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
@@ -12,4 +12,5 @@ export * from './grid-pro.types';
12
12
  export * from './grid-pro';
13
13
  export * from './grid-pro-genesis-datasource';
14
14
  export * from './style';
15
+ export * from './tooltips';
15
16
  export * from './utils';
@@ -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';