@talxis/base-controls 1.2410.5 → 1.2411.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/components/DatasetControl/DatasetControl.js +5 -3
  2. package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
  3. package/dist/components/Grid/Grid.js.map +1 -1
  4. package/dist/components/Grid/core/components/AgGrid/AgGrid.d.ts +2 -0
  5. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +141 -27
  6. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  7. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js +3 -4
  8. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +1 -1
  9. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +19 -7
  10. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  11. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.d.ts +3 -3
  12. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +32 -96
  13. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -1
  14. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +23 -22
  15. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +1 -1
  16. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +41 -36
  17. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -1
  18. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +5 -0
  19. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +21 -3
  20. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -1
  21. package/dist/components/Grid/core/components/ColumnHeader/styles.d.ts +2 -0
  22. package/dist/components/Grid/core/components/ColumnHeader/styles.js +2 -0
  23. package/dist/components/Grid/core/components/ColumnHeader/styles.js.map +1 -1
  24. package/dist/components/Grid/core/components/Component/Component.d.ts +2 -2
  25. package/dist/components/Grid/core/components/Component/Component.js.map +1 -1
  26. package/dist/components/Grid/core/components/Component/model/Component.d.ts +1 -0
  27. package/dist/components/Grid/core/components/Component/model/Component.js +57 -20
  28. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -1
  29. package/dist/components/Grid/core/components/Save/Save.js +33 -20
  30. package/dist/components/Grid/core/components/Save/Save.js.map +1 -1
  31. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.d.ts +5 -1
  32. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +46 -15
  33. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
  34. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +10 -0
  35. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +187 -0
  36. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -0
  37. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.d.ts +39 -0
  38. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js +45 -0
  39. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js.map +1 -0
  40. package/dist/components/Grid/core/components/Save/styles.d.ts +2 -4
  41. package/dist/components/Grid/core/components/Save/styles.js +2 -4
  42. package/dist/components/Grid/core/components/Save/styles.js.map +1 -1
  43. package/dist/components/Grid/core/controllers/useGridController.js +2 -2
  44. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
  45. package/dist/components/Grid/core/model/Grid.d.ts +1 -2
  46. package/dist/components/Grid/core/model/Grid.js +11 -9
  47. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  48. package/dist/components/Grid/core/services/KeyListener.d.ts +2 -0
  49. package/dist/components/Grid/core/services/KeyListener.js +6 -0
  50. package/dist/components/Grid/core/services/KeyListener.js.map +1 -1
  51. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +0 -2
  52. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +1 -1
  53. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +45 -1
  54. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -1
  55. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +4 -1
  56. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -1
  57. package/dist/components/Grid/filtering/model/Condition.js +19 -4
  58. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  59. package/dist/components/Grid/interfaces.d.ts +4 -1
  60. package/dist/components/Grid/paging/components/Paging/Paging.js +6 -5
  61. package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -1
  62. package/dist/components/Grid/translations.d.ts +36 -0
  63. package/dist/components/Grid/translations.js +11 -2
  64. package/dist/components/Grid/translations.js.map +1 -1
  65. package/dist/components/TextField/TextField.js +14 -5
  66. package/dist/components/TextField/TextField.js.map +1 -1
  67. package/dist/hooks/useControl.js +2 -2
  68. package/dist/hooks/useControl.js.map +1 -1
  69. package/dist/hooks/useRerender.js.map +1 -0
  70. package/dist/index.d.ts +39 -0
  71. package/package.json +4 -4
  72. package/dist/components/DatasetControl/hooks/useRerender.js.map +0 -1
  73. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.d.ts +0 -44
  74. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js +0 -82
  75. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js.map +0 -1
  76. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +0 -20
  77. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +0 -173
  78. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +0 -1
  79. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.d.ts +0 -7
  80. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +0 -144
  81. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +0 -1
  82. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.d.ts +0 -48
  83. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js +0 -54
  84. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js.map +0 -1
  85. package/dist/components/Grid/core/components/Save/hooks/useSave.d.ts +0 -12
  86. package/dist/components/Grid/core/components/Save/hooks/useSave.js +0 -45
  87. package/dist/components/Grid/core/components/Save/hooks/useSave.js.map +0 -1
  88. package/dist/components/Grid/core/constants.d.ts +0 -1
  89. package/dist/components/Grid/core/constants.js +0 -4
  90. package/dist/components/Grid/core/constants.js.map +0 -1
  91. package/dist/components/Grid/core/hooks/useRerender.d.ts +0 -1
  92. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.d.ts +0 -14
  93. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js +0 -25
  94. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js.map +0 -1
  95. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.d.ts +0 -30
  96. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +0 -186
  97. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +0 -1
  98. package/dist/components/Grid/validation/controllers/useRecordValidationController.d.ts +0 -8
  99. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +0 -25
  100. package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +0 -1
  101. package/dist/components/Grid/validation/model/ColumnValidation.d.ts +0 -11
  102. package/dist/components/Grid/validation/model/ColumnValidation.js +0 -90
  103. package/dist/components/Grid/validation/model/ColumnValidation.js.map +0 -1
  104. /package/dist/{components/DatasetControl/hooks → hooks}/useRerender.d.ts +0 -0
  105. /package/dist/{components/DatasetControl/hooks → hooks}/useRerender.js +0 -0
