@adaptabletools/adaptable 22.0.0-canary.0 → 22.0.0-canary.2

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 (138) hide show
  1. package/README.md +4 -6
  2. package/index.css +3 -14
  3. package/index.css.map +1 -1
  4. package/package.json +1 -1
  5. package/src/AdaptableInterfaces/IAdaptable.d.ts +9 -0
  6. package/src/AdaptableOptions/AdaptablePlugin.js +6 -1
  7. package/src/AdaptableOptions/ExportOptions.d.ts +1 -2
  8. package/src/AdaptableOptions/FilterOptions.d.ts +3 -0
  9. package/src/AdaptableState/Common/AdaptableColumn.d.ts +6 -0
  10. package/src/AdaptableState/Common/RowDataChangedInfo.d.ts +3 -0
  11. package/src/AdaptableState/InitialState.d.ts +1 -1
  12. package/src/AdaptableState/Selection/GridCell.d.ts +9 -0
  13. package/src/Api/GridApi.d.ts +14 -0
  14. package/src/Api/Implementation/ActionColumnApiImpl.js +1 -0
  15. package/src/Api/Implementation/AdaptableApiImpl.js +52 -0
  16. package/src/Api/Implementation/AlertApiImpl.js +1 -0
  17. package/src/Api/Implementation/ApiBase.js +1 -0
  18. package/src/Api/Implementation/CalculatedColumnApiImpl.js +1 -0
  19. package/src/Api/Implementation/ChartingApiImpl.js +4 -0
  20. package/src/Api/Implementation/ColumnApiImpl.js +1 -0
  21. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -0
  22. package/src/Api/Implementation/CommentsApiImpl.js +1 -0
  23. package/src/Api/Implementation/CustomSortApiImpl.js +1 -0
  24. package/src/Api/Implementation/DashboardApiImpl.js +1 -0
  25. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +12 -15
  26. package/src/Api/Implementation/DataImportApiImpl.js +1 -0
  27. package/src/Api/Implementation/DataSetApiImpl.js +1 -0
  28. package/src/Api/Implementation/EntitlementApiImpl.js +1 -0
  29. package/src/Api/Implementation/EventApiImpl.js +16 -14
  30. package/src/Api/Implementation/ExportApiImpl.js +1 -0
  31. package/src/Api/Implementation/ExpressionApiImpl.js +1 -0
  32. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -0
  33. package/src/Api/Implementation/FilterApiImpl.js +3 -0
  34. package/src/Api/Implementation/FlashingCellApiImpl.js +1 -0
  35. package/src/Api/Implementation/FormatColumnApiImpl.js +1 -0
  36. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -0
  37. package/src/Api/Implementation/GridApiImpl.d.ts +9 -0
  38. package/src/Api/Implementation/GridApiImpl.js +17 -0
  39. package/src/Api/Implementation/GridFilterApiImpl.js +1 -0
  40. package/src/Api/Implementation/LayoutApiImpl.js +1 -0
  41. package/src/Api/Implementation/NamedQueryApiImpl.js +1 -0
  42. package/src/Api/Implementation/NoteApiImpl.js +1 -0
  43. package/src/Api/Implementation/PredicateApiImpl.js +1 -0
  44. package/src/Api/Implementation/RowFormApiImpl.js +1 -0
  45. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -0
  46. package/src/Api/Implementation/SystemStatusApiImpl.js +2 -0
  47. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  48. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  49. package/src/Api/Implementation/UserInterfaceApiImpl.js +2 -1
  50. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +6 -0
  51. package/src/Redux/Store/AdaptableStore.js +57 -50
  52. package/src/Strategy/AdaptableModuleBase.js +4 -0
  53. package/src/Strategy/AlertModule.js +1 -0
  54. package/src/Strategy/CalculatedColumnModule.js +1 -0
  55. package/src/Strategy/CellSummaryModule.js +1 -1
  56. package/src/Strategy/DataChangeHistoryModule.js +1 -0
  57. package/src/Strategy/FlashingCellModule.js +1 -0
  58. package/src/Strategy/FreeTextColumnModule.js +1 -0
  59. package/src/Strategy/LayoutModule.js +2 -1
  60. package/src/Strategy/PlusMinusModule.js +2 -0
  61. package/src/Strategy/ScheduleModule.js +1 -0
  62. package/src/Strategy/ShortcutModule.js +2 -0
  63. package/src/Strategy/TeamSharingModule.js +10 -10
  64. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +18 -17
  65. package/src/Utilities/Constants/DocumentationLinkConstants.js +18 -17
  66. package/src/Utilities/ExpressionFunctions/deepMap.js +31 -31
  67. package/src/Utilities/MenuItem.js +18 -0
  68. package/src/Utilities/Services/AggregatedScalarLiveValue.js +8 -0
  69. package/src/Utilities/Services/AlertService.js +6 -4
  70. package/src/Utilities/Services/AnnotationsService.js +3 -0
  71. package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -1
  72. package/src/Utilities/Services/ChartingService.js +1 -0
  73. package/src/Utilities/Services/DataService.js +10 -2
  74. package/src/Utilities/Services/Fdc3Service.js +5 -3
  75. package/src/Utilities/Services/FlashingCellService.js +5 -0
  76. package/src/Utilities/Services/LicenseService/index.js +1 -1
  77. package/src/Utilities/Services/MetamodelService.js +2 -2
  78. package/src/Utilities/Services/ModuleService.js +38 -38
  79. package/src/Utilities/Services/QueryLanguageService.js +6 -5
  80. package/src/Utilities/Services/RowFormService.js +1 -0
  81. package/src/Utilities/Services/RowSummaryService.js +10 -7
  82. package/src/Utilities/Services/TeamSharingService.js +3 -1
  83. package/src/Utilities/Services/ThemeService.js +11 -9
  84. package/src/Utilities/Services/ValidationService.js +1 -0
  85. package/src/Utilities/createAgStatusPanelComponent.js +3 -0
  86. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +1 -0
  87. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +8 -8
  88. package/src/View/CellSummary/CellSummaryViewPanel.js +1 -0
  89. package/src/View/Components/Buttons/ButtonBase/index.js +9 -9
  90. package/src/View/Components/Buttons/EntityListActionButtons.js +18 -18
  91. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -1
  92. package/src/View/Components/ExpressionWizard.js +5 -5
  93. package/src/View/Components/Panels/PanelDashboard/index.js +8 -8
  94. package/src/View/Components/Panels/PanelToolPanel/index.js +7 -7
  95. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -0
  96. package/src/View/CustomSort/CustomSortSummary.js +13 -13
  97. package/src/View/FormatColumn/FormatColumnSummary.js +13 -13
  98. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +13 -13
  99. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -0
  100. package/src/View/Theme/ThemePopup.js +13 -16
  101. package/src/agGrid/Adaptable.js +4 -0
  102. package/src/agGrid/AdaptableAgGrid.d.ts +9 -0
  103. package/src/agGrid/AdaptableAgGrid.js +160 -37
  104. package/src/agGrid/AdaptableFilterHandler.js +4 -0
  105. package/src/agGrid/AdaptableLogger.d.ts +3 -0
  106. package/src/agGrid/AdaptableLogger.js +10 -0
  107. package/src/agGrid/AgGridAdapter.js +11 -1
  108. package/src/agGrid/AgGridColumnAdapter.js +2 -0
  109. package/src/agGrid/AgGridExportAdapter.js +10 -9
  110. package/src/agGrid/AgGridFilterAdapter.js +4 -0
  111. package/src/agGrid/AgGridFloatingFilterAdapter.js +3 -0
  112. package/src/agGrid/AgGridMenuAdapter.js +1 -0
  113. package/src/agGrid/AgGridModulesAdapter.js +2 -1
  114. package/src/agGrid/AgGridOptionsService.js +3 -0
  115. package/src/agGrid/AgGridThemeAdapter.js +2 -0
  116. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +5 -0
  117. package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -0
  118. package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -0
  119. package/src/agGrid/editors/AdaptableDateEditor/index.js +6 -3
  120. package/src/agGrid/editors/AdaptableNumberEditor/index.js +16 -12
  121. package/src/agGrid/editors/AdaptablePercentageEditor/index.js +17 -13
  122. package/src/agGrid/index.d.ts +6 -0
  123. package/src/agGrid/index.js +6 -0
  124. package/src/components/Datepicker/index.js +1 -1
  125. package/src/components/overlayBaseZIndex.js +1 -1
  126. package/src/components/utils/useContainerScrollObserver/index.js +17 -14
  127. package/src/devTools/index.js +54 -53
  128. package/src/env.js +2 -2
  129. package/src/layout-manager/src/LMEmitter.js +11 -11
  130. package/src/layout-manager/src/LMLogger.js +7 -0
  131. package/src/layout-manager/src/index.js +56 -51
  132. package/src/metamodel/adaptable.metamodel.d.ts +57 -0
  133. package/src/metamodel/adaptable.metamodel.js +1 -1
  134. package/src/migration/AdaptableUpgradeHelper.js +3 -0
  135. package/src/migration/VersionUpgrade.js +1 -0
  136. package/src/migration/VersionUpgrade17.js +1 -2
  137. package/src/parser/src/ExpressionEvaluationError.js +1 -0
  138. package/tsconfig.esm.tsbuildinfo +1 -1
