@adaptabletools/adaptable 12.0.0 → 12.0.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 (161) hide show
  1. package/base.css +6 -19
  2. package/bundle.cjs.js +129 -129
  3. package/index.css +7 -23
  4. package/package.json +1 -1
  5. package/publishTimestamp.d.ts +1 -1
  6. package/publishTimestamp.js +1 -1
  7. package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -2
  8. package/src/AdaptableOptions/ActionOptions.d.ts +1 -1
  9. package/src/AdaptableOptions/AdaptableQLOptions.d.ts +1 -1
  10. package/src/AdaptableOptions/StateOptions.d.ts +9 -23
  11. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +34 -1
  12. package/src/Api/ChartingApi.d.ts +19 -2
  13. package/src/Api/FilterApi.d.ts +7 -2
  14. package/src/Api/FormatColumnApi.d.ts +6 -6
  15. package/src/Api/GridApi.d.ts +1 -1
  16. package/src/Api/Implementation/ChartingApiImpl.d.ts +6 -0
  17. package/src/Api/Implementation/ChartingApiImpl.js +17 -0
  18. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -0
  19. package/src/Api/Implementation/ConfigApiImpl.js +11 -0
  20. package/src/Api/Implementation/FilterApiImpl.d.ts +1 -0
  21. package/src/Api/Implementation/FilterApiImpl.js +5 -0
  22. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +3 -3
  23. package/src/Api/Implementation/FormatColumnApiImpl.js +13 -11
  24. package/src/Api/Implementation/GridApiImpl.d.ts +1 -1
  25. package/src/Api/Implementation/GridApiImpl.js +2 -2
  26. package/src/Api/Implementation/InternalApiImpl.d.ts +4 -1
  27. package/src/Api/Implementation/InternalApiImpl.js +16 -3
  28. package/src/Api/Implementation/TeamSharingApiImpl.d.ts +1 -0
  29. package/src/Api/Implementation/TeamSharingApiImpl.js +5 -0
  30. package/src/Api/InternalApi.d.ts +4 -1
  31. package/src/Api/TeamSharingApi.d.ts +4 -0
  32. package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
  33. package/src/PredefinedConfig/CalculatedColumnState.d.ts +0 -5
  34. package/src/PredefinedConfig/ChartingState.d.ts +20 -0
  35. package/src/PredefinedConfig/ChartingState.js +2 -0
  36. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +27 -6
  37. package/src/PredefinedConfig/Common/AdaptablePredicate.js +2 -2
  38. package/src/PredefinedConfig/Common/Types.d.ts +1 -1
  39. package/src/PredefinedConfig/PredefinedConfig.d.ts +5 -0
  40. package/src/PredefinedConfig/Selection/GridCellRange.d.ts +19 -0
  41. package/src/PredefinedConfig/StatusBarState.d.ts +1 -1
  42. package/src/Redux/ActionsReducers/ChartingRedux.d.ts +23 -0
  43. package/src/Redux/ActionsReducers/ChartingRedux.js +38 -0
  44. package/src/Redux/ActionsReducers/LayoutRedux.js +3 -0
  45. package/src/Redux/Store/AdaptableStore.js +2 -0
  46. package/src/Strategy/AdaptableModuleBase.d.ts +10 -5
  47. package/src/Strategy/AdaptableModuleBase.js +6 -0
  48. package/src/Strategy/AlertModule.d.ts +2 -8
  49. package/src/Strategy/AlertModule.js +6 -3
  50. package/src/Strategy/ChartingModule.js +1 -1
  51. package/src/Strategy/DashboardModule.js +1 -0
  52. package/src/Strategy/ExportModule.js +1 -0
  53. package/src/Strategy/FlashingCellModule.js +3 -3
  54. package/src/Strategy/FormatColumnModule.js +3 -3
  55. package/src/Strategy/GridInfoModule.js +2 -0
  56. package/src/Strategy/Interface/IModule.d.ts +16 -4
  57. package/src/Strategy/LayoutModule.js +2 -0
  58. package/src/Strategy/TeamSharingModule.d.ts +11 -1
  59. package/src/Strategy/TeamSharingModule.js +104 -0
  60. package/src/Utilities/Helpers/FormatHelper.d.ts +1 -1
  61. package/src/Utilities/Helpers/FormatHelper.js +6 -2
  62. package/src/Utilities/MenuItem.d.ts +4 -4
  63. package/src/Utilities/ObjectFactory.d.ts +5 -1
  64. package/src/Utilities/ObjectFactory.js +11 -1
  65. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -1
  66. package/src/Utilities/Services/ReportService.d.ts +1 -1
  67. package/src/Utilities/Services/ReportService.js +5 -5
  68. package/src/Utilities/Services/TeamSharingService.js +0 -2
  69. package/src/View/AdaptableViewFactory.js +0 -2
  70. package/src/View/Alert/ActiveAlertsPanelItemLabel.d.ts +5 -0
  71. package/src/View/Alert/ActiveAlertsPanelItemLabel.js +22 -0
  72. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +4 -11
  73. package/src/View/ColorPicker.d.ts +1 -1
  74. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  75. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +8 -4
  76. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +13 -1
  77. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +23 -15
  78. package/src/View/Components/Buttons/ButtonDelete.js +3 -3
  79. package/src/View/Components/Buttons/ButtonPause.js +11 -1
  80. package/src/View/Components/FilterForm/QuickFilterForm.js +23 -2
  81. package/src/View/Components/Panels/PanelWithButton.d.ts +2 -1
  82. package/src/View/Components/Panels/PanelWithImage.d.ts +3 -2
  83. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -0
  84. package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +1 -1
  85. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -11
  86. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -11
  87. package/src/View/Dashboard/CustomDashboardButton.js +2 -15
  88. package/src/View/Dashboard/CustomToolbarWrapper.js +2 -11
  89. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +13 -9
  90. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +6 -0
  91. package/src/View/GridInfo/GridInfoPopup.js +1 -1
  92. package/src/View/Layout/LayoutEditorStandalonePopup.js +3 -1
  93. package/src/View/Layout/LayoutPopup.d.ts +1 -1
  94. package/src/View/Layout/LayoutViewPanel.d.ts +1 -1
  95. package/src/View/Layout/Wizard/LayoutEditorWizard.d.ts +2 -27
  96. package/src/View/TeamSharing/SharedEntityDependencies.d.ts +8 -0
  97. package/src/View/TeamSharing/SharedEntityDependencies.js +27 -0
  98. package/src/View/TeamSharing/SharedEntityObjectView.d.ts +9 -0
  99. package/src/View/TeamSharing/SharedEntityObjectView.js +84 -0
  100. package/src/View/TeamSharing/TeamSharingApplyButton.d.ts +6 -0
  101. package/src/View/TeamSharing/TeamSharingApplyButton.js +15 -0
  102. package/src/View/UIHelper.d.ts +2 -2
  103. package/src/agGrid/ActionColumnRenderer.js +5 -11
  104. package/src/agGrid/Adaptable.d.ts +5 -27
  105. package/src/agGrid/Adaptable.js +87 -72
  106. package/src/agGrid/agGridMenuHelper.d.ts +1 -0
  107. package/src/agGrid/agGridMenuHelper.js +15 -4
  108. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +6 -12
  109. package/src/components/AdaptableIconComponent/index.d.ts +2 -1
  110. package/src/components/AdaptableIconComponent/index.js +36 -3
  111. package/src/components/Datepicker/index.d.ts +1 -1
  112. package/src/components/Input/index.d.ts +1 -1
  113. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  114. package/src/components/PopupWithFooter.d.ts +1 -1
  115. package/src/components/SimpleButton/index.js +1 -1
  116. package/src/components/Textarea/index.d.ts +1 -1
  117. package/src/components/icons/{color-drop.d.ts → ends-with.d.ts} +0 -0
  118. package/src/components/icons/{format-letter-ends-with.js → ends-with.js} +0 -0
  119. package/src/components/icons/{filter-outline.d.ts → filter.d.ts} +0 -0
  120. package/src/components/icons/{filter-outline.js → filter.js} +0 -0
  121. package/src/components/icons/index.d.ts +5 -7
  122. package/src/components/icons/index.js +7 -21
  123. package/src/components/icons/{format-letter-ends-with.d.ts → starts-with.d.ts} +0 -0
  124. package/src/components/icons/{format-letter-starts-with.js → starts-with.js} +0 -0
  125. package/src/metamodel/adaptable.metamodel.d.ts +150 -1
  126. package/src/metamodel/adaptable.metamodel.js +1 -1
  127. package/src/types.d.ts +4 -2
  128. package/version.d.ts +1 -1
  129. package/version.js +1 -1
  130. package/src/View/Alert/AlertSharedEntity.d.ts +0 -5
  131. package/src/View/Alert/AlertSharedEntity.js +0 -19
  132. package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.d.ts +0 -5
  133. package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.js +0 -20
  134. package/src/View/ConditionalStyle/ConditionalStyleSharedEntity.d.ts +0 -5
  135. package/src/View/ConditionalStyle/ConditionalStyleSharedEntity.js +0 -23
  136. package/src/View/CustomSort/CustomSortSharedEntity.d.ts +0 -6
  137. package/src/View/CustomSort/CustomSortSharedEntity.js +0 -24
  138. package/src/View/Export/ExportSharedEntity.d.ts +0 -5
  139. package/src/View/Export/ExportSharedEntity.js +0 -16
  140. package/src/View/Filter/FilterSharedEntity.d.ts +0 -5
  141. package/src/View/Filter/FilterSharedEntity.js +0 -15
  142. package/src/View/FormatColumn/FormatColumnSharedEntity.d.ts +0 -5
  143. package/src/View/FormatColumn/FormatColumnSharedEntity.js +0 -18
  144. package/src/View/FreeTextColumn/FreeTextColumnSharedEntity.d.ts +0 -5
  145. package/src/View/FreeTextColumn/FreeTextColumnSharedEntity.js +0 -24
  146. package/src/View/Layout/LayoutSharedEntity.d.ts +0 -5
  147. package/src/View/Layout/LayoutSharedEntity.js +0 -15
  148. package/src/View/PlusMinus/PlusMinusSharedEntity.d.ts +0 -5
  149. package/src/View/PlusMinus/PlusMinusSharedEntity.js +0 -21
  150. package/src/View/Query/NamedQuerySharedEntity.d.ts +0 -5
  151. package/src/View/Query/NamedQuerySharedEntity.js +0 -19
  152. package/src/View/Shortcut/ShortcutSharedEntity.d.ts +0 -5
  153. package/src/View/Shortcut/ShortcutSharedEntity.js +0 -19
  154. package/src/View/TeamSharing/TeamSharingPopup.d.ts +0 -23
  155. package/src/View/TeamSharing/TeamSharingPopup.js +0 -163
  156. package/src/agGrid/rowEditIcons.d.ts +0 -5
  157. package/src/agGrid/rowEditIcons.js +0 -10
  158. package/src/components/icons/color-drop.js +0 -7
  159. package/src/components/icons/format-letter-starts-with.d.ts +0 -3
  160. package/src/components/icons/pause-red.d.ts +0 -3
  161. package/src/components/icons/pause-red.js +0 -7
