@adaptabletools/adaptable 10.0.0-canary.3 → 10.0.3

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 (129) hide show
  1. package/base.css +77 -29
  2. package/index.css +89 -31
  3. package/package.json +1 -5
  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/AdaptableOptions.d.ts +1 -1
  8. package/src/AdaptableOptions/FilterOptions.d.ts +14 -7
  9. package/src/AdaptableOptions/GeneralOptions.d.ts +0 -7
  10. package/src/AdaptableOptions/LayoutOptions.d.ts +1 -1
  11. package/src/AdaptableOptions/QueryLanguageOptions.d.ts +7 -0
  12. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +89 -4
  13. package/src/Api/AlertApi.d.ts +1 -1
  14. package/src/Api/ColumnApi.d.ts +33 -0
  15. package/src/Api/ConfigApi.d.ts +8 -0
  16. package/src/Api/DataChangeHistoryApi.d.ts +10 -4
  17. package/src/Api/GridApi.d.ts +34 -8
  18. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -1
  19. package/src/Api/Implementation/AlertApiImpl.js +11 -4
  20. package/src/Api/Implementation/ColumnApiImpl.d.ts +7 -0
  21. package/src/Api/Implementation/ColumnApiImpl.js +37 -1
  22. package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -1
  23. package/src/Api/Implementation/ConfigApiImpl.js +28 -17
  24. package/src/Api/Implementation/DataChangeHistoryApiImpl.d.ts +1 -0
  25. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +3 -0
  26. package/src/Api/Implementation/FreeTextColumnApiImpl.js +2 -1
  27. package/src/Api/Implementation/GridApiImpl.d.ts +9 -0
  28. package/src/Api/Implementation/GridApiImpl.js +17 -1
  29. package/src/Api/Implementation/InternalApiImpl.d.ts +2 -0
  30. package/src/Api/Implementation/InternalApiImpl.js +16 -0
  31. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +2 -0
  32. package/src/Api/Implementation/QueryLanguageApiImpl.js +3 -0
  33. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +11 -8
  34. package/src/Api/Implementation/UserInterfaceApiImpl.js +57 -80
  35. package/src/Api/InternalApi.d.ts +2 -0
  36. package/src/Api/QueryLanguageApi.d.ts +5 -0
  37. package/src/Api/UserInterfaceApi.d.ts +14 -5
  38. package/src/PredefinedConfig/AlertState.d.ts +10 -0
  39. package/src/PredefinedConfig/CalculatedColumnState.d.ts +4 -37
  40. package/src/PredefinedConfig/Common/AdaptablePredicate.js +16 -15
  41. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +5 -1
  42. package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +49 -0
  43. package/src/{AdaptableOptions/DataChangeTrackingOptions.js → PredefinedConfig/Common/SpecialColumnSettings.js} +0 -0
  44. package/src/PredefinedConfig/FilterState.d.ts +1 -1
  45. package/src/PredefinedConfig/FreeTextColumnState.d.ts +10 -0
  46. package/src/PredefinedConfig/Selection/GridRow.d.ts +12 -4
  47. package/src/PredefinedConfig/SystemState.d.ts +4 -1
  48. package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -6
  49. package/src/Redux/ActionsReducers/SystemRedux.js +11 -11
  50. package/src/Redux/Store/AdaptableReduxMerger.js +7 -1
  51. package/src/Redux/Store/AdaptableStore.js +12 -0
  52. package/src/Strategy/AlertModule.js +1 -1
  53. package/src/Strategy/DataChangeHistoryModule.js +1 -1
  54. package/src/Strategy/ExportModule.d.ts +0 -2
  55. package/src/Strategy/ExportModule.js +58 -61
  56. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +2 -4
  57. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +11 -5
  58. package/src/Utilities/Helpers/DateHelper.d.ts +8 -2
  59. package/src/Utilities/Helpers/DateHelper.js +42 -20
  60. package/src/Utilities/ObjectFactory.d.ts +1 -1
  61. package/src/Utilities/ObjectFactory.js +13 -1
  62. package/src/Utilities/Services/AlertService.d.ts +1 -0
  63. package/src/Utilities/Services/AlertService.js +5 -0
  64. package/src/Utilities/Services/DataService.d.ts +0 -4
  65. package/src/Utilities/Services/DataService.js +2 -18
  66. package/src/Utilities/Services/Interface/IAlertService.d.ts +2 -1
  67. package/src/Utilities/Services/Interface/IDataService.d.ts +0 -2
  68. package/src/Utilities/Services/Interface/ILicenseService.d.ts +2 -1
  69. package/src/Utilities/Services/LicenseService.d.ts +2 -2
  70. package/src/Utilities/Services/MetamodelService.js +1 -0
  71. package/src/Utilities/Services/ModuleService.js +31 -24
  72. package/src/Utilities/Services/ReportService.js +1 -1
  73. package/src/Utilities/Services/TeamSharingService.d.ts +1 -0
  74. package/src/Utilities/Services/TeamSharingService.js +4 -2
  75. package/src/Utilities/runIfNotResolvedIn.d.ts +8 -0
  76. package/src/Utilities/runIfNotResolvedIn.js +23 -0
  77. package/src/View/AdaptableView.js +1 -1
  78. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +19 -5
  79. package/src/View/BulkUpdate/BulkUpdatePopup.d.ts +2 -0
  80. package/src/View/BulkUpdate/BulkUpdatePopup.js +4 -2
  81. package/src/View/BulkUpdate/BulkUpdateViewPanel.d.ts +2 -0
  82. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +3 -1
  83. package/src/View/Components/FilterForm/FilterForm.d.ts +3 -51
  84. package/src/View/Components/FilterForm/FilterForm.js +44 -23
  85. package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +3 -0
  86. package/src/View/Components/FilterForm/ListBoxFilterForm.js +14 -5
  87. package/src/View/Components/FilterForm/QuickFilterForm.d.ts +3 -43
  88. package/src/View/Components/FilterForm/QuickFilterForm.js +64 -23
  89. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +3 -0
  90. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.js +8 -0
  91. package/src/View/Components/Popups/AdaptablePopup.d.ts +1 -1
  92. package/src/View/Components/Selectors/ColumnValueSelector.d.ts +10 -2
  93. package/src/View/Components/Selectors/ColumnValueSelector.js +45 -13
  94. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +24 -6
  95. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +42 -32
  96. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +5 -1
  97. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -5
  98. package/src/View/FreeTextColumn/FreeTextColumnPopup.js +3 -1
  99. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +3 -1
  100. package/src/View/GridInfo/GridInfoPopup.js +4 -1
  101. package/src/View/Query/QueryViewPanel.js +1 -1
  102. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.d.ts +1 -1
  103. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +6 -8
  104. package/src/View/UIHelper.d.ts +2 -0
  105. package/src/View/UIHelper.js +10 -1
  106. package/src/agGrid/ActionColumnRenderer.d.ts +2 -1
  107. package/src/agGrid/ActionColumnRenderer.js +20 -3
  108. package/src/agGrid/Adaptable.d.ts +20 -4
  109. package/src/agGrid/Adaptable.js +186 -55
  110. package/src/components/Dashboard/Dashboard.js +1 -1
  111. package/src/components/DropdownButton/index.js +1 -1
  112. package/src/components/ExpressionEditor/index.js +2 -1
  113. package/src/components/Loader/Loader.d.ts +7 -0
  114. package/src/components/Loader/Loader.js +13 -0
  115. package/src/components/Loader/index.d.ts +2 -0
  116. package/src/components/Loader/index.js +7 -0
  117. package/src/components/ProgressIndicator/ProgressIndicator.d.ts +2 -0
  118. package/src/components/ProgressIndicator/ProgressIndicator.js +54 -0
  119. package/src/metamodel/adaptable.metamodel.d.ts +74 -34
  120. package/src/metamodel/adaptable.metamodel.js +346 -116
  121. package/src/parser/src/types.d.ts +11 -11
  122. package/src/types.d.ts +4 -4
  123. package/version.d.ts +1 -1
  124. package/version.js +1 -1
  125. package/src/AdaptableOptions/DataChangeTrackingOptions.d.ts +0 -16
  126. package/src/Utilities/Interface/ProgressIndicator.d.ts +0 -4
  127. package/src/Utilities/Interface/ProgressIndicator.js +0 -2
  128. package/src/View/Export/ProgressIndicator.d.ts +0 -6
  129. package/src/View/Export/ProgressIndicator.js +0 -25
