@talxis/base-controls 1.2410.3 → 1.2410.5

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 (138) hide show
  1. package/README.md +20 -11
  2. package/dist/components/DatasetControl/DatasetControl.d.ts +3 -0
  3. package/dist/components/DatasetControl/DatasetControl.js +58 -0
  4. package/dist/components/DatasetControl/DatasetControl.js.map +1 -0
  5. package/dist/components/DatasetControl/hooks/useRerender.d.ts +1 -0
  6. package/dist/components/DatasetControl/hooks/useRerender.js +9 -0
  7. package/dist/components/DatasetControl/hooks/useRerender.js.map +1 -0
  8. package/dist/components/DatasetControl/index.d.ts +2 -0
  9. package/dist/components/DatasetControl/index.js +2 -0
  10. package/dist/components/DatasetControl/index.js.map +1 -0
  11. package/dist/components/DatasetControl/interfaces.d.ts +10 -0
  12. package/dist/components/DatasetControl/styles.d.ts +8 -0
  13. package/dist/components/DatasetControl/styles.js +17 -0
  14. package/dist/components/DatasetControl/styles.js.map +1 -0
  15. package/dist/components/DatasetControl/translations.d.ts +10 -0
  16. package/dist/components/DatasetControl/translations.js +7 -0
  17. package/dist/components/DatasetControl/translations.js.map +1 -0
  18. package/dist/components/Decimal/Decimal.js +1 -1
  19. package/dist/components/Decimal/Decimal.js.map +1 -1
  20. package/dist/components/Duration/Duration.js +1 -1
  21. package/dist/components/Duration/Duration.js.map +1 -1
  22. package/dist/components/Grid/Grid.js +9 -2
  23. package/dist/components/Grid/Grid.js.map +1 -1
  24. package/dist/components/Grid/constants.d.ts +1 -2
  25. package/dist/components/Grid/constants.js +2 -2
  26. package/dist/components/Grid/constants.js.map +1 -1
  27. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +21 -47
  28. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  29. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +2 -3
  30. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +12 -8
  31. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +1 -1
  32. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +1 -2
  33. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +20 -16
  34. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  35. package/dist/components/Grid/core/components/AgGrid/styles.d.ts +1 -4
  36. package/dist/components/Grid/core/components/AgGrid/styles.js +6 -9
  37. package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
  38. package/dist/components/Grid/core/components/Cell/Commands/Commands.d.ts +2 -2
  39. package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -1
  40. package/dist/components/Grid/core/components/Cell/Commands/Icon.d.ts +2 -2
  41. package/dist/components/Grid/core/components/Cell/Commands/Icon.js.map +1 -1
  42. package/dist/components/Grid/core/components/Cell/Commands/useCommands.d.ts +2 -2
  43. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js +2 -0
  44. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js.map +1 -1
  45. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +4 -6
  46. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -1
  47. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.d.ts +11 -0
  48. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +93 -0
  49. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +1 -0
  50. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.d.ts +36 -0
  51. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js +42 -0
  52. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js.map +1 -0
  53. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.d.ts +2 -2
  54. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +106 -29
  55. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -1
  56. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.d.ts +2 -2
  57. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +3 -3
  58. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +1 -1
  59. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +49 -2
  60. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +51 -4
  61. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -1
  62. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +1 -1
  63. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
  64. package/dist/components/Grid/core/components/Component/model/Component.js +18 -11
  65. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -1
  66. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
  67. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +8 -0
  68. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +1 -1
  69. package/dist/components/Grid/core/constants.d.ts +1 -0
  70. package/dist/components/Grid/core/constants.js +4 -0
  71. package/dist/components/Grid/core/constants.js.map +1 -0
  72. package/dist/components/Grid/core/controllers/useGridController.d.ts +0 -2
  73. package/dist/components/Grid/core/controllers/useGridController.js +1 -17
  74. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
  75. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +9 -18
  76. package/dist/components/Grid/core/model/Grid.d.ts +17 -10
  77. package/dist/components/Grid/core/model/Grid.js +93 -74
  78. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  79. package/dist/components/Grid/core/model/GridDependency.d.ts +1 -1
  80. package/dist/components/Grid/core/model/Metadata.d.ts +2 -3
  81. package/dist/components/Grid/core/model/Metadata.js +13 -9
  82. package/dist/components/Grid/core/model/Metadata.js.map +1 -1
  83. package/dist/components/Grid/core/services/KeyListener.d.ts +8 -0
  84. package/dist/components/Grid/core/services/KeyListener.js +22 -0
  85. package/dist/components/Grid/core/services/KeyListener.js.map +1 -0
  86. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.d.ts +8 -8
  87. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +22 -26
  88. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +1 -1
  89. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +16 -16
  90. package/dist/components/Grid/filtering/controller/useColumnFilterConditionController.js.map +1 -1
  91. package/dist/components/Grid/filtering/model/Condition.js +7 -3
  92. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  93. package/dist/components/Grid/filtering/model/Filtering.js +4 -4
  94. package/dist/components/Grid/filtering/model/Filtering.js.map +1 -1
  95. package/dist/components/Grid/interfaces.d.ts +5 -14
  96. package/dist/components/Grid/paging/components/Paging/Paging.js +7 -1
  97. package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -1
  98. package/dist/components/Grid/paging/controllers/usePagingController.d.ts +2 -1
  99. package/dist/components/Grid/paging/controllers/usePagingController.js +1 -0
  100. package/dist/components/Grid/paging/controllers/usePagingController.js.map +1 -1
  101. package/dist/components/Grid/paging/model/Paging.d.ts +2 -1
  102. package/dist/components/Grid/paging/model/Paging.js +22 -4
  103. package/dist/components/Grid/paging/model/Paging.js.map +1 -1
  104. package/dist/components/Grid/selection/controllers/useSelectionController.d.ts +2 -2
  105. package/dist/components/Grid/selection/controllers/useSelectionController.js +7 -3
  106. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +1 -1
  107. package/dist/components/Grid/selection/model/Selection.d.ts +3 -3
  108. package/dist/components/Grid/selection/model/Selection.js +7 -4
  109. package/dist/components/Grid/selection/model/Selection.js.map +1 -1
  110. package/dist/components/Grid/sorting/Sorting.js +5 -6
  111. package/dist/components/Grid/sorting/Sorting.js.map +1 -1
  112. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +3 -3
  113. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
  114. package/dist/components/Grid/translations.d.ts +8 -0
  115. package/dist/components/Grid/translations.js +3 -1
  116. package/dist/components/Grid/translations.js.map +1 -1
  117. package/dist/components/Grid/validation/controllers/useRecordValidationController.d.ts +2 -2
  118. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +2 -2
  119. package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +1 -1
  120. package/dist/hooks/useControl.js +1 -1
  121. package/dist/hooks/useControl.js.map +1 -1
  122. package/dist/hooks/useThemeOverride.d.ts +1 -0
  123. package/dist/hooks/useThemeOverride.js +23 -0
  124. package/dist/hooks/useThemeOverride.js.map +1 -0
  125. package/dist/index.d.ts +351 -367
  126. package/dist/index.js +1 -1
  127. package/dist/interfaces/property.d.ts +0 -29
  128. package/dist/utils/Theme.js +26 -0
  129. package/dist/utils/Theme.js.map +1 -1
  130. package/dist/utils/index.d.ts +0 -1
  131. package/dist/utils/index.js +0 -1
  132. package/dist/utils/index.js.map +1 -1
  133. package/package.json +4 -3
  134. package/dist/components/Grid/core/hooks/useRerender.js +0 -13
  135. package/dist/components/Grid/core/hooks/useRerender.js.map +0 -1
  136. package/dist/utils/Numeral.d.ts +0 -6
  137. package/dist/utils/Numeral.js +0 -64
  138. package/dist/utils/Numeral.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import equal from 'fast-deep-equal/es6';
2
2
  import { cloneDeep } from 'lodash';
3
3
  import numeral from 'numeral';
4
- import { Numeral } from '../../../../../../utils/Numeral.js';
5
4
  import { ColumnValidation } from '../../../../validation/model/ColumnValidation.js';
6
5
  import { DataType } from '../../../enums/DataType.js';
7
6
  import { GridDependency } from '../../../model/GridDependency.js';
7
+ import { Numeral } from '@talxis/client-libraries';
8
8
 
