@adaptabletools/adaptable 13.0.0-canary.9 → 13.0.0

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 (238) hide show
  1. package/base.css +1231 -733
  2. package/base.css.map +1 -0
  3. package/bundle.cjs.js +236 -219
  4. package/index.css +1249 -734
  5. package/index.css.map +1 -0
  6. package/package.json +5 -5
  7. package/publishTimestamp.d.ts +1 -1
  8. package/publishTimestamp.js +1 -1
  9. package/src/AdaptableInterfaces/IAdaptable.d.ts +3 -0
  10. package/src/AdaptableOptions/AdaptableQLOptions.d.ts +30 -6
  11. package/src/AdaptableOptions/ExportOptions.d.ts +2 -2
  12. package/src/AdaptableOptions/GeneralOptions.d.ts +0 -5
  13. package/src/AdaptableOptions/LayoutOptions.d.ts +2 -1
  14. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
  15. package/src/Api/AdaptableApi.d.ts +2 -5
  16. package/src/Api/ColumnApi.d.ts +8 -2
  17. package/src/Api/ConfigApi.d.ts +0 -5
  18. package/src/Api/ExportApi.d.ts +6 -6
  19. package/src/Api/FormatColumnApi.d.ts +46 -73
  20. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -2
  21. package/src/Api/Implementation/AdaptableApiImpl.js +2 -3
  22. package/src/Api/Implementation/AlertApiImpl.js +9 -4
  23. package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -1
  24. package/src/Api/Implementation/ColumnApiImpl.js +15 -11
  25. package/src/Api/Implementation/ConfigApiImpl.d.ts +0 -2
  26. package/src/Api/Implementation/ConfigApiImpl.js +0 -11
  27. package/src/Api/Implementation/ExportApiImpl.d.ts +4 -4
  28. package/src/Api/Implementation/ExportApiImpl.js +14 -14
  29. package/src/Api/Implementation/FlashingCellApiImpl.js +4 -1
  30. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +24 -22
  31. package/src/Api/Implementation/FormatColumnApiImpl.js +57 -224
  32. package/src/Api/Implementation/InternalApiImpl.d.ts +1 -1
  33. package/src/Api/Implementation/InternalApiImpl.js +4 -3
  34. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +2 -1
  35. package/src/Api/Implementation/QueryLanguageApiImpl.js +9 -15
  36. package/src/Api/Implementation/ScopeApiImpl.d.ts +1 -1
  37. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +25 -0
  38. package/src/Api/Implementation/StyledColumnApiImpl.js +193 -0
  39. package/src/Api/InternalApi.d.ts +1 -1
  40. package/src/Api/QueryLanguageApi.d.ts +3 -2
  41. package/src/Api/ScopeApi.d.ts +1 -1
  42. package/src/Api/StyledColumnApi.d.ts +106 -0
  43. package/src/Api/{ConditionalStyleApi.js → StyledColumnApi.js} +0 -0
  44. package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
  45. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  46. package/src/PredefinedConfig/Common/Types.d.ts +3 -3
  47. package/src/PredefinedConfig/Common/Types.js +1 -0
  48. package/src/PredefinedConfig/FormatColumnState.d.ts +6 -90
  49. package/src/PredefinedConfig/PredefinedConfig.d.ts +5 -0
  50. package/src/PredefinedConfig/StyledColumnState.d.ts +119 -0
  51. package/src/{Strategy/Interface/IConditionalStyleModule.js → PredefinedConfig/StyledColumnState.js} +0 -0
  52. package/src/Redux/ActionsReducers/PluginsRedux.d.ts +4 -4
  53. package/src/Redux/ActionsReducers/PluginsRedux.js +5 -5
  54. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +49 -0
  55. package/src/Redux/ActionsReducers/StyledColumnRedux.js +92 -0
  56. package/src/Redux/DeadRedux.d.ts +6 -0
  57. package/src/Redux/DeadRedux.js +19 -1
  58. package/src/Redux/Store/AdaptableStore.js +9 -8
  59. package/src/Strategy/ConditionalStyleModule.d.ts +2 -27
  60. package/src/Strategy/ConditionalStyleModule.js +0 -219
  61. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  62. package/src/Strategy/FormatColumnModule.js +30 -221
  63. package/src/Strategy/LayoutModule.js +0 -4
  64. package/src/Strategy/StyledColumnModule.d.ts +24 -0
  65. package/src/Strategy/StyledColumnModule.js +165 -0
  66. package/src/Strategy/Utilities/FormatColumn/getFormatColumnStyleViewItems.js +1 -16
  67. package/src/Strategy/Utilities/getScopeViewItems.js +1 -1
  68. package/src/Utilities/Constants/ModuleConstants.d.ts +3 -0
  69. package/src/Utilities/Constants/ModuleConstants.js +4 -1
  70. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -3
  71. package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -1
  72. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.d.ts +1 -4
  73. package/src/Utilities/ObjectFactory.d.ts +5 -2
  74. package/src/Utilities/ObjectFactory.js +14 -6
  75. package/src/Utilities/Services/ModuleService.js +2 -2
  76. package/src/Utilities/Services/QueryLanguageService.js +1 -1
  77. package/src/Utilities/Services/ReportService.js +6 -6
  78. package/src/View/AdaptablePopover/index.js +1 -1
  79. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +15 -14
  80. package/src/View/Alert/Wizard/AlertButtonsEditor.js +24 -1
  81. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +6 -5
  82. package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.js +3 -3
  83. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -3
  84. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  85. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  86. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +1 -1
  87. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +1 -1
  88. package/src/View/Components/AdaptableObjectRow/index.js +1 -6
  89. package/src/View/Components/Buttons/ButtonInfo.d.ts +1 -3
  90. package/src/View/Components/Buttons/ButtonInfo.js +3 -5
  91. package/src/View/Components/EntityRulesEditor/index.js +8 -17
  92. package/src/View/Components/FilterForm/FilterForm.js +11 -16
  93. package/src/View/Components/FilterForm/ListBoxFilterForm.js +2 -1
  94. package/src/View/Components/FilterForm/QuickFilterForm.js +7 -13
  95. package/src/View/Components/NewScopeComponent.js +3 -3
  96. package/src/View/Components/Panels/PanelWithButton.js +1 -5
  97. package/src/View/Components/Panels/PanelWithImage.js +1 -5
  98. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -2
  99. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +1 -0
  100. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +3 -16
  101. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +1 -1
  102. package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +5 -5
  103. package/src/View/Components/RangesComponent.d.ts +8 -1
  104. package/src/View/Components/RangesComponent.js +60 -24
  105. package/src/View/Components/ScopeComponent.js +6 -6
  106. package/src/View/Components/Selectors/ColumnSelector.d.ts +1 -0
  107. package/src/View/Components/Selectors/ColumnSelector.js +2 -1
  108. package/src/View/Components/Selectors/ColumnValueSelector.js +2 -2
  109. package/src/View/Components/StyleComponent.js +14 -19
  110. package/src/View/Components/ToolPanel/AdaptableToolPanel.d.ts +1 -11
  111. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +21 -9
  112. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  113. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +1 -1
  114. package/src/View/DataSet/DataSetSelector.js +1 -1
  115. package/src/View/DataSet/DataSetViewPanel.d.ts +1 -1
  116. package/src/View/Export/ExportViewPanel.d.ts +1 -1
  117. package/src/View/Export/ExportViewPanel.js +4 -4
  118. package/src/View/Export/ReportExportDropdown.js +1 -1
  119. package/src/View/Export/Wizard/ReportNameWizardSection.js +10 -11
  120. package/src/View/Filter/FilterSummary.d.ts +1 -1
  121. package/src/View/Filter/FilterViewPanel.d.ts +1 -1
  122. package/src/View/FlashingCell/FlashingCellStyle.js +3 -3
  123. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +3 -3
  124. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +6 -6
  125. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
  126. package/src/View/FormatColumn/FormatColumnSummary.js +1 -1
  127. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +27 -27
  128. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +4 -5
  129. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
  130. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +2 -6
  131. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -3
  132. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +6 -300
  133. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +3 -10
  134. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +7 -7
  135. package/src/View/GridInfo/ColumnInfoComponent.js +0 -7
  136. package/src/View/Layout/LayoutRadioSelector.js +1 -1
  137. package/src/View/Layout/LayoutViewPanel.d.ts +1 -1
  138. package/src/View/Layout/Wizard/Components/ColumnLabels.js +1 -1
  139. package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
  140. package/src/View/Layout/Wizard/sections/ColumnsSection.js +7 -6
  141. package/src/View/Layout/Wizard/sections/SettingsSection.js +2 -2
  142. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +1 -1
  143. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +3 -3
  144. package/src/View/Query/QueryViewPanel.d.ts +1 -1
  145. package/src/View/Query/Wizard/NamedQuerySettingsWizardSection.js +1 -1
  146. package/src/View/QuickSearch/QuickSearchPopup.js +2 -2
  147. package/src/View/QuickSearch/QuickSearchViewPanel.d.ts +1 -1
  148. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +5 -5
  149. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsGlue42.js +1 -1
  150. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +5 -5
  151. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +1 -1
  152. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +5 -5
  153. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +2 -2
  154. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +3 -3
  155. package/src/View/SmartEdit/SmartEditPopup.js +3 -3
  156. package/src/View/SpecialColumnSettingsWizardStep.js +10 -10
  157. package/src/View/StateManagement/StateManagementPopup.js +4 -4
  158. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +7 -0
  159. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +77 -0
  160. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.d.ts +9 -0
  161. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +65 -0
  162. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection.d.ts +9 -0
  163. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection.js +234 -0
  164. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.d.ts +7 -0
  165. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +59 -0
  166. package/src/View/SystemStatus/SystemStatusEntityRow.js +4 -6
  167. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +1 -1
  168. package/src/View/TeamSharing/SharedEntityObjectView.js +1 -1
  169. package/src/View/TeamSharing/TeamSharingApplyButton.js +1 -1
  170. package/src/View/Theme/ThemePopup.js +1 -1
  171. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +1 -1
  172. package/src/View/Wizard/OnePageAdaptableWizard.js +1 -2
  173. package/src/agGrid/ActionColumnRenderer.d.ts +2 -0
  174. package/src/agGrid/ActionColumnRenderer.js +94 -62
  175. package/src/agGrid/Adaptable.d.ts +10 -11
  176. package/src/agGrid/Adaptable.js +161 -222
  177. package/src/agGrid/CheckboxRenderer.js +1 -1
  178. package/src/agGrid/FilterWrapper.js +60 -16
  179. package/src/agGrid/FloatingFilterWrapper.d.ts +2 -2
  180. package/src/agGrid/FloatingFilterWrapper.js +71 -32
  181. package/src/agGrid/PercentBarRenderer.d.ts +6 -2
  182. package/src/agGrid/PercentBarRenderer.js +19 -17
  183. package/src/agGrid/agGridHelper.d.ts +6 -2
  184. package/src/agGrid/agGridHelper.js +17 -17
  185. package/src/agGrid/createAgStatusPanelComponent.d.ts +1 -1
  186. package/src/agGrid/createAgStatusPanelComponent.js +17 -0
  187. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +4 -1
  188. package/src/agGrid/editors/AdaptableDateEditor/index.js +84 -17
  189. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -1
  190. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -3
  191. package/src/agGrid/editors/AdaptableNumberEditor/index.js +78 -27
  192. package/src/agGrid/weightedAverage.js +19 -11
  193. package/src/components/CheckBox/index.js +7 -2
  194. package/src/components/Datepicker/index.d.ts +1 -1
  195. package/src/components/ExpressionEditor/BaseEditorInput.js +13 -32
  196. package/src/components/ExpressionEditor/index.js +9 -17
  197. package/src/components/FormLayout/index.js +1 -1
  198. package/src/components/StylePreview.js +2 -1
  199. package/src/components/icons/brush.d.ts +3 -0
  200. package/src/components/icons/brush.js +7 -0
  201. package/src/components/icons/index.js +2 -0
  202. package/src/metamodel/adaptable.metamodel.d.ts +113 -57
  203. package/src/metamodel/adaptable.metamodel.js +1 -1
  204. package/src/renderReactRoot.d.ts +2 -0
  205. package/src/renderReactRoot.js +11 -9
  206. package/src/types.d.ts +5 -5
  207. package/themes/dark.css +8 -4
  208. package/themes/dark.css.map +1 -0
  209. package/themes/light.css +4 -1
  210. package/themes/light.css.map +1 -0
  211. package/version.d.ts +1 -1
  212. package/version.js +1 -1
  213. package/src/AdaptableComponents.d.ts +0 -1
  214. package/src/AdaptableComponents.js +0 -5
  215. package/src/Api/ConditionalStyleApi.d.ts +0 -86
  216. package/src/Api/Implementation/ConditionalStyleApiImpl.d.ts +0 -29
  217. package/src/Api/Implementation/ConditionalStyleApiImpl.js +0 -98
  218. package/src/Redux/ActionsReducers/ConditionalStyleRedux.d.ts +0 -49
  219. package/src/Redux/ActionsReducers/ConditionalStyleRedux.js +0 -95
  220. package/src/Strategy/Interface/IConditionalStyleModule.d.ts +0 -6
  221. package/src/Strategy/Utilities/getStyleViewItems.d.ts +0 -2
  222. package/src/Strategy/Utilities/getStyleViewItems.js +0 -16
  223. package/src/View/ConditionalStyle/ConditionalStylePopupHeader.d.ts +0 -2
  224. package/src/View/ConditionalStyle/ConditionalStylePopupHeader.js +0 -18
  225. package/src/View/ConditionalStyle/ConditionalStyleSummary.d.ts +0 -25
  226. package/src/View/ConditionalStyle/ConditionalStyleSummary.js +0 -108
  227. package/src/View/ConditionalStyle/Wizard/ConditionalStyleRuleWizardSection.d.ts +0 -9
  228. package/src/View/ConditionalStyle/Wizard/ConditionalStyleRuleWizardSection.js +0 -42
  229. package/src/View/ConditionalStyle/Wizard/ConditionalStyleScopeWizardSection.d.ts +0 -8
  230. package/src/View/ConditionalStyle/Wizard/ConditionalStyleScopeWizardSection.js +0 -43
  231. package/src/View/ConditionalStyle/Wizard/ConditionalStyleSettingsWizardSettings.d.ts +0 -8
  232. package/src/View/ConditionalStyle/Wizard/ConditionalStyleSettingsWizardSettings.js +0 -29
  233. package/src/View/ConditionalStyle/Wizard/ConditionalStyleStyleWizardSection.d.ts +0 -8
  234. package/src/View/ConditionalStyle/Wizard/ConditionalStyleStyleWizardSection.js +0 -23
  235. package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.d.ts +0 -6
  236. package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.js +0 -114
  237. package/src/View/ConditionalStyle/Wizard/DEFAULT_PREDICATE_ID_FOR_CONDITIONAL_STYLE.d.ts +0 -1
  238. package/src/View/ConditionalStyle/Wizard/DEFAULT_PREDICATE_ID_FOR_CONDITIONAL_STYLE.js +0 -4
