@adaptabletools/adaptable 22.0.0-canary.5 → 22.0.0-canary.7

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 (122) hide show
  1. package/index.css +0 -3
  2. package/index.css.map +1 -1
  3. package/package.json +1 -1
  4. package/src/AdaptableOptions/CustomSortOptions.d.ts +1 -2
  5. package/src/AdaptableState/AlertState.d.ts +6 -3
  6. package/src/AdaptableState/ChartingState.d.ts +5 -5
  7. package/src/AdaptableState/Common/AdaptableObject.d.ts +4 -9
  8. package/src/AdaptableState/Common/BaseContext.d.ts +2 -0
  9. package/src/AdaptableState/Common/ColumnHighlightInfo.d.ts +18 -0
  10. package/src/AdaptableState/Common/ColumnHighlightInfo.js +1 -0
  11. package/src/AdaptableState/Common/NamedObject.d.ts +10 -0
  12. package/src/AdaptableState/Common/NamedObject.js +1 -0
  13. package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
  14. package/src/AdaptableState/Common/Schedule.d.ts +7 -3
  15. package/src/AdaptableState/Common/SuspendableObject.d.ts +10 -0
  16. package/src/AdaptableState/Common/SuspendableObject.js +1 -0
  17. package/src/AdaptableState/CustomSortState.d.ts +6 -2
  18. package/src/AdaptableState/DashboardState.d.ts +3 -3
  19. package/src/AdaptableState/ExportState.d.ts +3 -3
  20. package/src/AdaptableState/FlashingCellState.d.ts +6 -2
  21. package/src/AdaptableState/FormatColumnState.d.ts +6 -2
  22. package/src/AdaptableState/InternalState.d.ts +2 -0
  23. package/src/AdaptableState/LayoutState.d.ts +3 -3
  24. package/src/AdaptableState/NamedQueryState.d.ts +3 -3
  25. package/src/AdaptableState/PlusMinusState.d.ts +6 -2
  26. package/src/AdaptableState/ShortcutState.d.ts +6 -2
  27. package/src/AdaptableState/StyledColumnState.d.ts +1 -1
  28. package/src/AdaptableState/ThemeState.d.ts +3 -3
  29. package/src/Api/AlertApi.d.ts +6 -0
  30. package/src/Api/CustomSortApi.d.ts +6 -0
  31. package/src/Api/FlashingCellApi.d.ts +6 -0
  32. package/src/Api/FormatColumnApi.d.ts +10 -4
  33. package/src/Api/GridApi.d.ts +18 -3
  34. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -0
  35. package/src/Api/Implementation/AlertApiImpl.js +3 -0
  36. package/src/Api/Implementation/ChartingApiImpl.js +2 -2
  37. package/src/Api/Implementation/CustomSortApiImpl.d.ts +1 -0
  38. package/src/Api/Implementation/CustomSortApiImpl.js +3 -0
  39. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
  40. package/src/Api/Implementation/FlashingCellApiImpl.js +3 -0
  41. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -5
  42. package/src/Api/Implementation/FormatColumnApiImpl.js +6 -5
  43. package/src/Api/Implementation/GridApiImpl.d.ts +4 -0
  44. package/src/Api/Implementation/GridApiImpl.js +15 -1
  45. package/src/Api/Implementation/LayoutApiImpl.js +1 -1
  46. package/src/Api/Implementation/NamedQueryApiImpl.js +2 -2
  47. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +1 -0
  48. package/src/Api/Implementation/PlusMinusApiImpl.js +3 -0
  49. package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
  50. package/src/Api/Implementation/ScheduleApiImpl.js +3 -0
  51. package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
  52. package/src/Api/Implementation/ShortcutApiImpl.js +3 -0
  53. package/src/Api/Implementation/SystemStatusApiImpl.js +4 -4
  54. package/src/Api/Internal/CalculatedColumnInternalApi.js +2 -2
  55. package/src/Api/Internal/FreeTextColumnInternalApi.js +2 -2
  56. package/src/Api/Internal/LayoutInternalApi.js +1 -1
  57. package/src/Api/Internal/NamedQueryInternalApi.js +4 -4
  58. package/src/Api/PlusMinusApi.d.ts +6 -0
  59. package/src/Api/ScheduleApi.d.ts +6 -0
  60. package/src/Api/ShortcutApi.d.ts +6 -0
  61. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +8 -0
  62. package/src/Redux/ActionsReducers/FormatColumnRedux.js +15 -0
  63. package/src/Redux/ActionsReducers/InternalRedux.d.ts +15 -0
  64. package/src/Redux/ActionsReducers/InternalRedux.js +36 -0
  65. package/src/Redux/Store/AdaptableStore.js +39 -16
  66. package/src/Strategy/BulkUpdateModule.js +8 -8
  67. package/src/Strategy/PlusMinusModule.js +1 -1
  68. package/src/Strategy/QuickSearchModule.js +1 -1
  69. package/src/Strategy/SettingsPanelModule.js +11 -7
  70. package/src/Strategy/SmartEditModule.js +10 -10
  71. package/src/Utilities/Services/DataService.js +1 -1
  72. package/src/Utilities/Services/Fdc3Service.js +4 -4
  73. package/src/Utilities/Services/ModuleService.js +1 -3
  74. package/src/Utilities/Services/ThemeService.js +2 -6
  75. package/src/Utilities/Services/ValidationService.js +1 -1
  76. package/src/Utilities/logDeprecation.js +3 -4
  77. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +2 -2
  78. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  79. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +2 -2
  80. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
  81. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  82. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
  83. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
  84. package/src/View/Components/CellPopup/index.js +1 -1
  85. package/src/View/Components/ColumnFilter/FloatingFilter.js +41 -3
  86. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +54 -2
  87. package/src/View/Components/EntityRulesEditor/Utilities.js +5 -5
  88. package/src/View/Components/NewScopeComponent.js +3 -3
  89. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +1 -1
  90. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +3 -3
  91. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
  92. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
  93. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
  94. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +3 -3
  95. package/src/View/Layout/LayoutViewPanel.js +1 -1
  96. package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
  97. package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
  98. package/src/View/Layout/Wizard/sections/GridFilterSection.js +1 -1
  99. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +3 -3
  100. package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
  101. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
  102. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +5 -5
  103. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +1 -1
  104. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +11 -11
  105. package/src/View/StateManagement/handleExportState.js +1 -1
  106. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  107. package/src/agGrid/AdaptableAgGrid.js +47 -51
  108. package/src/agGrid/AgGridAdapter.js +8 -8
  109. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -0
  110. package/src/agGrid/AgGridColumnAdapter.js +15 -4
  111. package/src/agGrid/AgGridExportAdapter.js +5 -5
  112. package/src/agGrid/AgGridThemeAdapter.js +2 -2
  113. package/src/components/OverlayTrigger/index.js +1 -1
  114. package/src/components/Select/Select.js +78 -15
  115. package/src/env.js +2 -2
  116. package/src/metamodel/adaptable.metamodel.d.ts +25 -18
  117. package/src/metamodel/adaptable.metamodel.js +1 -1
  118. package/src/migration/AdaptableUpgradeHelper.js +2 -2
  119. package/src/migration/VersionUpgrade17.js +4 -4
  120. package/src/migration/VersionUpgrade20.js +4 -4
  121. package/src/types.d.ts +2 -2
  122. package/tsconfig.esm.tsbuildinfo +1 -1
