@adaptabletools/adaptable 13.0.0-canary.12 → 13.0.0-canary.13

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 (86) hide show
  1. package/bundle.cjs.js +169 -169
  2. package/package.json +1 -1
  3. package/publishTimestamp.d.ts +1 -1
  4. package/publishTimestamp.js +1 -1
  5. package/src/AdaptableOptions/AdaptableQLOptions.d.ts +20 -3
  6. package/src/AdaptableOptions/LayoutOptions.d.ts +2 -1
  7. package/src/Api/AdaptableApi.d.ts +2 -0
  8. package/src/Api/FormatColumnApi.d.ts +2 -23
  9. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -0
  10. package/src/Api/Implementation/AdaptableApiImpl.js +2 -0
  11. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +1 -6
  12. package/src/Api/Implementation/FormatColumnApiImpl.js +13 -111
  13. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +19 -0
  14. package/src/Api/Implementation/StyledColumnApiImpl.js +134 -0
  15. package/src/Api/StyledColumnApi.d.ts +68 -0
  16. package/src/Api/StyledColumnApi.js +2 -0
  17. package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
  18. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  19. package/src/PredefinedConfig/Common/Types.d.ts +3 -3
  20. package/src/PredefinedConfig/Common/Types.js +1 -0
  21. package/src/PredefinedConfig/PredefinedConfig.d.ts +5 -0
  22. package/src/PredefinedConfig/StyledColumnState.d.ts +113 -0
  23. package/src/PredefinedConfig/StyledColumnState.js +2 -0
  24. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +49 -0
  25. package/src/Redux/ActionsReducers/StyledColumnRedux.js +92 -0
  26. package/src/Redux/Store/AdaptableStore.js +7 -0
  27. package/src/Strategy/StyledColumnModule.d.ts +24 -0
  28. package/src/Strategy/StyledColumnModule.js +165 -0
  29. package/src/Strategy/Utilities/getScopeViewItems.js +1 -1
  30. package/src/Utilities/Constants/ModuleConstants.d.ts +3 -0
  31. package/src/Utilities/Constants/ModuleConstants.js +4 -1
  32. package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -0
  33. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.d.ts +1 -4
  34. package/src/Utilities/ObjectFactory.d.ts +3 -0
  35. package/src/Utilities/ObjectFactory.js +11 -3
  36. package/src/Utilities/Services/ModuleService.js +3 -1
  37. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +1 -1
  38. package/src/View/Components/RangesComponent.d.ts +1 -0
  39. package/src/View/Components/RangesComponent.js +12 -12
  40. package/src/View/Components/Selectors/ColumnSelector.d.ts +1 -0
  41. package/src/View/Components/Selectors/ColumnSelector.js +2 -1
  42. package/src/View/Components/StyleComponent.js +2 -2
  43. package/src/View/Components/ToolPanel/AdaptableToolPanel.d.ts +1 -11
  44. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +21 -9
  45. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  46. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +1 -1
  47. package/src/View/DataSet/DataSetViewPanel.d.ts +1 -1
  48. package/src/View/Export/ExportViewPanel.d.ts +1 -1
  49. package/src/View/Filter/FilterSummary.d.ts +1 -1
  50. package/src/View/Filter/FilterViewPanel.d.ts +1 -1
  51. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -3
  52. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +6 -315
  53. package/src/View/Layout/LayoutViewPanel.d.ts +1 -1
  54. package/src/View/Query/QueryViewPanel.d.ts +1 -1
  55. package/src/View/QuickSearch/QuickSearchViewPanel.d.ts +1 -1
  56. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +7 -0
  57. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +77 -0
  58. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.d.ts +9 -0
  59. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +65 -0
  60. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection.d.ts +9 -0
  61. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection.js +238 -0
  62. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.d.ts +7 -0
  63. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +59 -0
  64. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +1 -1
  65. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +1 -1
  66. package/src/agGrid/Adaptable.d.ts +2 -1
  67. package/src/agGrid/Adaptable.js +50 -35
  68. package/src/agGrid/FilterWrapper.js +58 -19
  69. package/src/agGrid/FloatingFilterWrapper.js +10 -12
  70. package/src/agGrid/PercentBarRenderer.d.ts +6 -2
  71. package/src/agGrid/PercentBarRenderer.js +10 -18
  72. package/src/agGrid/agGridHelper.d.ts +6 -2
  73. package/src/agGrid/agGridHelper.js +4 -2
  74. package/src/agGrid/createAgStatusPanelComponent.d.ts +1 -1
  75. package/src/agGrid/createAgStatusPanelComponent.js +17 -0
  76. package/src/components/Datepicker/index.d.ts +1 -1
  77. package/src/components/icons/brush.d.ts +3 -0
  78. package/src/components/icons/brush.js +7 -0
  79. package/src/components/icons/index.js +2 -0
  80. package/src/metamodel/adaptable.metamodel.d.ts +56 -20
  81. package/src/metamodel/adaptable.metamodel.js +1 -1
  82. package/src/types.d.ts +3 -1
  83. package/version.d.ts +1 -1
  84. package/version.js +1 -1
  85. package/src/AdaptableComponents.d.ts +0 -1
  86. package/src/AdaptableComponents.js +0 -5