9
9
  class RecordUpdateService extends GridDependency {
10
10
  constructor(grid) {
@@ -45,7 +45,7 @@ class RecordUpdateService extends GridDependency {
45
45
  if (this._isReadOnlyChangeEditor() && this._updatedRecords.size === 0) {
46
46
  const record = this._grid.records[0];
47
47
  for (const column of this._grid.columns) {
48
- this.record(record.getRecordId()).setValue(column.key, record.getValue(column.key), true);
48
+ this.record(record.getRecordId()).setValue(column.name, record.getValue(column.name), true);
49
49
  }
50
50
  }
51
51
  return [...this._updatedRecords.values()];
@@ -66,21 +66,21 @@ class RecordUpdateService extends GridDependency {
66
66
  record(recordId) {
67
67
  return {
68
68
  get: () => this._updatedRecords.get(recordId),
69
- setValue: (columnKey, value, doNotPropagateToDatasetRecord) => {
70
- if (!doNotPropagateToDatasetRecord && this._isEqual(columnKey, this._internalRecordMap.get(recordId).getValue(columnKey), value)) {
69
+ setValue: (columnName, value, doNotPropagateToDatasetRecord) => {
70
+ if (!doNotPropagateToDatasetRecord && this._isEqual(columnName, this._internalRecordMap.get(recordId).getValue(columnName), value)) {
71
71
  return;
72
72
  }
73
73
  const updatedRecord = this._updatedRecords.get(recordId);
74
74
  if (!updatedRecord) {
75
75
  const deepCopiedRecord = cloneDeep(this._internalRecordMap.get(recordId));
76
76
  this._updatedRecords.set(recordId, {
77
- columns: new Map([[columnKey, this._getEntityColumnByKey(columnKey)]]),
77
+ columns: new Map([[columnName, this._getColumnByName(columnName)]]),
78
78
  getRecordId: () => recordId,
79
- getValue: (columnKey) => this._internalRecordMap.get(recordId)?.getValue(columnKey),
80
- getFormattedValue: (columnKey) => this._internalRecordMap.get(recordId)?.getFormattedValue(columnKey),
79
+ getValue: (columnName) => this._internalRecordMap.get(recordId)?.getValue(columnName),
80
+ getFormattedValue: (columnName) => this._internalRecordMap.get(recordId)?.getFormattedValue(columnName),
81
81
  getNamedReference: () => deepCopiedRecord.getNamedReference(),
82
- getOriginalValue: (columnKey) => deepCopiedRecord.getValue(columnKey),
83
- getOriginalFormattedValue: (columnKey) => deepCopiedRecord.getFormattedValue(columnKey),
82
+ getOriginalValue: (columnName) => deepCopiedRecord.getValue(columnName),
83
+ getOriginalFormattedValue: (columnName) => deepCopiedRecord.getFormattedValue(columnName),
84
84
  getOriginalFormattedPrimaryNameValue: () => {
85
85
  let primaryColumn = this._dataset.columns.find(x => x.isPrimary);
86
86
  if (!primaryColumn) {
@@ -92,15 +92,16 @@ class RecordUpdateService extends GridDependency {
92
92
  }
93
93
  return value;
94
94
  },
95
- setValue: (columnKey, value) => {
96
- this._internalRecordMap.get(recordId)?.setValue(columnKey, value);
95
+ setValue: (columnName, value) => {
96
+ this._internalRecordMap.get(recordId)?.setValue(columnName, value);
97
+ this._pcfContext.factory.requestRender();
97
98
  },
98
- isValid: (columnKey) => {
99
- const column = this._grid.columns.find(x => x.key === columnKey);
99
+ isValid: (columnName) => {
100
+ const column = this._grid.columns.find(x => x.name === columnName);
100
101
  if (!column) {
101
102
  return true;
102
103
  }
103
- const [result, message] = new ColumnValidation(this._grid, column).validate(this._internalRecordMap.get(recordId)?.getValue(columnKey));
104
+ const [result, message] = new ColumnValidation(this._grid, column).validate(this._internalRecordMap.get(recordId)?.getValue(columnName));
104
105
  return result;
105
106
  },
106
107
  clear: () => {
@@ -129,11 +130,11 @@ class RecordUpdateService extends GridDependency {
129
130
  });
130
131
  }
131
132
  else {
132
- updatedRecord.columns.set(columnKey, this._getEntityColumnByKey(columnKey));
133
+ updatedRecord.columns.set(columnName, this._getColumnByName(columnName));
133
134
  }
134
135
  if (!doNotPropagateToDatasetRecord) {
135
136
  const updatedRecord = this._updatedRecords.get(recordId);
136
- updatedRecord?.setValue(columnKey, value);
137
+ updatedRecord?.setValue(columnName, value);
137
138
  }
138
139
  }
139
140
  };
@@ -150,26 +151,21 @@ class RecordUpdateService extends GridDependency {
150
151
  for (const record of this._updatedRecords.values()) {
151
152
  record.clear();
152
153
  }
154
+ this._pcfContext.factory.requestRender();
153
155
  }
154
156
  onDependenciesUpdated() {
155
157
  for (const [recordId, record] of Object.entries(this._grid.dataset.records)) {
156
158
  this._internalRecordMap.set(recordId, record);
157
159
  }
158
160
  }
159
- _getEntityColumnByKey(columnKey) {
160
- const gridColumn = this._grid.columns.find(x => x.key === columnKey);
161
- return this._dataset.columns.find(x => {
162
- if (!gridColumn.entityAliasName) {
163
- return x.name === gridColumn.attributeName;
164
- }
165
- return x.name === gridColumn.attributeName && x.alias === gridColumn.entityAliasName;
166
- });
161
+ _getColumnByName(columnName) {
162
+ return this._grid.columns.find(x => x.name === columnName);
167
163
  }
168
164
  _isReadOnlyChangeEditor() {
169
165
  return this._grid.props.parameters.ChangeEditorMode?.raw === 'read';
170
166
  }
171
- _isEqual(columnKey, oldValue, newValue) {
172
- const column = this._grid.columns.find(x => x.key === columnKey);
167
+ _isEqual(columnName, oldValue, newValue) {
168
+ const column = this._grid.columns.find(x => x.name === columnName);
173
169
  //skip in special case for currency
174
170
  //PCF has no info about the currency, which sometimes make it to ouput change
175
171
  if (column?.dataType === DataType.CURRENCY) {
@@ -1 +1 @@
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 { Numeral } from \"../../../../../../utils/Numeral\";\nimport { IEntityColumn, IEntityRecord } from \"../../../../interfaces\";\nimport { ColumnValidation } from \"../../../../validation/model/ColumnValidation\";\nimport { DataType } from \"../../../enums/DataType\";\nimport { Grid } from \"../../../model/Grid\";\nimport { GridDependency } from \"../../../model/GridDependency\";\n\nexport interface IUpdatedRecord extends Omit<IEntityRecord, 'save'> {\n columns: Map<string, IEntityColumn>,\n isValid: (columnKey: string) => boolean,\n getOriginalValue: (columnKey: string) => any;\n getOriginalFormattedValue: (columnKey: 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, IEntityRecord> = 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.key, record.getValue(column.key), 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: (columnKey: string, value: any, doNotPropagateToDatasetRecord?: boolean) => {\n if(!doNotPropagateToDatasetRecord && this._isEqual(columnKey, this._internalRecordMap.get(recordId)!.getValue(columnKey), 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([[columnKey, this._getEntityColumnByKey(columnKey)]]),\n getRecordId: () => recordId,\n getValue: (columnKey: string) => this._internalRecordMap.get(recordId)?.getValue(columnKey)!,\n getFormattedValue: (columnKey: string) => this._internalRecordMap.get(recordId)?.getFormattedValue(columnKey)!,\n getNamedReference: () => deepCopiedRecord.getNamedReference(),\n getOriginalValue: (columnKey: string) => deepCopiedRecord.getValue(columnKey),\n getOriginalFormattedValue: (columnKey: string) => deepCopiedRecord.getFormattedValue(columnKey),\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: (columnKey: string, value: any) => {\n this._internalRecordMap.get(recordId)?.setValue(columnKey, value);\n },\n isValid: (columnKey: string) => {\n const column = this._grid.columns.find(x => x.key === columnKey);\n if(!column) {\n return true;\n }\n const [result, message] = new ColumnValidation(this._grid, column).validate(this._internalRecordMap.get(recordId)?.getValue(columnKey)!)\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 })\n }\n else {\n updatedRecord.columns.set(columnKey, this._getEntityColumnByKey(columnKey))\n }\n if (!doNotPropagateToDatasetRecord) {\n const updatedRecord = this._updatedRecords.get(recordId);\n updatedRecord?.setValue(columnKey, 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 }\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 _getEntityColumnByKey(columnKey: string) {\n const gridColumn = this._grid.columns.find(x => x.key === columnKey)!;\n return this._dataset.columns.find(x => {\n if (!gridColumn.entityAliasName) {\n return x.name === gridColumn.attributeName;\n }\n return x.name === gridColumn.attributeName && x.alias === gridColumn.entityAliasName;\n })!;\n }\n private _isReadOnlyChangeEditor() {\n return this._grid.props.parameters.ChangeEditorMode?.raw === 'read';\n }\n private _isEqual(columnKey: string, oldValue: any, newValue: any) {\n const column = this._grid.columns.find(x => x.key === columnKey);\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
+ {"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,27 +1,27 @@
1
1
  /// <reference types="react" />
2
- import { DataType } from "../../../../../../core/enums/DataType";
3
2
  import { IColumnFilterConditionController } from "../../../../../controller/useColumnFilterConditionController";
4
3
  export declare class ConditionComponentValue {
5
4
  private _columnFilterConditionControllerRef;
6
5
  private _conditionUtils;
7
6
  constructor(columnFilterConditionControllerRef: React.MutableRefObject<IColumnFilterConditionController>);
8
7
  get column(): {
9
- key: string;
10
- attributeName: string;
11
- isPrimary?: boolean | undefined;
12
- dataType?: DataType | undefined;
13
- displayName?: string | undefined;
14
- entityAliasName?: string | undefined;
15
- isFilterable?: boolean | undefined;
16
- isSortable?: boolean | undefined;
17
- isSorted?: boolean | undefined;
18
- isFiltered?: boolean | undefined;
19
- isSortedDescending?: boolean | undefined;
20
- isEditable?: boolean | undefined;
21
- isResizable?: boolean | undefined;
22
- isRequired?: boolean | undefined;
8
+ isRequired: boolean;
9
+ isEditable: boolean;
10
+ isFilterable: boolean;
11
+ isSorted: boolean;
12
+ isFiltered: boolean;
13
+ isSortedDescending: boolean;
14
+ isResizable: boolean;
15
+ metadata?: import("@talxis/client-libraries").IAttributeMetadata | undefined;
16
+ name: string;
17
+ displayName: string;
18
+ dataType: string;
19
+ alias: string;
20
+ order: number;
21
+ visualSizeFactor: number;
23
22
  isHidden?: boolean | undefined;
24
- width?: number | undefined;
23
+ isPrimary?: boolean | undefined;
24
+ disableSorting?: boolean | undefined;
25
25
  };
26
26
  get(): any;
27
27
  set(value: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnFilterConditionController.js","sources":["../../../../../src/components/Grid/filtering/controller/useColumnFilterConditionController.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { DatasetConditionOperator } from \"../../core/enums/ConditionOperator\";\nimport { useGridInstance } from \"../../core/hooks/useGridInstance\"\nimport { useRefreshCallback } from \"../../core/hooks/useRefreshCallback\";\nimport { useRerender } from \"../../core/hooks/useRerender\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { Condition } from \"../model/Condition\";\n\nexport interface IColumnFilterConditionController {\n isAppliedToDataset: boolean,\n column: IGridColumn,\n value: {\n valid: boolean;\n get: () => any;\n set: (value: any) => void;\n }\n operator: {\n get: () => DatasetConditionOperator | undefined;\n set: (operator: DatasetConditionOperator) => void;\n },\n remove: () => void;\n save: () => Promise<boolean>;\n clear: () => void;\n}\n\nexport const useColumnFilterConditionController = (column: IGridColumn): IColumnFilterConditionController | null => {\n const filtering = useGridInstance().filtering;\n const conditionPromise = useMemo(() => filtering.condition(column), []);\n const [controller, setController] = useState<IColumnFilterConditionController>();\n \n const refresh = async () => {\n const condition = await conditionPromise;\n setController(prevState => ({\n ...prevState,\n isAppliedToDataset: condition.isAppliedToDataset,\n column: condition?.column,\n operator: {\n get: () => condition.operator.get(),\n set: (operator) => condition.operator.set(operator)\n },\n value: {\n valid: condition.isValid,\n get: () => condition.value.get(),\n set: (value) => condition.value.set(value)\n },\n remove: () => condition?.remove(),\n save: () => condition?.save(),\n clear: () => condition?.clear()\n }))\n }\n useRefreshCallback(conditionPromise, refresh);\n useEffect(() => {\n (async () => {\n refresh();\n })();\n }, []);\n\n\n if(!controller) {\n return null;\n }\n return controller;\n}"],"names":[],"mappings":";;;;AAyBa,MAAA,kCAAkC,GAAG,CAAC,MAAmB,KAA6C;AAC/G,IAAA,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,SAAS,CAAC;AAC9C,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAoC,CAAC;AAEjF,IAAA,MAAM,OAAO,GAAG,YAAW;AACvB,QAAA,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;AACzC,QAAA,aAAa,CAAC,SAAS,KAAK;AACxB,YAAA,GAAG,SAAS;YACZ,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,MAAM,EAAE,SAAS,EAAE,MAAM;AACzB,YAAA,QAAQ,EAAE;gBACN,GAAG,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;AACnC,gBAAA,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtD,aAAA;AACD,YAAA,KAAK,EAAE;gBACH,KAAK,EAAE,SAAS,CAAC,OAAO;gBACxB,GAAG,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;AAChC,gBAAA,GAAG,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7C,aAAA;AACD,YAAA,MAAM,EAAE,MAAM,SAAS,EAAE,MAAM,EAAE;AACjC,YAAA,IAAI,EAAE,MAAM,SAAS,EAAE,IAAI,EAAE;AAC7B,YAAA,KAAK,EAAE,MAAM,SAAS,EAAE,KAAK,EAAE;AAClC,SAAA,CAAC,CAAC,CAAA;AACP,KAAC,CAAA;AACD,IAAA,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,OAAO,EAAE,CAAC;SACb,GAAG,CAAC;KACR,EAAE,EAAE,CAAC,CAAC;IAGP,IAAG,CAAC,UAAU,EAAE;AACZ,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,OAAO,UAAU,CAAC;AACtB;;;;"}
1
+ {"version":3,"file":"useColumnFilterConditionController.js","sources":["../../../../../src/components/Grid/filtering/controller/useColumnFilterConditionController.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport { DatasetConditionOperator } from \"../../core/enums/ConditionOperator\";\nimport { useGridInstance } from \"../../core/hooks/useGridInstance\"\nimport { useRefreshCallback } from \"../../core/hooks/useRefreshCallback\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\n\nexport interface IColumnFilterConditionController {\n isAppliedToDataset: boolean,\n column: IGridColumn,\n value: {\n valid: boolean;\n get: () => any;\n set: (value: any) => void;\n }\n operator: {\n get: () => DatasetConditionOperator | undefined;\n set: (operator: DatasetConditionOperator) => void;\n },\n remove: () => void;\n save: () => Promise<boolean>;\n clear: () => void;\n}\n\nexport const useColumnFilterConditionController = (column: IGridColumn): IColumnFilterConditionController | null => {\n const filtering = useGridInstance().filtering;\n const conditionPromise = useMemo(() => filtering.condition(column), []);\n const [controller, setController] = useState<IColumnFilterConditionController>();\n \n const refresh = async () => {\n const condition = await conditionPromise;\n setController(prevState => ({\n ...prevState,\n isAppliedToDataset: condition.isAppliedToDataset,\n column: condition?.column,\n operator: {\n get: () => condition.operator.get(),\n set: (operator) => condition.operator.set(operator)\n },\n value: {\n valid: condition.isValid,\n get: () => condition.value.get(),\n set: (value) => condition.value.set(value)\n },\n remove: () => condition?.remove(),\n save: () => condition?.save(),\n clear: () => condition?.clear()\n }))\n }\n useRefreshCallback(conditionPromise, refresh);\n useEffect(() => {\n (async () => {\n refresh();\n })();\n }, []);\n\n\n if(!controller) {\n return null;\n }\n return controller;\n}"],"names":[],"mappings":";;;;AAuBa,MAAA,kCAAkC,GAAG,CAAC,MAAmB,KAA6C;AAC/G,IAAA,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,SAAS,CAAC;AAC9C,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAoC,CAAC;AAEjF,IAAA,MAAM,OAAO,GAAG,YAAW;AACvB,QAAA,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;AACzC,QAAA,aAAa,CAAC,SAAS,KAAK;AACxB,YAAA,GAAG,SAAS;YACZ,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,MAAM,EAAE,SAAS,EAAE,MAAM;AACzB,YAAA,QAAQ,EAAE;gBACN,GAAG,EAAE,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;AACnC,gBAAA,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtD,aAAA;AACD,YAAA,KAAK,EAAE;gBACH,KAAK,EAAE,SAAS,CAAC,OAAO;gBACxB,GAAG,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;AAChC,gBAAA,GAAG,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7C,aAAA;AACD,YAAA,MAAM,EAAE,MAAM,SAAS,EAAE,MAAM,EAAE;AACjC,YAAA,IAAI,EAAE,MAAM,SAAS,EAAE,IAAI,EAAE;AAC7B,YAAA,KAAK,EAAE,MAAM,SAAS,EAAE,KAAK,EAAE;AAClC,SAAA,CAAC,CAAC,CAAA;AACP,KAAC,CAAA;AACD,IAAA,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,OAAO,EAAE,CAAC;SACb,GAAG,CAAC;KACR,EAAE,EAAE,CAAC,CAAC;IAGP,IAAG,CAAC,UAAU,EAAE;AACZ,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACD,IAAA,OAAO,UAAU,CAAC;AACtB;;;;"}
@@ -1,3 +1,4 @@
1
+ import { Attribute } from '@talxis/client-libraries';
1
2
  import { DatasetConditionOperator } from '../../core/enums/ConditionOperator.js';
2
3
  import { DataType } from '../../core/enums/DataType.js';
3
4
  import { GridDependency } from '../../core/model/GridDependency.js';
@@ -255,10 +256,12 @@ class Condition extends GridDependency {
255
256
  return conditionOperator;
256
257
  }
257
258
  _getDefault() {
259
+ const entityAliasName = Attribute.GetLinkedEntityAlias(this._column.name);
260
+ const attributeName = Attribute.GetNameFromAlias(this._column.name);
258
261
  const cond = {
259
- attributeName: this._column.attributeName,
262
+ attributeName: attributeName,
260
263
  conditionOperator: DatasetConditionOperator.Equal,
261
- entityAliasName: this._column.entityAliasName,
264
+ entityAliasName: entityAliasName ?? "",
262
265
  value: ""
263
266
  };
264
267
  switch (this._column.dataType) {
@@ -283,9 +286,10 @@ class Condition extends GridDependency {
283
286
  }
284
287
  async _getConditionFromFilterExpression() {
285
288
  const map = new Map(this._filterExpression.conditions.map(x => [x.attributeName, x]));
289
+ const attributeName = Attribute.GetNameFromAlias(this._column.name);
286
290
  for (const cond of map.values()) {
287
291
  const conditionAttributeName = await this._attributeNameDecorator(cond.conditionOperator, cond.attributeName, true);
288
- if (conditionAttributeName === this._column.attributeName) {
292
+ if (conditionAttributeName === attributeName) {
289
293
  return [map, cond.attributeName];
290
294
  }
291
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Condition.js","sources":["../../../../../src/components/Grid/filtering/model/Condition.ts"],"sourcesContent":["import { DatasetConditionOperator } from \"../../core/enums/ConditionOperator\";\nimport { DataType } from \"../../core/enums/DataType\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { Grid } from \"../../core/model/Grid\";\nimport { GridDependency } from \"../../core/model/GridDependency\";\nimport { ColumnValidation } from \"../../validation/model/ColumnValidation\";\nimport { FilteringUtils } from \"../utils/FilteringUtilts\";\n\nexport class Condition extends GridDependency {\n private _column: IGridColumn;\n private _isAppliedToDataset: boolean = false;\n private _conditionExpression: ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression = {} as any;\n private _isRemoved?: boolean;\n private _conditionUtils = FilteringUtils.condition();\n private _isValid: boolean = true;\n private _inicializationPromise: Promise<boolean> | undefined;\n private _initialized: boolean = false;\n\n constructor(grid: Grid, column: IGridColumn) {\n super(grid);\n this._column = {...column};\n switch(this._column.dataType) {\n //this will skip regex validation since it is not desirable during filtering (we have contains and stuff)\n case DataType.SINGLE_LINE_EMAIL:\n case DataType.SINGLE_LINE_URL: {\n this._column.dataType = DataType.SINGLE_LINE_TEXT;\n }\n }\n return new Proxy(this, {\n get: (target, prop) => {\n if(prop !== 'init') {\n if(!target._initialized) {\n throw new Error('Condition has not been initialized. Make sure to call the init() method on the condition object before any operations.')\n }\n }\n //@ts-ignore\n if (typeof target[prop] === 'function') {\n //@ts-ignore\n return target[prop].bind(target);\n }\n //@ts-ignore\n return target[prop];\n }\n })\n }\n public async init() {\n if (!this._inicializationPromise) {\n this._inicializationPromise = new Promise(async (resolve) => {\n const [map, key] = await this._getConditionFromFilterExpression();\n if(!key) {\n this._conditionExpression = this._getDefault();\n }\n else {\n this._isAppliedToDataset = true;\n this._conditionExpression = map.get(key)!;\n }\n this._conditionExpression.conditionOperator = this._operatorDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value, true) as any;\n this._conditionExpression.value = this._valueDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value, true);\n this._conditionExpression.attributeName = await this._attributeNameDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.attributeName, true);\n resolve(true);\n this._initialized = true;\n })\n }\n return this._inicializationPromise;\n }\n public get isRemoved() {\n return this._isRemoved;\n }\n\n public get column() {\n return this._column;\n }\n\n public get isAppliedToDataset() {\n return this._isAppliedToDataset;\n }\n\n public get isValid() {\n return this._isValid;\n }\n\n public async getExpression() {\n const result = { ...this._conditionExpression };\n result.conditionOperator = this._operatorDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value) as any;\n result.value = this._valueDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value);\n result.attributeName = await this._attributeNameDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.attributeName);\n return result;\n\n }\n public async save(): Promise<boolean> {\n if (!await this.value.isValid()) {\n this._isValid = false;\n this._triggerRefreshCallbacks();\n return false;\n }\n const filterExpression = this._filterExpression;\n if (this._isAppliedToDataset || this._isRemoved) {\n const [map, key] = await this._getConditionFromFilterExpression();\n map.delete(key);\n filterExpression.conditions = [...map.values()];\n }\n if (!this._isRemoved) {\n filterExpression.conditions.push(await this.getExpression());\n }\n this._dataset.filtering.setFilter(filterExpression);\n return true;\n\n }\n public remove() {\n this._isRemoved = true;\n }\n public clear() {\n this._inicializationPromise = undefined;\n }\n public get operator() {\n return {\n get: () => this._get('operator') as DatasetConditionOperator,\n set: (conditionOperator: DatasetConditionOperator) => {\n const previousOperator = this._conditionExpression.conditionOperator\n this._set(\"operator\", conditionOperator, null);\n const isCurrentEditable = this._conditionUtils.value(conditionOperator).isManuallyEditable;\n const isPreviousEditable = this._conditionUtils.value(previousOperator).isManuallyEditable;\n\n if (isCurrentEditable !== isPreviousEditable) {\n // we are transitioning between editable and non-editable operators and the value of these data types needs to be set to null\n // to prevent type incompability\n switch (this._column.dataType) {\n case DataType.MULTI_SELECT_OPTIONSET:\n case DataType.OPTIONSET:\n case DataType.TWO_OPTIONS:\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_CUSTOMER:\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n this._conditionExpression!.value = \"\"\n break;\n }\n }\n }\n },\n }\n }\n\n public get value() {\n return {\n get: () => this._get('value') as any,\n set: (value: any) => this._set(\"value\", undefined, value),\n isValid: async () => {\n if(this._conditionUtils.operator(this.operator.get()).doesNotAllowValue) {\n return true;\n }\n const [result, errorMessage] = await new ColumnValidation(this._grid, this._column, true).validate(await this.value.get());\n return result;\n }\n }\n }\n private _get(type: 'operator' | 'value'): DatasetConditionOperator | any {\n if (type === 'operator') {\n return this._conditionExpression.conditionOperator;\n }\n return this._conditionExpression.value;\n }\n private _set(type: 'operator' | 'value', conditionOperator?: DatasetConditionOperator, value?: any) {\n this._isValid = true;\n if (type === 'operator') {\n this._conditionExpression.conditionOperator = conditionOperator as any;\n }\n else {\n this._conditionExpression.value = value;\n }\n this._triggerRefreshCallbacks();\n }\n\n private async _attributeNameDecorator(conditionOperator: DatasetConditionOperator, attributeName: string, undecorate?: boolean) {\n if (!this._conditionUtils.value(conditionOperator).isManuallyEditable) {\n return attributeName;\n }\n switch (this._column.dataType) {\n case DataType.OPTIONSET:\n case DataType.TWO_OPTIONS:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER: {\n if (undecorate) {\n if (attributeName.endsWith('name')) {\n return attributeName.slice(0, -4);\n }\n return attributeName;\n }\n if (attributeName.endsWith('name')) {\n return attributeName;\n }\n return `${attributeName}name`\n }\n default: {\n return attributeName;\n }\n }\n }\n private _valueDecorator(conditionOperator: DatasetConditionOperator, value: any, undecorate?: boolean) {\n switch (conditionOperator) {\n case DatasetConditionOperator.BeginWith:\n case DatasetConditionOperator.DoesNotBeginWith: {\n if (undecorate) {\n return value.slice(0, -1);\n }\n return `${value}%`;\n }\n case DatasetConditionOperator.EndsWith:\n case DatasetConditionOperator.DoesNotEndWith: {\n if (undecorate) {\n return value.slice(1)\n }\n return `%${value}`;\n }\n case DatasetConditionOperator.Like:\n case DatasetConditionOperator.NotLike: {\n if (undecorate) {\n return value.slice(1, -1)\n }\n return `%${value}%`;\n }\n default: {\n return value;\n }\n }\n }\n\n private _operatorDecorator(conditionOperator: DatasetConditionOperator, value: any, undecorate?: boolean): DatasetConditionOperator {\n switch (this._column.dataType) {\n case DataType.MULTI_SELECT_OPTIONSET:\n case DataType.OPTIONSET:\n case DataType.TWO_OPTIONS:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER: {\n //we need to switch the operators based on the number of selected options\n if (typeof value !== 'string') {\n if(undecorate) {\n switch(conditionOperator) {\n case DatasetConditionOperator.In: {\n return DatasetConditionOperator.Equal\n }\n case DatasetConditionOperator.NotIn: {\n return DatasetConditionOperator.NotEqual;\n }\n }\n }\n switch (conditionOperator) {\n case DatasetConditionOperator.Equal: {\n return DatasetConditionOperator.In;\n }\n case DatasetConditionOperator.NotEqual: {\n return DatasetConditionOperator.NotIn;\n }\n }\n }\n else {\n switch (conditionOperator) {\n case DatasetConditionOperator.In: {\n return DatasetConditionOperator.Equal;\n }\n case DatasetConditionOperator.NotIn: {\n return DatasetConditionOperator.NotEqual;\n }\n }\n }\n }\n }\n return conditionOperator;\n }\n\n private _getDefault(): ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression {\n const cond: ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression = {\n attributeName: this._column.attributeName,\n conditionOperator: DatasetConditionOperator.Equal,\n entityAliasName: this._column.entityAliasName,\n value: \"\"\n }\n switch (this._column.dataType) {\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n cond.conditionOperator = DatasetConditionOperator.On;\n break;\n }\n case DataType.IMAGE:\n case DataType.FILE: {\n cond.conditionOperator = DatasetConditionOperator.NotNull as any;\n break;\n }\n }\n return cond;\n }\n private get _filterExpression() {\n return structuredClone(this._dataset.filtering.getFilter()) ?? {\n conditions: [],\n filterOperator: 0\n }\n }\n private async _getConditionFromFilterExpression(): Promise<[Map<string, ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression>, string]> {\n const map = new Map<string, ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression>(this._filterExpression.conditions.map(x => [x.attributeName, x]));\n for (const cond of map.values()) {\n const conditionAttributeName = await this._attributeNameDecorator(cond.conditionOperator, cond.attributeName, true);\n if(conditionAttributeName === this._column.attributeName) {\n return [map, cond.attributeName]\n }\n }\n return [map, \"\"];\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Condition.js","sources":["../../../../../src/components/Grid/filtering/model/Condition.ts"],"sourcesContent":["import { Attribute } from \"@talxis/client-libraries\";\nimport { DatasetConditionOperator } from \"../../core/enums/ConditionOperator\";\nimport { DataType } from \"../../core/enums/DataType\";\nimport { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { Grid } from \"../../core/model/Grid\";\nimport { GridDependency } from \"../../core/model/GridDependency\";\nimport { ColumnValidation } from \"../../validation/model/ColumnValidation\";\nimport { FilteringUtils } from \"../utils/FilteringUtilts\";\n\nexport class Condition extends GridDependency {\n private _column: IGridColumn;\n private _isAppliedToDataset: boolean = false;\n private _conditionExpression: ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression = {} as any;\n private _isRemoved?: boolean;\n private _conditionUtils = FilteringUtils.condition();\n private _isValid: boolean = true;\n private _inicializationPromise: Promise<boolean> | undefined;\n private _initialized: boolean = false;\n\n constructor(grid: Grid, column: IGridColumn) {\n super(grid);\n this._column = {...column};\n switch(this._column.dataType) {\n //this will skip regex validation since it is not desirable during filtering (we have contains and stuff)\n case DataType.SINGLE_LINE_EMAIL:\n case DataType.SINGLE_LINE_URL: {\n this._column.dataType = DataType.SINGLE_LINE_TEXT;\n }\n }\n return new Proxy(this, {\n get: (target, prop) => {\n if(prop !== 'init') {\n if(!target._initialized) {\n throw new Error('Condition has not been initialized. Make sure to call the init() method on the condition object before any operations.')\n }\n }\n //@ts-ignore\n if (typeof target[prop] === 'function') {\n //@ts-ignore\n return target[prop].bind(target);\n }\n //@ts-ignore\n return target[prop];\n }\n })\n }\n public async init() {\n if (!this._inicializationPromise) {\n this._inicializationPromise = new Promise(async (resolve) => {\n const [map, key] = await this._getConditionFromFilterExpression();\n if(!key) {\n this._conditionExpression = this._getDefault();\n }\n else {\n this._isAppliedToDataset = true;\n this._conditionExpression = map.get(key)!;\n }\n this._conditionExpression.conditionOperator = this._operatorDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value, true) as any;\n this._conditionExpression.value = this._valueDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value, true);\n this._conditionExpression.attributeName = await this._attributeNameDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.attributeName, true);\n resolve(true);\n this._initialized = true;\n })\n }\n return this._inicializationPromise;\n }\n public get isRemoved() {\n return this._isRemoved;\n }\n\n public get column() {\n return this._column;\n }\n\n public get isAppliedToDataset() {\n return this._isAppliedToDataset;\n }\n\n public get isValid() {\n return this._isValid;\n }\n\n public async getExpression() {\n const result = { ...this._conditionExpression };\n result.conditionOperator = this._operatorDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value) as any;\n result.value = this._valueDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value);\n result.attributeName = await this._attributeNameDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.attributeName);\n return result;\n\n }\n public async save(): Promise<boolean> {\n if (!await this.value.isValid()) {\n this._isValid = false;\n this._triggerRefreshCallbacks();\n return false;\n }\n const filterExpression = this._filterExpression;\n if (this._isAppliedToDataset || this._isRemoved) {\n const [map, key] = await this._getConditionFromFilterExpression();\n map.delete(key);\n filterExpression.conditions = [...map.values()];\n }\n if (!this._isRemoved) {\n filterExpression.conditions.push(await this.getExpression());\n }\n this._dataset.filtering.setFilter(filterExpression);\n return true;\n\n }\n public remove() {\n this._isRemoved = true;\n }\n public clear() {\n this._inicializationPromise = undefined;\n }\n public get operator() {\n return {\n get: () => this._get('operator') as DatasetConditionOperator,\n set: (conditionOperator: DatasetConditionOperator) => {\n const previousOperator = this._conditionExpression.conditionOperator\n this._set(\"operator\", conditionOperator, null);\n const isCurrentEditable = this._conditionUtils.value(conditionOperator).isManuallyEditable;\n const isPreviousEditable = this._conditionUtils.value(previousOperator).isManuallyEditable;\n\n if (isCurrentEditable !== isPreviousEditable) {\n // we are transitioning between editable and non-editable operators and the value of these data types needs to be set to null\n // to prevent type incompability\n switch (this._column.dataType) {\n case DataType.MULTI_SELECT_OPTIONSET:\n case DataType.OPTIONSET:\n case DataType.TWO_OPTIONS:\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_CUSTOMER:\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n this._conditionExpression!.value = \"\"\n break;\n }\n }\n }\n },\n }\n }\n\n public get value() {\n return {\n get: () => this._get('value') as any,\n set: (value: any) => this._set(\"value\", undefined, value),\n isValid: async () => {\n if(this._conditionUtils.operator(this.operator.get()).doesNotAllowValue) {\n return true;\n }\n const [result, errorMessage] = await new ColumnValidation(this._grid, this._column, true).validate(await this.value.get());\n return result;\n }\n }\n }\n private _get(type: 'operator' | 'value'): DatasetConditionOperator | any {\n if (type === 'operator') {\n return this._conditionExpression.conditionOperator;\n }\n return this._conditionExpression.value;\n }\n private _set(type: 'operator' | 'value', conditionOperator?: DatasetConditionOperator, value?: any) {\n this._isValid = true;\n if (type === 'operator') {\n this._conditionExpression.conditionOperator = conditionOperator as any;\n }\n else {\n this._conditionExpression.value = value;\n }\n this._triggerRefreshCallbacks();\n }\n\n private async _attributeNameDecorator(conditionOperator: DatasetConditionOperator, attributeName: string, undecorate?: boolean) {\n if (!this._conditionUtils.value(conditionOperator).isManuallyEditable) {\n return attributeName;\n }\n switch (this._column.dataType) {\n case DataType.OPTIONSET:\n case DataType.TWO_OPTIONS:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER: {\n if (undecorate) {\n if (attributeName.endsWith('name')) {\n return attributeName.slice(0, -4);\n }\n return attributeName;\n }\n if (attributeName.endsWith('name')) {\n return attributeName;\n }\n return `${attributeName}name`\n }\n default: {\n return attributeName;\n }\n }\n }\n private _valueDecorator(conditionOperator: DatasetConditionOperator, value: any, undecorate?: boolean) {\n switch (conditionOperator) {\n case DatasetConditionOperator.BeginWith:\n case DatasetConditionOperator.DoesNotBeginWith: {\n if (undecorate) {\n return value.slice(0, -1);\n }\n return `${value}%`;\n }\n case DatasetConditionOperator.EndsWith:\n case DatasetConditionOperator.DoesNotEndWith: {\n if (undecorate) {\n return value.slice(1)\n }\n return `%${value}`;\n }\n case DatasetConditionOperator.Like:\n case DatasetConditionOperator.NotLike: {\n if (undecorate) {\n return value.slice(1, -1)\n }\n return `%${value}%`;\n }\n default: {\n return value;\n }\n }\n }\n\n private _operatorDecorator(conditionOperator: DatasetConditionOperator, value: any, undecorate?: boolean): DatasetConditionOperator {\n switch (this._column.dataType) {\n case DataType.MULTI_SELECT_OPTIONSET:\n case DataType.OPTIONSET:\n case DataType.TWO_OPTIONS:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_CUSTOMER: {\n //we need to switch the operators based on the number of selected options\n if (typeof value !== 'string') {\n if(undecorate) {\n switch(conditionOperator) {\n case DatasetConditionOperator.In: {\n return DatasetConditionOperator.Equal\n }\n case DatasetConditionOperator.NotIn: {\n return DatasetConditionOperator.NotEqual;\n }\n }\n }\n switch (conditionOperator) {\n case DatasetConditionOperator.Equal: {\n return DatasetConditionOperator.In;\n }\n case DatasetConditionOperator.NotEqual: {\n return DatasetConditionOperator.NotIn;\n }\n }\n }\n else {\n switch (conditionOperator) {\n case DatasetConditionOperator.In: {\n return DatasetConditionOperator.Equal;\n }\n case DatasetConditionOperator.NotIn: {\n return DatasetConditionOperator.NotEqual;\n }\n }\n }\n }\n }\n return conditionOperator;\n }\n\n private _getDefault(): ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression {\n const entityAliasName = Attribute.GetLinkedEntityAlias(this._column.name);\n const attributeName = Attribute.GetNameFromAlias(this._column.name);\n const cond: ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression = {\n attributeName: attributeName,\n conditionOperator: DatasetConditionOperator.Equal,\n entityAliasName: entityAliasName ?? \"\",\n value: \"\"\n }\n switch (this._column.dataType) {\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n cond.conditionOperator = DatasetConditionOperator.On;\n break;\n }\n case DataType.IMAGE:\n case DataType.FILE: {\n cond.conditionOperator = DatasetConditionOperator.NotNull as any;\n break;\n }\n }\n return cond;\n }\n private get _filterExpression() {\n return structuredClone(this._dataset.filtering.getFilter()) ?? {\n conditions: [],\n filterOperator: 0\n }\n }\n private async _getConditionFromFilterExpression(): Promise<[Map<string, ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression>, string]> {\n const map = new Map<string, ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression>(this._filterExpression.conditions.map(x => [x.attributeName, x]));\n const attributeName = Attribute.GetNameFromAlias(this._column.name);\n for (const cond of map.values()) {\n const conditionAttributeName = await this._attributeNameDecorator(cond.conditionOperator, cond.attributeName, true);\n if(conditionAttributeName === attributeName) {\n return [map, cond.attributeName]\n }\n }\n return [map, \"\"];\n }\n}"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ class Filtering extends GridDependency {
14
14
  }
15
15
  const expression = await condition.getExpression();
16
16
  if (condition.isAppliedToDataset || condition.isRemoved) {
17
- filterExpression.conditions = this._filterExpression.conditions.filter(cond => this._getColumnKeyFromCondition(cond) !== condition.column.key);
17
+ filterExpression.conditions = this._filterExpression.conditions.filter(cond => this._getColumnKeyFromCondition(cond) !== condition.column.name);
18
18
  }
19
19
  if (!condition.isRemoved) {
20
20
  filterExpression.conditions.push(expression);
@@ -29,7 +29,7 @@ class Filtering extends GridDependency {
29
29
  this._conditions.clear();
30
30
  }
31
31
  async condition(column) {
32
- const columnKey = column.key;
32
+ const columnKey = column.name;
33
33
  if (!this._conditions.get(columnKey)) {
34
34
  this._conditions.set(columnKey, new Condition(this._grid, column));
35
35
  }
@@ -39,14 +39,14 @@ class Filtering extends GridDependency {
39
39
  return async () => {
40
40
  const saveResult = await target.save();
41
41
  if (saveResult) {
42
- this._conditions.delete(target.column.key);
42
+ this._conditions.delete(target.column.name);
43
43
  this._dataset.refresh();
44
44
  }
45
45
  return saveResult;
46
46
  };
47
47
  }
48
48
  if (prop === 'clear') {
49
- this._conditions.delete(target.column.key);
49
+ this._conditions.delete(target.column.name);
50
50
  }
51
51
  //@ts-ignore
52
52
  if (typeof target[prop] === 'function') {
@@ -1 +1 @@
1
- {"version":3,"file":"Filtering.js","sources":["../../../../../src/components/Grid/filtering/model/Filtering.ts"],"sourcesContent":["import { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { GridDependency } from \"../../core/model/GridDependency\";\nimport { Condition } from \"./Condition\";\n\nexport class Filtering extends GridDependency {\n private _conditions: Map<string, Condition> = new Map();\n\n public async save(): Promise<boolean> {\n const filterExpression = this._filterExpression;\n for (const condition of this._conditions.values()) {\n if(!condition.value.isValid()) {\n return false;\n }\n const expression = await condition.getExpression();\n if (condition.isAppliedToDataset || condition.isRemoved) {\n filterExpression.conditions = this._filterExpression.conditions.filter(cond => this._getColumnKeyFromCondition(cond) !== condition.column.key);\n }\n if (!condition.isRemoved) {\n filterExpression.conditions.push(expression)\n }\n }\n this.clear();\n this._dataset.filtering.setFilter(filterExpression);\n this._dataset.refresh();\n return true;\n }\n\n public clear() {\n this._conditions.clear();\n }\n\n public async condition(column: IGridColumn): Promise<Condition> {\n const columnKey = column.key\n if (!this._conditions.get(columnKey)) {\n this._conditions.set(columnKey, new Condition(this._grid, column))\n }\n const cond = new Proxy(this._conditions.get(columnKey)!, {\n get: (target, prop) => {\n if (prop === 'save') {\n return async () => {\n const saveResult = await target.save();\n if (saveResult) {\n this._conditions.delete(target.column.key);\n this._dataset.refresh();\n }\n return saveResult;\n };\n }\n if(prop === 'clear') {\n this._conditions.delete(target.column.key);\n }\n //@ts-ignore\n if (typeof target[prop] === 'function') {\n //@ts-ignore\n return target[prop].bind(target);\n }\n //@ts-ignore\n return target[prop];\n },\n });\n await cond.init();\n return cond;\n }\n\n private get _filterExpression() {\n return structuredClone(this._grid.dataset.filtering.getFilter()) ?? {\n conditions: [],\n filterOperator: 0\n }\n }\n\n private _getColumnKeyFromCondition(condition: ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression) {\n if (condition.entityAliasName) {\n return `${condition.entityAliasName}.${condition.attributeName}`;\n }\n return condition.attributeName;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Filtering.js","sources":["../../../../../src/components/Grid/filtering/model/Filtering.ts"],"sourcesContent":["import { IGridColumn } from \"../../core/interfaces/IGridColumn\";\nimport { GridDependency } from \"../../core/model/GridDependency\";\nimport { Condition } from \"./Condition\";\n\nexport class Filtering extends GridDependency {\n private _conditions: Map<string, Condition> = new Map();\n\n public async save(): Promise<boolean> {\n const filterExpression = this._filterExpression;\n for (const condition of this._conditions.values()) {\n if(!condition.value.isValid()) {\n return false;\n }\n const expression = await condition.getExpression();\n if (condition.isAppliedToDataset || condition.isRemoved) {\n filterExpression.conditions = this._filterExpression.conditions.filter(cond => this._getColumnKeyFromCondition(cond) !== condition.column.name);\n }\n if (!condition.isRemoved) {\n filterExpression.conditions.push(expression)\n }\n }\n this.clear();\n this._dataset.filtering.setFilter(filterExpression);\n this._dataset.refresh();\n return true;\n }\n\n public clear() {\n this._conditions.clear();\n }\n\n public async condition(column: IGridColumn): Promise<Condition> {\n const columnKey = column.name\n if (!this._conditions.get(columnKey)) {\n this._conditions.set(columnKey, new Condition(this._grid, column))\n }\n const cond = new Proxy(this._conditions.get(columnKey)!, {\n get: (target, prop) => {\n if (prop === 'save') {\n return async () => {\n const saveResult = await target.save();\n if (saveResult) {\n this._conditions.delete(target.column.name);\n this._dataset.refresh();\n }\n return saveResult;\n };\n }\n if(prop === 'clear') {\n this._conditions.delete(target.column.name);\n }\n //@ts-ignore\n if (typeof target[prop] === 'function') {\n //@ts-ignore\n return target[prop].bind(target);\n }\n //@ts-ignore\n return target[prop];\n },\n });\n await cond.init();\n return cond;\n }\n\n private get _filterExpression() {\n return structuredClone(this._grid.dataset.filtering.getFilter()) ?? {\n conditions: [],\n filterOperator: 0\n }\n }\n\n private _getColumnKeyFromCondition(condition: ComponentFramework.PropertyHelper.DataSetApi.ConditionExpression) {\n if (condition.entityAliasName) {\n return `${condition.entityAliasName}.${condition.attributeName}`;\n }\n return condition.attributeName;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,21 +1,12 @@
1
1
  /// <reference types="powerapps-component-framework" />
2
2
  import { AgGridReactProps } from "@ag-grid-community/react";
3
3
  import { ITranslation } from "../../hooks";
4
- import { IDatasetProperty, IParameters, IStringProperty, ITwoOptionsProperty } from "../../interfaces";
4
+ import { IParameters, IStringProperty, ITwoOptionsProperty } from "../../interfaces";
5
5
  import { IControl, IOutputs } from "../../interfaces/context";
6
6
  import { gridTranslations } from "./translations";
7
+ import { IDataset } from "@talxis/client-libraries";
7
8
  export interface IGrid extends IControl<IGridParameters, IGridOutputs, Partial<ITranslation<typeof gridTranslations>>, AgGridReactProps> {
8
9
  }
9
- export interface IEntityColumn extends ComponentFramework.PropertyHelper.DataSetApi.Column {
10
- isResizable?: boolean;
11
- isFilterable?: boolean;
12
- isEditable?: boolean;
13
- isRequired?: boolean;
14
- }
15
- export interface IEntityRecord extends ComponentFramework.PropertyHelper.DataSetApi.EntityRecord {
16
- setValue: (columnName: string, value: any) => void;
17
- save: () => Promise<void>;
18
- }
19
10
  export interface IGridParameters extends IParameters {
20
11
  EnableEditing?: Omit<ITwoOptionsProperty, 'attributes'>;
21
12
  EnablePagination?: Omit<ITwoOptionsProperty, 'attributes'>;
@@ -23,10 +14,10 @@ export interface IGridParameters extends IParameters {
23
14
  EnableSorting?: Omit<ITwoOptionsProperty, 'attributes'>;
24
15
  EnableNavigation?: Omit<ITwoOptionsProperty, 'attributes'>;
25
16
  EnableOptionSetColors?: Omit<ITwoOptionsProperty, 'attributes'>;
26
- UseContainerAsHeight?: Omit<ITwoOptionsProperty, 'attributes'>;
17
+ Height?: IStringProperty;
27
18
  InlineRibbonButtonIds?: IStringProperty;
28
- SelectableRows?: ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">;
29
- Grid: IDatasetProperty;
19
+ SelectableRows?: Omit<ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">, 'type'>;
20
+ Grid: IDataset;
30
21
  }
31
22
  export interface IGridOutputs extends IOutputs {
32
23
  }
@@ -20,7 +20,13 @@ const Paging = () => {
20
20
  };
21
21
  });
22
22
  };
23
- return (jsxs("div", { className: styles.root, children: [jsx("div", { className: styles.pageSizeBtnWrapper, children: jsx(CommandBarButton, { text: labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder, recordcount: paging.totalResultCount >= 0 ? paging.totalResultCount : "5000+" }), menuProps: {
23
+ const getPagingLabel = () => {
24
+ if (paging.totalResultCount === undefined) {
25
+ return labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder });
26
+ }
27
+ return `${labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder })} ${labels['paging-pages-totalcount']({ recordcount: paging.formattedTotalResultCount })}`;
28
+ };
29
+ return (jsxs("div", { className: styles.root, children: [jsx("div", { className: styles.pageSizeBtnWrapper, children: jsx(CommandBarButton, { text: getPagingLabel(), menuProps: {
24
30
  items: [
25
31
  {
26
32
  key: 'header',
@@ -1 +1 @@
1
- {"version":3,"file":"Paging.js","sources":["../../../../../../src/components/Grid/paging/components/Paging/Paging.tsx"],"sourcesContent":["import { ComboBox, CommandBarButton, ContextualMenuItemType, IComboBoxOption, IContextualMenuItem, useTheme } from '@fluentui/react';\nimport { CommandBar } from '@fluentui/react';\nimport React from 'react';\nimport { useGridInstance } from '../../../core/hooks/useGridInstance';\nimport { usePagingController } from '../../controllers/usePagingController';\nimport { getPagingStyles } from './styles';\n\nexport const Paging = () => {\n const labels = useGridInstance().labels;\n const paging = usePagingController();\n const styles = getPagingStyles(useTheme());\n\n const getPageSizeOptions = (): IContextualMenuItem[] => {\n const sizes = ['25', '50', '75', '100', '250'];\n return sizes.map(size => {\n return {\n key: size,\n text: size,\n checked: parseInt(size) === paging.pageSize,\n className: styles.pageSizeOption,\n onClick: () => paging.setPageSize(parseInt(size))\n }\n })\n }\n return (\n <div className={styles.root}>\n <div className={styles.pageSizeBtnWrapper}>\n <CommandBarButton\n text={labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder, recordcount: paging.totalResultCount >= 0 ? paging.totalResultCount : \"5000+\" })}\n menuProps={{\n items: [\n {\n key: 'header',\n itemType: ContextualMenuItemType.Header,\n text: 'Počet záznamů na stránce',\n },\n {\n key: 'divider',\n itemType: ContextualMenuItemType.Divider,\n },\n ...getPageSizeOptions()\n ]\n }}\n />\n </div>\n <CommandBar\n className={styles.pagination}\n items={[]}\n farItems={[{\n key: 'FirstPage',\n iconOnly: true,\n iconProps: { iconName: 'DoubleChevronLeft' },\n disabled: !paging.hasPreviousPage,\n onClick: () => paging.reset()\n }, {\n key: 'PreviousPage',\n iconOnly: true,\n iconProps: { iconName: 'Back' },\n disabled: !paging.hasPreviousPage,\n onClick: () => paging.loadPreviousPage()\n }, {\n key: 'CurrentPage',\n text: `${labels['paging-page']()} ${paging.pageNumber.toString()}`,\n className: styles.currentPageBtn,\n disabled: true,\n }, {\n key: 'NextPage',\n iconOnly: true,\n iconProps: { iconName: 'Forward' },\n disabled: !paging.hasNextPage,\n onClick: () => paging.loadNextPage()\n }]}\n />\n </div>\n )\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Paging.js","sources":["../../../../../../src/components/Grid/paging/components/Paging/Paging.tsx"],"sourcesContent":["import { ComboBox, CommandBarButton, ContextualMenuItemType, IComboBoxOption, IContextualMenuItem, useTheme } from '@fluentui/react';\nimport { CommandBar } from '@fluentui/react';\nimport React from 'react';\nimport { useGridInstance } from '../../../core/hooks/useGridInstance';\nimport { usePagingController } from '../../controllers/usePagingController';\nimport { getPagingStyles } from './styles';\n\nexport const Paging = () => {\n const labels = useGridInstance().labels;\n const paging = usePagingController();\n const styles = getPagingStyles(useTheme());\n\n const getPageSizeOptions = (): IContextualMenuItem[] => {\n const sizes = ['25', '50', '75', '100', '250'];\n return sizes.map(size => {\n return {\n key: size,\n text: size,\n checked: parseInt(size) === paging.pageSize,\n className: styles.pageSizeOption,\n onClick: () => paging.setPageSize(parseInt(size))\n }\n })\n }\n const getPagingLabel = () => {\n if(paging.totalResultCount === undefined) {\n return labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder})\n }\n return `${labels['paging-pages']({ start: paging.pageFirstRecordOrder, end: paging.pageLastRecordOrder})} ${labels['paging-pages-totalcount']({recordcount: paging.formattedTotalResultCount})}`\n }\n return (\n <div className={styles.root}>\n <div className={styles.pageSizeBtnWrapper}>\n <CommandBarButton\n text={getPagingLabel()}\n menuProps={{\n items: [\n {\n key: 'header',\n itemType: ContextualMenuItemType.Header,\n text: 'Počet záznamů na stránce',\n },\n {\n key: 'divider',\n itemType: ContextualMenuItemType.Divider,\n },\n ...getPageSizeOptions()\n ]\n }}\n />\n </div>\n <CommandBar\n className={styles.pagination}\n items={[]}\n farItems={[{\n key: 'FirstPage',\n iconOnly: true,\n iconProps: { iconName: 'DoubleChevronLeft' },\n disabled: !paging.hasPreviousPage,\n onClick: () => paging.reset()\n }, {\n key: 'PreviousPage',\n iconOnly: true,\n iconProps: { iconName: 'Back' },\n disabled: !paging.hasPreviousPage,\n onClick: () => paging.loadPreviousPage()\n }, {\n key: 'CurrentPage',\n text: `${labels['paging-page']()} ${paging.pageNumber.toString()}`,\n className: styles.currentPageBtn,\n disabled: true,\n }, {\n key: 'NextPage',\n iconOnly: true,\n iconProps: { iconName: 'Forward' },\n disabled: !paging.hasNextPage,\n onClick: () => paging.loadNextPage()\n }]}\n />\n </div>\n )\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -6,7 +6,8 @@ interface IPagingController {
6
6
  hasPreviousPage: boolean;
7
7
  hasNextPage: boolean;
8
8
  pageFirstRecordOrder: number;
9
- pageLastRecordOrder: number;
9
+ pageLastRecordOrder: string;
10
+ formattedTotalResultCount: string;
10
11
  loadNextPage: () => void;
11
12
  loadPreviousPage: () => void;
12
13
  loadExactPage: (pageNumber: number) => void;
@@ -6,6 +6,7 @@ const usePagingController = () => {
6
6
  pageNumber: paging.pageNumber,
7
7
  pageSize: paging.pageSize,
8
8
  totalResultCount: paging.totalResultCount,
9
+ formattedTotalResultCount: paging.formattedTotalResultCount,
9
10
  hasPreviousPage: paging.hasPreviousPage,
10
11
  hasNextPage: paging.hasNextPage,
11
12
  pageFirstRecordOrder: paging.pageFirstRecordOrder,
@@ -1 +1 @@
1
- {"version":3,"file":"usePagingController.js","sources":["../../../../../src/components/Grid/paging/controllers/usePagingController.ts"],"sourcesContent":["import { useGridInstance } from \"../../core/hooks/useGridInstance\"\n\ninterface IPagingController {\n isEnabled: boolean,\n pageNumber: number,\n pageSize: number,\n totalResultCount: number,\n hasPreviousPage: boolean,\n hasNextPage: boolean,\n pageFirstRecordOrder: number,\n pageLastRecordOrder: number,\n loadNextPage: () => void,\n loadPreviousPage: () => void,\n loadExactPage: (pageNumber: number) => void,\n setPageSize: (pageSize: number) => void,\n reset: () => void\n}\n\nexport const usePagingController = (): IPagingController => {\n const paging = useGridInstance().paging;\n return {\n pageNumber: paging.pageNumber,\n pageSize: paging.pageSize,\n totalResultCount: paging.totalResultCount,\n hasPreviousPage: paging.hasPreviousPage,\n hasNextPage: paging.hasNextPage,\n pageFirstRecordOrder: paging.pageFirstRecordOrder,\n pageLastRecordOrder: paging.pageLastRecordOrder,\n isEnabled: paging.isEnabled,\n loadExactPage: (pageNumber: number) => paging.loadExactPage(pageNumber),\n loadNextPage: () => paging.loadNextPage(),\n loadPreviousPage: () => paging.loadPreviousPage(),\n setPageSize: (pageSize) => paging.setPageSize(pageSize),\n reset: () => paging.reset()\n }\n}"],"names":[],"mappings":";;AAkBO,MAAM,mBAAmB,GAAG,MAAwB;AACvD,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,MAAM,CAAC;IACxC,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,UAAU;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,CAAC,UAAkB,KAAK,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;AACvE,QAAA,YAAY,EAAE,MAAM,MAAM,CAAC,YAAY,EAAE;AACzC,QAAA,gBAAgB,EAAE,MAAM,MAAM,CAAC,gBAAgB,EAAE;QACjD,WAAW,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;AACvD,QAAA,KAAK,EAAE,MAAM,MAAM,CAAC,KAAK,EAAE;KAClC,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"usePagingController.js","sources":["../../../../../src/components/Grid/paging/controllers/usePagingController.ts"],"sourcesContent":["import { useGridInstance } from \"../../core/hooks/useGridInstance\"\n\ninterface IPagingController {\n isEnabled: boolean,\n pageNumber: number,\n pageSize: number,\n totalResultCount: number,\n hasPreviousPage: boolean,\n hasNextPage: boolean,\n pageFirstRecordOrder: number,\n pageLastRecordOrder: string\n formattedTotalResultCount: string,\n loadNextPage: () => void,\n loadPreviousPage: () => void,\n loadExactPage: (pageNumber: number) => void,\n setPageSize: (pageSize: number) => void,\n reset: () => void\n}\n\nexport const usePagingController = (): IPagingController => {\n const paging = useGridInstance().paging;\n return {\n pageNumber: paging.pageNumber,\n pageSize: paging.pageSize,\n totalResultCount: paging.totalResultCount,\n formattedTotalResultCount: paging.formattedTotalResultCount,\n hasPreviousPage: paging.hasPreviousPage,\n hasNextPage: paging.hasNextPage,\n pageFirstRecordOrder: paging.pageFirstRecordOrder,\n pageLastRecordOrder: paging.pageLastRecordOrder,\n isEnabled: paging.isEnabled,\n loadExactPage: (pageNumber: number) => paging.loadExactPage(pageNumber),\n loadNextPage: () => paging.loadNextPage(),\n loadPreviousPage: () => paging.loadPreviousPage(),\n setPageSize: (pageSize) => paging.setPageSize(pageSize),\n reset: () => paging.reset()\n }\n}"],"names":[],"mappings":";;AAmBO,MAAM,mBAAmB,GAAG,MAAwB;AACvD,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,MAAM,CAAC;IACxC,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,UAAU;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;QAC3D,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,CAAC,UAAkB,KAAK,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;AACvE,QAAA,YAAY,EAAE,MAAM,MAAM,CAAC,YAAY,EAAE;AACzC,QAAA,gBAAgB,EAAE,MAAM,MAAM,CAAC,gBAAgB,EAAE;QACjD,WAAW,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;AACvD,QAAA,KAAK,EAAE,MAAM,MAAM,CAAC,KAAK,EAAE;KAClC,CAAA;AACL;;;;"}