@adaptabletools/adaptable 14.0.4 → 15.0.0-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 (75) hide show
  1. package/bundle.cjs.js +177 -177
  2. package/package.json +1 -1
  3. package/publishTimestamp.d.ts +1 -1
  4. package/publishTimestamp.js +1 -1
  5. package/src/AdaptableOptions/ChartingOptions.d.ts +6 -0
  6. package/src/Api/ChartingApi.d.ts +7 -8
  7. package/src/Api/DashboardApi.d.ts +4 -6
  8. package/src/Api/EventApi.d.ts +10 -10
  9. package/src/Api/Events/ChartChanged.d.ts +37 -0
  10. package/src/Api/Events/{ChartStateChangeInfo.js → ChartChanged.js} +0 -0
  11. package/src/Api/Events/DashboardChanged.d.ts +8 -0
  12. package/src/Api/Implementation/ChartingApiImpl.d.ts +1 -0
  13. package/src/Api/Implementation/ChartingApiImpl.js +3 -0
  14. package/src/Api/Implementation/DashboardApiImpl.d.ts +0 -1
  15. package/src/Api/Implementation/DashboardApiImpl.js +3 -18
  16. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +2 -0
  17. package/src/Api/Implementation/StyledColumnApiImpl.js +6 -0
  18. package/src/Api/Implementation/ThemeApiImpl.js +4 -1
  19. package/src/Api/Internal/DashboardInternalApi.d.ts +1 -0
  20. package/src/Api/Internal/DashboardInternalApi.js +28 -3
  21. package/src/Api/Internal/ExportInternalApi.d.ts +1 -0
  22. package/src/Api/Internal/ExportInternalApi.js +6 -0
  23. package/src/Api/Internal/LayoutInternalApi.d.ts +1 -0
  24. package/src/Api/Internal/LayoutInternalApi.js +7 -0
  25. package/src/Api/StyledColumnApi.d.ts +10 -0
  26. package/src/Redux/ActionsReducers/AlertRedux.d.ts +14 -0
  27. package/src/Redux/ActionsReducers/AlertRedux.js +23 -1
  28. package/src/Redux/ActionsReducers/CustomSortRedux.d.ts +14 -0
  29. package/src/Redux/ActionsReducers/CustomSortRedux.js +23 -1
  30. package/src/Redux/ActionsReducers/FlashingCellRedux.d.ts +15 -1
  31. package/src/Redux/ActionsReducers/FlashingCellRedux.js +23 -1
  32. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +14 -0
  33. package/src/Redux/ActionsReducers/FormatColumnRedux.js +26 -1
  34. package/src/Redux/ActionsReducers/PlusMinusRedux.d.ts +14 -0
  35. package/src/Redux/ActionsReducers/PlusMinusRedux.js +23 -1
  36. package/src/Redux/ActionsReducers/ScheduleRedux.d.ts +70 -0
  37. package/src/Redux/ActionsReducers/ScheduleRedux.js +112 -2
  38. package/src/Redux/ActionsReducers/ShortcutRedux.d.ts +14 -0
  39. package/src/Redux/ActionsReducers/ShortcutRedux.js +23 -1
  40. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +14 -0
  41. package/src/Redux/ActionsReducers/StyledColumnRedux.js +23 -1
  42. package/src/Redux/ActionsReducers/utils.d.ts +2 -0
  43. package/src/Redux/ActionsReducers/utils.js +20 -2
  44. package/src/Redux/Store/AdaptableStore.js +45 -4
  45. package/src/Strategy/AlertModule.js +2 -0
  46. package/src/Strategy/CustomSortModule.d.ts +2 -0
  47. package/src/Strategy/CustomSortModule.js +2 -0
  48. package/src/Strategy/FlashingCellModule.js +2 -0
  49. package/src/Strategy/FormatColumnModule.js +2 -0
  50. package/src/Strategy/PlusMinusModule.js +2 -0
  51. package/src/Strategy/ShortcutModule.js +2 -0
  52. package/src/Strategy/StyledColumnModule.js +2 -0
  53. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
  54. package/src/Utilities/Services/AlertService.d.ts +2 -0
  55. package/src/Utilities/Services/AlertService.js +6 -0
  56. package/src/Utilities/Services/ChartingService.js +4 -3
  57. package/src/Utilities/Services/Interface/IAlertService.d.ts +2 -0
  58. package/src/Utilities/license/hashing.js +1 -1
  59. package/src/Utilities/logDeprecation.d.ts +1 -1
  60. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +2 -2
  61. package/src/View/Charting/ShowChartButton.js +3 -2
  62. package/src/View/Charting/useChartingElements.js +6 -5
  63. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +22 -1
  64. package/src/View/Export/ExportSelector.js +1 -0
  65. package/src/View/Export/ExportViewPanel.js +1 -0
  66. package/src/View/Export/ReportExportDropdown.js +1 -0
  67. package/src/View/Theme/ThemePopup.d.ts +0 -3
  68. package/src/View/Theme/ThemePopup.js +1 -9
  69. package/src/View/Theme/ThemeViewPanel.js +4 -3
  70. package/src/metamodel/adaptable.metamodel.d.ts +41 -0
  71. package/src/metamodel/adaptable.metamodel.js +1 -1
  72. package/src/types.d.ts +2 -1
  73. package/version.d.ts +1 -1
  74. package/version.js +1 -1
  75. package/src/Api/Events/ChartStateChangeInfo.d.ts +0 -5
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ShortcutReducer = exports.ShortcutReady = exports.ShortcutUnSuspend = exports.ShortcutSuspend = exports.ShortcutDelete = exports.ShortcutEdit = exports.ShortcutAdd = exports.SHORTCUT_READY = exports.SHORTCUT_UNSUSPEND = exports.SHORTCUT_SUSPEND = exports.SHORTCUT_DELETE = exports.SHORTCUT_EDIT = exports.SHORTCUT_ADD = void 0;
3
+ exports.ShortcutReducer = exports.ShortcutReady = exports.ShortcutUnSuspendAll = exports.ShortcutSuspendAll = exports.ShortcutUnSuspend = exports.ShortcutSuspend = exports.ShortcutDelete = exports.ShortcutEdit = exports.ShortcutAdd = exports.SHORTCUT_READY = exports.SHORTCUT_UNSUSPEND_ALL = exports.SHORTCUT_SUSPEND_ALL = exports.SHORTCUT_UNSUSPEND = exports.SHORTCUT_SUSPEND = exports.SHORTCUT_DELETE = exports.SHORTCUT_EDIT = exports.SHORTCUT_ADD = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
6
6
  const AdaptableHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/AdaptableHelper"));
