@adaptabletools/adaptable 10.0.1 → 10.0.4-canary.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 (191) hide show
  1. package/base.css +68 -26
  2. package/index.css +80 -28
  3. package/package.json +1 -1
  4. package/publishTimestamp.d.ts +1 -1
  5. package/publishTimestamp.js +1 -1
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +12 -2
  7. package/src/AdaptableOptions/FilterOptions.d.ts +14 -7
  8. package/src/AdaptableOptions/LayoutOptions.d.ts +1 -1
  9. package/src/AdaptableOptions/NotificationsOptions.d.ts +3 -1
  10. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +107 -5
  11. package/src/Api/AlertApi.d.ts +1 -1
  12. package/src/Api/CalculatedColumnApi.d.ts +15 -0
  13. package/src/Api/ColumnApi.d.ts +39 -0
  14. package/src/Api/ConfigApi.d.ts +8 -0
  15. package/src/Api/Events/AdaptableReady.d.ts +2 -6
  16. package/src/Api/Events/AdaptableStateChanged.d.ts +2 -1
  17. package/src/Api/Events/AlertFired.d.ts +2 -1
  18. package/src/Api/Events/BaseEventInfo.d.ts +10 -0
  19. package/src/{Utilities/Interface/ProgressIndicator.js → Api/Events/BaseEventInfo.js} +0 -0
  20. package/src/Api/Events/CellChanged.d.ts +2 -1
  21. package/src/Api/Events/ChexboxColumnClicked.d.ts +2 -1
  22. package/src/Api/Events/CustomToolbarConfigured.d.ts +2 -1
  23. package/src/Api/Events/DashboardChanged.d.ts +2 -1
  24. package/src/Api/Events/FlashingAlertFired.d.ts +2 -1
  25. package/src/Api/Events/GridDataChanged.d.ts +2 -1
  26. package/src/Api/Events/LayoutChanged.d.ts +2 -1
  27. package/src/Api/Events/LiveDataChanged.d.ts +2 -1
  28. package/src/Api/Events/SearchChanged.d.ts +2 -1
  29. package/src/Api/Events/SelectionChanged.d.ts +2 -1
  30. package/src/Api/Events/SystemStatusMessageDisplayed.d.ts +2 -1
  31. package/src/Api/Events/TeamSharingEntityChanged.d.ts +2 -1
  32. package/src/Api/Events/ThemeChanged.d.ts +2 -1
  33. package/src/Api/GridApi.d.ts +34 -8
  34. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -1
  35. package/src/Api/Implementation/AlertApiImpl.js +22 -15
  36. package/src/Api/Implementation/CalculatedColumnApiImpl.d.ts +3 -0
  37. package/src/Api/Implementation/CalculatedColumnApiImpl.js +23 -0
  38. package/src/Api/Implementation/ColumnApiImpl.d.ts +8 -0
  39. package/src/Api/Implementation/ColumnApiImpl.js +69 -36
  40. package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -1
  41. package/src/Api/Implementation/ConfigApiImpl.js +28 -17
  42. package/src/Api/Implementation/DashboardApiImpl.js +2 -1
  43. package/src/Api/Implementation/ExportApiImpl.js +4 -4
  44. package/src/Api/Implementation/FormatColumnApiImpl.js +2 -1
  45. package/src/Api/Implementation/FreeTextColumnApiImpl.js +9 -3
  46. package/src/Api/Implementation/GridApiImpl.d.ts +9 -0
  47. package/src/Api/Implementation/GridApiImpl.js +28 -10
  48. package/src/Api/Implementation/InternalApiImpl.d.ts +3 -1
  49. package/src/Api/Implementation/InternalApiImpl.js +20 -4
  50. package/src/Api/Implementation/LayoutApiImpl.js +4 -3
  51. package/src/Api/Implementation/ScopeApiImpl.js +11 -11
  52. package/src/Api/Implementation/SystemStatusApiImpl.js +1 -0
  53. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  54. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  55. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +12 -8
  56. package/src/Api/Implementation/UserInterfaceApiImpl.js +69 -87
  57. package/src/Api/InternalApi.d.ts +3 -1
  58. package/src/Api/UserInterfaceApi.d.ts +16 -6
  59. package/src/PredefinedConfig/AlertState.d.ts +4 -0
  60. package/src/PredefinedConfig/CalculatedColumnState.d.ts +4 -37
  61. package/src/PredefinedConfig/Common/AdaptableButton.d.ts +1 -1
  62. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +33 -33
  63. package/src/PredefinedConfig/Common/AdaptableColumn.js +5 -5
  64. package/src/PredefinedConfig/Common/AdaptablePredicate.js +19 -18
  65. package/src/PredefinedConfig/Common/DataChangedInfo.d.ts +3 -2
  66. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +5 -1
  67. package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +49 -0
  68. package/src/PredefinedConfig/Common/SpecialColumnSettings.js +2 -0
  69. package/src/PredefinedConfig/FilterState.d.ts +1 -1
  70. package/src/PredefinedConfig/FreeTextColumnState.d.ts +10 -0
  71. package/src/PredefinedConfig/Selection/GridCell.d.ts +2 -1
  72. package/src/PredefinedConfig/Selection/GridRow.d.ts +12 -4
  73. package/src/PredefinedConfig/SystemState.d.ts +4 -1
  74. package/src/Redux/ActionsReducers/SystemRedux.js +1 -1
  75. package/src/Redux/Store/AdaptableStore.js +7 -3
  76. package/src/Strategy/AdaptableModuleBase.js +8 -8
  77. package/src/Strategy/AlertModule.js +12 -11
  78. package/src/Strategy/BulkUpdateModule.js +5 -5
  79. package/src/Strategy/CalculatedColumnModule.js +1 -1
  80. package/src/Strategy/CellSummaryModule.js +3 -3
  81. package/src/Strategy/ConditionalStyleModule.js +3 -3
  82. package/src/Strategy/CustomSortModule.js +2 -2
  83. package/src/Strategy/ExportModule.d.ts +0 -2
  84. package/src/Strategy/ExportModule.js +59 -62
  85. package/src/Strategy/FilterModule.js +4 -4
  86. package/src/Strategy/FormatColumnModule.js +5 -5
  87. package/src/Strategy/FreeTextColumnModule.js +1 -1
  88. package/src/Strategy/LayoutModule.js +3 -3
  89. package/src/Strategy/PlusMinusModule.js +8 -9
  90. package/src/Strategy/SmartEditModule.js +6 -6
  91. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
  92. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +1 -1
  93. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +2 -2
  94. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -2
  95. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +1 -1
  96. package/src/Utilities/Helpers/DateHelper.d.ts +2 -2
  97. package/src/Utilities/Helpers/DateHelper.js +30 -20
  98. package/src/Utilities/Helpers/PreviewHelper.js +2 -2
  99. package/src/Utilities/ObjectFactory.d.ts +1 -1
  100. package/src/Utilities/ObjectFactory.js +14 -2
  101. package/src/Utilities/Services/DataService.js +5 -5
  102. package/src/Utilities/Services/ReportService.js +13 -12
  103. package/src/Utilities/Services/ValidationService.js +4 -5
  104. package/src/Utilities/runIfNotResolvedIn.d.ts +8 -0
  105. package/src/Utilities/runIfNotResolvedIn.js +23 -0
  106. package/src/View/AdaptableView.js +1 -1
  107. package/src/View/Alert/AlertPopup.js +1 -1
  108. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +19 -5
  109. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
  110. package/src/View/BulkUpdate/BulkUpdatePopup.d.ts +2 -0
  111. package/src/View/BulkUpdate/BulkUpdatePopup.js +6 -4
  112. package/src/View/BulkUpdate/BulkUpdateViewPanel.d.ts +2 -0
  113. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +3 -1
  114. package/src/View/CalculatedColumn/CalculatedColumnPopup.js +1 -1
  115. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +1 -1
  116. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  117. package/src/View/Components/ColumnSelector/index.js +2 -2
  118. package/src/View/Components/FilterForm/FilterForm.d.ts +3 -51
  119. package/src/View/Components/FilterForm/FilterForm.js +53 -32
  120. package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +3 -0
  121. package/src/View/Components/FilterForm/ListBoxFilterForm.js +14 -5
  122. package/src/View/Components/FilterForm/QuickFilterForm.d.ts +3 -43
  123. package/src/View/Components/FilterForm/QuickFilterForm.js +72 -31
  124. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +3 -0
  125. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.js +8 -0
  126. package/src/View/Components/NewScopeComponent.js +1 -1
  127. package/src/View/Components/Popups/AdaptablePopup.d.ts +1 -1
  128. package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
  129. package/src/View/Components/PreviewResultsPanel.js +1 -1
  130. package/src/View/Components/RangesComponent.js +2 -2
  131. package/src/View/Components/Selectors/ColumnSelector.js +5 -5
  132. package/src/View/Components/Selectors/ColumnValueSelector.d.ts +10 -2
  133. package/src/View/Components/Selectors/ColumnValueSelector.js +47 -15
  134. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +7 -7
  135. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  136. package/src/View/ConditionalStyle/ConditionalStylePopup.js +1 -1
  137. package/src/View/ConditionalStyle/ConditionalStyleSummary.js +1 -1
  138. package/src/View/CustomSort/CustomSortEntityRow.js +2 -2
  139. package/src/View/CustomSort/CustomSortPopup.js +1 -1
  140. package/src/View/CustomSort/CustomSortSummary.js +3 -3
  141. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +3 -3
  142. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +24 -6
  143. package/src/View/Dashboard/CustomToolbarWrapper.js +2 -1
  144. package/src/View/Dashboard/Dashboard.js +2 -3
  145. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +5 -5
  146. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +4 -1
  147. package/src/View/Export/ExportCustomDestinationDialog.js +1 -1
  148. package/src/View/Filter/FilterSummary.js +2 -2
  149. package/src/View/FormatColumn/FormatColumnPopup.js +1 -1
  150. package/src/View/FormatColumn/FormatColumnSummary.js +1 -1
  151. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +1 -1
  152. package/src/View/FreeTextColumn/FreeTextColumnPopup.js +4 -2
  153. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +5 -3
  154. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -1
  155. package/src/View/GridInfo/ColumnInfoComponent.js +16 -16
  156. package/src/View/GridInfo/GridInfoPopup.js +4 -1
  157. package/src/View/Layout/Wizard/LayoutEditor/ColumnList.js +6 -6
  158. package/src/View/Layout/Wizard/LayoutEditor/ColumnSortList.js +1 -1
  159. package/src/View/Layout/Wizard/LayoutEditor/PivotList.js +1 -1
  160. package/src/View/Layout/Wizard/LayoutEditor/RowGroupsList.js +1 -1
  161. package/src/View/Layout/Wizard/LayoutEditor/getItemStyle.js +2 -2
  162. package/src/View/Layout/Wizard/LayoutEditor/index.js +41 -41
  163. package/src/View/PlusMinus/PlusMinusPopup.js +1 -1
  164. package/src/View/PlusMinus/PlusMinusSummary.js +1 -1
  165. package/src/View/Query/QueryViewPanel.js +2 -2
  166. package/src/View/UIHelper.d.ts +2 -0
  167. package/src/View/UIHelper.js +10 -1
  168. package/src/agGrid/ActionColumnRenderer.d.ts +2 -1
  169. package/src/agGrid/ActionColumnRenderer.js +21 -4
  170. package/src/agGrid/Adaptable.d.ts +20 -4
  171. package/src/agGrid/Adaptable.js +249 -102
  172. package/src/agGrid/agGridHelper.js +33 -32
  173. package/src/agGrid/agGridMenuHelper.js +2 -2
  174. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +3 -3
  175. package/src/components/Dashboard/Dashboard.js +1 -1
  176. package/src/components/DropdownButton/index.js +1 -1
  177. package/src/components/ExpressionEditor/index.js +7 -7
  178. package/src/components/Loader/Loader.d.ts +7 -0
  179. package/src/components/Loader/Loader.js +13 -0
  180. package/src/components/Loader/index.d.ts +2 -0
  181. package/src/components/Loader/index.js +7 -0
  182. package/src/components/ProgressIndicator/ProgressIndicator.d.ts +2 -0
  183. package/src/components/ProgressIndicator/ProgressIndicator.js +54 -0
  184. package/src/metamodel/adaptable.metamodel.d.ts +125 -16
  185. package/src/metamodel/adaptable.metamodel.js +403 -106
  186. package/src/types.d.ts +4 -3
  187. package/version.d.ts +1 -1
  188. package/version.js +1 -1
  189. package/src/Utilities/Interface/ProgressIndicator.d.ts +0 -4
  190. package/src/View/Export/ProgressIndicator.d.ts +0 -6
  191. package/src/View/Export/ProgressIndicator.js +0 -25
