@adaptabletools/adaptable 13.0.0-canary.16 → 13.0.0-canary.18

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 (88) hide show
  1. package/base.css +99 -0
  2. package/base.css.map +1 -1
  3. package/bundle.cjs.js +144 -144
  4. package/index.css +115 -0
  5. package/index.css.map +1 -1
  6. package/package.json +1 -1
  7. package/publishTimestamp.d.ts +1 -1
  8. package/publishTimestamp.js +1 -1
  9. package/src/Api/FormatColumnApi.d.ts +37 -29
  10. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +21 -11
  11. package/src/Api/Implementation/FormatColumnApiImpl.js +42 -63
  12. package/src/Api/StyledColumnApi.d.ts +27 -13
  13. package/src/PredefinedConfig/StyledColumnState.d.ts +10 -4
  14. package/src/Strategy/ConditionalStyleModule.d.ts +0 -2
  15. package/src/Strategy/ConditionalStyleModule.js +1 -27
  16. package/src/Strategy/FormatColumnModule.js +2 -12
  17. package/src/View/AdaptablePopover/index.js +1 -1
  18. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +9 -9
  19. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +6 -5
  20. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  21. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +1 -1
  22. package/src/View/Components/AdaptableObjectRow/index.js +1 -6
  23. package/src/View/Components/Buttons/ButtonInfo.d.ts +1 -3
  24. package/src/View/Components/Buttons/ButtonInfo.js +3 -5
  25. package/src/View/Components/EntityRulesEditor/index.js +8 -17
  26. package/src/View/Components/FilterForm/FilterForm.js +11 -16
  27. package/src/View/Components/FilterForm/QuickFilterForm.js +7 -13
  28. package/src/View/Components/NewScopeComponent.js +1 -1
  29. package/src/View/Components/Panels/PanelWithButton.js +1 -5
  30. package/src/View/Components/Panels/PanelWithImage.js +1 -5
  31. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -2
  32. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +1 -0
  33. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +3 -16
  34. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +1 -1
  35. package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +5 -5
  36. package/src/View/Components/ScopeComponent.js +4 -4
  37. package/src/View/Components/Selectors/ColumnValueSelector.js +2 -2
  38. package/src/View/Components/StyleComponent.js +12 -17
  39. package/src/View/ConditionalStyle/Wizard/ConditionalStyleSettingsWizardSettings.js +1 -1
  40. package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.js +1 -11
  41. package/src/View/DataSet/DataSetSelector.js +1 -1
  42. package/src/View/Export/ReportExportDropdown.js +1 -1
  43. package/src/View/Export/Wizard/ReportNameWizardSection.js +10 -11
  44. package/src/View/FlashingCell/FlashingCellStyle.js +3 -3
  45. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +6 -6
  46. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
  47. package/src/View/FormatColumn/FormatColumnSummary.js +1 -1
  48. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +26 -26
  49. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +2 -6
  50. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +1 -1
  51. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +7 -7
  52. package/src/View/Layout/LayoutRadioSelector.js +1 -1
  53. package/src/View/Layout/Wizard/Components/ColumnLabels.js +1 -1
  54. package/src/View/Layout/Wizard/sections/ColumnsSection.js +5 -5
  55. package/src/View/Layout/Wizard/sections/SettingsSection.js +2 -2
  56. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +3 -3
  57. package/src/View/Query/Wizard/NamedQuerySettingsWizardSection.js +1 -1
  58. package/src/View/QuickSearch/QuickSearchPopup.js +2 -2
  59. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +5 -5
  60. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsGlue42.js +1 -1
  61. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +5 -5
  62. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +1 -1
  63. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +5 -5
  64. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +2 -2
  65. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +3 -3
  66. package/src/View/SmartEdit/SmartEditPopup.js +3 -3
  67. package/src/View/SpecialColumnSettingsWizardStep.js +10 -10
  68. package/src/View/StateManagement/StateManagementPopup.js +4 -4
  69. package/src/View/SystemStatus/SystemStatusEntityRow.js +4 -6
  70. package/src/View/TeamSharing/SharedEntityObjectView.js +1 -1
  71. package/src/View/TeamSharing/TeamSharingApplyButton.js +1 -1
  72. package/src/View/Theme/ThemePopup.js +1 -1
  73. package/src/View/Wizard/OnePageAdaptableWizard.js +1 -2
  74. package/src/agGrid/ActionColumnRenderer.d.ts +2 -0
  75. package/src/agGrid/ActionColumnRenderer.js +94 -62
  76. package/src/agGrid/Adaptable.d.ts +0 -1
  77. package/src/agGrid/Adaptable.js +43 -67
  78. package/src/agGrid/PercentBarRenderer.js +10 -0
  79. package/src/agGrid/weightedAverage.js +19 -11
  80. package/src/components/CheckBox/index.js +1 -1
  81. package/src/components/ExpressionEditor/BaseEditorInput.js +13 -32
  82. package/src/components/ExpressionEditor/index.js +9 -17
  83. package/src/components/FormLayout/index.js +1 -1
  84. package/src/components/StylePreview.js +2 -1
  85. package/src/metamodel/adaptable.metamodel.d.ts +7 -0
  86. package/src/metamodel/adaptable.metamodel.js +1 -1
  87. package/version.d.ts +1 -1
  88. package/version.js +1 -1
@@ -27,13 +27,16 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
27
27
  return this.getAllFormatColumn().filter((formatColumn) => formatColumn.IsSuspended);
28
28
  }
29
29
  getAllFormatColumnWithStyle() {
30
- return this.getAllFormatColumn().filter((fc) => fc.Style != null || fc.CellAlignment);
30
+ return this.getAllFormatColumn().filter((fc) => fc.Style);
31
+ }
32
+ getAllFormatColumnWithStyleAndCellAlignment() {
33
+ return this.getAllFormatColumn().filter((fc) => fc.Style || fc.CellAlignment);
31
34
  }
32
35
  getAllFormatColumnWithDisplayFormat() {
33
- return this.getAllFormatColumn().filter((fc) => fc.DisplayFormat != null);
36
+ return this.getAllFormatColumn().filter((fc) => fc.DisplayFormat);
34
37
  }
35
38
  getAllFormatColumnWithCellAlignment() {
36
- return this.getAllFormatColumn().filter((fc) => fc.CellAlignment != null);
39
+ return this.getAllFormatColumn().filter((fc) => fc.CellAlignment);
37
40
  }
