@adaptabletools/adaptable 11.0.0-canary.6 → 11.0.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 (164) hide show
  1. package/README.md +4 -4
  2. package/agGrid.d.ts +5 -4
  3. package/agGrid.js +7 -5
  4. package/base.css +3 -4
  5. package/bundle.cjs.js +120 -115
  6. package/index.css +3 -4
  7. package/package.json +1 -1
  8. package/publishTimestamp.d.ts +1 -1
  9. package/publishTimestamp.js +1 -1
  10. package/src/AdaptableInterfaces/IAdaptable.d.ts +3 -1
  11. package/src/AdaptableOptions/AdaptableOptions.d.ts +3 -5
  12. package/src/AdaptableOptions/{QueryLanguageOptions.d.ts → AdaptableQLOptions.d.ts} +34 -2
  13. package/src/AdaptableOptions/{QueryLanguageOptions.js → AdaptableQLOptions.js} +0 -0
  14. package/src/AdaptableOptions/FilterOptions.d.ts +4 -0
  15. package/src/AdaptableOptions/GeneralOptions.d.ts +0 -7
  16. package/src/AdaptableOptions/SearchOptions.d.ts +0 -9
  17. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +7 -6
  18. package/src/AdaptableOptions/StateOptions.d.ts +7 -7
  19. package/src/AdaptableOptions/ToolPanelOptions.d.ts +2 -2
  20. package/src/Api/CalculatedColumnApi.d.ts +2 -9
  21. package/src/Api/GridApi.d.ts +12 -3
  22. package/src/Api/Implementation/AlertApiImpl.js +1 -2
  23. package/src/Api/Implementation/ApiBase.d.ts +3 -2
  24. package/src/Api/Implementation/ApiBase.js +5 -2
  25. package/src/Api/Implementation/CalculatedColumnApiImpl.js +3 -4
  26. package/src/Api/Implementation/ColumnApiImpl.js +1 -1
  27. package/src/Api/Implementation/GridApiImpl.d.ts +2 -0
  28. package/src/Api/Implementation/GridApiImpl.js +41 -21
  29. package/src/Api/Implementation/InternalApiImpl.d.ts +2 -3
  30. package/src/Api/Implementation/InternalApiImpl.js +5 -4
  31. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +3 -0
  32. package/src/Api/Implementation/QueryLanguageApiImpl.js +15 -2
  33. package/src/Api/Implementation/SettingsPanelApiImpl.js +1 -1
  34. package/src/Api/Implementation/ToolPanelApiImpl.js +1 -1
  35. package/src/Api/InternalApi.d.ts +2 -3
  36. package/src/Api/QueryApi.d.ts +2 -2
  37. package/src/Api/QueryLanguageApi.d.ts +13 -0
  38. package/src/Api/SettingsPanelApi.d.ts +4 -5
  39. package/src/PredefinedConfig/AlertState.d.ts +5 -1
  40. package/src/PredefinedConfig/CalculatedColumnState.d.ts +8 -3
  41. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +1 -1
  42. package/src/PredefinedConfig/Common/AdaptableFormat.d.ts +3 -0
  43. package/src/PredefinedConfig/Common/AdaptableQuery.d.ts +0 -1
  44. package/src/PredefinedConfig/Common/AdaptableQuery.js +1 -5
  45. package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +1 -1
  46. package/src/PredefinedConfig/Common/Types.d.ts +6 -1
  47. package/src/PredefinedConfig/Common/Types.js +1 -0
  48. package/src/PredefinedConfig/ConditionalStyleState.d.ts +2 -2
  49. package/src/PredefinedConfig/FormatColumnState.d.ts +15 -0
  50. package/src/PredefinedConfig/PlusMinusState.d.ts +1 -1
  51. package/src/PredefinedConfig/Selection/GridCellRange.d.ts +3 -1
  52. package/src/PredefinedConfig/ToolPanelState.d.ts +3 -0
  53. package/src/Redux/ActionsReducers/AlertRedux.d.ts +1 -1
  54. package/src/Redux/ActionsReducers/AlertRedux.js +4 -4
  55. package/src/Redux/ActionsReducers/ConditionalStyleRedux.d.ts +1 -1
  56. package/src/Redux/ActionsReducers/ConditionalStyleRedux.js +4 -4
  57. package/src/Redux/ActionsReducers/CustomSortRedux.d.ts +1 -1
  58. package/src/Redux/ActionsReducers/CustomSortRedux.js +4 -4
  59. package/src/Redux/ActionsReducers/FlashingCellRedux.d.ts +12 -12
  60. package/src/Redux/ActionsReducers/FlashingCellRedux.js +33 -29
  61. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +1 -1
  62. package/src/Redux/ActionsReducers/FormatColumnRedux.js +4 -4
  63. package/src/Redux/ActionsReducers/PlusMinusRedux.d.ts +1 -1
  64. package/src/Redux/ActionsReducers/PlusMinusRedux.js +4 -4
  65. package/src/Redux/ActionsReducers/ScheduleRedux.d.ts +5 -5
  66. package/src/Redux/ActionsReducers/ScheduleRedux.js +16 -16
  67. package/src/Redux/ActionsReducers/ShortcutRedux.d.ts +1 -1
  68. package/src/Redux/ActionsReducers/ShortcutRedux.js +4 -4
  69. package/src/Redux/ActionsReducers/SystemRedux.js +1 -1
  70. package/src/Redux/Store/AdaptableReduxMerger.js +1 -1
  71. package/src/Redux/Store/AdaptableStore.js +47 -22
  72. package/src/Strategy/AlertModule.js +4 -4
  73. package/src/Strategy/CalculatedColumnModule.js +4 -4
  74. package/src/Strategy/ChartingModule.d.ts +3 -3
  75. package/src/Strategy/ChartingModule.js +2 -2
  76. package/src/Strategy/FlashingCellModule.js +4 -4
  77. package/src/Strategy/FreeTextColumnModule.js +1 -0
  78. package/src/Strategy/{SetingsPanelModule.d.ts → SettingsPanelModule.d.ts} +0 -0
  79. package/src/Strategy/{SetingsPanelModule.js → SettingsPanelModule.js} +0 -0
  80. package/src/Strategy/Utilities/getAlertPreviewViewItems.js +1 -1
  81. package/src/Strategy/Utilities/getExpressionViewItems.d.ts +2 -2
  82. package/src/Strategy/Utilities/getExpressionViewItems.js +2 -1
  83. package/src/Strategy/Utilities/getRuleViewItems.js +1 -2
  84. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +3 -2
  85. package/src/Utilities/Constants/DocumentationLinkConstants.js +12 -10
  86. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +18 -13
  87. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +1 -1
  88. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +18 -1
  89. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +311 -14
  90. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +2 -2
  91. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +8 -8
  92. package/src/Utilities/ExpressionFunctions/groupingMap.d.ts +2 -3
  93. package/src/Utilities/ExpressionFunctions/groupingMap.js +3 -2
  94. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -2
  95. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.d.ts +33 -0
  96. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +154 -0
  97. package/src/Utilities/Helpers/AdaptableHelper.js +2 -1
  98. package/src/Utilities/Services/AlertService.js +5 -1
  99. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +7 -3
  100. package/src/Utilities/Services/CalculatedColumnExpressionService.js +143 -18
  101. package/src/Utilities/Services/Interface/IAdaptableService.d.ts +1 -1
  102. package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +6 -3
  103. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +7 -1
  104. package/src/Utilities/Services/LicenseService.js +1 -1
  105. package/src/Utilities/Services/ModuleService.js +33 -40
  106. package/src/Utilities/Services/QueryLanguageService.d.ts +9 -2
  107. package/src/Utilities/Services/QueryLanguageService.js +81 -22
  108. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationForm.js +5 -3
  109. package/src/View/Alert/Wizard/AlertDisplayWizardSection.d.ts +1 -0
  110. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +2 -2
  111. package/src/View/Alert/Wizard/isValidAlertRules.js +3 -3
  112. package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.js +3 -3
  113. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +2 -4
  114. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +43 -12
  115. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -2
  116. package/src/View/ColorPicker.d.ts +1 -1
  117. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  118. package/src/View/Components/AdaptableInput/index.d.ts +1 -1
  119. package/src/View/Components/Buttons/ButtonDelete.d.ts +1 -1
  120. package/src/View/Components/EntityRulesEditor/index.d.ts +1 -1
  121. package/src/View/Components/EntityRulesEditor/index.js +3 -4
  122. package/src/View/Components/Forms/AdaptableFormControlTextClear.d.ts +1 -1
  123. package/src/View/Components/Panels/PanelWithImage.d.ts +1 -1
  124. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +4 -8
  125. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +1 -2
  126. package/src/View/Components/Popups/AdaptablePopupAlert.d.ts +1 -0
  127. package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
  128. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  129. package/src/View/Components/ValueSelector/index.js +1 -1
  130. package/src/View/Dashboard/DashboardPopup.js +1 -1
  131. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
  132. package/src/View/Layout/Wizard/LayoutEditor/index.js +1 -1
  133. package/src/View/License/LicenseWatermark.js +1 -1
  134. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +1 -1
  135. package/src/View/Query/Wizard/NamedQueryExpressionWizardSection.js +2 -2
  136. package/src/View/Schedule/Wizard/ScheduleWizard.js +3 -3
  137. package/src/agGrid/Adaptable.d.ts +4 -1
  138. package/src/agGrid/Adaptable.js +71 -48
  139. package/src/agGrid/CheckboxRenderer.d.ts +8 -1
  140. package/src/agGrid/CheckboxRenderer.js +18 -3
  141. package/src/agGrid/agGridHelper.d.ts +1 -1
  142. package/src/agGrid/agGridHelper.js +9 -10
  143. package/src/components/AdaptableFormComponent/AdaptableFormComponent.d.ts +4 -2
  144. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +4 -4
  145. package/src/components/Datepicker/index.d.ts +1 -1
  146. package/src/components/ExpressionEditor/EditorInput.d.ts +1 -1
  147. package/src/components/ExpressionEditor/EditorInput.js +5 -2
  148. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  149. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.d.ts +2 -0
  150. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +45 -0
  151. package/src/components/ExpressionEditor/editorButtonsReactive.js +8 -13
  152. package/src/components/ExpressionEditor/index.d.ts +2 -1
  153. package/src/components/ExpressionEditor/index.js +9 -2
  154. package/src/components/Input/index.d.ts +1 -1
  155. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  156. package/src/components/Logo/index.js +8 -7
  157. package/src/components/PopupWithFooter.d.ts +1 -1
  158. package/src/components/Textarea/index.d.ts +1 -1
  159. package/src/components/icons/calculated-column.js +2 -1
  160. package/src/metamodel/adaptable.metamodel.d.ts +235 -41
  161. package/src/metamodel/adaptable.metamodel.js +435 -149
  162. package/src/types.d.ts +5 -5
  163. package/version.d.ts +1 -1
  164. package/version.js +1 -1