@@ -1,30 +0,0 @@
1
- import { Grid } from "../../../model/Grid";
2
- import { GridDependency } from "../../../model/GridDependency";
3
- import { IColumn, IRecord } from "@talxis/client-libraries";
4
- export interface IUpdatedRecord extends Omit<IRecord, 'save'> {
5
- columns: Map<string, IColumn>;
6
- isValid: (columnName: string) => boolean;
7
- getOriginalValue: (columnName: string) => any;
8
- getOriginalFormattedValue: (columnName: string) => any;
9
- getOriginalFormattedPrimaryNameValue: () => any;
10
- save: () => Promise<boolean>;
11
- clear: () => void;
12
- }
13
- export declare class RecordUpdateService extends GridDependency {
14
- private _updatedRecords;
15
- private _internalRecordMap;
16
- constructor(grid: Grid);
17
- get updatedRecords(): IUpdatedRecord[];
18
- get isDirty(): boolean;
19
- get hasInvalidRecords(): boolean;
20
- record(recordId: string): {
21
- get: () => IUpdatedRecord | undefined;
22
- setValue: (columnName: string, value: any, doNotPropagateToDatasetRecord?: boolean) => void;
23
- };
24
- saveAll(): Promise<boolean>;
25
- clearAll(): Promise<void>;
26
- onDependenciesUpdated(): void;
27
- private _getColumnByName;
28
- private _isReadOnlyChangeEditor;
29
- private _isEqual;
30
- }
@@ -1,186 +0,0 @@
1
- import equal from 'fast-deep-equal/es6';
2
- import { cloneDeep } from 'lodash';
3
- import numeral from 'numeral';
4
- import { ColumnValidation } from '../../../../validation/model/ColumnValidation.js';
5
- import { DataType } from '../../../enums/DataType.js';
6
- import { GridDependency } from '../../../model/GridDependency.js';
7
- import { Numeral } from '@talxis/client-libraries';
8
-
9
- class RecordUpdateService extends GridDependency {
10
- constructor(grid) {
11
- super(grid);
12
- this._updatedRecords = new Map();
13
- this._internalRecordMap = new Map();
14
- const updatedRecordsFromState = this._grid.state?.['__updatedRecords'];
15
- //@ts-ignore - getRecordId could be undefined if it comes from serialized state
16
- if (updatedRecordsFromState && updatedRecordsFromState?.length > 0 && updatedRecordsFromState[0].getRecordId) {
17
- this._updatedRecords = new Map(updatedRecordsFromState.map(x => {
18
- const originalClear = x.clear;
19
- const originalSetValue = x.setValue;
20
- const originalSave = x.save;
21
- x.clear = () => {
22
- this._updatedRecords.delete(x.getRecordId());
23
- originalClear();
24
- this._pcfContext.factory.requestRender();
25
- };
26
- x.save = async () => {
27
- const result = await originalSave();
28
- if (result) {
29
- this._updatedRecords.delete(x.getRecordId());
30
- }
31
- [...x.columns.values()].map(col => {
32
- this._internalRecordMap.get(x.getRecordId())?.setValue(col.name, x.getValue(col.name));
33
- });
34
- return result;
35
- };
36
- x.setValue = (columnName, value) => {
37
- originalSetValue(columnName, value);
38
- this._pcfContext.factory.requestRender();
39
- };
40
- return [x.getRecordId(), x];
41
- }));
42
- }
43
- }
44
- get updatedRecords() {
45
- if (this._isReadOnlyChangeEditor() && this._updatedRecords.size === 0) {
46
- const record = this._grid.records[0];
47
- for (const column of this._grid.columns) {
48
- this.record(record.getRecordId()).setValue(column.name, record.getValue(column.name), true);
49
- }
50
- }
51
- return [...this._updatedRecords.values()];
52
- }
53
- get isDirty() {
54
- return this._updatedRecords.size > 0;
55
- }
56
- get hasInvalidRecords() {
57
- return [...this._updatedRecords.values()].find(x => {
58
- for (const column of x.columns.values()) {
59
- if (!x.isValid(column.name)) {
60
- return true;
61
- }
62
- }
63
- return false;
64
- }) ? true : false;
65
- }
66
- record(recordId) {
67
- return {
68
- get: () => this._updatedRecords.get(recordId),
69
- setValue: (columnName, value, doNotPropagateToDatasetRecord) => {
70
- if (!doNotPropagateToDatasetRecord && this._isEqual(columnName, this._internalRecordMap.get(recordId).getValue(columnName), value)) {
71
- return;
72
- }
73
- const updatedRecord = this._updatedRecords.get(recordId);
74
- if (!updatedRecord) {
75
- const deepCopiedRecord = cloneDeep(this._internalRecordMap.get(recordId));
76
- this._updatedRecords.set(recordId, {
77
- columns: new Map([[columnName, this._getColumnByName(columnName)]]),
78
- getRecordId: () => recordId,
79
- getValue: (columnName) => this._internalRecordMap.get(recordId)?.getValue(columnName),
80
- getFormattedValue: (columnName) => this._internalRecordMap.get(recordId)?.getFormattedValue(columnName),
81
- getNamedReference: () => deepCopiedRecord.getNamedReference(),
82
- getOriginalValue: (columnName) => deepCopiedRecord.getValue(columnName),
83
- getOriginalFormattedValue: (columnName) => deepCopiedRecord.getFormattedValue(columnName),
84
- getOriginalFormattedPrimaryNameValue: () => {
85
- let primaryColumn = this._dataset.columns.find(x => x.isPrimary);
86
- if (!primaryColumn) {
87
- primaryColumn = this._dataset.columns[0];
88
- }
89
- let value = deepCopiedRecord.getFormattedValue(primaryColumn.name);
90
- if (!value) {
91
- value = this._grid.labels["no-name"]();
92
- }
93
- return value;
94
- },
95
- setValue: (columnName, value) => {
96
- this._internalRecordMap.get(recordId)?.setValue(columnName, value);
97
- this._pcfContext.factory.requestRender();
98
- },
99
- isValid: (columnName) => {
100
- const column = this._grid.columns.find(x => x.name === columnName);
101
- if (!column) {
102
- return true;
103
- }
104
- const [result, message] = new ColumnValidation(this._grid, column).validate(this._internalRecordMap.get(recordId)?.getValue(columnName));
105
- return result;
106
- },
107
- clear: () => {
108
- const updatedRecord = this._updatedRecords.get(recordId);
109
- const columns = [...updatedRecord.columns.values()];
110
- this._updatedRecords.delete(recordId);
111
- for (const column of columns) {
112
- this._internalRecordMap.get(recordId)?.setValue(column.name, deepCopiedRecord.getValue(column.name));
113
- }
114
- },
115
- save: async () => {
116
- try {
117
- await this._internalRecordMap.get(recordId)?.save();
118
- this._updatedRecords.delete(recordId);
119
- }
120
- catch (err) {
121
- this._grid.pcfContext.navigation.openErrorDialog({
122
- message: 'An error occurred during saving. Some of you changes might now have been saved.',
123
- //@ts-ignore
124
- details: err.message
125
- });
126
- return false;
127
- }
128
- return true;
129
- }
130
- });
131
- }
132
- else {
133
- updatedRecord.columns.set(columnName, this._getColumnByName(columnName));
134
- }
135
- if (!doNotPropagateToDatasetRecord) {
136
- const updatedRecord = this._updatedRecords.get(recordId);
137
- updatedRecord?.setValue(columnName, value);
138
- }
139
- }
140
- };
141
- }
142
- async saveAll() {
143
- const savePromises = [];
144
- for (const record of this._updatedRecords.values()) {
145
- savePromises.push(record.save());
146
- }
147
- const result = await Promise.all(savePromises);
148
- return !result.find(x => x === false);
149
- }
150
- async clearAll() {
151
- for (const record of this._updatedRecords.values()) {
152
- record.clear();
153
- }
154
- this._pcfContext.factory.requestRender();
155
- }
156
- onDependenciesUpdated() {
157
- for (const [recordId, record] of Object.entries(this._grid.dataset.records)) {
158
- this._internalRecordMap.set(recordId, record);
159
- }
160
- }
161
- _getColumnByName(columnName) {
162
- return this._grid.columns.find(x => x.name === columnName);
163
- }
164
- _isReadOnlyChangeEditor() {
165
- return this._grid.props.parameters.ChangeEditorMode?.raw === 'read';
166
- }
167
- _isEqual(columnName, oldValue, newValue) {
168
- const column = this._grid.columns.find(x => x.name === columnName);
169
- //skip in special case for currency
170
- //PCF has no info about the currency, which sometimes make it to ouput change
171
- if (column?.dataType === DataType.CURRENCY) {
172
- Numeral.currency(this._grid.pcfContext.userSettings.numberFormattingInfo);
173
- newValue = numeral(newValue).value();
174
- if (newValue === oldValue) {
175
- return true;
176
- }
177
- }
178
- if (oldValue == newValue) {
179
- return true;
180
- }
181
- return equal(oldValue, newValue);
182
- }
183
- }
184
-
185
- export { RecordUpdateService };
186
- //# sourceMappingURL=RecordUpdateService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecordUpdateService.js","sources":["../../../../../../../src/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.ts"],"sourcesContent":["import equal from \"fast-deep-equal/es6\";\nimport { cloneDeep } from \"lodash\";\nimport numeral from \"numeral\";\nimport { ColumnValidation } from \"../../../../validation/model/ColumnValidation\";\nimport { DataType } from \"../../../enums/DataType\";\nimport { Grid } from \"../../../model/Grid\";\nimport { GridDependency } from \"../../../model/GridDependency\";\nimport { IColumn, IRecord, Numeral } from \"@talxis/client-libraries\";\n\nexport interface IUpdatedRecord extends Omit<IRecord, 'save'> {\n columns: Map<string, IColumn>,\n isValid: (columnName: string) => boolean,\n getOriginalValue: (columnName: string) => any;\n getOriginalFormattedValue: (columnName: string) => any;\n getOriginalFormattedPrimaryNameValue: () => any;\n save: () => Promise<boolean>,\n clear: () => void;\n}\n\nexport class RecordUpdateService extends GridDependency {\n private _updatedRecords: Map<string, IUpdatedRecord> = new Map();\n private _internalRecordMap: Map<string, IRecord> = new Map();\n\n constructor(grid: Grid) {\n super(grid);\n const updatedRecordsFromState: IUpdatedRecord[] | undefined = this._grid.state?.['__updatedRecords'];\n //@ts-ignore - getRecordId could be undefined if it comes from serialized state\n if(updatedRecordsFromState && updatedRecordsFromState?.length > 0 && updatedRecordsFromState[0].getRecordId) {\n this._updatedRecords = new Map(updatedRecordsFromState.map(x => {\n const originalClear = x.clear;\n const originalSetValue = x.setValue;\n const originalSave = x.save;\n x.clear = () => {\n this._updatedRecords.delete(x.getRecordId());\n originalClear();\n this._pcfContext.factory.requestRender();\n }\n x.save = async () => {\n const result = await originalSave();\n if(result) {\n this._updatedRecords.delete(x.getRecordId());\n }\n [...x.columns.values()].map(col => {\n this._internalRecordMap.get(x.getRecordId())?.setValue(col.name, x.getValue(col.name));\n })\n return result;\n }\n x.setValue = (columnName: string, value: any) => {\n originalSetValue(columnName, value);\n this._pcfContext.factory.requestRender();\n }\n return [x.getRecordId(), x]\n }))\n }\n }\n\n public get updatedRecords() {\n if (this._isReadOnlyChangeEditor() && this._updatedRecords.size === 0) {\n const record = this._grid.records[0];\n for (const column of this._grid.columns) {\n this.record(record.getRecordId()).setValue(column.name, record.getValue(column.name), true);\n }\n }\n return [...this._updatedRecords.values()];\n }\n\n public get isDirty() {\n return this._updatedRecords.size > 0;\n }\n\n public get hasInvalidRecords() {\n return [...this._updatedRecords.values()].find(x => {\n for(const column of x.columns.values()) {\n if(!x.isValid(column.name)) {\n return true;\n }\n }\n return false;\n }) ? true : false;\n }\n\n public record(recordId: string) {\n return {\n get: () => this._updatedRecords.get(recordId),\n setValue: (columnName: string, value: any, doNotPropagateToDatasetRecord?: boolean) => {\n if(!doNotPropagateToDatasetRecord && this._isEqual(columnName, this._internalRecordMap.get(recordId)!.getValue(columnName), value)) {\n return;\n }\n const updatedRecord = this._updatedRecords.get(recordId);\n if (!updatedRecord) {\n const deepCopiedRecord = cloneDeep(this._internalRecordMap.get(recordId)!);\n this._updatedRecords.set(recordId, {\n columns: new Map([[columnName, this._getColumnByName(columnName)]]),\n getRecordId: () => recordId,\n getValue: (columnName: string) => this._internalRecordMap.get(recordId)?.getValue(columnName)!,\n getFormattedValue: (columnName: string) => this._internalRecordMap.get(recordId)?.getFormattedValue(columnName)!,\n getNamedReference: () => deepCopiedRecord.getNamedReference(),\n getOriginalValue: (columnName: string) => deepCopiedRecord.getValue(columnName),\n getOriginalFormattedValue: (columnName: string) => deepCopiedRecord.getFormattedValue(columnName),\n getOriginalFormattedPrimaryNameValue: () => {\n let primaryColumn = this._dataset.columns.find(x => x.isPrimary);\n if(!primaryColumn) {\n primaryColumn = this._dataset.columns[0];\n }\n let value = deepCopiedRecord.getFormattedValue(primaryColumn.name);\n if(!value) {\n value = this._grid.labels[\"no-name\"]();\n }\n return value;\n },\n setValue: (columnName: string, value: any) => {\n this._internalRecordMap.get(recordId)?.setValue(columnName, value);\n this._pcfContext.factory.requestRender()\n },\n isValid: (columnName: string) => {\n const column = this._grid.columns.find(x => x.name === columnName);\n if(!column) {\n return true;\n }\n const [result, message] = new ColumnValidation(this._grid, column).validate(this._internalRecordMap.get(recordId)?.getValue(columnName)!)\n return result;\n },\n clear: () => {\n const updatedRecord = this._updatedRecords.get(recordId);\n const columns = [...updatedRecord!.columns.values()];\n this._updatedRecords.delete(recordId);\n for(const column of columns) {\n this._internalRecordMap.get(recordId)?.setValue(column.name, deepCopiedRecord.getValue(column.name));\n }\n },\n save: async () => {\n try {\n await this._internalRecordMap.get(recordId)?.save();\n this._updatedRecords.delete(recordId);\n }\n catch (err) {\n this._grid.pcfContext.navigation.openErrorDialog({\n message: 'An error occurred during saving. Some of you changes might now have been saved.',\n //@ts-ignore\n details: err.message\n })\n return false;\n }\n return true;\n }\n } as any)\n }\n else {\n updatedRecord.columns.set(columnName, this._getColumnByName(columnName))\n }\n if (!doNotPropagateToDatasetRecord) {\n const updatedRecord = this._updatedRecords.get(recordId);\n updatedRecord?.setValue(columnName, value);\n }\n }\n }\n }\n\n public async saveAll(): Promise<boolean> {\n const savePromises: Promise<boolean>[] = [];\n for (const record of this._updatedRecords.values()) {\n savePromises.push(record.save());\n }\n const result = await Promise.all(savePromises);\n return !result.find(x => x === false)\n }\n public async clearAll() {\n for (const record of this._updatedRecords.values()) {\n record.clear();\n }\n this._pcfContext.factory.requestRender();\n }\n\n public onDependenciesUpdated(): void {\n for (const [recordId, record] of Object.entries(this._grid.dataset.records)) {\n this._internalRecordMap.set(recordId, record);\n }\n }\n private _getColumnByName(columnName: string) {\n return this._grid.columns.find(x => x.name === columnName)!;\n }\n private _isReadOnlyChangeEditor() {\n return this._grid.props.parameters.ChangeEditorMode?.raw === 'read';\n }\n private _isEqual(columnName: string, oldValue: any, newValue: any) {\n const column = this._grid.columns.find(x => x.name === columnName);\n //skip in special case for currency\n //PCF has no info about the currency, which sometimes make it to ouput change\n if(column?.dataType === DataType.CURRENCY) {\n Numeral.currency(this._grid.pcfContext.userSettings.numberFormattingInfo);\n newValue = numeral(newValue).value();\n if(newValue === oldValue) {\n return true\n }\n\n }\n if(oldValue == newValue) {\n return true;\n }\n return equal(oldValue, newValue);\n }\n}"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { IGridColumn } from "../../core/interfaces/IGridColumn";
2
- import { IRecord } from "@talxis/client-libraries";
3
- interface IRecordValidation {
4
- column: IGridColumn;
5
- record: IRecord;
6
- }
7
- export declare const useColumnValidationController: (props: IRecordValidation) => [boolean, string];
8
- export {};
@@ -1,25 +0,0 @@
1
- import { useMemo, useState, useEffect } from 'react';
2
- import { useGridInstance } from '../../core/hooks/useGridInstance.js';
3
- import { ColumnValidation } from '../model/ColumnValidation.js';
4
-
5
- const useColumnValidationController = (props) => {
6
- const grid = useGridInstance();
7
- const column = props.column;
8
- const record = props.record;
9
- const columnValidation = useMemo(() => { return new ColumnValidation(grid, column); }, []);
10
- const [isValid, setIsValid] = useState(true);
11
- const [errorMessage, setErrorMessage] = useState("");
12
- useEffect(() => {
13
- if (!column.isEditable) {
14
- //we are not doing validation for non-editable columns
15
- return;
16
- }
17
- const [isValid, errorMessage] = columnValidation.validate(record.getValue(column.name));
18
- setIsValid(isValid);
19
- setErrorMessage(errorMessage);
20
- }, [record.getValue(column.name)]);
21
- return [isValid, errorMessage];
22
- };
23
-
24
- export { useColumnValidationController };
25
- //# sourceMappingURL=useRecordValidationController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRecordValidationController.js","sources":["../../../../../src/components/Grid/validation/controllers/useRecordValidationController.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { useGridInstance } from \"../../core/hooks/useGridInstance\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { ColumnValidation } from \"../model/ColumnValidation\";\nimport { IRecord } from \"@talxis/client-libraries\";\n\ninterface IRecordValidation {\n column: IGridColumn;\n record: IRecord;\n}\n\nexport const useColumnValidationController = (props: IRecordValidation): [boolean, string] => {\n const grid = useGridInstance();\n const column = props.column;\n const record = props.record;\n const columnValidation = useMemo(() => {return new ColumnValidation(grid, column)}, []);\n\n const [isValid, setIsValid] = useState<boolean>(true);\n const [errorMessage, setErrorMessage] = useState<string>(\"\");\n\n useEffect(() => {\n if(!column.isEditable) {\n //we are not doing validation for non-editable columns\n return;\n }\n const [isValid, errorMessage] = columnValidation.validate(record.getValue(column.name));\n setIsValid(isValid);\n setErrorMessage(errorMessage);\n }, [record.getValue(column.name)]);\n\n return [isValid, errorMessage];\n}"],"names":[],"mappings":";;;;AAWa,MAAA,6BAA6B,GAAG,CAAC,KAAwB,KAAuB;AACzF,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAK,EAAE,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA,EAAC,EAAE,EAAE,CAAC,CAAC;IAExF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAE7D,SAAS,CAAC,MAAK;AACX,QAAA,IAAG,CAAC,MAAM,CAAC,UAAU,EAAE;;YAEnB,OAAO;AACV,SAAA;AACD,QAAA,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,UAAU,CAAC,OAAO,CAAC,CAAC;QACpB,eAAe,CAAC,YAAY,CAAC,CAAC;AAClC,KAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAA,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACnC;;;;"}
@@ -1,11 +0,0 @@
1
- import { IGridColumn } from "../../core/interfaces/IGridColumn";
2
- import { GridDependency } from "../../core/model/GridDependency";
3
- import { Grid } from "../../core/model/Grid";
4
- export declare class ColumnValidation extends GridDependency {
5
- private _column;
6
- private _forceNullCheck;
7
- constructor(grid: Grid, column: IGridColumn, forceNullCheck?: boolean);
8
- validate(value: any): [boolean, string];
9
- private _isNull;
10
- private get _labels();
11
- }
@@ -1,90 +0,0 @@
1
- import isEmail from 'validator/es/lib/isEmail';
2
- import isURL from 'validator/es/lib/isURL';
3
- import dayjs from 'dayjs';
4
- import { DataType } from '../../core/enums/DataType.js';
5
- import { GridDependency } from '../../core/model/GridDependency.js';
6
-
7
- class ColumnValidation extends GridDependency {
8
- constructor(grid, column, forceNullCheck) {
9
- super(grid);
10
- this._column = column;
11
- this._forceNullCheck = forceNullCheck ?? false;
12
- }
13
- validate(value) {
14
- const isNull = this._isNull(value);
15
- if ((this._column.isRequired || this._forceNullCheck)) {
16
- if (isNull) {
17
- return [false, this._labels["validation-input-value"]()];
18
- }
19
- }
20
- //can be null
21
- else if (isNull) {
22
- return [true, ""];
23
- }
24
- switch (this._column.dataType) {
25
- case DataType.WHOLE_NONE:
26
- case DataType.DECIMAL:
27
- case DataType.CURRENCY:
28
- case DataType.WHOLE_DURATION: {
29
- if (typeof value === 'string') {
30
- return [false, this._labels["validation-number"]()];
31
- }
32
- break;
33
- }
34
- case DataType.SINGLE_LINE_EMAIL: {
35
- value = `${value}`;
36
- if (!isEmail(value)) {
37
- return [false, this._labels["validation-email"]()];
38
- }
39
- break;
40
- }
41
- case DataType.OPTIONSET: {
42
- if (typeof value === 'number') {
43
- return [true, ""];
44
- }
45
- break;
46
- }
47
- case DataType.SINGLE_LINE_URL: {
48
- value = `${value}`;
49
- if (!isURL(value)) {
50
- return [false, this._labels["validation-url"]()];
51
- }
52
- break;
53
- }
54
- case DataType.DATE_AND_TIME_DATE_AND_TIME:
55
- case DataType.DATE_AND_TIME_DATE_ONLY: {
56
- const date = dayjs(value);
57
- if (!date.isValid()) {
58
- return [false, this._labels["validation-date"]()];
59
- }
60
- break;
61
- }
62
- default: {
63
- if (!value) {
64
- return [false, this._labels["validation-input-value"]()];
65
- }
66
- }
67
- }
68
- return [true, ""];
69
- }
70
- _isNull(value) {
71
- if (value === undefined) {
72
- return true;
73
- }
74
- if (value === null) {
75
- return true;
76
- }
77
- if (value === "") {
78
- return true;
79
- }
80
- if (value?.length === 0) {
81
- return true;
82
- }
83
- }
84
- get _labels() {
85
- return this._grid.labels;
86
- }
87
- }
88
-
89
- export { ColumnValidation };
90
- //# sourceMappingURL=ColumnValidation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnValidation.js","sources":["../../../../../src/components/Grid/validation/model/ColumnValidation.ts"],"sourcesContent":["import isEmail from \"validator/es/lib/isEmail\";\nimport isURL from \"validator/es/lib/isURL\";\nimport dayjs from \"dayjs\";\nimport { DataType } from \"../../core/enums/DataType\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { GridDependency } from \"../../core/model/GridDependency\";\nimport { Grid } from \"../../core/model/Grid\";\n\nexport class ColumnValidation extends GridDependency {\n private _column: IGridColumn;\n private _forceNullCheck: boolean;\n\n constructor(grid: Grid, column: IGridColumn, forceNullCheck?: boolean) {\n super(grid);\n this._column = column;\n this._forceNullCheck = forceNullCheck ?? false;\n }\n public validate(value: any): [boolean, string] {\n const isNull = this._isNull(value);\n if ((this._column.isRequired || this._forceNullCheck)) {\n if (isNull) {\n return [false, this._labels[\"validation-input-value\"]()]\n }\n }\n //can be null\n else if (isNull) {\n return [true, \"\"]\n }\n switch (this._column.dataType) {\n case DataType.WHOLE_NONE:\n case DataType.DECIMAL:\n case DataType.CURRENCY:\n case DataType.WHOLE_DURATION: {\n if (typeof value === 'string') {\n return [false, this._labels[\"validation-number\"]()]\n }\n break;\n }\n case DataType.SINGLE_LINE_EMAIL: {\n value = `${value}`;\n if (!isEmail(value)) {\n return [false, this._labels[\"validation-email\"]()]\n }\n break;\n }\n case DataType.OPTIONSET: {\n if(typeof value === 'number') {\n return [true, \"\"];\n }\n break;\n }\n case DataType.SINGLE_LINE_URL: {\n value = `${value}`;\n if (!isURL(value)) {\n return [false, this._labels[\"validation-url\"]()]\n }\n break;\n }\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n const date = dayjs(value);\n if (!date.isValid()) {\n return [false, this._labels[\"validation-date\"]()]\n }\n break;\n }\n default: {\n if (!value) {\n return [false, this._labels[\"validation-input-value\"]()]\n }\n }\n }\n return [true, \"\"];\n }\n private _isNull(value: any) {\n if(value === undefined) {\n return true;\n }\n if (value === null) {\n return true;\n }\n if(value === \"\") {\n return true;\n }\n if(value?.length === 0) {\n return true;\n }\n }\n private get _labels() {\n return this._grid.labels;\n }\n}"],"names":[],"mappings":"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"}