@@ -22,51 +22,32 @@ class UserInterfaceApiImpl extends ApiBase_1.ApiBase {
22
22
  return this.getUserInterfaceOptions().styleClassNames;
23
23
  }
24
24
  getAllPermittedValuesItems() {
25
- return this.getUserInterfaceOptions().permittedValues;
25
+ var _a, _b;
26
+ return (_b = (_a = this.getUserInterfaceOptions()) === null || _a === void 0 ? void 0 : _a.permittedValues) !== null && _b !== void 0 ? _b : [];
26
27
  }
27
- getPermittedValuesItemsWithColumnScope() {
28
- return this.getAllPermittedValuesItems().filter((pv) => {
29
- return 'ColumnIds' in pv.scope == true;
30
- });
31
- }
32
- getPermittedValuesItemsWithDataTypeScope() {
33
- return this.getAllPermittedValuesItems().filter((pv) => {
34
- return 'DataTypes' in pv.scope == true;
35
- });
36
- }
37
- getPermittedValuesItemsWithAllScope() {
38
- return this.getAllPermittedValuesItems().filter((pv) => {
39
- return 'All' in pv.scope == true;
40
- });
41
- }
42
- getPermittedValuesForScope(column) {
28
+ getPermittedValuesForScope(column, permittedValues) {
43
29
  let permittedValuesItem;
44
- this.getPermittedValuesItemsWithColumnScope().forEach((pv) => {
45
- if (!permittedValuesItem) {
46
- if (this.adaptable.api.scopeApi.isColumnInScope(column, pv.scope)) {
47
- permittedValuesItem = pv;
48
- }
49
- }
30
+ /**
31
+ * The previous implementation prioritized column-id, data-types and all
32
+ */
33
+ // columns id
34
+ permittedValuesItem = permittedValues.find((permittedValue) => {
35
+ return ('ColumnIds' in permittedValue.scope &&
36
+ this.adaptable.api.scopeApi.isColumnInScope(column, permittedValue.scope));
50
37
  });
51
38
  if (permittedValuesItem) {
52
39
  return permittedValuesItem;
53
40
  }
54
- this.getPermittedValuesItemsWithDataTypeScope().forEach((pv) => {
55
- if (!permittedValuesItem) {
56
- if (this.adaptable.api.scopeApi.isColumnInScope(column, pv.scope)) {
57
- permittedValuesItem = pv;
58
- }
59
- }
41
+ permittedValuesItem = permittedValues.find((permittedValue) => {
42
+ return ('DataTypes' in permittedValue.scope &&
43
+ this.adaptable.api.scopeApi.isColumnInScope(column, permittedValue.scope));
60
44
  });
61
45
  if (permittedValuesItem) {
62
46
  return permittedValuesItem;
63
47
  }
64
- this.getPermittedValuesItemsWithAllScope().forEach((pv) => {
65
- if (!permittedValuesItem) {
66
- if (this.adaptable.api.scopeApi.isColumnInScope(column, pv.scope)) {
67
- permittedValuesItem = pv;
68
- }
69
- }
48
+ permittedValuesItem = permittedValues.find((permittedValue) => {
49
+ return ('All' in permittedValue.scope &&
50
+ this.adaptable.api.scopeApi.isColumnInScope(column, permittedValue.scope));
70
51
  });
71
52
  if (permittedValuesItem) {
72
53
  return permittedValuesItem;
@@ -77,7 +58,8 @@ class UserInterfaceApiImpl extends ApiBase_1.ApiBase {
77
58
  if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(this.getAllPermittedValuesItems())) {
78
59
  return undefined;
79
60
  }
80
- let permittedValuesColumn = this.getPermittedValuesForScope(column);
61
+ const allPermittedValues = this.getAllPermittedValuesItems();
62
+ let permittedValuesColumn = this.getPermittedValuesForScope(column, allPermittedValues);
81
63
  if (!permittedValuesColumn) {
82
64
  return undefined;
83
65
  }
@@ -96,58 +78,53 @@ class UserInterfaceApiImpl extends ApiBase_1.ApiBase {
96
78
  }
97
79
  return undefined;
98
80
  }
99
- getAllEditLookUpItems() {
100
- return this.getUserInterfaceOptions().editLookUpItems;
81
+ getAllFilterPermittedValuesItems() {
82
+ var _a, _b;
83
+ return (_b = (_a = this.getUserInterfaceOptions()) === null || _a === void 0 ? void 0 : _a.filterPermittedValues) !== null && _b !== void 0 ? _b : [];
101
84
  }
102
- getEditLookUpItemForColumn(columnId) {
103
- const abColumn = this.adaptable.api.columnApi.getColumnFromId(columnId);
104
- if (!abColumn) {
85
+ getFilterPermittedValuesForColumn(column) {
86
+ const allFilterPermittedValuesItems = this.getAllFilterPermittedValuesItems();
87
+ if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(allFilterPermittedValuesItems)) {
105
88
  return undefined;
106
89
  }
107
- let editLookUpItem;
108
- let editLookUpItems = this.getAllEditLookUpItems();
109
- if (!editLookUpItems) {
90
+ return this.getPermittedValuesForScope(column, allFilterPermittedValuesItems);
91
+ }
92
+ getAllCustomSortPermittedValuesItems() {
93
+ var _a, _b;
94
+ return (_b = (_a = this.getUserInterfaceOptions()) === null || _a === void 0 ? void 0 : _a.customSortPermittedValues) !== null && _b !== void 0 ? _b : [];
95
+ }
96
+ getCustomSortPermittedValuesForColumn(column) {
97
+ const allFilterPermittedValuesItems = this.getAllCustomSortPermittedValuesItems();
98
+ if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(allFilterPermittedValuesItems)) {
110
99
  return undefined;
111
100
  }
112
- // first we get any for the column as that is lower level
113
- const columnEditLookItems = editLookUpItems.filter((pv) => {
114
- return 'ColumnIds' in pv.scope == true;
115
- });
116
- columnEditLookItems.forEach((eli) => {
117
- if (this.adaptable.api.scopeApi.isColumnInScopeColumns(abColumn, eli.scope)) {
118
- editLookUpItem = eli;
119
- }
120
- });
121
- if (editLookUpItem) {
122
- return editLookUpItem;
101
+ return this.getPermittedValuesForScope(column, allFilterPermittedValuesItems);
102
+ }
103
+ getAllBulkUpdatePermittedValuesItems() {
104
+ var _a, _b;
105
+ return (_b = (_a = this.getUserInterfaceOptions()) === null || _a === void 0 ? void 0 : _a.bulkUpdatePermittedValues) !== null && _b !== void 0 ? _b : [];
106
+ }
107
+ getBulkUpdatePermittedValuesForColumn(column) {
108
+ const allFilterPermittedValuesItems = this.getAllBulkUpdatePermittedValuesItems();
109
+ if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(allFilterPermittedValuesItems)) {
110
+ return undefined;
123
111
  }
124
- // then we get any for the DataType
125
- const dateEditLookItems = editLookUpItems.filter((pv) => {
126
- return 'DataTypes' in pv.scope == true;
127
- });
128
- dateEditLookItems.forEach((eli) => {
129
- if (this.adaptable.api.scopeApi.isColumnInDateScope(abColumn, eli.scope)) {
130
- editLookUpItem = eli;
131
- }
132
- });
133
- if (editLookUpItem) {
134
- return editLookUpItem;
112
+ return this.getPermittedValuesForScope(column, allFilterPermittedValuesItems);
113
+ }
114
+ getAllEditLookUpItems() {
115
+ return this.getUserInterfaceOptions().editLookUpItems || [];
116
+ }
117
+ getEditLookUpItemForColumn(column) {
118
+ if (!column) {
119
+ return undefined;
135
120
  }
136
- // then we get any for All
137
- const allTypeEditLookItems = editLookUpItems.filter((pv) => {
138
- return 'All' in pv.scope == true;
139
- });
140
- allTypeEditLookItems.forEach((eli) => {
141
- if (this.adaptable.api.scopeApi.isColumnInScope(abColumn, eli.scope)) {
142
- editLookUpItem = eli;
143
- }
144
- });
145
- if (editLookUpItem) {
146
- return editLookUpItem;
121
+ let editLookUpItems = this.getAllEditLookUpItems();
122
+ if (!editLookUpItems) {
123
+ return undefined;
147
124
  }
148
- return undefined;
125
+ return this.getPermittedValuesForScope(column, editLookUpItems);
149
126
  }
150
- getEditLookUpValuesForEditLookUpItem(editLookUpItem, columnId) {
127
+ getEditLookUpValuesForEditLookUpItem(editLookUpItem, columnId, data) {
151
128
  if (!editLookUpItem) {
152
129
  return undefined;
153
130
  }
@@ -158,7 +135,7 @@ class UserInterfaceApiImpl extends ApiBase_1.ApiBase {
158
135
  let editLookUpValues = editLookUpItem.values;
159
136
  // first do the function then get hardcoded items
160
137
  if (editLookUpValues != null && typeof editLookUpValues === 'function') {
161
- return editLookUpValues(column);
138
+ return editLookUpValues(column, data);
162
139
  }
163
140
  else {
164
141
  let arr = editLookUpValues;
@@ -116,4 +116,6 @@ export interface InternalApi {
116
116
  destroyFrameworkComponent(containerDomNode: HTMLElement, frameworkComponent: AdaptableFrameworkComponent, componentType: 'toolPanel' | 'toolbar'): void;
117
117
  initializeDataChangeHistory(): void;
118
118
  isTextComparisonCaseSensitive(): boolean;
119
+ executeWithProgressIndicator(label: string, executeFn: () => unknown): void;
120
+ hideProgressIndicator(): void;
119
121
  }
@@ -1,4 +1,5 @@
1
1
  import { AdaptableModule } from '../PredefinedConfig/Common/Types';
2
+ import { ExpressionFunctionMap } from '../types';
2
3
  /**
3
4
  * Manages AdapTableQL (Query Language)
4
5
  */
@@ -33,6 +34,10 @@ export interface QueryLanguageApi {
33
34
  * Returns all columns that can be used in an Expression
34
35
  */
35
36
  getQueryableColumnIds(): string[];
37
+ /**
38
+ * Returns the current Module Expression Map
39
+ */
40
+ getModuleExpressionFunctionMap(): ExpressionFunctionMap;
36
41
  /**
37
42
  * Runs the AST that AdapTableQL creates for a expression - useful when evaluating remotely
38
43
  * @param expression expression to be run
@@ -1,7 +1,7 @@
1
1
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
2
2
  import { AdaptableStyle } from '../PredefinedConfig/Common/AdaptableStyle';
3
3
  import { UserMenuItem } from '../PredefinedConfig/Common/Menu';
4
- import { ActionColumn, CellValuesList } from '../AdaptableOptions/UserInterfaceOptions';
4
+ import { ActionColumn, BulkUpdatePermittedValues, CustomSortPermittedValues, EditLookUpPermittedValues, FilterPermittedValues, PermittedValues } from '../AdaptableOptions/UserInterfaceOptions';
5
5
  /**
6
6
  * Functions relating to User Interface section of Adaptable State
7
7
  */
@@ -17,27 +17,36 @@ export interface UserInterfaceApi {
17
17
  /**
18
18
  * Retrieves `permittedValues` property from User Interface Options
19
19
  */
20
- getAllPermittedValuesItems(): CellValuesList[];
20
+ getAllPermittedValuesItems(): PermittedValues[];
21
21
  /**
22
22
  * Retrieves Permitted Values for a given Column
23
23
  * @param column column for which to retrieve Permitted Values
24
24
  */
25
25
  getPermittedValuesForColumn(column: AdaptableColumn): any[];
26
+ /**
27
+ * Retrieves Permitted values for filtering by column values in Floating Filter and dropdown Filter.
28
+ */
29
+ getFilterPermittedValuesForColumn(column: AdaptableColumn): FilterPermittedValues | undefined;
30
+ /**
31
+ * Retrieves Permitted values for Custom sort.
32
+ */
33
+ getCustomSortPermittedValuesForColumn(column: AdaptableColumn): CustomSortPermittedValues | undefined;
34
+ getBulkUpdatePermittedValuesForColumn(column: AdaptableColumn): BulkUpdatePermittedValues | undefined;
26
35
  /**
27
36
  * Retrieves `editLookUpItems` property from User Interface Options
28
37
  */
29
- getAllEditLookUpItems(): CellValuesList[];
38
+ getAllEditLookUpItems(): EditLookUpPermittedValues[];
30
39
  /**
31
40
  * Retrieves EditLookUpItems for a given Column
32
41
  * @param columnId Column for which to retrieve EditLookUpItems
33
42
  */
34
- getEditLookUpItemForColumn(columnId: string): CellValuesList | undefined;
43
+ getEditLookUpItemForColumn(column: AdaptableColumn): EditLookUpPermittedValues | undefined;
35
44
  /**
36
45
  * Retrieves actual Look Up Values from an EditLookUpItem
37
46
  * @param editLookUpItem editLookUpItem to check
38
47
  * @param columnId Column to check
39
48
  */
40
- getEditLookUpValuesForEditLookUpItem(editLookUpItem: CellValuesList, columnId: string): any[] | undefined;
49
+ getEditLookUpValuesForEditLookUpItem(editLookUpItem: EditLookUpPermittedValues, columnId: string, rowData: any): any[] | undefined;
41
50
  /**
42
51
  * Adds menu item to Column Menu
43
52
  * @param userMenuItem Menu Item to add
@@ -11,6 +11,7 @@ import { XOR } from '../Utilities/Extensions/TypeExtensions';
11
11
  import { AdaptableAggregationQuery, AdaptableBooleanQuery, AdaptableObservableQuery } from './Common/AdaptableQuery';
12
12
  import { ButtonStyle } from './Common/ButtonStyle';
13
13
  import { AlertButtonContext } from '../AdaptableOptions/NotificationsOptions';
14
+ import { DataChangedInfo } from './Common/DataChangedInfo';
14
15
  /**
15
16
  * Predefined Configuration for Alert function
16
17
  */
@@ -45,22 +46,27 @@ export interface BaseAlertDefinition extends SuspendableObject {
45
46
  export interface FlashingAlertProperties {
46
47
  /**
47
48
  * Should a cell or whole row flash
49
+ * @defaultValue 'cell'
48
50
  */
49
51
  FlashTarget?: 'row' | 'cell';
50
52
  /**
51
53
  * Style for 'Down' value changes
54
+ * @defaultValue Red BackColour
52
55
  */
53
56
  DownChangeStyle?: AdaptableStyle;
54
57
  /**
55
58
  * Style for 'Up' value changes
59
+ * @defaultValue Green BackColour
56
60
  */
57
61
  UpChangeStyle?: AdaptableStyle;
58
62
  /**
59
63
  * Style for 'Neutral' value changes
64
+ * @defaultValue Gray BackColour
60
65
  */
61
66
  NeutralChangeStyle?: AdaptableStyle;
62
67
  /**
63
68
  * Duration of Flash - can be number (in ms) or 'always'
69
+ * @defaultValue 500ms
64
70
  */
65
71
  FlashDuration?: number | 'always';
66
72
  }
@@ -77,6 +83,10 @@ export interface AlertDefinition extends BaseAlertDefinition {
77
83
  * Type of Alert: 'Info', 'Success', 'Warning', 'Error'; influences Alert colour, icon and logging
78
84
  */
79
85
  MessageType: AdaptableMessageType;
86
+ /**
87
+ * Alert Message - can be string or function; if not provided AdapTable creates dynamically using Rule & Scope
88
+ */
89
+ MessageText?: string | ((scope: AdaptableScope, rule: AlertRule, dataChangedInfo?: DataChangedInfo) => string);
80
90
  /**
81
91
  * Series of properties which set what happens when Alert is triggered
82
92
  */
@@ -1,6 +1,7 @@
1
1
  import { ConfigState } from './ConfigState';
2
2
  import { AdaptableObject } from './Common/AdaptableObject';
3
3
  import { AdaptableScalarQuery } from './Common/AdaptableQuery';
4
+ import { SpecialColumnSettings } from './Common/SpecialColumnSettings';
4
5
  /**
5
6
  * Predefined Configuration for Calculated Column function
6
7
  **/
@@ -24,7 +25,7 @@ export interface CalculatedColumn extends AdaptableObject {
24
25
  */
25
26
  FriendlyName?: string;
26
27
  /**
27
- * Addtional optional properties for Column (e.g. filterable, resizable)
28
+ * Additional optional properties for Column (e.g. filterable, resizable)
28
29
  */
29
30
  CalculatedColumnSettings?: CalculatedColumnSettings;
30
31
  /**
@@ -35,9 +36,9 @@ export interface CalculatedColumn extends AdaptableObject {
35
36
  /**
36
37
  * Set of optional properties that define a Calculated Column's behaviour
37
38
  */
38
- export interface CalculatedColumnSettings {
39
+ export interface CalculatedColumnSettings extends SpecialColumnSettings {
39
40
  /**
40
- * Expression's return value DataType; inferred by AdapTable but setable by User
41
+ * Expression's return value DataType; inferred by AdapTable but settable by User
41
42
  */
42
43
  DataType?: 'String' | 'Number' | 'Boolean' | 'Date';
43
44
  /**
@@ -45,38 +46,4 @@ export interface CalculatedColumnSettings {
45
46
  * @defaultValue false
46
47
  */
47
48
  ShowToolTip?: boolean;
48
- /**
49
- * Preferred width (in pixels) for Column; if unset, calculated dynamically by underlying Grid
50
- */
51
- Width?: number;
52
- /**
53
- * Whether Column is filterable
54
- * @defaultValue true
55
- */
56
- Filterable?: boolean;
57
- /**
58
- * Whether Column can be resized (by dragging column header edges)
59
- * @defaultValue true
60
- */
61
- Resizable?: boolean;
62
- /**
63
- * Whether Column can be grouped
64
- * @defaultValue true
65
- */
66
- Groupable?: boolean;
67
- /**
68
- * Whether Column is sortable
69
- * @defaultValue true
70
- */
71
- Sortable?: boolean;
72
- /**
73
- * Whether Column can be used when grid is in pivot mode
74
- * @defaultValue true
75
- */
76
- Pivotable?: boolean;
77
- /**
78
- * Whether Column can be used in an aggregation when grouping
79
- * @defaultValue true
80
- */
81
- Aggregatable?: boolean;
82
49
  }
@@ -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',
@@ -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
+ }
@@ -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
+ }
@@ -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
  }