@adaptabletools/adaptable 13.0.0-canary.2 → 13.0.0-canary.20

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 (263) hide show
  1. package/agGrid.d.ts +23 -1
  2. package/agGrid.js +23 -1
  3. package/base.css +1232 -733
  4. package/base.css.map +1 -0
  5. package/bundle.cjs.js +191 -174
  6. package/index.css +1250 -734
  7. package/index.css.map +1 -0
  8. package/package.json +5 -5
  9. package/publishTimestamp.d.ts +1 -1
  10. package/publishTimestamp.js +1 -1
  11. package/src/AdaptableInterfaces/IAdaptable.d.ts +7 -3
  12. package/src/AdaptableOptions/AdaptableOptions.d.ts +0 -2
  13. package/src/AdaptableOptions/AdaptableQLOptions.d.ts +136 -27
  14. package/src/AdaptableOptions/ExportOptions.d.ts +2 -2
  15. package/src/AdaptableOptions/FinsemblePluginOptions.d.ts +32 -0
  16. package/src/AdaptableOptions/FinsemblePluginOptions.js +2 -0
  17. package/src/AdaptableOptions/LayoutOptions.d.ts +2 -1
  18. package/src/Api/AdaptableApi.d.ts +2 -0
  19. package/src/Api/ColumnApi.d.ts +8 -2
  20. package/src/Api/ConditionalStyleApi.d.ts +20 -42
  21. package/src/Api/ConfigApi.d.ts +1 -2
  22. package/src/Api/ExportApi.d.ts +6 -6
  23. package/src/Api/FinsembleApi.d.ts +10 -0
  24. package/src/Api/FinsembleApi.js +2 -0
  25. package/src/Api/FormatColumnApi.d.ts +76 -59
  26. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -0
  27. package/src/Api/Implementation/AdaptableApiImpl.js +2 -0
  28. package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -1
  29. package/src/Api/Implementation/ColumnApiImpl.js +18 -14
  30. package/src/Api/Implementation/ExportApiImpl.d.ts +4 -4
  31. package/src/Api/Implementation/ExportApiImpl.js +14 -14
  32. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +36 -17
  33. package/src/Api/Implementation/FormatColumnApiImpl.js +101 -185
  34. package/src/Api/Implementation/PluginsApiImpl.d.ts +2 -0
  35. package/src/Api/Implementation/PluginsApiImpl.js +6 -0
  36. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +2 -3
  37. package/src/Api/Implementation/QueryLanguageApiImpl.js +9 -18
  38. package/src/Api/Implementation/ScopeApiImpl.d.ts +1 -1
  39. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +25 -0
  40. package/src/Api/Implementation/StyledColumnApiImpl.js +193 -0
  41. package/src/Api/Implementation/SystemStatusApiImpl.js +1 -2
  42. package/src/Api/Implementation/ToolPanelApiImpl.d.ts +3 -1
  43. package/src/Api/Implementation/ToolPanelApiImpl.js +8 -0
  44. package/src/Api/PluginsApi.d.ts +5 -0
  45. package/src/Api/QueryLanguageApi.d.ts +3 -7
  46. package/src/Api/ScopeApi.d.ts +1 -1
  47. package/src/Api/StyledColumnApi.d.ts +106 -0
  48. package/src/Api/StyledColumnApi.js +2 -0
  49. package/src/Api/ToolPanelApi.d.ts +10 -1
  50. package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
  51. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  52. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +1 -1
  53. package/src/PredefinedConfig/Common/AdaptablePredicate.js +37 -37
  54. package/src/PredefinedConfig/Common/Types.d.ts +3 -3
  55. package/src/PredefinedConfig/Common/Types.js +1 -0
  56. package/src/PredefinedConfig/ConditionalStyleState.d.ts +10 -19
  57. package/src/PredefinedConfig/FormatColumnState.d.ts +21 -92
  58. package/src/PredefinedConfig/PredefinedConfig.d.ts +6 -0
  59. package/src/PredefinedConfig/StyledColumnState.d.ts +119 -0
  60. package/src/PredefinedConfig/StyledColumnState.js +2 -0
  61. package/src/Redux/ActionsReducers/ConditionalStyleRedux.d.ts +0 -18
  62. package/src/Redux/ActionsReducers/ConditionalStyleRedux.js +0 -18
  63. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +14 -0
  64. package/src/Redux/ActionsReducers/FormatColumnRedux.js +43 -1
  65. package/src/Redux/ActionsReducers/PluginsRedux.d.ts +4 -4
  66. package/src/Redux/ActionsReducers/PluginsRedux.js +5 -5
  67. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +49 -0
  68. package/src/Redux/ActionsReducers/StyledColumnRedux.js +92 -0
  69. package/src/Redux/Store/AdaptableStore.js +9 -0
  70. package/src/Strategy/ConditionalStyleModule.d.ts +0 -2
  71. package/src/Strategy/ConditionalStyleModule.js +3 -27
  72. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  73. package/src/Strategy/DataChangeHistoryModule.js +12 -0
  74. package/src/Strategy/FormatColumnModule.d.ts +3 -10
  75. package/src/Strategy/FormatColumnModule.js +42 -183
  76. package/src/Strategy/Interface/IModule.d.ts +1 -0
  77. package/src/Strategy/StyledColumnModule.d.ts +24 -0
  78. package/src/Strategy/StyledColumnModule.js +165 -0
  79. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.d.ts +1 -1
  80. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +3 -4
  81. package/src/Strategy/Utilities/FormatColumn/getFormatColumnStyleViewItems.js +1 -16
  82. package/src/Strategy/Utilities/getScopeViewItems.js +1 -1
  83. package/src/Utilities/Constants/ModuleConstants.d.ts +3 -0
  84. package/src/Utilities/Constants/ModuleConstants.js +4 -1
  85. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +6 -12
  86. package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -0
  87. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.d.ts +3 -2
  88. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +3 -1
  89. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +1 -0
  90. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +3 -1
  91. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.d.ts +1 -0
  92. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +3 -1
  93. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.d.ts +2 -4
  94. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -1
  95. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -0
  96. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -1
  97. package/src/Utilities/Extensions/TypeExtensions.d.ts +1 -0
  98. package/src/Utilities/Extensions/TypeExtensions.js +5 -0
  99. package/src/Utilities/ObjectFactory.d.ts +5 -2
  100. package/src/Utilities/ObjectFactory.js +14 -7
  101. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +14 -4
  102. package/src/Utilities/Services/{LicenseService.d.ts → LicenseService/index.d.ts} +3 -3
  103. package/src/Utilities/Services/LicenseService/index.js +1 -0
  104. package/src/Utilities/Services/LicenseService/shouldLogThankYouMessage.d.ts +1 -0
  105. package/src/Utilities/Services/LicenseService/shouldLogThankYouMessage.js +15 -0
  106. package/src/Utilities/Services/ModuleService.js +2 -0
  107. package/src/Utilities/Services/QueryLanguageService.d.ts +3 -3
  108. package/src/Utilities/Services/QueryLanguageService.js +88 -39
  109. package/src/Utilities/Services/ReportService.js +6 -6
  110. package/src/Utilities/license/LicenseDetails.d.ts +1 -1
  111. package/src/Utilities/license/decode.d.ts +1 -0
  112. package/src/Utilities/license/decode.js +1 -1
  113. package/src/View/AdaptablePopover/index.js +1 -1
  114. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +9 -9
  115. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +6 -5
  116. package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.js +3 -3
  117. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -3
  118. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  119. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +1 -1
  120. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +1 -1
  121. package/src/View/Components/AdaptableObjectRow/index.js +1 -6
  122. package/src/View/Components/Buttons/ButtonInfo.d.ts +1 -3
  123. package/src/View/Components/Buttons/ButtonInfo.js +3 -5
  124. package/src/View/Components/EntityRulesEditor/index.d.ts +2 -1
  125. package/src/View/Components/EntityRulesEditor/index.js +36 -35
  126. package/src/View/Components/FilterForm/FilterForm.js +11 -16
  127. package/src/View/Components/FilterForm/ListBoxFilterForm.js +2 -1
  128. package/src/View/Components/FilterForm/QuickFilterForm.js +7 -13
  129. package/src/View/Components/NewScopeComponent.js +3 -3
  130. package/src/View/Components/Panels/PanelWithButton.js +1 -5
  131. package/src/View/Components/Panels/PanelWithImage.js +1 -5
  132. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -2
  133. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +1 -0
  134. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +3 -16
  135. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -0
  136. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +1 -1
  137. package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +5 -5
  138. package/src/View/Components/RangesComponent.d.ts +8 -1
  139. package/src/View/Components/RangesComponent.js +60 -24
  140. package/src/View/Components/ScopeComponent.js +6 -6
  141. package/src/View/Components/Selectors/ColumnSelector.d.ts +1 -0
  142. package/src/View/Components/Selectors/ColumnSelector.js +2 -1
  143. package/src/View/Components/Selectors/ColumnValueSelector.js +2 -2
  144. package/src/View/Components/StyleComponent.js +14 -19
  145. package/src/View/Components/ToolPanel/AdaptableToolPanel.d.ts +3 -9
  146. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +25 -10
  147. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  148. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +1 -1
  149. package/src/View/ConditionalStyle/ConditionalStylePopupHeader.d.ts +2 -0
  150. package/src/View/ConditionalStyle/ConditionalStylePopupHeader.js +18 -0
  151. package/src/View/ConditionalStyle/Wizard/ConditionalStyleRuleWizardSection.js +3 -3
  152. package/src/View/ConditionalStyle/Wizard/ConditionalStyleSettingsWizardSettings.js +1 -1
  153. package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.js +1 -11
  154. package/src/View/DataSet/DataSetSelector.js +1 -1
  155. package/src/View/DataSet/DataSetViewPanel.d.ts +1 -1
  156. package/src/View/Export/ExportViewPanel.d.ts +1 -1
  157. package/src/View/Export/ExportViewPanel.js +4 -4
  158. package/src/View/Export/ReportExportDropdown.js +1 -1
  159. package/src/View/Export/Wizard/ReportNameWizardSection.js +10 -11
  160. package/src/View/Filter/FilterSummary.d.ts +1 -1
  161. package/src/View/Filter/FilterViewPanel.d.ts +1 -1
  162. package/src/View/FlashingCell/FlashingCellStyle.js +3 -3
  163. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +3 -3
  164. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +6 -6
  165. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
  166. package/src/View/FormatColumn/FormatColumnSummary.js +1 -1
  167. package/src/View/FormatColumn/MoveFormatColumn.d.ts +7 -0
  168. package/src/View/FormatColumn/MoveFormatColumn.js +27 -0
  169. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +28 -28
  170. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +8 -0
  171. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +28 -0
  172. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +21 -3
  173. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +2 -28
  174. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -3
  175. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +6 -300
  176. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +15 -9
  177. package/src/View/FormatColumn/Wizard/constants.d.ts +1 -0
  178. package/src/View/FormatColumn/Wizard/constants.js +4 -0
  179. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +7 -7
  180. package/src/View/Layout/LayoutRadioSelector.js +1 -1
  181. package/src/View/Layout/LayoutViewPanel.d.ts +1 -1
  182. package/src/View/Layout/Wizard/Components/ColumnLabels.js +1 -1
  183. package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
  184. package/src/View/Layout/Wizard/sections/ColumnsSection.js +7 -6
  185. package/src/View/Layout/Wizard/sections/SettingsSection.js +2 -2
  186. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +1 -1
  187. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +3 -3
  188. package/src/View/Query/QueryViewPanel.d.ts +1 -1
  189. package/src/View/Query/Wizard/NamedQuerySettingsWizardSection.js +1 -1
  190. package/src/View/QuickSearch/QuickSearchPopup.js +2 -2
  191. package/src/View/QuickSearch/QuickSearchViewPanel.d.ts +1 -1
  192. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +5 -5
  193. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsGlue42.js +1 -1
  194. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +5 -5
  195. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +1 -1
  196. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +5 -5
  197. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +2 -2
  198. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +3 -3
  199. package/src/View/SmartEdit/SmartEditPopup.js +3 -3
  200. package/src/View/SpecialColumnSettingsWizardStep.js +10 -10
  201. package/src/View/StateManagement/StateManagementPopup.js +4 -4
  202. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +7 -0
  203. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +77 -0
  204. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.d.ts +9 -0
  205. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +65 -0
  206. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection.d.ts +9 -0
  207. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection.js +234 -0
  208. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.d.ts +7 -0
  209. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +59 -0
  210. package/src/View/SystemStatus/SystemStatusEntityRow.js +4 -6
  211. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +1 -1
  212. package/src/View/TeamSharing/SharedEntityObjectView.js +1 -1
  213. package/src/View/TeamSharing/TeamSharingApplyButton.js +1 -1
  214. package/src/View/Theme/ThemePopup.js +1 -1
  215. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +1 -1
  216. package/src/View/Wizard/OnePageAdaptableWizard.js +1 -2
  217. package/src/agGrid/ActionColumnRenderer.d.ts +3 -0
  218. package/src/agGrid/ActionColumnRenderer.js +96 -64
  219. package/src/agGrid/Adaptable.d.ts +13 -9
  220. package/src/agGrid/Adaptable.js +207 -221
  221. package/src/agGrid/CheckboxRenderer.js +1 -1
  222. package/src/agGrid/FilterWrapper.js +60 -16
  223. package/src/agGrid/FloatingFilterWrapper.d.ts +2 -2
  224. package/src/agGrid/FloatingFilterWrapper.js +71 -32
  225. package/src/agGrid/PercentBarRenderer.d.ts +6 -2
  226. package/src/agGrid/PercentBarRenderer.js +19 -17
  227. package/src/agGrid/agGridHelper.d.ts +6 -2
  228. package/src/agGrid/agGridHelper.js +16 -15
  229. package/src/agGrid/createAgStatusPanelComponent.d.ts +1 -1
  230. package/src/agGrid/createAgStatusPanelComponent.js +17 -0
  231. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +5 -1
  232. package/src/agGrid/editors/AdaptableDateEditor/index.js +87 -20
  233. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -1
  234. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +3 -3
  235. package/src/agGrid/editors/AdaptableNumberEditor/index.js +81 -30
  236. package/src/agGrid/weightedAverage.js +19 -11
  237. package/src/components/CheckBox/index.js +7 -2
  238. package/src/components/Datepicker/index.d.ts +1 -1
  239. package/src/components/ExpressionEditor/BaseEditorInput.d.ts +1 -1
  240. package/src/components/ExpressionEditor/BaseEditorInput.js +13 -32
  241. package/src/components/ExpressionEditor/EditorInput.js +1 -1
  242. package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +1 -1
  243. package/src/components/ExpressionEditor/index.js +9 -17
  244. package/src/components/FormLayout/index.js +1 -1
  245. package/src/components/StylePreview.js +2 -1
  246. package/src/components/icons/brush.d.ts +3 -0
  247. package/src/components/icons/brush.js +7 -0
  248. package/src/components/icons/index.js +2 -0
  249. package/src/metamodel/adaptable.metamodel.d.ts +191 -95
  250. package/src/metamodel/adaptable.metamodel.js +1 -1
  251. package/src/parser/src/types.d.ts +6 -3
  252. package/src/renderReactRoot.d.ts +2 -0
  253. package/src/renderReactRoot.js +11 -9
  254. package/src/types.d.ts +8 -4
  255. package/themes/dark.css +8 -4
  256. package/themes/dark.css.map +1 -0
  257. package/themes/light.css +4 -1
  258. package/themes/light.css.map +1 -0
  259. package/version.d.ts +1 -1
  260. package/version.js +1 -1
  261. package/src/AdaptableComponents.d.ts +0 -1
  262. package/src/AdaptableComponents.js +0 -5
  263. package/src/Utilities/Services/LicenseService.js +0 -1