38
41
  addFormatColumn(formatColumn) {
39
42
  this.addUidToAdaptableObject(formatColumn);
@@ -77,37 +80,27 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
77
80
  applyFormatColumnDisplayFormats() {
78
81
  throw 'This API method is deprecated - it is not needed anymore.';
79
82
  }
80
- getActiveFormatColumnForColumn(column) {
81
- const formatColumns = this.getAllActiveFormatColumn();
82
- return this.getAppropriateFormatColumn(formatColumns, column);
83
- }
84
- getColumnFormatColumnsWithStyle(column) {
85
- const formatColumns = this.getAllFormatColumnWithStyle();
86
- return this.getFormatColumnInColumnScope(formatColumns, column).filter((scopedFormatColumn) => {
87
- return this.adaptable.api.scopeApi.isColumnInScope(column, scopedFormatColumn.Scope);
88
- });
83
+ getFormatColumnsForColumn(column, config) {
84
+ const formatColumns = this.getAllFormatColumn().filter((formatColumn) => (config === null || config === void 0 ? void 0 : config.includeSuspended) || !formatColumn.IsSuspended);
85
+ return this.getFormatColumnWithColumnInScope(formatColumns, column);
89
86
  }
90
- getFormatColumnForColumn(column) {
91
- const formatColumns = this.getAllFormatColumn();
92
- return this.getAppropriateFormatColumn(formatColumns, column);
87
+ getFormatColumnsWithStyleForColumn(column, config) {
88
+ const formatColumns = this.getAllFormatColumnWithStyleAndCellAlignment().filter((formatColumn) => (config === null || config === void 0 ? void 0 : config.includeSuspended) || !formatColumn.IsSuspended);
89
+ return this.getFormatColumnWithColumnInScope(formatColumns, column);
93
90
  }
94
- getFormatColumnForColumnId(columnId) {
91
+ getFormatColumnsForColumnId(columnId, config) {
95
92
  const abColumn = this.adaptable.api.columnApi.getColumnFromId(columnId);
96
93
  if (!abColumn) {
97
94
  return undefined;
98
95
  }
99
- return this.getFormatColumnForColumn(abColumn);
96
+ return this.getFormatColumnsForColumn(abColumn, config);
100
97
  }
101
- getFormatColumnWithStyleForColumn(column) {
102
- const formatColumns = this.getAllFormatColumnWithStyle();
103
- return this.getAppropriateFormatColumn(formatColumns, column);
98
+ getFormatColumnWithStyleClassNameForColumn(column, config) {
99
+ return this.getFormatColumnsWithStyleForColumn(column, config).filter((formatColumn) => { var _a; return StringExtensions_1.default.IsNotNullOrEmpty((_a = formatColumn === null || formatColumn === void 0 ? void 0 : formatColumn.Style) === null || _a === void 0 ? void 0 : _a.ClassName); });
104
100
  }
105
- getFormatColumnWithStyleClassNameForColumn(column) {
106
- 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); });
107
- }
108
- getFormatColumnWithDisplayFormatForColumn(column) {
109
- const formatColumns = this.getAllFormatColumnWithDisplayFormat();
110
- return this.getAppropriateFormatColumn(formatColumns, column);
101
+ getFormatColumnsWithDisplayFormatForColumn(column, config) {
102
+ const formatColumns = this.getAllFormatColumnWithDisplayFormat().filter((formatColumn) => (config === null || config === void 0 ? void 0 : config.includeSuspended) || !formatColumn.IsSuspended);
103
+ return this.getFormatColumnWithColumnInScope(formatColumns, column);
111
104
  }
112
105
  getFormatColumnWithSingleColumnScope(columnId) {
113
106
  const abColumn = this.adaptable.api.columnApi.getColumnFromId(columnId);
@@ -126,7 +119,8 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
126
119
  });
127
120
  return returnFormatColumn;
128
121
  }
129
- getFormatColumnInColumnScope(formatColumns, column) {
122
+ // TODO is this really needed, I don't think it achieves anything
123
+ getFormatColumnInColumnScope(formatColumns) {
130
124
  // we need to maintain the format columns order, therefore we will extract all 3 scope types in a single iteration
131
125
  return formatColumns.filter((fc) => {
132
126
  return (
@@ -138,8 +132,8 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
138
132
  this.adaptable.api.scopeApi.scopeIsAll(fc.Scope));
139
133
  });
140
134
  }
141
- getAppropriateFormatColumn(formatColumns, column) {
142
- return this.getFormatColumnInColumnScope(formatColumns, column).find((scopedFormatColumn) => this.adaptable.api.scopeApi.isColumnInScope(column, scopedFormatColumn.Scope));
135
+ getFormatColumnWithColumnInScope(formatColumns, column) {
136
+ return this.getFormatColumnInColumnScope(formatColumns).filter((scopedFormatColumn) => this.adaptable.api.scopeApi.isColumnInScope(column, scopedFormatColumn.Scope));
143
137
  }
144
138
  hasStyleFormatColumns() {
145
139
  return ArrayExtensions_1.default.IsNotNullOrEmpty(this.getAllFormatColumnWithStyle());
@@ -214,50 +208,35 @@ class FormatColumnApiImpl extends ApiBase_1.ApiBase {
214
208
  getFormatColumnDefsForScope(scope) {
215
209
  return this.getFormatColumnPredicateDefs().filter((predicateDef) => this.adaptable.api.scopeApi.isScopeInScope(scope, predicateDef.columnScope));
216
210
  }
217
- isFormatColumnActiveForRow(formatColumn, params) {
218
- // suspedned is important to be first
211
+ getFormatColumnsRelevantForColumn(formatColumns, column, params) {
212
+ return formatColumns.filter((formatColumn) => this.isFormatColumnRelevantForColumn(formatColumn, column, params));
213
+ }
214
+ isFormatColumnRelevantForColumn(formatColumn, column, params) {
215
+ // suspended is important to be first
219
216
  if (formatColumn.IsSuspended) {
220
217
  return false;
221
218
  }
222
219
  if (!formatColumn.Rule) {
223
220
  return true;
224
221
  }
225
- if (this.shouldRunStyle(formatColumn, params.node) &&
226
- formatColumn.Rule.BooleanExpression &&
227
- this.evaluateExpression(formatColumn, params.node)) {
228
- return true;
229
- }
230
- // nothing has passed then return false
231
- return false;
232
- }
233
- isFormatColumnActiveForColumn(formatColumn, column, params) {
234
- // suspedned is important to be first
235
- if (formatColumn.IsSuspended) {
222
+ if (!formatColumn.IncludeGroupedRows &&
223
+ this.adaptable.api.gridApi.isGroupRowNode(params.node)) {
236
224
  return false;
237
225
  }
238
- if (!formatColumn.Rule) {
239
- return true;
226
+ // first run the predicate
227
+ if (formatColumn.Rule.Predicate && formatColumn.Rule.Predicate.PredicateId) {
228
+ return this.evaluatePredicate({
229
+ formatColumn,
230
+ column,
231
+ value: params.value,
232
+ node: params.node,
233
+ });
240
234
  }
241
- if (this.shouldRunStyle(formatColumn, params.node)) {
242
- // first run the predicate
243
- if (formatColumn.Rule.Predicate && formatColumn.Rule.Predicate.PredicateId) {
244
- if (this.evaluatePredicate({
245
- formatColumn,
246
- column,
247
- value: params.value,
248
- node: params.node,
249
- })) {
250
- return true;
251
- }
252
- }
253
- else if (formatColumn.Rule.BooleanExpression) {
254
- if (this.evaluateExpression(formatColumn, params.node)) {
255
- return true;
256
- }
257
- }
258
- // nothing has passed then return false
259
- return false;
235
+ else if (formatColumn.Rule.BooleanExpression) {
236
+ return this.evaluateExpression(formatColumn, params.node);
260
237
  }
238
+ // nothing has passed then return false
239
+ return false;
261
240
  }
262
241
  evaluatePredicate({ formatColumn, column, value, node, }) {
263
242
  const params = {
@@ -2,19 +2,9 @@ import { RowNode } from '@ag-grid-community/core/dist/cjs/es5/entities/rowNode';
2
2
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
3
3
  import { StyledColumnState, StyledColumn, CellColorRange, ColumnComparison } from '../PredefinedConfig/StyledColumnState';
4
4
  /**
5
- * Provides run-time access to the Styled Column Module and associated state
5
+ * Provides run-time access to Styled Column Module and associated state
6
6
  */
7
7
  export interface StyledColumnApi {
8
- /**
9
- * Delete styled column
10
- * @param styledColumn
11
- */
12
- deleteStyledColumn(styledColumn: StyledColumn): void;
13
- /**
14
- * Create a styled column
15
- * @param styledColumn
16
- */
17
- addStyledColumn(styledColumn: StyledColumn): void;
18
8
  /**
19
9
  * Retrieves Styled Column section from Adaptable State
20
10
  */
@@ -48,6 +38,16 @@ export interface StyledColumnApi {
48
38
  * @returns Styled Columns
49
39
  */
50
40
  getAllSuspendedStyledColumn(): StyledColumn[];
41
+ /**
42
+ * Delete a Styled column
43
+ * @param styledColumn
44
+ */
45
+ deleteStyledColumn(styledColumn: StyledColumn): void;
46
+ /**
47
+ * Create a Styled column
48
+ * @param styledColumn
49
+ */
50
+ addStyledColumn(styledColumn: StyledColumn): void;
51
51
  /**
52
52
  * Gets the Minimum Value to display for a Styled Column
53
53
  * @param styledColumn Styled Column to check
@@ -62,13 +62,23 @@ export interface StyledColumnApi {
62
62
  * @param cellValue current Cell Value
63
63
  */
64
64
  getNumericStyleMaxValue(styledColumn: Omit<StyledColumn, 'ColumnId'>, column: AdaptableColumn, rowNode: RowNode, cellValue: any): number;
65
+ /**
66
+ * Returns the smallest number in a Range
67
+ * @param range Range to check
68
+ * @param column current Column
69
+ */
65
70
  getCellColorRangeMinValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
71
+ /**
72
+ * Returns the largest number in a Range
73
+ * @param range Range to check
74
+ * @param column current Column
75
+ */
66
76
  getCellColorRangeMaxValue(range: CellColorRange, column: AdaptableColumn): number | undefined;
67
77
  /**
68
78
  * Retrieves the ColumnComparison property, if there, from a Styled Column
69
- * @param formatColumn Styled Column to Add
79
+ * @param styledColumn Styled Column to Add
70
80
  */
71
- getColumnComparisonForStyledColumn(formatColumn: StyledColumn): ColumnComparison | undefined;
81
+ getColumnComparisonForStyledColumn(styledColumn: StyledColumn): ColumnComparison | undefined;
72
82
  /**
73
83
  * Returns any ColumnIds referenced in a Column Comparison
74
84
  * @param columnComparision Column Comparison to check
@@ -88,5 +98,9 @@ export interface StyledColumnApi {
88
98
  * Publishes the CheckboxColumnClickedEvent - when the checkbox in an Checkbox Column is clicked
89
99
  */
90
100
  fireCheckboxColumnClickedEvent(columnId: string, rowData: any, primaryKeyValue: any, isChecked: boolean): void;
101
+ /**
102
+ * Returns a Styled Column for a given column
103
+ * @param column Column to check
104
+ */
91
105
  getActiveStyledColumnForColumn(column: AdaptableColumn): StyledColumn | undefined;
92
106
  }
@@ -13,14 +13,20 @@ export interface StyledColumnState extends ConfigState {
13
13
  * Object used in Special Column Style function
14
14
  */
15
15
  export interface StyledColumn extends SuspendableObject {
16
+ /**
17
+ * Column being styled
18
+ */
16
19
  ColumnId: string;
20
+ /**
21
+ * Styles a numeric column with a Gradient
22
+ */
17
23
  GradientStyle?: GradientStyle;
18
24
  /**
19
- * Style a numeric column so each cell displays a 'bar'
25
+ * Styles a numeric column so each cell displays a 'bar'
20
26
  */
21
27
  PercentBarStyle?: PercentBarStyle;
22
28
  /**
23
- * Style a boolean column so each cell displays a checkbox
29
+ * Renders a Checkbox in a boolean column
24
30
  */
25
31
  CheckBoxStyle?: boolean;
26
32
  }
@@ -33,7 +39,7 @@ export interface PercentBarStyle extends NumericStyledColumn {
33
39
  */
34
40
  CellRanges?: CellColorRange[];
35
41
  /**
36
- * Compares cell values to another Column
42
+ * Compares Cell values to another Column
37
43
  */
38
44
  ColumnComparison?: ColumnComparison;
39
45
  /**
@@ -45,7 +51,7 @@ export interface PercentBarStyle extends NumericStyledColumn {
45
51
  */
46
52
  ToolTipText?: CellTextOptions;
47
53
  /**
48
- * Back colour - only used for 'Percent Bar' Numeric style; leave unset if none required
54
+ * Background colour for 'Percent Bar'; leave unset if none required
49
55
  * @defaultValue Gray
50
56
  */
51
57
  BackColor?: string;
@@ -1,6 +1,5 @@
1
1
  import { AdaptableApi } from '../Api/AdaptableApi';
2
2
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
3
- import { AdaptableMenuItem } from '../PredefinedConfig/Common/Menu';
4
3
  import { ConditionalStyle } from '../PredefinedConfig/ConditionalStyleState';
5
4
  import { TeamSharingImportInfo } from '../PredefinedConfig/TeamSharingState';
6
5
  import { AdaptableModuleBase } from './AdaptableModuleBase';
@@ -15,7 +14,6 @@ export declare class ConditionalStyleModule extends AdaptableModuleBase implemen
15
14
  getExplicitlyReferencedColumnIds(conditionalStyle: ConditionalStyle): string[];
16
15
  getReferencedNamedQueryNames(conditionalStyle: ConditionalStyle): string[];
17
16
  updateOldConfig(): void;
18
- addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
19
17
  getTeamSharingAction(): TeamSharingImportInfo<ConditionalStyle>;
20
18
  isConditionalStyleActiveForColumn(conditionalStyleForColumn: ConditionalStyle, column: AdaptableColumn, params: any): boolean;
21
19
  isConditionalStyleActiveForRow(conditionalStyleForRow: ConditionalStyle, params: any): boolean;
@@ -9,7 +9,6 @@ const LoggingHelper_1 = require("../Utilities/Helpers/LoggingHelper");
9
9
  const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
10
10
  const ModuleConstants_1 = require("../Utilities/Constants/ModuleConstants");
11
11
  const getScopeViewItems_1 = require("./Utilities/getScopeViewItems");
12
- const ConditionalStyleWizard_1 = require("../View/ConditionalStyle/Wizard/ConditionalStyleWizard");
13
12
  const getRuleViewItems_1 = require("./Utilities/getRuleViewItems");
14
13
  const getStyleViewItems_1 = require("./Utilities/getStyleViewItems");
15
14
  const getObjectTagsViewItems_1 = require("./Utilities/getObjectTagsViewItems");
@@ -79,25 +78,6 @@ class ConditionalStyleModule extends AdaptableModuleBase_1.AdaptableModuleBase {
79
78
  });
80
79
  this.api.conditionalStyleApi.editConditionalStyles(oldConditionalStyles);
81
80
  }
82
- addColumnMenuItems(column) {
83
- if (column && this.isModuleEditable() && !column.isSparkline) {
84
- let conditionalStyles = this.api.conditionalStyleApi.getConditionalStylesForColumn(column);
85
- let firstConditionalStyle = ArrayExtensions_1.default.IsNotNullOrEmpty(conditionalStyles)
86
- ? conditionalStyles.find((cs) => this.api.scopeApi.isColumnInScopeColumns(column, cs.Scope))
87
- : undefined;
88
- let conditionalStyleExists = firstConditionalStyle != undefined;
89
- let label = conditionalStyleExists ? 'Edit ' : 'Create ';
90
- let popupParam = {
91
- column: column,
92
- action: conditionalStyleExists ? 'Edit' : 'New',
93
- source: 'ColumnMenu',
94
- value: firstConditionalStyle,
95
- };
96
- return [
97
- this.createColumnMenuItemShowPopup(label + this.moduleInfo.FriendlyName, this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
98
- ];
99
- }
100
- }
101
81
  getTeamSharingAction() {
102
82
  return {
103
83
  ModuleEntities: this.api.conditionalStyleApi.getAllConditionalStyle(),
@@ -211,13 +191,7 @@ class ConditionalStyleModule extends AdaptableModuleBase_1.AdaptableModuleBase {
211
191
  getViewProperties() {
212
192
  return {
213
193
  HeaderComponent: ConditionalStylePopupHeader_1.ConditionalStylePopupHeader,
214
- getDeleteAction: (conditionalStyle) => ConditionalStyleRedux.ConditionalStyleDelete(conditionalStyle),
215
- getSuspendAction: (conditionalStyle) => ConditionalStyleRedux.ConditionalStyleSuspend(conditionalStyle),
216
- getUnSuspendAction: (conditionalStyle) => ConditionalStyleRedux.ConditionalStyleUnSuspend(conditionalStyle),
217
- emptyView: "Click 'New' to create a new Conditional Style Rule. When this is met, row or cells in the Conditional Style's scope will be styled appropriately.",
218
- getEditWizard() {
219
- return ConditionalStyleWizard_1.ConditionalStyleWizard;
220
- },
194
+ emptyView: '',
221
195
  };
222
196
  }
223
197
  canBeAssociatedWithLayouts() {
@@ -77,22 +77,12 @@ class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
77
77
  addColumnMenuItems(column) {
78
78
  let returnColumnMenuItems = [];
79
79
  if (column && this.isModuleEditable() && !column.isSparkline) {
80
- // not fullproof as might be an All but its generally pretty good
81
- let formatColumn = this.api.formatColumnApi.getFormatColumnForColumn(column);
82
- let formatExists = formatColumn
83
- ? this.api.scopeApi.isColumnInScopeColumns(column, formatColumn.Scope)
84
- : false;
85
- if (formatColumn && formatColumn.IsReadOnly && formatColumn.IsReadOnly == true) {
86
- formatExists = false;
87
- }
88
- let label = formatExists ? 'Edit ' : 'Create ';
89
80
  let popupParam = {
90
81
  column: column,
91
- action: formatExists ? 'Edit' : 'New',
82
+ action: 'New',
92
83
  source: 'ColumnMenu',
93
- value: formatColumn,
94
84
  };
95
- returnColumnMenuItems.push(this.createColumnMenuItemShowPopup(label + 'Format Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam));
85
+ returnColumnMenuItems.push(this.createColumnMenuItemShowPopup('Create Format Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam));
96
86
  }
97
87
  return returnColumnMenuItems;
98
88
  }
@@ -36,7 +36,7 @@ class AdaptablePopover extends React.Component {
36
36
  return (React.createElement(rebass_1.Flex, { alignItems: "center", className: this.props.className },
37
37
  React.createElement(OverlayTrigger_1.default, { showTriangle: true, render: () => popoverClickRootClose, showEvent: (this.props.showEvent || 'mouseenter'), hideEvent: (this.props.hideEvent || 'mouseleave'), style: {
38
38
  overflow: 'visible',
39
- }, defaultZIndex: 100000 }, useButton ? (React.createElement(ButtonInfo_1.ButtonInfo, { style: iconStyle, onClick: () => null, icon: showIcon && icon, tooltip: this.props.tooltipText }, this.props.children)) : (React.createElement("div", { title: this.props.tooltipText, tabIndex: 0, style: { cursor: 'pointer', display: 'inline-block' } },
39
+ }, defaultZIndex: 100000 }, useButton ? (React.createElement(ButtonInfo_1.ButtonInfo, { style: iconStyle, variant: "text", onClick: () => null, icon: showIcon && icon, tooltip: this.props.tooltipText }, this.props.children)) : (React.createElement("div", { title: this.props.tooltipText, tabIndex: 0, style: { cursor: 'pointer', display: 'inline-block' } },
40
40
  this.props.children,
41
41
  showIcon && React.createElement(icons_1.Icon, { name: icon }))))));
42
42
  }
@@ -32,7 +32,7 @@ const HighlightStyle = (props) => {
32
32
  },
33
33
  },
34
34
  ];
35
- return (React.createElement(React.Fragment, null,
35
+ return (React.createElement(rebass_1.Box, { "data-name": props.dataName },
36
36
  React.createElement(rebass_1.Flex, null,
37
37
  React.createElement(CheckBox_1.CheckBox, { mr: 2, style: { alignItems: 'flex-start' }, checked: Boolean(props.highlight), onChange: (checked) => {
38
38
  props.onChange(checked);
@@ -99,35 +99,35 @@ const AlertBehaviourWizardSection = (props) => {
99
99
  return (React.createElement(Tabs_1.Tabs, null,
100
100
  React.createElement(Tabs_1.Tabs.Tab, null, api.internalApi.getCorrectEnglishVariant('Behaviour')),
101
101
  React.createElement(Tabs_1.Tabs.Content, null,
102
- cellChangedAlert && (React.createElement(CheckBox_1.CheckBox, { style: { alignItems: 'flex-start' }, checked: AlertProperties.PreventEdit, onChange: (PreventEdit) => {
102
+ cellChangedAlert && (React.createElement(CheckBox_1.CheckBox, { "data-name": "prevet-cell-edit", style: { alignItems: 'flex-start' }, checked: AlertProperties.PreventEdit, onChange: (PreventEdit) => {
103
103
  onChange({
104
104
  PreventEdit,
105
105
  });
106
106
  } },
107
107
  "Prevent Cell Edit",
108
108
  React.createElement(rebass_1.Text, { fontSize: 2, mt: 1 }, "(automatically undo data change which triggered Alert)"))),
109
- cellChangedAlert && (React.createElement(HighlightStyle, { highlight: AlertProperties.HighlightCell, label: "Highlight Cell", onChange: (HighlightCell) => {
109
+ cellChangedAlert && (React.createElement(HighlightStyle, { dataName: "highlight-cell", highlight: AlertProperties.HighlightCell, label: "Highlight Cell", onChange: (HighlightCell) => {
110
110
  onChange({ HighlightCell });
111
111
  } })),
112
- cellChangedAlert && (React.createElement(HighlightStyle, { highlight: AlertProperties.HighlightRow, label: "Highlight Row", onChange: (HighlightRow) => {
112
+ cellChangedAlert && (React.createElement(HighlightStyle, { dataName: "highlight-row", highlight: AlertProperties.HighlightRow, label: "Highlight Row", onChange: (HighlightRow) => {
113
113
  onChange({ HighlightRow });
114
114
  } })),
115
- rowAddedAlert && (React.createElement(HighlightStyle, { highlight: AlertProperties.HighlightRow, label: "Highlight Row", onChange: (HighlightRow) => {
115
+ rowAddedAlert && (React.createElement(HighlightStyle, { dataName: "highlight-row", highlight: AlertProperties.HighlightRow, label: "Highlight Row", onChange: (HighlightRow) => {
116
116
  onChange({ HighlightRow });
117
117
  } })),
118
- cellChangedAlert && (React.createElement(CheckBox_1.CheckBox, { checked: AlertProperties.JumpToCell, onChange: (JumpToCell) => {
118
+ cellChangedAlert && (React.createElement(CheckBox_1.CheckBox, { "data-name": "jump-to-cell", checked: AlertProperties.JumpToCell, onChange: (JumpToCell) => {
119
119
  onChange({ JumpToCell });
120
120
  } }, "Jump To Cell")),
121
- rowAddedAlert && (React.createElement(CheckBox_1.CheckBox, { checked: AlertProperties.JumpToRow, onChange: (JumpToRow) => {
121
+ rowAddedAlert && (React.createElement(CheckBox_1.CheckBox, { "data-name": "jump-to-row", checked: AlertProperties.JumpToRow, onChange: (JumpToRow) => {
122
122
  onChange({ JumpToRow });
123
123
  } }, "Jump To Row")),
124
- React.createElement(CheckBox_1.CheckBox, { checked: AlertProperties.ShowInDiv, onChange: (ShowInDiv) => {
124
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "show-in-div", checked: AlertProperties.ShowInDiv, onChange: (ShowInDiv) => {
125
125
  onChange({ ShowInDiv });
126
126
  } },
127
127
  "Show in separate ",
128
128
  React.createElement(CodeBlock_1.CodeBlock, null, `<div />`),
129
129
  " element"),
130
- React.createElement(CheckBox_1.CheckBox, { checked: AlertProperties.LogToConsole, onChange: (LogToConsole) => {
130
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "log-to-console", checked: AlertProperties.LogToConsole, onChange: (LogToConsole) => {
131
131
  onChange({ LogToConsole });
132
132
  } }, "Log To Console"))));
133
133
  };
@@ -12,6 +12,7 @@ const AdaptablePopupAlert_1 = require("../../Components/Popups/AdaptablePopupAle
12
12
  const AlertButtonsEditor_1 = require("./AlertButtonsEditor");
13
13
  const CodeBlock_1 = require("../../../components/CodeBlock");
14
14
  const AdaptableInput_1 = tslib_1.__importDefault(require("../../Components/AdaptableInput"));
15
+ const join_1 = tslib_1.__importDefault(require("../../../components/utils/join"));
15
16
  const DEFAULT_BUTTONS = [
16
17
  {
17
18
  Label: 'OK',
@@ -53,7 +54,7 @@ const AlertPreview = (_a) => {
53
54
  };
54
55
  return result;
55
56
  }, [alertDefinition]);
56
- return (React.createElement(rebass_1.Box, Object.assign({}, boxProps, { style: Object.assign({ border: '1px solid var(--ab-color-inputborder)' }, boxProps.style) }),
57
+ return (React.createElement(rebass_1.Box, Object.assign({}, boxProps, { className: (0, join_1.default)(boxProps.className, 'ab-AlertPreview'), style: Object.assign({ border: '1px solid var(--ab-color-inputborder)' }, boxProps.style) }),
57
58
  React.createElement(AdaptablePopupAlert_1.AdaptablePopupAlert, { headless: true, focusFirstButton: focusFirstButton, adaptableAlert: alertToPreview, onClose: () => { } })));
58
59
  };
59
60
  exports.AlertPreview = AlertPreview;
@@ -73,7 +74,7 @@ const AlertDisplayWizardSection = (props) => {
73
74
  props.onChange(Object.assign(Object.assign({}, data), { MessageText: value }));
74
75
  };
75
76
  return (React.createElement(React.Fragment, null,
76
- React.createElement(Tabs_1.Tabs, null,
77
+ React.createElement(Tabs_1.Tabs, { "data-name": "message-type" },
77
78
  React.createElement(Tabs_1.Tabs.Tab, null, "Message Type"),
78
79
  React.createElement(Tabs_1.Tabs.Content, null,
79
80
  React.createElement(Radio_1.RadioGroup, { value: messageType, name: "messageType", orientation: "horizontal", onRadioChange: (MessageType) => {
@@ -83,7 +84,7 @@ const AlertDisplayWizardSection = (props) => {
83
84
  React.createElement(Radio_1.default, { marginLeft: 4, value: "Success" }, "Success"),
84
85
  React.createElement(Radio_1.default, { marginLeft: 4, value: "Warning" }, "Warning"),
85
86
  React.createElement(Radio_1.default, { marginLeft: 4, value: "Error" }, "Error")))),
86
- React.createElement(Tabs_1.Tabs, { mt: 2, mb: 3, autoFocus: false },
87
+ React.createElement(Tabs_1.Tabs, { "data-name": "message-text", mt: 2, mb: 3, autoFocus: false },
87
88
  React.createElement(Tabs_1.Tabs.Tab, null, "Message Text"),
88
89
  React.createElement(Tabs_1.Tabs.Content, null,
89
90
  React.createElement(rebass_1.Text, { fontSize: 2, mt: 3, mb: 2 }, "The text to display as the Alert Message (leave blank to show automated Message based on Trigger and Condition)"),
@@ -91,7 +92,7 @@ const AlertDisplayWizardSection = (props) => {
91
92
  React.createElement(AdaptableInput_1.default, { marginTop: 2, type: 'text', autoFocus: false, value: messageText,
92
93
  // onChange={(e: any) => onPredicateInputChange(e, index)}
93
94
  onChange: (e) => onMessageTextChange(e) }))),
94
- React.createElement(Tabs_1.Tabs, { mt: 2, mb: 3, autoFocus: false },
95
+ React.createElement(Tabs_1.Tabs, { "data-name": "display-options", mt: 2, mb: 3, autoFocus: false },
95
96
  React.createElement(Tabs_1.Tabs.Tab, null, "Display options"),
96
97
  React.createElement(Tabs_1.Tabs.Content, null,
97
98
  React.createElement(CheckBox_1.CheckBox, { checked: (_a = data.AlertProperties) === null || _a === void 0 ? void 0 : _a.DisplayNotification, onChange: (DisplayNotification) => {
@@ -104,7 +105,7 @@ const AlertDisplayWizardSection = (props) => {
104
105
  ((_b = data.AlertProperties) === null || _b === void 0 ? void 0 : _b.DisplayNotification) ? (typeof data.AlertForm === 'string' ? (React.createElement(rebass_1.Text, { fontSize: 2 }, "Alert buttons cannot be customized because form is dynamically driven")) : (React.createElement(AlertButtonsEditor_1.AlertButtonsEditor, { AlertButtons: ((_c = data.AlertForm) === null || _c === void 0 ? void 0 : _c.Buttons) || DEFAULT_BUTTONS, api: api, adaptableAlert: adaptableAlert, onChange: (buttons) => {
105
106
  props.onChange(Object.assign(Object.assign({}, data), { AlertForm: Object.assign(Object.assign({}, data.AlertForm), { Buttons: buttons }) }));
106
107
  } }))) : null)),
107
- ((_d = data.AlertProperties) === null || _d === void 0 ? void 0 : _d.DisplayNotification) ? (React.createElement(Tabs_1.Tabs, { autoFocus: false },
108
+ ((_d = data.AlertProperties) === null || _d === void 0 ? void 0 : _d.DisplayNotification) ? (React.createElement(Tabs_1.Tabs, { "data-name": "alert-preview", autoFocus: false },
108
109
  React.createElement(Tabs_1.Tabs.Tab, null, "Alert preview"),
109
110
  React.createElement(Tabs_1.Tabs.Content, null, typeof data.AlertForm === 'string' ? (React.createElement(rebass_1.Text, { fontSize: 2 }, "Preview not available because form is dynamically driven")) : (React.createElement(exports.AlertPreview, { alertDefinition: data, api: api }))))) : null));
110
111
  };
@@ -56,7 +56,7 @@ class BulkUpdatePopupComponent extends React.Component {
56
56
  ' ',
57
57
  "Select from existing column values")),
58
58
  React.createElement(rebass_1.Flex, { padding: 2, flexDirection: "row", alignItems: "center" },
59
- React.createElement(rebass_1.Flex, { alignItems: "center", flexDirection: "row", flex: 1, marginRight: 2 }, this.state.useSelector ? (React.createElement(ColumnValueSelector_1.ColumnValueSelector, { selectedGridCells: this.props.SelectedGridCells, selectedColumnValue: this.props.BulkUpdateValue, selectedColumn: col, api: this.props.api, onColumnValueChange: (values) => this.onColumnValueSelectedChanged(values), allowNew: false, style: { width: '100%', maxWidth: 'inherit' } })) : (React.createElement(AdaptableInput_1.default, { style: { width: '100%' }, value: String(this.props.BulkUpdateValue), type: UIHelper_1.UIHelper.getDescriptionForDataType(col.dataType), placeholder: UIHelper_1.UIHelper.getPlaceHolderforDataType(col.dataType), onChange: (e) => this.onBulkUpdateValueChange(e) }))),
59
+ React.createElement(rebass_1.Flex, { alignItems: "center", flexDirection: "row", flex: 1, marginRight: 2 }, this.state.useSelector ? (React.createElement(ColumnValueSelector_1.ColumnValueSelector, { selectedGridCells: this.props.SelectedGridCells, selectedColumnValue: this.props.BulkUpdateValue, selectedColumn: col, api: this.props.api, onColumnValueChange: (values) => this.onColumnValueSelectedChanged(values), allowNew: false, style: { width: '100%', maxWidth: 'inherit' } })) : (React.createElement(AdaptableInput_1.default, { "data-name": "bulk-update", style: { width: '100%' }, value: String(this.props.BulkUpdateValue), type: UIHelper_1.UIHelper.getDescriptionForDataType(col.dataType), placeholder: UIHelper_1.UIHelper.getPlaceHolderforDataType(col.dataType), onChange: (e) => this.onBulkUpdateValueChange(e) }))),
60
60
  React.createElement(SimpleButton_1.default, { disabled: StringExtensions_1.StringExtensions.IsNullOrEmpty(this.props.BulkUpdateValue) ||
61
61
  this.props.PreviewInfo.previewValidationSummary.validationResult == 'All', onClick: () => {
62
62
  this.onApplyClick();
@@ -31,7 +31,7 @@ const AdaptableObjectListItemView = (props) => {
31
31
  return (React.createElement(rebass_1.Flex, { "data-name": tag.name, key: `${index}-${tag.name}`, mb: 2, className: `${baseClassName}__row` },
32
32
  React.createElement(rebass_1.Box, { className: `${baseClassName}__label`, mr: 3 },
33
33
  labelEl,
34
- props.showEditButton && (React.createElement(SimpleButton_1.default, { accessLevel: props.accessLevel, className: `${baseClassName}__edit-property`, ml: 1, icon: "edit", tooltip: "edit", iconSize: 18, variant: "text", onClick: () => {
34
+ props.showEditButton && (React.createElement(SimpleButton_1.default, { "data-name": `${tag.name}-edit-button`, accessLevel: props.accessLevel, className: `${baseClassName}__edit-property`, ml: 1, icon: "edit", tooltip: "edit", iconSize: 18, variant: "text", onClick: () => {
35
35
  props.handleOnEdit(tag.name);
36
36
  } }))),
37
37
  React.createElement(rebass_1.Box, { flex: 1, className: `${baseClassName}__values` },
@@ -8,12 +8,7 @@ const rebass_1 = require("rebass");
8
8
  const join_1 = tslib_1.__importDefault(require("../../../components/utils/join"));
9
9
  class AdaptableObjectRow extends React.Component {
10
10
  render() {
11
- const colItems = this.props.colItems.map((colItem, index) => (React.createElement(rebass_1.Text, { key: index, fontSize: 'var(--ab-font-size-3)', title: typeof colItem.Content === 'string' ? colItem.Content : undefined, style: {
12
- flex: colItem.Size,
13
- whiteSpace: 'nowrap',
14
- textOverflow: 'ellipsis',
15
- overflow: 'hidden',
16
- }, "data-name": "list-group-cell", paddingLeft: 1, paddingRight: 1 }, colItem.Content)));
11
+ const colItems = this.props.colItems.map((colItem, index) => (React.createElement(rebass_1.Text, { className: "ab-AdaptableObjectRow__cell", "data-name": "list-group-cell", key: index, title: typeof colItem.Content === 'string' ? colItem.Content : undefined, flex: colItem.Size, paddingLeft: 1, paddingRight: 1 }, colItem.Content)));
17
12
  const className = (0, join_1.default)('ab-AdaptableObjectRow', this.props.isSuspended && 'ab-AdaptableObjectRow--is-suspended');
18
13
  return (React.createElement(rebass_1.Flex, { className: className, onClick: this.props.onClick, style: this.props.style }, colItems));
19
14
  }
@@ -4,6 +4,4 @@ export interface InfoButtonProps extends SimpleButtonProps {
4
4
  glyph?: string;
5
5
  tooltip?: string;
6
6
  }
7
- export declare class ButtonInfo extends React.Component<InfoButtonProps, {}> {
8
- render(): JSX.Element;
9
- }
7
+ export declare const ButtonInfo: React.FunctionComponent<InfoButtonProps>;
@@ -4,9 +4,7 @@ exports.ButtonInfo = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
7
- class ButtonInfo extends React.Component {
8
- render() {
9
- return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "info", iconSize: 20, icon: "info", variant: "text" }, this.props)));
10
- }
11
- }
7
+ const ButtonInfo = (props) => {
8
+ return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "info", iconSize: 20, icon: "info", variant: "raised", tone: "accent" }, props)));
9
+ };
12
10
  exports.ButtonInfo = ButtonInfo;
@@ -161,7 +161,8 @@ const EntityRulesEditor = (props) => {
161
161
  };
162
162
  const initialData = (0, react_1.useMemo)(() => api.internalApi.getQueryPreviewData(), []);
163
163
  const showDocumentationLinks = api.internalApi.isDocumentationLinksDisplayed();
164
- return (React.createElement(rebass_1.Flex, Object.assign({ flexDirection: "column", padding: 2, pt: 0, pl: 0 }, flexProps, { style: Object.assign({ height: '100%' }, flexProps === null || flexProps === void 0 ? void 0 : flexProps.style) }),
164
+ const baseClassName = 'ab-EntityRulesEditor';
165
+ return (React.createElement(rebass_1.Flex, Object.assign({ className: baseClassName, flexDirection: "column", padding: 2, pt: 0, pl: 0 }, flexProps, { style: Object.assign({ height: '100%' }, flexProps === null || flexProps === void 0 ? void 0 : flexProps.style) }),
165
166
  children,
166
167
  React.createElement(Tabs_1.Tabs, { onValueChange: setType, value: selectedTab, pt: 2, pl: 2, style: { flex: 1, overflow: 'auto' } },
167
168
  showNoRule ? (React.createElement(Tabs_1.Tabs.Tab, { value: 'NoRule', style: { flex: 1 } },
@@ -170,15 +171,9 @@ const EntityRulesEditor = (props) => {
170
171
  React.createElement(rebass_1.Text, { fontSize: 2, mb: 2 }, 'Format Column is always applied'))) : null,
171
172
  showPredicate ? (React.createElement(Tabs_1.Tabs.Tab, { value: 'Predicate', style: { flex: 1 } },
172
173
  React.createElement(Radio_1.default, { tabIndex: -1, margin: 0, checked: type === 'Predicate' }, "Predicate"))) : null,
173
- showPredicate ? (React.createElement(Tabs_1.Tabs.Content, { value: "Predicate" },
174
+ showPredicate ? (React.createElement(Tabs_1.Tabs.Content, { "data-name": "Predicate", value: "Predicate" },
174
175
  React.createElement(rebass_1.Text, { fontSize: 2, mb: 2 }, descriptions.selectPredicate),
175
- React.createElement(DropdownButton_1.default, { style: {
176
- minWidth: '15rem',
177
- whiteSpace: 'nowrap',
178
- overflow: 'hidden',
179
- textOverflow: 'ellipsis',
180
- maxWidth: 'inherit',
181
- }, placeholder: "Select Rule", showClearButton: !!((_e = data.Rule) === null || _e === void 0 ? void 0 : _e.Predicate), onClear: clearPredicate, items: predicateDefsOptions, columns: ['label'] }, currentPredicateDef ? currentPredicateDef.label : 'Select Rule'), (_f = currentPredicateDef === null || currentPredicateDef === void 0 ? void 0 : currentPredicateDef.inputs) === null || _f === void 0 ? void 0 :
176
+ React.createElement(DropdownButton_1.default, { "data-name": "entity-rules-editor-predicate-dropdown", className: `${baseClassName}__predicate-dropdown`, placeholder: "Select Rule", showClearButton: !!((_e = data.Rule) === null || _e === void 0 ? void 0 : _e.Predicate), onClear: clearPredicate, items: predicateDefsOptions, columns: ['label'] }, currentPredicateDef ? currentPredicateDef.label : 'Select Rule'), (_f = currentPredicateDef === null || currentPredicateDef === void 0 ? void 0 : currentPredicateDef.inputs) === null || _f === void 0 ? void 0 :
182
177
  _f.map((predicateDefInput, index) => (React.createElement(rebass_1.Flex, { key: predicateId + index, flexDirection: "column" },
183
178
  index > 0 && React.createElement(HelpBlock_1.default, { marginTop: 2 }, "AND"),
184
179
  React.createElement(AdaptableInput_1.default, { marginTop: 2, type: predicateDefInput.type, autoFocus: index === 0, value: predicateInputs[index], onChange: (e) => onPredicateInputChange(e, index) })))),
@@ -189,20 +184,16 @@ const EntityRulesEditor = (props) => {
189
184
  fontSize: 'var(--ab-font-size-3)',
190
185
  padding: 0,
191
186
  } },
192
- React.createElement(ButtonInfo_1.ButtonInfo, { mr: 2, style: {
193
- color: 'var(--ab-color-text-on-add)',
194
- fill: 'var(--ab-color-text-on-add)',
195
- background: 'var(--ab-color-action-add)',
196
- }, onClick: () => window.open(DocumentationLinkConstants_1.PredicateDocsLink, '_blank') }),
187
+ React.createElement(ButtonInfo_1.ButtonInfo, { mr: 2, onClick: () => window.open(DocumentationLinkConstants_1.PredicateDocsLink, '_blank') }),
197
188
  "See Predicate documentation for more details and examples")))) : null,
198
189
  showBoolean ? React.createElement(QueryTab, { value: "BooleanExpression", type: type, label: "Boolean" }) : null,
199
- showBoolean ? (React.createElement(Tabs_1.Tabs.Content, { value: 'BooleanExpression', paddingLeft: 0 },
190
+ showBoolean ? (React.createElement(Tabs_1.Tabs.Content, { "data-name": "BooleanExpression", value: 'BooleanExpression', paddingLeft: 0 },
200
191
  React.createElement(ExpressionEditor_1.ExpressionEditor, { type: 'boolean', module: module, value: (_h = data.Rule) === null || _h === void 0 ? void 0 : _h.BooleanExpression, onChange: setBooleanExpression, initialData: initialData, columns: api.columnApi.getQueryableColumns(), namedQueries: api.queryApi.getAllNamedQuery(), api: api }))) : null,
201
192
  showObservable ? (React.createElement(QueryTab, { value: "ObservableExpression", type: type, label: "Observable" })) : null,
202
- showObservable ? (React.createElement(Tabs_1.Tabs.Content, { value: 'ObservableExpression', paddingLeft: 0 },
193
+ showObservable ? (React.createElement(Tabs_1.Tabs.Content, { "data-name": "ObservableExpression", value: 'ObservableExpression', paddingLeft: 0 },
203
194
  React.createElement(ExpressionEditor_1.ExpressionEditor, { type: 'observable', module: module, value: (_j = data.Rule) === null || _j === void 0 ? void 0 : _j.ObservableExpression, onChange: setReactiveExpression, initialData: initialData, columns: api.columnApi.getQueryableColumns(), namedQueries: api.queryApi.getAllNamedQuery(), api: api }))) : null,
204
195
  showAggregation ? (React.createElement(QueryTab, { value: "AggregatedBooleanExpression", type: type, label: "Aggregated Boolean" })) : null,
205
- showAggregation ? (React.createElement(Tabs_1.Tabs.Content, { value: 'AggregatedBooleanExpression', paddingLeft: 0 },
196
+ showAggregation ? (React.createElement(Tabs_1.Tabs.Content, { "data-name": "AggregatedBooleanExpression", value: 'AggregatedBooleanExpression', paddingLeft: 0 },
206
197
  React.createElement(ExpressionEditor_1.ExpressionEditor, { type: 'aggregatedBoolean', module: module, value: (_k = data.Rule) === null || _k === void 0 ? void 0 : _k.AggregatedBooleanExpression, onChange: setAggregationExpression, initialData: initialData, columns: api.columnApi.getQueryableColumns(), namedQueries: api.queryApi.getAllNamedQuery(), api: api }))) : null)));
207
198
  };
208
199
  exports.EntityRulesEditor = EntityRulesEditor;