@@ -6,15 +6,15 @@ export interface AdaptableColumnBase extends AdaptableObject {
6
6
  /**
7
7
  * Name of Column in underlying grid (e.g. field or colId)
8
8
  */
9
- ColumnId: string;
9
+ columnId: string;
10
10
  /**
11
11
  * How Column is referred to in Adaptable UI; 'Caption' or 'Header' property in underlying grid
12
12
  */
13
- FriendlyName: string;
13
+ friendlyName: string;
14
14
  /**
15
15
  * DataType of the column
16
16
  */
17
- DataType: 'String' | 'Number' | 'NumberArray' | 'Boolean' | 'Date' | 'Object' | 'Unknown';
17
+ dataType: 'String' | 'Number' | 'NumberArray' | 'Boolean' | 'Date' | 'Object' | 'Unknown';
18
18
  }
19
19
  export declare const isValidOrderForColumnGroups: ({ oldColumns, newColumns, }: {
20
20
  oldColumns: AdaptableColumn[];
@@ -24,10 +24,10 @@ export declare const isValidOrderForColumnGroups: ({ oldColumns, newColumns, }:
24
24
  * Defines a Column Group
25
25
  */
26
26
  export interface AdaptableColumnGroup {
27
- AllowGroupSplit: boolean;
28
- ColumnGroupId: string;
29
- FriendlyName: string;
30
- GroupCount: number;
27
+ allowGroupSplit: boolean;
28
+ columnGroupId: string;
29
+ friendlyName: string;
30
+ groupCount: number;
31
31
  }
32
32
  /**
33
33
  * Defines an Adaptable Column - created at run-time based on vendor grid column definition
@@ -36,89 +36,89 @@ export interface AdaptableColumn extends AdaptableColumnBase {
36
36
  /**
37
37
  * Is this the Primary Key column
38
38
  */
39
- IsPrimaryKey: boolean;
39
+ isPrimaryKey: boolean;
40
40
  /**
41
41
  * Column width
42
42
  */
43
- Width?: number;
43
+ width?: number;
44
44
  /**
45
45
  * Flex details of the column
46
46
  */
47
- Flex?: number;
47
+ flex?: number;
48
48
  /**
49
49
  * Is column editable
50
50
  */
51
- ReadOnly: boolean;
51
+ readOnly: boolean;
52
52
  /**
53
53
  * Is Column currently visible
54
54
  */
55
- Visible: boolean;
55
+ visible: boolean;
56
56
  /**
57
57
  * Is Column sortable
58
58
  */
59
- Sortable: boolean;
59
+ sortable: boolean;
60
60
  /**
61
61
  * Is Column able to be filtered
62
62
  */
63
- Filterable: boolean;
63
+ filterable: boolean;
64
64
  /**
65
65
  * Can Column be moved at run-time to a new position
66
66
  */
67
- Moveable: boolean;
67
+ moveable: boolean;
68
68
  /**
69
69
  * Can Column be removed from the grid
70
70
  */
71
- Hideable: boolean;
71
+ hideable: boolean;
72
72
  /**
73
73
  * Can Column form a Row Group
74
74
  */
75
- Groupable: boolean;
75
+ groupable: boolean;
76
76
  /**
77
77
  * Can Column be used in a Pivot Grid
78
78
  */
79
- Pivotable: boolean;
79
+ pivotable: boolean;
80
80
  /**
81
81
  * Is Column able to display aggregations (e.g. 'sum') when grouped
82
82
  */
83
- Aggregatable: boolean;
83
+ aggregatable: boolean;
84
84
  /**
85
85
  * Can the Column be in included in Queries / Expressions
86
86
  */
87
- Queryable: boolean;
87
+ queryable: boolean;
88
88
  /**
89
89
  * Available aggregations for the Column
90
90
  */
91
- AvailableAggregationFunctions?: string[];
91
+ availableAggregationFunctions?: string[];
92
92
  /**
93
93
  * Custom aggregation function for the Column
94
94
  */
95
- AggregationFunction?: string;
95
+ aggregationFunction?: string;
96
96
  /**
97
97
  * Is Column currently grouped
98
98
  */
99
- IsGrouped: boolean;
99
+ isGrouped: boolean;
100
100
  /**
101
101
  * Is Column pinned or locked into position
102
102
  */
103
- IsFixed: boolean;
103
+ isFixed: boolean;
104
104
  /**
105
105
  * Is it a Sparkline Column
106
106
  */
107
- IsSparkline: boolean;
107
+ isSparkline: boolean;
108
108
  /**
109
109
  * Has colummn been excluded from Quick Search results
110
110
  */
111
- IsExcludedFromQuickSearch: boolean;
111
+ isExcludedFromQuickSearch: boolean;
112
112
  /**
113
113
  * The parent column group, if the column belongs to one
114
114
  */
115
- ColumnGroup?: AdaptableColumnGroup;
115
+ columnGroup?: AdaptableColumnGroup;
116
116
  }
117
117
  export interface AdaptableColumnProperties {
118
- Sortable: boolean;
119
- Filterable: boolean;
120
- Moveable: boolean;
121
- Groupable: boolean;
122
- Pivotable: boolean;
123
- Aggregatable: boolean;
118
+ sortable: boolean;
119
+ filterable: boolean;
120
+ moveable: boolean;
121
+ groupable: boolean;
122
+ pivotable: boolean;
123
+ aggregatable: boolean;
124
124
  }
@@ -8,14 +8,14 @@ exports.isValidOrderForColumnGroups = ({ oldColumns, newColumns, }) => {
8
8
  let count = 0;
9
9
  columns.forEach((column) => {
10
10
  var _a, _b;
11
- if (column.ColumnGroup &&
12
- column.ColumnGroup.GroupCount > 1 &&
13
- !column.ColumnGroup.AllowGroupSplit) {
14
- if (prevGroup !== column.ColumnGroup.ColumnGroupId) {
11
+ if (column.columnGroup &&
12
+ column.columnGroup.groupCount > 1 &&
13
+ !column.columnGroup.allowGroupSplit) {
14
+ if (prevGroup !== column.columnGroup.columnGroupId) {
15
15
  count++;
16
16
  }
17
17
  }
18
- prevGroup = (_b = (_a = column.ColumnGroup) === null || _a === void 0 ? void 0 : _a.ColumnGroupId) !== null && _b !== void 0 ? _b : '';
18
+ prevGroup = (_b = (_a = column.columnGroup) === null || _a === void 0 ? void 0 : _a.columnGroupId) !== null && _b !== void 0 ? _b : '';
19
19
  });
20
20
  return count;
21
21
  };
@@ -16,6 +16,7 @@ const isAfter_1 = tslib_1.__importDefault(require("date-fns/isAfter"));
16
16
  const isBefore_1 = tslib_1.__importDefault(require("date-fns/isBefore"));
17
17
  const isSameDay_1 = tslib_1.__importDefault(require("date-fns/isSameDay"));
18
18
  const CalendarHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/CalendarHelper"));
19
+ const DateHelper_1 = require("../../Utilities/Helpers/DateHelper");
19
20
  /**
20
21
  * Array of Predicate Defs which are shipped by AdapTable
21
22
  */
@@ -273,7 +274,7 @@ exports.SystemPredicateDefs = [
273
274
  icon: { path: 'calendar' },
274
275
  columnScope: { DataTypes: ['Date'] },
275
276
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
276
- handler: ({ value }) => isToday_1.default(value),
277
+ handler: ({ value }) => isToday_1.default(DateHelper_1.parseDateValue(value)),
277
278
  },
278
279
  {
279
280
  id: 'Yesterday',
@@ -281,7 +282,7 @@ exports.SystemPredicateDefs = [
281
282
  icon: { path: 'calendar' },
282
283
  columnScope: { DataTypes: ['Date'] },
283
284
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
284
- handler: ({ value }) => isYesterday_1.default(value),
285
+ handler: ({ value }) => isYesterday_1.default(DateHelper_1.parseDateValue(value)),
285
286
  },
286
287
  {
287
288
  id: 'Tomorrow',
@@ -289,7 +290,7 @@ exports.SystemPredicateDefs = [
289
290
  icon: { path: 'calendar' },
290
291
  columnScope: { DataTypes: ['Date'] },
291
292
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
292
- handler: ({ value }) => isTomorrow_1.default(value),
293
+ handler: ({ value }) => isTomorrow_1.default(DateHelper_1.parseDateValue(value)),
293
294
  },
294
295
  {
295
296
  id: 'ThisWeek',
@@ -297,7 +298,7 @@ exports.SystemPredicateDefs = [
297
298
  icon: { path: 'calendar' },
298
299
  columnScope: { DataTypes: ['Date'] },
299
300
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
300
- handler: ({ value }) => isThisWeek_1.default(value),
301
+ handler: ({ value }) => isThisWeek_1.default(DateHelper_1.parseDateValue(value)),
301
302
  },
302
303
  {
303
304
  id: 'ThisMonth',
@@ -305,7 +306,7 @@ exports.SystemPredicateDefs = [
305
306
  icon: { path: 'calendar' },
306
307
  columnScope: { DataTypes: ['Date'] },
307
308
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
308
- handler: ({ value }) => isThisMonth_1.default(value),
309
+ handler: ({ value }) => isThisMonth_1.default(DateHelper_1.parseDateValue(value)),
309
310
  },
310
311
  {
311
312
  id: 'ThisQuarter',
@@ -313,7 +314,7 @@ exports.SystemPredicateDefs = [
313
314
  icon: { path: 'calendar' },
314
315
  columnScope: { DataTypes: ['Date'] },
315
316
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
316
- handler: ({ value }) => isThisQuarter_1.default(value),
317
+ handler: ({ value }) => isThisQuarter_1.default(DateHelper_1.parseDateValue(value)),
317
318
  },
318
319
  {
319
320
  id: 'ThisYear',
@@ -321,7 +322,7 @@ exports.SystemPredicateDefs = [
321
322
  icon: { path: 'calendar' },
322
323
  columnScope: { DataTypes: ['Date'] },
323
324
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
324
- handler: ({ value }) => isThisYear_1.default(value),
325
+ handler: ({ value }) => isThisYear_1.default(DateHelper_1.parseDateValue(value)),
325
326
  },
326
327
  {
327
328
  id: 'InPast',
@@ -329,7 +330,7 @@ exports.SystemPredicateDefs = [
329
330
  icon: { path: 'calendar' },
330
331
  columnScope: { DataTypes: ['Date'] },
331
332
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
332
- handler: ({ value }) => isPast_1.default(value),
333
+ handler: ({ value }) => isPast_1.default(DateHelper_1.parseDateValue(value)),
333
334
  },
334
335
  {
335
336
  id: 'InFuture',
@@ -337,7 +338,7 @@ exports.SystemPredicateDefs = [
337
338
  icon: { path: 'calendar' },
338
339
  columnScope: { DataTypes: ['Date'] },
339
340
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
340
- handler: ({ value }) => isFuture_1.default(value),
341
+ handler: ({ value }) => isFuture_1.default(DateHelper_1.parseDateValue(value)),
341
342
  },
342
343
  {
343
344
  id: 'After',
@@ -346,7 +347,7 @@ exports.SystemPredicateDefs = [
346
347
  columnScope: { DataTypes: ['Date'] },
347
348
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
348
349
  inputs: [{ type: 'date' }],
349
- handler: ({ value, inputs }) => isAfter_1.default(value, new Date(inputs[0])),
350
+ handler: ({ value, inputs }) => isAfter_1.default(DateHelper_1.parseDateValue(value), new Date(inputs[0])),
350
351
  toString: ({ inputs }) => `> ${inputs[0]}`,
351
352
  },
352
353
  {
@@ -356,7 +357,7 @@ exports.SystemPredicateDefs = [
356
357
  columnScope: { DataTypes: ['Date'] },
357
358
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
358
359
  inputs: [{ type: 'date' }],
359
- handler: ({ value, inputs }) => isBefore_1.default(value, new Date(inputs[0])),
360
+ handler: ({ value, inputs }) => isBefore_1.default(DateHelper_1.parseDateValue(value), new Date(inputs[0])),
360
361
  toString: ({ inputs }) => `< ${inputs[0]}`,
361
362
  },
362
363
  {
@@ -366,7 +367,7 @@ exports.SystemPredicateDefs = [
366
367
  columnScope: { DataTypes: ['Date'] },
367
368
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
368
369
  inputs: [{ type: 'date' }],
369
- handler: ({ value, inputs }) => isSameDay_1.default(value, new Date(inputs[0])),
370
+ handler: ({ value, inputs }) => isSameDay_1.default(DateHelper_1.parseDateValue(value), new Date(inputs[0])),
370
371
  toString: ({ inputs }) => `= ${inputs[0]}`,
371
372
  },
372
373
  {
@@ -376,7 +377,7 @@ exports.SystemPredicateDefs = [
376
377
  columnScope: { DataTypes: ['Date'] },
377
378
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
378
379
  inputs: [{ type: 'date' }],
379
- handler: ({ value, inputs }) => !isSameDay_1.default(value, new Date(inputs[0])),
380
+ handler: ({ value, inputs }) => !isSameDay_1.default(DateHelper_1.parseDateValue(value), new Date(inputs[0])),
380
381
  toString: ({ inputs }) => `!= ${inputs[0]}`,
381
382
  },
382
383
  {
@@ -385,7 +386,7 @@ exports.SystemPredicateDefs = [
385
386
  icon: { path: 'calendar' },
386
387
  columnScope: { DataTypes: ['Date'] },
387
388
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
388
- handler: ({ value, api }) => isSameDay_1.default(value, CalendarHelper_1.default.getNextWorkingDay()),
389
+ handler: ({ value, api }) => isSameDay_1.default(DateHelper_1.parseDateValue(value), CalendarHelper_1.default.getNextWorkingDay()),
389
390
  },
390
391
  {
391
392
  id: 'LastWorkDay',
@@ -393,7 +394,7 @@ exports.SystemPredicateDefs = [
393
394
  icon: { path: 'calendar' },
394
395
  columnScope: { DataTypes: ['Date'] },
395
396
  moduleScope: ['filter', 'alert', 'conditionalstyle'],
396
- handler: ({ value, api }) => isSameDay_1.default(value, CalendarHelper_1.default.getPreviousWorkingDay()),
397
+ handler: ({ value, api }) => isSameDay_1.default(DateHelper_1.parseDateValue(value), CalendarHelper_1.default.getPreviousWorkingDay()),
397
398
  },
398
399
  {
399
400
  id: 'InRange',
@@ -466,7 +467,7 @@ exports.SystemPredicateDefs = [
466
467
  columnScope: { All: true },
467
468
  moduleScope: ['alert'],
468
469
  handler: ({ value, column, api, node }) => {
469
- return (column === null || column === void 0 ? void 0 : column.IsPrimaryKey) ? api.columnApi.getDistinctRawValuesForColumn(column.ColumnId, node).includes(value)
470
+ return (column === null || column === void 0 ? void 0 : column.isPrimaryKey) ? api.columnApi.getDistinctRawValuesForColumn(column.columnId, node).includes(value)
470
471
  : false;
471
472
  },
472
473
  },
@@ -477,7 +478,7 @@ exports.SystemPredicateDefs = [
477
478
  moduleScope: ['alert'],
478
479
  handler: ({ value, api, column, node }) => {
479
480
  const distinctValues = column
480
- ? api.columnApi.getDistinctRawValuesForColumn(column.ColumnId, node)
481
+ ? api.columnApi.getDistinctRawValuesForColumn(column.columnId, node)
481
482
  : [];
482
483
  return !distinctValues.includes(value);
483
484
  },
@@ -489,7 +490,7 @@ exports.SystemPredicateDefs = [
489
490
  moduleScope: ['alert'],
490
491
  handler: ({ value, api, column, node }) => {
491
492
  const distinctValues = column
492
- ? api.columnApi.getDistinctRawValuesForColumn(column.ColumnId, node)
493
+ ? api.columnApi.getDistinctRawValuesForColumn(column.columnId, node)
493
494
  : [];
494
495
  return distinctValues.includes(value);
495
496
  },
@@ -1,4 +1,5 @@
1
1
  import { RowNode } from '@ag-grid-community/all-modules';
2
+ import { AdaptableColumn } from './AdaptableColumn';
2
3
  /**
3
4
  * Defines a Cell Edit - includes full details of old and new values, the column and the enclosing Row
4
5
  */
@@ -16,9 +17,9 @@ export interface DataChangedInfo {
16
17
  */
17
18
  newValue: any;
18
19
  /**
19
- * Id of the Column in which the cell is situated
20
+ * Column in which cell is situated
20
21
  */
21
- columnId: string;
22
+ column: AdaptableColumn;
22
23
  /**
23
24
  * Primary Key Column's value for the row where edited cell is situated
24
25
  */
@@ -3,11 +3,15 @@
3
3
  */
4
4
  export interface DataUpdateConfig {
5
5
  /**
6
- * Whether data should be updated aysnchoronously
6
+ * Whether data should be updated asynchronously
7
7
  */
8
8
  runAsync?: boolean;
9
9
  /**
10
10
  * Callback function invoked when a batch successfully updates
11
11
  */
12
12
  callback?: (res: any) => void;
13
+ /**
14
+ * Index where to add new rows
15
+ */
16
+ addIndex?: number;
13
17
  }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Base Settings for SpecialColumns
3
+ */
4
+ export interface SpecialColumnSettings {
5
+ /**
6
+ * Preferred width (in pixels) for Column; if unset, calculated dynamically by underlying Grid
7
+ */
8
+ Width?: number;
9
+ /**
10
+ * Whether Column is filterable
11
+ * @defaultValue true
12
+ */
13
+ Filterable?: boolean;
14
+ /**
15
+ * Whether Column can be resized (by dragging column header edges)
16
+ * @defaultValue true
17
+ */
18
+ Resizable?: boolean;
19
+ /**
20
+ * Whether Column can be grouped
21
+ * @defaultValue true
22
+ */
23
+ Groupable?: boolean;
24
+ /**
25
+ * Whether Column is sortable
26
+ * @defaultValue true
27
+ */
28
+ Sortable?: boolean;
29
+ /**
30
+ * Whether Column can be used when grid is in pivot mode
31
+ * @defaultValue true
32
+ */
33
+ Pivotable?: boolean;
34
+ /**
35
+ * Whether Column can be used in an aggregation when grouping
36
+ * @defaultValue true
37
+ */
38
+ Aggregatable?: boolean;
39
+ /**
40
+ * Whether if no menu should be shown for this Column header.
41
+ * @defaultValue false
42
+ */
43
+ SuppressMenu?: boolean;
44
+ /**
45
+ * Whether if this Column should be movable via dragging
46
+ * @defaultValue false
47
+ */
48
+ SuppressMovable?: boolean;
49
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -48,4 +48,4 @@ export interface ColumnFilterPredicate extends AdaptablePredicate {
48
48
  PredicateId: TypeHint<string, SystemFilterPredicateId>;
49
49
  }
50
50
  export declare type SystemFilterPredicateIds = SystemFilterPredicateId[];
51
- export declare type SystemFilterPredicateId = 'Values' | 'Blanks' | 'NonBlanks' | 'Equals' | 'NotEquals' | 'GreaterThan' | 'LessThan' | 'Positive' | 'Negative' | 'Zero' | 'Between' | 'NotBetween' | 'Is' | 'IsNot' | 'Contains' | 'NotContains' | 'StartsWith' | 'EndsWith' | 'Regex' | 'Today' | 'Yesterday' | 'Tomorrow' | 'ThisWeek' | 'ThisMonth' | 'ThisQuarter' | 'ThisYear' | 'InPast' | 'InFuture' | 'Before' | 'After' | 'InRange' | 'On' | 'NotOn' | 'NextWorkDay' | 'LastWorkDay' | 'True' | 'False';
51
+ export declare type SystemFilterPredicateId = 'Values' | 'Blanks' | 'NonBlanks' | 'Equals' | 'NotEquals' | 'GreaterThan' | 'LessThan' | 'Positive' | 'Negative' | 'Zero' | 'Between' | 'NotBetween' | 'Is' | 'IsNot' | 'Contains' | 'NotContains' | 'StartsWith' | 'EndsWith' | 'Regex' | 'Today' | 'Yesterday' | 'Tomorrow' | 'ThisWeek' | 'ThisMonth' | 'ThisQuarter' | 'ThisYear' | 'InPast' | 'InFuture' | 'Before' | 'After' | 'InRange' | 'On' | 'NotOn' | 'NextWorkDay' | 'LastWorkDay' | 'True' | 'False' | 'BooleanToggle';
@@ -1,5 +1,6 @@
1
1
  import { ConfigState } from './ConfigState';
2
2
  import { AdaptableObject } from './Common/AdaptableObject';
3
+ import { SpecialColumnSettings } from './Common/SpecialColumnSettings';
3
4
  /**
4
5
  * Predefined Configuration for the Free Text Column function
5
6
  */
@@ -39,6 +40,10 @@ export interface FreeTextColumn extends AdaptableObject {
39
40
  * @defaultValue 'String'
40
41
  */
41
42
  DataType?: 'String' | 'Number' | 'Boolean' | 'Date';
43
+ /**
44
+ * Additional optional properties for Column (e.g. filterable, resizable)
45
+ */
46
+ FreeTextColumnSettings?: FreeTextColumnSettings;
42
47
  }
43
48
  /**
44
49
  * Defines a cell value stored in a Free Text Column
@@ -53,3 +58,8 @@ export interface FreeTextStoredValue {
53
58
  */
54
59
  FreeText: any;
55
60
  }
61
+ /**
62
+ * Set of optional properties that define a FreeText Columns behaviour
63
+ */
64
+ export interface FreeTextColumnSettings extends SpecialColumnSettings {
65
+ }
@@ -1,4 +1,5 @@
1
1
  import { RowNode } from '@ag-grid-community/all-modules';
2
+ import { AdaptableColumn } from '../Common/AdaptableColumn';
2
3
  /**
3
4
  * Defines a Cell in Adaptable - every cell is an intersection of a Column Id and a Primary Key Value
4
5
  */
@@ -6,7 +7,7 @@ export interface GridCell {
6
7
  /**
7
8
  * Column in which cell is situtated
8
9
  */
9
- columnId: string;
10
+ column: AdaptableColumn;
10
11
  /**
11
12
  * Actual raw value of cell
12
13
  */
@@ -25,19 +25,27 @@ export interface GridRow {
25
25
  */
26
26
  export interface RowInfo {
27
27
  /**
28
- * Whether Row is a Master Row (in a Master-Detail grid)
28
+ * Is Row a Master Row (in a Master-Detail grid)
29
29
  */
30
30
  isMaster?: boolean;
31
31
  /**
32
- * Whether - if a Group Row - it is currently expanded
32
+ * Is Row expanded (if a group row)
33
33
  */
34
34
  isExpanded?: boolean;
35
35
  /**
36
- * Whether Row is a Row Group
36
+ * Is Row grouped
37
37
  */
38
38
  isGroup?: boolean;
39
+ /**
40
+ * Is Row selected
41
+ */
42
+ isSelected?: boolean;
43
+ /**
44
+ * Is Row displayed (ie. filtered, not necessarily in viewport)
45
+ */
46
+ isDisplayed?: boolean;
39
47
  /**
40
48
  * What level the Row is (if Row Grouping is active)
41
49
  */
42
- level?: number;
50
+ rowGroupLevel?: number;
43
51
  }
@@ -14,7 +14,6 @@ import { CachedQuery } from './QueryState';
14
14
  import { AdaptableFlashingAlert } from './Common/AdaptableFlashingAlert';
15
15
  import { TypeUuid } from './Uuid';
16
16
  import { SummaryOperation } from './Common/Enums';
17
- import { ProgressIndicator } from '../Utilities/Interface/ProgressIndicator';
18
17
  import { ExportCustomDestinationPopup } from './ExportState';
19
18
  export type { IPushPullReport, IPushPullDomain };
20
19
  export type { Glue42Report };
@@ -63,3 +62,7 @@ export interface SystemState extends InternalState, IPushPullState, Glue42State,
63
62
  suspendTime: Date;
64
63
  };
65
64
  }
65
+ export interface ProgressIndicator {
66
+ active: boolean;
67
+ label: string;
68
+ }
@@ -497,6 +497,6 @@ exports.SystemReducer = (state = initialState, action) => {
497
497
  return state;
498
498
  }
499
499
  };
500
- const getDataChangeHistoryKey = ({ columnId, primaryKeyValue }) => {
500
+ const getDataChangeHistoryKey = ({ column: columnId, primaryKeyValue, }) => {
501
501
  return JSON.stringify({ columnId, primaryKeyValue });
502
502
  };
@@ -43,6 +43,7 @@ const PreviewHelper_1 = require("../../Utilities/Helpers/PreviewHelper");
43
43
  const StringExtensions_1 = require("../../Utilities/Extensions/StringExtensions");
44
44
  const Emitter_1 = tslib_1.__importDefault(require("../../Utilities/Emitter"));
45
45
  const AdaptableToaster_1 = require("../../View/Components/Popups/AdaptableToaster");
46
+ const SystemRedux_1 = require("../ActionsReducers/SystemRedux");
46
47
  exports.INIT_STATE = 'INIT_STATE';
47
48
  exports.LOAD_STATE = 'LOAD_STATE';
48
49
  const NON_PERSIST_ACTIONS = {
@@ -50,6 +51,9 @@ const NON_PERSIST_ACTIONS = {
50
51
  '@@INIT': true,
51
52
  '@@redux/init': true,
52
53
  [exports.INIT_STATE]: true,
54
+ // progress indicators should NOT interfere with state management as it may lead to race conditions due to load/persist state being async
55
+ [SystemRedux_1.SYSTEM_PROGRESS_INDICATOR_SHOW]: true,
56
+ [SystemRedux_1.SYSTEM_PROGRESS_INDICATOR_HIDE]: true,
53
57
  };
54
58
  exports.InitState = () => ({
55
59
  type: exports.INIT_STATE,
@@ -382,7 +386,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
382
386
  if (((_c = actionTyped.alert.alertDefinition.AlertProperties) === null || _c === void 0 ? void 0 : _c.HighlightCell) &&
383
387
  actionTyped.alert.dataChangedInfo) {
384
388
  let rowNode = actionTyped.alert.dataChangedInfo.rowNode;
385
- adaptable.refreshCells([rowNode], [actionTyped.alert.dataChangedInfo.columnId], true);
389
+ adaptable.refreshCells([rowNode], [actionTyped.alert.dataChangedInfo.column.columnId], true);
386
390
  }
387
391
  return ret;
388
392
  }
@@ -398,7 +402,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
398
402
  var _a;
399
403
  if (((_a = alert.alertDefinition.AlertProperties) === null || _a === void 0 ? void 0 : _a.HighlightCell) && alert.dataChangedInfo) {
400
404
  let rowNode = alert.dataChangedInfo.rowNode;
401
- adaptable.refreshCells([rowNode], [alert.dataChangedInfo.columnId], true);
405
+ adaptable.refreshCells([rowNode], [alert.dataChangedInfo.column.columnId], true);
402
406
  }
403
407
  });
404
408
  return ret;
@@ -412,7 +416,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
412
416
  let ret = next(action);
413
417
  if (actionTyped.alert.dataChangedInfo) {
414
418
  let rowNode = actionTyped.alert.dataChangedInfo.rowNode;
415
- adaptable.refreshCells([rowNode], [actionTyped.alert.dataChangedInfo.columnId], true);
419
+ adaptable.refreshCells([rowNode], [actionTyped.alert.dataChangedInfo.column.columnId], true);
416
420
  }
417
421
  return ret;
418
422
  }
@@ -118,26 +118,26 @@ class AdaptableModuleBase {
118
118
  return false;
119
119
  }
120
120
  if (StringExtensions_1.StringExtensions.IsNotNullOrEmpty(functionType)) {
121
- if (functionType == 'sort' && !column.IsSparkline) {
122
- return column.Sortable;
121
+ if (functionType == 'sort' && !column.isSparkline) {
122
+ return column.sortable;
123
123
  }
124
124
  else if (functionType == 'editable') {
125
- return !column.ReadOnly;
125
+ return !column.readOnly;
126
126
  }
127
127
  else if (functionType == 'style') {
128
- return !column.IsSparkline;
128
+ return !column.isSparkline;
129
129
  }
130
130
  else if (functionType == 'sparkline') {
131
- return column.IsSparkline;
131
+ return column.isSparkline;
132
132
  }
133
133
  else if (functionType == 'numeric') {
134
- return column.DataType == Enums_1.DataType.Number;
134
+ return column.dataType == Enums_1.DataType.Number;
135
135
  }
136
136
  else if (functionType == 'filter') {
137
- return column.Filterable;
137
+ return column.filterable;
138
138
  }
139
139
  else if (functionType == 'quickfilter') {
140
- return this.api.columnApi.usesAdaptableQuickFilter(column.ColumnId);
140
+ return this.api.columnApi.usesAdaptableQuickFilter(column.columnId);
141
141
  }
142
142
  }
143
143
  return true;