@@ -315,11 +315,11 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
315
315
  return ret;
316
316
  }
317
317
  /*******************
318
- * FLASHING ALERT ACTIONS
318
+ * FLASHING CELL ACTIONS
319
319
  *******************/
320
320
  case SystemRedux.SYSTEM_FLASHING_CELL_ADD:
321
321
  case SystemRedux.SYSTEM_FLASHING_CELL_DELETE: {
322
- const { flashingCell: FlashingCell } = action;
322
+ const { flashingCell: FlashingCell, } = action;
323
323
  const { dataChangedInfo } = FlashingCell;
324
324
  let ret = next(action);
325
325
  if (dataChangedInfo) {
@@ -341,14 +341,14 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
341
341
  case AlertRedux.ALERT_DEFINITION_ADD:
342
342
  case AlertRedux.ALERT_DEFINITION_EDIT:
343
343
  case AlertRedux.ALERT_DEFINITION_DELETE:
344
- case AlertRedux.ALERT_DEFINITION_UN_SUSPEND:
344
+ case AlertRedux.ALERT_DEFINITION_UNSUSPEND:
345
345
  case AlertRedux.ALERT_DEFINITION_SUSPEND: {
346
346
  const returnAction = next(action);
347
347
  const alertDefinition = returnAction
348
348
  .alertDefinition;
349
349
  if (returnAction.type === AlertRedux.ALERT_DEFINITION_ADD ||
350
350
  returnAction.type === AlertRedux.ALERT_DEFINITION_EDIT ||
351
- returnAction.type === AlertRedux.ALERT_DEFINITION_UN_SUSPEND) {
351
+ returnAction.type === AlertRedux.ALERT_DEFINITION_UNSUSPEND) {
352
352
  // in case of edit, the existing reactive alert will be deleted and recreated
353
353
  adaptable.api.internalApi.getAlertService().createReactiveAlert(alertDefinition);
354
354
  }
@@ -363,11 +363,11 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
363
363
  /*******************
364
364
  * Flashing Cell ACTIONS
365
365
  *******************/
366
- case FlashingCellRedux.FLASHING_ALERT_DEFINITION_ADD:
367
- case FlashingCellRedux.FLASHING_ALERT_DEFINITION_EDIT:
368
- case FlashingCellRedux.FLASHING_ALERT_DEFINITION_DELETE:
369
- case FlashingCellRedux.FLASHING_ALERT_DEFINITION_UN_SUSPEND:
370
- case FlashingCellRedux.FLASHING_ALERT_DEFINITION_SUSPEND: {
366
+ case FlashingCellRedux.FLASHING_CELL_DEFINITION_ADD:
367
+ case FlashingCellRedux.FLASHING_CELL_DEFINITION_EDIT:
368
+ case FlashingCellRedux.FLASHING_CELL_DEFINITION_DELETE:
369
+ case FlashingCellRedux.FLASHING_CELL_DEFINITION_UNSUSPEND:
370
+ case FlashingCellRedux.FLASHING_CELL_DEFINITION_SUSPEND: {
371
371
  const returnAction = next(action);
372
372
  // called also for rendered column actions, see RENDERED COLUMN ACTIONS block
373
373
  adaptable.setupColumns();
@@ -496,6 +496,21 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
496
496
  /*******************
497
497
  * SPECIAL COLUMN ACTIONS
498
498
  *******************/
499
+ case CalculatedColumnRedux.CALCULATED_COLUMN_READY: {
500
+ // create aggregated scalar columns at grid startup
501
+ const aggregatedCalculatedColumns = adaptable.api.calculatedColumnApi
502
+ .getAllCalculatedColumn()
503
+ .filter((calculatedColumn) => { var _a; return (_a = calculatedColumn.Query) === null || _a === void 0 ? void 0 : _a.AggregatedScalarExpression; });
504
+ aggregatedCalculatedColumns.forEach((calculatedColumn) => {
505
+ adaptable.api.internalApi
506
+ .getCalculatedColumnExpressionService()
507
+ .createAggregatedScalarCalculatedColumn(calculatedColumn);
508
+ });
509
+ // refresh calcualted columns
510
+ const aggCalculatedColumnIds = aggregatedCalculatedColumns.map((calculatedColumn) => calculatedColumn.ColumnId);
511
+ adaptable.refreshCells(null, aggCalculatedColumnIds, true);
512
+ return;
513
+ }
499
514
  /**
500
515
  * Use Case: We have added / edited / deleted a Special Column (i.e. one not in initial ColumnDefs)
501
516
  * Action: We update the Special ColumnDefs
@@ -504,7 +519,14 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
504
519
  case FreeTextColumnRedux.FREE_TEXT_COLUMN_EDIT:
505
520
  case CalculatedColumnRedux.CALCULATED_COLUMN_ADD:
506
521
  case CalculatedColumnRedux.CALCULATED_COLUMN_EDIT: {
507
- const returnAction = next(action);
522
+ const actionTyped = action;
523
+ const returnAction = next(actionTyped);
524
+ if (returnAction.type === CalculatedColumnRedux.CALCULATED_COLUMN_ADD ||
525
+ returnAction.type === CalculatedColumnRedux.CALCULATED_COLUMN_EDIT) {
526
+ adaptable.api.internalApi
527
+ .getCalculatedColumnExpressionService()
528
+ .createAggregatedScalarCalculatedColumn(returnAction.calculatedColumn);
529
+ }
508
530
  adaptable.updateColDefsForSpecialColumns();
509
531
  return returnAction;
510
532
  }
@@ -524,7 +546,10 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
524
546
  }));
525
547
  return;
526
548
  }
527
- const returnAction = next(action);
549
+ const returnAction = next(actionTyped);
550
+ adaptable.api.internalApi
551
+ .getCalculatedColumnExpressionService()
552
+ .destroyAggregatedScalarCalculatedColumn(returnAction.calculatedColumn);
528
553
  adaptable.updateColDefsForSpecialColumns();
529
554
  return returnAction;
530
555
  }
@@ -560,16 +585,16 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
560
585
  case FormatColumnRedux.FORMAT_COLUMN_EDIT:
561
586
  case FormatColumnRedux.FORMAT_COLUMN_DELETE:
562
587
  case FormatColumnRedux.FORMAT_COLUMN_SUSPEND:
563
- case FormatColumnRedux.FORMAT_COLUMN_UN_SUSPEND:
588
+ case FormatColumnRedux.FORMAT_COLUMN_UNSUSPEND:
564
589
  case CustomSortRedux.CUSTOM_SORT_ADD:
565
590
  case CustomSortRedux.CUSTOM_SORT_EDIT:
566
591
  case CustomSortRedux.CUSTOM_SORT_DELETE:
567
592
  case CustomSortRedux.CUSTOM_SORT_SUSPEND:
568
- case CustomSortRedux.CUSTOM_SORT_UN_SUSPEND:
593
+ case CustomSortRedux.CUSTOM_SORT_UNSUSPEND:
569
594
  case ConditionalStyleRedux.CONDITIONAL_STYLE_ADD:
570
595
  case ConditionalStyleRedux.CONDITIONAL_STYLE_EDIT:
571
596
  case ConditionalStyleRedux.CONDITIONAL_STYLE_SUSPEND:
572
- case ConditionalStyleRedux.CONDITIONAL_STYLE_UN_SUSPEND:
597
+ case ConditionalStyleRedux.CONDITIONAL_STYLE_UNSUSPEND:
573
598
  case ConditionalStyleRedux.CONDITIONAL_STYLE_DELETE: {
574
599
  const returnAction = next(action);
575
600
  // called also for alert actions, see ALERT ACTIONS block
@@ -667,28 +692,28 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
667
692
  case ScheduleRedux.REMINDER_SCHEDULE_ADD:
668
693
  case ScheduleRedux.REMINDER_SCHEDULE_EDIT:
669
694
  case ScheduleRedux.REMINDER_SCHEDULE_DELETE:
670
- case ScheduleRedux.REMINDER_SCHEDULE_UN_SUSPEND:
695
+ case ScheduleRedux.REMINDER_SCHEDULE_UNSUSPEND:
671
696
  case ScheduleRedux.REMINDER_SCHEDULE_SUSPEND:
672
697
  case ScheduleRedux.REPORT_SCHEDULE_ADD:
673
698
  case ScheduleRedux.REPORT_SCHEDULE_EDIT:
674
699
  case ScheduleRedux.REPORT_SCHEDULE_DELETE:
675
700
  case ScheduleRedux.REPORT_SCHEDULE_SUSPEND:
676
- case ScheduleRedux.REPORT_SCHEDULE_UN_SUSPEND:
701
+ case ScheduleRedux.REPORT_SCHEDULE_UNSUSPEND:
677
702
  case ScheduleRedux.IPUSHPULL_SCHEDULE_ADD:
678
703
  case ScheduleRedux.IPUSHPULL_SCHEDULE_EDIT:
679
704
  case ScheduleRedux.IPUSHPULL_SCHEDULE_DELETE:
680
705
  case ScheduleRedux.IPUSHPULL_SCHEDULE_SUSPEND:
681
- case ScheduleRedux.IPUSHPULL_SCHEDULE_UN_SUSPEND:
706
+ case ScheduleRedux.IPUSHPULL_SCHEDULE_UNSUSPEND:
682
707
  case ScheduleRedux.GLUE42_SCHEDULE_ADD:
683
708
  case ScheduleRedux.GLUE42_SCHEDULE_EDIT:
684
709
  case ScheduleRedux.GLUE42_SCHEDULE_DELETE:
685
710
  case ScheduleRedux.GLUE42_SCHEDULE_SUSPEND:
686
- case ScheduleRedux.GLUE42_SCHEDULE_UN_SUSPEND:
711
+ case ScheduleRedux.GLUE42_SCHEDULE_UNSUSPEND:
687
712
  case ScheduleRedux.OPENFIN_SCHEDULE_ADD:
688
713
  case ScheduleRedux.OPENFIN_SCHEDULE_EDIT:
689
714
  case ScheduleRedux.OPENFIN_SCHEDULE_DELETE:
690
715
  case ScheduleRedux.OPENFIN_SCHEDULE_SUSPEND:
691
- case ScheduleRedux.OPENFIN_SCHEDULE_UN_SUSPEND: {
716
+ case ScheduleRedux.OPENFIN_SCHEDULE_UNSUSPEND: {
692
717
  let returnAction = next(action);
693
718
  let module = (adaptable.adaptableModules.get(ModuleConstants.ScheduleModuleId));
694
719
  module.setUpSechduleJobs();
@@ -1087,7 +1112,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
1087
1112
  case TeamSharingRedux.TEAMSHARING_IMPORT_ITEM: {
1088
1113
  let returnAction = next(action);
1089
1114
  const actionTyped = action;
1090
- const [importStepActions, needsOverwriteConfirmation] = adaptable.api.internalApi
1115
+ const [importStepActions, needsOverwriteConfirmation,] = adaptable.api.internalApi
1091
1116
  .getTeamSharingService()
1092
1117
  .buildSharedEntityImportActions(actionTyped.SharedEntity);
1093
1118
  const processImportAction = TeamSharingRedux.TeamSharingProcessImport(importStepActions);
@@ -1160,14 +1185,14 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
1160
1185
  .getSharedEntities(adaptableId)
1161
1186
  .then((sharedEntities) => {
1162
1187
  // check if remote server has a newer revision
1163
- const [localRevision, remoteRevision] = adaptable.api.internalApi
1188
+ const [localRevision, remoteRevision,] = adaptable.api.internalApi
1164
1189
  .getTeamSharingService()
1165
1190
  .getSharedEntityLocalAndRemoteRevisions(ChangedAdaptableObject.Uuid, sharedEntities);
1166
1191
  if (remoteRevision > localRevision) {
1167
1192
  // if remote has a newer version, we will NOT overwrite it
1168
1193
  return;
1169
1194
  }
1170
- const [updatedSharedEntities, newActiveEntities] = adaptable.api.internalApi
1195
+ const [updatedSharedEntities, newActiveEntities,] = adaptable.api.internalApi
1171
1196
  .getTeamSharingService()
1172
1197
  .updateActiveSharedEntity(ChangedAdaptableObject, UserName, sharedEntities);
1173
1198
  middlewareAPI.dispatch(TeamSharingRedux.TeamSharingLinkItem(...newActiveEntities));
@@ -20,7 +20,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
20
20
  super(ModuleConstants.AlertModuleId, 'Alert', 'alert', 'AlertPopup', 'Get notified when things happen in Adaptable that you need to know about', api);
21
21
  this.api.internalApi.getDataService().on('DataChanged', (dataChangedInfo) => {
22
22
  if (dataChangedInfo.trigger === 'undo' || dataChangedInfo.trigger === 'aggChange') {
23
- // do NOT handle reverted changes
23
+ // do NOT handle reverted or aggregated changes
24
24
  return;
25
25
  }
26
26
  if (this.api.internalApi.getAdaptableOptions().alertOptions.dataChangeDetectionPolicy ===
@@ -44,7 +44,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
44
44
  return this.api.alertApi.getAlertDefinitions();
45
45
  }
46
46
  getExplicitlyReferencedColumnIds(alertDefinition) {
47
- const queryExpression = AdaptableQuery_1.getAdaptableQueryExpression(alertDefinition.Rule);
47
+ const queryExpression = this.api.queryLanguageApi.getAdaptableQueryExpression(alertDefinition.Rule);
48
48
  if (queryExpression) {
49
49
  return this.api.queryLanguageApi.getColumnsFromExpression(queryExpression);
50
50
  }
@@ -56,7 +56,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
56
56
  return [];
57
57
  }
58
58
  getReferencedNamedQueryNames(alertDefinition) {
59
- const queryExpression = AdaptableQuery_1.getAdaptableQueryExpression(alertDefinition.Rule);
59
+ const queryExpression = this.api.queryLanguageApi.getAdaptableQueryExpression(alertDefinition.Rule);
60
60
  if (!queryExpression) {
61
61
  return [];
62
62
  }
@@ -64,7 +64,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
64
64
  }
65
65
  updateOldConfig() {
66
66
  var _a;
67
- // 1. Make all (new) Flashing Alerts have a Predicate if none exists
67
+ // 1. Make all (new) Flashing Cells have a Predicate if none exists
68
68
  const alertState = this.api.alertApi.getAlertState();
69
69
  const flashingAlertDefinitions = alertState.FlashingAlertDefinitions;
70
70
  const flashingCellDefinitions = this.api.flashingCellApi.getFlashingCellDefinitions();
@@ -33,12 +33,12 @@ class CalculatedColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
33
33
  this.api.calculatedColumnApi.editCalculatedColumns(oldCalculatedColumns);
34
34
  }
35
35
  getExplicitlyReferencedColumnIds(calculatedColumn) {
36
- var _a, _b;
37
- return ((_b = this.api.queryLanguageApi.getColumnsFromExpression((_a = calculatedColumn.Query) === null || _a === void 0 ? void 0 : _a.ScalarExpression)) !== null && _b !== void 0 ? _b : []);
36
+ var _a;
37
+ return ((_a = this.api.queryLanguageApi.getColumnsFromExpression(this.api.queryLanguageApi.getAdaptableQueryExpression(calculatedColumn.Query))) !== null && _a !== void 0 ? _a : []);
38
38
  }
39
39
  getReferencedNamedQueryNames(calculatedColumn) {
40
- var _a, _b;
41
- return ((_b = this.api.queryApi.getReferencedNamedQueryNames((_a = calculatedColumn.Query) === null || _a === void 0 ? void 0 : _a.ScalarExpression)) !== null && _b !== void 0 ? _b : []);
40
+ var _a;
41
+ return ((_a = this.api.queryApi.getReferencedNamedQueryNames(this.api.queryLanguageApi.getAdaptableQueryExpression(calculatedColumn.Query))) !== null && _a !== void 0 ? _a : []);
42
42
  }
43
43
  addColumnMenuItems(column) {
44
44
  if (column && this.isModuleEditable()) {
@@ -1,6 +1,6 @@
1
- import { AdaptableModuleBase } from '@adaptabletools/adaptable/src/Strategy/AdaptableModuleBase';
2
- import { IModule } from '@adaptabletools/adaptable/src/Strategy/Interface/IModule';
3
- import { AdaptableApi } from '@adaptabletools/adaptable/src/Api/AdaptableApi';
1
+ import { IModule } from './Interface/IModule';
2
+ import { AdaptableModuleBase } from './AdaptableModuleBase';
3
+ import { AdaptableApi } from '../Api/AdaptableApi';
4
4
  export declare class ChartingModule extends AdaptableModuleBase implements IModule {
5
5
  constructor(api: AdaptableApi);
6
6
  isModuleAvailable(): boolean;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChartingModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const AdaptableModuleBase_1 = require("@adaptabletools/adaptable/src/Strategy/AdaptableModuleBase");
6
- const ModuleConstants = tslib_1.__importStar(require("@adaptabletools/adaptable/src/Utilities/Constants/ModuleConstants"));
5
+ const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
6
+ const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
7
7
  class ChartingModule extends AdaptableModuleBase_1.AdaptableModuleBase {
8
8
  constructor(api) {
9
9
  super(ModuleConstants.ChartingModuleId, 'Charts', 'chart', 'ChartPopup', 'Create Charts in order to see Adaptable Data visually', api);
@@ -42,7 +42,7 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
42
42
  return this.api.flashingCellApi.getFlashingCellDefinitions();
43
43
  }
44
44
  getExplicitlyReferencedColumnIds(alertDefinition) {
45
- const queryExpression = AdaptableQuery_1.getAdaptableQueryExpression(alertDefinition.Rule);
45
+ const queryExpression = this.api.queryLanguageApi.getAdaptableQueryExpression(alertDefinition.Rule);
46
46
  if (queryExpression) {
47
47
  return this.api.queryLanguageApi.getColumnsFromExpression(queryExpression);
48
48
  }
@@ -54,7 +54,7 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
54
54
  return [];
55
55
  }
56
56
  getReferencedNamedQueryNames(alertDefinition) {
57
- const queryExpression = AdaptableQuery_1.getAdaptableQueryExpression(alertDefinition.Rule);
57
+ const queryExpression = this.api.queryLanguageApi.getAdaptableQueryExpression(alertDefinition.Rule);
58
58
  if (!queryExpression) {
59
59
  return [];
60
60
  }
@@ -92,10 +92,10 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
92
92
  const flashingCellForRow = this.api.internalApi.getAdaptableFlashingCellFor(menuContext.primaryKeyValue);
93
93
  const flashingCellForCell = this.api.internalApi.getAdaptableFlashingCellFor(menuContext.primaryKeyValue, menuContext.adaptableColumn.columnId);
94
94
  if (flashingCellForRow && flashingCellForRow.flashTarget === 'row') {
95
- items.push(this.createColumnMenuItemReduxAction('Clear Flashing Alert for Row', this.moduleInfo.Glyph, SystemRedux.SystemFlashingCellDelete(flashingCellForRow)));
95
+ items.push(this.createColumnMenuItemReduxAction('Clear Flashing Cell for Row', this.moduleInfo.Glyph, SystemRedux.SystemFlashingCellDelete(flashingCellForRow)));
96
96
  }
97
97
  else if (flashingCellForCell && flashingCellForCell.flashTarget === 'cell') {
98
- items.push(this.createColumnMenuItemReduxAction('Clear Flashing Alert for Cell', this.moduleInfo.Glyph, SystemRedux.SystemFlashingCellDelete(flashingCellForCell)));
98
+ items.push(this.createColumnMenuItemReduxAction('Clear Flashing Cell for Cell', this.moduleInfo.Glyph, SystemRedux.SystemFlashingCellDelete(flashingCellForCell)));
99
99
  }
100
100
  }
101
101
  }
@@ -27,6 +27,7 @@ class FreeTextColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
27
27
  for (const freeTextColumn of allFreeTextColumns) {
28
28
  if (!freeTextColumn.DataType) {
29
29
  const updatedFreeTextColumn = Object.assign(Object.assign({}, freeTextColumn), { DataType: 'String' });
30
+ // FIXME AFL add api method to edit multiple columns in one run
30
31
  this.api.freeTextColumnApi.editFreeTextColumn(updatedFreeTextColumn);
31
32
  }
32
33
  }
@@ -13,7 +13,7 @@ exports.getAlertPreviewViewItems = (alert, api) => {
13
13
  if (!((_a = alert === null || alert === void 0 ? void 0 : alert.AlertProperties) === null || _a === void 0 ? void 0 : _a.DisplayNotification)) {
14
14
  return React.createElement(Tag_1.Tag, null, alert.MessageType);
15
15
  }
16
- return React.createElement(AlertDisplayWizardSection_1.AlertPreview, { style: { maxWidth: 400 }, mt: 2, api: api, alertDefinition: alert });
16
+ return (React.createElement(AlertDisplayWizardSection_1.AlertPreview, { focusFirstButton: false, style: { maxWidth: 400 }, mt: 2, api: api, alertDefinition: alert }));
17
17
  },
18
18
  };
19
19
  };
@@ -1,5 +1,5 @@
1
- import { AdaptableScalarQuery } from '../../PredefinedConfig/Common/AdaptableQuery';
2
- export declare const getExpressionViewItems: (query: AdaptableScalarQuery) => {
1
+ import { AdaptableCalculatedColumnQuery } from '../../PredefinedConfig/CalculatedColumnState';
2
+ export declare const getExpressionViewItems: (query: AdaptableCalculatedColumnQuery) => {
3
3
  name: string;
4
4
  values: string[];
5
5
  };
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getExpressionViewItems = void 0;
4
4
  exports.getExpressionViewItems = (query) => {
5
+ var _a;
5
6
  return {
6
7
  name: 'Expression',
7
- values: [query === null || query === void 0 ? void 0 : query.ScalarExpression],
8
+ values: [(_a = query === null || query === void 0 ? void 0 : query.ScalarExpression) !== null && _a !== void 0 ? _a : query === null || query === void 0 ? void 0 : query.AggregatedScalarExpression],
8
9
  };
9
10
  };
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRuleViewItems = void 0;
4
- const AdaptableQuery_1 = require("../../PredefinedConfig/Common/AdaptableQuery");
5
4
  exports.getRuleViewItems = (rule, api) => {
6
5
  return {
7
6
  name: 'Condition',
8
7
  values: [
9
8
  rule.Predicate
10
9
  ? api.predicateApi.predicateToString(rule.Predicate)
11
- : AdaptableQuery_1.getAdaptableQueryExpression(rule),
10
+ : api.queryLanguageApi.getAdaptableQueryExpression(rule),
12
11
  ],
13
12
  };
14
13
  };
@@ -1,9 +1,10 @@
1
- export declare const HOST_URL_DOCS = "https://docs.adaptabletools.com/docs";
1
+ export declare const HOST_URL_DOCS = "https://docs.adaptabletools.com";
2
2
  export declare const ExpressionEditorDocsLink: string;
3
3
  export declare const BooleanQueryDocsLink: string;
4
4
  export declare const ScalarQueryDocsLink: string;
5
5
  export declare const ObservableQueryDocsLink: string;
6
- export declare const AggregationQueryDocsLink: string;
6
+ export declare const AggregatedBooleanQueryDocsLink: string;
7
+ export declare const AggregatedScalarQueryDocsLink: string;
7
8
  export declare const PredicateDocsLink: string;
8
9
  export declare const PrimaryKeyDocsLink: string;
9
10
  export declare const LicenseDocsLink: string;
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LicenseDocsLink = exports.PrimaryKeyDocsLink = exports.PredicateDocsLink = exports.AggregationQueryDocsLink = exports.ObservableQueryDocsLink = exports.ScalarQueryDocsLink = exports.BooleanQueryDocsLink = exports.ExpressionEditorDocsLink = exports.HOST_URL_DOCS = void 0;
4
- exports.HOST_URL_DOCS = 'https://docs.adaptabletools.com/docs';
5
- exports.ExpressionEditorDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression-editor`;
6
- exports.BooleanQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#boolean-expressions`;
7
- exports.ScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#scalar-expressions`;
8
- exports.ObservableQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#observable-expressions`;
9
- exports.AggregationQueryDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/expression/#aggregation-expressions`;
10
- exports.PredicateDocsLink = `${exports.HOST_URL_DOCS}/adaptableql/predicate`;
11
- exports.PrimaryKeyDocsLink = `${exports.HOST_URL_DOCS}/key-topics/primary-key`;
12
- exports.LicenseDocsLink = `${exports.HOST_URL_DOCS}/getting-started/licence`;
3
+ exports.LicenseDocsLink = exports.PrimaryKeyDocsLink = exports.PredicateDocsLink = exports.AggregatedScalarQueryDocsLink = exports.AggregatedBooleanQueryDocsLink = exports.ObservableQueryDocsLink = exports.ScalarQueryDocsLink = exports.BooleanQueryDocsLink = exports.ExpressionEditorDocsLink = exports.HOST_URL_DOCS = void 0;
4
+ exports.HOST_URL_DOCS = 'https://docs.adaptabletools.com';
5
+ //export const HOST_URL_DOCS = 'http://localhost:3000';
6
+ exports.ExpressionEditorDocsLink = `${exports.HOST_URL_DOCS}/learn/ui-expression-editor`;
7
+ exports.BooleanQueryDocsLink = `${exports.HOST_URL_DOCS}/learn/adaptable-ql-expression#boolean-expressions`;
8
+ exports.ScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/learn/adaptable-ql-expression#scalar-expressions`;
9
+ exports.ObservableQueryDocsLink = `${exports.HOST_URL_DOCS}/learn/adaptable-ql-expression#observable-expressions`;
10
+ exports.AggregatedBooleanQueryDocsLink = `${exports.HOST_URL_DOCS}/learn/adaptable-ql-expression#aggregation-boolean-expressions`;
11
+ exports.AggregatedScalarQueryDocsLink = `${exports.HOST_URL_DOCS}/learn/adaptable-ql-expression#aggregation-scalar-expressions`;
12
+ exports.PredicateDocsLink = `${exports.HOST_URL_DOCS}/learn/adaptable-ql-predicate`;
13
+ exports.PrimaryKeyDocsLink = `${exports.HOST_URL_DOCS}/learn/dev-guide-tutorial-primary-key`;
14
+ exports.LicenseDocsLink = `${exports.HOST_URL_DOCS}/licensing`;
@@ -11,6 +11,7 @@ const observableExpressionFunctions_1 = require("../ExpressionFunctions/observab
11
11
  const aggregatedBooleanExpressionFunctions_1 = require("../ExpressionFunctions/aggregatedBooleanExpressionFunctions");
12
12
  const AdaptablePredicate_1 = require("../../PredefinedConfig/Common/AdaptablePredicate");
13
13
  const Enums_1 = require("../../PredefinedConfig/Common/Enums");
14
+ const aggregatedScalarExpressionFunctions_1 = require("../ExpressionFunctions/aggregatedScalarExpressionFunctions");
14
15
  exports.DefaultAdaptableOptions = {
15
16
  adaptableId: GeneralConstants.ADAPTABLE_ID,
16
17
  adaptableStateKey: undefined,
@@ -52,6 +53,21 @@ exports.DefaultAdaptableOptions = {
52
53
  BackColor: UIHelper_1.getHexForName(UIHelper_1.GRAY),
53
54
  },
54
55
  },
56
+ adaptableQLOptions: {
57
+ caseSensitiveTextComparisons: false,
58
+ externallyEvaluatedModules: [],
59
+ expressionOptions: {
60
+ defaultBooleanFunctions: booleanExpressionFunctions_1.booleanExpressionFunctions,
61
+ defaultScalarFunctions: scalarExpressionFunctions_1.scalarExpressionFunctions,
62
+ defaultObservableFunctions: observableExpressionFunctions_1.observableExpressionFunctions,
63
+ defaultAggregatedBooleanFunctions: aggregatedBooleanExpressionFunctions_1.aggregatedBooleanExpressionFunctions,
64
+ defaultAggregatedScalarFunctions: aggregatedScalarExpressionFunctions_1.aggregatedScalarExpressionFunctions,
65
+ moduleExpressionFunctions: undefined,
66
+ queryableColumns: undefined,
67
+ performExpressionValidation: true,
68
+ maxTimeframeSize: 28800000,
69
+ },
70
+ },
55
71
  containerOptions: {
56
72
  adaptableContainer: 'adaptable',
57
73
  agGridContainer: 'grid',
@@ -107,7 +123,6 @@ exports.DefaultAdaptableOptions = {
107
123
  currentCalendar: 'United Kingdom',
108
124
  cellSummaryOperations: undefined,
109
125
  customSortComparers: undefined,
110
- caseSensitiveTextComparisons: false,
111
126
  },
112
127
  layoutOptions: {
113
128
  includeExpandedRowGroups: false,
@@ -135,6 +150,7 @@ exports.DefaultAdaptableOptions = {
135
150
  clearFiltersOnStartUp: false,
136
151
  quickFilterTrigger: 'mouseenter',
137
152
  quickFilterValuesTrigger: 'mouseenter',
153
+ quickFilterHeight: null,
138
154
  filterActionOnUserDataChange: {
139
155
  applyFilter: GeneralConstants.FILTER_ALWAYS,
140
156
  throttleDelay: 0,
@@ -155,7 +171,6 @@ exports.DefaultAdaptableOptions = {
155
171
  },
156
172
  searchOptions: {
157
173
  excludeColumnFromQuickSearch: undefined,
158
- serverSearchOptions: undefined,
159
174
  clearSearchesOnStartUp: false,
160
175
  quickSearchPlaceholder: 'Search',
161
176
  filterResultsAfterQuickSearch: false,
@@ -200,7 +215,7 @@ exports.DefaultAdaptableOptions = {
200
215
  showAdaptableToolPanel: true,
201
216
  adaptableToolPanelTitle: GeneralConstants.ADAPTABLE,
202
217
  showToolPanelsDropdown: true,
203
- customToolPanelButtons: undefined,
218
+ customButtons: undefined,
204
219
  customToolPanels: undefined,
205
220
  iconKey: 'menu',
206
221
  width: UIHelper_1.default.getAdaptableToolPanelWidth(),
@@ -208,16 +223,6 @@ exports.DefaultAdaptableOptions = {
208
223
  maxWidth: undefined,
209
224
  toolPanelOrder: ['filters', 'columns', 'adaptable'],
210
225
  },
211
- queryLanguageOptions: {
212
- defaultBooleanFunctions: booleanExpressionFunctions_1.booleanExpressionFunctions,
213
- defaultScalarFunctions: scalarExpressionFunctions_1.scalarExpressionFunctions,
214
- defaultObservableFunctions: observableExpressionFunctions_1.observableExpressionFunctions,
215
- defaultAggregatedBooleanFunctions: aggregatedBooleanExpressionFunctions_1.aggregatedBooleanExpressionFunctions,
216
- moduleExpressionFunctions: undefined,
217
- queryableColumns: undefined,
218
- performExpressionValidation: true,
219
- maxTimeframeSize: 28800000,
220
- },
221
226
  dataChangeHistoryOptions: {
222
227
  activeByDefault: false,
223
228
  showDataChange: undefined,
@@ -46,7 +46,7 @@ exports.aggregatedBooleanExpressionFunctions = {
46
46
  handler(args, context) {
47
47
  return expressionFunctionUtils_1.handleColumnFunction(args, context);
48
48
  },
49
- description: 'References a grid column by name',
49
+ description: 'References a column by its unique identifier',
50
50
  signatures: ['[colName]', 'COL(name: string)'],
51
51
  examples: ['[col1]', "COL('col1')"],
52
52
  },
@@ -1,7 +1,24 @@
1
1
  import { ExpressionFunction } from '../../parser/src/types';
2
2
  import { BaseParameter } from './expressionFunctionUtils';
3
- export declare type AggregatedScalarFunctionName = 'CUMSUM' | 'OVER' | 'COL';
3
+ import { RowNode } from '@ag-grid-community/all-modules';
4
+ import { AggregateParams } from './scalarAggregationHelper';
5
+ export declare type AggregatedScalarFunctionName = AggregationFunction | OperandFunction;
6
+ declare type AggregationFunction = 'SUM' | 'PERCENTAGE' | 'AVG' | 'MIN' | 'MAX' | 'CUMUL';
7
+ declare type OperandFunction = 'COL' | 'OVER' | 'GROUP_BY';
8
+ export interface AggregationParameter extends BaseParameter<'aggregation', AggregationFunction> {
9
+ value: AggregatedScalarExpressionEvaluation;
10
+ }
4
11
  export interface OverParameter extends BaseParameter<'operand', 'OVER'> {
5
12
  value: string;
6
13
  }
14
+ export interface GroupByParameter extends BaseParameter<'operand', 'GROUP_BY'> {
15
+ value: string;
16
+ }
17
+ export interface AggregatedScalarExpressionEvaluation {
18
+ aggregationParams: AggregateParams<any, string | number>;
19
+ rowValueGetter?: (rowNode: RowNode, aggregationValue: number) => string | number | Date | boolean;
20
+ columnDependencies: string[];
21
+ cumulateOver?: string;
22
+ }
7
23
  export declare const aggregatedScalarExpressionFunctions: Record<AggregatedScalarFunctionName, ExpressionFunction>;
24
+ export {};