@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "13.0.0-canary.12",
3
+ "version": "13.0.0-canary.13",
4
4
  "description": "Powerful data-agnostic HTML5 datagrid add-on that sits on top of an underlying grid component and provides all the rich functionality that advanced users expect from their DataGrids and Data Tables",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1,2 +1,2 @@
1
- declare const _default: 1663690672189;
1
+ declare const _default: 1663777360241;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 1663690672189;
3
+ exports.default = 1663777360241;
@@ -108,9 +108,8 @@ export interface ExpressionOptions {
108
108
  */
109
109
  moduleExpressionFunctions?: ModuleExpressionFunctionsMap | ((context: ModuleExpressionFunctionsContext) => ModuleExpressionFunctions | undefined);
110
110
  /**
111
- * Deprecated use `isColumnQueryable` instead
111
+ * Specifies if a given column can be included in Queries
112
112
  */
113
- queryableColumns?: string[] | (() => string[]);
114
113
  isColumnQueryable?: (queryableColumnContext: QueryableColumnContext) => boolean;
115
114
  /**
116
115
  * Validate Expressions before they can be run or saved
@@ -202,11 +201,29 @@ export interface GlobalExpressionFunctionsContext<T> extends BaseContext {
202
201
  * Context provided to ExpressionOptions.moduleExpressionFunctions property callback
203
202
  */
204
203
  export interface ModuleExpressionFunctionsContext extends BaseContext {
204
+ /**
205
+ * The Adaptable Module requesting the expression functions
206
+ */
205
207
  module: AdaptableModule;
208
+ /**
209
+ * The global boolean expression functions
210
+ */
206
211
  availableBooleanFunctionNames: BooleanFunctionName[];
212
+ /**
213
+ * The global scalar expression functions
214
+ */
207
215
  availableScalarFunctionNames: ScalarFunctionName[];
216
+ /**
217
+ * The global observable expression functions
218
+ */
208
219
  availableObservableFunctionNames: ObservableFunctionName[];
220
+ /**
221
+ * The global aggregated boolean expression functions
222
+ */
209
223
  availableAggregatedBooleanFunctionNames: AggregatedBooleanFunctionName[];
224
+ /**
225
+ * The global aggregated scalar expression functions
226
+ */
210
227
  availableAggregatedScalarFunctionNames: AggregatedScalarFunctionName[];
211
228
  }
212
229
  /**
@@ -240,7 +257,7 @@ export interface EvaluateExpressionExternallyContext extends BaseContext {
240
257
  */
241
258
  export interface QueryableColumnContext extends BaseContext {
242
259
  /**
243
- * Column - just Id, DataType and FriendlyName
260
+ * Basic Column Info - just ColumnId, DataType and FriendlyName
244
261
  */
245
262
  adaptableColumn: AdaptableColumnBase;
246
263
  }
@@ -5,6 +5,7 @@ import { FlashingCellDefinition } from '../PredefinedConfig/FlashingCellState';
5
5
  import { FormatColumn } from '../PredefinedConfig/FormatColumnState';
6
6
  import { PlusMinusNudge } from '../PredefinedConfig/PlusMinusState';
7
7
  import { Shortcut } from '../PredefinedConfig/ShortcutState';
8
+ import { StyledColumn } from '../PredefinedConfig/StyledColumnState';
8
9
  import { BaseSchedule } from '../PredefinedConfig/Common/Schedule';
9
10
  import { Layout } from '../PredefinedConfig/LayoutState';
10
11
  import { AdaptableModule } from '../PredefinedConfig/Common/Types';
@@ -116,7 +117,7 @@ export interface LayoutAvailableContext extends BaseContext {
116
117
  /**
117
118
  * Types of Adaptable Objects that can be associated with a Layout
118
119
  */
119
- export declare type LayoutAssociatedObject = AlertDefinition | ConditionalStyle | CustomSort | FlashingCellDefinition | FormatColumn | PlusMinusNudge | Shortcut | BaseSchedule;
120
+ export declare type LayoutAssociatedObject = AlertDefinition | ConditionalStyle | CustomSort | FlashingCellDefinition | FormatColumn | PlusMinusNudge | StyledColumn | Shortcut | BaseSchedule;
120
121
  /**
121
122
  * Context for `LayoutOptions.autoGenerateTagsForLayouts` method
122
123
  */
@@ -38,6 +38,7 @@ import { FlashingCellApi } from './FlashingCellApi';
38
38
  import { ChartingApi } from './ChartingApi';
39
39
  import { SettingsPanelApi } from './SettingsPanelApi';
40
40
  import { StatusBarApi } from './StatusBarApi';
41
+ import { StyledColumnApi } from './StyledColumnApi';
41
42
  /**
42
43
  *
43
44
  * The `AdaptableApi` provides developers with run-time access to AdapTable.
@@ -173,6 +174,7 @@ export interface AdaptableApi {
173
174
  * Provides access to the Smart Edit Module
174
175
  */
175
176
  smartEditApi: SmartEditApi;
177
+ styledColumnApi: StyledColumnApi;
176
178
  /**
177
179
  * Methods related to displaying System Status and application health messages
178
180
  */
@@ -1,4 +1,4 @@
1
- import { FormatColumnState, FormatColumn, ColumnStyle, ColumnComparison, CellColorRange } from '../PredefinedConfig/FormatColumnState';
1
+ import { FormatColumnState, FormatColumn, ColumnComparison } from '../PredefinedConfig/FormatColumnState';
2
2
  import { AdaptableColumn, AdaptableFormat, AdaptablePredicateDef, AdaptableScope } from '../types';
3
3
  import { RowNode } from '@ag-grid-community/core';
4
4
  /**
@@ -135,15 +135,10 @@ export interface FormatColumnApi {
135
135
  */
136
136
  getFormatColumnWithStyleForColumn(column: AdaptableColumn): FormatColumn | undefined;
137
137
  /**
138
- * Retrieves all format columns with style for a column
138
+ * Retrieves all format columns with style for a column. Includes text alignment.
139
139
  * @param column The Column for which to retrieve the Format Column
140
140
  */
141
141
  getColumnFormatColumnsWithStyle(column: AdaptableColumn): FormatColumn[];
142
- /**
143
- * Retrieves all Format Columns with style for the whole row
144
- * @returns format columns
145
- */
146
- getRowFormatColumnsWithStyle(): FormatColumn[];
147
142
  /**
148
143
  * Gets Format Column if any for given Column which includes Style element with ClassName
149
144
  * @param column The Column for which to retrieve the Format Column
@@ -160,22 +155,6 @@ export interface FormatColumnApi {
160
155
  * Returns true if Format State includes Format Columns with a Style property
161
156
  */
162
157
  hasStyleFormatColumns(): boolean;
163
- /**
164
- * Gets the Minimum Value to display for a Numeric Style
165
- * @param numericStyle Numeric Style to check
166
- * @param rowNode current Row Node
167
- * @param cellValue current Cell Value
168
- */
169
- getNumericStyleMinValue(numericStyle: ColumnStyle, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number;
170
- /**
171
- * Gets the Maximum Value to display for a Numeric Style
172
- * @param numericStyle Numeric Style to check
173
- * @param rowNode current Row Node
174
- * @param cellValue current Cell Value
175
- */
176
- getNumericStyleMaxValue(numericStyle: ColumnStyle, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number;
177
- getCellColorRangeMinValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
178
- getCellColorRangeMaxValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
179
158
  /**
180
159
  * Returns first Format Column that contains checkbox style
181
160
  * @param columnId column to check
@@ -39,6 +39,7 @@ import { FlashingCellApi } from '../FlashingCellApi';
39
39
  import { ChartingApi } from '../ChartingApi';
40
40
  import { StatusBarApi } from '../StatusBarApi';
41
41
  import { ActionApi } from '../../../types';
42
+ import { StyledColumnApi } from '../StyledColumnApi';
42
43
  export declare class AdaptableApiImpl implements AdaptableApi {
43
44
  protected adaptable: IAdaptable;
44
45
  actionApi: ActionApi;
@@ -75,6 +76,7 @@ export declare class AdaptableApiImpl implements AdaptableApi {
75
76
  queryApi: QueryApi;
76
77
  queryLanguageApi: QueryLanguageApi;
77
78
  settingsPanelApi: SettingsPanelApi;
79
+ styledColumnApi: StyledColumnApi;
78
80
  toolPanelApi: ToolPanelApi;
79
81
  teamSharingApi: TeamSharingApi;
80
82
  scopeApi: ScopeApi;
@@ -41,6 +41,7 @@ const FlashingCellApiImpl_1 = require("./FlashingCellApiImpl");
41
41
  const ChartingApiImpl_1 = require("./ChartingApiImpl");
42
42
  const SettingsPanelApiImpl_1 = require("./SettingsPanelApiImpl");
43
43
  const ActionApiImpl_1 = require("./ActionApiImpl");
44
+ const StyledColumnApiImpl_1 = require("./StyledColumnApiImpl");
44
45
  class AdaptableApiImpl {
45
46
  constructor(adaptable) {
46
47
  this.adaptable = adaptable;
@@ -79,6 +80,7 @@ class AdaptableApiImpl {
79
80
  this.userInterfaceApi = new UserInterfaceApiImpl_1.UserInterfaceApiImpl(adaptable);
80
81
  this.queryApi = new QueryApiImpl_1.QueryApiImpl(adaptable);
81
82
  this.queryLanguageApi = new QueryLanguageApiImpl_1.QueryLanguageApiImpl(adaptable);
83
+ this.styledColumnApi = new StyledColumnApiImpl_1.StyledColumnApiImpl(adaptable);
82
84
  this.toolPanelApi = new ToolPanelApiImpl_1.ToolPanelApiImpl(adaptable);
83
85
  this.teamSharingApi = new TeamSharingApiImpl_1.TeamSharingApiImpl(adaptable);
84
86
  this.scopeApi = new ScopeApiImpl_1.ScopeApiImpl(adaptable);
@@ -1,7 +1,7 @@
1
1
  import { AdaptableStyle } from '../../PredefinedConfig/Common/AdaptableStyle';
2
2
  import { ApiBase, LayoutAssociatedObjectLoadConfig } from './ApiBase';
3
3
  import { FormatColumnApi } from '../FormatColumnApi';
4
- import { FormatColumnState, FormatColumn, ColumnStyle, CellColorRange, ColumnComparison } from '../../PredefinedConfig/FormatColumnState';
4
+ import { FormatColumnState, FormatColumn, ColumnComparison } from '../../PredefinedConfig/FormatColumnState';
5
5
  import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
6
6
  import { RowNode } from '@ag-grid-community/core';
7
7
  import { AdaptableFormat } from '../../types';
@@ -29,7 +29,6 @@ export declare class FormatColumnApiImpl extends ApiBase implements FormatColumn
29
29
  applyFormatColumnDisplayFormats(): void;
30
30
  getActiveFormatColumnForColumn(column: AdaptableColumn): FormatColumn | undefined;
31
31
  getColumnFormatColumnsWithStyle(column: AdaptableColumn): FormatColumn[];
32
- getRowFormatColumnsWithStyle(): FormatColumn[];
33
32
  getFormatColumnForColumn(column: AdaptableColumn): FormatColumn | undefined;
34
33
  getFormatColumnForColumnId(columnId: string): FormatColumn | undefined;
35
34
  getFormatColumnWithStyleForColumn(column: AdaptableColumn): FormatColumn | undefined;
@@ -43,10 +42,6 @@ export declare class FormatColumnApiImpl extends ApiBase implements FormatColumn
43
42
  getFormatColumnsWithAllScope(formatColumns: FormatColumn[]): FormatColumn[] | undefined;
44
43
  getFormatColumnsWithDataTypeScope(formatColumns: FormatColumn[]): FormatColumn[] | undefined;
45
44
  getFormatColumnsWithColumnScope(formatColumns: FormatColumn[]): FormatColumn[] | undefined;
46
- getNumericStyleMinValue(numericStyle: ColumnStyle, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number;
47
- getNumericStyleMaxValue(numericStyle: ColumnStyle, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number | undefined;
48
- getCellColorRangeMinValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
49
- getCellColorRangeMaxValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
50
45
  getCheckBoxStyleFormatColumn(column: AdaptableColumn): FormatColumn | undefined;
51
46
  isCheckBoxStyleFormatColumn(column: AdaptableColumn): boolean;
52
47
  fireCheckboxColumnClickedEvent(columnId: string, rowData: any, primaryKeyValue: any, isChecked: boolean): void;
@@ -28,7 +28,7 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
28
28
  return this.getAllFormatColumn().filter((formatColumn) => formatColumn.IsSuspended);
29
29
  }
30
30
  getAllFormatColumnWithStyle() {
31
- return this.getAllFormatColumn().filter((fc) => fc.Style != null);
31
+ return this.getAllFormatColumn().filter((fc) => fc.Style != null || fc.CellAlignment);
32
32
  }
33
33
  getColumnComparisonForFormatColumn(formatColumn) {
34
34
  var _a, _b;
@@ -116,11 +116,6 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
116
116
  return this.adaptable.api.scopeApi.isColumnInScope(column, scopedFormatColumn.Scope);
117
117
  });
118
118
  }
119
- getRowFormatColumnsWithStyle() {
120
- return this.getAllFormatColumnWithStyle().filter((formatColumn) => {
121
- return this.adaptable.api.scopeApi.scopeIsAll(formatColumn.Scope);
122
- });
123
- }
124
119
  getFormatColumnForColumn(column) {
125
120
  const formatColumns = this.getAllFormatColumn();
126
121
  return this.getAppropriateFormatColumn(formatColumns, column);
@@ -137,10 +132,10 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
137
132
  return this.getAppropriateFormatColumn(formatColumns, column);
138
133
  }
139
134
  getFormatColumnWithStyleClassNameForColumn(column) {
140
- return this.getColumnFormatColumnsWithStyle(column).filter((fc) => StringExtensions_1.default.IsNotNullOrEmpty(fc.Style.ClassName));
135
+ return this.getColumnFormatColumnsWithStyle(column).filter((fc) => { var _a; return StringExtensions_1.default.IsNotNullOrEmpty((_a = fc === null || fc === void 0 ? void 0 : fc.Style) === null || _a === void 0 ? void 0 : _a.ClassName); });
141
136
  }
142
137
  getFormatColumnWithDisplayFormatForColumn(column) {
143
- const formatColumns = this.getAllFormatColumnWithDisplayFormat().concat(this.getAllFormatColumnWithCellAlignment());
138
+ const formatColumns = this.getAllFormatColumnWithDisplayFormat();
144
139
  return this.getAppropriateFormatColumn(formatColumns, column);
145
140
  }
146
141
  getFormatColumnWithSingleColumnScope(columnId) {
@@ -161,9 +156,16 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
161
156
  return returnFormatColumn;
162
157
  }
163
158
  getFormatColumnInColumnScope(formatColumns, column) {
164
- return this.getFormatColumnsWithColumnScope(formatColumns)
165
- .concat(this.getFormatColumnsWithDataTypeScope(formatColumns))
166
- .concat(this.getFormatColumnsWithAllScope(formatColumns));
159
+ // we need to maintain the format columns order, therefore we will extract all 3 scope types in a single iteration
160
+ return formatColumns.filter((fc) => {
161
+ return (
162
+ // this.getFormatColumnsWithColumnScope(formatColumns)
163
+ this.adaptable.api.scopeApi.scopeHasColumns(fc.Scope) ||
164
+ // this.getFormatColumnsWithDataTypeScope(formatColumns)
165
+ this.adaptable.api.scopeApi.scopeHasDataType(fc.Scope) ||
166
+ // this.getFormatColumnsWithAllScope(formatColumns)
167
+ this.adaptable.api.scopeApi.scopeIsAll(fc.Scope));
168
+ });
167
169
  }
168
170
  getAppropriateFormatColumn(formatColumns, column) {
169
171
  return this.getFormatColumnInColumnScope(formatColumns, column).find((scopedFormatColumn) => this.adaptable.api.scopeApi.isColumnInScope(column, scopedFormatColumn.Scope));
@@ -183,106 +185,6 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
183
185
  getFormatColumnsWithColumnScope(formatColumns) {
184
186
  return formatColumns.filter((fc) => this.adaptable.api.scopeApi.scopeHasColumns(fc.Scope));
185
187
  }
186
- getNumericStyleMinValue(numericStyle, column, rowNode, cellValue) {
187
- var _a, _b;
188
- const columnComparison = numericStyle.GradientStyle
189
- ? numericStyle.GradientStyle.ColumnComparison
190
- : (_a = numericStyle.PercentBarStyle) === null || _a === void 0 ? void 0 : _a.ColumnComparison;
191
- if (columnComparison) {
192
- if (!isNaN(Number(columnComparison.MinValue))) {
193
- return Number(columnComparison.MinValue);
194
- }
195
- else {
196
- let columnId = columnComparison.MinValue;
197
- if (!this.adaptable.api.columnApi.doesColumnExist(columnId)) {
198
- return 0;
199
- }
200
- else {
201
- return this.adaptable.api.gridApi.getRawValueFromRowNode(rowNode, columnId);
202
- }
203
- }
204
- }
205
- // for Gradient Column we want just the range that contains cell value
206
- if (numericStyle.GradientStyle) {
207
- let range;
208
- numericStyle.GradientStyle.CellRanges.forEach((cellRange) => {
209
- if (!range) {
210
- if ((cellRange.Min == 'Col-Min' || cellValue >= cellRange.Min) &&
211
- (cellRange.Max == 'Col-Max' || cellValue <= cellRange.Max)) {
212
- range = cellRange;
213
- }
214
- }
215
- });
216
- return this.getCellColorRangeMinValue(range, column);
217
- }
218
- // for percentbar we want to get the whole Ranges
219
- if (numericStyle.PercentBarStyle) {
220
- const ranges = (_b = numericStyle.PercentBarStyle) === null || _b === void 0 ? void 0 : _b.CellRanges;
221
- if (ranges) {
222
- return this.getCellColorRangeMinValue(ranges[0], column);
223
- }
224
- }
225
- }
226
- getNumericStyleMaxValue(numericStyle, column, rowNode, cellValue) {
227
- var _a, _b;
228
- const columnComparison = numericStyle.GradientStyle
229
- ? numericStyle.GradientStyle.ColumnComparison
230
- : (_a = numericStyle.PercentBarStyle) === null || _a === void 0 ? void 0 : _a.ColumnComparison;
231
- if (columnComparison) {
232
- if (!isNaN(Number(columnComparison.MaxValue))) {
233
- return Number(columnComparison.MaxValue);
234
- }
235
- else {
236
- let columnId = columnComparison.MaxValue;
237
- if (!this.adaptable.api.columnApi.doesColumnExist(columnId)) {
238
- return 0;
239
- }
240
- else {
241
- return this.adaptable.api.gridApi.getRawValueFromRowNode(rowNode, columnId);
242
- }
243
- }
244
- }
245
- if (numericStyle.GradientStyle) {
246
- let range;
247
- numericStyle.GradientStyle.CellRanges.forEach((cellRange) => {
248
- if (!range) {
249
- if ((cellRange.Min == 'Col-Min' || cellValue >= cellRange.Min) &&
250
- (cellRange.Max == 'Col-Max' || cellValue <= cellRange.Max)) {
251
- range = cellRange;
252
- }
253
- }
254
- });
255
- return this.getCellColorRangeMaxValue(range, column);
256
- }
257
- if (numericStyle.PercentBarStyle) {
258
- const ranges = (_b = numericStyle.PercentBarStyle) === null || _b === void 0 ? void 0 : _b.CellRanges;
259
- if (ranges) {
260
- return this.getCellColorRangeMaxValue(ranges[ranges.length - 1], column);
261
- }
262
- }
263
- }
264
- getCellColorRangeMinValue(range, column) {
265
- if (!range) {
266
- return undefined;
267
- }
268
- if (range.Min == undefined) {
269
- return undefined;
270
- }
271
- return range.Min == 'Col-Min'
272
- ? this.getAdaptableApi().columnApi.getMinValueForNumericColumn(column)
273
- : range.Min;
274
- }
275
- getCellColorRangeMaxValue(range, column) {
276
- if (!range) {
277
- return undefined;
278
- }
279
- if (range.Max == undefined) {
280
- return undefined;
281
- }
282
- return range.Max == 'Col-Max'
283
- ? this.getAdaptableApi().columnApi.getMaxValueForNumericColumn(column)
284
- : range.Max;
285
- }
286
188
  getCheckBoxStyleFormatColumn(column) {
287
189
  var _a;
288
190
  if (column.dataType != 'Boolean') {
@@ -0,0 +1,19 @@
1
+ import { ApiBase, LayoutAssociatedObjectLoadConfig } from './ApiBase';
2
+ import { StyledColumnApi } from '../StyledColumnApi';
3
+ import { StyledColumnState, StyledColumn } from '../../PredefinedConfig/StyledColumnState';
4
+ import { AdaptableColumn, CellColorRange } from '../../types';
5
+ import { RowNode } from '@ag-grid-community/core';
6
+ export declare class StyledColumnApiImpl extends ApiBase implements StyledColumnApi {
7
+ getStyledColumnState(): StyledColumnState;
8
+ getAllStyledColumn(config?: LayoutAssociatedObjectLoadConfig): StyledColumn[];
9
+ getStyledColumnById(id: StyledColumn['Uuid']): StyledColumn;
10
+ getStyledColumnByColumnId(id: StyledColumn['Uuid']): StyledColumn;
11
+ getAllActiveStyledColumn(): StyledColumn[];
12
+ getAllSuspendedStyledColumn(): StyledColumn[];
13
+ deleteStyledColumn(styledColumn: StyledColumn): void;
14
+ addStyledColumn(styledColumn: StyledColumn): void;
15
+ getNumericStyleMinValue(numericStyle: any, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number;
16
+ getNumericStyleMaxValue(numericStyle: any, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number | undefined;
17
+ getCellColorRangeMinValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
18
+ getCellColorRangeMaxValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
19
+ }
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StyledColumnApiImpl = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ApiBase_1 = require("./ApiBase");
6
+ const StyledColumnRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/StyledColumnRedux"));
7
+ class StyledColumnApiImpl extends ApiBase_1.ApiBase {
8
+ getStyledColumnState() {
9
+ return this.getAdaptableState().StyledColumn;
10
+ }
11
+ getAllStyledColumn(config) {
12
+ var _a;
13
+ return ((_a = this.handleLayoutAssociatedObjects(this.getStyledColumnState().StyledColumns, 'StyledColumn', config)) !== null && _a !== void 0 ? _a : []);
14
+ }
15
+ getStyledColumnById(id) {
16
+ return this.getAllStyledColumn().find((styledcolumn) => styledcolumn.Uuid === id);
17
+ }
18
+ getStyledColumnByColumnId(id) {
19
+ return this.getAllStyledColumn().find((styledcolumn) => styledcolumn.ColumnId === id);
20
+ }
21
+ getAllActiveStyledColumn() {
22
+ return this.getAllStyledColumn().filter((styledcolumn) => !styledcolumn.IsSuspended);
23
+ }
24
+ getAllSuspendedStyledColumn() {
25
+ return this.getAllStyledColumn().filter((styledcolumn) => styledcolumn.IsSuspended);
26
+ }
27
+ deleteStyledColumn(styledColumn) {
28
+ this.dispatchAction(StyledColumnRedux.StyledColumnDelete(styledColumn));
29
+ }
30
+ addStyledColumn(styledColumn) {
31
+ this.dispatchAction(StyledColumnRedux.StyledColumnAdd(styledColumn));
32
+ }
33
+ getNumericStyleMinValue(numericStyle, column, rowNode, cellValue) {
34
+ var _a, _b;
35
+ const columnComparison = numericStyle.GradientStyle
36
+ ? numericStyle.GradientStyle.ColumnComparison
37
+ : (_a = numericStyle.PercentBarStyle) === null || _a === void 0 ? void 0 : _a.ColumnComparison;
38
+ if (columnComparison) {
39
+ if (!isNaN(Number(columnComparison.MinValue))) {
40
+ return Number(columnComparison.MinValue);
41
+ }
42
+ else {
43
+ let columnId = columnComparison.MinValue;
44
+ if (!this.adaptable.api.columnApi.doesColumnExist(columnId)) {
45
+ return 0;
46
+ }
47
+ else {
48
+ return this.adaptable.api.gridApi.getRawValueFromRowNode(rowNode, columnId);
49
+ }
50
+ }
51
+ }
52
+ // for Gradient Column we want just the range that contains cell value
53
+ if (numericStyle.GradientStyle) {
54
+ let range;
55
+ numericStyle.GradientStyle.CellRanges.forEach((cellRange) => {
56
+ if (!range) {
57
+ if ((cellRange.Min == 'Col-Min' || cellValue >= cellRange.Min) &&
58
+ (cellRange.Max == 'Col-Max' || cellValue <= cellRange.Max)) {
59
+ range = cellRange;
60
+ }
61
+ }
62
+ });
63
+ return this.getCellColorRangeMinValue(range, column);
64
+ }
65
+ // for percentbar we want to get the whole Ranges
66
+ if (numericStyle.PercentBarStyle) {
67
+ const ranges = (_b = numericStyle.PercentBarStyle) === null || _b === void 0 ? void 0 : _b.CellRanges;
68
+ if (ranges) {
69
+ return this.getCellColorRangeMinValue(ranges[0], column);
70
+ }
71
+ }
72
+ }
73
+ getNumericStyleMaxValue(numericStyle, column, rowNode, cellValue) {
74
+ var _a, _b;
75
+ const columnComparison = numericStyle.GradientStyle
76
+ ? numericStyle.GradientStyle.ColumnComparison
77
+ : (_a = numericStyle.PercentBarStyle) === null || _a === void 0 ? void 0 : _a.ColumnComparison;
78
+ if (columnComparison) {
79
+ if (!isNaN(Number(columnComparison.MaxValue))) {
80
+ return Number(columnComparison.MaxValue);
81
+ }
82
+ else {
83
+ let columnId = columnComparison.MaxValue;
84
+ if (!this.adaptable.api.columnApi.doesColumnExist(columnId)) {
85
+ return 0;
86
+ }
87
+ else {
88
+ return this.adaptable.api.gridApi.getRawValueFromRowNode(rowNode, columnId);
89
+ }
90
+ }
91
+ }
92
+ if (numericStyle.GradientStyle) {
93
+ let range;
94
+ numericStyle.GradientStyle.CellRanges.forEach((cellRange) => {
95
+ if (!range) {
96
+ if ((cellRange.Min == 'Col-Min' || cellValue >= cellRange.Min) &&
97
+ (cellRange.Max == 'Col-Max' || cellValue <= cellRange.Max)) {
98
+ range = cellRange;
99
+ }
100
+ }
101
+ });
102
+ return this.getCellColorRangeMaxValue(range, column);
103
+ }
104
+ if (numericStyle.PercentBarStyle) {
105
+ const ranges = (_b = numericStyle.PercentBarStyle) === null || _b === void 0 ? void 0 : _b.CellRanges;
106
+ if (ranges) {
107
+ return this.getCellColorRangeMaxValue(ranges[ranges.length - 1], column);
108
+ }
109
+ }
110
+ }
111
+ getCellColorRangeMinValue(range, column) {
112
+ if (!range) {
113
+ return undefined;
114
+ }
115
+ if (range.Min == undefined) {
116
+ return undefined;
117
+ }
118
+ return range.Min == 'Col-Min'
119
+ ? this.getAdaptableApi().columnApi.getMinValueForNumericColumn(column)
120
+ : range.Min;
121
+ }
122
+ getCellColorRangeMaxValue(range, column) {
123
+ if (!range) {
124
+ return undefined;
125
+ }
126
+ if (range.Max == undefined) {
127
+ return undefined;
128
+ }
129
+ return range.Max == 'Col-Max'
130
+ ? this.getAdaptableApi().columnApi.getMaxValueForNumericColumn(column)
131
+ : range.Max;
132
+ }
133
+ }
134
+ exports.StyledColumnApiImpl = StyledColumnApiImpl;
@@ -0,0 +1,68 @@
1
+ import { RowNode } from '@ag-grid-community/core/dist/cjs/es5/entities/rowNode';
2
+ import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
3
+ import { CellColorRange } from '../PredefinedConfig/FormatColumnState';
4
+ import { StyledColumnState, StyledColumn } from '../PredefinedConfig/StyledColumnState';
5
+ /**
6
+ * Provides run-time access to the Format Column Module and associated state
7
+ */
8
+ export interface StyledColumnApi {
9
+ /**
10
+ * Delete styled column
11
+ * @param styledColumn
12
+ */
13
+ deleteStyledColumn(styledColumn: StyledColumn): void;
14
+ /**
15
+ * Create a styled column
16
+ * @param styledColumn
17
+ */
18
+ addStyledColumn(styledColumn: StyledColumn): void;
19
+ /**
20
+ * Retrieves Format Column section from Adaptable State
21
+ */
22
+ getStyledColumnState(): StyledColumnState;
23
+ /**
24
+ * Retrieves all Format Columns in Adaptable State
25
+ * @returns format columns
26
+ */
27
+ getAllStyledColumn(config?: {
28
+ includeLayoutNotAssociatedObjects?: boolean;
29
+ }): StyledColumn[];
30
+ /**
31
+ * Retrieves Format Column by Id
32
+ * @param id Format Column id
33
+ * @returns format column
34
+ */
35
+ getStyledColumnById(id: StyledColumn['Uuid']): StyledColumn;
36
+ /**
37
+ * Retrieves Format Column by Column Id
38
+ * @param columnId Format Column id
39
+ * @returns format column
40
+ */
41
+ getStyledColumnByColumnId(columnId: StyledColumn['ColumnId']): StyledColumn;
42
+ /**
43
+ * Retrieves all active (not-suspended) Format Columns in Adaptable State
44
+ * @returns format columns
45
+ */
46
+ getAllActiveStyledColumn(): StyledColumn[];
47
+ /**
48
+ * Retrieves all suspended Format Columns in Adaptable State
49
+ * @returns format columns
50
+ */
51
+ getAllSuspendedStyledColumn(): StyledColumn[];
52
+ /**
53
+ * Gets the Minimum Value to display for a Numeric Style
54
+ * @param numericStyle Numeric Style to check
55
+ * @param rowNode current Row Node
56
+ * @param cellValue current Cell Value
57
+ */
58
+ getNumericStyleMinValue(numericStyle: Omit<StyledColumn, 'ColumnId'>, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number;
59
+ /**
60
+ * Gets the Maximum Value to display for a Numeric Style
61
+ * @param numericStyle Numeric Style to check
62
+ * @param rowNode current Row Node
63
+ * @param cellValue current Cell Value
64
+ */
65
+ getNumericStyleMaxValue(numericStyle: Omit<StyledColumn, 'ColumnId'>, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number;
66
+ getCellColorRangeMinValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
67
+ getCellColorRangeMaxValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
68
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -23,6 +23,7 @@ import { QueryState } from './QueryState';
23
23
  import { FlashingCellState } from './FlashingCellState';
24
24
  import { StatusBarState } from './StatusBarState';
25
25
  import { ChartingState } from './ChartingState';
26
+ import { StyledColumnState } from './StyledColumnState';
26
27
  /**
27
28
  * The main state object of Adaptable
28
29
  */
@@ -48,6 +49,7 @@ export interface AdaptablePersistentState {
48
49
  Query: QueryState;
49
50
  QuickSearch: QuickSearchState;
50
51
  Schedule: ScheduleState;
52
+ StyledColumn: StyledColumnState;
51
53
  Shortcut: ShortcutState;
52
54
  StatusBar: StatusBarState;
53
55
  TeamSharing: TeamSharingState;
@@ -51,4 +51,4 @@ export interface AdaptableBaseIcon {
51
51
  /**
52
52
  * All AdapTable internal icon names
53
53
  */
54
- export declare type AdaptableInternalIconName = 'add' | 'add-row' | 'alert' | 'align-justify' | 'analysis' | 'application' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | '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';
54
+ export declare type AdaptableInternalIconName = 'add' | 'add-row' | 'alert' | 'align-justify' | 'analysis' | 'application' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrowexpand' | 'attach-file' | 'blanks' | 'boolean-list' | 'broadcast' | 'brush' | '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';