@@ -4,333 +4,39 @@ exports.FormatColumnStyleWizardSection = exports.renderFormatColumnStyleSummary
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const rebass_1 = require("rebass");
7
- const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
8
- const CheckBox_1 = require("../../../components/CheckBox");
9
7
  const StyleHelper_1 = require("../../../Utilities/Helpers/StyleHelper");
10
8
  const StyleComponent_1 = require("../../Components/StyleComponent");
11
9
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
12
- const Tabs_1 = require("../../../components/Tabs");
13
- const Radio_1 = tslib_1.__importDefault(require("../../../components/Radio"));
14
- const RangesComponent_1 = require("../../Components/RangesComponent");
15
- const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
16
- const ColorPicker_1 = require("../../ColorPicker");
17
- const UIHelper_1 = tslib_1.__importStar(require("../../UIHelper"));
18
- const StyleVisualItem_1 = require("../../Components/StyleVisualItem");
10
+ const UIHelper_1 = tslib_1.__importDefault(require("../../UIHelper"));
19
11
  const isFormatColumnStyleValid = (data, api) => {
20
- var _a, _b, _c, _d, _e;
21
- if (!data.ColumnStyle &&
22
- data.Style &&
12
+ if (data.Style &&
23
13
  UIHelper_1.default.IsEmptyStyle(data.Style) &&
24
14
  data.DisplayFormat === undefined &&
25
- data.HeaderName === undefined &&
26
15
  data.CellAlignment === undefined &&
27
16
  !api.scopeApi.isSingleBooleanColumnScope(data.Scope)) {
28
17
  return 'No format applied';
29
18
  }
30
- if ((_c = (_b = (_a = data.ColumnStyle) === null || _a === void 0 ? void 0 : _a.PercentBarStyle) === null || _b === void 0 ? void 0 : _b.CellRanges) === null || _c === void 0 ? void 0 : _c.length) {
31
- if (data.ColumnStyle.PercentBarStyle.CellRanges.some((cellRange) => cellRange.Min == undefined || cellRange.Max == undefined)) {
32
- return 'Invalid Cell Range';
33
- }
34
- }
35
- if ((_e = (_d = data.ColumnStyle) === null || _d === void 0 ? void 0 : _d.PercentBarStyle) === null || _e === void 0 ? void 0 : _e.ColumnComparison) {
36
- if (data.ColumnStyle.PercentBarStyle.ColumnComparison.MinValue == undefined ||
37
- data.ColumnStyle.PercentBarStyle.ColumnComparison.MaxValue == undefined) {
38
- return 'Invalid Column Comparison Range';
39
- }
40
- }
41
19
  return true;
42
20
  };
43
21
  exports.isFormatColumnStyleValid = isFormatColumnStyleValid;
44
22
  const toStyle = (style) => {
45
23
  return Object.assign(Object.assign({}, (0, StyleHelper_1.convertAdaptableStyleToCSS)(style !== null && style !== void 0 ? style : {})), { borderWidth: (style === null || style === void 0 ? void 0 : style.BorderColor) ? 2 : 0, borderStyle: 'solid' });
46
24
  };
47
- const getRanges = (ranges) => {
48
- return ranges.map((r, i) => (React.createElement(rebass_1.Flex, { key: i, alignItems: "center", mr: 3 },
49
- React.createElement(rebass_1.Box, { mr: 1 },
50
- r.Min,
51
- " to ",
52
- r.Max,
53
- ' '),
54
- React.createElement(StyleVisualItem_1.StyleVisualItem, { Style: {
55
- BackColor: r.Color,
56
- ForeColor: r.Color,
57
- } }))));
58
- };
59
- const getColumnComparison = (columnComparison, api) => {
60
- return (React.createElement(rebass_1.Flex, { key: 'cc', alignItems: "center", mr: 3 },
61
- React.createElement(rebass_1.Box, { mr: 1 },
62
- "Min Value:",
63
- ' ',
64
- isNaN(Number(columnComparison.MinValue))
65
- ? '[' + api.columnApi.getFriendlyNameFromColumnId(String(columnComparison.MinValue)) + ']'
66
- : columnComparison.MinValue,
67
- ' ',
68
- ", Max Value:",
69
- ' ',
70
- isNaN(Number(columnComparison.MaxValue))
71
- ? '[' + api.columnApi.getFriendlyNameFromColumnId(String(columnComparison.MaxValue)) + ']'
72
- : columnComparison.MaxValue,
73
- ' '),
74
- React.createElement(StyleVisualItem_1.StyleVisualItem, { Style: {
75
- BackColor: columnComparison.Color,
76
- ForeColor: columnComparison.Color,
77
- } })));
78
- };
79
25
  const renderFormatColumnStyleWizardSummary = (data) => {
80
26
  const { api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
81
27
  return (0, exports.renderFormatColumnStyleSummary)(data, api);
82
28
  };
83
29
  exports.renderFormatColumnStyleWizardSummary = renderFormatColumnStyleWizardSummary;
84
30
  const renderFormatColumnStyleSummary = (data, api) => {
85
- if (data.ColumnStyle) {
86
- if (data.ColumnStyle.CheckBoxStyle) {
87
- return 'Checkbox Style';
88
- }
89
- if (data.ColumnStyle.GradientStyle) {
90
- if (data.ColumnStyle.GradientStyle.CellRanges) {
91
- return getRanges(data.ColumnStyle.GradientStyle.CellRanges);
92
- }
93
- if (data.ColumnStyle.GradientStyle.ColumnComparison) {
94
- return getColumnComparison(data.ColumnStyle.GradientStyle.ColumnComparison, api);
95
- }
96
- }
97
- if (data.ColumnStyle.PercentBarStyle) {
98
- if (data.ColumnStyle.PercentBarStyle.CellRanges) {
99
- return getRanges(data.ColumnStyle.PercentBarStyle.CellRanges);
100
- }
101
- if (data.ColumnStyle.PercentBarStyle.ColumnComparison) {
102
- return getColumnComparison(data.ColumnStyle.PercentBarStyle.ColumnComparison, api);
103
- }
104
- }
105
- if (data.Style == null || UIHelper_1.default.IsEmptyStyle(data.Style)) {
106
- return '[None]';
107
- }
108
- return React.createElement(StyleVisualItem_1.StyleVisualItem, { Style: data.Style });
109
- }
110
- return (React.createElement(rebass_1.Text, { padding: 2, style: toStyle(data.Style) }, "Preview result"));
31
+ return (React.createElement(rebass_1.Text, { className: "ab-FormatPreview", padding: 2, style: toStyle(data.Style) }, "Preview result"));
111
32
  };
112
33
  exports.renderFormatColumnStyleSummary = renderFormatColumnStyleSummary;
113
34
  function FormatColumnStyleWizardSection(props) {
114
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
35
+ var _a;
115
36
  const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
116
- const singleNumericColumn = api.scopeApi.isSingleNumericColumnScope(data.Scope);
117
- const onlyBooleanColumnsInScope = api.scopeApi.areAllBooleanColumnsInScope(data.Scope) ||
118
- api.scopeApi.scopeHasOnlyBooleanDataType(data.Scope);
119
- const onPercentBarCellTextCellValueChanged = (checked) => {
120
- var _a;
121
- let percentBarStyle = (_a = data.ColumnStyle) === null || _a === void 0 ? void 0 : _a.PercentBarStyle;
122
- if (checked) {
123
- if (!percentBarStyle.CellText) {
124
- percentBarStyle.CellText = ['CellValue'];
125
- }
126
- else {
127
- percentBarStyle.CellText.push('CellValue');
128
- }
129
- }
130
- else {
131
- if (percentBarStyle.CellText && percentBarStyle.CellText.includes('PercentageValue')) {
132
- percentBarStyle.CellText = ['PercentageValue'];
133
- }
134
- else {
135
- percentBarStyle.CellText = [];
136
- }
137
- }
138
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle: {
139
- PercentBarStyle: percentBarStyle,
140
- } }));
141
- };
142
- const onPercentBarCellTextPercentValueChanged = (checked) => {
143
- var _a;
144
- let percentBarStyle = (_a = data.ColumnStyle) === null || _a === void 0 ? void 0 : _a.PercentBarStyle;
145
- if (checked) {
146
- if (!percentBarStyle.CellText) {
147
- percentBarStyle.CellText = ['PercentageValue'];
148
- }
149
- else {
150
- percentBarStyle.CellText.push('PercentageValue');
151
- }
152
- }
153
- else {
154
- if (percentBarStyle.CellText && percentBarStyle.CellText.includes('CellValue')) {
155
- percentBarStyle.CellText = ['CellValue'];
156
- }
157
- else {
158
- percentBarStyle.CellText = [];
159
- }
160
- }
161
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle: {
162
- PercentBarStyle: percentBarStyle,
163
- } }));
164
- };
165
- const onPercentBarToolTipTextCellValueChanged = (checked) => {
166
- var _a;
167
- let percentBarStyle = (_a = data.ColumnStyle) === null || _a === void 0 ? void 0 : _a.PercentBarStyle;
168
- if (checked) {
169
- if (!percentBarStyle.ToolTipText) {
170
- percentBarStyle.ToolTipText = ['CellValue'];
171
- }
172
- else {
173
- percentBarStyle.ToolTipText.push('CellValue');
174
- }
175
- }
176
- else {
177
- if (percentBarStyle.ToolTipText && percentBarStyle.ToolTipText.includes('PercentageValue')) {
178
- percentBarStyle.ToolTipText = ['PercentageValue'];
179
- }
180
- else {
181
- percentBarStyle.ToolTipText = [];
182
- }
183
- }
184
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle: {
185
- PercentBarStyle: percentBarStyle,
186
- } }));
187
- };
188
- const onPercentBarToolTipTextPercentValueChanged = (checked) => {
189
- var _a;
190
- let percentBarStyle = (_a = data.ColumnStyle) === null || _a === void 0 ? void 0 : _a.PercentBarStyle;
191
- if (checked) {
192
- if (!percentBarStyle.ToolTipText) {
193
- percentBarStyle.ToolTipText = ['PercentageValue'];
194
- }
195
- else {
196
- percentBarStyle.ToolTipText.push('PercentageValue');
197
- }
198
- }
199
- else {
200
- if (percentBarStyle.ToolTipText && percentBarStyle.ToolTipText.includes('CellValue')) {
201
- percentBarStyle.ToolTipText = ['CellValue'];
202
- }
203
- else {
204
- percentBarStyle.ToolTipText = [];
205
- }
206
- }
207
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle: {
208
- PercentBarStyle: percentBarStyle,
209
- } }));
210
- };
211
- const onUpdatePercentBarStyleColumnComparison = (columnComparison) => {
212
- let ColumnStyle = {
213
- PercentBarStyle: {
214
- ColumnComparison: columnComparison,
215
- },
216
- };
217
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle }));
218
- };
219
- const onUsePercentStyleColorCheckChanged = (checked) => {
220
- var _a;
221
- let percentBarStyle = (_a = data.ColumnStyle) === null || _a === void 0 ? void 0 : _a.PercentBarStyle;
222
- percentBarStyle.BackColor = checked ? (0, UIHelper_1.getHexForName)(UIHelper_1.GRAY) : null;
223
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle: {
224
- PercentBarStyle: percentBarStyle,
225
- } }));
226
- };
227
- const onForeColorSelectChange = (color) => {
228
- var _a;
229
- let percentBarStyle = (_a = data.ColumnStyle) === null || _a === void 0 ? void 0 : _a.PercentBarStyle;
230
- percentBarStyle.BackColor = color;
231
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle: {
232
- PercentBarStyle: percentBarStyle,
233
- } }));
234
- };
235
- const onUpdatePercentBarStyleRanges = (ranges) => {
236
- let ColumnStyle = {
237
- PercentBarStyle: {
238
- CellRanges: ranges,
239
- },
240
- };
241
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle }));
242
- };
243
- const onUpdateGradientStyleRanges = (ranges) => {
244
- let ColumnStyle = {
245
- GradientStyle: {
246
- CellRanges: ranges,
247
- },
248
- };
249
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle }));
250
- };
251
- const onUpdateGradientStyleColumnComparison = (columnComparison) => {
252
- let ColumnStyle = {
253
- GradientStyle: {
254
- ColumnComparison: columnComparison,
255
- },
256
- };
257
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle }));
258
- };
259
- const onStyleTypeChanged = (event) => {
260
- let e = event.target;
261
- if (e.value == 'Gradient') {
262
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle: {
263
- GradientStyle: {
264
- CellRanges: api.scopeApi.createCellColorRangesForScope(data.Scope),
265
- },
266
- } }));
267
- }
268
- else if (e.value == 'PercentBar') {
269
- props.onChange(Object.assign(Object.assign({}, data), { ColumnStyle: {
270
- PercentBarStyle: {
271
- CellRanges: api.scopeApi.createCellColorRangesForScope(data.Scope),
272
- },
273
- } }));
274
- }
275
- else if (e.value == 'None') {
276
- const newData = Object.assign({}, data);
277
- delete newData.ColumnStyle;
278
- props.onChange(newData);
279
- }
280
- };
281
37
  return (React.createElement(React.Fragment, null,
282
- onlyBooleanColumnsInScope && (React.createElement(Tabs_1.Tabs, null,
283
- React.createElement(Tabs_1.Tabs.Tab, null, "CheckBox Column"),
284
- React.createElement(Tabs_1.Tabs.Content, null,
285
- React.createElement(HelpBlock_1.default, { fontSize: 2 }, "Shows each cell in the Column as a Checkbox"),
286
- ' ',
287
- React.createElement(CheckBox_1.CheckBox, { marginLeft: 2, checked: !!((_a = data.ColumnStyle) === null || _a === void 0 ? void 0 : _a.CheckBoxStyle), onChange: (CheckBoxStyle) => {
288
- const formatColumn = Object.assign(Object.assign({}, data), { ColumnStyle: {
289
- CheckBoxStyle,
290
- } });
291
- if (!CheckBoxStyle) {
292
- delete formatColumn.ColumnStyle;
293
- }
294
- props.onChange(formatColumn);
295
- } }, "Display Column As CheckBox")))),
296
- singleNumericColumn ? (React.createElement(React.Fragment, null,
297
- React.createElement(Tabs_1.Tabs, null,
298
- React.createElement(Tabs_1.Tabs.Tab, null, "Create a Format Column Style"),
299
- React.createElement(Tabs_1.Tabs.Content, null,
300
- React.createElement(rebass_1.Flex, { flexDirection: "row" },
301
- React.createElement(Radio_1.default, { marginLeft: 2, value: "None", checked: !data.ColumnStyle, onChange: (checked, e) => onStyleTypeChanged(e) }, "Standard"),
302
- ' ',
303
- React.createElement(Radio_1.default, { marginLeft: 3, value: "Gradient", checked: !!((_b = data.ColumnStyle) === null || _b === void 0 ? void 0 : _b.GradientStyle), onChange: (checked, e) => onStyleTypeChanged(e) }, "Gradient"),
304
- ' ',
305
- React.createElement(Radio_1.default, { marginLeft: 3, value: "PercentBar", checked: !!((_c = data.ColumnStyle) === null || _c === void 0 ? void 0 : _c.PercentBarStyle), onChange: (checked, e) => onStyleTypeChanged(e) },
306
- "Percent Bar",
307
- ' '),
308
- ' '))),
309
- ((_d = data.ColumnStyle) === null || _d === void 0 ? void 0 : _d.GradientStyle) && (React.createElement(RangesComponent_1.RangesComponent, { api: api, scope: data === null || data === void 0 ? void 0 : data.Scope, showRangeDirection: true, ranges: (_f = (_e = data.ColumnStyle) === null || _e === void 0 ? void 0 : _e.GradientStyle) === null || _f === void 0 ? void 0 : _f.CellRanges, columnComparison: (_h = (_g = data === null || data === void 0 ? void 0 : data.ColumnStyle) === null || _g === void 0 ? void 0 : _g.GradientStyle) === null || _h === void 0 ? void 0 : _h.ColumnComparison, updateRanges: (ranges) => onUpdateGradientStyleRanges(ranges), updateColumnComparison: (columnComparison) => onUpdateGradientStyleColumnComparison(columnComparison) })),
310
- ((_j = data.ColumnStyle) === null || _j === void 0 ? void 0 : _j.PercentBarStyle) && (React.createElement(React.Fragment, null,
311
- React.createElement(RangesComponent_1.RangesComponent, { api: api, scope: data === null || data === void 0 ? void 0 : data.Scope, showRangeDirection: false, ranges: (_l = (_k = data.ColumnStyle) === null || _k === void 0 ? void 0 : _k.PercentBarStyle) === null || _l === void 0 ? void 0 : _l.CellRanges, columnComparison: (_o = (_m = data === null || data === void 0 ? void 0 : data.ColumnStyle) === null || _m === void 0 ? void 0 : _m.PercentBarStyle) === null || _o === void 0 ? void 0 : _o.ColumnComparison, updateRanges: (ranges) => onUpdatePercentBarStyleRanges(ranges), updateColumnComparison: (columnComparison) => onUpdatePercentBarStyleColumnComparison(columnComparison) }),
312
- React.createElement(FormLayout_1.default, { marginLeft: 2, marginTop: 2 },
313
- React.createElement(FormLayout_1.FormRow, { label: "Cell Display:" },
314
- React.createElement(CheckBox_1.CheckBox, { marginLeft: 2, checked: (_r = (_q = (_p = data.ColumnStyle) === null || _p === void 0 ? void 0 : _p.PercentBarStyle) === null || _q === void 0 ? void 0 : _q.CellText) === null || _r === void 0 ? void 0 : _r.includes('CellValue'), onChange: (checked) => onPercentBarCellTextCellValueChanged(checked) }, "Cell Value"),
315
- ' ',
316
- React.createElement(CheckBox_1.CheckBox, { marginLeft: 3, checked: (_u = (_t = (_s = data.ColumnStyle) === null || _s === void 0 ? void 0 : _s.PercentBarStyle) === null || _t === void 0 ? void 0 : _t.CellText) === null || _u === void 0 ? void 0 : _u.includes('PercentageValue'), onChange: (checked) => onPercentBarCellTextPercentValueChanged(checked) },
317
- "Percent Value",
318
- ' '),
319
- ' '),
320
- React.createElement(FormLayout_1.FormRow, { label: "ToolTip Display:" },
321
- React.createElement(CheckBox_1.CheckBox, { marginLeft: 2, checked: (_x = (_w = (_v = data.ColumnStyle) === null || _v === void 0 ? void 0 : _v.PercentBarStyle) === null || _w === void 0 ? void 0 : _w.ToolTipText) === null || _x === void 0 ? void 0 : _x.includes('CellValue'), onChange: (checked) => onPercentBarToolTipTextCellValueChanged(checked) }, "Cell Value"),
322
- ' ',
323
- React.createElement(CheckBox_1.CheckBox, { marginLeft: 3, checked: (_0 = (_z = (_y = data.ColumnStyle) === null || _y === void 0 ? void 0 : _y.PercentBarStyle) === null || _z === void 0 ? void 0 : _z.ToolTipText) === null || _0 === void 0 ? void 0 : _0.includes('PercentageValue'), onChange: (checked) => onPercentBarToolTipTextPercentValueChanged(checked) },
324
- "Percent Value",
325
- ' '),
326
- ' '),
327
- React.createElement(FormLayout_1.FormRow, { label: `Back ${api.internalApi.getCorrectEnglishVariant('Colour')}` },
328
- React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
329
- React.createElement(CheckBox_1.CheckBox, { checked: !!((_2 = (_1 = data.ColumnStyle) === null || _1 === void 0 ? void 0 : _1.PercentBarStyle) === null || _2 === void 0 ? void 0 : _2.BackColor), onChange: (checked) => onUsePercentStyleColorCheckChanged(checked), mr: 2 }),
330
- ((_4 = (_3 = data.ColumnStyle) === null || _3 === void 0 ? void 0 : _3.PercentBarStyle) === null || _4 === void 0 ? void 0 : _4.BackColor) !== undefined && (React.createElement(ColorPicker_1.ColorPicker, { api: api, value: (_6 = (_5 = data.ColumnStyle) === null || _5 === void 0 ? void 0 : _5.PercentBarStyle) === null || _6 === void 0 ? void 0 : _6.BackColor, onChange: (x) => onForeColorSelectChange(x) }))))),
331
- React.createElement(rebass_1.Flex, { flexDirection: "row", padding: 2 }))))) : null,
332
- !data.ColumnStyle ? (React.createElement(StyleComponent_1.StyleComponent, { headless: true, api: api, Style: (_7 = data.Style) !== null && _7 !== void 0 ? _7 : {}, UpdateStyle: (Style) => {
38
+ React.createElement(StyleComponent_1.StyleComponent, { headless: true, api: api, Style: (_a = data.Style) !== null && _a !== void 0 ? _a : {}, UpdateStyle: (Style) => {
333
39
  props.onChange(Object.assign(Object.assign({}, data), { Style }));
334
- } })) : null));
40
+ } })));
335
41
  }
