@adaptabletools/adaptable 16.0.8 → 16.0.10-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/base.css +14 -14
  2. package/base.css.map +1 -1
  3. package/bundle.cjs.js +169 -169
  4. package/index.css +14 -14
  5. package/index.css.map +1 -1
  6. package/package.json +1 -1
  7. package/publishTimestamp.d.ts +1 -1
  8. package/publishTimestamp.js +1 -1
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +2 -2
  10. package/src/AdaptableOptions/ChartingOptions.d.ts +40 -0
  11. package/src/AdaptableOptions/ColumnOptions.d.ts +17 -0
  12. package/src/AdaptableOptions/NotesOptions.d.ts +23 -0
  13. package/src/AdaptableOptions/QuickSearchOptions.d.ts +8 -0
  14. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -0
  15. package/src/Api/AdaptableApi.d.ts +3 -3
  16. package/src/Api/ChartingApi.d.ts +30 -0
  17. package/src/Api/ColumnApi.d.ts +5 -0
  18. package/src/Api/ConfigApi.d.ts +4 -3
  19. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -2
  20. package/src/Api/Implementation/AdaptableApiImpl.js +2 -2
  21. package/src/Api/Implementation/ApiBase.d.ts +2 -2
  22. package/src/Api/Implementation/ApiBase.js +2 -2
  23. package/src/Api/Implementation/ChartingApiImpl.d.ts +8 -2
  24. package/src/Api/Implementation/ChartingApiImpl.js +64 -0
  25. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
  26. package/src/Api/Implementation/ColumnApiImpl.js +4 -0
  27. package/src/Api/Implementation/ConfigApiImpl.d.ts +3 -2
  28. package/src/Api/Implementation/ConfigApiImpl.js +9 -9
  29. package/src/Api/Implementation/NotesApiImpl.d.ts +20 -0
  30. package/src/Api/Implementation/NotesApiImpl.js +58 -0
  31. package/src/Api/Implementation/OptionsApiImpl.d.ts +2 -2
  32. package/src/Api/Implementation/OptionsApiImpl.js +2 -2
  33. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +2 -0
  34. package/src/Api/Implementation/UserInterfaceApiImpl.js +8 -0
  35. package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -2
  36. package/src/Api/Internal/AdaptableInternalApi.js +0 -6
  37. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  38. package/src/Api/Internal/CalculatedColumnInternalApi.js +12 -0
  39. package/src/Api/Internal/ChartingInternalApi.d.ts +7 -0
  40. package/src/Api/Internal/ChartingInternalApi.js +45 -0
  41. package/src/Api/Internal/ColumnInternalApi.d.ts +3 -0
  42. package/src/Api/Internal/ColumnInternalApi.js +3 -0
  43. package/src/Api/NotesAPi.d.ts +50 -0
  44. package/src/Api/OptionsApi.d.ts +3 -3
  45. package/src/Api/UserInterfaceApi.d.ts +8 -0
  46. package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
  47. package/src/PredefinedConfig/ChartingState.d.ts +22 -0
  48. package/src/PredefinedConfig/ChartingState.js +9 -0
  49. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +12 -0
  50. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  51. package/src/PredefinedConfig/Common/Menu.d.ts +1 -1
  52. package/src/PredefinedConfig/Common/Types.d.ts +2 -2
  53. package/src/PredefinedConfig/Common/Types.js +1 -1
  54. package/src/PredefinedConfig/NotesState.d.ts +59 -0
  55. package/src/PredefinedConfig/PredefinedConfig.d.ts +2 -2
  56. package/src/PredefinedConfig/SystemState.d.ts +5 -3
  57. package/src/Redux/ActionsReducers/ChartingRedux.d.ts +28 -3
  58. package/src/Redux/ActionsReducers/ChartingRedux.js +52 -5
  59. package/src/Redux/ActionsReducers/NotesRedux.d.ts +39 -0
  60. package/src/Redux/ActionsReducers/NotesRedux.js +88 -0
  61. package/src/Redux/ActionsReducers/SystemRedux.d.ts +10 -10
  62. package/src/Redux/ActionsReducers/SystemRedux.js +23 -22
  63. package/src/Redux/Store/AdaptableStore.js +19 -11
  64. package/src/Strategy/ChartingModule.d.ts +5 -2
  65. package/src/Strategy/ChartingModule.js +28 -7
  66. package/src/Strategy/ColumnInfoModule.d.ts +11 -0
  67. package/src/Strategy/ColumnInfoModule.js +47 -0
  68. package/src/Strategy/DataSetModule.js +1 -0
  69. package/src/Strategy/Fdc3Module.js +28 -26
  70. package/src/Strategy/FilterModule.js +5 -0
  71. package/src/Strategy/GridInfoModule.js +13 -82
  72. package/src/Strategy/Interface/IModule.d.ts +2 -0
  73. package/src/Strategy/{CommentsModule.d.ts → NotesModule.d.ts} +6 -6
  74. package/src/Strategy/{CommentsModule.js → NotesModule.js} +41 -41
  75. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.d.ts +2 -0
  76. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +20 -18
  77. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -0
  78. package/src/Utilities/Constants/DocumentationLinkConstants.js +2 -1
  79. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -3
  80. package/src/Utilities/Constants/ModuleConstants.js +8 -5
  81. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +3 -1
  82. package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -1
  83. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -2
  84. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +36 -10
  85. package/src/Utilities/Extensions/ObjectExtensions.d.ts +1 -0
  86. package/src/Utilities/Extensions/ObjectExtensions.js +5 -1
  87. package/src/Utilities/ObjectFactory.d.ts +2 -1
  88. package/src/Utilities/ObjectFactory.js +10 -2
  89. package/src/Utilities/Services/Interface/IEntitlementService.d.ts +4 -0
  90. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
  91. package/src/Utilities/Services/QueryLanguageService.d.ts +1 -2
  92. package/src/Utilities/Services/QueryLanguageService.js +1 -6
  93. package/src/Utilities/Services/ValidationService.js +15 -5
  94. package/src/View/AdaptableView.js +2 -2
  95. package/src/View/AdaptableViewFactory.js +5 -3
  96. package/src/View/Alert/Wizard/AlertButtonsEditor.js +20 -4
  97. package/src/View/Alert/Wizard/AlertWizard.js +14 -7
  98. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +1 -1
  99. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +2 -0
  100. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +25 -46
  101. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.d.ts +8 -0
  102. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +19 -0
  103. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +2 -0
  104. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +44 -3
  105. package/src/View/CalculatedColumn/utils.d.ts +2 -0
  106. package/src/View/CalculatedColumn/utils.js +14 -0
  107. package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.d.ts +6 -0
  108. package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +47 -0
  109. package/src/View/Charting/ChartingWizard/{PreviewChartSection.d.ts → AgChargingWizard/PreviewChartSection.d.ts} +1 -1
  110. package/src/View/Charting/ChartingWizard/{PreviewChartSection.js → AgChargingWizard/PreviewChartSection.js} +2 -2
  111. package/src/View/Charting/ChartingWizard/{SettingsSection.d.ts → AgChargingWizard/SettingsSection.d.ts} +1 -1
  112. package/src/View/Charting/ChartingWizard/{SettingsSection.js → AgChargingWizard/SettingsSection.js} +4 -4
  113. package/src/View/Charting/ChartingWizard/AgChargingWizard/index.d.ts +1 -0
  114. package/src/View/Charting/ChartingWizard/AgChargingWizard/index.js +4 -0
  115. package/src/View/Charting/ChartingWizard/ChartingWizard.d.ts +4 -3
  116. package/src/View/Charting/ChartingWizard/ChartingWizard.js +12 -39
  117. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.d.ts +6 -0
  118. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +59 -0
  119. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.d.ts +9 -0
  120. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +25 -0
  121. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/index.d.ts +1 -0
  122. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/index.js +4 -0
  123. package/src/View/Charting/ChartingWizard/index.d.ts +1 -0
  124. package/src/View/Charting/ChartingWizard/index.js +4 -0
  125. package/src/View/Charting/DeleteChartButton.d.ts +2 -1
  126. package/src/View/Charting/DeleteChartButton.js +4 -2
  127. package/src/View/Charting/EditChartButton.d.ts +2 -1
  128. package/src/View/Charting/ShowChartButton.js +47 -16
  129. package/src/View/Charting/{useChartState.d.ts → useAgChartState.d.ts} +1 -1
  130. package/src/View/Charting/{useChartState.js → useAgChartState.js} +7 -7
  131. package/src/View/Charting/useChartingElements.d.ts +2 -1
  132. package/src/View/Charting/useChartingElements.js +36 -26
  133. package/src/View/Charting/useExternalChartState.d.ts +7 -0
  134. package/src/View/Charting/useExternalChartState.js +56 -0
  135. package/src/View/ColumnInfo/ColumnInfo.d.ts +5 -0
  136. package/src/View/ColumnInfo/ColumnInfo.js +185 -0
  137. package/src/View/ColumnInfo/ColumnInfoPopup.d.ts +3 -0
  138. package/src/View/ColumnInfo/ColumnInfoPopup.js +15 -0
  139. package/src/View/Components/AdaptableIconSelector/index.d.ts +1 -1
  140. package/src/View/Components/Selectors/ColumnSelector.js +1 -1
  141. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +6 -1
  142. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +9 -0
  143. package/src/View/GridInfo/{AdaptableObjectsSummary.js → GridInfoPopup/AdaptableObjectsSummary.js} +2 -2
  144. package/src/View/GridInfo/{AdaptableOptionsComponent.d.ts → GridInfoPopup/AdaptableOptionsComponent.d.ts} +1 -1
  145. package/src/View/GridInfo/{AdaptableOptionsComponent.js → GridInfoPopup/AdaptableOptionsComponent.js} +6 -6
  146. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.d.ts +6 -0
  147. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +82 -0
  148. package/src/View/GridInfo/GridInfoPopup/index.d.ts +1 -0
  149. package/src/View/GridInfo/GridInfoPopup/index.js +4 -0
  150. package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
  151. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  152. package/src/View/Notes/NotesListing.d.ts +2 -0
  153. package/src/View/{Comments/CommentListing.js → Notes/NotesListing.js} +13 -14
  154. package/src/View/Notes/NotesPopup.d.ts +2 -0
  155. package/src/View/{Comments/CommentPopup.js → Notes/NotesPopup.js} +21 -21
  156. package/src/View/Shortcut/Wizard/ShortcutWizard.js +6 -1
  157. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +14 -0
  158. package/src/agGrid/Adaptable.d.ts +1 -1
  159. package/src/agGrid/Adaptable.js +28 -16
  160. package/src/agGrid/agGridHelper.d.ts +3 -3
  161. package/src/agGrid/agGridHelper.js +56 -30
  162. package/src/agGrid/agGridMenuHelper.js +4 -2
  163. package/src/components/ExpressionEditor/EditorInput.d.ts +1 -1
  164. package/src/components/ExpressionEditor/EditorInput.js +15 -6
  165. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +5 -10
  166. package/src/components/ExpressionEditor/editorButtonsCumulativeAggregatedScalar.js +5 -5
  167. package/src/components/ExpressionEditor/editorButtonsQuantileAggregatedScalar.d.ts +2 -0
  168. package/src/components/ExpressionEditor/editorButtonsQuantileAggregatedScalar.js +25 -0
  169. package/src/components/ExpressionEditor/index.d.ts +1 -1
  170. package/src/components/ExpressionEditor/index.js +2 -1
  171. package/src/components/icons/index.js +2 -0
  172. package/src/components/icons/note.d.ts +3 -0
  173. package/src/components/icons/note.js +7 -0
  174. package/src/metamodel/adaptable.metamodel.d.ts +72 -59
  175. package/src/metamodel/adaptable.metamodel.js +1 -1
  176. package/src/types.d.ts +4 -4
  177. package/version.d.ts +1 -1
  178. package/version.js +1 -1
  179. package/src/AdaptableOptions/CommentsOptions.d.ts +0 -23
  180. package/src/Api/CommentsApi.d.ts +0 -50
  181. package/src/Api/Implementation/CommentsApiImpl.d.ts +0 -20
  182. package/src/Api/Implementation/CommentsApiImpl.js +0 -58
  183. package/src/PredefinedConfig/CommentsState.d.ts +0 -59
  184. package/src/Redux/ActionsReducers/CommentsRedux.d.ts +0 -39
  185. package/src/Redux/ActionsReducers/CommentsRedux.js +0 -92
  186. package/src/View/Comments/CommentListing.d.ts +0 -2
  187. package/src/View/Comments/CommentPopup.d.ts +0 -2
  188. package/src/View/GridInfo/ColumnInfoComponent.d.ts +0 -20
  189. package/src/View/GridInfo/ColumnInfoComponent.js +0 -176
  190. package/src/View/GridInfo/GridInfoPopup.d.ts +0 -16
  191. package/src/View/GridInfo/GridInfoPopup.js +0 -117
  192. package/src/View/GridInfo/GridOptionsComponent.d.ts +0 -16
  193. package/src/View/GridInfo/GridOptionsComponent.js +0 -36
  194. /package/src/AdaptableOptions/{CommentsOptions.js → NotesOptions.js} +0 -0
  195. /package/src/Api/{CommentsApi.js → NotesAPi.js} +0 -0
  196. /package/src/PredefinedConfig/{CommentsState.js → NotesState.js} +0 -0
  197. /package/src/View/GridInfo/{AdaptableObjectsSummary.d.ts → GridInfoPopup/AdaptableObjectsSummary.d.ts} +0 -0
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommentsModule = void 0;
3
+ exports.NotesModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
6
6
  const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