@@ -22,15 +22,15 @@ export declare type AdaptableModuleButtons = AdaptableModuleButton[];
22
22
  /**
23
23
  * List of all the Module buttons Adaptable provides - each Module has a popup for which this is a shortcut button
24
24
  */
25
- export declare type AdaptableModuleButton = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'Glue42' | 'GridInfo' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme';
25
+ export declare type AdaptableModuleButton = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'Glue42' | 'GridInfo' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StyledColumn' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme';
26
26
  export declare type AdaptableStateKeys = AdaptableStateKey[];
27
27
  export declare type AdaptableStateKey = keyof AdaptablePersistentState | 'OpenFin' | 'Glue42' | 'IPushPull';
28
28
  /**
29
29
  * Modules provided by AdapTable, subject to Entitlements and usually have Predefined Config
30
30
  */
31
- export declare type AdaptableModule = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'Charting' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'Glue42' | 'GridInfo' | 'IPushPull' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel';
31
+ export declare type AdaptableModule = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'Charting' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'Glue42' | 'GridInfo' | 'IPushPull' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StyledColumn' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel';
32
32
  export declare const ALL_MODULES: AdaptableModule[];
33
- export declare type AdaptableSettingsPanel = 'Alert' | 'CalculatedColumn' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'Layout' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'Shortcut' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel';
33
+ export declare type AdaptableSettingsPanel = 'Alert' | 'CalculatedColumn' | 'ConditionalStyle' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'Filter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'Layout' | 'PlusMinus' | 'Query' | 'QuickSearch' | 'Schedule' | 'Shortcut' | 'StyledColumn' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel';
34
34
  export declare type TypeHint<Base, Literals> = (Base & {
35
35
  __subType?: true;
36
36
  }) | Literals;