336
42
  exports.FormatColumnStyleWizardSection = FormatColumnStyleWizardSection;
@@ -17,6 +17,9 @@ const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/Obje
17
17
  const react_redux_1 = require("react-redux");
18
18
  const FormatColumnRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/FormatColumnRedux"));
19
19
  const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
20
+ const EntityRulesEditor_1 = require("../../Components/EntityRulesEditor");
21
+ const FormatColumnRuleWizardSection_1 = require("./FormatColumnRuleWizardSection");
22
+ const constants_1 = require("./constants");
20
23
  const adjustDisplayFormat = (formatColumn, api) => {
21
24
  formatColumn = Object.assign({}, formatColumn);
22
25
  const formatDataType = (0, FormatColumnFormatWizardSection_1.getFormatDisplayTypeForScope)(formatColumn.Scope, api);
@@ -62,13 +65,6 @@ const adjustDisplayFormat = (formatColumn, api) => {
62
65
  };
63
66
  const adjustFormatColumn = (formatColumn, api) => {
64
67
  formatColumn = adjustDisplayFormat(formatColumn, api);
65
- if (!api.scopeApi.isSingleNumericColumnScope(formatColumn.Scope) &&
66
- !(api.scopeApi.areAllBooleanColumnsInScope(formatColumn.Scope) ||
67
- api.scopeApi.scopeHasOnlyBooleanDataType(formatColumn.Scope))) {
68
- // when people change the scope and select more than one (numeric) column
69
- // we have to discard any column style we might have
70
- delete formatColumn.ColumnStyle;
71
- }
72
68
  return formatColumn;
73
69
  };
74
70
  function FormatColumnWizard(props) {
@@ -105,7 +101,7 @@ function FormatColumnWizard(props) {
105
101
  return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: formatColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
106
102
  {
107
103
  title: 'Scope',
108
- details: 'Apply formatting to: one or more Columns or Data Types or the whole row',
104
+ details: 'Select which Columns will be formatted',
109
105
  isValid: NewScopeComponent_1.isScopeValid,
110
106
  renderSummary: FormatColumnScopeWizardSection_1.renderFormatColumnScopeSummary,
111
107
  render: () => {
@@ -113,9 +109,19 @@ function FormatColumnWizard(props) {
113
109
  React.createElement(FormatColumnScopeWizardSection_1.FormatColumnScopeWizardSection, { onChange: setFormatColumn })));
114
110
  },
115
111
  },
112
+ {
113
+ isValid: (abObject, api, context) => {
114
+ return abObject.Rule ? (0, EntityRulesEditor_1.isRuleValid)(abObject, api, context) : true;
115
+ },
116
+ title: 'Condition',
117
+ details: 'Build a Rule when the Format Column should be applied',
118
+ render: () => {
119
+ return (React.createElement(FormatColumnRuleWizardSection_1.FormatColumnRuleWizardSection, { onChange: setFormatColumn, defaultPredicateId: constants_1.DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN }));
120
+ },
121
+ },
116
122
  {
117
123
  title: 'Style',
118
- details: 'Format Column Style',
124
+ details: 'Create a Style for the Format Column',
119
125
  isValid: FormatColumnStyleWizardSection_1.isFormatColumnStyleValid,
120
126
  renderSummary: FormatColumnStyleWizardSection_1.renderFormatColumnStyleWizardSummary,
121
127
  render: () => {
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN = "NonBlanks";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN = void 0;
4
+ exports.DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN = 'NonBlanks';
@@ -106,15 +106,15 @@ const FreeTextColumnSettingsWizardSection = (props) => {
106
106
  return (React.createElement(React.Fragment, null,
107
107
  React.createElement(FormLayout_1.default, null,
108
108
  React.createElement(FormLayout_1.FormRow, { label: "ColumnId" },
109
- React.createElement(Input_1.default, { autoFocus: !inEdit, value: data.ColumnId || '', style: { width: '100%', maxWidth: 500 }, disabled: inEdit, type: "text", placeholder: "Enter an id", onChange: (e) => handleColumnIdChange(e) })),
109
+ React.createElement(Input_1.default, { "data-name": "column-id", autoFocus: !inEdit, value: data.ColumnId || '', style: { width: '100%', maxWidth: 500 }, disabled: inEdit, type: "text", placeholder: "Enter an id", onChange: (e) => handleColumnIdChange(e) })),
110
110
  React.createElement(FormLayout_1.FormRow, { label: "Column Name" },
111
- React.createElement(Input_1.default, { autoFocus: inEdit, onFocus: () => {
111
+ React.createElement(Input_1.default, { "data-name": "column-name", autoFocus: inEdit, onFocus: () => {
112
112
  setColumnNameFocused(true);
113
113
  }, onBlur: () => {
114
114
  setColumnNameFocused(false);
115
115
  }, value: ColumnNameFocused ? data.FriendlyName || '' : data.FriendlyName || data.ColumnId || '', style: { width: '100%', maxWidth: 500 }, type: "text", placeholder: "Enter a name", onChange: (e) => handleColumnNameChange(e) })),
116
116
  React.createElement(FormLayout_1.FormRow, { label: "Type" },
117
- React.createElement(DropdownButton_1.default, { style: {
117
+ React.createElement(DropdownButton_1.default, { "data-name": "column-type-dropdown", style: {
118
118
  width: '300px',
119
119
  whiteSpace: 'normal',
120
120
  overflow: 'hidden',
@@ -124,9 +124,9 @@ const FreeTextColumnSettingsWizardSection = (props) => {
124
124
  label: item.label,
125
125
  onClick: () => handleDataTypeChange(item.value),
126
126
  })) }, data.DataType ? data.DataType : 'Select Data Type')),
127
- React.createElement(FormLayout_1.FormRow, { label: "Default Value" }, data.DataType === 'Boolean' ? (React.createElement(CheckBox_1.CheckBox, { checked: !!data.DefaultValue, onChange: (DefaultValue) => {
127
+ React.createElement(FormLayout_1.FormRow, { label: "Default Value" }, data.DataType === 'Boolean' ? (React.createElement(CheckBox_1.CheckBox, { "data-name": "column-default-value-checkbox", checked: !!data.DefaultValue, onChange: (DefaultValue) => {
128
128
  props.onChange(Object.assign(Object.assign({}, data), { DefaultValue }));
129
- } })) : (React.createElement(AdaptableInput_1.default, { value: data.DataType === 'Date' && data.DefaultValue
129
+ } })) : (React.createElement(AdaptableInput_1.default, { "data-name": "column-default-value", value: data.DataType === 'Date' && data.DefaultValue
130
130
  ? (0, DateHelper_1.parseToISO)(data.DefaultValue, Pattern) || ''
131
131
  : data.DefaultValue || '', style: { width: '100%', maxWidth: 500 }, type: data.DataType === 'Number' ? 'number' : data.DataType === 'Date' ? 'date' : 'text', placeholder: "Default Column Value (not required)", onChange: (e) => handleDefaultValueChange(e) }))),
132
132
  React.createElement(FormLayout_1.FormRow, { label: "Header Tooltip" },
@@ -135,8 +135,8 @@ const FreeTextColumnSettingsWizardSection = (props) => {
135
135
  }) })),
136
136
  ' ',
137
137
  data.DataType == 'String' && (React.createElement(FormLayout_1.FormRow, { label: "Editor Type" },
138
- React.createElement(Radio_1.default, { value: "Inline", checked: data.TextEditor == 'Inline', onChange: (_, e) => onDynamicSelectChanged(e), marginRight: 2 }, "Inline Editor"),
139
- React.createElement(Radio_1.default, { value: "Large", checked: data.TextEditor == 'Large', onChange: (_, e) => onDynamicSelectChanged(e) }, "Large Editor")))),
138
+ React.createElement(Radio_1.default, { "data-name": "inline-editor", value: "Inline", checked: data.TextEditor == 'Inline', onChange: (_, e) => onDynamicSelectChanged(e), marginRight: 2 }, "Inline Editor"),
139
+ React.createElement(Radio_1.default, { "data-name": "large-editor", value: "Large", checked: data.TextEditor == 'Large', onChange: (_, e) => onDynamicSelectChanged(e) }, "Large Editor")))),
140
140
  ErrorMessage ? (React.createElement(ErrorBox_1.default, { mt: 2, mb: 2 }, ErrorMessage)) : null,
141
141
  React.createElement(rebass_1.Box, { mt: 2 },
142
142
  React.createElement(SpecialColumnSettingsWizardStep_1.SpecialColumnSettingsWizardStep, { isEditable: true, settings: data.FreeTextColumnSettings, onChange: handleSpecialColumnSettingsChange }))));
@@ -14,6 +14,6 @@ const LayoutRadioSelector = ({ data }) => {
14
14
  const handleToggle = React.useCallback(() => {
15
15
  adaptable.api.layoutApi.setLayout(data.Name);
16
16
  }, [isSelected]);
17
- return React.createElement(Radio_1.default, { id: data.Name, disabled: isDisabled, checked: isSelected, onClick: handleToggle });
17
+ return (React.createElement(Radio_1.default, { "data-name": "layout-select-button", "data-value": data.Name, disabled: isDisabled, checked: isSelected, onClick: handleToggle }));
18
18
  };
19
19
  exports.LayoutRadioSelector = LayoutRadioSelector;
@@ -15,5 +15,5 @@ declare class LayoutViewPanelComponent extends React.Component<LayoutViewPanelCo
15
15
  render(): any;
16
16
  private onSaveLayout;
17
17
  }
18
- export declare let LayoutViewPanelControl: import("react-redux").ConnectedComponent<typeof LayoutViewPanelComponent, import("react-redux").Omit<React.ClassAttributes<LayoutViewPanelComponent> & LayoutViewPanelComponentProps, "api" | "Layouts" | "moduleInfo" | "accessLevel" | "viewType" | "onSelectLayout" | "onSaveLayout" | "CurrentDraftLayout" | "CanSave" | "CurrentLayoutName"> & LayoutViewPanelComponentProps>;
18
+ export declare let LayoutViewPanelControl: import("react-redux").ConnectedComponent<typeof LayoutViewPanelComponent, import("react-redux").Omit<React.ClassAttributes<LayoutViewPanelComponent> & LayoutViewPanelComponentProps, "api" | "accessLevel" | "moduleInfo" | "Layouts" | "viewType" | "onSelectLayout" | "onSaveLayout" | "CurrentDraftLayout" | "CanSave" | "CurrentLayoutName"> & LayoutViewPanelComponentProps>;
19
19
  export {};
@@ -19,7 +19,7 @@ const ColumnLabels = (props) => {
19
19
  const flexProps = {
20
20
  [flexDirection === 'row' ? 'alignItems' : 'justifyContent']: 'center',
21
21
  };
22
- return (React.createElement(rebass_1.Flex, Object.assign({ flexDirection: flexDirection }, flexProps, { width: "100%" }),
22
+ return (React.createElement(rebass_1.Flex, Object.assign({ className: "ab-LayoutEditor__Legend", flexDirection: flexDirection }, flexProps, { width: "100%" }),
23
23
  showTitle ? (React.createElement(rebass_1.Text, { mr: 2 }, (0, AdaptableContext_1.useAdaptable)().api.internalApi.getCorrectEnglishVariant('Behaviours:'))) : null,
24
24
  labels.map((l, index) => {
25
25
  const enabled = !!l;
@@ -33,7 +33,7 @@ const AggregationsSectionSummary = () => {
33
33
  let content = null;
34
34
  if (entires.length) {
35
35
  content = (React.createElement(FormLayout_1.default, null, entires.map(([columnId, aggregation]) => (React.createElement(FormLayout_1.FormRow, { key: columnId, label: adaptable.api.columnApi.getFriendlyNameFromColumnId(columnId) },
36
- React.createElement(Tag_1.Tag, null, aggregation /* TODO fix for Bogdan */))))));
36
+ React.createElement(Tag_1.Tag, null, typeof aggregation === 'object' ? aggregation.type : aggregation))))));
37
37
  }
38
38
  else {
39
39
  content = React.createElement(Tag_1.Tag, null, "No Aggregations");
@@ -39,7 +39,8 @@ const ColumnsSectionSummary = () => {
39
39
  const header = (_b = (_a = layout.ColumnHeadersMap) === null || _a === void 0 ? void 0 : _a[columnId]) !== null && _b !== void 0 ? _b : '';
40
40
  const columnWidth = (_c = layout.ColumnWidthMap) === null || _c === void 0 ? void 0 : _c[columnId];
41
41
  const columnPinning = (_d = layout.PinnedColumnsMap) === null || _d === void 0 ? void 0 : _d[columnId];
42
- const agg = (_e = layout.AggregationColumns) === null || _e === void 0 ? void 0 : _e[columnId];
42
+ let agg = (_e = layout.AggregationColumns) === null || _e === void 0 ? void 0 : _e[columnId];
43
+ agg = typeof agg === 'object' ? agg.type : agg;
43
44
  const sortIndex = ((_f = layout === null || layout === void 0 ? void 0 : layout.ColumnSorts) !== null && _f !== void 0 ? _f : []).findIndex((sort) => sort.ColumnId === columnId);
44
45
  const sortOrder = sortIndex != -1
45
46
  ? {
@@ -158,7 +159,7 @@ const ColumnRow = (props) => {
158
159
  const behaviourHeader = 'Column ' + adaptable.api.internalApi.getCorrectEnglishVariant('Behaviours');
159
160
  // width
160
161
  const columnWidth = (_d = props.layout.ColumnWidthMap) === null || _d === void 0 ? void 0 : _d[props.column.columnId];
161
- return (React.createElement(rebass_1.Box, { className: "ab-Layout-Wizard__ColumnRow" },
162
+ return (React.createElement(rebass_1.Box, { "data-name": props.column.columnId, className: "ab-Layout-Wizard__ColumnRow" },
162
163
  React.createElement(rebass_1.Flex, { className: "ab-Layout-Wizard__ColumnRow__Header", mt: 1, mb: 1, onClick: () => setIsExpanded(!isExpanded) },
163
164
  React.createElement(rebass_1.Flex, { mr: 2, alignItems: "center" }, initialHeader),
164
165
  props.column.columnGroup && props.column.columnGroup.groupCount > 1 ? (React.createElement(rebass_1.Box, { className: "ab-Layout-Wizard__ColumnRow__Title", ml: 2, mr: 2, padding: 1 },
@@ -167,24 +168,24 @@ const ColumnRow = (props) => {
167
168
  React.createElement(rebass_1.Flex, { mr: 2 },
168
169
  React.createElement(ColumnLabels_1.ColumnLabels, { showTitle: false, sortable: props.column.sortable, filterable: props.column.filterable, pivotable: props.column.pivotable, moveable: props.column.moveable, groupable: props.column.groupable, aggregatable: props.column.aggregatable })),
169
170
  React.createElement(rebass_1.Box, { flex: 1 }),
170
- React.createElement(SimpleButton_1.default, { ml: 10, padding: 0, iconSize: 24, variant: "text", onClick: () => setIsExpanded(!isExpanded), icon: isExpanded ? 'triangle-up' : 'triangle-down' })),
171
+ React.createElement(SimpleButton_1.default, { "data-name": "expand-collapse", "data-value": isExpanded ? 'expanded' : 'collapsed', ml: 10, padding: 0, iconSize: 24, variant: "text", onClick: () => setIsExpanded(!isExpanded), icon: isExpanded ? 'triangle-up' : 'triangle-down' })),
171
172
  isExpanded && (React.createElement(rebass_1.Box, { className: "ab-Layout-Wizard__ColumnRow__Expanded-Container", mb: 2, padding: 2, mt: 2 },
172
173
  React.createElement(rebass_1.Flex, { mb: 2 },
173
174
  React.createElement(FormLayout_1.default, { width: "100%", mr: 3 },
174
175
  React.createElement(FormLayout_1.FormRow, { label: "Column ID" },
175
176
  React.createElement(Tag_1.Tag, null, props.column.friendlyName)),
176
177
  React.createElement(FormLayout_1.FormRow, { label: "Header" },
177
- React.createElement(Input_1.default, { className: "ab-Layout-Wizard__ColumnRow__Input", placehoder: "Custom name (optional)", onChange: () => {
178
+ React.createElement(Input_1.default, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input", placehoder: "Custom name (optional)", onChange: () => {
178
179
  props.onColumnNameChange(props.column.columnId, event.target.value);
179
180
  }, value: customHeader })),
180
181
  React.createElement(FormLayout_1.FormRow, { label: "Width" },
181
- React.createElement(Input_1.default, { className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column width", onChange: (event) => {
182
+ React.createElement(Input_1.default, { "data-name": "column-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column width", onChange: (event) => {
182
183
  let value = parseFloat(event.target.value);
183
184
  value = typeof value === 'number' && !isNaN(value) ? value : void 0;
184
185
  props.onColumnWidthChange(props.column.columnId, value);
185
186
  }, value: columnWidth })),
186
187
  React.createElement(FormLayout_1.FormRow, { label: "Pinning" },
187
- React.createElement(DropdownButton_1.default, { columns: ['label'], items: pinningOptions }, pinningOptions.find((option) => option.value === columnPinning).label))))))));
188
+ React.createElement(DropdownButton_1.default, { "data-name": "column-pinning", columns: ['label'], items: pinningOptions }, pinningOptions.find((option) => option.value === columnPinning).label))))))));
188
189
  };
189
190
  const ColumnsSection = (props) => {
190
191
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
@@ -45,7 +45,7 @@ const SettingsSection = (props) => {
45
45
  React.createElement(Tabs_1.Tabs.Tab, null, "Grid Type"),
46
46
  React.createElement(Tabs_1.Tabs.Content, null,
47
47
  React.createElement(rebass_1.Flex, { flexDirection: "column" },
48
- React.createElement(Radio_1.default, { onClick: () => handlePivotChange(false), checked: !Boolean(layout.EnablePivot) }, "Table"),
49
- React.createElement(Radio_1.default, { onClick: () => handlePivotChange(true), checked: Boolean(layout.EnablePivot) }, "Pivot"))))));
48
+ React.createElement(Radio_1.default, { "data-name": "layout-type-table", onClick: () => handlePivotChange(false), checked: !Boolean(layout.EnablePivot) }, "Table"),
49
+ React.createElement(Radio_1.default, { "data-name": "layout-type-pivot", onClick: () => handlePivotChange(true), checked: Boolean(layout.EnablePivot) }, "Pivot"))))));
50
50
  };
51
51
  exports.SettingsSection = SettingsSection;
@@ -36,7 +36,7 @@ function PlusMinusRuleWizardSection(props) {
36
36
  useBooleanQuery: (React.createElement(React.Fragment, null,
37
37
  "Use an BooleanQuery if ",
38
38
  React.createElement("i", null, "Scope"),
39
- " is 'Whole Row' - so any data change may be evaluated in a complex BooleanExpression")),
39
+ " is 'All Columns' - so any data change may be evaluated in a complex BooleanExpression")),
40
40
  useObservableQuery: null,
41
41
  useAggregationQuery: null,
42
42
  } }));