7
7
  /**
8
- * In the first iteration a cell can have only one comment, the
9
- * comments is a list to allow further development.
8
+ * In the first iteration a cell can have only one note, the
9
+ * notes is a list to allow further development.
10
10
  */
11
- class CommentsModule extends AdaptableModuleBase_1.AdaptableModuleBase {
11
+ class NotesModule extends AdaptableModuleBase_1.AdaptableModuleBase {
12
12
  constructor(api) {
13
- super(ModuleConstants.CommentsModuleId, ModuleConstants.CommentsFriendlyName, 'comment', 'CommentsPopup', 'Comments', api);
13
+ super(ModuleConstants.NotesModuleId, ModuleConstants.NotesFriendlyName, 'note', 'NotesPopup', 'Notes', api);
14
14
  this.adaptable = api.internalApi.getAdaptableInstance();
15
15
  this.adaptable.api.eventApi.on('AdaptableReady', () => this.handleAdaptableReady());
16
16
  }
17
17
  isModuleAvailable() {
18
- // FIXME remove this once Comments feature is public
18
+ // FIXME remove this once Notes feature is public
19
19
  return false;
20
20
  }
21
21
  handleAdaptableReady() {
@@ -41,36 +41,36 @@ class CommentsModule extends AdaptableModuleBase_1.AdaptableModuleBase {
41
41
  return undefined;
42
42
  }
43
43
  const items = [];
44
- const isCellCommentable = (_b = (_a = this.adaptable.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getCommentOptions()) === null || _b === void 0 ? void 0 : _b.isCellCommentable;
45
- if (!isCellCommentable ||
46
- isCellCommentable({
44
+ const isCellNotable = (_b = (_a = this.adaptable.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getNotesOptions()) === null || _b === void 0 ? void 0 : _b.isCellNotable;
45
+ if (!isCellNotable ||
46
+ isCellNotable({
47
47
  adaptableApi: this.adaptable.api,
48
48
  primaryKeyValue: menuContext.primaryKeyValue,
49
49
  columnId: menuContext.adaptableColumn.columnId,
50
50
  userName: this.adaptable.api.optionsApi.getUserName(),
51
51
  adaptableId: this.adaptable.adaptableOptions.adaptableId,
52
52
  }))
53
- items.push(...this.getAddRemoveCommentMenuItems(menuContext));
53
+ items.push(...this.getAddRemoveNoteMenuItems(menuContext));
54
54
  return items;
55
55
  }
56
- getAddRemoveCommentMenuItems(menuContext) {
56
+ getAddRemoveNoteMenuItems(menuContext) {
57
57
  var _a;
58
58
  const items = [];
59
- // does not have comment
60
- const [comment] = (_a = this.adaptable.api.commentsApi.getCellComments({
59
+ // does not have note
60
+ const [note] = (_a = this.adaptable.api.notesApi.getCellNotes({
61
61
  PrimaryKeyValue: menuContext.primaryKeyValue,
62
62
  ColumnId: menuContext.adaptableColumn.columnId,
63
63
  })) !== null && _a !== void 0 ? _a : [];
64
- if (comment) {
65
- items.push(this.createColumnMenuItemClickFunction('Remove Comment', this.moduleInfo.Glyph, () => {
66
- this.api.commentsApi.deleteComment(comment);
64
+ if (note) {
65
+ items.push(this.createColumnMenuItemClickFunction('Remove Note', this.moduleInfo.Glyph, () => {
66
+ this.api.notesApi.deleteNote(note);
67
67
  }));
68
68
  }
69
69
  else {
70
- items.push(this.createColumnMenuItemClickFunction('Add Comment', this.moduleInfo.Glyph, () => {
70
+ items.push(this.createColumnMenuItemClickFunction('Add Note', this.moduleInfo.Glyph, () => {
71
71
  // add an empty one
72
- this.api.commentsApi.addComment('', menuContext.primaryKeyValue, menuContext.adaptableColumn.columnId);
73
- this.api.commentsApi.showComment({
72
+ this.api.notesApi.addNote('', menuContext.primaryKeyValue, menuContext.adaptableColumn.columnId);
73
+ this.api.notesApi.showNotes({
74
74
  PrimaryKeyValue: menuContext.primaryKeyValue,
75
75
  ColumnId: menuContext.adaptableColumn.columnId,
76
76
  }, true);
@@ -96,46 +96,46 @@ class CommentsModule extends AdaptableModuleBase_1.AdaptableModuleBase {
96
96
  }
97
97
  handleMouseEnter(event) {
98
98
  var _a;
99
- const editMode = this.adaptable.api.commentsApi.getCommentPopupEditMode();
99
+ const editMode = this.adaptable.api.notesApi.getNotePopupEditMode();
100
100
  if (editMode) {
101
101
  // ignore
102
102
  return;
103
103
  }
104
104
  const cellPosition = this.getCellPositionFromEvent(event);
105
- const openCommentGridCell = this.adaptable.api.commentsApi.getOpenCommentGridCell();
106
- // Hovering over someting that is not a cell and there is no open comment
107
- if (!cellPosition && openCommentGridCell) {
108
- // need to close if the new cell does not have a comment
109
- this.adaptable.api.commentsApi.hideComment();
105
+ const openNoteGridCell = this.adaptable.api.notesApi.getOpenNoteGridCell();
106
+ // Hovering over someting that is not a cell and there is no open note
107
+ if (!cellPosition && openNoteGridCell) {
108
+ // need to close if the new cell does not have a note
109
+ this.adaptable.api.notesApi.hideNote();
110
110
  }
111
- else if ((_a = this.adaptable.api.commentsApi.getCellComments(cellPosition)) === null || _a === void 0 ? void 0 : _a.length) {
112
- this.adaptable.api.commentsApi.showComment(cellPosition, false);
111
+ else if ((_a = this.adaptable.api.notesApi.getCellNotes(cellPosition)) === null || _a === void 0 ? void 0 : _a.length) {
112
+ this.adaptable.api.notesApi.showNotes(cellPosition, false);
113
113
  }
114
114
  }
115
- handleCellSelected(commentGridCell) {
115
+ handleCellSelected(noteGridCell) {
116
116
  // if already opened - do nothing
117
- const openCommentGridCell = this.adaptable.api.commentsApi.getOpenCommentGridCell();
118
- if ((openCommentGridCell === null || openCommentGridCell === void 0 ? void 0 : openCommentGridCell.PrimaryKeyValue) === commentGridCell.PrimaryKeyValue &&
119
- (openCommentGridCell === null || openCommentGridCell === void 0 ? void 0 : openCommentGridCell.ColumnId) === commentGridCell.ColumnId) {
117
+ const openNoteGridCell = this.adaptable.api.notesApi.getOpenNoteGridCell();
118
+ if ((openNoteGridCell === null || openNoteGridCell === void 0 ? void 0 : openNoteGridCell.PrimaryKeyValue) === noteGridCell.PrimaryKeyValue &&
119
+ (openNoteGridCell === null || openNoteGridCell === void 0 ? void 0 : openNoteGridCell.ColumnId) === noteGridCell.ColumnId) {
120
120
  return;
121
121
  }
122
- // if open but this has no comment, close
123
- const cellComments = this.adaptable.api.commentsApi.getCellComments(commentGridCell);
124
- if (openCommentGridCell && !(cellComments === null || cellComments === void 0 ? void 0 : cellComments.length)) {
122
+ // if open but this has no note, close
123
+ const cellNotes = this.adaptable.api.notesApi.getCellNotes(noteGridCell);
124
+ if (openNoteGridCell && !(cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length)) {
125
125
  // hide only if in edit mode
126
126
  // because if you select a cell and move the mouse fast over another cell
127
- // with a comment, you do not want to close that comment
127
+ // with a note, you do not want to close that note
128
128
  // the selection is debounced, so the moment goes over the new cell this event is triggered
129
- if (this.adaptable.api.commentsApi.getCommentPopupEditMode()) {
130
- this.adaptable.api.commentsApi.hideComment();
129
+ if (this.adaptable.api.notesApi.getNotePopupEditMode()) {
130
+ this.adaptable.api.notesApi.hideNote();
131
131
  }
132
132
  return;
133
133
  }
134
- // if open but the new selection has a comment open that one in edit mode (because of click)
135
- if (openCommentGridCell && (cellComments === null || cellComments === void 0 ? void 0 : cellComments.length)) {
136
- this.adaptable.api.commentsApi.showComment(commentGridCell, true);
134
+ // if open but the new selection has a note open that one in edit mode (because of click)
135
+ if (openNoteGridCell && (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length)) {
136
+ this.adaptable.api.notesApi.showNotes(noteGridCell, true);
137
137
  return;
138
138
  }
139
139
  }
140
140
  }
141
- exports.CommentsModule = CommentsModule;
141
+ exports.NotesModule = NotesModule;
@@ -1,4 +1,6 @@
1
1
  import { AdaptableApi, Layout } from '../../../../types';
2
+ import { ColumnFilter } from '../../../types';
3
+ export declare const getFilterPreview: (columnFilter: ColumnFilter, api: AdaptableApi) => string;
2
4
  export declare const getLayoutFilterViewItems: (layout: Layout, api: AdaptableApi) => {
3
5
  name: string;
4
6
  values: string[];
@@ -1,28 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLayoutFilterViewItems = void 0;
4
- const getLayoutFilterViewItems = (layout, api) => {
5
- var _a;
3
+ exports.getLayoutFilterViewItems = exports.getFilterPreview = void 0;
4
+ const getFilterPreview = (columnFilter, api) => {
5
+ var _a, _b, _c;
6
6
  const columnIdToFriendlyName = (columnId) => {
7
7
  return api.columnApi.getFriendlyNameForColumnId(columnId);
8
8
  };
9
+ return `[${columnIdToFriendlyName(columnFilter.ColumnId)}: ${(_a = columnFilter === null || columnFilter === void 0 ? void 0 : columnFilter.Predicate) === null || _a === void 0 ? void 0 : _a.PredicateId} ${((_c = (_b = columnFilter.Predicate) === null || _b === void 0 ? void 0 : _b.Inputs) !== null && _c !== void 0 ? _c : [])
10
+ .map((input) => {
11
+ if (typeof input === 'string') {
12
+ return input;
13
+ }
14
+ if (typeof (input === null || input === void 0 ? void 0 : input.toString) === 'function') {
15
+ return input.toString();
16
+ }
17
+ return '';
18
+ })
19
+ .filter(Boolean)
20
+ .join(', ')}]`;
21
+ };
22
+ exports.getFilterPreview = getFilterPreview;
23
+ const getLayoutFilterViewItems = (layout, api) => {
24
+ var _a;
9
25
  return {
10
26
  name: 'Filter',
11
- values: ((_a = layout.ColumnFilters) !== null && _a !== void 0 ? _a : []).map((customFilter) => {
12
- var _a, _b;
13
- return `[${columnIdToFriendlyName(customFilter.ColumnId)}: ${customFilter.Predicate.PredicateId} ${((_b = (_a = customFilter.Predicate) === null || _a === void 0 ? void 0 : _a.Inputs) !== null && _b !== void 0 ? _b : [])
14
- .map((input) => {
15
- if (typeof input === 'string') {
16
- return input;
17
- }
18
- if (typeof (input === null || input === void 0 ? void 0 : input.toString) === 'function') {
19
- return input.toString();
20
- }
21
- return '';
22
- })
23
- .filter(Boolean)
24
- .join(', ')}]`;
25
- }),
27
+ values: ((_a = layout.ColumnFilters) !== null && _a !== void 0 ? _a : []).map((columnFilter) => (0, exports.getFilterPreview)(columnFilter, api)),
26
28
  };
27
29
  };
28
30
  exports.getLayoutFilterViewItems = getLayoutFilterViewItems;
@@ -6,6 +6,7 @@ export declare const ObservableQueryDocsLink: string;
6
6
  export declare const AggregatedBooleanQueryDocsLink: string;
7
7
  export declare const AggregatedScalarQueryDocsLink: string;
8
8
  export declare const CumulativeAggregatedScalarQueryDocsLink: string;
9
+ export declare const QuantileAggregatedScalarQueryDocsLink: string;
9
10
  export declare const PredicateDocsLink: string;
10
11
  export declare const PrimaryKeyDocsLink: string;
11
12
  export declare const LicenseDocsLink: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgGridModulesDocsLink = exports.AdaptableOptionsDocsLink = exports.LicenseDocsLink = exports.PrimaryKeyDocsLink = exports.PredicateDocsLink = exports.CumulativeAggregatedScalarQueryDocsLink = exports.AggregatedScalarQueryDocsLink = exports.AggregatedBooleanQueryDocsLink = exports.ObservableQueryDocsLink = exports.ScalarQueryDocsLink = exports.BooleanQueryDocsLink = exports.ExpressionEditorDocsLink = exports.HOST_URL_DOCS = void 0;
3
+ exports.AgGridModulesDocsLink = exports.AdaptableOptionsDocsLink = exports.LicenseDocsLink = exports.PrimaryKeyDocsLink = exports.PredicateDocsLink = exports.QuantileAggregatedScalarQueryDocsLink = exports.CumulativeAggregatedScalarQueryDocsLink = exports.AggregatedScalarQueryDocsLink = exports.AggregatedBooleanQueryDocsLink = exports.ObservableQueryDocsLink = exports.ScalarQueryDocsLink = exports.BooleanQueryDocsLink = exports.ExpressionEditorDocsLink = exports.HOST_URL_DOCS = void 0;
4
4
  exports.HOST_URL_DOCS = 'https://docs.adaptabletools.com';
5
5
  //export const HOST_URL_DOCS = 'http://localhost:3000';
6
6
  exports.ExpressionEditorDocsLink = `${exports.HOST_URL_DOCS}/guide/ui-expression-editor`;
@@ -10,6 +10,7 @@ exports.ObservableQueryDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptable-ql-e
10
10
  exports.AggregatedBooleanQueryDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptable-ql-expression-aggregation-boolean`;
11
11
  exports.AggregatedScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptable-ql-expression-aggregation-scalar`;
12
12
  exports.CumulativeAggregatedScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptable-ql-expression-cumulative`;
13
+ exports.QuantileAggregatedScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptable-ql-expression-quantile`;
13
14
  exports.PredicateDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptable-predicate`;
14
15
  exports.PrimaryKeyDocsLink = `${exports.HOST_URL_DOCS}/guide/getting-started-primary-key`;
15
16
  exports.LicenseDocsLink = `${exports.HOST_URL_DOCS}/guide/licensing`;
@@ -33,8 +33,10 @@ export declare const Glue42ModuleId: ModuleConstants;
33
33
  export declare const Glue42FriendlyName = "Glue42";
34
34
  export declare const GridInfoModuleId: ModuleConstants;
35
35
  export declare const GridInfoFriendlyName = "Grid Info";
36
- export declare const CommentsModuleId: ModuleConstants;
37
- export declare const CommentsFriendlyName = "Comments";
36
+ export declare const ColumnInfoModuleId: ModuleConstants;
37
+ export declare const ColumnInfoFriendlyName = "Column Info";
38
+ export declare const NotesModuleId: ModuleConstants;
39
+ export declare const NotesFriendlyName = "Notes";
38
40
  export declare const IPushPullModuleId: ModuleConstants;
39
41
  export declare const IPushPullFriendlyName = "IPushPull";
40
42
  export declare const LayoutModuleId: ModuleConstants;
@@ -104,5 +106,6 @@ export declare const ADAPTABLE_MODULE_MAP: {
104
106
  ToolPanel: string;
105
107
  SettingsPanel: string;
106
108
  StatusBar: string;
107
- Comments: string;
109
+ Notes: string;
110
+ ColumnInfo: string;
108
111
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScheduleFriendlyName = exports.ScheduleModuleId = exports.QuickSearchFriendlyName = exports.QuickSearchModuleId = exports.QueryFriendlyName = exports.QueryModuleId = exports.PlusMinusFriendlyName = exports.PlusMinusModuleId = exports.OpenFinFriendlyName = exports.OpenFinModuleId = exports.LayoutFriendlyName = exports.LayoutModuleId = exports.IPushPullFriendlyName = exports.IPushPullModuleId = exports.CommentsFriendlyName = exports.CommentsModuleId = exports.GridInfoFriendlyName = exports.GridInfoModuleId = exports.Glue42FriendlyName = exports.Glue42ModuleId = exports.FreeTextColumnFriendlyName = exports.FreeTextColumnModuleId = exports.FormatColumnFriendlyName = exports.FormatColumnModuleId = exports.FilterFriendlyName = exports.FilterModuleId = exports.Fdc3FriendlyName = exports.Fdc3ModuleId = exports.ExportFriendlyName = exports.ExportModuleId = exports.DataSetFriendlyName = exports.DataSetModuleId = exports.DataChangeHistoryFriendlyName = exports.DataChangeHistoryModuleId = exports.DashboardFriendlyName = exports.DashboardModuleId = exports.CustomSortFriendlyName = exports.CustomSortModuleId = exports.ChartingFriendlyName = exports.ChartingModuleId = exports.CellSummaryFriendlyName = exports.CellSummaryModuleId = exports.CalculatedColumnFriendlyName = exports.CalculatedColumnModuleId = exports.BulkUpdateFriendlyName = exports.BulkUpdateModuleId = exports.FlashingCellFriendlyName = exports.FlashingCellModuleId = exports.AlertModuleFriendlyName = exports.AlertModuleId = void 0;
4
- exports.ADAPTABLE_MODULE_MAP = exports.StatusBarFriendlyName = exports.StatusBarModuleId = exports.SettingsPanelFriendlyName = exports.SettingsPanelModuleId = exports.ToolPanelFriendlyName = exports.ToolPanelModuleId = exports.ThemeFriendlyName = exports.ThemeModuleId = exports.TeamSharingFriendlyName = exports.TeamSharingModuleId = exports.SystemStatusFriendlyName = exports.SystemStatusModuleId = exports.StateManagementFriendlyName = exports.StateManagementModuleId = exports.StyledColumnFriendlyName = exports.StyledColumnModuleId = exports.SmartEditFriendlyName = exports.SmartEditModuleId = exports.ShortcutFriendlyName = exports.ShortcutModuleId = void 0;
3
+ exports.QuickSearchFriendlyName = exports.QuickSearchModuleId = exports.QueryFriendlyName = exports.QueryModuleId = exports.PlusMinusFriendlyName = exports.PlusMinusModuleId = exports.OpenFinFriendlyName = exports.OpenFinModuleId = exports.LayoutFriendlyName = exports.LayoutModuleId = exports.IPushPullFriendlyName = exports.IPushPullModuleId = exports.NotesFriendlyName = exports.NotesModuleId = exports.ColumnInfoFriendlyName = exports.ColumnInfoModuleId = exports.GridInfoFriendlyName = exports.GridInfoModuleId = exports.Glue42FriendlyName = exports.Glue42ModuleId = exports.FreeTextColumnFriendlyName = exports.FreeTextColumnModuleId = exports.FormatColumnFriendlyName = exports.FormatColumnModuleId = exports.FilterFriendlyName = exports.FilterModuleId = exports.Fdc3FriendlyName = exports.Fdc3ModuleId = exports.ExportFriendlyName = exports.ExportModuleId = exports.DataSetFriendlyName = exports.DataSetModuleId = exports.DataChangeHistoryFriendlyName = exports.DataChangeHistoryModuleId = exports.DashboardFriendlyName = exports.DashboardModuleId = exports.CustomSortFriendlyName = exports.CustomSortModuleId = exports.ChartingFriendlyName = exports.ChartingModuleId = exports.CellSummaryFriendlyName = exports.CellSummaryModuleId = exports.CalculatedColumnFriendlyName = exports.CalculatedColumnModuleId = exports.BulkUpdateFriendlyName = exports.BulkUpdateModuleId = exports.FlashingCellFriendlyName = exports.FlashingCellModuleId = exports.AlertModuleFriendlyName = exports.AlertModuleId = void 0;
4
+ exports.ADAPTABLE_MODULE_MAP = exports.StatusBarFriendlyName = exports.StatusBarModuleId = exports.SettingsPanelFriendlyName = exports.SettingsPanelModuleId = exports.ToolPanelFriendlyName = exports.ToolPanelModuleId = exports.ThemeFriendlyName = exports.ThemeModuleId = exports.TeamSharingFriendlyName = exports.TeamSharingModuleId = exports.SystemStatusFriendlyName = exports.SystemStatusModuleId = exports.StateManagementFriendlyName = exports.StateManagementModuleId = exports.StyledColumnFriendlyName = exports.StyledColumnModuleId = exports.SmartEditFriendlyName = exports.SmartEditModuleId = exports.ShortcutFriendlyName = exports.ShortcutModuleId = exports.ScheduleFriendlyName = exports.ScheduleModuleId = void 0;
5
5
  exports.AlertModuleId = 'Alert';
6
6
  exports.AlertModuleFriendlyName = 'Alert';
7
7
  exports.FlashingCellModuleId = 'FlashingCell';
@@ -36,8 +36,10 @@ exports.Glue42ModuleId = 'Glue42';
36
36
  exports.Glue42FriendlyName = 'Glue42';
37
37
  exports.GridInfoModuleId = 'GridInfo';
38
38
  exports.GridInfoFriendlyName = 'Grid Info';
39
- exports.CommentsModuleId = 'Comments';
40
- exports.CommentsFriendlyName = 'Comments';
39
+ exports.ColumnInfoModuleId = 'ColumnInfo';
40
+ exports.ColumnInfoFriendlyName = 'Column Info';
41
+ exports.NotesModuleId = 'Notes';
42
+ exports.NotesFriendlyName = 'Notes';
41
43
  exports.IPushPullModuleId = 'IPushPull';
42
44
  exports.IPushPullFriendlyName = 'IPushPull';
43
45
  exports.LayoutModuleId = 'Layout';
@@ -107,5 +109,6 @@ exports.ADAPTABLE_MODULE_MAP = {
107
109
  [exports.ToolPanelModuleId]: exports.ToolPanelFriendlyName,
108
110
  [exports.SettingsPanelModuleId]: exports.SettingsPanelFriendlyName,
109
111
  [exports.StatusBarModuleId]: exports.StatusBarFriendlyName,
110
- [exports.CommentsModuleId]: exports.CommentsFriendlyName,
112
+ [exports.NotesModuleId]: exports.NotesFriendlyName,
113
+ [exports.ColumnInfoModuleId]: exports.ColumnInfoFriendlyName,
111
114
  };
@@ -80,6 +80,7 @@ exports.DefaultAdaptableOptions = {
80
80
  columnFriendlyName: undefined,
81
81
  columnTypes: GeneralConstants_1.EMPTY_ARRAY,
82
82
  showMissingColumnsWarning: true,
83
+ addColumnGroupToColumnFriendlyName: false,
83
84
  },
84
85
  dashboardOptions: {
85
86
  canFloat: true,
@@ -223,7 +224,8 @@ exports.DefaultAdaptableOptions = {
223
224
  },
224
225
  quickSearchOptions: {
225
226
  excludeColumnFromQuickSearch: undefined,
226
- runQuickSearchOnRowGroups: false,
227
+ runQuickSearchOnRowGroups: true,
228
+ runQuickSearchOnPivotColumns: true,
227
229
  clearSearchesOnStartUp: false,
228
230
  quickSearchPlaceholder: 'Search',
229
231
  filterResultsAfterQuickSearch: false,
@@ -11,6 +11,7 @@ exports.STANDALONE_MODULE_POPUPS = [
11
11
  */
12
12
  exports.DEFAULT_NAVIGATION_ITEMS = [
13
13
  'GridInfo',
14
+ 'ColumnInfo',
14
15
  'Dashboard',
15
16
  'ToolPanel',
16
17
  'StatusBar',
@@ -41,5 +42,5 @@ exports.DEFAULT_NAVIGATION_ITEMS = [
41
42
  'Schedule',
42
43
  'StateManagement',
43
44
  'TeamSharing',
44
- 'Comments',
45
+ 'Notes',
45
46
  ];
@@ -6,7 +6,7 @@ import { AggregateParams } from './scalarAggregationHelper';
6
6
  * List of all the AggregatedScalar Functions available in AdaptableQL
7
7
  */
8
8
  export declare type AggregatedScalarFunctionName = ScalarAggregationFunction | OperandFunction;
9
- export declare type ScalarAggregationFunction = 'SUM' | 'PERCENTAGE' | 'QUANT' | 'AVG' | 'MIN' | 'MAX' | 'COUNT' | 'CUMUL';
9
+ export declare type ScalarAggregationFunction = 'SUM' | 'PERCENTAGE' | 'QUANT' | 'QUARTILE' | 'PERCENTILE' | 'AVG' | 'MIN' | 'MAX' | 'COUNT' | 'CUMUL';
10
10
  declare type OperandFunction = 'COL' | 'OVER' | 'GROUP_BY' | 'WEIGHT';
11
11
  export interface ScalarAggregationParameter extends BaseParameter<'aggregationScalar', ScalarAggregationFunction> {
12
12
  value: AggregatedScalarExpressionEvaluation;
@@ -35,8 +35,9 @@ export interface CumulatedAggregationValue {
35
35
  numberOfCumulatedValues?: number;
36
36
  totalAggregationValue?: number;
37
37
  }
38
- export declare const cumulativeAggregatedExpressionFunctions: AggregatedScalarFunctionName[];
39
38
  export declare const aggregatedExpressionFunctions: AggregatedScalarFunctionName[];
39
+ export declare const cumulativeAggregatedExpressionFunctions: AggregatedScalarFunctionName[];
40
+ export declare const quantileAggregatedExpressionFunctions: AggregatedScalarFunctionName[];
40
41
  export declare const aggregatedScalarExpressionFunctions: Record<AggregatedScalarFunctionName, ExpressionFunction>;
41
42
  export declare const aggregatedScalarExpressionFunctionNames: AggregatedScalarFunctionName[];
42
43
  export {};
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.aggregatedScalarExpressionFunctionNames = exports.aggregatedScalarExpressionFunctions = exports.aggregatedExpressionFunctions = exports.cumulativeAggregatedExpressionFunctions = void 0;
3
+ exports.aggregatedScalarExpressionFunctionNames = exports.aggregatedScalarExpressionFunctions = exports.quantileAggregatedExpressionFunctions = exports.cumulativeAggregatedExpressionFunctions = exports.aggregatedExpressionFunctions = void 0;
4
4
  const expressionFunctionUtils_1 = require("./expressionFunctionUtils");
5
5
  const ExpressionEvaluationError_1 = require("../../parser/src/ExpressionEvaluationError");
6
6
  const TypeExtensions_1 = require("../Extensions/TypeExtensions");
7
- exports.cumulativeAggregatedExpressionFunctions = [
8
- 'CUMUL',
9
- 'OVER',
7
+ exports.aggregatedExpressionFunctions = [
10
8
  'SUM',
11
9
  'PERCENTAGE',
12
10
  'MIN',
@@ -17,18 +15,25 @@ exports.cumulativeAggregatedExpressionFunctions = [
17
15
  'COL',
18
16
  'GROUP_BY',
19
17
  ];
20
- exports.aggregatedExpressionFunctions = [
18
+ exports.cumulativeAggregatedExpressionFunctions = [
19
+ 'CUMUL',
20
+ 'OVER',
21
21
  'SUM',
22
22
  'PERCENTAGE',
23
23
  'MIN',
24
24
  'MAX',
25
- 'QUANT',
26
25
  'AVG',
27
- 'COUNT',
28
26
  'WEIGHT',
29
27
  'COL',
30
28
  'GROUP_BY',
31
29
  ];
30
+ exports.quantileAggregatedExpressionFunctions = [
31
+ 'QUANT',
32
+ 'QUARTILE',
33
+ 'PERCENTILE',
34
+ 'COL',
35
+ 'GROUP_BY',
36
+ ];
32
37
  exports.aggregatedScalarExpressionFunctions = {
33
38
  CUMUL: {
34
39
  handler(args, context) {
@@ -350,10 +355,11 @@ exports.aggregatedScalarExpressionFunctions = {
350
355
  const quantileColumnParameter = (0, expressionFunctionUtils_1.extractColumnParameter)('QUANT', args);
351
356
  const quantileColumnName = quantileColumnParameter.value;
352
357
  (0, expressionFunctionUtils_1.validateColumnType)(quantileColumnName, ['Number'], 'QUANT', context.adaptableApi);
353
- const qNumber = args.find((arg) => typeof arg === 'number');
354
- if (qNumber == null || qNumber <= 0) {
355
- throw new ExpressionEvaluationError_1.ExpressionEvaluationError('QUANT', 'expects a positive number as argument');
358
+ const qNumberCandidates = args.filter((arg) => typeof arg === 'number');
359
+ if (qNumberCandidates.length !== 1) {
360
+ throw new ExpressionEvaluationError_1.ExpressionEvaluationError('QUANT', 'expects a single positive numeric argument as q-quantile');
356
361
  }
362
+ const qNumber = qNumberCandidates[0];
357
363
  const groupByOperand = (0, expressionFunctionUtils_1.extractParameter)('QUANT', 'operand', ['GROUP_BY'], args, {
358
364
  isOptional: true,
359
365
  });
@@ -476,6 +482,26 @@ exports.aggregatedScalarExpressionFunctions = {
476
482
  ],
477
483
  category: 'aggregation',
478
484
  },
485
+ QUARTILE: {
486
+ handler(args, context) {
487
+ const quartileArgs = [...args, 4];
488
+ return exports.aggregatedScalarExpressionFunctions.QUANT.handler(quartileArgs, context);
489
+ },
490
+ description: 'Calculates the Quartiles of the given group and displays which quartile the given value is in',
491
+ signatures: ['QUARTILE( [colName])', 'QUARTILE( [colName1], GROUP_BY([colName2]) )'],
492
+ examples: ['QUARTILE( [col1], 5)', 'QUARTILE( [col1], 4, GROUP_BY([col2]) )'],
493
+ category: 'aggregation',
494
+ },
495
+ PERCENTILE: {
496
+ handler(args, context) {
497
+ const quartileArgs = [...args, 100];
498
+ return exports.aggregatedScalarExpressionFunctions.QUANT.handler(quartileArgs, context);
499
+ },
500
+ description: 'Calculates the Percentile of the given group and displays which percentile the given value is in',
501
+ signatures: ['PERCENTILE( [colName])', 'PERCENTILE( [colName1], GROUP_BY([colName2]) )'],
502
+ examples: ['PERCENTILE( [col1], 5)', 'PERCENTILE( [col1], 4, GROUP_BY([col2]) )'],
503
+ category: 'aggregation',
504
+ },
479
505
  COUNT: {
480
506
  handler(args, context) {
481
507
  const countColumnParameter = (0, expressionFunctionUtils_1.extractColumnParameter)('COUNT', args);
@@ -8,3 +8,4 @@
8
8
  * @returns
9
9
  */
10
10
  export declare function setInPath<T>(obj: any, path: string[], value: any): T;
11
+ export declare function isObjectEmpty(obj?: any): boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setInPath = void 0;
3
+ exports.isObjectEmpty = exports.setInPath = void 0;
4
4
  /**
5
5
  * Returns a new object with the property updated.
6
6
  * The property is identified by the path.
@@ -18,3 +18,7 @@ function setInPath(obj, path, value) {
18
18
  return Object.assign(Object.assign({}, obj), { [path[0]]: setInPath((_a = obj === null || obj === void 0 ? void 0 : obj[path[0]]) !== null && _a !== void 0 ? _a : {}, path.slice(1), value) });
19
19
  }
20
20
  exports.setInPath = setInPath;
21
+ function isObjectEmpty(obj) {
22
+ return !obj || Object.keys(obj).length === 0;
23
+ }
24
+ exports.isObjectEmpty = isObjectEmpty;
@@ -23,7 +23,7 @@ import { AdaptableMessageType } from '../PredefinedConfig/Common/AdaptableMessag
23
23
  import { SystemStatusMessageInfo } from '../PredefinedConfig/Common/SystemStatusMessageInfo';
24
24
  import { NotificationsOptions } from '../AdaptableOptions/NotificationsOptions';
25
25
  import { CellSummmary } from '../PredefinedConfig/Common/CellSummary';
26
- import { AdaptableTheme, ChartDefinition, ColumnFilter, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SystemFilterPredicateId } from '../types';
26
+ import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SystemFilterPredicateId } from '../types';
27
27
  import { IRowNode } from '@ag-grid-community/core';
28
28
  import { AdaptableApi, BadgeStyleDefinition } from '../../types';
29
29
  import { ToastOptions } from '../components/Toastify';
@@ -67,6 +67,7 @@ export declare function CreateEmptyStyledColumn(): StyledColumn;
67
67
  export declare function CreateDefaultStyledColumnBadge(): BadgeStyleDefinition;
68
68
  export declare function CreateEmptyChartDefinition(chartDefinition?: ChartDefinition): ChartDefinition;
69
69
  export declare function CreateCustomDisplayFormatterContext(value: any, node: IRowNode, abColumn: AdaptableColumn, api: AdaptableApi): CustomDisplayFormatterContext;
70
+ export declare const createBaseContext: (adaptableApi: AdaptableApi) => BaseContext;
70
71
  export declare function CreateEmptyTheme(name?: string): AdaptableTheme;
71
72
  export declare function CreateToastOptions(notificationsOptions: NotificationsOptions, { onClose, containerId }: {
72
73
  onClose?: VoidFunction;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectFactory = exports.CreateToastOptions = exports.CreateEmptyTheme = exports.CreateCustomDisplayFormatterContext = exports.CreateEmptyChartDefinition = exports.CreateDefaultStyledColumnBadge = exports.CreateEmptyStyledColumn = exports.CreateColumnFilter = exports.CreateEmptyCellSummmary = exports.CreateSystemStatusMessageInfo = exports.CreateEmptyStyle = exports.CreateEmptyLayout = exports.CreateEmptyFreeTextColumn = exports.CreateEmptyFormatColumn = exports.CreateEmptyShortcut = exports.CreateEmptySchedule = exports.CreateReportSchedule = exports.CreateGlue42Schedule = exports.CreateIPushPullSchedule = exports.CreateEmptyOpenFinSchedule = exports.CreateEmptyGlue42Schedule = exports.CreateEmptyIPushPullSchedule = exports.CreateEmptyOpenFinReport = exports.CreateEmptyGlue42Report = exports.CreateEmptyIPushPullReport = exports.CreateEmptyReportSchedule = exports.CreateEmptyReminderSchedule = exports.CreateEmptyBaseSchedule = exports.CreateExternalReport = exports.CreateEmptyReport = exports.CreateInternalAlertDefinitionForMessages = exports.CreateEmptyFlashingCellDefinition = exports.CreateEmptyAlertDefinition = exports.CreateRowChangedAlert = exports.CreateCellChangedAlert = exports.CreateGenericAlert = exports.CreateEmptyPlusMinusNudge = exports.CreateEmptyNamedQuery = exports.CreateEmptyCalculatedColumn = exports.CreateEmptyCustomSort = void 0;
3
+ exports.ObjectFactory = exports.CreateToastOptions = exports.CreateEmptyTheme = exports.createBaseContext = exports.CreateCustomDisplayFormatterContext = exports.CreateEmptyChartDefinition = exports.CreateDefaultStyledColumnBadge = exports.CreateEmptyStyledColumn = exports.CreateColumnFilter = exports.CreateEmptyCellSummmary = exports.CreateSystemStatusMessageInfo = exports.CreateEmptyStyle = exports.CreateEmptyLayout = exports.CreateEmptyFreeTextColumn = exports.CreateEmptyFormatColumn = exports.CreateEmptyShortcut = exports.CreateEmptySchedule = exports.CreateReportSchedule = exports.CreateGlue42Schedule = exports.CreateIPushPullSchedule = exports.CreateEmptyOpenFinSchedule = exports.CreateEmptyGlue42Schedule = exports.CreateEmptyIPushPullSchedule = exports.CreateEmptyOpenFinReport = exports.CreateEmptyGlue42Report = exports.CreateEmptyIPushPullReport = exports.CreateEmptyReportSchedule = exports.CreateEmptyReminderSchedule = exports.CreateEmptyBaseSchedule = exports.CreateExternalReport = exports.CreateEmptyReport = exports.CreateInternalAlertDefinitionForMessages = exports.CreateEmptyFlashingCellDefinition = exports.CreateEmptyAlertDefinition = exports.CreateRowChangedAlert = exports.CreateCellChangedAlert = exports.CreateGenericAlert = exports.CreateEmptyPlusMinusNudge = exports.CreateEmptyNamedQuery = exports.CreateEmptyCalculatedColumn = exports.CreateEmptyCustomSort = void 0;
4
4
  const Enums_1 = require("../PredefinedConfig/Common/Enums");
5
5
  const GeneralConstants_1 = require("./Constants/GeneralConstants");
6
6
  const Uuid_1 = require("../PredefinedConfig/Uuid");
@@ -348,7 +348,7 @@ function CreateEmptyCellSummmary() {
348
348
  Min: undefined,
349
349
  Count: undefined,
350
350
  Std_Deviation: undefined,
351
- Only: undefined
351
+ Only: undefined,
352
352
  };
353
353
  }
354
354
  exports.CreateEmptyCellSummmary = CreateEmptyCellSummmary;
@@ -395,6 +395,14 @@ function CreateCustomDisplayFormatterContext(value, node, abColumn, api) {
395
395
  };
396
396
  }
397
397
  exports.CreateCustomDisplayFormatterContext = CreateCustomDisplayFormatterContext;
398
+ const createBaseContext = (adaptableApi) => {
399
+ return {
400
+ adaptableApi: adaptableApi,
401
+ userName: adaptableApi.optionsApi.getUserName(),
402
+ adaptableId: adaptableApi.optionsApi.getAdaptableId(),
403
+ };
404
+ };
405
+ exports.createBaseContext = createBaseContext;
398
406
  function CreateEmptyTheme(name) {
399
407
  return {
400
408
  Uuid: (0, Uuid_1.createUuid)(),
@@ -8,5 +8,9 @@ export interface IEntitlementService extends IAdaptableService {
8
8
  isModuleFullEntitlement(adaptableModule: AdaptableModule): boolean;
9
9
  isModuleReadOnlyEntitlement(adaptableModule: AdaptableModule): boolean;
10
10
  getEntitlementAccessLevelForModule(adaptableModule: AdaptableModule): AccessLevel;
11
+ /**
12
+ * No longer used
13
+ * @deprecated
14
+ */
11
15
  isGridInfoSectionVisible(section: GridInfoSection): boolean;
12
16
  }
@@ -37,9 +37,9 @@ export interface IQueryLanguageService extends IAdaptableService {
37
37
  getModuleExpressionFunctionsMap(module: AdaptableModule): ModuleExpressionFunctionsMap;
38
38
  getColumnsFromExpression(input: string): string[];
39
39
  getNamedQueryNamesFromExpression(input: string): string[];
40
- isCumulativeAggregate(input: string): boolean;
41
40
  evaluateCustomQueryVariable(functionName: string, args?: any[]): any;
42
41
  getExpressionWithColumnFriendlyNames(expression: string): string;
42
+ getNodesFromExpression(input: string, nodeType: string): string[];
43
43
  }
44
44
  export interface ModuleExpressionFunctionsMap {
45
45
  booleanFunctions?: ExpressionFunctionMap<BooleanFunctionName>;
@@ -40,12 +40,11 @@ export declare class QueryLanguageService implements IQueryLanguageService {
40
40
  computeAggregatedBooleanValue(expression: string, module: AdaptableModule): boolean;
41
41
  getColumnsFromExpression(input?: string): string[];
42
42
  getNamedQueryNamesFromExpression(input?: string): string[];
43
- isCumulativeAggregate(input: string): boolean;
44
43
  getExpressionWithColumnFriendlyNames(expression?: string): string;
45
44
  getModuleExpressionFunctionsMap(module: AdaptableModule): ModuleExpressionFunctionsMap;
46
45
  private extractMappedExpressionFunctions;
47
46
  evaluateCustomQueryVariable(functionName: string, args?: any[]): any;
48
47
  private getBooleanAndScalarFunctions;
49
48
  private getExpressionCacheKey;
50
- private getNodesFromExpression;
49
+ getNodesFromExpression(input: string, nodeType: string): string[];
51
50
  }
@@ -93,8 +93,7 @@ class QueryLanguageService {
93
93
  }
94
94
  const force = (_a = config === null || config === void 0 ? void 0 : config.force) !== null && _a !== void 0 ? _a : false;
95
95
  // see if validation should be performed
96
- if (!this.adaptableApi.optionsApi.getExpressionOptions()
97
- .performExpressionValidation &&
96
+ if (!this.adaptableApi.optionsApi.getExpressionOptions().performExpressionValidation &&
98
97
  !force) {
99
98
  const result = { isValid: true, errorMessage: '' };
100
99
  this.cacheBooleanValidation.set(cacheKey, result);
@@ -266,10 +265,6 @@ class QueryLanguageService {
266
265
  getNamedQueryNamesFromExpression(input = '') {
267
266
  return this.getNodesFromExpression(input, 'QUERY');
268
267
  }
269
- isCumulativeAggregate(input) {
270
- var _a;
271
- return !!((_a = this.getNodesFromExpression(input, 'CUMUL')) === null || _a === void 0 ? void 0 : _a.length);
272
- }
273
268
  getExpressionWithColumnFriendlyNames(expression = '') {
274
269
  let result = expression;
275
270
  const columnIds = this.getColumnsFromExpression(expression);
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
5
5
  const ArrayExtensions_1 = require("../Extensions/ArrayExtensions");
6
6
  const StringExtensions_1 = tslib_1.__importDefault(require("../Extensions/StringExtensions"));
7
7
  const ModuleConstants_1 = require("../Constants/ModuleConstants");
8
- const ObjectFactory_1 = tslib_1.__importDefault(require("../ObjectFactory"));
9
8
  const GeneralConstants_1 = require("../Constants/GeneralConstants");
10
9
  class ValidationService {
11
10
  constructor(adaptableApi) {
@@ -53,10 +52,21 @@ class ValidationService {
53
52
  cellDataChangedInfo: cellDataChangedInfo,
54
53
  };
55
54
  this.adaptableApi.alertApi.internalApi.publishAlertFiredEvent(alert);
56
- failedRules.forEach((alertDefinition) => {
57
- const alert = ObjectFactory_1.default.CreateCellChangedAlert(cellDataChangedInfo.column.friendlyName, this.adaptableApi.alertApi.internalApi.getAlertDescription(alertDefinition, cellDataChangedInfo), alertDefinition, cellDataChangedInfo);
58
- this.adaptableApi.alertApi.showAdaptableAlert(alert);
59
- });
55
+ // This is not needed because the change event is triggered regardless
56
+ // if the edit is succesful. This is because (I think) Adaptable uses a non-standard way ot detecting data changes.
57
+ // https://github.com/AdaptableTools/adaptable/issues/2197
58
+ // failedRules.forEach((alertDefinition) => {
59
+ // const alert: AdaptableAlert = ObjectFactory.CreateCellChangedAlert(
60
+ // cellDataChangedInfo.column.friendlyName,
61
+ // this.adaptableApi.alertApi.internalApi.getAlertDescription(
62
+ // alertDefinition,
63
+ // cellDataChangedInfo
64
+ // ),
65
+ // alertDefinition,
66
+ // cellDataChangedInfo
67
+ // );
68
+ // this.adaptableApi.alertApi.showAdaptableAlert(alert);
69
+ // });
60
70
  return false;
61
71
  }
62
72
  return true;