@@ -102,6 +102,7 @@ exports.ALL_MODULES = [
102
102
  ModuleConstants.SettingsPanelModuleId,
103
103
  ModuleConstants.ShortcutModuleId,
104
104
  ModuleConstants.SmartEditModuleId,
105
+ ModuleConstants.StyledColumnModuleId,
105
106
  ModuleConstants.StateManagementModuleId,
106
107
  ModuleConstants.StatusBarModuleId,
107
108
  ModuleConstants.SystemStatusModuleId,
@@ -18,6 +18,7 @@ import { ToolPanelState } from './ToolPanelState';
18
18
  import { QueryState } from './QueryState';
19
19
  import { StatusBarState } from './StatusBarState';
20
20
  import { ChartingState } from './ChartingState';
21
+ import { StyledColumnState } from './StyledColumnState';
21
22
  /**
22
23
  * This is the main Predefined Config interface which developers will populate at design-time
23
24
  */
@@ -87,6 +88,10 @@ export interface PredefinedConfig {
87
88
  * Supplies a collection of *Shortcut* objects to aid data entry and prevent 'fat finger' issues
88
89
  */
89
90
  Shortcut?: ShortcutState;
91
+ /**
92
+ * Supplies a collection of Special Column Styles
93
+ */
94
+ StyledColumn?: StyledColumnState;
90
95
  /**
91
96
  * Configures the Adaptable Status Bar
92
97
  */
@@ -0,0 +1,113 @@
1
+ import { ConfigState } from './ConfigState';
2
+ import { SuspendableObject } from './Common/SuspendableObject';
3
+ /**
4
+ * Predefined Configuration for Special Column Style Module
5
+ */
6
+ export interface StyledColumnState extends ConfigState {
7
+ /**
8
+ * Collection of Special Column Styles
9
+ */
10
+ StyledColumns?: StyledColumn[];
11
+ }
12
+ /**
13
+ * Object used in Special Column Style function
14
+ */
15
+ export interface StyledColumn extends SuspendableObject {
16
+ ColumnId: string;
17
+ GradientStyle?: GradientStyle;
18
+ /**
19
+ * Style a numeric column so each cell displays a 'bar'
20
+ */
21
+ PercentBarStyle?: PercentBarStyle;
22
+ /**
23
+ * Style a boolean column so each cell displays a checkbox
24
+ */
25
+ CheckBoxStyle?: boolean;
26
+ }
27
+ /**
28
+ * Style used to display Percent Bars in Special Column Style
29
+ */
30
+ export interface PercentBarStyle extends NumericStyledColumn {
31
+ /**
32
+ * Ranges (e.g. to allow a traffic light effect)
33
+ */
34
+ CellRanges?: CellColorRange[];
35
+ /**
36
+ * Compares cell values to another Column
37
+ */
38
+ ColumnComparison?: ColumnComparison;
39
+ /**
40
+ * Whether Cell shows Cell Value, Percent Value, both or none
41
+ */
42
+ CellText?: CellTextOptions;
43
+ /**
44
+ * Whether Tooltip shows Cell Value, Percent Value, both or none
45
+ */
46
+ ToolTipText?: CellTextOptions;
47
+ /**
48
+ * Back colour - only used for 'Percent Bar' Numeric style; leave unset if none required
49
+ * @defaultValue Gray
50
+ */
51
+ BackColor?: string;
52
+ }
53
+ export interface NumericStyledColumn {
54
+ }
55
+ /**
56
+ * Used to display Gradient Styles in Special Column Style
57
+ */
58
+ export interface GradientStyle extends NumericStyledColumn {
59
+ /**
60
+ * Ranges (e.g. to allow a traffic light effect)
61
+ */
62
+ CellRanges?: CellColorRange[];
63
+ /**
64
+ * Compares cell values to another Column
65
+ */
66
+ ColumnComparison?: ColumnComparison;
67
+ }
68
+ /**
69
+ * Defines which Colours to show in Gradient and Percent Bar Styles
70
+ */
71
+ export interface CellColorRange {
72
+ /**
73
+ * Start number of Range
74
+ */
75
+ Min: number | 'Col-Min';
76
+ /**
77
+ * End number of Range
78
+ */
79
+ Max: number | 'Col-Max';
80
+ /**
81
+ * Cell colour to use for values that fall inside Range
82
+ */
83
+ Color: string;
84
+ /**
85
+ * Reverses the Gradient so the lower the cell value the darker the colour
86
+ */
87
+ ReverseGradient?: boolean;
88
+ }
89
+ /**
90
+ * Enables a Percent Bar or Gradient Style to use another column in its calculations
91
+ */
92
+ export interface ColumnComparison {
93
+ /**
94
+ * Start value - either numeric or Column name
95
+ */
96
+ MinValue: number | string;
97
+ /**
98
+ * End value - either numeric or Column name
99
+ */
100
+ MaxValue: number | string;
101
+ /**
102
+ * Colour to use for the Comparison
103
+ */
104
+ Color: string;
105
+ }
106
+ /**
107
+ * Array of CellTextOption available in Special Column Styles
108
+ */
109
+ export declare type CellTextOptions = CellTextOption[];
110
+ /**
111
+ * Text optionally to show in a Special Column Style special style: 'CellValue' or 'PercentageValue'
112
+ */
113
+ export declare type CellTextOption = 'CellValue' | 'PercentageValue';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,49 @@
1
+ import { StyledColumnState, StyledColumn } from '../../PredefinedConfig/StyledColumnState';
2
+ import * as Redux from 'redux';
3
+ /**
4
+ * @ReduxAction A Special Column Style has been added
5
+ */
6
+ export declare const STYLED_COLUMN_ADD = "STYLED_COLUMN_ADD";
7
+ /**
8
+ * @ReduxAction A Special Column Style has been edited
9
+ */
10
+ export declare const STYLED_COLUMN_EDIT = "STYLED_COLUMN_EDIT";
11
+ /**
12
+ * @ReduxAction A Special Column Style has been deleted
13
+ */
14
+ export declare const STYLED_COLUMN_DELETE = "STYLED_COLUMN_DELETE";
15
+ /**
16
+ * @ReduxAction StyledColumn Module is ready
17
+ */
18
+ export declare const STYLED_COLUMN_READY = "STYLED_COLUMN_READY";
19
+ /**
20
+ * @ReduxAction StyledColumn Module is suspended
21
+ */
22
+ export declare const STYLED_COLUMN_SUSPEND = "STYLED_COLUMN_SUSPEND";
23
+ /**
24
+ * @ReduxAction StyledColumn Module is unsuspended, or activated
25
+ */
26
+ export declare const STYLED_COLUMN_UNSUSPEND = "STYLED_COLUMN_UNSUSPEND";
27
+ export interface StyledColumnAction extends Redux.Action {
28
+ StyledColumn: StyledColumn;
29
+ }
30
+ export interface StyledColumnAddAction extends StyledColumnAction {
31
+ }
32
+ export interface StyledColumnEditAction extends StyledColumnAction {
33
+ }
34
+ export interface StyledColumnDeleteAction extends StyledColumnAction {
35
+ }
36
+ export interface StyledColumnSuspendAction extends StyledColumnAction {
37
+ }
38
+ export interface StyledColumnUnSuspendAction extends StyledColumnAction {
39
+ }
40
+ export interface StyledColumnReadyAction extends Redux.Action {
41
+ StyledColumnState: StyledColumnState;
42
+ }
43
+ export declare const StyledColumnAdd: (formatColumn: StyledColumn) => StyledColumnAddAction;
44
+ export declare const StyledColumnEdit: (formatColumn: StyledColumn) => StyledColumnEditAction;
45
+ export declare const StyledColumnDelete: (formatColumn: StyledColumn) => StyledColumnDeleteAction;
46
+ export declare const StyledColumnSuspend: (formatColumn: StyledColumn) => StyledColumnSuspendAction;
47
+ export declare const StyledColumnUnSuspend: (formatColumn: StyledColumn) => StyledColumnSuspendAction;
48
+ export declare const StyledColumnReady: (formatColumnState: StyledColumnState) => StyledColumnReadyAction;
49
+ export declare const StyledColumnReducer: Redux.Reducer<StyledColumnState>;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StyledColumnReducer = exports.StyledColumnReady = exports.StyledColumnUnSuspend = exports.StyledColumnSuspend = exports.StyledColumnDelete = exports.StyledColumnEdit = exports.StyledColumnAdd = exports.STYLED_COLUMN_UNSUSPEND = exports.STYLED_COLUMN_SUSPEND = exports.STYLED_COLUMN_READY = exports.STYLED_COLUMN_DELETE = exports.STYLED_COLUMN_EDIT = exports.STYLED_COLUMN_ADD = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
6
+ const AdaptableHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/AdaptableHelper"));
7
+ const utils_1 = require("./utils");
8
+ /**
9
+ * @ReduxAction A Special Column Style has been added
10
+ */
11
+ exports.STYLED_COLUMN_ADD = 'STYLED_COLUMN_ADD';
12
+ /**
13
+ * @ReduxAction A Special Column Style has been edited
14
+ */
15
+ exports.STYLED_COLUMN_EDIT = 'STYLED_COLUMN_EDIT';
16
+ /**
17
+ * @ReduxAction A Special Column Style has been deleted
18
+ */
19
+ exports.STYLED_COLUMN_DELETE = 'STYLED_COLUMN_DELETE';
20
+ /**
21
+ * @ReduxAction StyledColumn Module is ready
22
+ */
23
+ exports.STYLED_COLUMN_READY = 'STYLED_COLUMN_READY';
24
+ /**
25
+ * @ReduxAction StyledColumn Module is suspended
26
+ */
27
+ exports.STYLED_COLUMN_SUSPEND = 'STYLED_COLUMN_SUSPEND';
28
+ /**
29
+ * @ReduxAction StyledColumn Module is unsuspended, or activated
30
+ */
31
+ exports.STYLED_COLUMN_UNSUSPEND = 'STYLED_COLUMN_UNSUSPEND';
32
+ const StyledColumnAdd = (formatColumn) => ({
33
+ type: exports.STYLED_COLUMN_ADD,
34
+ StyledColumn: formatColumn,
35
+ });
36
+ exports.StyledColumnAdd = StyledColumnAdd;
37
+ const StyledColumnEdit = (formatColumn) => ({
38
+ type: exports.STYLED_COLUMN_EDIT,
39
+ StyledColumn: formatColumn,
40
+ });
41
+ exports.StyledColumnEdit = StyledColumnEdit;
42
+ const StyledColumnDelete = (formatColumn) => ({
43
+ type: exports.STYLED_COLUMN_DELETE,
44
+ StyledColumn: formatColumn,
45
+ });
46
+ exports.StyledColumnDelete = StyledColumnDelete;
47
+ const StyledColumnSuspend = (formatColumn) => ({
48
+ type: exports.STYLED_COLUMN_SUSPEND,
49
+ StyledColumn: formatColumn,
50
+ });
51
+ exports.StyledColumnSuspend = StyledColumnSuspend;
52
+ const StyledColumnUnSuspend = (formatColumn) => ({
53
+ type: exports.STYLED_COLUMN_UNSUSPEND,
54
+ StyledColumn: formatColumn,
55
+ });
56
+ exports.StyledColumnUnSuspend = StyledColumnUnSuspend;
57
+ const StyledColumnReady = (formatColumnState) => ({
58
+ type: exports.STYLED_COLUMN_READY,
59
+ StyledColumnState: formatColumnState,
60
+ });
61
+ exports.StyledColumnReady = StyledColumnReady;
62
+ const initialState = {
63
+ StyledColumns: GeneralConstants_1.EMPTY_ARRAY,
64
+ };
65
+ const StyledColumnReducer = (state = initialState, action) => {
66
+ let formatColumns;
67
+ switch (action.type) {
68
+ case exports.STYLED_COLUMN_ADD: {
69
+ const actionStyledColumn = action.StyledColumn;
70
+ AdaptableHelper_1.default.addUuidAndSource(actionStyledColumn);
71
+ formatColumns = [].concat(state.StyledColumns);
72
+ formatColumns.push(actionStyledColumn);
73
+ return Object.assign(Object.assign({}, state), { StyledColumns: formatColumns });
74
+ }
75
+ case exports.STYLED_COLUMN_EDIT:
76
+ const actionStyledColumn = action.StyledColumn;
77
+ return Object.assign(Object.assign({}, state), { StyledColumns: state.StyledColumns.map((abObject) => abObject.Uuid === actionStyledColumn.Uuid ? actionStyledColumn : abObject) });
78
+ case exports.STYLED_COLUMN_DELETE: {
79
+ const actionStyledColumn = action.StyledColumn;
80
+ return Object.assign(Object.assign({}, state), { StyledColumns: state.StyledColumns.filter((abObject) => abObject.Uuid !== actionStyledColumn.Uuid) });
81
+ }
82
+ case exports.STYLED_COLUMN_SUSPEND: {
83
+ return Object.assign(Object.assign({}, state), { StyledColumns: (0, utils_1.changeIsSuspendInList)(action.StyledColumn, state.StyledColumns, true) });
84
+ }
85
+ case exports.STYLED_COLUMN_UNSUSPEND: {
86
+ return Object.assign(Object.assign({}, state), { StyledColumns: (0, utils_1.changeIsSuspendInList)(action.StyledColumn, state.StyledColumns, false) });
87
+ }
88
+ default:
89
+ return state;
90
+ }
91
+ };
92
+ exports.StyledColumnReducer = StyledColumnReducer;
@@ -24,6 +24,7 @@ const ConditionalStyleRedux = tslib_1.__importStar(require("../ActionsReducers/C
24
24
  const QuickSearchRedux = tslib_1.__importStar(require("../ActionsReducers/QuickSearchRedux"));
25
25
  const ThemeRedux = tslib_1.__importStar(require("../ActionsReducers/ThemeRedux"));
26
26
  const FormatColumnRedux = tslib_1.__importStar(require("../ActionsReducers/FormatColumnRedux"));
27
+ const StyledColumnRedux = tslib_1.__importStar(require("../ActionsReducers/StyledColumnRedux"));
27
28
  const ApplicationRedux = tslib_1.__importStar(require("../ActionsReducers/ApplicationRedux"));
28
29
  const FreeTextColumnRedux = tslib_1.__importStar(require("../ActionsReducers/FreeTextColumnRedux"));
29
30
  const LayoutRedux = tslib_1.__importStar(require("../ActionsReducers/LayoutRedux"));
@@ -148,6 +149,7 @@ class AdaptableStore {
148
149
  ToolPanel: ToolPanelRedux.ToolPanelReducer,
149
150
  Query: QueryRedux.QueryReducer,
150
151
  Charting: ChartingRedux.ChartingReducer,
152
+ StyledColumn: StyledColumnRedux.StyledColumnReducer,
151
153
  // dead reducers
152
154
  PercentBar: DeadRedux.PercentBarReducer,
153
155
  UpdatedRow: DeadRedux.UpdatedRowReducer,
@@ -661,6 +663,11 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
661
663
  case FormatColumnRedux.FORMAT_COLUMN_MOVE_UP:
662
664
  case FormatColumnRedux.FORMAT_COLUMN_SUSPEND:
663
665
  case FormatColumnRedux.FORMAT_COLUMN_UNSUSPEND:
666
+ case StyledColumnRedux.STYLED_COLUMN_ADD:
667
+ case StyledColumnRedux.STYLED_COLUMN_EDIT:
668
+ case StyledColumnRedux.STYLED_COLUMN_DELETE:
669
+ case StyledColumnRedux.STYLED_COLUMN_SUSPEND:
670
+ case StyledColumnRedux.STYLED_COLUMN_UNSUSPEND:
664
671
  case CustomSortRedux.CUSTOM_SORT_ADD:
665
672
  case CustomSortRedux.CUSTOM_SORT_EDIT:
666
673
  case CustomSortRedux.CUSTOM_SORT_DELETE:
@@ -0,0 +1,24 @@
1
+ import { AdaptableModuleBase } from './AdaptableModuleBase';
2
+ import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
3
+ import { AdaptableMenuItem } from '../PredefinedConfig/Common/Menu';
4
+ import { TeamSharingImportInfo } from '../PredefinedConfig/TeamSharingState';
5
+ import { FormatColumn } from '../PredefinedConfig/FormatColumnState';
6
+ import { AdaptableModuleView, AdaptableObjectView, IModule } from './Interface/IModule';
7
+ import { AdaptableApi } from '../Api/AdaptableApi';
8
+ import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
9
+ import { StyledColumn } from '../PredefinedConfig/StyledColumnState';
10
+ export declare class StyledColumnModule extends AdaptableModuleBase implements IModule {
11
+ constructor(api: AdaptableApi);
12
+ updateOldConfig(): void;
13
+ getModuleAdaptableObjects(config?: {
14
+ includeLayoutNotAssociatedObjects?: boolean;
15
+ }): AdaptableObject[];
16
+ getExplicitlyReferencedColumnIds(formatColumn: FormatColumn): string[];
17
+ hasNamedQueryReferences(): boolean;
18
+ addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
19
+ getTeamSharingAction(): TeamSharingImportInfo<StyledColumn>;
20
+ toView(styledColumn: StyledColumn): AdaptableObjectView;
21
+ toViewAll(): AdaptableObjectView[];
22
+ getViewProperties(): AdaptableModuleView;
23
+ canBeAssociatedWithLayouts(): boolean;
24
+ }
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StyledColumnModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
6
+ const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
7
+ const StyledColumnRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/StyledColumnRedux"));
8
+ const StyledColumnWizard_1 = require("../View/StyledColumn/Wizard/StyledColumnWizard");
9
+ const StyledColumnWizardStyleSection_1 = require("../View/StyledColumn/Wizard/StyledColumnWizardStyleSection");
10
+ const ObjectFactory_1 = tslib_1.__importDefault(require("../Utilities/ObjectFactory"));
11
+ const LoggingHelper_1 = require("../Utilities/Helpers/LoggingHelper");
12
+ class StyledColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
13
+ constructor(api) {
14
+ super(ModuleConstants.StyledColumnModuleId, ModuleConstants.StyledColumnFriendlyName, 'brush', 'StyledColumnPopup', // to change
15
+ 'Create a Special Column Style e.g Gradient or Percent Bar', api);
16
+ /**
17
+ * Use Case: Data (cell/row) has changed
18
+ * Action: Any CheckboxColumns need to be updated, as their disabled state may have changed
19
+ */
20
+ this.api.internalApi
21
+ .getDataService()
22
+ .on('CellDataChanged', (cellDataChangedInfo) => {
23
+ const activeCheckboxColumnIds = this.api.columnApi
24
+ .getColumns()
25
+ .filter((aColumn) => {
26
+ const checkboxColumn = this.api.formatColumnApi.getCheckBoxStyleFormatColumn(aColumn);
27
+ return checkboxColumn && !checkboxColumn.IsSuspended;
28
+ })
29
+ .map((aColumn) => aColumn.columnId);
30
+ // no need to refresh the CheckboxColumns if the change was triggered by one of them
31
+ if (!activeCheckboxColumnIds.includes(cellDataChangedInfo.column.columnId)) {
32
+ this.api.internalApi
33
+ .getAdaptableInstance()
34
+ .refreshCells(null, activeCheckboxColumnIds, true, true);
35
+ }
36
+ });
37
+ }
38
+ updateOldConfig() {
39
+ const formatColumnsWithColumnStyles = this.api.formatColumnApi
40
+ .getAllFormatColumn()
41
+ .filter((formatColumn) => formatColumn.ColumnStyle);
42
+ if (!formatColumnsWithColumnStyles.length) {
43
+ return;
44
+ }
45
+ (0, LoggingHelper_1.ConsoleLogInfo)(`Converting ${formatColumnsWithColumnStyles.length} FormatColumns Styles to Styled Columns`, formatColumnsWithColumnStyles);
46
+ formatColumnsWithColumnStyles.forEach((formatColumn) => {
47
+ this.api.formatColumnApi.deleteFormatColumn(formatColumn);
48
+ });
49
+ const styledColumns = formatColumnsWithColumnStyles
50
+ .map((formatColumn) => {
51
+ if (!('ColumnIds' in formatColumn.Scope)) {
52
+ return null;
53
+ }
54
+ return Object.assign(Object.assign(Object.assign({}, ObjectFactory_1.default.CreateEmptyStyledColumn()), { ColumnId: formatColumn.Scope.ColumnIds[0] }), formatColumn.ColumnStyle);
55
+ })
56
+ .filter(Boolean);
57
+ styledColumns.forEach((styledColumn) => this.api.styledColumnApi.addStyledColumn(styledColumn));
58
+ }
59
+ getModuleAdaptableObjects(config) {
60
+ return this.api.styledColumnApi.getAllStyledColumn(config);
61
+ }
62
+ getExplicitlyReferencedColumnIds(formatColumn) {
63
+ if (this.api.scopeApi.scopeHasColumns(formatColumn.Scope)) {
64
+ return this.api.scopeApi
65
+ .getColumnsForScope(formatColumn.Scope)
66
+ .map((adaptableColumn) => adaptableColumn.columnId);
67
+ }
68
+ return [];
69
+ }
70
+ hasNamedQueryReferences() {
71
+ return false;
72
+ }
73
+ addColumnMenuItems(column) {
74
+ let returnColumnMenuItems = [];
75
+ if (column && this.isModuleEditable() && !column.isSparkline) {
76
+ if (column.dataType === 'Number') {
77
+ let styledColumn = this.api.styledColumnApi.getStyledColumnByColumnId(column.columnId);
78
+ let styledColumnExists = Boolean(styledColumn);
79
+ if (styledColumn && styledColumn.IsReadOnly && styledColumn.IsReadOnly == true) {
80
+ styledColumnExists = false;
81
+ }
82
+ let label = styledColumnExists ? 'Edit ' : 'Create ';
83
+ let popupParam = {
84
+ action: styledColumnExists ? 'Edit' : 'New',
85
+ source: 'ColumnMenu',
86
+ value: styledColumn,
87
+ };
88
+ returnColumnMenuItems.push(this.createColumnMenuItemShowPopup(label + 'Styled Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam));
89
+ }
90
+ if (column.dataType == 'Boolean' && !this.api.columnApi.isFreeTextColumn(column.columnId)) {
91
+ const styledColumn = this.api.styledColumnApi.getStyledColumnByColumnId(column.columnId);
92
+ const hasCheckBox = styledColumn && (styledColumn === null || styledColumn === void 0 ? void 0 : styledColumn.CheckBoxStyle);
93
+ if (hasCheckBox) {
94
+ returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Remove Checkbox', 'unchecked', () => {
95
+ this.api.styledColumnApi.deleteStyledColumn(styledColumn);
96
+ }));
97
+ }
98
+ else {
99
+ returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Show as Checkbox', 'checked', () => {
100
+ const styledColumn = ObjectFactory_1.default.CreateEmptyStyledColumn();
101
+ this.api.styledColumnApi.addStyledColumn(Object.assign(Object.assign({}, styledColumn), { ColumnId: column.columnId, CheckBoxStyle: true }));
102
+ }));
103
+ }
104
+ }
105
+ }
106
+ return returnColumnMenuItems;
107
+ }
108
+ getTeamSharingAction() {
109
+ return {
110
+ ModuleEntities: this.api.styledColumnApi.getAllStyledColumn(),
111
+ AddAction: StyledColumnRedux.StyledColumnAdd,
112
+ EditAction: StyledColumnRedux.StyledColumnEdit,
113
+ };
114
+ }
115
+ toView(styledColumn) {
116
+ let type = null;
117
+ if (styledColumn.GradientStyle) {
118
+ type = 'Gradient';
119
+ }
120
+ else if (styledColumn.PercentBarStyle) {
121
+ type = 'Percent Bar';
122
+ }
123
+ else {
124
+ type = 'Check Box';
125
+ }
126
+ return {
127
+ abObject: styledColumn,
128
+ items: [
129
+ {
130
+ name: 'Type',
131
+ values: [type],
132
+ },
133
+ {
134
+ name: 'Column',
135
+ values: [this.api.columnApi.getFriendlyNameFromColumnId(styledColumn.ColumnId)],
136
+ },
137
+ {
138
+ name: 'Style',
139
+ view: () => {
140
+ return (0, StyledColumnWizardStyleSection_1.renderStyledColumnStyleSummary)(styledColumn, this.api);
141
+ },
142
+ },
143
+ ].filter(Boolean),
144
+ };
145
+ }
146
+ toViewAll() {
147
+ return this.getModuleAdaptableObjects({
148
+ includeLayoutNotAssociatedObjects: this.showLayoutNotAssociatedObjects(),
149
+ }).map((styledColumn) => this.toView(styledColumn));
150
+ }
151
+ getViewProperties() {
152
+ return {
153
+ getDeleteAction: StyledColumnRedux.StyledColumnDelete,
154
+ getSuspendAction: StyledColumnRedux.StyledColumnSuspend,
155
+ getUnSuspendAction: StyledColumnRedux.StyledColumnUnSuspend,
156
+ getEditWizard() {
157
+ return StyledColumnWizard_1.StyledColumnWizard;
158
+ },
159
+ };
160
+ }
161
+ canBeAssociatedWithLayouts() {
162
+ return true;
163
+ }
164
+ }
165
+ exports.StyledColumnModule = StyledColumnModule;
@@ -11,7 +11,7 @@ const getScopeViewItems = (scope, api) => {
11
11
  values = scope.DataTypes;
12
12
  }