@@ -50,11 +50,11 @@ const PlusMinusSettingsWizardSection = (props) => {
50
50
  React.createElement(Tabs_1.Tabs.Content, null,
51
51
  React.createElement(FormLayout_1.default, null,
52
52
  React.createElement(FormLayout_1.FormRow, { label: "Nudge Value" },
53
- React.createElement(Input_1.default, { flex: 1, marginRight: 3, onChange: handleNudgeValueChange, placeholder: "Enter Number", type: "number", value: (_a = data.NudgeValue) !== null && _a !== void 0 ? _a : '' })),
53
+ React.createElement(Input_1.default, { "data-name": "nudge-value", flex: 1, marginRight: 3, onChange: handleNudgeValueChange, placeholder: "Enter Number", type: "number", value: (_a = data.NudgeValue) !== null && _a !== void 0 ? _a : '' })),
54
54
  React.createElement(FormLayout_1.FormRow, { label: "Nudge Type" },
55
55
  React.createElement(rebass_1.Flex, null,
56
- React.createElement(Radio_1.default, { value: "Always", checked: !props.hasCondition, onChange: () => props.onConditionChange(false) }, "Always Apply Nudge"),
57
- React.createElement(Radio_1.default, { marginLeft: 3, value: "Expression", checked: props.hasCondition, onChange: () => props.onConditionChange(true) }, "Create a Rule")))))),
56
+ React.createElement(Radio_1.default, { "data-name": "nudge-type-always", value: "Always", checked: !props.hasCondition, onChange: () => props.onConditionChange(false) }, "Always Apply Nudge"),
57
+ React.createElement(Radio_1.default, { "data-name": "nudge-type-condition", marginLeft: 3, value: "Expression", checked: props.hasCondition, onChange: () => props.onConditionChange(true) }, "Create a Rule")))))),
58
58
  props.hasCondition && (React.createElement(PlusMinusRuleWizardSection_1.PlusMinusRuleWizardSection, { defaultPredicateId: "NonBlanks", onChange: props.onChange }))));