@@ -27,7 +27,7 @@ const ListBoxFilterForm = (props) => {
27
27
  internalUpdateUISelectedColumnValues(props.uiSelectedColumnValues);
28
28
  }, [props.uiSelectedColumnValues]);
29
29
  const renderItemForAgGridStyle = (props) => {
30
- return (React.createElement(CheckBox_1.CheckBox, Object.assign({}, props, { variant: "agGrid", fontSize: 2, marginTop: 1, marginBottom: 1, marginLeft: 1, marginRight: 1 })));
30
+ return (React.createElement(CheckBox_1.CheckBox, Object.assign({}, props, { variant: "agGrid", fontSize: 2, marginTop: 1, marginBottom: 1, marginLeft: 1, marginRight: 1, title: typeof props.children === 'string' ? props.children : null })));
31
31
  };
32
32
  const onClickItemColumnValue = (item) => {
33
33
  const index = UiSelectedColumnValues.indexOf(item);
@@ -59,6 +59,7 @@ const ListBoxFilterForm = (props) => {
59
59
  checked: isActive,
60
60
  onChange: () => onClickItemColumnValue(distinctValue.value),
61
61
  disabled: props.disabled,
62
+ style: { width: '100%' },
62
63
  });
63
64
  }
64
65
  return (React.createElement(ListGroupItem_1.default, { noZebra: props.useAgGridStyle, key: 'columnValue' + index, onClick: () => onClickItemColumnValue(distinctValue.value), active: isActive, value: distinctValue.value }, distinctValue.label));