13
13
  if ('All' in scope) {
14
- values = ['All'];
14
+ values = ['All Columns'];
15
15
  }
16
16
  return {
17
17
  label: 'Target',
@@ -51,6 +51,8 @@ export declare const ShortcutModuleId: ModuleConstants;
51
51
  export declare const ShortcutFriendlyName = "Shortcut";
52
52
  export declare const SmartEditModuleId: ModuleConstants;
53
53
  export declare const SmartEditFriendlyName = "Smart Edit";
54
+ export declare const StyledColumnModuleId: ModuleConstants;
55
+ export declare const StyledColumnFriendlyName = "Styled Column";
54
56
  export declare const StateManagementModuleId: ModuleConstants;
55
57
  export declare const StateManagementFriendlyName = "Manage State";
56
58
  export declare const SystemStatusModuleId: ModuleConstants;
@@ -92,6 +94,7 @@ export declare const ADAPTABLE_MODULE_MAP: {
92
94
  Schedule: string;
93
95
  Shortcut: string;
94
96
  SmartEdit: string;
97
+ StyledColumn: string;
95
98
  StateManagement: string;
96
99
  SystemStatus: string;
97
100
  TeamSharing: string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ShortcutFriendlyName = exports.ShortcutModuleId = exports.ScheduleFriendlyName = exports.ScheduleModuleId = exports.QuickSearchFriendlyName = exports.QuickSearchModuleId = exports.QueryFriendlyName = exports.QueryModuleId = exports.PlusMinusFriendlyName = exports.PlusMinusModuleId = exports.OpenFinFriendlyName = exports.OpenFinModuleId = exports.LayoutFriendlyName = exports.LayoutModuleId = exports.IPushPullFriendlyName = exports.IPushPullModuleId = exports.GridInfoFriendlyName = exports.GridInfoModuleId = exports.Glue42FriendlyName = exports.Glue42ModuleId = exports.FreeTextColumnFriendlyName = exports.FreeTextColumnModuleId = exports.FormatColumnFriendlyName = exports.FormatColumnModuleId = exports.FilterFriendlyName = exports.FilterModuleId = exports.ExportFriendlyName = exports.ExportModuleId = exports.DataSetFriendlyName = exports.DataSetModuleId = exports.DataChangeHistoryFriendlyName = exports.DataChangeHistoryModuleId = exports.DashboardFriendlyName = exports.DashboardModuleId = exports.CustomSortFriendlyName = exports.CustomSortModuleId = exports.ConditionalStyleFriendlyName = exports.ConditionalStyleModuleId = exports.ChartingFriendlyName = exports.ChartingModuleId = exports.CellSummaryFriendlyName = exports.CellSummaryModuleId = exports.CalculatedColumnFriendlyName = exports.CalculatedColumnModuleId = exports.BulkUpdateFriendlyName = exports.BulkUpdateModuleId = exports.FlashingCellFriendlyName = exports.FlashingCellModuleId = exports.AlertModuleFriendlyName = exports.AlertModuleId = void 0;
4
- exports.ADAPTABLE_MODULE_MAP = exports.StatusBarFriendlyName = exports.StatusBarModuleId = exports.SettingsPanelFriendlyName = exports.SettingsPanelModuleId = exports.ToolPanelFriendlyName = exports.ToolPanelModuleId = exports.ThemeFriendlyName = exports.ThemeModuleId = exports.TeamSharingFriendlyName = exports.TeamSharingModuleId = exports.SystemStatusFriendlyName = exports.SystemStatusModuleId = exports.StateManagementFriendlyName = exports.StateManagementModuleId = exports.SmartEditFriendlyName = exports.SmartEditModuleId = void 0;
4
+ exports.ADAPTABLE_MODULE_MAP = exports.StatusBarFriendlyName = exports.StatusBarModuleId = exports.SettingsPanelFriendlyName = exports.SettingsPanelModuleId = exports.ToolPanelFriendlyName = exports.ToolPanelModuleId = exports.ThemeFriendlyName = exports.ThemeModuleId = exports.TeamSharingFriendlyName = exports.TeamSharingModuleId = exports.SystemStatusFriendlyName = exports.SystemStatusModuleId = exports.StateManagementFriendlyName = exports.StateManagementModuleId = exports.StyledColumnFriendlyName = exports.StyledColumnModuleId = exports.SmartEditFriendlyName = exports.SmartEditModuleId = void 0;
5
5
  exports.AlertModuleId = 'Alert';
6
6
  exports.AlertModuleFriendlyName = 'Alert';
7
7
  exports.FlashingCellModuleId = 'FlashingCell';
@@ -54,6 +54,8 @@ exports.ShortcutModuleId = 'Shortcut';
54
54
  exports.ShortcutFriendlyName = 'Shortcut';
55
55
  exports.SmartEditModuleId = 'SmartEdit';
56
56
  exports.SmartEditFriendlyName = 'Smart Edit';
57
+ exports.StyledColumnModuleId = 'StyledColumn';
58
+ exports.StyledColumnFriendlyName = 'Styled Column';
57
59
  exports.StateManagementModuleId = 'StateManagement';
58
60
  exports.StateManagementFriendlyName = 'Manage State';
59
61
  exports.SystemStatusModuleId = 'SystemStatus';
@@ -95,6 +97,7 @@ exports.ADAPTABLE_MODULE_MAP = {
95
97
  [exports.ScheduleModuleId]: exports.ScheduleFriendlyName,
96
98
  [exports.ShortcutModuleId]: exports.ShortcutFriendlyName,
97
99
  [exports.SmartEditModuleId]: exports.SmartEditFriendlyName,
100
+ [exports.StyledColumnModuleId]: exports.StyledColumnFriendlyName,
98
101
  [exports.StateManagementModuleId]: exports.StateManagementFriendlyName,
99
102
  [exports.SystemStatusModuleId]: exports.SystemStatusFriendlyName,
100
103
  [exports.TeamSharingModuleId]: exports.TeamSharingFriendlyName,
@@ -32,6 +32,7 @@ exports.DEFAULT_NAVIGATION_ITEMS = [
32
32
  'QuickSearch',
33
33
  'Schedule',
34
34
  'Shortcut',
35
+ 'StyledColumn',
35
36
  '-',
36
37
  'SystemStatus',
37
38
  'DataChangeHistory',
@@ -2,9 +2,6 @@ import { ExpressionFunction } from '../../parser/src/types';
2
2
  /**
3
3
  * List of all the Observable Functions available in AdaptableQL
4
4
  */
5
- export declare type ObservableFunctionName = 'WHERE' | 'COL' | 'TIMEFRAME' | ObservableFunction | ChangeFunction;
6
- declare type ObservableFunction = 'ROW_CHANGE' | 'GRID_CHANGE';
7
- declare type ChangeFunction = 'MAX' | 'MIN' | 'NONE' | 'COUNT';
5
+ export declare type ObservableFunctionName = 'WHERE' | 'COL' | 'TIMEFRAME' | 'ROW_CHANGE' | 'GRID_CHANGE' | 'MAX' | 'MIN' | 'NONE' | 'COUNT';
8
6
  export declare const observableExpressionFunctions: Record<ObservableFunctionName, ExpressionFunction>;
9
7
  export declare const observableExpressionFunctionNames: ObservableFunctionName[];
10
- export {};
@@ -28,6 +28,7 @@ import { ColumnFilter, CustomDisplayFormatterContext, FlashingCellDefinition, Gr
28
28
  import { RowNode } from '@ag-grid-community/core';
29
29
  import { AdaptableApi } from '../../types';
30
30
  import { ToastOptions } from '../components/Toastify';
31
+ import { StyledColumn } from '../PredefinedConfig/StyledColumnState';
31
32
  export declare function CreateEmptyCustomSort(): CustomSort;
32
33
  export declare function CreateEmptyCalculatedColumn(): CalculatedColumn;
33
34
  export declare function CreateEmptyNamedQuery(expression?: string): NamedQuery;
@@ -64,6 +65,7 @@ export declare function CreateEmptyStyle(): AdaptableStyle;
64
65
  export declare function CreateSystemStatusMessageInfo(message: string, type: AdaptableMessageType, furtherInfo?: string): SystemStatusMessageInfo;
65
66
  export declare function CreateEmptyCellSummmary(): CellSummmary;
66
67
  export declare function CreateColumnFilter(ColumnId: string, PredicateId: SystemFilterPredicateId, Inputs: any[]): ColumnFilter;
68
+ export declare function CreateEmptyStyledColumn(): StyledColumn;
67
69
  export declare function CreateCustomDisplayFormatterContext(value: any, node: RowNode, abColumn: AdaptableColumn, api: AdaptableApi): CustomDisplayFormatterContext;
68
70
  export declare function CreateToastOptions(notificationsOptions: NotificationsOptions, { onClose, containerId }: {
69
71
  onClose?: VoidFunction;
@@ -106,5 +108,6 @@ export declare const ObjectFactory: {
106
108
  CreateSystemStatusMessageInfo: typeof CreateSystemStatusMessageInfo;
107
109
  CreateToastOptions: typeof CreateToastOptions;
108
110
  CreateCustomDisplayFormatterContext: typeof CreateCustomDisplayFormatterContext;
111
+ CreateEmptyStyledColumn: typeof CreateEmptyStyledColumn;
109
112
  };
110
113
  export default ObjectFactory;