@@ -1,6 +1,7 @@
1
1
  import Helper from '../Helpers/Helper';
2
2
  import { AgGridRequiredModulesDocsLink, HOST_URL_DOCS, } from '../Constants/DocumentationLinkConstants';
3
3
  export class ModuleService {
4
+ adaptableApi;
4
5
  constructor(adaptableApi) {
5
6
  this.adaptableApi = adaptableApi;
6
7
  this.adaptableApi = adaptableApi;
@@ -105,84 +106,83 @@ export class ModuleService {
105
106
  }
106
107
  getModuleDocumentationPageByModule(adaptableModule) {
107
108
  let url = `${HOST_URL_DOCS}/`;
108
- let learnUrl = url + 'guide/';
109
109
  switch (adaptableModule) {
110
110
  case 'Alert':
111
- return learnUrl + 'handbook-alerting';
111
+ return url + 'handbook-alerting';
112
112
  case 'BulkUpdate':
113
113
  return url + 'handbook-editing-bulk-update';
114
114
  case 'CalculatedColumn':
115
- return learnUrl + 'handbook-calculated-column';
115
+ return url + 'handbook-calculated-column';
116
116
  case 'CellSummary':
117
- return learnUrl + 'handbook-summarising';
117
+ return url + 'handbook-summarising';
118
118
  case 'Charting':
119
- return learnUrl + 'handbook-charts';
119
+ return url + 'handbook-charts';
120
120
  case 'ColumnFilter':
121
- return learnUrl + 'handbook-column-filter';
121
+ return url + 'handbook-column-filter';
122
122
  case 'ColumnInfo':
123
- return learnUrl + 'dev-guide-column-grid-column-info';
123
+ return url + 'dev-guide-column-grid-column-info';
124
124
  case 'Comment':
125
- return learnUrl + 'handbook-comments';
125
+ return url + 'handbook-comments';
126
126
  case 'CustomSort':
127
- return learnUrl + 'handbook-custom-sorting';
127
+ return url + 'handbook-custom-sorting';
128
128
  case 'Dashboard':
129
- return learnUrl + 'ui-dashboard';
129
+ return url + 'ui-dashboard';
130
130
  case 'DataChangeHistory':
131
- return learnUrl + 'handbook-monitoring-data-change-history';
131
+ return url + 'handbook-monitoring-data-change-history';
132
132
  case 'DataImport':
133
- return learnUrl + 'handbook-importing';
133
+ return url + 'handbook-importing';
134
134
  case 'DataSet':
135
- return learnUrl + 'handbook-data-sets';
135
+ return url + 'handbook-data-sets';
136
136
  case 'Export':
137
- return learnUrl + 'handbook-exporting';
137
+ return url + 'handbook-exporting';
138
138
  case 'Fdc3':
139
- return learnUrl + 'handbook-fdc3';
139
+ return url + 'handbook-fdc3';
140
140
  case 'FlashingCell':
141
- return learnUrl + 'handbook-flashing-cell';
141
+ return url + 'handbook-flashing-cell';
142
142
  case 'FormatColumn':
143
- return learnUrl + 'handbook-column-formatting';
143
+ return url + 'handbook-column-formatting';
144
144
  case 'FreeTextColumn':
145
- return learnUrl + 'handbook-freetext-column';
145
+ return url + 'handbook-freetext-column';
146
146
  case 'GridFilter':
147
- return learnUrl + 'handbook-grid-filter';
147
+ return url + 'handbook-grid-filter';
148
148
  case 'GridInfo':
149
- return learnUrl + 'dev-guide-column-grid-column-info';
149
+ return url + 'dev-guide-column-grid-column-info';
150
150
  case 'Layout':
151
- return learnUrl + 'handbook-layouts';
151
+ return url + 'handbook-layouts';
152
152
  case 'NamedQuery':
153
- return learnUrl + 'handbook-named-queries';
153
+ return url + 'handbook-named-queries';
154
154
  case 'Note':
155
- return learnUrl + 'handbook-notes';
155
+ return url + 'handbook-notes';
156
156
  case 'PlusMinus':
157
- return learnUrl + 'handbook-editing-plus-minus';
157
+ return url + 'handbook-editing-plus-minus';
158
158
  case 'QuickSearch':
159
- return learnUrl + 'handbook-quick-search';
159
+ return url + 'handbook-quick-search';
160
160
  case 'Schedule':
161
- return learnUrl + 'handbook-scheduling';
161
+ return url + 'handbook-scheduling';
162
162
  case 'SettingsPanel':
163
- return learnUrl + 'ui-settings-panel';
163
+ return url + 'ui-settings-panel';
164
164
  case 'Shortcut':
165
- return learnUrl + 'handbook-editing-shortcut';
165
+ return url + 'handbook-editing-shortcut';
166
166
  case 'SmartEdit':
167
- return learnUrl + 'handbook-editing-smart-edit';
167
+ return url + 'handbook-editing-smart-edit';
168
168
  case 'StateManagement':
169
- return learnUrl + 'dev-guide-adaptable-state-management';
169
+ return url + 'dev-guide-adaptable-state-management';
170
170
  case 'StatusBar':
171
- return learnUrl + 'ui-status-bar';
171
+ return url + 'ui-status-bar';
172
172
  case 'StyledColumn':
173
- return learnUrl + 'handbook-styled-column-overview';
173
+ return url + 'handbook-styled-column-overview';
174
174
  case 'SystemStatus':
175
- return learnUrl + 'handbook-system-status-message';
175
+ return url + 'handbook-system-status-message';
176
176
  case 'TeamSharing':
177
- return learnUrl + 'handbook-team-sharing';
177
+ return url + 'handbook-team-sharing';
178
178
  case 'Theme':
179
- return learnUrl + 'handbook-theming';
179
+ return url + 'handbook-theming';
180
180
  case 'ToolPanel':
181
- return learnUrl + 'ui-tool-panel';
181
+ return url + 'ui-tool-panel';
182
182
  case 'IPushPull':
183
- return learnUrl + 'integrations-ipushpull';
183
+ return url + 'integrations-ipushpull';
184
184
  case 'OpenFin':
185
- return learnUrl + 'integrations-openfin';
185
+ return url + 'integrations-openfin';
186
186
  default:
187
187
  return 'good';
188
188
  }
@@ -9,13 +9,14 @@ import { scalarExpressionFunctions } from '../ExpressionFunctions/scalarExpressi
9
9
  import { getTypedKeys } from '../Extensions/TypeExtensions';
10
10
  import { AggregatedScalarLiveValue } from './AggregatedScalarLiveValue';
11
11
  export class QueryLanguageService {
12
+ adaptableApi;
13
+ cacheBooleanValidation = new Map();
14
+ cacheObservableValidation = new Map();
15
+ cacheAggregatedBooleanValidation = new Map();
16
+ cacheAggregatedScalarValidation = new Map();
17
+ cacheModuleSpecificExpressionFunctions = new Map();
12
18
  constructor(adaptableApi) {
13
19
  this.adaptableApi = adaptableApi;
14
- this.cacheBooleanValidation = new Map();
15
- this.cacheObservableValidation = new Map();
16
- this.cacheAggregatedBooleanValidation = new Map();
17
- this.cacheAggregatedScalarValidation = new Map();
18
- this.cacheModuleSpecificExpressionFunctions = new Map();
19
20
  }
20
21
  evaluateBooleanExpression(expression, module, rowNode, evalContext) {
21
22
  if (expression == undefined) {
@@ -1,4 +1,5 @@
1
1
  export class RowFormService {
2
+ adaptableApi;
2
3
  constructor(adaptableApi) {
3
4
  this.adaptableApi = adaptableApi;
4
5
  if (adaptableApi.optionsApi.getRowFormOptions().autoHandle) {
@@ -10,15 +10,12 @@ import isEqual from 'lodash/isEqual';
10
10
  * The logic is extracted here to make it easier to follow
11
11
  */
12
12
  export class RowSummaryService {
13
+ api;
14
+ cachedCellSummary = new Map();
15
+ previousRowSummaries;
16
+ previousLayout;
13
17
  constructor(api) {
14
18
  this.api = api;
15
- this.cachedCellSummary = new Map();
16
- this._throttleAcumulatedColumnsThatChanged = new Set();
17
- /**
18
- *
19
- * @param colId optional to evaluate only one column
20
- */
21
- this._throttledEvaluateRowSummary = throttle(this.evaluateRowSummary, 300);
22
19
  }
23
20
  onAdaptableReady() {
24
21
  this.rowSummariesSubscriptions();
@@ -66,12 +63,18 @@ export class RowSummaryService {
66
63
  this.throttledEvaluateRowSummary();
67
64
  });
68
65
  }
66
+ _throttleAcumulatedColumnsThatChanged = new Set();
69
67
  throttledEvaluateRowSummary(reason) {
70
68
  if (reason) {
71
69
  reason.columnIds.forEach((col) => this._throttleAcumulatedColumnsThatChanged.add(col));
72
70
  }
73
71
  this._throttledEvaluateRowSummary(reason);
74
72
  }
73
+ /**
74
+ *
75
+ * @param colId optional to evaluate only one column
76
+ */
77
+ _throttledEvaluateRowSummary = throttle(this.evaluateRowSummary, 300);
75
78
  evaluateRowSummary(reason) {
76
79
  if (this._throttleAcumulatedColumnsThatChanged.size > 0) {
77
80
  const columnIds = Array.from(this._throttleAcumulatedColumnsThatChanged.values());
@@ -1,9 +1,11 @@
1
1
  import { createUuid } from '../../AdaptableState/Uuid';
2
2
  import ObjectFactory from '../ObjectFactory';
3
3
  export class TeamSharingService {
4
+ adaptableApi;
5
+ dismissedNotifications = [];
6
+ updateCheckTimerId;
4
7
  constructor(adaptableApi) {
5
8
  this.adaptableApi = adaptableApi;
6
- this.dismissedNotifications = [];
7
9
  const teamSharingOptions = adaptableApi.optionsApi.getTeamSharingOptions();
8
10
  if (teamSharingOptions.updateInterval > 0) {
9
11
  // convert minutes to millis
@@ -1,14 +1,8 @@
1
1
  export class ThemeService {
2
+ api;
3
+ unsubscribe = () => { };
4
+ styleSheetObject;
2
5
  constructor(api) {
3
- this.unsubscribe = () => { };
4
- this.onThemeChanged = () => {
5
- let currentTheme = this.api.themeApi.getCurrentThemeObject();
6
- currentTheme = this.mapOsTheme(currentTheme);
7
- this.applyNewThemeVariables(currentTheme);
8
- // this needs to be called after variables are set
9
- // as it may show the warning for a custom/runtime theme
10
- this.showMissingThemeFiles(currentTheme);
11
- };
12
6
  this.api = api;
13
7
  this.subscribe();
14
8
  if (!this.styleSheetObject) {
@@ -33,6 +27,14 @@ export class ThemeService {
33
27
  prefferedColorSchemeUnsubscribe();
34
28
  };
35
29
  }
30
+ onThemeChanged = () => {
31
+ let currentTheme = this.api.themeApi.getCurrentThemeObject();
32
+ currentTheme = this.mapOsTheme(currentTheme);
33
+ this.applyNewThemeVariables(currentTheme);
34
+ // this needs to be called after variables are set
35
+ // as it may show the warning for a custom/runtime theme
36
+ this.showMissingThemeFiles(currentTheme);
37
+ };
36
38
  applyNewThemeVariables(theme) {
37
39
  const variables = theme.CSSVariables;
38
40
  if (!variables || Object.keys(variables).length === 0) {
@@ -4,6 +4,7 @@ import { AlertModuleId } from '../Constants/ModuleConstants';
4
4
  import { SERVER_VALIDATION_HEADER, SERVER_VALIDATION_MESSAGE_TYPE, } from '../Constants/GeneralConstants';
5
5
  import { errorOnce } from '../../agGrid/AdaptableLogger';
6
6
  export class ValidationService {
7
+ adaptableApi;
7
8
  constructor(adaptableApi) {
8
9
  this.adaptableApi = adaptableApi;
9
10
  this.adaptableApi = adaptableApi;
@@ -19,6 +19,9 @@ export const createAgStatusPanelComponent = (component, adaptable, context) => {
19
19
  };
20
20
  }
21
21
  return class StatusBarRenderer {
22
+ params;
23
+ eGui;
24
+ unmountReactRoot;
22
25
  init(params) {
23
26
  this.params = params;
24
27
  this.eGui = document.createElement('div');
@@ -13,6 +13,7 @@ import { connect } from 'react-redux';
13
13
  import { Flex } from '../../components/Flex';
14
14
  import clsx from 'clsx';
15
15
  class BulkUpdateViewPanelComponent extends React.Component {
16
+ cleanupEvent;
16
17
  constructor(props) {
17
18
  super(props);
18
19
  this.state = {
@@ -9,14 +9,6 @@ import { CalculatedColumnWizard } from './Wizard/CalculatedColumnWizard';
9
9
  export class CalculatedColumnSummaryComponent extends React.Component {
10
10
  constructor(props) {
11
11
  super(props);
12
- this.onFinishWizard = (calculatedColumn) => {
13
- this.props.onEdit(calculatedColumn);
14
- this.setState({
15
- editedAdaptableObject: null,
16
- wizardStartIndex: 0,
17
- wizardStatus: WizardStatus.None,
18
- });
19
- };
20
12
  this.state = UIHelper.getEmptyConfigState();
21
13
  }
22
14
  render() {
@@ -44,6 +36,14 @@ export class CalculatedColumnSummaryComponent extends React.Component {
44
36
  wizardStatus: WizardStatus.None,
45
37
  });
46
38
  }
39
+ onFinishWizard = (calculatedColumn) => {
40
+ this.props.onEdit(calculatedColumn);
41
+ this.setState({
42
+ editedAdaptableObject: null,
43
+ wizardStartIndex: 0,
44
+ wizardStatus: WizardStatus.None,
45
+ });
46
+ };
47
47
  }
48
48
  function mapStateToProps(state) {
49
49
  return {
@@ -10,6 +10,7 @@ import { connect } from 'react-redux';
10
10
  import { Select } from '../../components/Select';
11
11
  import { Flex } from '../../components/Flex';
12
12
  class CellSummaryViewPanelComponent extends React.Component {
13
+ cleanupEvent;
13
14
  constructor(props) {
14
15
  super(props);
15
16
  }
@@ -7,6 +7,15 @@ const Glyphicon = ({ glyph, style }) => {
7
7
  };
8
8
  const baseClassName = 'ab-Button twa:text-current';
9
9
  export class ButtonBase extends React.Component {
10
+ static defaultProps = {
11
+ overrideDisableButton: false,
12
+ toolTipAndText: '',
13
+ glyph: '',
14
+ displayMode: 'Glyph+Text',
15
+ transformGlyph: false,
16
+ accessLevel: 'Full',
17
+ showDefaultStyle: false,
18
+ };
10
19
  render() {
11
20
  let isDisabled;
12
21
  isDisabled = this.props.accessLevel == 'Hidden';
@@ -59,12 +68,3 @@ export class ButtonBase extends React.Component {
59
68
  return hideToolTip ? button : buttonwithtooltip;
60
69
  }
61
70
  }
62
- ButtonBase.defaultProps = {
63
- overrideDisableButton: false,
64
- toolTipAndText: '',
65
- glyph: '',
66
- displayMode: 'Glyph+Text',
67
- transformGlyph: false,
68
- accessLevel: 'Full',
69
- showDefaultStyle: false,
70
- };
@@ -10,6 +10,24 @@ const stopPropagation = (e) => {
10
10
  e.stopPropagation();
11
11
  };
12
12
  export class EntityListActionButtons extends React.Component {
13
+ static defaultProps = {
14
+ // Adaptable: null,
15
+ suspendableObject: null,
16
+ showEdit: true,
17
+ showDelete: true,
18
+ showShare: false,
19
+ showSuspend: false,
20
+ overrideDisableEdit: false,
21
+ overrideDisableDelete: false,
22
+ overrideDisableClone: false,
23
+ overrideDisableShare: false,
24
+ confirmDeleteAction: null,
25
+ entityType: '',
26
+ accessLevel: 'Full',
27
+ editSize: 'xsmall',
28
+ deleteSize: 'xsmall',
29
+ shareSize: 'xsmall',
30
+ };
13
31
  render() {
14
32
  const { justifyContent } = this.props;
15
33
  const justifyContentClassName = clsx({
@@ -25,21 +43,3 @@ export class EntityListActionButtons extends React.Component {
25
43
  this.props.showSuspend && this.props.suspendableObject && (React.createElement(SuspendToggleButton, { className: `twa:ml-[2px] twa:align-self-center`, onSuspend: this.props.onSuspend, onUnSuspend: this.props.onUnSuspend, suspendableObject: this.props.suspendableObject, disabled: this.props.accessLevel == 'ReadOnly' }))));
26
44
  }
27
45
  }
28
- EntityListActionButtons.defaultProps = {
29
- // Adaptable: null,
30
- suspendableObject: null,
31
- showEdit: true,
32
- showDelete: true,
33
- showShare: false,
34
- showSuspend: false,
35
- overrideDisableEdit: false,
36
- overrideDisableDelete: false,
37
- overrideDisableClone: false,
38
- overrideDisableShare: false,
39
- confirmDeleteAction: null,
40
- entityType: '',
41
- accessLevel: 'Full',
42
- editSize: 'xsmall',
43
- deleteSize: 'xsmall',
44
- shareSize: 'xsmall',
45
- };
@@ -204,7 +204,7 @@ export const FloatingFilterValues = (props) => {
204
204
  ...(props.value?.length
205
205
  ? {
206
206
  valueContainer: {
207
- fontWeight: 'var(--ab-cmp-quickfilter-selected-options-text__font-weight)',
207
+ fontWeight: 'var(--ab-cmp-floatingfilter-selected-options-text__font-weight)',
208
208
  },
209
209
  }
210
210
  : {}),
@@ -9,11 +9,6 @@ import { Flex } from '../../components/Flex';
9
9
  export class ExpressionWizard extends React.Component {
10
10
  constructor(props) {
11
11
  super(props);
12
- this.handleCustomExpressionChange = (expression) => {
13
- this.setState({
14
- expression,
15
- }, () => this.props.updateGoBackState());
16
- };
17
12
  this.state = {
18
13
  // this is realy horrible but its only way to use the Expression Wizard for both Report (that has Query) and Format Column (that has Rule)
19
14
  // once we move to the new Wizard we can remove this monstrosity
@@ -43,6 +38,11 @@ export class ExpressionWizard extends React.Component {
43
38
  .getQueryLanguageService()
44
39
  .validateBoolean(this.state.expression, NamedQueryModuleId).isValid);
45
40
  }
41
+ handleCustomExpressionChange = (expression) => {
42
+ this.setState({
43
+ expression,
44
+ }, () => this.props.updateGoBackState());
45
+ };
46
46
  canNext() {
47
47
  if (this.isValidExpression() == false) {
48
48
  return false;
@@ -1,16 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { DashboardToolbar as DashboardToolbarUI } from '../../../../components/Dashboard';
3
3
  export class PanelDashboard extends React.Component {
4
+ static defaultProps = {
5
+ showConfigureActionButton: true,
6
+ showCloseActionButton: true,
7
+ headerText: 'Module',
8
+ onClose: null,
9
+ onConfigure: null,
10
+ accessLevel: 'Full',
11
+ };
4
12
  render() {
5
13
  const { headerText, showConfigureActionButton, showCloseActionButton, onConfigure, onClose, accessLevel, children, } = this.props;
6
14
  return (React.createElement(DashboardToolbarUI, { title: headerText, onConfigure: onConfigure, showConfigure: showConfigureActionButton, showClose: showCloseActionButton, onClose: onClose, accessLevel: accessLevel }, children));
7
15
  }
8
16
  }
9
- PanelDashboard.defaultProps = {
10
- showConfigureActionButton: true,
11
- showCloseActionButton: true,
12
- headerText: 'Module',
13
- onClose: null,
14
- onConfigure: null,
15
- accessLevel: 'Full',
16
- };
@@ -7,6 +7,13 @@ import { ButtonMaximise } from '../../Buttons/ButtonMaximise';
7
7
  import { twMerge } from '../../../../twMerge';
8
8
  import { Flex } from '../../../../components/Flex';
9
9
  export class PanelToolPanel extends React.Component {
10
+ static defaultProps = {
11
+ headerText: '',
12
+ onClose: null,
13
+ onConfigure: null,
14
+ onMinimiseChanged: null,
15
+ isMinimised: true,
16
+ };
10
17
  render() {
11
18
  const { useDefaultPanelStyle, isMinimised, onMinimiseChanged, headerText, onClose, onConfigure, ...props } = this.props;
12
19
  let header = (React.createElement(React.Fragment, null,
@@ -38,10 +45,3 @@ export class PanelToolPanel extends React.Component {
38
45
  } }));
39
46
  }
40
47
  }
41
- PanelToolPanel.defaultProps = {
42
- headerText: '',
43
- onClose: null,
44
- onConfigure: null,
45
- onMinimiseChanged: null,
46
- isMinimised: true,
47
- };
@@ -222,6 +222,8 @@ export const getAdaptableToolPanelAgGridComponent = (adaptable) => {
222
222
  };
223
223
  }
224
224
  return class AdaptableToolPanelAgGridComponent {
225
+ gui;
226
+ unmountReactRoot;
225
227
  init(params) {
226
228
  const api = adaptable.api;
227
229
  this.gui = document.createElement('div');
@@ -16,19 +16,6 @@ import { CustomSortWizard } from './Wizard/CustomSortWizard';
16
16
  export class CustomSortSummaryComponent extends React.Component {
17
17
  constructor(props) {
18
18
  super(props);
19
- this.onFinishWizard = (customSort) => {
20
- if (this.props.CustomSorts.find((x) => x.ColumnId == customSort.ColumnId)) {
21
- this.props.onEditCustomSort(customSort);
22
- }
23
- else {
24
- this.props.onAddCustomSort(customSort);
25
- }
26
- this.setState({
27
- editedAdaptableObject: null,
28
- wizardStartIndex: 0,
29
- wizardStatus: WizardStatus.None,
30
- });
31
- };
32
19
  this.state = UIHelper.getEmptyConfigState();
33
20
  }
34
21
  render() {
@@ -76,6 +63,19 @@ export class CustomSortSummaryComponent extends React.Component {
76
63
  wizardStatus: WizardStatus.None,
77
64
  });
78
65
  }
66
+ onFinishWizard = (customSort) => {
67
+ if (this.props.CustomSorts.find((x) => x.ColumnId == customSort.ColumnId)) {
68
+ this.props.onEditCustomSort(customSort);
69
+ }
70
+ else {
71
+ this.props.onAddCustomSort(customSort);
72
+ }
73
+ this.setState({
74
+ editedAdaptableObject: null,
75
+ wizardStartIndex: 0,
76
+ wizardStatus: WizardStatus.None,
77
+ });
78
+ };
79
79
  canFinishWizard() {
80
80
  let customSort = this.state.editedAdaptableObject;
81
81
  return (StringExtensions.IsNotNullOrEmpty(customSort.ColumnId) &&
@@ -15,19 +15,6 @@ import { FormatColumnWizard } from './Wizard/FormatColumnWizard';
15
15
  export class FormatColumnSummaryComponent extends React.Component {
16
16
  constructor(props) {
17
17
  super(props);
18
- this.onFinishWizard = (formatColumn) => {
19
- if (this.props.FormatColumns.find((x) => x.Uuid == formatColumn.Uuid)) {
20
- this.props.onEditFormatColumn(formatColumn);
21
- }
22
- else {
23
- this.props.onAddFormatColumn(formatColumn);
24
- }
25
- this.setState({
26
- editedAdaptableObject: null,
27
- wizardStartIndex: 0,
28
- wizardStatus: WizardStatus.None,
29
- });
30
- };
31
18
  this.state = UIHelper.getEmptyConfigState();
32
19
  }
33
20
  render() {
@@ -70,6 +57,19 @@ export class FormatColumnSummaryComponent extends React.Component {
70
57
  wizardStatus: WizardStatus.None,
71
58
  });
72
59
  }
60
+ onFinishWizard = (formatColumn) => {
61
+ if (this.props.FormatColumns.find((x) => x.Uuid == formatColumn.Uuid)) {
62
+ this.props.onEditFormatColumn(formatColumn);
63
+ }
64
+ else {
65
+ this.props.onAddFormatColumn(formatColumn);
66
+ }
67
+ this.setState({
68
+ editedAdaptableObject: null,
69
+ wizardStartIndex: 0,
70
+ wizardStatus: WizardStatus.None,
71
+ });
72
+ };
73
73
  canFinishWizard() {
74
74
  let formatColumn = this.state.editedAdaptableObject;
75
75
  return formatColumn.Scope != undefined && UIHelper.IsNotEmptyStyle(formatColumn.Style);
@@ -15,19 +15,6 @@ import { FreeTextColumnWizard } from './Wizard/FreeTextColumnWizard';
15
15
  export class FreeTextColumnSummaryComponent extends React.Component {
16
16
  constructor(props) {
17
17
  super(props);
18
- this.onFinishWizard = (FreeTextColumn) => {
19
- if (this.props.FreeTextColumns.find((x) => x.ColumnId == FreeTextColumn.ColumnId)) {
20
- this.props.onEditFreeTextColumn(FreeTextColumn);
21
- }
22
- else {
23
- this.props.onAddFreeTextColumn(FreeTextColumn);
24
- }
25
- this.setState({
26
- editedAdaptableObject: null,
27
- wizardStartIndex: 0,
28
- wizardStatus: WizardStatus.None,
29
- });
30
- };
31
18
  this.state = UIHelper.getEmptyConfigState();
32
19
  }
33
20
  render() {
@@ -68,6 +55,19 @@ export class FreeTextColumnSummaryComponent extends React.Component {
68
55
  wizardStatus: WizardStatus.None,
69
56
  });
70
57
  }
58
+ onFinishWizard = (FreeTextColumn) => {
59
+ if (this.props.FreeTextColumns.find((x) => x.ColumnId == FreeTextColumn.ColumnId)) {
60
+ this.props.onEditFreeTextColumn(FreeTextColumn);
61
+ }
62
+ else {
63
+ this.props.onAddFreeTextColumn(FreeTextColumn);
64
+ }
65
+ this.setState({
66
+ editedAdaptableObject: null,
67
+ wizardStartIndex: 0,
68
+ wizardStatus: WizardStatus.None,
69
+ });
70
+ };
71
71
  canFinishWizard() {
72
72
  let FreeTextColumn = this.state.editedAdaptableObject;
73
73
  return StringExtensions.IsNotNullOrEmpty(FreeTextColumn.ColumnId);
@@ -13,6 +13,7 @@ import { connect } from 'react-redux';
13
13
  import { Select } from '../../components/Select';
14
14
  import { Flex } from '../../components/Flex';
15
15
  class SmartEditViewPanelComponent extends React.Component {
16
+ cleanupEvent;
16
17
  constructor(props) {
17
18
  super(props);
18
19
  this.state = {
@@ -11,22 +11,6 @@ import { Icon } from '../../components/icons';
11
11
  import { ThemeSelector } from './ThemeSelector';
12
12
  import { Box } from '../../components/Flex';
13
13
  class ThemePopupComponent extends React.Component {
14
- constructor() {
15
- super(...arguments);
16
- this.handleCreateNewTheme = (variant) => {
17
- let nthItem = this.props.UserThemes.length + 1;
18
- let name = 'Custom-Theme-' + nthItem;
19
- // make sure it is unique
20
- while (this.props.UserThemes.some((theme) => theme.Name === name)) {
21
- nthItem++;
22
- name = 'Custom-Theme-' + nthItem;
23
- }
24
- const newTheme = ObjectFactory.CreateEmptyTheme(name);
25
- newTheme.Variant = variant;
26
- this.props.api.themeApi.addUserTheme(newTheme);
27
- this.props.api.themeApi.loadTheme(newTheme.Name);
28
- };
29
- }
30
14
  render() {
31
15
  const isCustomTheme = this.props.api.themeApi
32
16
  .getUserThemes()
@@ -59,6 +43,19 @@ class ThemePopupComponent extends React.Component {
59
43
  onChangeTheme(value) {
60
44
  this.props.SelectTheme(value);
61
45
  }
46
+ handleCreateNewTheme = (variant) => {
47
+ let nthItem = this.props.UserThemes.length + 1;
48
+ let name = 'Custom-Theme-' + nthItem;
49
+ // make sure it is unique
50
+ while (this.props.UserThemes.some((theme) => theme.Name === name)) {
51
+ nthItem++;
52
+ name = 'Custom-Theme-' + nthItem;
53
+ }
54
+ const newTheme = ObjectFactory.CreateEmptyTheme(name);
55
+ newTheme.Variant = variant;
56
+ this.props.api.themeApi.addUserTheme(newTheme);
57
+ this.props.api.themeApi.loadTheme(newTheme.Name);
58
+ };
62
59
  }
63
60
  function mapStateToProps(state, ownProps) {
64
61
  return {