@@ -40,8 +40,8 @@ export class NamedQueryInternalApi extends ApiBase {
40
40
  if (namedQueryReferences.length) {
41
41
  const alert = {
42
42
  alertType: 'generic',
43
- header: 'Named Query could not be deleted',
44
- message: `It is still referenced in the following modules: ${namedQueryReferences.join(', ')}`,
43
+ header: 'Named Query',
44
+ message: `This Named Query cannot be deleted. It is still referenced by: ${namedQueryReferences.join(', ')}.`,
45
45
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
46
46
  };
47
47
  this.getAlertApi().displayAdaptableAlertNotification(alert);
@@ -56,8 +56,8 @@ export class NamedQueryInternalApi extends ApiBase {
56
56
  if (namedQueryReferences.length) {
57
57
  const alert = {
58
58
  alertType: 'generic',
59
- header: 'Named Query could not be renamed',
60
- message: `It is currently referenced in the following modules: ${namedQueryReferences.join(', ')}`,
59
+ header: 'Named Query',
60
+ message: `This Named Query cannot be renamed. It is currently referenced by: ${namedQueryReferences.join(', ')}.`,
61
61
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
62
62
  };
63
63
  this.getAlertApi().displayAdaptableAlertNotification(alert);
@@ -20,6 +20,12 @@ export interface PlusMinusApi {
20
20
  * @returns plus minus rule
21
21
  */
22
22
  getPlusMinusById(id: PlusMinusNudge['Uuid'], config?: LayoutExtendedConfig): PlusMinusNudge;
23
+ /**
24
+ * Retrieves a Plus Minus Nudge by its Name
25
+ * @param name Name of the Plus Minus Nudge
26
+ * @returns Plus Minus Nudge or undefined if not found
27
+ */
28
+ getPlusMinusNudgeByName(name: string): PlusMinusNudge | undefined;
23
29
  /**
24
30
  * Retrieves all active (not-suspended) Plus Minus Rules in Adaptable State with those with expressions first
25
31
  * @returns plus minus rules
@@ -23,6 +23,12 @@ export interface ScheduleApi {
23
23
  * @returns schedule
24
24
  */
25
25
  getScheduleById(id: BaseSchedule['Uuid'], config?: LayoutExtendedConfig): BaseSchedule;
26
+ /**
27
+ * Retrieves a Schedule by its Name
28
+ * @param name Name of the Schedule
29
+ * @returns Schedule or undefined if not found
30
+ */
31
+ getScheduleByName(name: string): BaseSchedule | undefined;
26
32
  /**
27
33
  * Retrieves all Reminder-based Schedules from Schedule State
28
34
  * @returns reminder schedules
@@ -19,6 +19,12 @@ export interface ShortcutApi {
19
19
  * @returns shortcut
20
20
  */
21
21
  getShortcutById(id: Shortcut['Uuid'], config?: LayoutExtendedConfig): Shortcut;
22
+ /**
23
+ * Retrieves a Shortcut by its Name
24
+ * @param name Name of the Shortcut
25
+ * @returns Shortcut or undefined if not found
26
+ */
27
+ getShortcutByName(name: string): Shortcut | undefined;
22
28
  /**
23
29
  * Gets all active (not-suspended) Shortcuts in Adaptable State
24
30
  * @returns shortcuts
@@ -1,5 +1,9 @@
1
1
  import { FormatColumnState, FormatColumn } from '../../AdaptableState/FormatColumnState';
2
2
  import * as Redux from 'redux';
3
+ /**
4
+ * @ReduxAction Many Format Columns have been added
5
+ */
6
+ export declare const FORMAT_COLUMN_ADD_BATCH = "FORMAT_COLUMN_ADD_BATCH";
3
7
  /**
4
8
  * @ReduxAction A Format Column has been added
5
9
  */
@@ -44,6 +48,9 @@ export declare const FORMAT_COLUMN_UNSUSPEND = "FORMAT_COLUMN_UNSUSPEND";
44
48
  * @ReduxAction FormatColumn Module is unsuspended, or activated
45
49
  */
46
50
  export declare const FORMAT_COLUMN_UNSUSPEND_ALL = "FORMAT_COLUMN_UNSUSPEND_ALL";
51
+ export interface FormatColumnAddBatchAction extends Redux.Action {
52
+ formatColumns: FormatColumn[];
53
+ }
47
54
  export interface FormatColumnAction extends Redux.Action {
48
55
  formatColumn: FormatColumn;
49
56
  }
@@ -70,6 +77,7 @@ export interface FormatColumnUnSuspendAllAction extends Redux.Action {
70
77
  export interface FormatColumnReadyAction extends Redux.Action {
71
78
  formatColumnState: FormatColumnState;
72
79
  }
80
+ export declare const FormatColumnsAdd: (formatColumns: FormatColumn[]) => FormatColumnAddBatchAction;
73
81
  export declare const FormatColumnAdd: (formatColumn: FormatColumn) => FormatColumnAddAction;
74
82
  export declare const FormatColumnEdit: (formatColumn: FormatColumn) => FormatColumnEditAction;
75
83
  export declare const FormatColumnDelete: (formatColumn: FormatColumn) => FormatColumnDeleteAction;
@@ -1,6 +1,10 @@
1
1
  import { EMPTY_ARRAY } from '../../Utilities/Constants/GeneralConstants';
2
2
  import AdaptableHelper from '../../Utilities/Helpers/AdaptableHelper';
3
3
  import { changeIsSuspendInList, suspendAllInList, unsuspendAllInList } from './utils';
4
+ /**
5
+ * @ReduxAction Many Format Columns have been added
6
+ */
7
+ export const FORMAT_COLUMN_ADD_BATCH = 'FORMAT_COLUMN_ADD_BATCH';
4
8
  /**
5
9
  * @ReduxAction A Format Column has been added
6
10
  */
@@ -45,6 +49,10 @@ export const FORMAT_COLUMN_UNSUSPEND = 'FORMAT_COLUMN_UNSUSPEND';
45
49
  * @ReduxAction FormatColumn Module is unsuspended, or activated
46
50
  */
47
51
  export const FORMAT_COLUMN_UNSUSPEND_ALL = 'FORMAT_COLUMN_UNSUSPEND_ALL';
52
+ export const FormatColumnsAdd = (formatColumns) => ({
53
+ type: FORMAT_COLUMN_ADD_BATCH,
54
+ formatColumns,
55
+ });
48
56
  export const FormatColumnAdd = (formatColumn) => ({
49
57
  type: FORMAT_COLUMN_ADD,
50
58
  formatColumn,
@@ -92,6 +100,13 @@ const initialState = {
92
100
  export const FormatColumnReducer = (state = initialState, action) => {
93
101
  let formatColumns;
94
102
  switch (action.type) {
103
+ case FORMAT_COLUMN_ADD_BATCH: {
104
+ const actionFormatColumns = action.formatColumns;
105
+ actionFormatColumns.forEach(AdaptableHelper.addAdaptableObjectPrimitives);
106
+ formatColumns = [].concat(state.FormatColumns);
107
+ formatColumns.push(...actionFormatColumns);
108
+ return { ...state, FormatColumns: formatColumns };
109
+ }
95
110
  case FORMAT_COLUMN_ADD: {
96
111
  const actionFormatColumn = action.formatColumn;
97
112
  AdaptableHelper.addAdaptableObjectPrimitives(actionFormatColumn);
@@ -15,6 +15,7 @@ import { SelectedCellInfo } from '../../AdaptableState/Selection/SelectedCellInf
15
15
  import { SelectedRowInfo } from '../../AdaptableState/Selection/SelectedRowInfo';
16
16
  import { CellHighlightInfo, RowHighlightInfo, RowsHighlightInfo } from '../../types';
17
17
  import { IRowNode } from 'ag-grid-enterprise';
18
+ import { ColumnHighlightInfo } from '../../AdaptableState/Common/ColumnHighlightInfo';
18
19
  export declare const SET_COLUMNS = "SET_COLUMNS";
19
20
  export declare const SET_SELECTED_CELLS = "SET_SELECTED_CELLS";
20
21
  export declare const SET_SELECTED_ROWS = "SET_SELECTED_ROWS";
@@ -23,6 +24,9 @@ export declare const SET_DASHBOARD_MODULE_BUTTONS = "SET_DASHBOARD_MODULE_BUTTON
23
24
  export declare const HIGHLIGHT_CELL_ADD = "HIGHLIGHT_CELL_ADD";
24
25
  export declare const HIGHLIGHT_CELL_DELETE = "HIGHLIGHT_CELL_DELETE";
25
26
  export declare const HIGHLIGHT_CELL_DELETE_ALL = "HIGHLIGHT_CELL_DELETE_ALL";
27
+ export declare const HIGHLIGHT_COLUMN_ADD = "HIGHLIGHT_COLUMN_ADD";
28
+ export declare const HIGHLIGHT_COLUMN_DELETE = "HIGHLIGHT_COLUMN_DELETE";
29
+ export declare const HIGHLIGHT_COLUMN_DELETE_ALL = "HIGHLIGHT_COLUMN_DELETE_ALL";
26
30
  export declare const HIGHLIGHT_ROW_ADD = "HIGHLIGHT_ROW_ADD";
27
31
  export declare const HIGHLIGHT_ROWS_ADD = "HIGHLIGHT_ROWS_ADD";
28
32
  export declare const HIGHLIGHT_ROW_DELETE = "HIGHLIGHT_ROW_DELETE";
@@ -93,6 +97,14 @@ export interface HighlightCellDeleteAction extends Redux.Action {
93
97
  }
94
98
  export interface HighlightCellDeleteAllAction extends Redux.Action {
95
99
  }
100
+ export interface HighlightColumnAddAction extends Redux.Action {
101
+ columnHighlightInfo: ColumnHighlightInfo;
102
+ }
103
+ export interface HighlightColumnDeleteAction extends Redux.Action {
104
+ columnId: ColumnHighlightInfo['columnId'];
105
+ }
106
+ export interface HighlightColumnDeleteAllAction extends Redux.Action {
107
+ }
96
108
  export interface HighlightRowAddAction extends Redux.Action {
97
109
  rowHighlightInfo: RowHighlightInfo;
98
110
  }
@@ -121,6 +133,9 @@ export interface SystemExportEndAction extends Redux.Action {
121
133
  export declare const HighlightCellAdd: (cellHighlightInfo: CellHighlightInfo) => HighlightCellAddAction;
122
134
  export declare const HighlightCellDelete: (primaryKeyValue: CellHighlightInfo["primaryKeyValue"], columnId: CellHighlightInfo["columnId"]) => HighlightCellDeleteAction;
123
135
  export declare const HighlightCellDeleteAll: () => HighlightCellDeleteAllAction;
136
+ export declare const HighlightColumnAdd: (columnHighlightInfo: ColumnHighlightInfo) => HighlightColumnAddAction;
137
+ export declare const HighlightColumnDelete: (columnId: ColumnHighlightInfo["columnId"]) => HighlightColumnDeleteAction;
138
+ export declare const HighlightColumnDeleteAll: () => HighlightColumnDeleteAllAction;
124
139
  export declare const HighlightRowAdd: (rowHighlightInfo: RowHighlightInfo) => HighlightRowAddAction;
125
140
  export declare const HighlightRowsAdd: (rowsHighlightInfo: RowsHighlightInfo) => HighlightRowsAddAction;
126
141
  export declare const HighlightRowDelete: (primaryKeyValue: RowHighlightInfo["primaryKeyValue"]) => HighlightRowDeleteAction;
@@ -22,6 +22,10 @@ export const SET_DASHBOARD_MODULE_BUTTONS = 'SET_DASHBOARD_MODULE_BUTTONS';
22
22
  export const HIGHLIGHT_CELL_ADD = 'HIGHLIGHT_CELL_ADD';
23
23
  export const HIGHLIGHT_CELL_DELETE = 'HIGHLIGHT_CELL_DELETE';
24
24
  export const HIGHLIGHT_CELL_DELETE_ALL = 'HIGHLIGHT_CELL_DELETE_ALL';
25
+ // Column Highlight
26
+ export const HIGHLIGHT_COLUMN_ADD = 'HIGHLIGHT_COLUMN_ADD';
27
+ export const HIGHLIGHT_COLUMN_DELETE = 'HIGHLIGHT_COLUMN_DELETE';
28
+ export const HIGHLIGHT_COLUMN_DELETE_ALL = 'HIGHLIGHT_COLUMN_DELETE_ALL';
25
29
  // Row Highlight
26
30
  export const HIGHLIGHT_ROW_ADD = 'HIGHLIGHT_ROW_ADD';
27
31
  export const HIGHLIGHT_ROWS_ADD = 'HIGHLIGHT_ROWS_ADD';
@@ -106,6 +110,17 @@ export const HighlightCellDelete = (primaryKeyValue, columnId) => ({
106
110
  export const HighlightCellDeleteAll = () => ({
107
111
  type: HIGHLIGHT_CELL_DELETE_ALL,
108
112
  });
113
+ export const HighlightColumnAdd = (columnHighlightInfo) => ({
114
+ type: HIGHLIGHT_COLUMN_ADD,
115
+ columnHighlightInfo: columnHighlightInfo,
116
+ });
117
+ export const HighlightColumnDelete = (columnId) => ({
118
+ type: HIGHLIGHT_COLUMN_DELETE,
119
+ columnId,
120
+ });
121
+ export const HighlightColumnDeleteAll = () => ({
122
+ type: HIGHLIGHT_COLUMN_DELETE_ALL,
123
+ });
109
124
  export const HighlightRowAdd = (rowHighlightInfo) => ({
110
125
  type: HIGHLIGHT_ROW_ADD,
111
126
  rowHighlightInfo: rowHighlightInfo,
@@ -349,6 +364,7 @@ const initialState = {
349
364
  SelectedCellInfo: null,
350
365
  SelectedRowInfo: null,
351
366
  CellHighlightInfo: EMPTY_ARRAY,
367
+ ColumnHighlightInfo: EMPTY_ARRAY,
352
368
  RowHighlightInfo: EMPTY_ARRAY,
353
369
  SettingsPanelModuleEntries: EMPTY_ARRAY,
354
370
  AdaptableAlerts: EMPTY_ARRAY,
@@ -448,6 +464,26 @@ export const InternalReducer = (state = initialState, action) => {
448
464
  CellHighlightInfo: [],
449
465
  });
450
466
  }
467
+ case HIGHLIGHT_COLUMN_ADD: {
468
+ const actionTypedAdd = action;
469
+ return Object.assign({}, state, {
470
+ ColumnHighlightInfo: [...state.ColumnHighlightInfo, actionTypedAdd.columnHighlightInfo],
471
+ });
472
+ }
473
+ case HIGHLIGHT_COLUMN_DELETE: {
474
+ const actionTypedDelete = action;
475
+ const actionId = actionTypedDelete.columnId;
476
+ return Object.assign({}, state, {
477
+ ColumnHighlightInfo: state.ColumnHighlightInfo.filter((columnHighlightInfo) => {
478
+ return columnHighlightInfo.columnId !== actionId;
479
+ }),
480
+ });
481
+ }
482
+ case HIGHLIGHT_COLUMN_DELETE_ALL: {
483
+ return Object.assign({}, state, {
484
+ ColumnHighlightInfo: [],
485
+ });
486
+ }
451
487
  case HIGHLIGHT_ROW_ADD: {
452
488
  const actionTypedAdd = action;
453
489
  return Object.assign({}, state, {
@@ -254,7 +254,7 @@ export class AdaptableStore {
254
254
  // END STATE LOAD
255
255
  this.loadStorageInProgress = false;
256
256
  }, (e) => {
257
- adaptable.api.consoleError('Failed to load previous Adaptable State : ', e);
257
+ adaptable.api.consoleError('Failed to load saved Adaptable state.', e);
258
258
  //for now i'm still initializing Adaptable even if loading state has failed....
259
259
  //we may revisit that later
260
260
  this.TheStore.dispatch(InitState());
@@ -263,7 +263,7 @@ export class AdaptableStore {
263
263
  this.TheStore.dispatch(PopupRedux.PopupShowAlert({
264
264
  alertType: 'generic',
265
265
  header: 'Configuration',
266
- message: 'Error loading your configuration:' + e,
266
+ message: 'Failed to load your configuration: ' + e,
267
267
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
268
268
  }));
269
269
  }));
@@ -581,6 +581,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
581
581
  * Action: We set up all columns again
582
582
  */
583
583
  case QuickSearchRedux.QUICK_SEARCH_SET_CELL_MATCHING_STYLE:
584
+ case FormatColumnRedux.FORMAT_COLUMN_ADD_BATCH:
584
585
  case FormatColumnRedux.FORMAT_COLUMN_ADD:
585
586
  case FormatColumnRedux.FORMAT_COLUMN_EDIT:
586
587
  case FormatColumnRedux.FORMAT_COLUMN_DELETE:
@@ -745,6 +746,27 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
745
746
  });
746
747
  return ret;
747
748
  }
749
+ case InternalRedux.HIGHLIGHT_COLUMN_ADD: {
750
+ const actionTyped = action;
751
+ const ret = next(action);
752
+ const columnHighlightInfo = actionTyped.columnHighlightInfo;
753
+ adaptable.api.gridApi.refreshColumn(columnHighlightInfo.columnId);
754
+ return ret;
755
+ }
756
+ case InternalRedux.HIGHLIGHT_COLUMN_DELETE: {
757
+ const actionTyped = action;
758
+ const ret = next(action);
759
+ adaptable.api.gridApi.refreshColumn(actionTyped.columnId);
760
+ return ret;
761
+ }
762
+ case InternalRedux.HIGHLIGHT_COLUMN_DELETE_ALL: {
763
+ const columnHighlightInfos = middlewareAPI.getState().Internal.ColumnHighlightInfo;
764
+ const ret = next(action);
765
+ columnHighlightInfos.forEach((columnHighlightInfo) => {
766
+ adaptable.api.gridApi.refreshColumn(columnHighlightInfo.columnId);
767
+ });
768
+ return ret;
769
+ }
748
770
  case InternalRedux.HIGHLIGHT_ROW_ADD: {
749
771
  const actionTyped = action;
750
772
  const ret = next(action);
@@ -1292,7 +1314,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1292
1314
  const alert = {
1293
1315
  alertType: 'generic',
1294
1316
  header: 'Team Sharing',
1295
- message: "Couldn't get shared items: " + error.message,
1317
+ message: 'Failed to retrieve shared items: ' + error.message,
1296
1318
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
1297
1319
  };
1298
1320
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -1362,7 +1384,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1362
1384
  const alert = {
1363
1385
  alertType: 'generic',
1364
1386
  header: 'Team Sharing',
1365
- message: `Couldn't share ${adaptable.ModuleService.getModuleFriendlyName(Module)}, there is already an existing active share for it: ${existingActiveSharedEntity.Description}`,
1387
+ message: `Cannot share ${adaptable.ModuleService.getModuleFriendlyName(Module)} an active share already exists: ${existingActiveSharedEntity.Description}.`,
1366
1388
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
1367
1389
  };
1368
1390
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -1386,7 +1408,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1386
1408
  const alert = {
1387
1409
  alertType: 'generic',
1388
1410
  header: 'Team Sharing',
1389
- message: `${adaptable.ModuleService.getModuleFriendlyName(Module)} Shared Successfully`,
1411
+ message: `${adaptable.ModuleService.getModuleFriendlyName(Module)} shared successfully.`,
1390
1412
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Success'),
1391
1413
  };
1392
1414
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -1397,7 +1419,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1397
1419
  const alert = {
1398
1420
  alertType: 'generic',
1399
1421
  header: 'Team Sharing',
1400
- message: "Couldn't share item: " + error.message,
1422
+ message: 'Failed to share item: ' + error.message,
1401
1423
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
1402
1424
  };
1403
1425
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -1422,10 +1444,11 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1422
1444
  if (sharedEntityDependants.length) {
1423
1445
  const alert = {
1424
1446
  alertType: 'generic',
1425
- header: `Cannot remove the shared item as it is referenced in:`,
1426
- message: sharedEntityDependants
1427
- .map((sharedEntity) => `${adaptable.ModuleService.getModuleFriendlyName(sharedEntity.Module)} ${sharedEntity.Description}`)
1428
- .join('\n'),
1447
+ header: 'Team Sharing',
1448
+ message: 'Cannot remove this shared item. It is referenced by: ' +
1449
+ sharedEntityDependants
1450
+ .map((sharedEntity) => `${adaptable.ModuleService.getModuleFriendlyName(sharedEntity.Module)} ${sharedEntity.Description}`)
1451
+ .join(', '),
1429
1452
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Warning'),
1430
1453
  };
1431
1454
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -1442,7 +1465,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1442
1465
  const alert = {
1443
1466
  alertType: 'generic',
1444
1467
  header: 'Team Sharing',
1445
- message: "Couldn't remove item: " + error.message,
1468
+ message: 'Failed to remove shared item: ' + error.message,
1446
1469
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
1447
1470
  };
1448
1471
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -1464,8 +1487,8 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1464
1487
  !adaptable.api.optionsApi.getTeamSharingOptions().suppressOverrideConfigWarning) {
1465
1488
  let confirmation = {
1466
1489
  CancelButtonText: 'Cancel Import',
1467
- Header: 'Overwriting Existing Object',
1468
- Msg: 'This import will overwrite an existing object in your State. Do you wish to continue?',
1490
+ Header: 'Overwrite Existing Item',
1491
+ Msg: 'This import will overwrite an existing item in your configuration. Do you wish to continue?',
1469
1492
  ConfirmButtonText: 'Import',
1470
1493
  CancelAction: null,
1471
1494
  ConfirmAction: processImportAction,
@@ -1511,7 +1534,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1511
1534
  const alert = {
1512
1535
  alertType: 'generic',
1513
1536
  header: 'Team Sharing',
1514
- message: `Item Successfully Imported`,
1537
+ message: 'Item imported successfully.',
1515
1538
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Success'),
1516
1539
  };
1517
1540
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -1551,7 +1574,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1551
1574
  const alert = {
1552
1575
  alertType: 'generic',
1553
1576
  header: 'Team Sharing',
1554
- message: "Couldn't update active item: " + error.message,
1577
+ message: 'Failed to update shared item: ' + error.message,
1555
1578
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
1556
1579
  };
1557
1580
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -1572,7 +1595,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1572
1595
  const alert = {
1573
1596
  alertType: 'generic',
1574
1597
  header: 'Team Sharing',
1575
- message: "Couldn't check for updates: " + error.message,
1598
+ message: 'Failed to check for updates: ' + error.message,
1576
1599
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
1577
1600
  };
1578
1601
  adaptable.api.alertApi.displayAdaptableAlertNotification(alert);
@@ -39,8 +39,8 @@ export class BulkUpdateModule extends AdaptableModuleBase {
39
39
  IsValid: false,
40
40
  Alert: {
41
41
  alertType: 'generic',
42
- header: 'Bulk Update Error',
43
- message: 'Cannot edit while Grid is in Pivot Mode.',
42
+ header: 'Bulk Update',
43
+ message: 'Editing is not available in Pivot Mode.',
44
44
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
45
45
  },
46
46
  };
@@ -50,8 +50,8 @@ export class BulkUpdateModule extends AdaptableModuleBase {
50
50
  IsValid: false,
51
51
  Alert: {
52
52
  alertType: 'generic',
53
- header: 'Bulk Update Error',
54
- message: 'No cells are selected.\nPlease select some cells.',
53
+ header: 'Bulk Update',
54
+ message: 'No cells selected. Please select one or more cells to continue.',
55
55
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
56
56
  },
57
57
  };
@@ -61,8 +61,8 @@ export class BulkUpdateModule extends AdaptableModuleBase {
61
61
  IsValid: false,
62
62
  Alert: {
63
63
  alertType: 'generic',
64
- header: 'Bulk Update Error',
65
- message: 'Bulk Update only supports single column edit.\nPlease adjust cell selection.',
64
+ header: 'Bulk Update',
65
+ message: 'Bulk Update supports editing a single column at a time. Please adjust your selection.',
66
66
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
67
67
  },
68
68
  };
@@ -74,8 +74,8 @@ export class BulkUpdateModule extends AdaptableModuleBase {
74
74
  IsValid: false,
75
75
  Alert: {
76
76
  alertType: 'generic',
77
- header: 'Bulk Update Error',
78
- message: 'Bulk Update is not permitted on readonly cells.\nPlease adjust the cell selection.',
77
+ header: 'Bulk Update',
78
+ message: 'Bulk Update is not available for read-only cells. Please adjust your selection.',
79
79
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
80
80
  },
81
81
  };
@@ -186,7 +186,7 @@ export class PlusMinusModule extends AdaptableModuleBase {
186
186
  failedMessages.push(failedMessage);
187
187
  }
188
188
  });
189
- this.api.alertApi.showAlertError('Nudge(s) failed rule', failedMessages.toString());
189
+ this.api.alertApi.showAlertError('Plus/Minus', 'One or more nudge values were rejected by validation rules: ' + failedMessages.toString());
190
190
  }
191
191
  }
192
192
  getTeamSharingAction() {
@@ -24,7 +24,7 @@ export class QuickSearchModule extends AdaptableModuleBase {
24
24
  // Check for AG Grid QuickFilterModule if running Filter After Quick Search
25
25
  if (api.optionsApi.getQuickSearchOptions().filterGridAfterQuickSearch) {
26
26
  if (!api.internalApi.getAgGridModulesAdapter().isAgGridModuleRegistered('QuickFilterModule')) {
27
- api.consoleError('The AG Grid "GridFilter" Module is required if running Quick Search as Filter; Quick Search will run but no Filters will be applied');
27
+ api.consoleError('Quick Search with filterGridAfterQuickSearch requires the AG Grid "QuickFilterModule". Quick Search will run but grid filters will not be applied.');
28
28
  }
29
29
  }
30
30
  const isServerSideRowModel = agGridApi.getGridOption('rowModelType') === 'serverSide';
@@ -7,15 +7,19 @@ export class SettingsPanelModule extends AdaptableModuleBase {
7
7
  super(ModuleConstants.SettingsPanelModuleId, friendlyName, 'settings', null, 'Manage all Adaptable Settings', api);
8
8
  }
9
9
  createColumnMenuItems(column) {
10
- return [
11
- // To do : get the icon and name from settings in case they have changed?
12
- this.createMenuItemReduxAction('settings-panel-open', 'Open ' + this.moduleInfo.FriendlyName, this.moduleInfo.Glyph, PopupRedux.PopupShowScreen()),
13
- ];
10
+ if (this.isModuleVisible()) {
11
+ return [
12
+ // To do : get the icon and name from settings in case they have changed?
13
+ this.createMenuItemReduxAction('settings-panel-open', 'Open ' + this.moduleInfo.FriendlyName, this.moduleInfo.Glyph, PopupRedux.PopupShowScreen()),
14
+ ];
15
+ }
14
16
  }
15
17
  createContextMenuItems(menuContext) {
16
- return [
17
- this.createMenuItemReduxAction('settings-panel-open', 'Open ' + this.moduleInfo.FriendlyName, this.moduleInfo.Glyph, PopupRedux.PopupShowScreen()),
18
- ];
18
+ if (this.isModuleVisible()) {
19
+ return [
20
+ this.createMenuItemReduxAction('settings-panel-open', 'Open ' + this.moduleInfo.FriendlyName, this.moduleInfo.Glyph, PopupRedux.PopupShowScreen()),
21
+ ];
22
+ }
19
23
  }
20
24
  createModuleMenuItem(source) {
21
25
  if (this.isModuleVisible()) {
@@ -43,8 +43,8 @@ export class SmartEditModule extends AdaptableModuleBase {
43
43
  return {
44
44
  Alert: {
45
45
  alertType: 'generic',
46
- header: 'Smart Edit Error',
47
- message: 'Cannot edit while Grid is in Pivot Mode.',
46
+ header: 'Smart Edit',
47
+ message: 'Editing is not available in Pivot Mode.',
48
48
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
49
49
  },
50
50
  };
@@ -53,8 +53,8 @@ export class SmartEditModule extends AdaptableModuleBase {
53
53
  return {
54
54
  Alert: {
55
55
  alertType: 'generic',
56
- header: 'Smart Edit Error',
57
- message: 'No cells are selected.\nPlease select some cells.',
56
+ header: 'Smart Edit',
57
+ message: 'No cells selected. Please select one or more cells to continue.',
58
58
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
59
59
  },
60
60
  };
@@ -63,8 +63,8 @@ export class SmartEditModule extends AdaptableModuleBase {
63
63
  return {
64
64
  Alert: {
65
65
  alertType: 'generic',
66
- header: 'Smart Edit Error',
67
- message: 'Smart Edit only supports single column edit.\nPlease adjust cell selection.',
66
+ header: 'Smart Edit',
67
+ message: 'Smart Edit supports editing a single column at a time. Please adjust your selection.',
68
68
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
69
69
  },
70
70
  };
@@ -75,8 +75,8 @@ export class SmartEditModule extends AdaptableModuleBase {
75
75
  return {
76
76
  Alert: {
77
77
  alertType: 'generic',
78
- header: 'Smart Edit Error',
79
- message: 'Smart Edit only supports editing of numeric columns.\nPlease adjust the cell selection.',
78
+ header: 'Smart Edit',
79
+ message: 'Smart Edit only applies to numeric columns. Please adjust your selection.',
80
80
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
81
81
  },
82
82
  };
@@ -87,8 +87,8 @@ export class SmartEditModule extends AdaptableModuleBase {
87
87
  return {
88
88
  Alert: {
89
89
  alertType: 'generic',
90
- header: 'Smart Edit Error',
91
- message: 'Smart Edit is not permitted on readonly cells.\nPlease adjust the cell selection.',
90
+ header: 'Smart Edit',
91
+ message: 'Smart Edit is not available for read-only cells. Please adjust your selection.',
92
92
  alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
93
93
  },
94
94
  };
@@ -64,7 +64,7 @@ export class DataService {
64
64
  // why 2 and not 3 or 1? no good reason, only seems like a reasonable waiting time :)
65
65
  const UNDO_WAIT = 2000;
66
66
  const timeoutId = setTimeout(() => {
67
- this.adaptable.logger.warn(`Undo change was NOT handled, this should NOT happen: PK(${change.primaryKeyValue}) Col(${change.column}) RevertedValue(${change.newValue}) NewValue(${change.oldValue})`);
67
+ this.adaptable.logger.warn(`Undo change was not handled within timeout: column="${change.column}", primaryKey="${change.primaryKeyValue}", from=${change.newValue} to=${change.oldValue}.`);
68
68
  this.extractUndoChange(change);
69
69
  }, UNDO_WAIT);
70
70
  this.undoChangeTimers.set(undoChangeKey, timeoutId);
@@ -78,7 +78,7 @@ export class Fdc3Service {
78
78
  getDesktopAgent() {
79
79
  if (globalThis.fdc3 == null && !this.loggedAgentError) {
80
80
  this.loggedAgentError = true;
81
- this.adaptableApi.consoleError('FDC3 Desktop Agent not found. This should be provided by the wrapper application.');
81
+ this.adaptableApi.consoleError('FDC3 Desktop Agent not found. The host application must provide the FDC3 agent on globalThis.fdc3.');
82
82
  }
83
83
  return globalThis.fdc3;
84
84
  }
@@ -161,11 +161,11 @@ export class Fdc3Service {
161
161
  if (!this.getFdc3Options().enableLogging) {
162
162
  return;
163
163
  }
164
- this.adaptableApi.consoleLog(`FDC3::${type} - `, params.join(' : '));
164
+ this.adaptableApi.consoleLog(`FDC3 ${type}: ${params.join(' : ')}`);
165
165
  }
166
166
  logFdc3Error(error) {
167
- this.adaptableApi.consoleError(`FDC3 error`, error);
168
- this.adaptableApi.alertApi.showAlertError('FDC3 Error', 'See console for details');
167
+ this.adaptableApi.consoleError('FDC3 operation failed.', error);
168
+ this.adaptableApi.alertApi.showAlertError('FDC3', 'An error occurred. See the browser console for details.');
169
169
  }
170
170
  getFdc3Api() {
171
171
  return this.adaptableApi.fdc3Api;
@@ -32,9 +32,7 @@ export class ModuleService {
32
32
  const registeredAgGridModuleNames = agGridModulesAdapter.getAgGridRegisteredModuleNames();
33
33
  const missingAgGridModuleNames = mandatoryAgGridModuleNames.filter((moduleName) => !registeredAgGridModuleNames.includes(moduleName));
34
34
  if (missingAgGridModuleNames.length) {
35
- this.adaptableApi.consoleError(`AdapTable requires the following AG Grid modules to be registered: ${missingAgGridModuleNames.join(', ')}.
36
-
37
- See for more information: ${AgGridRequiredModulesDocsLink}`);
35
+ this.adaptableApi.consoleError(`Adaptable requires these AG Grid modules: ${missingAgGridModuleNames.join(', ')}. Please register them. See: ${AgGridRequiredModulesDocsLink}`);
38
36
  }
39
37
  // log optional missing AG Grid dependencies for all modules
40
38
  this.getModuleCollection().forEach((adaptableModule) => {
@@ -70,15 +70,11 @@ export class ThemeService {
70
70
  return val;
71
71
  });
72
72
  if (abLoaded !== '777') {
73
- logger.consoleError('Please import Adaptable styles from "@adaptabletools/adaptable/index.css"');
73
+ logger.consoleError('Adaptable styles not detected. Please import "@adaptabletools/adaptable/index.css".');
74
74
  }
75
75
  const isCustomUserTheme = !this.api.themeApi.internalApi.isSystemTheme(themeName);
76
76
  if (!isCustomUserTheme && abThemeLoaded !== themeName) {
77
- logger.consoleWarn(`Theme "${themeName}" doesn't seem to be loaded! Make sure you import the css file for the "${themeName}" theme!
78
-
79
- If it's an AdapTable system theme, try
80
-
81
- import "@adaptabletools/adaptable/themes/${themeName}.css"`);
77
+ logger.consoleWarn(`Theme "${themeName}" does not appear to be loaded. Ensure the CSS file is imported, e.g.: import "@adaptabletools/adaptable/themes/${themeName}.css".`);
82
78
  }
83
79
  }
84
80
  // prefers-color-scheme
@@ -53,7 +53,7 @@ export class ValidationService {
53
53
  let alert = {
54
54
  alertType: 'cellChanged',
55
55
  header: 'Alert',
56
- message: 'Perform Edit Alert Fired',
56
+ message: 'A validation rule was triggered for this edit.',
57
57
  alertDefinition: failedRules[0],
58
58
  cellDataChangedInfo: cellDataChangedInfo,
59
59
  };
@@ -11,13 +11,12 @@ const doOnce = (func, key) => {
11
11
  };
12
12
  export const logDeprecation = (logger, typeName, oldProp, newProp, message) => {
13
13
  const newPropMsg = newProp ? `Please use '${typeName}.${newProp}()' instead. ` : '';
14
- doOnce(() => logger.consoleWarn(`'${typeName}.${oldProp}()' is deprecated. ${newPropMsg}${message ?? ''}`), `Deprecated_${oldProp}`);
14
+ doOnce(() => logger.consoleWarn(`${typeName}.${oldProp}() is deprecated. ${newPropMsg}${message ?? ''}`), `Deprecated_${oldProp}`);
15
15
  };
16
16
  export const logDeprecationExternal = (logger, oldTypeName, oldProp, newTypeName, newProp, message) => {
17
17
  const newPropMsg = newProp ? `Please use '${newTypeName}.${newProp}()' instead. ` : '';
18
- doOnce(() => logger.consoleWarn(`'${oldTypeName}.${oldProp}()' is deprecated. ${newPropMsg}${message ?? ''}`), `Deprecated_${oldProp}`);
18
+ doOnce(() => logger.consoleWarn(`${oldTypeName}.${oldProp}() is deprecated. ${newPropMsg}${message ?? ''}`), `Deprecated_${oldProp}`);
19
19
  };
20
20
  export const logDeprecationInternal = (logger, typeName, oldProp) => {
21
- doOnce(() => logger.consoleWarn(`'${typeName}.${oldProp}()' is deprecated. The method will be removed in the next major release.
22
- Please contact support if you need the missing functionality.`), `Deprecated_${oldProp}`);
21
+ doOnce(() => logger.consoleWarn(`${typeName}.${oldProp}() is deprecated and will be removed in the next major release. Contact support if you need this functionality.`), `Deprecated_${oldProp}`);
23
22
  };