@@ -22,6 +22,7 @@ import { ToolPanelState } from './ToolPanelState';
22
22
  import { QueryState } from './QueryState';
23
23
  import { FlashingCellState } from './FlashingCellState';
24
24
  import { StatusBarState } from './StatusBarState';
25
+ import { ChartingState } from './ChartingState';
25
26
  /**
26
27
  * The main state object of Adaptable
27
28
  */
@@ -52,6 +53,7 @@ export interface AdaptablePersistentState {
52
53
  TeamSharing: TeamSharingState;
53
54
  Theme: ThemeState;
54
55
  ToolPanel: ToolPanelState;
56
+ Charting: ChartingState;
55
57
  }
56
58
  /**
57
59
  * The state which is available in the internal Redux store but never persisted
@@ -46,11 +46,6 @@ export interface CalculatedColumnSettings extends SpecialColumnSettings {
46
46
  * @defaultValue false
47
47
  */
48
48
  ShowToolTip?: boolean;
49
- /**
50
- * If true, the Calculated Column Expression will NOT be evaluated and the value is loaded from the row data property with the same name as the ColumnId
51
- * @defaultValue false
52
- */
53
- ExternallyEvaluatedExpression?: boolean;
54
49
  }
55
50
  /**
56
51
  * Calculated Column Query which may be a Scalar or an AggregatedScalar Expression
@@ -0,0 +1,20 @@
1
+ import { ChartModel } from '@ag-grid-community/all-modules';
2
+ import { ConfigState } from './ConfigState';
3
+ /**
4
+ * Wraps an AG Grid Chart Model
5
+ */
6
+ export interface ChartDefinition {
7
+ /**
8
+ * AG Grid Chart Model
9
+ */
10
+ model: ChartModel;
11
+ }
12
+ /**
13
+ * Predefined Configuration for Quick Search Module
14
+ */
15
+ export interface ChartingState extends ConfigState {
16
+ /**
17
+ * Charting Definitions - wrap AG Grid Chart Models
18
+ */
19
+ ChartDefinitions?: ChartDefinition[];
20
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,25 +1,44 @@
1
- import { CSSProperties } from 'react';
1
+ import * as React from 'react';
2
2
  /**
3
3
  * Defines an icon to be used in AdapTable (e.g. in Dashboard Header, Buttons, Menu, etc.)
4
4
  */
5
- export declare type AdaptableIcon = AdaptableInternalIcon | AdaptableExternalIcon;
5
+ export declare type AdaptableIcon = AdaptableInternalIcon | AdaptableExternalIcon | AdaptableElementIcon;
6
6
  /**
7
7
  * Defines an icon from the internal AdapTable icon set
8
8
  */
9
9
  export interface AdaptableInternalIcon extends AdaptableBaseIcon {
10
+ /**
11
+ * The name of the icon to use (referencing the AdapTable Icon Library)
12
+ */
10
13
  name: AdaptableInternalIconName;
14
+ /**
15
+ * The size (in pixels) of the SVG icon (defaults to `17px`)
16
+ *
17
+ */
11
18
  size?: number;
12
19
  }
13
20
  /**
14
21
  * Defines an icon from an external source
15
22
  */
16
23
  export interface AdaptableExternalIcon extends AdaptableBaseIcon {
24
+ /**
25
+ * The URL of the icon to use
26
+ */
17
27
  src: string;
18
28
  }
29
+ /**
30
+ * Defines an icon as a provided DOM element or HTML string
31
+ */
32
+ export interface AdaptableElementIcon {
33
+ /**
34
+ * The icon to display, either a DOM element or HTML string
35
+ */
36
+ element: HTMLElement | string;
37
+ }
19
38
  /**
20
39
  * Base interface for AdaptableIcon
21
40
  */
22
- interface AdaptableBaseIcon {
41
+ export interface AdaptableBaseIcon {
23
42
  /**
24
43
  * The class name of the icon
25
44
  */
@@ -27,7 +46,9 @@ interface AdaptableBaseIcon {
27
46
  /**
28
47
  * CSS Properties
29
48
  */
30
- style?: CSSProperties;
49
+ style?: React.CSSProperties;
31
50
  }
32
- export declare type AdaptableInternalIconName = string;
33
- export {};
51
+ /**
52
+ * All AdapTable internal icon names
53
+ */
54
+ export declare type AdaptableInternalIconName = 'add' | 'add-row' | 'alert' | 'align-justify' | 'analysis' | 'application' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrowexpand' | 'attach-file' | 'blanks' | 'boolean-list' | 'broadcast' | 'build' | 'bulk-update' | 'calculated-column' | 'calendar' | 'call' | 'campaign' | 'cell-summary' | 'cell-validation' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clear' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'column-chooser' | 'column-filter' | 'comment' | 'conditional-style' | 'contains' | 'custom-sort' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'drag' | 'edit' | 'ends-with' | 'equal' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'flashing-cell' | 'folder' | 'folder-open' | 'folder-shared' | 'format-column' | 'freetext-column' | 'function' | 'gradient-column' | 'greater-than' | 'greater-than-or-equal' | 'hide-column' | 'history' | 'home' | 'import-export' | 'info' | 'instrument' | 'invalid' | 'ipushpull' | 'justify' | 'layout' | 'less-than' | 'less-than-or-equal' | 'list' | 'login' | 'logout' | 'menu' | 'minus' | 'multiplication' | 'newpage' | 'news' | 'non-blanks' | 'not-contains' | 'not-equal' | 'ok' | 'pause' | 'percent' | 'percent-bar' | 'person' | 'pie-chart' | 'play' | 'plus' | 'plus-minus' | 'query' | 'quick-search' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'settings' | 'shortcut' | 'show-column' | 'smart-edit' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'starts-with' | 'state-management' | 'statusbar' | 'stop' | 'system-status' | 'tab-unselected' | 'team-share' | 'theme' | 'tool-panel' | 'track-changes' | 'trash' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'updated-row' | 'upload' | 'warning';
@@ -266,7 +266,7 @@ exports.SystemPredicateDefs = [
266
266
  {
267
267
  id: 'StartsWith',
268
268
  label: 'Starts With',
269
- icon: { name: 'format-letter-starts-with' },
269
+ icon: { name: 'starts-with' },
270
270
  columnScope: { DataTypes: ['String'] },
271
271
  moduleScope: ['filter', 'alert', 'flashingcell', 'conditionalstyle'],
272
272
  inputs: [{ type: 'text' }],
@@ -284,7 +284,7 @@ exports.SystemPredicateDefs = [
284
284
  {
285
285
  id: 'EndsWith',
286
286
  label: 'Ends With',
287
- icon: { name: 'format-letter-ends-with' },
287
+ icon: { name: 'ends-with' },
288
288
  columnScope: { DataTypes: ['String'] },
289
289
  moduleScope: ['filter', 'alert', 'flashingcell', 'conditionalstyle'],
290
290
  inputs: [{ type: 'text' }],
@@ -34,5 +34,5 @@ export declare type TypeHint<Base, Literals> = (Base & {
34
34
  __subType?: true;
35
35
  }) | Literals;
36
36
  export declare type AdaptableQLModules = AdaptableQLModule[];
37
- export declare type AdaptableQLModule = 'Filter' | 'Query';
37
+ export declare type AdaptableQLModule = 'CalculatedColumn' | 'Filter' | 'Query';
38
38
  export declare type AdaptableColumnType = 'abColDefBoolean' | 'abColDefDate' | 'abColDefNumber' | 'abColDefString' | 'abColDefObject' | 'abColDefCustom' | 'abSpecialColumn';
@@ -17,6 +17,7 @@ import { ThemeState } from './ThemeState';
17
17
  import { ToolPanelState } from './ToolPanelState';
18
18
  import { QueryState } from './QueryState';
19
19
  import { StatusBarState } from './StatusBarState';
20
+ import { ChartingState } from './ChartingState';
20
21
  /**
21
22
  * This is the main Predefined Config interface which developers will populate at design-time
22
23
  */
@@ -97,4 +98,8 @@ export interface PredefinedConfig {
97
98
  * Sets the order and visibility of the Tool Panel controls in the AdapTable ToolPanel (on right of grid)
98
99
  */
99
100
  ToolPanel?: ToolPanelState;
101
+ /**
102
+ * Predefine charting models
103
+ */
104
+ Charting?: ChartingState;
100
105
  }
@@ -1,7 +1,26 @@
1
+ /**
2
+ * Defines a range of Cell - used in Grid Api Selection methods
3
+ * Typically use either PrimaryKey Values or Row Indexes
4
+ */
1
5
  export interface GridCellRange {
6
+ /**
7
+ * Columns to select
8
+ */
2
9
  columnIds: string[];
10
+ /**
11
+ * Primary Key value of row at start of range
12
+ */
3
13
  primaryKeyValueStart?: any;
14
+ /**
15
+ * Primary Key value of row at end of range
16
+ */
4
17
  primaryKeyValueEnd?: any;
18
+ /**
19
+ * Index of row at start of range
20
+ */
5
21
  rowIndexStart?: any;
22
+ /**
23
+ * Index of row at end of range
24
+ */
6
25
  rowIndexEnd?: any;
7
26
  }
@@ -5,7 +5,7 @@ import { AdaptableStatusBarPanel } from './Common/Types';
5
5
  */
6
6
  export interface StatusBarState extends ConfigState {
7
7
  /**
8
- * Adaptable Status Bars to display - up to 3 can be shown
8
+ * Adaptable Status Bars to display - can be unlimited and displayed in 3 locations
9
9
  * @defaultValue null
10
10
  */
11
11
  StatusBars?: AdaptableStatusBar[];
@@ -0,0 +1,23 @@
1
+ import { ChartModel } from '@ag-grid-community/all-modules';
2
+ import * as Redux from 'redux';
3
+ import { AdaptableState } from '../../../types';
4
+ import { ChartingState } from '../../PredefinedConfig/ChartingState';
5
+ /**
6
+ * @ReduxAction Set AG Grid Charting Models
7
+ */
8
+ export declare const SET_CHARTING_CHARTS = "SET_CHARTING_CHARTS";
9
+ /**
10
+ * @ReduxAction Charting Module is ready
11
+ */
12
+ export declare const CHARTING_READY = "CHARTING_READY";
13
+ export interface ChartingSetChartModelsAction extends Redux.Action {
14
+ charts: ChartModel[];
15
+ }
16
+ export interface ChartingReadyAction extends Redux.Action {
17
+ chartingState: ChartingState;
18
+ }
19
+ export declare const ChartingSetChartModels: (charts: ChartModel[]) => ChartingSetChartModelsAction;
20
+ export declare const ChartingReady: (chartingState: ChartingState) => ChartingReadyAction;
21
+ export declare const initialState: ChartingState;
22
+ export declare const ChartingGetChartModels: (state: AdaptableState) => ChartingState['ChartDefinitions'];
23
+ export declare const ChartingReducer: Redux.Reducer<ChartingState>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChartingReducer = exports.ChartingGetChartModels = exports.initialState = exports.ChartingReady = exports.ChartingSetChartModels = exports.CHARTING_READY = exports.SET_CHARTING_CHARTS = void 0;
4
+ const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
5
+ /**
6
+ * @ReduxAction Set AG Grid Charting Models
7
+ */
8
+ exports.SET_CHARTING_CHARTS = 'SET_CHARTING_CHARTS';
9
+ /**
10
+ * @ReduxAction Charting Module is ready
11
+ */
12
+ exports.CHARTING_READY = 'CHARTING_READY';
13
+ const ChartingSetChartModels = (charts) => ({
14
+ charts,
15
+ type: exports.SET_CHARTING_CHARTS,
16
+ });
17
+ exports.ChartingSetChartModels = ChartingSetChartModels;
18
+ const ChartingReady = (chartingState) => ({
19
+ type: exports.CHARTING_READY,
20
+ chartingState,
21
+ });
22
+ exports.ChartingReady = ChartingReady;
23
+ exports.initialState = {
24
+ ChartDefinitions: GeneralConstants_1.EMPTY_ARRAY,
25
+ };
26
+ const ChartingGetChartModels = (state) => state.Charting.ChartDefinitions;
27
+ exports.ChartingGetChartModels = ChartingGetChartModels;
28
+ const ChartingReducer = (state = exports.initialState, action) => {
29
+ switch (action.type) {
30
+ case exports.SET_CHARTING_CHARTS:
31
+ const newCharts = action.charts.map((chartModel) => ({
32
+ model: chartModel,
33
+ }));
34
+ return Object.assign(Object.assign({}, state), { ChartDefinitions: newCharts });
35
+ }
36
+ return state;
37
+ };
38
+ exports.ChartingReducer = ChartingReducer;
@@ -165,6 +165,9 @@ const LayoutReducer = (state = initialState, action) => {
165
165
  const currentLayoutName = setColumnCaptionAction.layoutName;
166
166
  let currentLayout = state.Layouts.find((l) => l.Name === currentLayoutName);
167
167
  if (currentLayout) {
168
+ if (!currentLayout.ColumnHeadersMap) {
169
+ currentLayout.ColumnHeadersMap = {};
170
+ }
168
171
  currentLayout.ColumnHeadersMap[setColumnCaptionAction.columnId] =
169
172
  setColumnCaptionAction.caption;
170
173
  return Object.assign({}, state, {
@@ -33,6 +33,7 @@ const ScheduleRedux = tslib_1.__importStar(require("../ActionsReducers/ScheduleR
33
33
  const TeamSharingRedux = tslib_1.__importStar(require("../ActionsReducers/TeamSharingRedux"));
34
34
  const QueryRedux = tslib_1.__importStar(require("../ActionsReducers/QueryRedux"));
35
35
  const StatusBarRedux = tslib_1.__importStar(require("../ActionsReducers/StatusBarRedux"));
36
+ const ChartingRedux = tslib_1.__importStar(require("../ActionsReducers/ChartingRedux"));
36
37
  const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
37
38
  const ConfigConstants = tslib_1.__importStar(require("../../Utilities/Constants/ConfigConstants"));
38
39
  const LoggingHelper_1 = require("../../Utilities/Helpers/LoggingHelper");
@@ -146,6 +147,7 @@ class AdaptableStore {
146
147
  Theme: ThemeRedux.ThemeReducer,
147
148
  ToolPanel: ToolPanelRedux.ToolPanelReducer,
148
149
  Query: QueryRedux.QueryReducer,
150
+ Charting: ChartingRedux.ChartingReducer,
149
151
  // dead reducers
150
152
  PercentBar: DeadRedux.PercentBarReducer,
151
153
  UpdatedRow: DeadRedux.UpdatedRowReducer,
@@ -11,6 +11,7 @@ import { AdaptableApi } from '../Api/AdaptableApi';
11
11
  import { AccessLevel } from '../PredefinedConfig/Common/Entitlement';
12
12
  import { CalculatedColumn } from '../PredefinedConfig/CalculatedColumnState';
13
13
  import { FreeTextColumn } from '../PredefinedConfig/FreeTextColumnState';
14
+ import { AdaptableInternalIconName } from '../PredefinedConfig/Common/AdaptableIcon';
14
15
  /**
15
16
  * Base class for all strategies and does most of the work of creating menus
16
17
  */
@@ -18,10 +19,14 @@ export declare abstract class AdaptableModuleBase implements IModule {
18
19
  protected api: AdaptableApi;
19
20
  moduleInfo: ModuleInfo;
20
21
  AccessLevel: AccessLevel;
21
- constructor(module: AdaptableModule, friendlyName: string, glyph: string, popup: string, description: string, api: AdaptableApi);
22
+ constructor(module: AdaptableModule, friendlyName: string, glyph: AdaptableInternalIconName, popup: string, description: string, api: AdaptableApi);
22
23
  protected getViewAccessLevel(): AccessLevel;
23
24
  protected getEditAccessLevel(): AccessLevel;
24
25
  isModuleAvailable(): boolean;
26
+ /**
27
+ * Used inside the unified UI to show the share button
28
+ */
29
+ isModuleObjectsShareable(): boolean;
25
30
  isModuleEditable(): boolean;
26
31
  updateOldConfig(): void;
27
32
  getModuleAdaptableObjects(): AdaptableObject[];
@@ -37,12 +42,12 @@ export declare abstract class AdaptableModuleBase implements IModule {
37
42
  createMainMenuItemShowPopup({ Label, ComponentName, Icon, PopupParams, }: {
38
43
  Label: string;
39
44
  ComponentName: string;
40
- Icon: string;
45
+ Icon: AdaptableInternalIconName;
41
46
  PopupParams?: ModuleParams;
42
47
  }): MenuItemShowPopup;
43
- createColumnMenuItemClickFunction(Label: string, Icon: string, ClickFunction: () => void): MenuItemDoClickFunction;
44
- createColumnMenuItemReduxAction(Label: string, Icon: string, Action: Action): MenuItemDoReduxAction;
45
- createColumnMenuItemShowPopup(Label: string, ComponentName: string, Icon: string, PopupParams?: ModuleParams): MenuItemShowPopup;
48
+ createColumnMenuItemClickFunction(Label: string, Icon: AdaptableInternalIconName, ClickFunction: () => void): MenuItemDoClickFunction;
49
+ createColumnMenuItemReduxAction(Label: string, Icon: AdaptableInternalIconName, Action: Action): MenuItemDoReduxAction;
50
+ createColumnMenuItemShowPopup(Label: string, ComponentName: string, Icon: AdaptableInternalIconName, PopupParams?: ModuleParams): MenuItemShowPopup;
46
51
  canCreateColumnMenuItem(column: AdaptableColumn, minimumAccessLevel: AccessLevel, functionType?: 'sort' | 'editable' | 'style' | 'filter' | 'quickfilter' | 'numeric'): boolean;
47
52
  getTeamSharingAction(): TeamSharingImportInfo<AdaptableObject> | undefined;
48
53
  getModuleNamedQueryReferences(): string[];
@@ -36,6 +36,12 @@ class AdaptableModuleBase {
36
36
  isModuleAvailable() {
37
37
  return this.hasRequiredAccessLevel(this.getViewAccessLevel());
38
38
  }
39
+ /**
40
+ * Used inside the unified UI to show the share button
41
+ */
42
+ isModuleObjectsShareable() {
43
+ return true;
44
+ }
39
45
  isModuleEditable() {
40
46
  return this.hasRequiredAccessLevel(this.getEditAccessLevel());
41
47
  }
@@ -4,7 +4,7 @@ import { AdaptableAlert } from '../PredefinedConfig/Common/AdaptableAlert';
4
4
  import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
5
5
  import { TeamSharingImportInfo } from '../PredefinedConfig/TeamSharingState';
6
6
  import { AdaptableModuleBase } from './AdaptableModuleBase';
7
- import { AdaptableModuleView, AdaptableObjectView, IModule } from './Interface/IModule';
7
+ import { AdaptableModuleView, AdaptableObjectCompactView, AdaptableObjectView, IModule } from './Interface/IModule';
8
8
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
9
9
  export declare class AlertModule extends AdaptableModuleBase implements IModule {
10
10
  constructor(api: AdaptableApi);
@@ -25,13 +25,7 @@ export declare class AlertModule extends AdaptableModuleBase implements IModule
25
25
  private isAlertPredicateTriggered;
26
26
  private isAlertDefinitionForRowChangeEvent;
27
27
  getTeamSharingAction(): TeamSharingImportInfo<AlertDefinition>;
28
- toViewCompact(alert: AdaptableAlert): {
29
- item: {
30
- name: string;
31
- values: string[];
32
- };
33
- abObject: AdaptableAlert;
34
- };
28
+ toViewCompact(alert: AdaptableAlert): AdaptableObjectCompactView;
35
29
  toView(alert: AlertDefinition): AdaptableObjectView;
36
30
  toViewAll(): AdaptableObjectView[];
37
31
  getViewProperties(): AdaptableModuleView;
@@ -17,6 +17,7 @@ const getAlertBehaviourViewItems_1 = require("./Utilities/getAlertBehaviourViewI
17
17
  const AlertEmptyView_1 = require("../View/Alert/AlertEmptyView");
18
18
  const AlertStatusSubPanel_1 = require("../View/Alert/AlertStatusSubPanel");
19
19
  const getObjectTagsViewItems_1 = require("./Utilities/getObjectTagsViewItems");
20
+ const ActiveAlertsPanelItemLabel_1 = require("../View/Alert/ActiveAlertsPanelItemLabel");
20
21
  class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
21
22
  constructor(api) {
22
23
  super(ModuleConstants.AlertModuleId, 'Alert', 'alert', 'AlertPopup', 'Get notified when things happen in Adaptable that you need to know about', api);
@@ -29,10 +30,10 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
29
30
  }
30
31
  if (this.api.internalApi.getAdaptableOptions().alertOptions.dataChangeDetectionPolicy ===
31
32
  'formattedValue') {
32
- const { oldValue, newValue } = cellDataChangedInfo;
33
+ const { oldValue, newValue, rowNode } = cellDataChangedInfo;
33
34
  const columnId = cellDataChangedInfo.column.columnId;
34
- const oldFormattedValue = this.api.gridApi.getFormattedValueFromRawValue(columnId, oldValue);
35
- const newFormattedValue = this.api.gridApi.getFormattedValueFromRawValue(columnId, newValue);
35
+ const oldFormattedValue = this.api.gridApi.getFormattedValueFromRawValue(rowNode, columnId, oldValue);
36
+ const newFormattedValue = this.api.gridApi.getFormattedValueFromRawValue(rowNode, columnId, newValue);
36
37
  if (oldFormattedValue === newFormattedValue) {
37
38
  // if the formattedValues are identical, then no alert is fired
38
39
  return;
@@ -249,6 +250,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
249
250
  return {
250
251
  item: {
251
252
  name: alert.header,
253
+ label: ActiveAlertsPanelItemLabel_1.ActiveAlertsPanelItemLabel,
252
254
  values: [alert.message],
253
255
  },
254
256
  abObject: alert,
@@ -285,6 +287,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
285
287
  getEditWizard: () => AlertWizard_1.AlertWizard,
286
288
  getStatusBarPanelProps: () => {
287
289
  return {
290
+ popoverMinWidth: 360,
288
291
  view: AlertStatusSubPanel_1.AlertStatusPanel,
289
292
  };
290
293
  },
@@ -6,7 +6,7 @@ const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
6
6
  const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
7
7
  class ChartingModule extends AdaptableModuleBase_1.AdaptableModuleBase {
8
8
  constructor(api) {
9
- super(ModuleConstants.ChartingModuleId, 'Charts', 'chart', 'ChartPopup', 'Create Charts in order to see Adaptable Data visually', api);
9
+ super(ModuleConstants.ChartingModuleId, 'Charts', 'chart', 'ChartPopup', 'Create AG Grid Charts in order to see Adaptable Data visually', api);
10
10
  }
11
11
  isModuleAvailable() {
12
12
  return this.api.chartingApi.isChartingEnabled() && super.isModuleAvailable();
@@ -63,6 +63,7 @@ class DashboardModule extends AdaptableModuleBase_1.AdaptableModuleBase {
63
63
  {
64
64
  label: this.moduleInfo.FriendlyName,
65
65
  isVisible: true,
66
+ module: this.moduleInfo.ModuleName,
66
67
  icon: {
67
68
  name: 'dashboard',
68
69
  },
@@ -76,6 +76,7 @@ class ExportModule extends AdaptableModuleBase_1.AdaptableModuleBase {
76
76
  return [
77
77
  {
78
78
  label: 'Export Selected Cells',
79
+ module: this.moduleInfo.ModuleName,
79
80
  isVisible: true,
80
81
  icon: { name: this.moduleInfo.Glyph },
81
82
  subItems: menuItems,
@@ -29,10 +29,10 @@ class FlashingCellModule extends AdaptableModuleBase_1.AdaptableModuleBase {
29
29
  // - flash for the underlying small data changes, but the visual does not
30
30
  if (this.api.internalApi.getAdaptableOptions().alertOptions.dataChangeDetectionPolicy ===
31
31
  'formattedValue') {
32
- const { oldValue, newValue } = cellDataChangedInfo;
32
+ const { oldValue, newValue, rowNode } = cellDataChangedInfo;
33
33
  const columnId = cellDataChangedInfo.column.columnId;
34
- const oldFormattedValue = this.api.gridApi.getFormattedValueFromRawValue(columnId, oldValue);
35
- const newFormattedValue = this.api.gridApi.getFormattedValueFromRawValue(columnId, newValue);
34
+ const oldFormattedValue = this.api.gridApi.getFormattedValueFromRawValue(rowNode, columnId, oldValue);
35
+ const newFormattedValue = this.api.gridApi.getFormattedValueFromRawValue(rowNode, columnId, newValue);
36
36
  if (oldFormattedValue === newFormattedValue) {
37
37
  // if the formattedValues are identical, then no alert is fired
38
38
  return;
@@ -196,14 +196,14 @@ class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
196
196
  let formatColumn = this.api.formatColumnApi.getFormatColumnForColumnId(column.columnId);
197
197
  let hasCheckBox = formatColumn && ((_a = formatColumn.ColumnStyle) === null || _a === void 0 ? void 0 : _a.CheckBoxStyle);
198
198
  if (hasCheckBox) {
199
- returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Remove Checkbox', 'check-box-outline', () => {
199
+ returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Remove Checkbox', 'unchecked', () => {
200
200
  this.api.formatColumnApi.deleteFormatColumn(formatColumn);
201
201
  }));
202
202
  }
203
203
  else {
204
204
  // const test = this.api.formatColumnApi.getCheckBoxStyleFormatColumn(column);
205
205
  if (formatColumn) {
206
- returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Show as Checkbox', 'check-box', () => {
206
+ returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Show as Checkbox', 'checked', () => {
207
207
  formatColumn.ColumnStyle = {
208
208
  CheckBoxStyle: true,
209
209
  };
@@ -212,7 +212,7 @@ class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
212
212
  }));
213
213
  }
214
214
  else {
215
- returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Show as Checkbox', 'check-box', () => {
215
+ returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Show as Checkbox', 'checked', () => {
216
216
  let newFormatColumn = {
217
217
  Scope: {
218
218
  ColumnIds: [column.columnId],
@@ -42,6 +42,7 @@ class GridInfoModule extends AdaptableModuleBase_1.AdaptableModuleBase {
42
42
  return [
43
43
  {
44
44
  label: 'Show Info',
45
+ module: this.moduleInfo.ModuleName,
45
46
  isVisible: true,
46
47
  icon: {
47
48
  name: this.moduleInfo.Glyph,
@@ -90,6 +91,7 @@ class GridInfoModule extends AdaptableModuleBase_1.AdaptableModuleBase {
90
91
  return [
91
92
  {
92
93
  label: 'Show Info',
94
+ module: this.moduleInfo.ModuleName,
93
95
  isVisible: true,
94
96
  icon: {
95
97
  name: this.moduleInfo.Glyph,
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { CSSProperties } from 'react';
2
2
  import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
3
3
  import { AdaptableMenuItem, ContextMenuContext } from '../../PredefinedConfig/Common/Menu';
4
4
  import { AdaptableModule } from '../../PredefinedConfig/Common/Types';
@@ -9,13 +9,13 @@ import { CalculatedColumn } from '../../PredefinedConfig/CalculatedColumnState';
9
9
  import { FreeTextColumn } from '../../PredefinedConfig/FreeTextColumnState';
10
10
  import { AdaptableOnePageWizardProps } from '../../View/Wizard/Interface/IAdaptableWizard';
11
11
  import * as Redux from 'redux';
12
- import { SuspendableObject } from '../../../types';
12
+ import { AdaptableInternalIconName, SuspendableObject } from '../../../types';
13
13
  import { StatusBarPanelProps } from '../../View/StatusBar/StatusBarPanel';
14
14
  import { StrictExtract } from '../../Utilities/Extensions/TypeExtensions';
15
15
  export interface ModuleInfo {
16
16
  ModuleName: AdaptableModule;
17
17
  FriendlyName: string;
18
- Glyph: string;
18
+ Glyph: AdaptableInternalIconName;
19
19
  Popup: string;
20
20
  Description: string;
21
21
  HelpPage: string;
@@ -34,7 +34,9 @@ export interface AdaptableObjectItemView {
34
34
  /**
35
35
  * Custom name for the property name
36
36
  */
37
- label?: string;
37
+ label?: string | React.FunctionComponent<{
38
+ data: AdaptableObject | SuspendableObject;
39
+ }>;
38
40
  /**
39
41
  * How the item is rendered.
40
42
  * Defaults to tags.
@@ -62,6 +64,14 @@ export interface AdaptableObjectView {
62
64
  * Reference to the underling object.
63
65
  */
64
66
  abObject: AdaptableObject;
67
+ /**
68
+ * Style added on the item wrapper.
69
+ */
70
+ style?: CSSProperties;
71
+ /**
72
+ * ClassName added on the item wrapper.
73
+ */
74
+ className?: string;
65
75
  }
66
76
  export interface AdaptableObjectCompactView {
67
77
  item: AdaptableObjectItemView;
@@ -77,6 +87,7 @@ export interface AdaptableModuleView {
77
87
  * Allows to add custom actions.
78
88
  */
79
89
  actions?: AdaptableModuleViewAction[];
90
+ onMount?: () => void;
80
91
  onOpenEditPopup?: (abObject?: AdaptableObject) => void;
81
92
  getDeleteAction?: (abObject: AdaptableObject) => Redux.Action;
82
93
  getCompactDeleteAction?: (abObject: AdaptableObject) => Redux.Action;
@@ -122,6 +133,7 @@ export interface IModule {
122
133
  setModuleEntitlement(): void;
123
134
  isModuleAvailable(): boolean;
124
135
  isModuleEditable(): boolean;
136
+ isModuleObjectsShareable(): boolean;
125
137
  getTeamSharingAction(): TeamSharingImportInfo<AdaptableObject> | undefined;
126
138
  getModuleAdaptableObjects(): AdaptableObject[];
127
139
  getTeamSharingReferences(adaptableObject: AdaptableObject): TeamSharingReferences;
@@ -162,6 +162,7 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
162
162
  returnColumnMenuItems.push({
163
163
  label: 'Select',
164
164
  isVisible: true,
165
+ module: this.moduleInfo.ModuleName,
165
166
  icon: {
166
167
  name: 'tab-unselected',
167
168
  },
@@ -198,6 +199,7 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
198
199
  gridMenuItems.push(this.createColumnMenuItemClickFunction('Select', 'tab-unselected', clickFunction));
199
200
  returnColumnMenuItems.push({
200
201
  label: 'Grid',
202
+ module: this.moduleInfo.ModuleName,
201
203
  isVisible: true,
202
204
  icon: { name: 'align-justify' },
203
205
  subItems: gridMenuItems,
@@ -1,11 +1,21 @@
1
1
  import { AdaptableModuleBase } from './AdaptableModuleBase';
2
- import { IModule } from './Interface/IModule';
2
+ import { AdaptableModuleView, AdaptableObjectView, IModule } from './Interface/IModule';
3
3
  import { AdaptableApi } from '../Api/AdaptableApi';
4
+ import { SharedEntity } from '../../types';
4
5
  export declare class TeamSharingModule extends AdaptableModuleBase implements IModule {
5
6
  private SKIP_TEAMSHARING_UPDATE_ACTIONS;
6
7
  constructor(api: AdaptableApi);
7
8
  isModuleAvailable(): boolean;
9
+ isModuleObjectsShareable(): boolean;
8
10
  getPopupMaxWidth(): number | undefined;
9
11
  private handleStateChanged;
10
12
  private extractAdaptableObjectFromAction;
13
+ isAdaptableObjectPresentInLocalState(sharedEntity: SharedEntity): boolean;
14
+ private isSharedEntityADependency;
15
+ private isStaleAndActive;
16
+ private getDependencies;
17
+ private getStaleDependencies;
18
+ toView(sharedEntity: SharedEntity): AdaptableObjectView;
19
+ toViewAll(): AdaptableObjectView[];
20
+ getViewProperties(): AdaptableModuleView;
11
21
  }