59
59
  };
60
60
  exports.PlusMinusSettingsWizardSection = PlusMinusSettingsWizardSection;
@@ -26,5 +26,5 @@ declare class QueryViewPanelComponent extends React.Component<QueryViewPanelComp
26
26
  onSelectedQueryChanged(queryName: string): void;
27
27
  runQuery(expression?: string): void;
28
28
  }
29
- export declare let QueryViewPanelControl: import("react-redux").ConnectedComponent<typeof QueryViewPanelComponent, import("react-redux").Omit<React.ClassAttributes<QueryViewPanelComponent> & QueryViewPanelComponentProps, "api" | "NamedQueries" | "CurrentQuery" | "moduleInfo" | "accessLevel" | "CachedQueries" | "viewType" | "onAddCachedQuery" | "onRunQuery" | "onShowNamedQueries">>;
29
+ export declare let QueryViewPanelControl: import("react-redux").ConnectedComponent<typeof QueryViewPanelComponent, import("react-redux").Omit<React.ClassAttributes<QueryViewPanelComponent> & QueryViewPanelComponentProps, "api" | "accessLevel" | "NamedQueries" | "CurrentQuery" | "moduleInfo" | "CachedQueries" | "viewType" | "onAddCachedQuery" | "onRunQuery" | "onShowNamedQueries">>;
30
30
  export {};