@@ -25,6 +25,14 @@ exports.SHORTCUT_SUSPEND = 'SHORTCUT_SUSPEND';
25
25
  * @ReduxAction A Shortcut has been unsuspended or activated
26
26
  */
27
27
  exports.SHORTCUT_UNSUSPEND = 'SHORTCUT_UNSUSPEND';
28
+ /**
29
+ * @ReduxAction All Shortcuts have been suspended
30
+ */
31
+ exports.SHORTCUT_SUSPEND_ALL = 'SHORTCUT_SUSPEND_ALL';
32
+ /**
33
+ * @ReduxAction All Shortcuts have been unsuspended or activated
34
+ */
35
+ exports.SHORTCUT_UNSUSPEND_ALL = 'SHORTCUT_UNSUSPEND_ALL';
28
36
  /**
29
37
  * @ReduxAction Shortcut Module is ready
30
38
  */
@@ -54,6 +62,14 @@ const ShortcutUnSuspend = (shortcut) => ({
54
62
  shortcut,
55
63
  });
56
64
  exports.ShortcutUnSuspend = ShortcutUnSuspend;
65
+ const ShortcutSuspendAll = () => ({
66
+ type: exports.SHORTCUT_SUSPEND_ALL,
67
+ });
68
+ exports.ShortcutSuspendAll = ShortcutSuspendAll;
69
+ const ShortcutUnSuspendAll = () => ({
70
+ type: exports.SHORTCUT_UNSUSPEND_ALL,
71
+ });
72
+ exports.ShortcutUnSuspendAll = ShortcutUnSuspendAll;
57
73
  const ShortcutReady = (shortcutState) => ({
58
74
  type: exports.SHORTCUT_READY,
59
75
  shortcutState,
@@ -86,6 +102,12 @@ const ShortcutReducer = (state = initialState, action) => {
86
102
  case exports.SHORTCUT_UNSUSPEND: {
87
103
  return Object.assign(Object.assign({}, state), { Shortcuts: (0, utils_1.changeIsSuspendInList)(action.shortcut, state.Shortcuts, false) });
88
104
  }
105
+ case exports.SHORTCUT_SUSPEND_ALL: {
106
+ return Object.assign(Object.assign({}, state), { Shortcuts: (0, utils_1.suspendAllInList)(state.Shortcuts) });
107
+ }
108
+ case exports.SHORTCUT_UNSUSPEND_ALL: {
109
+ return Object.assign(Object.assign({}, state), { Shortcuts: (0, utils_1.unsuspendAllInList)(state.Shortcuts) });
110
+ }
89
111
  default:
90
112
  return state;
91
113
  }
@@ -24,6 +24,14 @@ export declare const STYLED_COLUMN_SUSPEND = "STYLED_COLUMN_SUSPEND";
24
24
  * @ReduxAction StyledColumn Module is unsuspended, or activated
25
25
  */
26
26
  export declare const STYLED_COLUMN_UNSUSPEND = "STYLED_COLUMN_UNSUSPEND";
27
+ /**
28
+ * @ReduxAction All StyledColumn Modules are suspended
29
+ */
30
+ export declare const STYLED_COLUMN_SUSPEND_ALL = "STYLED_COLUMN_SUSPEND_ALL";
31
+ /**
32
+ * @ReduxAction All StyledColumn Modules are unsuspended, or activated
33
+ */
34
+ export declare const STYLED_COLUMN_UNSUSPEND_ALL = "STYLED_COLUMN_UNSUSPEND_ALL";
27
35
  export interface StyledColumnAction extends Redux.Action {
28
36
  StyledColumn: StyledColumn;
29
37
  }
@@ -37,6 +45,10 @@ export interface StyledColumnSuspendAction extends StyledColumnAction {
37
45
  }
38
46
  export interface StyledColumnUnSuspendAction extends StyledColumnAction {
39
47
  }
48
+ export interface StyledColumnSuspendAllAction extends Redux.Action {
49
+ }
50
+ export interface StyledColumnUnSuspendAllAction extends Redux.Action {
51
+ }
40
52
  export interface StyledColumnReadyAction extends Redux.Action {
41
53
  StyledColumnState: StyledColumnState;
42
54
  }
@@ -45,5 +57,7 @@ export declare const StyledColumnEdit: (formatColumn: StyledColumn) => StyledCol
45
57
  export declare const StyledColumnDelete: (formatColumn: StyledColumn) => StyledColumnDeleteAction;
46
58
  export declare const StyledColumnSuspend: (formatColumn: StyledColumn) => StyledColumnSuspendAction;
47
59
  export declare const StyledColumnUnSuspend: (formatColumn: StyledColumn) => StyledColumnSuspendAction;
60
+ export declare const StyledColumnSuspendAll: () => StyledColumnSuspendAllAction;
61
+ export declare const StyledColumnUnSuspendAll: () => StyledColumnUnSuspendAllAction;
48
62
  export declare const StyledColumnReady: (formatColumnState: StyledColumnState) => StyledColumnReadyAction;
49
63
  export declare const StyledColumnReducer: Redux.Reducer<StyledColumnState>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StyledColumnReducer = exports.StyledColumnReady = exports.StyledColumnUnSuspend = exports.StyledColumnSuspend = exports.StyledColumnDelete = exports.StyledColumnEdit = exports.StyledColumnAdd = exports.STYLED_COLUMN_UNSUSPEND = exports.STYLED_COLUMN_SUSPEND = exports.STYLED_COLUMN_READY = exports.STYLED_COLUMN_DELETE = exports.STYLED_COLUMN_EDIT = exports.STYLED_COLUMN_ADD = void 0;
3
+ exports.StyledColumnReducer = exports.StyledColumnReady = exports.StyledColumnUnSuspendAll = exports.StyledColumnSuspendAll = exports.StyledColumnUnSuspend = exports.StyledColumnSuspend = exports.StyledColumnDelete = exports.StyledColumnEdit = exports.StyledColumnAdd = exports.STYLED_COLUMN_UNSUSPEND_ALL = exports.STYLED_COLUMN_SUSPEND_ALL = exports.STYLED_COLUMN_UNSUSPEND = exports.STYLED_COLUMN_SUSPEND = exports.STYLED_COLUMN_READY = exports.STYLED_COLUMN_DELETE = exports.STYLED_COLUMN_EDIT = exports.STYLED_COLUMN_ADD = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
6
6
  const AdaptableHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/AdaptableHelper"));
@@ -29,6 +29,14 @@ exports.STYLED_COLUMN_SUSPEND = 'STYLED_COLUMN_SUSPEND';
29
29
  * @ReduxAction StyledColumn Module is unsuspended, or activated
30
30
  */
31
31
  exports.STYLED_COLUMN_UNSUSPEND = 'STYLED_COLUMN_UNSUSPEND';
32
+ /**
33
+ * @ReduxAction All StyledColumn Modules are suspended
34
+ */
35
+ exports.STYLED_COLUMN_SUSPEND_ALL = 'STYLED_COLUMN_SUSPEND_ALL';
36
+ /**
37
+ * @ReduxAction All StyledColumn Modules are unsuspended, or activated
38
+ */
39
+ exports.STYLED_COLUMN_UNSUSPEND_ALL = 'STYLED_COLUMN_UNSUSPEND_ALL';
32
40
  const StyledColumnAdd = (formatColumn) => ({
33
41
  type: exports.STYLED_COLUMN_ADD,
34
42
  StyledColumn: formatColumn,
@@ -54,6 +62,14 @@ const StyledColumnUnSuspend = (formatColumn) => ({
54
62
  StyledColumn: formatColumn,
55
63
  });
56
64
  exports.StyledColumnUnSuspend = StyledColumnUnSuspend;
65
+ const StyledColumnSuspendAll = () => ({
66
+ type: exports.STYLED_COLUMN_SUSPEND_ALL,
67
+ });
68
+ exports.StyledColumnSuspendAll = StyledColumnSuspendAll;
69
+ const StyledColumnUnSuspendAll = () => ({
70
+ type: exports.STYLED_COLUMN_UNSUSPEND_ALL,
71
+ });
72
+ exports.StyledColumnUnSuspendAll = StyledColumnUnSuspendAll;
57
73
  const StyledColumnReady = (formatColumnState) => ({
58
74
  type: exports.STYLED_COLUMN_READY,
59
75
  StyledColumnState: formatColumnState,
@@ -85,6 +101,12 @@ const StyledColumnReducer = (state = initialState, action) => {
85
101
  case exports.STYLED_COLUMN_UNSUSPEND: {
86
102
  return Object.assign(Object.assign({}, state), { StyledColumns: (0, utils_1.changeIsSuspendInList)(action.StyledColumn, state.StyledColumns, false) });
87
103
  }
104
+ case exports.STYLED_COLUMN_SUSPEND_ALL: {
105
+ return Object.assign(Object.assign({}, state), { StyledColumns: (0, utils_1.suspendAllInList)(state.StyledColumns) });
106
+ }
107
+ case exports.STYLED_COLUMN_UNSUSPEND_ALL: {
108
+ return Object.assign(Object.assign({}, state), { StyledColumns: (0, utils_1.unsuspendAllInList)(state.StyledColumns) });
109
+ }
88
110
  default:
89
111
  return state;
90
112
  }
@@ -6,3 +6,5 @@ import { AdaptableObject } from '../../types';
6
6
  * @param list list of ab objects
7
7
  */
8
8
  export declare function changeIsSuspendInList<AbObjectType extends AdaptableObject>(abObjectToChange: AbObjectType, list: AbObjectType[], IsSuspended: boolean): AbObjectType[];
9
+ export declare function suspendAllInList<AbObjectType extends AdaptableObject>(list: AbObjectType[]): AbObjectType[];
10
+ export declare function unsuspendAllInList<AbObjectType extends AdaptableObject>(list: AbObjectType[]): AbObjectType[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.changeIsSuspendInList = void 0;
3
+ exports.unsuspendAllInList = exports.suspendAllInList = exports.changeIsSuspendInList = void 0;
4
4
  /**
5
5
  * Updates IsSuspended in a list of adaptable objects
6
6
  *
@@ -9,10 +9,28 @@ exports.changeIsSuspendInList = void 0;
9
9
  */
10
10
  function changeIsSuspendInList(abObjectToChange, list, IsSuspended) {
11
11
  return list.map((abObject) => {
12
- if (!abObject.IsReadOnly && abObject.Uuid === abObjectToChange.Uuid) {
12
+ if (!abObject.IsReadOnly && (abObject === null || abObject === void 0 ? void 0 : abObject.Uuid) === (abObjectToChange === null || abObjectToChange === void 0 ? void 0 : abObjectToChange.Uuid)) {
13
13
  return Object.assign(Object.assign({}, abObject), { IsSuspended: IsSuspended });
14
14
  }
15
15
  return abObject;
16
16
  });
17
17
  }
18
18
  exports.changeIsSuspendInList = changeIsSuspendInList;
19
+ function suspendAllInList(list) {
20
+ return list.map((abObject) => {
21
+ if (!abObject.IsReadOnly) {
22
+ return Object.assign(Object.assign({}, abObject), { IsSuspended: true });
23
+ }
24
+ return abObject;
25
+ });
26
+ }
27
+ exports.suspendAllInList = suspendAllInList;
28
+ function unsuspendAllInList(list) {
29
+ return list.map((abObject) => {
30
+ if (!abObject.IsReadOnly) {
31
+ return Object.assign(Object.assign({}, abObject), { IsSuspended: false });
32
+ }
33
+ return abObject;
34
+ });
35
+ }
36
+ exports.unsuspendAllInList = unsuspendAllInList;
@@ -374,7 +374,9 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
374
374
  case AlertRedux.ALERT_DEFINITION_EDIT:
375
375
  case AlertRedux.ALERT_DEFINITION_DELETE:
376
376
  case AlertRedux.ALERT_DEFINITION_UNSUSPEND:
377
- case AlertRedux.ALERT_DEFINITION_SUSPEND: {
377
+ case AlertRedux.ALERT_DEFINITION_SUSPEND:
378
+ case AlertRedux.ALERT_DEFINITION_UNSUSPEND_ALL:
379
+ case AlertRedux.ALERT_DEFINITION_SUSPEND_ALL: {
378
380
  const returnAction = next(action);
379
381
  const alertDefinition = returnAction
380
382
  .alertDefinition;
@@ -388,6 +390,27 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
388
390
  returnAction.type === AlertRedux.ALERT_DEFINITION_SUSPEND) {
389
391
  adaptable.api.internalApi.getAlertService().deleteReactiveAlert(alertDefinition);
390
392
  }
393
+ if (returnAction.type === AlertRedux.ALERT_DEFINITION_SUSPEND_ALL) {
394
+ adaptable.api.internalApi
395
+ .getAlertService()
396
+ .getReactiveActiveAlerts()
397
+ .forEach((alertDefinition) => {
398
+ adaptable.api.internalApi.getAlertService().deleteReactiveAlert(alertDefinition);
399
+ });
400
+ }
401
+ if (returnAction.type === AlertRedux.ALERT_DEFINITION_UNSUSPEND_ALL) {
402
+ adaptable.api.alertApi.internalApi
403
+ .getReactiveAlertDefinitions()
404
+ .forEach((alertDefinition) => {
405
+ if (!adaptable.api.internalApi
406
+ .getAlertService()
407
+ .isReactiveAlertActive(alertDefinition)) {
408
+ adaptable.api.internalApi
409
+ .getAlertService()
410
+ .createReactiveAlert(alertDefinition);
411
+ }
412
+ });
413
+ }
391
414
  // called also for rendered column actions, see RENDERED COLUMN ACTIONS block
392
415
  adaptable.setupColumns();
393
416
  return returnAction;
@@ -399,7 +422,9 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
399
422
  case FlashingCellRedux.FLASHING_CELL_DEFINITION_EDIT:
400
423
  case FlashingCellRedux.FLASHING_CELL_DEFINITION_DELETE:
401
424
  case FlashingCellRedux.FLASHING_CELL_DEFINITION_UNSUSPEND:
402
- case FlashingCellRedux.FLASHING_CELL_DEFINITION_SUSPEND: {
425
+ case FlashingCellRedux.FLASHING_CELL_DEFINITION_SUSPEND:
426
+ case FlashingCellRedux.FLASHING_CELL_DEFINITION_UNSUSPEND_ALL:
427
+ case FlashingCellRedux.FLASHING_CELL_DEFINITION_SUSPEND_ALL: {
403
428
  const returnAction = next(action);
404
429
  // called also for rendered column actions, see RENDERED COLUMN ACTIONS block
405
430
  adaptable.setupColumns();
@@ -651,16 +676,22 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
651
676
  case FormatColumnRedux.FORMAT_COLUMN_MOVE_UP:
652
677
  case FormatColumnRedux.FORMAT_COLUMN_SUSPEND:
653
678
  case FormatColumnRedux.FORMAT_COLUMN_UNSUSPEND:
679
+ case FormatColumnRedux.FORMAT_COLUMN_SUSPEND_ALL:
680
+ case FormatColumnRedux.FORMAT_COLUMN_UNSUSPEND_ALL:
654
681
  case StyledColumnRedux.STYLED_COLUMN_ADD:
655
682
  case StyledColumnRedux.STYLED_COLUMN_EDIT:
656
683
  case StyledColumnRedux.STYLED_COLUMN_DELETE:
657
684
  case StyledColumnRedux.STYLED_COLUMN_SUSPEND:
658
685
  case StyledColumnRedux.STYLED_COLUMN_UNSUSPEND:
686
+ case StyledColumnRedux.STYLED_COLUMN_SUSPEND_ALL:
687
+ case StyledColumnRedux.STYLED_COLUMN_UNSUSPEND_ALL:
659
688
  case CustomSortRedux.CUSTOM_SORT_ADD:
660
689
  case CustomSortRedux.CUSTOM_SORT_EDIT:
661
690
  case CustomSortRedux.CUSTOM_SORT_DELETE:
662
691
  case CustomSortRedux.CUSTOM_SORT_SUSPEND:
663
- case CustomSortRedux.CUSTOM_SORT_UNSUSPEND: {
692
+ case CustomSortRedux.CUSTOM_SORT_UNSUSPEND:
693
+ case CustomSortRedux.CUSTOM_SORT_SUSPEND_ALL:
694
+ case CustomSortRedux.CUSTOM_SORT_UNSUSPEND_ALL: {
664
695
  const returnAction = next(action);
665
696
  // called also for alert actions, see ALERT ACTIONS block
666
697
  adaptable.setupColumns();
@@ -822,26 +853,36 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
822
853
  case ScheduleRedux.REMINDER_SCHEDULE_DELETE:
823
854
  case ScheduleRedux.REMINDER_SCHEDULE_UNSUSPEND:
824
855
  case ScheduleRedux.REMINDER_SCHEDULE_SUSPEND:
856
+ case ScheduleRedux.REMINDER_SCHEDULE_UNSUSPEND_ALL:
857
+ case ScheduleRedux.REMINDER_SCHEDULE_SUSPEND_ALL:
825
858
  case ScheduleRedux.REPORT_SCHEDULE_ADD:
826
859
  case ScheduleRedux.REPORT_SCHEDULE_EDIT:
827
860
  case ScheduleRedux.REPORT_SCHEDULE_DELETE:
828
861
  case ScheduleRedux.REPORT_SCHEDULE_SUSPEND:
829
862
  case ScheduleRedux.REPORT_SCHEDULE_UNSUSPEND:
863
+ case ScheduleRedux.REPORT_SCHEDULE_SUSPEND_ALL:
864
+ case ScheduleRedux.REPORT_SCHEDULE_UNSUSPEND_ALL:
830
865
  case ScheduleRedux.IPUSHPULL_SCHEDULE_ADD:
831
866
  case ScheduleRedux.IPUSHPULL_SCHEDULE_EDIT:
832
867
  case ScheduleRedux.IPUSHPULL_SCHEDULE_DELETE:
833
868
  case ScheduleRedux.IPUSHPULL_SCHEDULE_SUSPEND:
834
869
  case ScheduleRedux.IPUSHPULL_SCHEDULE_UNSUSPEND:
870
+ case ScheduleRedux.IPUSHPULL_SCHEDULE_SUSPEND_ALL:
871
+ case ScheduleRedux.IPUSHPULL_SCHEDULE_UNSUSPEND_ALL:
835
872
  case ScheduleRedux.GLUE42_SCHEDULE_ADD:
836
873
  case ScheduleRedux.GLUE42_SCHEDULE_EDIT:
837
874
  case ScheduleRedux.GLUE42_SCHEDULE_DELETE:
838
875
  case ScheduleRedux.GLUE42_SCHEDULE_SUSPEND:
839
876
  case ScheduleRedux.GLUE42_SCHEDULE_UNSUSPEND:
877
+ case ScheduleRedux.GLUE42_SCHEDULE_SUSPEND_ALL:
878
+ case ScheduleRedux.GLUE42_SCHEDULE_UNSUSPEND_ALL:
840
879
  case ScheduleRedux.OPENFIN_SCHEDULE_ADD:
841
880
  case ScheduleRedux.OPENFIN_SCHEDULE_EDIT:
842
881
  case ScheduleRedux.OPENFIN_SCHEDULE_DELETE:
843
882
  case ScheduleRedux.OPENFIN_SCHEDULE_SUSPEND:
844
- case ScheduleRedux.OPENFIN_SCHEDULE_UNSUSPEND: {
883
+ case ScheduleRedux.OPENFIN_SCHEDULE_UNSUSPEND:
884
+ case ScheduleRedux.OPENFIN_SCHEDULE_SUSPEND_ALL:
885
+ case ScheduleRedux.OPENFIN_SCHEDULE_UNSUSPEND_ALL: {
845
886
  let returnAction = next(action);
846
887
  let module = (adaptable.adaptableModules.get(ModuleConstants.ScheduleModuleId));
847
888
  module.setUpScheduleJobs();
@@ -246,6 +246,8 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
246
246
  getDeleteAction: AlertRedux.AlertDefinitionDelete,
247
247
  getSuspendAction: AlertRedux.AlertDefinitionSuspend,
248
248
  getUnSuspendAction: AlertRedux.AlertDefinitionUnSuspend,
249
+ getSuspendAllAction: AlertRedux.AlertDefinitionSuspendAll,
250
+ getUnSuspendAllAction: AlertRedux.AlertDefinitionUnSuspendAll,
249
251
  getCompactDeleteAction: SystemRedux.SystemAlertDelete,
250
252
  getDeleteAllAction: () => {
251
253
  const alerts = this.api.internalApi.getState().System.AdaptableAlerts;
@@ -23,6 +23,8 @@ export declare class CustomSortModule extends AdaptableModuleBase implements IMo
23
23
  getDeleteAction: (customSort: CustomSort) => CustomSortRedux.CustomSortDeleteAction;
24
24
  getSuspendAction: (customSort: CustomSort) => CustomSortRedux.CustomSortDeleteAction;
25
25
  getUnSuspendAction: (customSort: CustomSort) => CustomSortRedux.CustomSortDeleteAction;
26
+ getSuspendAllAction: () => CustomSortRedux.CustomSortSuspendAllAction;
27
+ getUnSuspendAllAction: () => CustomSortRedux.CustomSortUnSuspendAllAction;
26
28
  emptyView: string;
27
29
  getEditWizard(): (props: import("../View/CustomSort/Wizard/CustomSortWizard").CustomSortWizardProps) => JSX.Element;
28
30
  };
@@ -70,6 +70,8 @@ class CustomSortModule extends AdaptableModuleBase_1.AdaptableModuleBase {
70
70
  getDeleteAction: CustomSortRedux.CustomSortDelete,
71
71
  getSuspendAction: CustomSortRedux.CustomSortSuspend,
72
72
  getUnSuspendAction: CustomSortRedux.CustomSortUnSuspend,
73
+ getSuspendAllAction: CustomSortRedux.CustomSortSuspendAll,
74
+ getUnSuspendAllAction: CustomSortRedux.CustomSortUnSuspendAll,
73
75
  emptyView: "Click 'New' to create a custom Sort Order for a selected Column.",
74
76
  getEditWizard() {
75
77
  return CustomSortWizard_1.CustomSortWizard;
@@ -254,6 +254,8 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
254
254
  return {
255
255
  getSuspendAction: FlashingCellRedux.FlashingCellDefinitionSuspend,
256
256
  getUnSuspendAction: FlashingCellRedux.FlashingCellDefinitionUnSuspend,
257
+ getSuspendAllAction: FlashingCellRedux.FlashingCellDefinitionSuspendAll,
258
+ getUnSuspendAllAction: FlashingCellRedux.FlashingCellDefinitionUnSuspendAll,
257
259
  getDeleteAction: FlashingCellRedux.FlashingCellDefinitionDelete,
258
260
  getEditWizard: () => FlashingCellWizard_1.FlashingCellWizard,
259
261
  };
@@ -162,6 +162,8 @@ class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
162
162
  getDeleteAction: FormatColumnRedux.FormatColumnDelete,
163
163
  getSuspendAction: FormatColumnRedux.FormatColumnSuspend,
164
164
  getUnSuspendAction: FormatColumnRedux.FormatColumnUnSuspend,
165
+ getSuspendAllAction: FormatColumnRedux.FormatColumnSuspendAll,
166
+ getUnSuspendAllAction: FormatColumnRedux.FormatColumnUnSuspendAll,
165
167
  getEditWizard() {
166
168
  return FormatColumnWizard_1.FormatColumnWizard;
167
169
  },
@@ -210,6 +210,8 @@ class PlusMinusModule extends AdaptableModuleBase_1.AdaptableModuleBase {
210
210
  getDeleteAction: PlusMinusRedux.PlusMinusNudgeDelete,
211
211
  getSuspendAction: PlusMinusRedux.PlusMinusNudgeSuspend,
212
212
  getUnSuspendAction: PlusMinusRedux.PlusMinusNudgeUnSuspend,
213
+ getSuspendAllAction: PlusMinusRedux.PlusMinusNudgeSuspendAll,
214
+ getUnSuspendAllAction: PlusMinusRedux.PlusMinusNudgeUnSuspendAll,
213
215
  getEditWizard() {
214
216
  return PlusMinusWizard_1.PlusMinusWizard;
215
217
  },
@@ -92,6 +92,8 @@ class ShortcutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
92
92
  getDeleteAction: ShortcutRedux.ShortcutDelete,
93
93
  getSuspendAction: ShortcutRedux.ShortcutSuspend,
94
94
  getUnSuspendAction: ShortcutRedux.ShortcutUnSuspend,
95
+ getSuspendAllAction: ShortcutRedux.ShortcutSuspendAll,
96
+ getUnSuspendAllAction: ShortcutRedux.ShortcutUnSuspendAll,
95
97
  getEditWizard() {
96
98
  return ShortcutWizard_1.ShortcutWizard;
97
99
  },
@@ -211,6 +211,8 @@ class StyledColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
211
211
  getDeleteAction: StyledColumnRedux.StyledColumnDelete,
212
212
  getSuspendAction: StyledColumnRedux.StyledColumnSuspend,
213
213
  getUnSuspendAction: StyledColumnRedux.StyledColumnUnSuspend,
214
+ getSuspendAllAction: StyledColumnRedux.StyledColumnSuspendAll,
215
+ getUnSuspendAllAction: StyledColumnRedux.StyledColumnUnSuspendAll,
214
216
  getEditWizard() {
215
217
  return StyledColumnWizard_1.StyledColumnWizard;
216
218
  },
@@ -276,5 +276,6 @@ exports.DefaultAdaptableOptions = {
276
276
  },
277
277
  chartingOptions: {
278
278
  saveStrategy: 'none',
279
+ agGridContainerName: 'Ag Grid Window',
279
280
  },
280
281
  };
@@ -11,5 +11,7 @@ export declare class AlertService implements IAlertService {
11
11
  onReactiveAlertTriggered: (callback: EmitterCallback) => (() => void);
12
12
  createReactiveAlert(alertDefinition: AlertDefinition): void;
13
13
  deleteReactiveAlert(alertDefinition: AlertDefinition): void;
14
+ getReactiveActiveAlerts(): AlertDefinition[];
15
+ isReactiveAlertActive(alertDefinition: AlertDefinition): boolean;
14
16
  private evaluateReactiveExpression;
15
17
  }
@@ -57,6 +57,12 @@ class AlertService {
57
57
  this.reactiveAlertsMap.delete(alertDefinition.Uuid);
58
58
  }
59
59
  }
60
+ getReactiveActiveAlerts() {
61
+ return [...this.reactiveAlertsMap.values()].map((item) => item.definition);
62
+ }
63
+ isReactiveAlertActive(alertDefinition) {
64
+ return this.reactiveAlertsMap.has(alertDefinition.Uuid);
65
+ }
60
66
  evaluateReactiveExpression(rule) {
61
67
  return this.adaptableApi.internalApi
62
68
  .getQueryLanguageService()
@@ -46,10 +46,11 @@ class ChartingService {
46
46
  */
47
47
  emitAdaptableChartDefinitonChange() {
48
48
  const chartingOpenState = this.api.chartingApi.getChartingOpenState();
49
- this.api.eventApi.emit('ChartsChanged', {
50
- chartingOpenState,
49
+ const chartChangedInfo = {
50
+ chartingOpenState: chartingOpenState,
51
51
  adaptableApi: this.api,
52
- });
52
+ };
53
+ this.api.eventApi.emit('ChartChanged', chartChangedInfo);
53
54
  }
54
55
  saveNewChart(chartModel) {
55
56
  var _a, _b;
@@ -10,4 +10,6 @@ export interface IAlertService extends IAdaptableService {
10
10
  createReactiveAlert(alertDefinition: AlertDefinition): void;
11
11
  deleteReactiveAlert(alertDefinition: AlertDefinition): void;
12
12
  onReactiveAlertTriggered(callback: (payload: ReactiveAlertInfo) => void): () => void;
13
+ getReactiveActiveAlerts(): AlertDefinition[];
14
+ isReactiveAlertActive(alertDefinition: AlertDefinition): boolean;
13
15
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compute_string=void 0;const r=3988292384;function t(r=3988292384){var t,e,n,o=new Array;for(t=0;t<256;t++){for(n=t,e=8;e>0;e--)1==(1&n)?n=n>>>1^r:n>>>=1;o[t]=n}return o}function e(){return 4294967295}function n(r,t,e){return t=t>>>8^r[e^255&t]}function o(r){return r=(r=~r)<0?4294967295+r+1:r}function u(r,u=3988292384){var c,i=t(u),f=0;for(f=e(),c=0;c<r.length;c++)f=n(i,f,r.charCodeAt(c));return`${f=o(f)}`}exports.compute_string=u;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compute_string=void 0;const r=3988292384;function t(t=r){var e,n,o,u=new Array;for(e=0;e<256;e++){for(o=e,n=8;n>0;n--)1==(1&o)?o=o>>>1^t:o>>>=1;u[e]=o}return u}function e(){return 4294967295}function n(r,t,e){return t=t>>>8^r[e^255&t]}function o(r){return r=(r=~r)<0?4294967295+r+1:r}function u(u,c=r){var i,f=t(c),s=0;for(s=e(),i=0;i<u.length;i++)s=n(f,s,u.charCodeAt(i));return`${s=o(s)}`}exports.compute_string=u;
@@ -1,3 +1,3 @@
1
- export declare const logDeprecation: <T>(typeName: string, oldProp: keyof T, newProp: keyof T, message?: string) => void;
1
+ export declare const logDeprecation: <T>(typeName: string, oldProp: keyof T, newProp?: keyof T, message?: string) => void;
2
2
  export declare const logDeprecationExternal: <OLD_TYPE, NEW_TYPE>(oldTypeName: string, oldProp: keyof OLD_TYPE, newTypeName: string, newProp: keyof NEW_TYPE, message?: string) => void;
3
3
  export declare const logDeprecationInternal: <T>(typeName: string, oldProp: keyof T) => void;
@@ -48,10 +48,10 @@ const AlertMessageWizardSection = (props) => {
48
48
  ' ',
49
49
  React.createElement(FormLayout_1.default, null,
50
50
  React.createElement(FormLayout_1.FormRow, { label: "Header" },
51
- React.createElement(AdaptableInput_1.default, { placeholder: "use defaults", marginTop: 2, type: 'text', autoFocus: false, value: messageHeader,
51
+ React.createElement(AdaptableInput_1.default, { minWidth: 250, placeholder: "use defaults", marginTop: 2, type: 'text', autoFocus: false, value: messageHeader !== null && messageHeader !== void 0 ? messageHeader : '',
52
52
  // placeholder="defaults to column name"
53
53
  onChange: (e) => onMessageHeaderChange(e) })),
54
54
  React.createElement(FormLayout_1.FormRow, { label: "Message" },
55
- React.createElement(AdaptableInput_1.default, { marginTop: 2, type: 'text', autoFocus: false, value: messageText, onChange: (e) => onMessageTextChange(e) })))))));
55
+ React.createElement(AdaptableInput_1.default, { minWidth: 250, marginTop: 2, type: 'text', autoFocus: false, value: messageText !== null && messageText !== void 0 ? messageText : '', onChange: (e) => onMessageTextChange(e) })))))));
56
56
  };
57
57
  exports.AlertMessageWizardSection = AlertMessageWizardSection;
@@ -10,7 +10,8 @@ const useChartState_1 = require("./useChartState");
10
10
  const ShowChartButton = (props) => {
11
11
  var _a, _b;
12
12
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
13
- const chartContainers = (_b = (_a = adaptable.adaptableOptions) === null || _a === void 0 ? void 0 : _a.chartingOptions) === null || _b === void 0 ? void 0 : _b.chartContainers;
13
+ const chartingOptions = (_a = adaptable.adaptableOptions) === null || _a === void 0 ? void 0 : _a.chartingOptions;
14
+ const chartContainers = chartingOptions === null || chartingOptions === void 0 ? void 0 : chartingOptions.chartContainers;
14
15
  const { isOpen, showChart, closeChart } = (0, useChartState_1.useChartState)(props.data);
15
16
  if (isOpen) {
16
17
  return (React.createElement(SimpleButton_1.default, { "data-name": "close-chart-button", onClick: closeChart, variant: "text", tone: "error", icon: "visibility-off", tooltip: "Hide Chart" }));
@@ -20,7 +21,7 @@ const ShowChartButton = (props) => {
20
21
  }
21
22
  const containerOptions = [
22
23
  {
23
- label: 'Ag Grid Window',
24
+ label: (_b = chartingOptions.agGridContainerName) !== null && _b !== void 0 ? _b : 'Ag Grid Window',
24
25
  onClick: () => {
25
26
  showChart(null);
26
27
  },
@@ -13,10 +13,11 @@ const useChartState_1 = require("./useChartState");
13
13
  const DeleteChartButton_1 = require("./DeleteChartButton");
14
14
  const EditChartButton_1 = require("./EditChartButton");
15
15
  const useChartingElements = ({ elementType, accessLevel, size = 'normal', }) => {
16
- var _a, _b, _c;
16
+ var _a, _b;
17
17
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
18
18
  const chartDefinitions = (0, react_redux_1.useSelector)(ChartingRedux.ChartingGetChartModels);
19
- const chartContainers = (_b = (_a = adaptable.adaptableOptions) === null || _a === void 0 ? void 0 : _a.chartingOptions) === null || _b === void 0 ? void 0 : _b.chartContainers;
19
+ const chartingOptions = (_a = adaptable.adaptableOptions) === null || _a === void 0 ? void 0 : _a.chartingOptions;
20
+ const chartContainers = chartingOptions === null || chartingOptions === void 0 ? void 0 : chartingOptions.chartContainers;
20
21
  const [selectedChartId, setSelectedChartId] = React.useState(() => {
21
22
  // ID is kept in state becaus that does not change, the definition might change
22
23
  return chartDefinitions.length > 0 ? chartDefinitions[0].Uuid : null;
@@ -36,7 +37,7 @@ const useChartingElements = ({ elementType, accessLevel, size = 'normal', }) =>
36
37
  const isSelectedChart = hasCharts && selectedChart != null;
37
38
  let content = '';
38
39
  if (hasCharts && selectedChart) {
39
- content = (_c = chartDefinitions.find((chart) => chart.Uuid === selectedChart.Uuid)) === null || _c === void 0 ? void 0 : _c.Name;
40
+ content = (_b = chartDefinitions.find((chart) => chart.Uuid === selectedChart.Uuid)) === null || _b === void 0 ? void 0 : _b.Name;
40
41
  }
41
42
  else if (hasCharts) {
42
43
  content = 'Select Chart';
@@ -52,7 +53,7 @@ const useChartingElements = ({ elementType, accessLevel, size = 'normal', }) =>
52
53
  }, [chartDefinitions]);
53
54
  const containerOptions = [
54
55
  {
55
- label: 'Ag Grid Window',
56
+ label: chartingOptions.agGridContainerName,
56
57
  onClick: () => {
57
58
  setSelectedContainer(null);
58
59
  },
@@ -74,7 +75,7 @@ const useChartingElements = ({ elementType, accessLevel, size = 'normal', }) =>
74
75
  iconSize = 15;
75
76
  }
76
77
  const chartSelector = (React.createElement(DropdownButton_1.default, { style: style, width: "100%", columns: ['label'], className: `ab-${elementType}__Chart__select`, items: options, disabled: !hasCharts }, content));
77
- const containerSelector = Boolean(chartContainers === null || chartContainers === void 0 ? void 0 : chartContainers.length) && (React.createElement(DropdownButton_1.default, { style: style, width: "100%", columns: ['label'], items: containerOptions, disabled: !isSelectedChart }, (selectedContainer === null || selectedContainer === void 0 ? void 0 : selectedContainer.name) || 'Ag Grid Window'));
78
+ const containerSelector = Boolean(chartContainers === null || chartContainers === void 0 ? void 0 : chartContainers.length) && (React.createElement(DropdownButton_1.default, { style: style, width: "100%", columns: ['label'], items: containerOptions, disabled: !isSelectedChart }, (selectedContainer === null || selectedContainer === void 0 ? void 0 : selectedContainer.name) || chartingOptions.agGridContainerName || 'Ag Grid Window'));
78
79
  const chartButton = (React.createElement(SimpleButton_1.default, { style: style, mr: 1, onClick: () => (isOpen ? closeChart() : showChart(selectedContainer)), disabled: !Boolean(selectedChart), variant: 'text', tone: 'neutral', icon: isOpen ? 'visibility-off' : 'visibility', tooltip: isOpen ? 'Hide Chart' : 'Show Chart' }));
79
80
  const deleteButton = (React.createElement(DeleteChartButton_1.DeleteChartButton, { iconSize: iconSize, chart: selectedChart, accessLevel: chartAccessLevel }));
80
81
  const editButton = (React.createElement(EditChartButton_1.EditChartButton, { iconSize: iconSize, chart: selectedChart, accessLevel: chartAccessLevel, isOpen: isOpen }));
@@ -13,6 +13,7 @@ const PopupPanel_1 = require("./PopupPanel");
13
13
  const rebass_1 = require("rebass");
14
14
  const CheckBox_1 = require("../../../../components/CheckBox");
15
15
  const SystemRedux_1 = require("../../../../Redux/ActionsReducers/SystemRedux");
16
+ const SimpleButton_1 = tslib_1.__importDefault(require("../../../../components/SimpleButton"));
16
17
  const AdaptablePopupModuleView = (props) => {
17
18
  var _a, _b, _c, _d, _e, _f, _g, _h;
18
19
  /**
@@ -81,6 +82,23 @@ const AdaptablePopupModuleView = (props) => {
81
82
  (EditWizard || moduleViewProperties.onOpenEditPopup)) {
82
83
  newButton = (React.createElement(ButtonNew_1.ButtonNew, { onClick: () => handleOpenEditPopup(), tooltip: toolTipText, accessLevel: props.accessLevel }));
83
84
  }
85
+ let suspendButton = null;
86
+ if (items.length &&
87
+ (moduleViewProperties === null || moduleViewProperties === void 0 ? void 0 : moduleViewProperties.getSuspendAllAction) &&
88
+ (moduleViewProperties === null || moduleViewProperties === void 0 ? void 0 : moduleViewProperties.getUnSuspendAllAction)) {
89
+ const isAtLeastOneAbObjectActive = items.some((item) => { var _a; return !((_a = item.abObject) === null || _a === void 0 ? void 0 : _a.IsSuspended); });
90
+ const handleSuspendUnsuspendAll = () => {
91
+ if (isAtLeastOneAbObjectActive) {
92
+ const suspendAllAction = moduleViewProperties.getSuspendAllAction();
93
+ dispatch(suspendAllAction);
94
+ }
95
+ else {
96
+ const unsuspendAllAction = moduleViewProperties.getUnSuspendAllAction();
97
+ dispatch(unsuspendAllAction);
98
+ }
99
+ };
100
+ suspendButton = (React.createElement(SimpleButton_1.default, { mr: 2, onMouseDown: () => handleSuspendUnsuspendAll(), tone: isAtLeastOneAbObjectActive ? 'neutral' : 'success', variant: "raised", icon: isAtLeastOneAbObjectActive ? 'pause' : 'play', accessLevel: props.accessLevel }, isAtLeastOneAbObjectActive ? 'Suspend All' : 'Unsuspend All'));
101
+ }
84
102
  const handleWizardClose = () => {
85
103
  var _a;
86
104
  setAbObjectType(null);
@@ -107,7 +125,10 @@ const AdaptablePopupModuleView = (props) => {
107
125
  moduleInfo.FriendlyName,
108
126
  "s not available in current Layout")));
109
127
  };
110
- return (React.createElement(PopupPanel_1.PopupPanel, { glyphicon: moduleInfo.Glyph, infoLink: moduleInfo.HelpPage, headerText: moduleInfo.FriendlyName, button: newButton, infoLinkDisabled: !props.api.internalApi.isDocumentationLinksDisplayed() },
128
+ return (React.createElement(PopupPanel_1.PopupPanel, { glyphicon: moduleInfo.Glyph, infoLink: moduleInfo.HelpPage, headerText: moduleInfo.FriendlyName, button: React.createElement(React.Fragment, null,
129
+ suspendButton,
130
+ " ",
131
+ newButton), infoLinkDisabled: !props.api.internalApi.isDocumentationLinksDisplayed() },
111
132
  moduleViewProperties.HeaderComponent && React.createElement(moduleViewProperties.HeaderComponent, null),
112
133
  toggleButtonShowLayoutAssociatedObjects(),
113
134
  (items === null || items === void 0 ? void 0 : items.length) ? (React.createElement(AdaptableObjectList_1.AdaptableObjectList, { module: props.module, items: items })) : (React.createElement(EmptyContent_1.default, null, emptyContent !== null && emptyContent !== void 0 ? emptyContent : `Click 'New' to create a new ${moduleInfo.FriendlyName}`)),
@@ -42,6 +42,7 @@ const ExportSelector = () => {
42
42
  ...adaptable.api.exportApi.getAvailableExportDestinations().map((destination) => ({
43
43
  label: destination,
44
44
  onClick: () => handleDestinationChange(destination),
45
+ disabled: !adaptable.api.exportApi.internalApi.isDestinationEnabled(destination),
45
46
  })),
46
47
  ...adaptable.api.exportApi.getCustomDestinations().map((destination) => ({
47
48
  label: destination.name,
@@ -50,6 +50,7 @@ class ExportViewPanelComponent extends React.Component {
50
50
  ...this.props.api.exportApi.getAvailableExportDestinations().map((destination) => ({
51
51
  label: destination,
52
52
  onClick: () => this.onSelectedDestinationChanged(destination),
53
+ disabled: !this.props.api.exportApi.internalApi.isDestinationEnabled(destination),
53
54
  })),
54
55
  ...this.props.api.exportApi.getCustomDestinations().map((destination) => ({
55
56
  label: destination.name,
@@ -21,6 +21,7 @@ const ReportExportDropdown = (props) => {
21
21
  ...adaptable.api.exportApi.getAvailableExportDestinations().map((destination) => ({
22
22
  label: destination,
23
23
  onClick: () => handleExport(destination),
24
+ disabled: !adaptable.api.exportApi.internalApi.isDestinationEnabled(destination),
24
25
  })),
25
26
  ...adaptable.api.exportApi.getCustomDestinations().map((destination) => ({
26
27
  label: destination.name,
@@ -1,10 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import * as ThemeRedux from '../../Redux/ActionsReducers/ThemeRedux';
3
3
  import { ModuleViewPopupProps } from '../Components/SharedProps/ModuleViewPopupProps';
4
- import { AdaptableTheme } from '../../PredefinedConfig/ThemeState';
5
4
  interface ThemePopupProps extends ModuleViewPopupProps<ThemePopupComponent> {
6
- SystemThemes: (AdaptableTheme | string)[];
7
- UserThemes: Array<AdaptableTheme>;
8
5
  CurrentTheme: string;
9
6
  SelectTheme: (newTheme: string) => ThemeRedux.ThemeSelectAction;
10
7
  }
@@ -10,13 +10,7 @@ const FormLayout_1 = tslib_1.__importStar(require("../../components/FormLayout")
10
10
  const DropdownButton_1 = tslib_1.__importDefault(require("../../components/DropdownButton"));
11
11
  class ThemePopupComponent extends React.Component {
12
12
  render() {
13
- let availableThemes = [];
14
- this.props.SystemThemes.forEach((st) => {
15
- availableThemes.push(st);
16
- });
17
- this.props.UserThemes.forEach((ut) => {
18
- availableThemes.push(ut);
19
- });
13
+ const availableThemes = this.props.api.themeApi.getThemes();
20
14
  let currentThemeDescription = '';
21
15
  let optionThemes = availableThemes.map((theme) => {
22
16
  if (typeof theme === 'string') {
@@ -46,8 +40,6 @@ class ThemePopupComponent extends React.Component {
46
40
  }
47
41
  function mapStateToProps(state, ownProps) {
48
42
  return {
49
- SystemThemes: state.Theme.SystemThemes,
50
- UserThemes: state.Theme.UserThemes,
51
43
  CurrentTheme: state.Theme.CurrentTheme,
52
44
  };
53
45
  }