@@ -142,21 +142,15 @@ class QuickFilterFormComponent extends React.Component {
142
142
  showQuickFilterInput = !hideQuickFilterInputFunction(this.props.currentColumn);
143
143
  }
144
144
  return (React.createElement(React.Fragment, null,
145
- showQuickFilterDropdown && (React.createElement(OverlayTrigger_1.default, { showEvent: showEvent, hideEvent: hideEvent, preventPortalEventPropagation: showEvent === 'click', alignHorizontal: "left", targetOffset: 10, hideDelay: 300, "data-name": "quick-filter-overlay", style: {
146
- overflowY: 'auto',
147
- fontSize: 'var(--ab-font-size-2)',
148
- border: '1px solid var(--ab-color-primarydark)',
149
- background: 'var(--ab-color-defaultbackground)',
150
- }, render: () => (React.createElement(rebass_1.Flex, { flexDirection: "column", "data-name": "quick-filter" },
151
- (filter === null || filter === void 0 ? void 0 : filter.Predicate.PredicateId) && (React.createElement(React.Fragment, null,
152
- React.createElement(SimpleButton_1.default, { p: 2, variant: "text", onClick: () => this.clearFilter() },
153
- React.createElement("span", { style: { width: 20, marginRight: 10 } },
154
- React.createElement(icons_1.Icon, { name: "delete" })),
155
- "Clear"))),
156
- predicateDefs.map((p) => (React.createElement(SimpleButton_1.default, { disabled: this.isFilterDisabled(), key: p.id, p: 2, variant: "text", tone: (filter === null || filter === void 0 ? void 0 : filter.Predicate.PredicateId) === p.id ? 'info' : 'none', onClick: () => this.selectColumnPredicate(p.id) },
145
+ showQuickFilterDropdown && (React.createElement(OverlayTrigger_1.default, { className: "ab-QuickFilter", showEvent: showEvent, hideEvent: hideEvent, preventPortalEventPropagation: showEvent === 'click', alignHorizontal: "left", targetOffset: 10, hideDelay: 300, "data-name": "quick-filter-overlay", render: () => (React.createElement(rebass_1.Flex, { flexDirection: "column", "data-name": "quick-filter" },
146
+ (filter === null || filter === void 0 ? void 0 : filter.Predicate.PredicateId) && (React.createElement(SimpleButton_1.default, { p: 2, variant: "text", onClick: () => this.clearFilter() },
147
+ React.createElement("span", { style: { width: 20, marginRight: 10 } },
148
+ React.createElement(icons_1.Icon, { name: "delete" })),
149
+ "Clear")),
150
+ predicateDefs.map((p) => (React.createElement(SimpleButton_1.default, { "data-name": filter.Predicate.PredicateId, disabled: this.isFilterDisabled(), key: p.id, p: 2, variant: "text", tone: (filter === null || filter === void 0 ? void 0 : filter.Predicate.PredicateId) === p.id ? 'info' : 'none', onClick: () => this.selectColumnPredicate(p.id) },
157
151
  React.createElement("span", { style: { width: 20, marginRight: 10 } }, this.renderPredicateIcon(p)),
158
152
  p.label))))) },
159
- React.createElement(SimpleButton_1.default, { style: {
153
+ React.createElement(SimpleButton_1.default, { "data-name": filter.Predicate.PredicateId, style: {
160
154
  borderRadius: 0,
161
155
  borderColor: 'var(--ab-color-primarydark)',
162
156
  } }, this.renderPredicateIcon(activePredicateDef)))),
@@ -130,9 +130,9 @@ const NewScopeComponent = (props) => {
130
130
  }
131
131
  return (React.createElement(Tabs_1.Tabs, { "data-name": 'scope-component', className: "ab-ScopeComponent", value: scopeChoice, style: Object.assign({ height: '100%' }, props.style), onValueChange: onScopeSelectChanged },
132
132
  props.hideWholeRow ? null : (React.createElement(Tabs_1.Tabs.Tab, { value: "Row" },
133
- React.createElement(Radio_1.default, { margin: 0, checked: scopeChoice == 'All', tabIndex: -1 }, "Whole Row"))),
133
+ React.createElement(Radio_1.default, { margin: 0, checked: scopeChoice == 'All', tabIndex: -1 }, "All Columns"))),
134
134
  React.createElement(Tabs_1.Tabs.Tab, { value: "Column" },
135
- React.createElement(Radio_1.default, { margin: 0, value: "Column", checked: scopeChoice == 'Column', tabIndex: -1 }, "Columns")),
135
+ React.createElement(Radio_1.default, { margin: 0, value: "Column", checked: scopeChoice == 'Column', tabIndex: -1 }, "Selected Columns")),
136
136
  React.createElement(Tabs_1.Tabs.Tab, { value: "DataType" },
137
137
  React.createElement(Radio_1.default, { margin: 0, value: "DataType", checked: scopeChoice == 'DataType', tabIndex: -1 }, "Data Types")),
138
138
  props.hideWholeRow ? null : (React.createElement(Tabs_1.Tabs.Content, { value: "Row", style: { flex: 'none' }, "data-name": "row-scope" },
@@ -144,6 +144,6 @@ const NewScopeComponent = (props) => {
144
144
  React.createElement(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { value: columnsSearchText, OnTextChange: setColumnsSearchText, placeholder: "Type to search columns", style: { flex: 1 } })),
145
145
  React.createElement(rebass_1.Flex, { paddingLeft: 2, flex: 1, style: { overflow: 'hidden' } },
146
146
  React.createElement(ColumnSelector_1.NewColumnSelector, { columnFilterText: columnsSearchText, allowReorder: false, availableColumns: scopeColumns, selected: scopeApi.getColumnIdsInScope(props.scope), onChange: onColumnsSelectedChanged }))),
147
- React.createElement(Tabs_1.Tabs.Content, { value: "DataType", style: { flex: 'none' }, "data-name": "datatype-scope" }, dataTypeOptions.map((dataTypeOption) => (React.createElement(CheckBox_1.CheckBox, { key: dataTypeOption.value, "data-name": "scope", checked: dataTypesInScope && dataTypesInScope.includes(dataTypeOption.value), onChange: (checked) => onCheckBoxDataTypeChecked(checked, dataTypeOption.value) }, dataTypeOption.label))))));
147
+ React.createElement(Tabs_1.Tabs.Content, { value: "DataType", style: { flex: 'none' }, "data-name": "datatype-scope" }, dataTypeOptions.map((dataTypeOption) => (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", "data-value": dataTypeOption.value, key: dataTypeOption.value, checked: dataTypesInScope && dataTypesInScope.includes(dataTypeOption.value), onChange: (checked) => onCheckBoxDataTypeChecked(checked, dataTypeOption.value) }, dataTypeOption.label))))));
148
148
  };
149
149
  exports.NewScopeComponent = NewScopeComponent;
@@ -21,11 +21,7 @@ class PanelWithButton extends React.Component {
21
21
  React.createElement(rebass_1.Box, { marginRight: 2, "data-name": "space-before" }),
22
22
  this.props.headerText,
23
23
  React.createElement(rebass_1.Box, { marginRight: 2, "data-name": "space-after" }),
24
- this.props.infoLink != null && !this.props.infoLinkDisabled && (React.createElement(ButtonInfo_1.ButtonInfo, { style: {
25
- color: 'var(--ab-color-text-on-add)',
26
- fill: 'var(--ab-color-text-on-add)',
27
- background: 'var(--ab-color-action-add)',
28
- }, onClick: () => window.open(this.props.infoLink, '_blank' // <- opens the link in a new tab or window.
24
+ this.props.infoLink != null && !this.props.infoLinkDisabled && (React.createElement(ButtonInfo_1.ButtonInfo, { onClick: () => window.open(this.props.infoLink, '_blank' // <- opens the link in a new tab or window.
29
25
  ) }))),
30
26
  React.createElement(rebass_1.Box, { style: { flex: 1 } }),
31
27
  buttonContent ? (React.createElement(SimpleButton_1.default, { variant: "raised", tone: "accent", disabled: this.props.buttonDisabled, onClick: () => (this.props.buttonClick ? this.props.buttonClick() : null) }, buttonContent)) : null,
@@ -26,11 +26,7 @@ class PanelWithImageCmp extends React.Component {
26
26
  React.createElement(rebass_1.Box, { marginRight: 2 }),
27
27
  this.props.header,
28
28
  React.createElement(rebass_1.Box, { marginRight: 2, "data-name": "space-after" }),
29
- this.props.infoLink != null && !this.props.infoLinkDisabled && (React.createElement(ButtonInfo_1.ButtonInfo, { style: {
30
- color: 'var(--ab-color-text-on-add)',
31
- fill: 'var(--ab-color-text-on-add)',
32
- background: 'var(--ab-color-action-add)',
33
- }, onClick: () => window.open(this.props.infoLink, '_blank' // <- opens the link in a new tab or window.
29
+ this.props.infoLink != null && !this.props.infoLinkDisabled && (React.createElement(ButtonInfo_1.ButtonInfo, { onClick: () => window.open(this.props.infoLink, '_blank' // <- opens the link in a new tab or window.
34
30
  ) }))),
35
31
  React.createElement(rebass_1.Box, { flex: 1 }),
36
32
  this.props.button && React.cloneElement(this.props.button))));
@@ -71,9 +71,9 @@ const AdaptablePopup = (props) => {
71
71
  }
72
72
  },
73
73
  } },
74
- React.createElement(AdaptablePopupDialog_1.AdaptablePopupDialog, { baseClassName: baseClassName, className: className, friendlyName: friendlyName, isActionModule: isStandalone, isWindowModal: isWindowModal, onHide: props.onHide, modalContainer: modalContainer },
74
+ React.createElement(AdaptablePopupDialog_1.AdaptablePopupDialog, { dataName: componentModule, baseClassName: baseClassName, className: className, friendlyName: friendlyName, isActionModule: isStandalone, isWindowModal: isWindowModal, onHide: props.onHide, modalContainer: modalContainer },
75
75
  !isStandalone && React.createElement(TopBar_1.default, { icon: settingsPanelOptions.icon }, settingsPanelTitle),
76
- React.createElement(rebass_1.Flex, { "data-name": props.componentName, flexDirection: "row", flex: "1 1 0", style: { minHeight: 0 }, className: accessLevel == 'ReadOnly' ? GeneralConstants.READ_ONLY_STYLE : '' },
76
+ React.createElement(rebass_1.Flex, { flexDirection: "row", flex: "1 1 0", style: { minHeight: 0 }, className: accessLevel == 'ReadOnly' ? GeneralConstants.READ_ONLY_STYLE : '' },
77
77
  !isStandalone && (React.createElement(Navigation_1.Navigation, { menuItems: menuItems, api: props.api, activeItem: activeItem, customSettingsPanels: settingsPanelOptions.customSettingsPanels })),
78
78
  React.createElement(rebass_1.Flex, { flex: 1, className: "ab-Adaptable-Popup__Body" }, moduleViewContent)))));
79
79
  };
@@ -8,4 +8,5 @@ export declare const AdaptablePopupDialog: React.FunctionComponent<React.PropsWi
8
8
  onHide: () => void;
9
9
  style?: React.CSSProperties;
10
10
  modalContainer?: string | HTMLElement;
11
+ dataName?: string;
11
12
  }>>;
@@ -46,19 +46,6 @@ const PopupDialog = (props) => {
46
46
  };
47
47
  const AdaptablePopupDialog = (props) => {
48
48
  const { isActionModule, style, friendlyName, baseClassName, className, children, onHide, isWindowModal, modalContainer, } = props;
49
- const elementRef = React.useMemo(() => {
50
- if (!modalContainer) {
51
- return null;
52
- }
53
- let ref = null;
54
- if (typeof modalContainer === 'string') {
55
- ref = globalThis.document.querySelector(modalContainer);
56
- }
57
- else {
58
- ref = modalContainer;
59
- }
60
- return ref;
61
- }, [modalContainer]);
62
49
  if (modalContainer) {
63
50
  let ref = null;
64
51
  if (typeof modalContainer === 'string') {
@@ -67,15 +54,15 @@ const AdaptablePopupDialog = (props) => {
67
54
  else {
68
55
  ref = modalContainer;
69
56
  }
70
- return (0, react_dom_1.createPortal)(React.createElement(Dialog_1.default, { modal: false, fixed: false, onDismiss: onHide, className: className }, children), ref);
57
+ return (0, react_dom_1.createPortal)(React.createElement(Dialog_1.default, { "data-name": props.dataName, modal: false, fixed: false, onDismiss: onHide, className: className }, children), ref);
71
58
  }
72
59
  if (isWindowModal) {
73
60
  const settingsPanelOptionsKey = isActionModule ? `action-${friendlyName}` : 'settings';
74
- return (React.createElement(WindowDialog, { settingsPanelOptionsKey: settingsPanelOptionsKey, isActionModule: isActionModule, onHide: onHide, style: style, baseClassName: baseClassName, className: className }, children));
61
+ return (React.createElement(WindowDialog, { dataName: props.dataName, settingsPanelOptionsKey: settingsPanelOptionsKey, isActionModule: isActionModule, onHide: onHide, style: style, baseClassName: baseClassName, className: className }, children));
75
62
  }
76
63
  else {
77
64
  const modalStyle = Object.assign(Object.assign({}, style), (isActionModule ? { maxWidth: 800, maxHeight: 600 } : { maxWidth: 1200, maxHeight: 1000 }));
78
- return (React.createElement(PopupDialog, { onHide: onHide, style: modalStyle, className: className }, children));
65
+ return (React.createElement(PopupDialog, { "data-name": props.dataName, onHide: onHide, style: modalStyle, className: className }, children));
79
66
  }
80
67
  };
81
68
  exports.AdaptablePopupDialog = AdaptablePopupDialog;
@@ -15,7 +15,7 @@ const PopupPanel = (props) => {
15
15
  React.createElement(rebass_1.Box, { marginRight: 0, "data-name": "space-before" }),
16
16
  React.createElement("div", { className: `${baseClassName}__Header__Title` }, props.headerText),
17
17
  React.createElement(rebass_1.Box, { marginRight: 2, "data-name": "space-after" }),
18
- props.infoLink != null && !props.infoLinkDisabled && (React.createElement(ButtonInfo_1.ButtonInfo, { iconSize: 24, onClick: () => window.open(props.infoLink, '_blank' // <- opens the link in a new tab or window.
18
+ props.infoLink != null && !props.infoLinkDisabled && (React.createElement(ButtonInfo_1.ButtonInfo, { tone: "none", variant: "text", iconSize: 24, onClick: () => window.open(props.infoLink, '_blank' // <- opens the link in a new tab or window.
19
19
  ) }))),
20
20
  React.createElement(rebass_1.Box, { style: { flex: 1 } }),
21
21
  props.button),
@@ -34,17 +34,17 @@ const AdaptablePopupTeamSharing = (props) => {
34
34
  ": a \"live\" share that is automatically updated with every local change"))),
35
35
  React.createElement(FormLayout_1.default, { padding: 2 },
36
36
  React.createElement(FormLayout_1.FormRow, { label: "Name: " },
37
- React.createElement(Input_1.default, { autoFocus: true, value: config.description, type: "string", width: 300, placeholder: "Enter text", onChange: (e) => setConfig(Object.assign(Object.assign({}, config), { description: e.target.value })) })),
37
+ React.createElement(Input_1.default, { "data-name": "teamsharing-entity-name", autoFocus: true, value: config.description, type: "string", width: 300, placeholder: "Enter text", onChange: (e) => setConfig(Object.assign(Object.assign({}, config), { description: e.target.value })) })),
38
38
  React.createElement(FormLayout_1.FormRow, { label: "Share: " },
39
39
  React.createElement(rebass_1.Flex, { flexDirection: "row" },
40
- React.createElement(Radio_1.default, { checked: config.type === 'Snapshot', onChange: () => setConfig(Object.assign(Object.assign({}, config), { type: 'Snapshot' })) }, "Snapshot"),
40
+ React.createElement(Radio_1.default, { "data-name": "teamsharing-entity-type-snapshot", checked: config.type === 'Snapshot', onChange: () => setConfig(Object.assign(Object.assign({}, config), { type: 'Snapshot' })) }, "Snapshot"),
41
41
  ' ',
42
- React.createElement(Radio_1.default, { marginLeft: 3, checked: config.type === 'Active', onChange: () => setConfig(Object.assign(Object.assign({}, config), { type: 'Active' })) }, "Active"),
42
+ React.createElement(Radio_1.default, { "data-name": "teamsharing-entity-type-active", marginLeft: 3, checked: config.type === 'Active', onChange: () => setConfig(Object.assign(Object.assign({}, config), { type: 'Active' })) }, "Active"),
43
43
  ' '))),
44
44
  React.createElement(rebass_1.Box, { marginTop: 3 },
45
45
  React.createElement(rebass_1.Flex, { padding: 2 },
46
- React.createElement(SimpleButton_1.default, { tone: "neutral", variant: "raised", onClick: () => onClose(), "data-name": "cancel" }, "Cancel"),
46
+ React.createElement(SimpleButton_1.default, { "data-name": "cancel", tone: "neutral", variant: "raised", onClick: () => onClose() }, "Cancel"),
47
47
  React.createElement("div", { style: { flex: 1 } }),
48
- React.createElement(SimpleButton_1.default, { tone: "accent", "data-name": "ok", variant: "raised", disabled: StringExtensions_1.StringExtensions.IsNullOrEmpty(config.description), onClick: () => onConfirm(config) }, "OK")))))));
48
+ React.createElement(SimpleButton_1.default, { "data-name": "ok", tone: "accent", variant: "raised", disabled: StringExtensions_1.StringExtensions.IsNullOrEmpty(config.description), onClick: () => onConfirm(config) }, "OK")))))));
49
49
  };
50
50
  exports.AdaptablePopupTeamSharing = AdaptablePopupTeamSharing;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { AdaptableApi } from '../../Api/AdaptableApi';
3
- import { CellColorRange, ColumnComparison } from '../../PredefinedConfig/FormatColumnState';
3
+ import { CellColorRange, ColumnComparison } from '../../PredefinedConfig/StyledColumnState';
4
4
  import { AdaptableScope } from '../../PredefinedConfig/Common/AdaptableScope';
5
5
  export interface RangesComponentProps extends React.ClassAttributes<RangesComponent> {
6
6
  ranges: CellColorRange[];
@@ -10,6 +10,11 @@ export interface RangesComponentProps extends React.ClassAttributes<RangesCompon
10
10
  showRangeDirection: boolean;
11
11
  updateRanges: (ranges: CellColorRange[]) => void;
12
12
  updateColumnComparison: (columnComparison?: ColumnComparison) => void;
13
+ minMaxRangeValues: {
14
+ min: number;
15
+ max: number;
16
+ };
17
+ disabled?: boolean;
13
18
  }
14
19
  export interface RangesComponentState {
15
20
  ranges: CellColorRange[];
@@ -25,6 +30,8 @@ export declare class RangesComponent extends React.Component<RangesComponentProp
25
30
  changeRangeColor(index: number, value: string): void;
26
31
  changeRangeDirectionUp(index: number, checked: boolean): void;
27
32
  removeRange(index: number): void;
33
+ setRangeColMin(range: CellColorRange): void;
34
+ setRangeColMax(range: CellColorRange): void;
28
35
  addRange(): void;
29
36
  changeColumnComparisonMinValue(event: React.FormEvent<any>): void;
30
37
  private onMinColumnSelectedChanged;
@@ -54,22 +54,27 @@ class RangesComponent extends React.Component {
54
54
  this.state.rangesType == 'Standard' && (React.createElement(Tabs_1.Tabs, { autoFocus: false, marginTop: 2 },
55
55
  React.createElement(Tabs_1.Tabs.Tab, null, "Ranges"),
56
56
  React.createElement(Tabs_1.Tabs.Content, null, (_a = this.state.ranges) === null || _a === void 0 ? void 0 :
57
- _a.map((range, index) => (React.createElement(rebass_1.Flex, { key: index, mb: 2, "data-name": "percent-bar-range" },
58
- React.createElement(Input_1.default, { type: "number", value: range.Min, onChange: (event) => {
59
- const { value } = event.target;
60
- this.changeRangeMin(index, value);
61
- }, mr: 2 }),
62
- React.createElement(Input_1.default, { type: "number", value: range.Max, onChange: (event) => {
63
- const { value } = event.target;
64
- this.changeRangeMax(index, value);
65
- }, mr: 2 }),
66
- React.createElement(ColorPicker_1.ColorPicker, { api: this.props.api, value: range.Color, onChange: (color) => {
67
- this.changeRangeColor(index, color);
68
- }, mr: 2, height: "100%" }),
69
- this.props.showRangeDirection && (React.createElement(CheckBox_1.CheckBox, { marginLeft: 2, marginRight: 2, checked: range.ReverseGradient && range.ReverseGradient == true, onChange: (checked) => this.changeRangeDirectionUp(index, checked) }, "Reverse Gradient")),
70
- React.createElement(SimpleButton_1.default, { icon: "delete", disabled: this.state.ranges && this.state.ranges.length == 1, onClick: () => this.removeRange(index) })))),
57
+ _a.map((range, index, list) => (React.createElement(rebass_1.Flex, { key: index, alignItems: "end", mb: 2, "data-name": "percent-bar-range" },
58
+ React.createElement(rebass_1.Flex, { flexDirection: "column" },
59
+ index === 0 && (React.createElement(CheckBox_1.CheckBox, { onClick: () => this.setRangeColMin(range), checked: range.Min === 'Col-Min', mt: 0, mb: 1, fontSize: 3, disabled: this.props.disabled }, "Col Min")),
60
+ React.createElement(Input_1.default, { type: typeof range.Min == 'number' ? 'number' : 'text', disabled: this.props.disabled || range.Min === 'Col-Min', value: range.Min, onChange: (event) => {
61
+ const { value } = event.target;
62
+ this.changeRangeMin(index, value);
63
+ }, mr: 2 })),
64
+ React.createElement(rebass_1.Flex, { flexDirection: "column" },
65
+ index === list.length - 1 && (React.createElement(CheckBox_1.CheckBox, { mt: 0, mb: 1, onClick: () => this.setRangeColMax(range), checked: range.Max === 'Col-Max', fontSize: 3, disabled: this.props.disabled }, "Col Max")),
66
+ React.createElement(Input_1.default, { value: range.Max, type: typeof range.Max == 'number' ? 'number' : 'text', disabled: this.props.disabled || range.Max === 'Col-Max', onChange: (event) => {
67
+ const { value } = event.target;
68
+ this.changeRangeMax(index, value);
69
+ }, mr: 2 })),
70
+ React.createElement(rebass_1.Flex, { alignItems: "center", height: "100%" },
71
+ React.createElement(ColorPicker_1.ColorPicker, { api: this.props.api, value: range.Color, onChange: (color) => {
72
+ this.changeRangeColor(index, color);
73
+ }, mr: 2, height: 33 })),
74
+ this.props.showRangeDirection && (React.createElement(CheckBox_1.CheckBox, { disabled: this.props.disabled, checked: range.ReverseGradient && range.ReverseGradient == true, onChange: (checked) => this.changeRangeDirectionUp(index, checked) }, "Reverse Gradient")),
75
+ React.createElement(SimpleButton_1.default, { ml: 2, mb: 1, icon: "delete", disabled: this.props.disabled || (this.state.ranges && this.state.ranges.length == 1), onClick: () => this.removeRange(index) })))),
71
76
  React.createElement("div", null,
72
- React.createElement(SimpleButton_1.default, { variant: "raised", "data-name": "add", onClick: () => this.addRange() }, "Add New Range"))))),
77
+ React.createElement(SimpleButton_1.default, { disabled: this.props.disabled, variant: "raised", "data-name": "add", onClick: () => this.addRange() }, "Add New Range"))))),
73
78
  this.state.rangesType == 'ColumnComparison' && (React.createElement(Tabs_1.Tabs, { autoFocus: false, marginTop: 2 },
74
79
  React.createElement(Tabs_1.Tabs.Tab, null, "Column Comparison"),
75
80
  React.createElement(Tabs_1.Tabs.Content, null,
@@ -80,14 +85,14 @@ class RangesComponent extends React.Component {
80
85
  this.props.api.internalApi.getCorrectEnglishVariant('Colour'),
81
86
  " for the Bar."),
82
87
  React.createElement(FormLayout_1.default, { columns: ['label', 'first', 'or', 'second'], sizes: ['auto', 'auto', 'auto', '1fr'] },
83
- React.createElement(FormLayout_1.FormRow, { label: "Min Value:", first: React.createElement(Input_1.default, { type: "number", value: comparisonMinValueNumber, onChange: (e) => {
88
+ React.createElement(FormLayout_1.FormRow, { label: "Min Value:", first: React.createElement(Input_1.default, { disabled: this.props.disabled, type: "number", value: comparisonMinValueNumber, onChange: (e) => {
84
89
  this.changeColumnComparisonMinValue(e);
85
- } }), or: "OR", second: React.createElement(ColumnSelector_1.ColumnSelector, { style: { maxWidth: '15rem' }, SelectedColumnIds: [comparisonMinValueColumnId], ColumnList: this.props.api.columnApi.getNumericColumns(), onColumnChange: (columns) => this.onMinColumnSelectedChanged(columns), SelectionMode: Enums_1.SelectionMode.Single }) }),
90
+ } }), or: "OR", second: React.createElement(ColumnSelector_1.ColumnSelector, { disabled: this.props.disabled, style: { maxWidth: '15rem' }, SelectedColumnIds: [comparisonMinValueColumnId], ColumnList: this.props.api.columnApi.getNumericColumns(), onColumnChange: (columns) => this.onMinColumnSelectedChanged(columns), SelectionMode: Enums_1.SelectionMode.Single }) }),
86
91
  ' ',
87
- React.createElement(FormLayout_1.FormRow, { label: "Max Value:", first: React.createElement(Input_1.default, { type: "number", value: comparisonMaxValueNumber, onChange: (e) => {
92
+ React.createElement(FormLayout_1.FormRow, { label: "Max Value:", first: React.createElement(Input_1.default, { disabled: this.props.disabled, type: "number", value: comparisonMaxValueNumber, onChange: (e) => {
88
93
  this.changeColumnComparisonMaxValue(e);
89
- } }), or: "OR", second: React.createElement(ColumnSelector_1.ColumnSelector, { style: { maxWidth: '15rem' }, SelectedColumnIds: [comparisonMaxValueColumnId], ColumnList: this.props.api.columnApi.getNumericColumns(), onColumnChange: (columns) => this.onMaxColumnSelectedChanged(columns), SelectionMode: Enums_1.SelectionMode.Single }) }),
90
- React.createElement(FormLayout_1.FormRow, { label: `Bar ${this.props.api.internalApi.getCorrectEnglishVariant('Colour')}`, first: React.createElement(ColorPicker_1.ColorPicker, { api: this.props.api, value: comparisonColor, onChange: (color) => {
94
+ } }), or: "OR", second: React.createElement(ColumnSelector_1.ColumnSelector, { disabled: this.props.disabled, style: { maxWidth: '15rem' }, SelectedColumnIds: [comparisonMaxValueColumnId], ColumnList: this.props.api.columnApi.getNumericColumns(), onColumnChange: (columns) => this.onMaxColumnSelectedChanged(columns), SelectionMode: Enums_1.SelectionMode.Single }) }),
95
+ React.createElement(FormLayout_1.FormRow, { label: `Bar ${this.props.api.internalApi.getCorrectEnglishVariant('Colour')}`, first: React.createElement(ColorPicker_1.ColorPicker, { disabled: this.props.disabled, api: this.props.api, value: comparisonColor, onChange: (color) => {
91
96
  this.changeColumnComparisonColor(color);
92
97
  } }) }))))))));
93
98
  }
@@ -144,14 +149,45 @@ class RangesComponent extends React.Component {
144
149
  ranges.splice(index, 1);
145
150
  this.props.updateRanges(ranges);
146
151
  }
152
+ setRangeColMin(range) {
153
+ const newRanges = this.state.ranges.map((rangeItem) => {
154
+ if (rangeItem === range) {
155
+ let newMin = rangeItem.Min === 'Col-Min' ? this.props.minMaxRangeValues.min : 'Col-Min';
156
+ return Object.assign(Object.assign({}, rangeItem), { Min: newMin });
157
+ }
158
+ return rangeItem;
159
+ });
160
+ this.setState({ ranges: newRanges }, () => this.props.updateRanges(this.state.ranges));
161
+ }
162
+ setRangeColMax(range) {
163
+ const newRanges = this.state.ranges.map((rangeItem) => {
164
+ if (rangeItem === range) {
165
+ let newMax = rangeItem.Max === 'Col-Max' ? this.props.minMaxRangeValues.max : 'Col-Max';
166
+ return Object.assign(Object.assign({}, rangeItem), { Max: newMax });
167
+ }
168
+ return rangeItem;
169
+ });
170
+ this.setState({ ranges: newRanges }, () => this.props.updateRanges(this.state.ranges));
171
+ }
147
172
  addRange() {
148
173
  const lastRange = this.state.ranges[this.state.ranges.length - 1];
149
- this.state.ranges.push({
150
- Min: lastRange.Max == 'Col-Max' ? 0 : lastRange.Max,
174
+ let previousRange = lastRange;
175
+ let Min = null;
176
+ if (lastRange.Max === 'Col-Max') {
177
+ Min = this.props.minMaxRangeValues.max;
178
+ previousRange = Object.assign(Object.assign({}, previousRange), { Max: this.props.minMaxRangeValues.max });
179
+ }
180
+ else {
181
+ Min = lastRange.Max;
182
+ }
183
+ const newRange = {
184
+ Min,
151
185
  Max: lastRange.Max,
152
186
  Color: (0, UIHelper_1.getHexForName)(UIHelper_1.GRAY),
153
- }),
154
- this.props.updateRanges(this.state.ranges);
187
+ };
188
+ const newRanges = [...this.state.ranges.slice(0, -1), previousRange, newRange];
189
+ // this.state.ranges.push(newRange);
190
+ this.setState({ ranges: newRanges }, () => this.props.updateRanges(this.state.ranges));
155
191
  }
156
192
  changeColumnComparisonMinValue(event) {
157
193
  let e = event.target;
@@ -32,31 +32,31 @@ class ScopeComponent extends React.Component {
32
32
  React.createElement(HelpBlock_1.default, { marginBottom: 1 }, displayMessage),
33
33
  ' ',
34
34
  React.createElement(rebass_1.Flex, { flexDirection: "row", alignItems: "center", padding: 2 },
35
- React.createElement(Radio_1.default, { value: "Row", checked: this.state.ScopeChoice == 'All', onChange: (checked, e) => this.onScopeSelectChanged(e) }, "Whole Row"),
35
+ React.createElement(Radio_1.default, { value: "Row", checked: this.state.ScopeChoice == 'All', onChange: (checked, e) => this.onScopeSelectChanged(e) }, "All Columns"),
36
36
  ' ',
37
- React.createElement(Radio_1.default, { marginLeft: 3, value: "Column", checked: this.state.ScopeChoice == 'Column', onChange: (checked, e) => this.onScopeSelectChanged(e) }, "Column(s)"),
37
+ React.createElement(Radio_1.default, { marginLeft: 3, value: "Column", checked: this.state.ScopeChoice == 'Column', onChange: (checked, e) => this.onScopeSelectChanged(e) }, "Selected Column(s)"),
38
38
  ' ',
39
39
  React.createElement(Radio_1.default, { marginLeft: 3, value: "DataType", checked: this.state.ScopeChoice == 'DataType', onChange: (checked, e) => this.onScopeSelectChanged(e) }, "DataType(s)")),
40
40
  this.state.ScopeChoice == 'Column' && (React.createElement(rebass_1.Box, { marginBottom: 2, "data-name": "column-scope" },
41
41
  React.createElement(DualListBoxEditor_1.DualListBoxEditor, { style: { flex: 1, overflow: 'hidden', height: '250px' }, AvailableValues: availableValues, SelectedValues: this.state.selectedColumnValues, HeaderAvailable: "Columns", HeaderSelected: "Columns In Style", onChange: (SelectedValues) => this.onColumnsSelectedChanged(SelectedValues) }))),
42
42
  this.state.ScopeChoice == 'DataType' && (React.createElement(Panel_1.default, { "data-name": "datatype-scope", variant: "modern" },
43
43
  React.createElement(rebass_1.Flex, { flexDirection: "row" },
44
- this.state.availableDataTypes.includes('Date') && (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", checked: this.state.componentScope &&
44
+ this.state.availableDataTypes.includes('Date') && (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", "data-value": "date", checked: this.state.componentScope &&
45
45
  'DataTypes' in this.state.componentScope &&
46
46
  this.props.api.scopeApi
47
47
  .getDataTypesInScope(this.state.componentScope)
48
48
  .includes('Date'), marginLeft: 2, onChange: (checked) => this.onCheckBoxDataTypeChecked(checked, 'Date') }, "Date")),
49
- this.state.availableDataTypes.includes('Number') && (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", checked: this.state.componentScope &&
49
+ this.state.availableDataTypes.includes('Number') && (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", "data-value": "number", checked: this.state.componentScope &&
50
50
  'DataTypes' in this.state.componentScope &&
51
51
  this.props.api.scopeApi
52
52
  .getDataTypesInScope(this.state.componentScope)
53
53
  .includes('Number'), marginLeft: 4, onChange: (checked) => this.onCheckBoxDataTypeChecked(checked, 'Number') }, "Number")),
54
- this.state.availableDataTypes.includes('String') && (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", checked: this.state.componentScope &&
54
+ this.state.availableDataTypes.includes('String') && (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", "data-value": "string", checked: this.state.componentScope &&
55
55
  'DataTypes' in this.state.componentScope &&
56
56
  this.props.api.scopeApi
57
57
  .getDataTypesInScope(this.state.componentScope)
58
58
  .includes('String'), marginLeft: 4, onChange: (checked) => this.onCheckBoxDataTypeChecked(checked, 'String') }, "String")),
59
- this.state.availableDataTypes.includes('Boolean') && (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", checked: this.state.componentScope &&
59
+ this.state.availableDataTypes.includes('Boolean') && (React.createElement(CheckBox_1.CheckBox, { "data-name": "scope", "data-value": "boolean", checked: this.state.componentScope &&
60
60
  'DataTypes' in this.state.componentScope &&
61
61
  this.props.api.scopeApi
62
62
  .getDataTypesInScope(this.state.componentScope)
@@ -9,6 +9,7 @@ export interface ColumnSelectorProps extends React.HTMLProps<ColumnSelector> {
9
9
  className?: string;
10
10
  placeHolder?: string;
11
11
  showClearButton?: boolean;
12
+ disabled?: boolean;
12
13
  }
13
14
  export declare class ColumnSelector extends React.Component<ColumnSelectorProps, {}> {
14
15
  render(): JSX.Element;
@@ -23,6 +23,7 @@ class ColumnSelector extends React.Component {
23
23
  return {
24
24
  label: column.friendlyName,
25
25
  value: column.columnId,
26
+ disabled: this.props.disabled,
26
27
  onClick: () => {
27
28
  const selected = sortedColumns.filter((c) => c.columnId === column.columnId);
28
29
  if (!selected.length) {
@@ -40,7 +41,7 @@ class ColumnSelector extends React.Component {
40
41
  return (React.createElement("div", { "data-name": 'column-selector' },
41
42
  React.createElement(FormLayout_1.default, { columns: [{ name: 'columnSelector', style: { display: 'flex' } }], style: this.props.style },
42
43
  React.createElement(FormLayout_1.FormRow, null,
43
- React.createElement(DropdownButton_1.default, { marginRight: 2, columns: ['label'], showClearButton: currentColumnName != 'Select a column', onClear: () => this.onClearButton(), style: { width: '100%', fontSize: 'small' }, className: "ab-DashboardToolbar__Layout__select", items: sortedColumnOptions, disabled: sortedColumnOptions.length == 0 }, currentColumnName)))));
44
+ React.createElement(DropdownButton_1.default, { marginRight: 2, columns: ['label'], showClearButton: currentColumnName != 'Select a column', onClear: () => this.onClearButton(), style: { width: '100%', fontSize: 'small' }, className: "ab-DashboardToolbar__Layout__select", items: sortedColumnOptions, disabled: this.props.disabled || sortedColumnOptions.length == 0 }, currentColumnName)))));
44
45
  }
45
46
  onClearButton() {
46
47
  this.props.onColumnChange([]);
@@ -74,8 +74,8 @@ class ColumnValueSelector extends React.Component {
74
74
  ]
75
75
  : this.state.distinctColumnValues;
76
76
  const dd = (React.createElement("div", null,
77
- React.createElement(DropdownButton_1.default, { className: className, columns: ['label'], variant: "text", showClearButton: true, onClear: () => this.onSelectedValueChange([]), style: { fontSize: 'small' }, disabled: this.props.disabled, items: items, onExpand: this.handleSelectedValueExpand }, this.props.selectedColumnValue ? this.props.selectedColumnValue : placeholderText)));
78
- const input = (React.createElement(AdaptableInput_1.default, { type: this.props.selectedColumn
77
+ React.createElement(DropdownButton_1.default, { "data-name": "bulkupdate-value-selector", className: className, columns: ['label'], variant: "text", showClearButton: true, onClear: () => this.onSelectedValueChange([]), style: { fontSize: 'small' }, disabled: this.props.disabled, items: items, onExpand: this.handleSelectedValueExpand }, this.props.selectedColumnValue ? this.props.selectedColumnValue : placeholderText)));
78
+ const input = (React.createElement(AdaptableInput_1.default, { "data-name": "bulkupdate-value-input", type: this.props.selectedColumn
79
79
  ? UIHelper_1.default.getDescriptionForDataType(this.props.selectedColumn.dataType)
80
80
  : 'text', placeholder: this.props.selectedColumn
81
81
  ? UIHelper_1.default.getPlaceHolderforDataType(this.props.selectedColumn.dataType)
@@ -25,7 +25,7 @@ class StyleComponent extends React.Component {
25
25
  };
26
26
  }
27
27
  render() {
28
- const Cmp = this.props.headless ? React.Fragment : Panel_1.default;
28
+ const Cmp = this.props.headless ? rebass_1.Box : Panel_1.default;
29
29
  const cmpProps = this.props.headless
30
30
  ? {}
31
31
  : {
@@ -36,15 +36,15 @@ class StyleComponent extends React.Component {
36
36
  const styleClassNames = this.props.api.userInterfaceApi.getStyleClassNames();
37
37
  const colourSpellingVariant = this.props.api.internalApi.getCorrectEnglishVariant('Colour');
38
38
  const coloursSpellingVariant = this.props.api.internalApi.getCorrectEnglishVariant('colours');
39
- return (React.createElement(Cmp, Object.assign({}, cmpProps),
39
+ return (React.createElement(Cmp, Object.assign({}, cmpProps, { className: "ab-StyleComponent" }),
40
40
  ArrayExtensions_1.default.IsNotNullOrEmpty(styleClassNames) && (React.createElement(rebass_1.Flex, { flexDirection: "row", padding: 2 },
41
- React.createElement(Radio_1.default, { value: "Predicate", checked: this.state.ShowClassName, onChange: (checked) => this.onShowClassNameChanged(checked) }, "Use Style Class Name"),
41
+ React.createElement(Radio_1.default, { "data-name": "show-class-name", value: "Predicate", checked: this.state.ShowClassName, onChange: (checked) => this.onShowClassNameChanged(checked) }, "Use Style Class Name"),
42
42
  ' ',
43
- React.createElement(Radio_1.default, { marginLeft: 3, value: "Expression", checked: !this.state.ShowClassName, onChange: (checked) => this.onShowClassNameChanged(!checked) }, "Create Style"),
43
+ React.createElement(Radio_1.default, { "data-name": "create-style", marginLeft: 3, value: "Expression", checked: !this.state.ShowClassName, onChange: (checked) => this.onShowClassNameChanged(!checked) }, "Create Style"),
44
44
  ' ')),
45
45
  this.state.ShowClassName ? (React.createElement("div", null,
46
46
  React.createElement(HelpBlock_1.default, { fontSize: 2 }, 'Select a CSS Class Name'),
47
- React.createElement(DropdownButton_1.default, { margin: 3, placeholder: "Select", variant: "outlined", columns: ['label'], tone: "none", disabled: ArrayExtensions_1.default.IsNullOrEmpty(styleClassNames), style: {
47
+ React.createElement(DropdownButton_1.default, { "data-name": "select-class-anme", margin: 3, placeholder: "Select", variant: "outlined", columns: ['label'], tone: "none", disabled: ArrayExtensions_1.default.IsNullOrEmpty(styleClassNames), style: {
48
48
  minWidth: '15rem',
49
49
  whiteSpace: 'nowrap',
50
50
  overflow: 'hidden',
@@ -64,35 +64,30 @@ class StyleComponent extends React.Component {
64
64
  coloursSpellingVariant),
65
65
  React.createElement(FormLayout_1.default, { columns: [1, 2] },
66
66
  React.createElement(FormLayout_1.FormRow, null,
67
- React.createElement(CheckBox_1.CheckBox, { value: "existing", margin: 1, checked: !!this.state.componentStyle.BackColor, onChange: (checked) => this.onUseBackColorCheckChange(checked) },
67
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "set-background-color", value: "existing", margin: 1, checked: !!this.state.componentStyle.BackColor, onChange: (checked) => this.onUseBackColorCheckChange(checked) },
68
68
  "Set Back ",
69
69
  colourSpellingVariant),
70
70
  this.state.componentStyle.BackColor != null ? (React.createElement(ColorPicker_1.ColorPicker, { api: this.props.api, value: this.state.componentStyle.BackColor, onChange: (x) => this.onBackColorSelectChange(x) })) : (React.createElement("span", null))),
71
71
  React.createElement(FormLayout_1.FormRow, null,
72
- React.createElement(CheckBox_1.CheckBox, { margin: 1, value: "existing", checked: this.state.componentStyle.ForeColor ? true : false, onChange: (checked) => this.onUseForeColorCheckChange(checked) },
72
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "set-foreground-color", margin: 1, value: "existing", checked: this.state.componentStyle.ForeColor ? true : false, onChange: (checked) => this.onUseForeColorCheckChange(checked) },
73
73
  "Set Fore ",
74
74
  colourSpellingVariant),
75
75
  this.state.componentStyle.ForeColor != null ? (React.createElement(ColorPicker_1.ColorPicker, { api: this.props.api, value: this.state.componentStyle.ForeColor, onChange: (x) => this.onForeColorSelectChange(x) })) : (React.createElement("span", null))),
76
76
  React.createElement(FormLayout_1.FormRow, null,
77
- React.createElement(CheckBox_1.CheckBox, { margin: 1, value: "existing", checked: this.state.componentStyle.BorderColor ? true : false, onChange: (checked) => this.onUseBorderColorCheckChange(checked) },
77
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "set-border-color", margin: 1, value: "existing", checked: this.state.componentStyle.BorderColor ? true : false, onChange: (checked) => this.onUseBorderColorCheckChange(checked) },
78
78
  "Set Border ",
79
79
  colourSpellingVariant),
80
80
  this.state.componentStyle.BorderColor != null ? (React.createElement(ColorPicker_1.ColorPicker, { api: this.props.api, value: this.state.componentStyle.BorderColor, onChange: (x) => this.onBorderColorSelectChange(x) })) : (React.createElement("span", null)))),
81
81
  React.createElement(HelpBlock_1.default, { fontSize: 2, marginTop: 2, marginBottom: 2 }, "Set the font properties of the Style"),
82
82
  React.createElement(FormLayout_1.default, { columns: [1] },
83
83
  React.createElement(FormLayout_1.FormRow, null,
84
- React.createElement(CheckBox_1.CheckBox, { margin: 1, value: Enums_1.FontWeight.Normal.toString(), checked: this.state.componentStyle.FontWeight == Enums_1.FontWeight.Bold, onChange: (checked) => this.onFontWeightChange(checked) }, "Bold")),
84
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "set-font-weight-bold", margin: 1, value: Enums_1.FontWeight.Normal.toString(), checked: this.state.componentStyle.FontWeight == Enums_1.FontWeight.Bold, onChange: (checked) => this.onFontWeightChange(checked) }, "Bold")),
85
85
  React.createElement(FormLayout_1.FormRow, null,
86
- React.createElement(CheckBox_1.CheckBox, { margin: 1, value: Enums_1.FontStyle.Normal.toString(), checked: this.state.componentStyle.FontStyle == Enums_1.FontStyle.Italic, onChange: (checked) => this.onFontStyleChange(checked) }, "Italic")),
86
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "set-font-style-italic", margin: 1, value: Enums_1.FontStyle.Normal.toString(), checked: this.state.componentStyle.FontStyle == Enums_1.FontStyle.Italic, onChange: (checked) => this.onFontStyleChange(checked) }, "Italic")),
87
87
  React.createElement(FormLayout_1.FormRow, null,
88
- React.createElement(CheckBox_1.CheckBox, { margin: 1, checked: this.state.componentStyle.FontSize ? true : false, onChange: (checked) => this.onUseFontSizeCheckChange(checked) }, "Set Font Size")),
88
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "set-font-size", margin: 1, checked: this.state.componentStyle.FontSize ? true : false, onChange: (checked) => this.onUseFontSizeCheckChange(checked) }, "Set Font Size")),
89
89
  React.createElement(FormLayout_1.FormRow, null, this.state.componentStyle.FontSize != null && (React.createElement(rebass_1.Flex, { flexDirection: "row", alignItems: "center" },
90
- React.createElement(DropdownButton_1.default, { style: {
91
- whiteSpace: 'nowrap',
92
- overflow: 'hidden',
93
- textOverflow: 'ellipsis',
94
- maxWidth: 'inherit',
95
- }, mr: 1, items: EnumExtensions_1.EnumExtensions.getNames(Enums_1.FontSize).map((enumName) => ({
90
+ React.createElement(DropdownButton_1.default, { mr: 1, items: EnumExtensions_1.EnumExtensions.getNames(Enums_1.FontSize).map((enumName) => ({
96
91
  value: enumName,
97
92
  label: enumName,
98
93
  onClick: () => this.onFontSizeChange(enumName),
@@ -145,12 +140,12 @@ class StyleComponent extends React.Component {
145
140
  this.props.UpdateStyle(this.state.componentStyle);
146
141
  }
147
142
  onFontWeightChange(checked) {
148
- let fontWeight = checked ? Enums_1.FontWeight.Bold : Enums_1.FontWeight.Normal;
143
+ let fontWeight = checked ? Enums_1.FontWeight.Bold : undefined;
149
144
  this.state.componentStyle.FontWeight = fontWeight;
150
145
  this.props.UpdateStyle(this.state.componentStyle);
151
146
  }
152
147
  onFontStyleChange(checked) {
153
- let fontStyle = checked ? Enums_1.FontStyle.Italic : Enums_1.FontStyle.Normal;
148
+ let fontStyle = checked ? Enums_1.FontStyle.Italic : undefined;
154
149
  this.state.componentStyle.FontStyle = fontStyle;
155
150
  this.props.UpdateStyle(this.state.componentStyle);
156
151
  }
@@ -24,17 +24,7 @@ interface AdaptableToolPanelProps {
24
24
  onCollapseToolPanel: (toolPanel: AdaptableToolPanel | string) => ToolPanelRedux.ToolPanelCollapseToolPanelAction;
25
25
  }
26
26
  export declare const ConnectedAdaptableToolPanel: import("react-redux").ConnectedComponent<(props: AdaptableToolPanelProps) => JSX.Element, import("react-redux").Omit<AdaptableToolPanelProps, "onClick" | "Columns" | "ModuleButtons" | "ToolPanels" | "MainMenuItems" | "onNewColumnListOrder" | "onShowToolPanel" | "onHideToolPanel" | "onExpandToolPanel" | "onCollapseToolPanel">>;
27
- export declare const getAdaptableToolPanelAgGridComponent: (adaptable?: IAdaptable) => {
28
- new (): {
29
- gui: HTMLElement;
30
- unmountReactRoot?: VoidFunction;
31
- init(params?: IToolPanelParams): void;
32
- getGui(): HTMLElement;
33
- refresh(): void;
34
- destroy(): void;
35
- };
36
- };
37
- export declare const AdaptableToolPanelAgGridComponent: {
27
+ export declare const getAdaptableToolPanelAgGridComponent: (adaptable: IAdaptable) => (() => JSX.Element) | {
38
28
  new (): {
39
29
  gui: HTMLElement;
40
30
  unmountReactRoot?: VoidFunction;