@@ -36,7 +36,7 @@ const NamedQuerySettingsWizardSection = (props) => {
36
36
  return (React.createElement(WizardPanel_1.default, { "data-name": 'named-query-settings' },
37
37
  React.createElement(FormLayout_1.default, null,
38
38
  React.createElement(FormLayout_1.FormRow, { label: "Name" },
39
- React.createElement(AdaptableInput_1.default, { value: data.Name, autoFocus: true, width: 300, type: "text", placeholder: "Enter Named Query Name", onChange: (e) => handleColumnNameChange(e) })),
39
+ React.createElement(AdaptableInput_1.default, { "data-name": "query-name", value: data.Name, autoFocus: true, width: 300, type: "text", placeholder: "Enter Named Query Name", onChange: (e) => handleColumnNameChange(e) })),
40
40
  ' ',
41
41
  errorMessage ? (React.createElement(FormLayout_1.FormRow, { label: "" },
42
42
  React.createElement(ErrorBox_1.default, null, errorMessage))) : null)));
@@ -34,13 +34,13 @@ const QuickSearchPopupComponent = (props) => {
34
34
  React.createElement(Panel_1.default, { header: props.moduleInfo.FriendlyName + ' Text', style: { height: 'auto' }, variant: "default", borderRadius: "none", marginTop: 3, marginLeft: 2, marginRight: 2 },
35
35
  ' ',
36
36
  React.createElement(FormLayout_1.default, null,
37
- React.createElement(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { type: "text", marginLeft: 2, marginRight: 5, padding: 20, style: { height: '100%' }, placeholder: props.api.internalApi.getAdaptableOptions().searchOptions.quickSearchPlaceholder, value: searchText, OnTextChange: search }))),
37
+ React.createElement(AdaptableFormControlTextClear_1.AdaptableFormControlTextClear, { "data-name": "quick-search-text", type: "text", marginLeft: 2, marginRight: 5, padding: 20, style: { height: '100%' }, placeholder: props.api.internalApi.getAdaptableOptions().searchOptions.quickSearchPlaceholder, value: searchText, OnTextChange: search }))),
38
38
  React.createElement(Panel_1.default, { header: props.api.internalApi.getCorrectEnglishVariant('Behaviour'), style: { height: 'auto' }, variant: "default", borderRadius: "none", marginTop: 3, marginLeft: 2, marginRight: 2 },
39
39
  ' ',
40
40
  React.createElement(rebass_1.Flex, { flexDirection: "column" },
41
41
  React.createElement(FormLayout_1.default, { columns: [1, 2] },
42
42
  React.createElement(FormLayout_1.FormRow, null,
43
- React.createElement(CheckBox_1.CheckBox, { value: "existing", marginLeft: 1, marginRight: 3, checked: state.RunQueryAfterQuickSearch, disabled: StringExtensions_1.default.IsNotNullOrEmpty(searchText), onChange: onQuickSearchBehaviourChange }, "Filter Quick Search Results"))))),
43
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "filter-quick-search-results", value: "existing", marginLeft: 1, marginRight: 3, checked: state.RunQueryAfterQuickSearch, disabled: StringExtensions_1.default.IsNotNullOrEmpty(searchText), onChange: onQuickSearchBehaviourChange }, "Filter Quick Search Results"))))),
44
44
  React.createElement(StyleComponent_1.StyleComponent, { style: { height: '100%' }, api: props.api, Style: props.QuickSearchStyle, UpdateStyle: onUpdateStyle })));
45
45
  };
46
46
  function mapStateToProps(state, ownProps) {