@adaptabletools/adaptable 17.0.0-canary.0 → 17.0.0-canary.2

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 (399) hide show
  1. package/base.css +1203 -1207
  2. package/base.css.map +1 -1
  3. package/index.css +28 -1989
  4. package/index.css.map +1 -1
  5. package/package.json +9 -110
  6. package/src/AdaptableInterfaces/AdaptableNoCodeWizard.d.ts +2 -2
  7. package/src/AdaptableInterfaces/IAdaptable.d.ts +16 -11
  8. package/src/AdaptableOptions/ActionRowOptions.d.ts +25 -3
  9. package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -3
  10. package/src/AdaptableOptions/AdaptableOptions.d.ts +10 -1
  11. package/src/AdaptableOptions/AdaptablePlugin.d.ts +1 -1
  12. package/src/AdaptableOptions/AlertOptions.d.ts +2 -2
  13. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +110 -91
  14. package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +1 -1
  15. package/src/AdaptableOptions/DateInputOptions.d.ts +1 -1
  16. package/src/AdaptableOptions/EditOptions.d.ts +2 -2
  17. package/src/AdaptableOptions/ExportOptions.d.ts +3 -3
  18. package/src/AdaptableOptions/ExpressionOptions.d.ts +2 -2
  19. package/src/AdaptableOptions/Fdc3Options.d.ts +10 -4
  20. package/src/AdaptableOptions/GridFilterOptions.d.ts +18 -0
  21. package/src/AdaptableOptions/LayoutOptions.d.ts +1 -1
  22. package/src/AdaptableOptions/MenuOptions.d.ts +10 -4
  23. package/src/AdaptableOptions/NotificationsOptions.d.ts +1 -1
  24. package/src/AdaptableOptions/QuickSearchOptions.d.ts +4 -4
  25. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -16
  26. package/src/Api/ColumnApi.d.ts +4 -0
  27. package/src/Api/ColumnFilterApi.d.ts +2 -5
  28. package/src/Api/DashboardApi.d.ts +0 -11
  29. package/src/Api/EventApi.d.ts +2 -30
  30. package/src/Api/Events/ActionRowSubmitted.d.ts +1 -5
  31. package/src/Api/Events/AdaptableSearchState.d.ts +2 -7
  32. package/src/Api/Events/Fdc3MessageInfo.d.ts +1 -1
  33. package/src/Api/Events/GridFilterApplied.d.ts +2 -1
  34. package/src/Api/ExportApi.d.ts +0 -4
  35. package/src/Api/GridFilterApi.d.ts +26 -8
  36. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
  37. package/src/Api/Implementation/ColumnApiImpl.js +4 -0
  38. package/src/Api/Implementation/ColumnFilterApiImpl.d.ts +1 -1
  39. package/src/Api/Implementation/ColumnFilterApiImpl.js +3 -3
  40. package/src/Api/Implementation/ConfigApiImpl.js +1 -2
  41. package/src/Api/Implementation/DashboardApiImpl.d.ts +0 -2
  42. package/src/Api/Implementation/DashboardApiImpl.js +0 -14
  43. package/src/Api/Implementation/ExportApiImpl.d.ts +0 -1
  44. package/src/Api/Implementation/ExportApiImpl.js +0 -3
  45. package/src/Api/Implementation/GridApiImpl.js +2 -2
  46. package/src/Api/Implementation/GridFilterApiImpl.d.ts +6 -1
  47. package/src/Api/Implementation/GridFilterApiImpl.js +22 -3
  48. package/src/Api/Implementation/NamedQueryApiImpl.d.ts +2 -5
  49. package/src/Api/Implementation/NamedQueryApiImpl.js +2 -2
  50. package/src/Api/Implementation/OptionsApiImpl.d.ts +2 -1
  51. package/src/Api/Implementation/OptionsApiImpl.js +3 -0
  52. package/src/Api/Implementation/UserInterfaceApiImpl.js +2 -2
  53. package/src/Api/Internal/ActionRowInternalApi.d.ts +1 -0
  54. package/src/Api/Internal/ActionRowInternalApi.js +17 -3
  55. package/src/Api/Internal/AlertInternalApi.d.ts +1 -7
  56. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +2 -2
  57. package/src/Api/Internal/ColumnFilterInternalApi.js +9 -9
  58. package/src/Api/Internal/ColumnInternalApi.d.ts +0 -10
  59. package/src/Api/Internal/ColumnInternalApi.js +0 -28
  60. package/src/Api/Internal/Fdc3InternalApi.d.ts +2 -2
  61. package/src/Api/Internal/FormatColumnInternalApi.js +6 -6
  62. package/src/Api/Internal/GridFilterInternalApi.d.ts +1 -1
  63. package/src/Api/Internal/GridFilterInternalApi.js +5 -5
  64. package/src/Api/Internal/GridInternalApi.js +31 -9
  65. package/src/Api/Internal/LayoutInternalApi.js +8 -0
  66. package/src/Api/Internal/PredicateInternalApi.js +3 -3
  67. package/src/Api/Internal/StyledColumnInternalApi.d.ts +0 -3
  68. package/src/Api/Internal/StyledColumnInternalApi.js +0 -27
  69. package/src/Api/NamedQueryApi.d.ts +6 -5
  70. package/src/Api/OptionsApi.d.ts +5 -1
  71. package/src/PredefinedConfig/AlertState.d.ts +6 -6
  72. package/src/PredefinedConfig/CalculatedColumnState.d.ts +1 -1
  73. package/src/PredefinedConfig/ChartingState.d.ts +4 -1
  74. package/src/PredefinedConfig/Common/AdaptableAlert.d.ts +2 -2
  75. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +1 -1
  76. package/src/PredefinedConfig/Common/AdaptableComparerFunction.d.ts +2 -2
  77. package/src/PredefinedConfig/Common/AdaptableForm.d.ts +2 -2
  78. package/src/PredefinedConfig/Common/AdaptableFormat.d.ts +1 -1
  79. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +2 -2
  80. package/src/PredefinedConfig/Common/AdaptableMessageType.d.ts +1 -1
  81. package/src/PredefinedConfig/Common/AdaptableObject.d.ts +1 -1
  82. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +3 -3
  83. package/src/PredefinedConfig/Common/AdaptablePredicate.js +45 -58
  84. package/src/PredefinedConfig/Common/AdaptableQuery.d.ts +1 -1
  85. package/src/PredefinedConfig/Common/AdaptableScope.d.ts +5 -5
  86. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -1
  87. package/src/PredefinedConfig/Common/ColumnFilter.d.ts +2 -2
  88. package/src/PredefinedConfig/Common/Entitlement.d.ts +1 -1
  89. package/src/PredefinedConfig/Common/Fdc3Context.d.ts +133 -37
  90. package/src/PredefinedConfig/Common/Fdc3Intent.d.ts +4 -4
  91. package/src/PredefinedConfig/Common/Schedule.d.ts +2 -2
  92. package/src/PredefinedConfig/Common/Types.d.ts +15 -15
  93. package/src/PredefinedConfig/ExportState.d.ts +4 -4
  94. package/src/PredefinedConfig/FlashingCellState.d.ts +4 -4
  95. package/src/PredefinedConfig/FormatColumnState.d.ts +4 -27
  96. package/src/PredefinedConfig/NotesState.d.ts +2 -2
  97. package/src/PredefinedConfig/PredefinedConfig.d.ts +0 -5
  98. package/src/PredefinedConfig/ShortcutState.d.ts +1 -1
  99. package/src/PredefinedConfig/StyledColumnState.d.ts +8 -13
  100. package/src/PredefinedConfig/SystemState.d.ts +3 -3
  101. package/src/PredefinedConfig/TeamSharingState.d.ts +3 -3
  102. package/src/PredefinedConfig/ToolPanelState.d.ts +1 -1
  103. package/src/PredefinedConfig/Uuid.d.ts +1 -1
  104. package/src/Redux/ActionsReducers/GridRedux.d.ts +6 -1
  105. package/src/Redux/ActionsReducers/GridRedux.js +18 -0
  106. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +37 -16
  107. package/src/Redux/ActionsReducers/LayoutRedux.js +69 -16
  108. package/src/Redux/Store/AdaptableReduxMerger.d.ts +1 -1
  109. package/src/Redux/Store/AdaptableStore.d.ts +2 -2
  110. package/src/Redux/Store/AdaptableStore.js +46 -19
  111. package/src/Strategy/AdaptableModuleBase.d.ts +0 -1
  112. package/src/Strategy/AdaptableModuleBase.js +0 -30
  113. package/src/Strategy/AlertModule.js +1 -1
  114. package/src/Strategy/ChartingModule.js +8 -5
  115. package/src/Strategy/ColumnFilterModule.d.ts +2 -0
  116. package/src/Strategy/ColumnFilterModule.js +78 -40
  117. package/src/Strategy/CustomSortModule.js +1 -1
  118. package/src/Strategy/FlashingCellModule.js +1 -1
  119. package/src/Strategy/Interface/IModule.d.ts +3 -3
  120. package/src/Strategy/LayoutModule.js +5 -0
  121. package/src/Strategy/StyledColumnModule.js +2 -53
  122. package/src/Utilities/Constants/GeneralConstants.d.ts +3 -0
  123. package/src/Utilities/Constants/GeneralConstants.js +3 -0
  124. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +31 -23
  125. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +1 -1
  126. package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -2
  127. package/src/Utilities/Emitter.d.ts +2 -2
  128. package/src/Utilities/Emitter.js +2 -2
  129. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.d.ts +3 -3
  130. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -3
  131. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.d.ts +1 -1
  132. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +55 -5
  133. package/src/Utilities/ExpressionFunctions/dateUtils.d.ts +1 -0
  134. package/src/Utilities/ExpressionFunctions/dateUtils.js +9 -0
  135. package/src/Utilities/ExpressionFunctions/deepMap.d.ts +3 -3
  136. package/src/Utilities/ExpressionFunctions/deepMap.js +7 -7
  137. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +1 -1
  138. package/src/Utilities/ExpressionFunctions/groupingMap.d.ts +7 -7
  139. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.d.ts +1 -1
  140. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.d.ts +7 -7
  141. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  142. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +11 -1
  143. package/src/Utilities/Extensions/TypeExtensions.d.ts +8 -8
  144. package/src/Utilities/Helpers/AdaptableHelper.js +4 -0
  145. package/src/Utilities/ObjectFactory.js +1 -1
  146. package/src/Utilities/Services/EntitlementService.d.ts +0 -1
  147. package/src/Utilities/Services/EntitlementService.js +0 -8
  148. package/src/Utilities/Services/Interface/IAlertService.d.ts +3 -3
  149. package/src/Utilities/Services/Interface/IEntitlementService.d.ts +0 -6
  150. package/src/Utilities/Services/Interface/IMetamodelService.d.ts +1 -1
  151. package/src/Utilities/Services/LicenseService/index.js +181 -1
  152. package/src/Utilities/Services/MetamodelService.js +1 -1
  153. package/src/Utilities/Services/ModuleService.js +1 -1
  154. package/src/Utilities/license/LicenseDetails.d.ts +1 -1
  155. package/src/Utilities/license/decode.js +65 -1
  156. package/src/Utilities/license/hashing.js +43 -1
  157. package/src/Utilities/logDeprecation.d.ts +5 -3
  158. package/src/View/AdaptablePopover/index.d.ts +1 -0
  159. package/src/View/AdaptablePopover/index.js +1 -1
  160. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.js +1 -1
  161. package/src/View/Alert/AlertEmptyView.js +1 -1
  162. package/src/View/Alert/Utilities/getAvailablePredicates.js +1 -1
  163. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +1 -1
  164. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +20 -4
  165. package/src/View/Alert/Wizard/AlertButtonsEditor.d.ts +1 -1
  166. package/src/View/Alert/Wizard/AlertButtonsEditor.js +21 -24
  167. package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
  168. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
  169. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +1 -1
  170. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +1 -1
  171. package/src/View/Alert/Wizard/AlertScopeWizardSection.d.ts +1 -1
  172. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +1 -1
  173. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
  174. package/src/View/Alert/Wizard/AlertWizard.js +1 -1
  175. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  176. package/src/View/BulkUpdate/BulkUpdatePopup.js +3 -9
  177. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +2 -2
  178. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.d.ts +1 -1
  179. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  180. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.d.ts +1 -1
  181. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +9 -18
  182. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.d.ts +1 -1
  183. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
  184. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +2 -2
  185. package/src/View/CellSummary/CellSummaryStatusBarSubPanelPopover.js +5 -1
  186. package/src/View/CellSummary/CellSummaryViewPanel.js +5 -5
  187. package/src/View/ColumnInfo/ColumnInfo.js +7 -8
  188. package/src/View/Components/AdaptableDateInput/index.d.ts +2 -2
  189. package/src/View/Components/AdaptableInput/index.d.ts +1 -1
  190. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +2 -2
  191. package/src/View/Components/Buttons/ButtonBase/index.d.ts +1 -1
  192. package/src/View/Components/Buttons/ButtonOpen.d.ts +5 -0
  193. package/src/View/Components/Buttons/ButtonOpen.js +7 -0
  194. package/src/View/Components/Buttons/ButtonUnsuspend.d.ts +8 -0
  195. package/src/View/Components/Buttons/ButtonUnsuspend.js +17 -0
  196. package/src/View/Components/CellPopup/index.d.ts +1 -1
  197. package/src/View/Components/ColumnSelector/index.d.ts +1 -1
  198. package/src/View/Components/EntityRulesEditor/index.d.ts +2 -2
  199. package/src/View/Components/EntityRulesEditor/index.js +11 -3
  200. package/src/View/Components/ExternalRenderer.d.ts +1 -1
  201. package/src/View/Components/FilterForm/FilterForm.js +24 -24
  202. package/src/View/Components/FilterForm/QuickFilterForm.js +3 -3
  203. package/src/View/Components/FilterForm/QuickFilterValues.d.ts +2 -2
  204. package/src/View/Components/FilterForm/QuickFilterValues.js +2 -2
  205. package/src/View/Components/FilterForm/Waiting.d.ts +1 -1
  206. package/src/View/Components/Forms/AdaptableFormControlTextClear.d.ts +1 -1
  207. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -1
  208. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +2 -2
  209. package/src/View/Components/PredicateEditor/PredicateEditor.js +10 -10
  210. package/src/View/Components/RangesComponent.js +11 -8
  211. package/src/View/Components/Selectors/ColumnSelector.d.ts +12 -17
  212. package/src/View/Components/Selectors/ColumnSelector.js +23 -42
  213. package/src/View/Components/Selectors/ColumnSelectorOld.d.ts +18 -0
  214. package/src/View/Components/Selectors/ColumnSelectorOld.js +46 -0
  215. package/src/View/Components/Selectors/ColumnValueSelector.d.ts +4 -23
  216. package/src/View/Components/Selectors/ColumnValueSelector.js +34 -126
  217. package/src/View/Components/Selectors/PermittedValuesSelector.d.ts +13 -0
  218. package/src/View/Components/Selectors/PermittedValuesSelector.js +46 -0
  219. package/src/View/Components/StyleComponent.d.ts +2 -3
  220. package/src/View/Components/StyleComponent.js +37 -40
  221. package/src/View/Components/ToolPanel/ToolPanelPopup.js +2 -2
  222. package/src/View/Components/ToolPanel/ToolPanelWrapper.d.ts +1 -1
  223. package/src/View/Components/ValueSelector/index.d.ts +2 -2
  224. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +1 -1
  225. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.d.ts +1 -1
  226. package/src/View/CustomSort/Wizard/CustomSortWizard.js +1 -1
  227. package/src/View/Dashboard/DashboardPopup.js +4 -4
  228. package/src/View/Dashboard/DashboardToolbarFactory.js +0 -1
  229. package/src/View/Dashboard/PinnedDashboard.js +6 -3
  230. package/src/View/Dashboard/PinnedToolbarsSelector.js +1 -1
  231. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +3 -1
  232. package/src/View/DataImport/DataImportPopup.js +1 -1
  233. package/src/View/DataImport/DataImportWizard/DataImportWizard.d.ts +1 -1
  234. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.d.ts +1 -1
  235. package/src/View/DataSet/DataSetViewPanel.js +3 -2
  236. package/src/View/Export/ExportViewPanel.js +12 -9
  237. package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +1 -1
  238. package/src/View/Export/Wizard/ReportNameWizardSection.d.ts +1 -1
  239. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +1 -1
  240. package/src/View/Filter/FilterViewPanel.js +1 -1
  241. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +1 -1
  242. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  243. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +2 -2
  244. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.d.ts +1 -1
  245. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +1 -1
  246. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +8 -8
  247. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
  248. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  249. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +10 -9
  250. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +1 -1
  251. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.d.ts +1 -1
  252. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.d.ts +1 -1
  253. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +1 -1
  254. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +3 -1
  255. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
  256. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +7 -17
  257. package/src/View/GridFilter/GridFilterExpressionEditor.js +62 -9
  258. package/src/View/GridFilter/GridFilterPopup.js +36 -6
  259. package/src/View/GridFilter/GridFilterStatusbar.js +0 -1
  260. package/src/View/GridFilter/GridFilterViewPanel.d.ts +2 -26
  261. package/src/View/GridFilter/GridFilterViewPanel.js +49 -150
  262. package/src/View/GridFilter/NamedQuerySelector.d.ts +16 -0
  263. package/src/View/GridFilter/NamedQuerySelector.js +50 -0
  264. package/src/View/GridFilter/useGridFilterExpressionEditor.d.ts +24 -0
  265. package/src/View/GridFilter/useGridFilterExpressionEditor.js +123 -0
  266. package/src/View/GridFilter/useGridFilterOptionsForExpressionEditor.d.ts +4 -0
  267. package/src/View/GridFilter/useGridFilterOptionsForExpressionEditor.js +27 -0
  268. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +5 -3
  269. package/src/View/Layout/LayoutViewPanel.js +4 -3
  270. package/src/View/Layout/SaveLayoutButton.js +2 -1
  271. package/src/View/Layout/Wizard/LayoutWizard.js +10 -0
  272. package/src/View/Layout/Wizard/sections/FilterSection.js +15 -17
  273. package/src/View/Layout/Wizard/sections/GridFilterSection.d.ts +9 -0
  274. package/src/View/Layout/Wizard/sections/GridFilterSection.js +37 -0
  275. package/src/View/License/LicenseWatermark.js +61 -1
  276. package/src/View/NamedQuery/EditCurrentQueryButton.js +1 -1
  277. package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +1 -1
  278. package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +2 -2
  279. package/src/View/QuickSearch/QuickSearchPopup.js +1 -1
  280. package/src/View/QuickSearch/useQuickSearchDebounced.d.ts +1 -1
  281. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +5 -2
  282. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.d.ts +1 -1
  283. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +6 -5
  284. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +6 -7
  285. package/src/View/Shortcut/Wizard/ShortcutWizard.js +4 -3
  286. package/src/View/SmartEdit/SmartEditViewPanel.js +7 -5
  287. package/src/View/SpecialColumnSettingsWizardStep.js +4 -1
  288. package/src/View/StateManagement/StateManagementPopup.js +6 -6
  289. package/src/View/StatusBar/StatusBarPopup.js +1 -1
  290. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +16 -8
  291. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +20 -23
  292. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +2 -3
  293. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.d.ts +1 -1
  294. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +7 -5
  295. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.d.ts +1 -1
  296. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +4 -4
  297. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +0 -8
  298. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +2 -9
  299. package/src/View/SystemStatus/SystemStatusViewPanel.js +1 -1
  300. package/src/View/SystemStatus/Utilities/getStatusItemStyle.js +1 -1
  301. package/src/View/Theme/ThemeEditor.d.ts +1 -1
  302. package/src/View/Theme/ThemeViewPanel.js +4 -3
  303. package/src/View/UIHelper.d.ts +1 -1
  304. package/src/View/Wizard/ObjectTagsWizardSection.d.ts +1 -1
  305. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +1 -1
  306. package/src/View/Wizard/OnePageWizards.d.ts +2 -2
  307. package/src/agGrid/Adaptable.d.ts +20 -17
  308. package/src/agGrid/Adaptable.js +193 -190
  309. package/src/agGrid/AdaptableLogger.js +15 -15
  310. package/src/agGrid/CheckboxRenderer.d.ts +5 -0
  311. package/src/agGrid/CheckboxRenderer.js +5 -1
  312. package/src/agGrid/ColumnSetupInfo.d.ts +1 -1
  313. package/src/agGrid/agGridHelper.d.ts +0 -1
  314. package/src/agGrid/agGridHelper.js +16 -14
  315. package/src/agGrid/editors/AdaptableDateEditor/InternalAdaptableDateEditor.d.ts +2 -2
  316. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.d.ts +2 -2
  317. package/src/components/CheckBox/index.d.ts +1 -1
  318. package/src/components/ColorPicker/ColorPicker.d.ts +2 -2
  319. package/src/components/ColorPicker/ColorPicker.js +1 -1
  320. package/src/components/ContainerProps.d.ts +2 -2
  321. package/src/components/Dashboard/Dashboard.d.ts +2 -2
  322. package/src/components/Dashboard/DashboardTab.d.ts +1 -1
  323. package/src/components/Dashboard/DashboardToolbar.d.ts +1 -1
  324. package/src/components/Datepicker/index.d.ts +2 -2
  325. package/src/components/Dialog/index.d.ts +2 -2
  326. package/src/components/Dropdown/index.d.ts +2 -2
  327. package/src/components/DropdownButton/DropdownButtonItem.d.ts +1 -1
  328. package/src/components/DropdownButton/index.d.ts +1 -1
  329. package/src/components/DropdownButton/renderItem.d.ts +1 -1
  330. package/src/components/DropdownButton/useExpanded.d.ts +1 -1
  331. package/src/components/EllipsisContainer/index.d.ts +1 -1
  332. package/src/components/EmptyContent/index.d.ts +1 -1
  333. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
  334. package/src/components/ExpressionEditor/NamedQueryContext.d.ts +1 -1
  335. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilder.js +45 -15
  336. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +7 -2
  337. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +48 -33
  338. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.d.ts +1 -1
  339. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +6 -6
  340. package/src/components/ExpressionEditor/QueryBuilder/booleanExpressions.js +2 -0
  341. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +2 -1
  342. package/src/components/ExpressionEditor/QueryBuilder/utils.js +30 -0
  343. package/src/components/ExpressionEditor/index.d.ts +2 -1
  344. package/src/components/ExpressionEditor/index.js +81 -59
  345. package/src/components/FormLayout/index.d.ts +4 -4
  346. package/src/components/Input/NumberInput.d.ts +1 -1
  347. package/src/components/Input/index.d.ts +2 -2
  348. package/src/components/List/ListGroupItem/index.d.ts +2 -2
  349. package/src/components/Modal/Backdrop.d.ts +2 -2
  350. package/src/components/OverlayTrigger/index.d.ts +1 -1
  351. package/src/components/Panel/index.d.ts +1 -1
  352. package/src/components/Radio/index.d.ts +1 -1
  353. package/src/components/ResizeObserver/index.d.ts +1 -1
  354. package/src/components/Select/Select.d.ts +30 -0
  355. package/src/components/Select/Select.js +128 -0
  356. package/src/components/Select/index.d.ts +1 -0
  357. package/src/components/Select/index.js +1 -0
  358. package/src/components/SelectableList/index.d.ts +1 -1
  359. package/src/components/Tabs/index.d.ts +3 -3
  360. package/src/components/Textarea/index.d.ts +1 -1
  361. package/src/components/Toggle/Toggle.d.ts +1 -1
  362. package/src/components/WarningBox/index.d.ts +4 -0
  363. package/src/components/WarningBox/index.js +7 -0
  364. package/src/components/WindowModal/WindowModal.d.ts +2 -2
  365. package/src/components/icons/DefaultIcon.d.ts +1 -1
  366. package/src/components/icons/index.js +2 -0
  367. package/src/components/icons/resume.d.ts +3 -0
  368. package/src/components/icons/resume.js +4 -0
  369. package/src/components/utils/useContainerScrollObserver/index.d.ts +1 -1
  370. package/src/components/utils/uuid.d.ts +1 -1
  371. package/src/metamodel/adaptable-metamodel-model.d.ts +2 -2
  372. package/src/metamodel/adaptable.metamodel.d.ts +330 -27
  373. package/src/metamodel/adaptable.metamodel.js +9435 -1
  374. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  375. package/src/parser/src/predicate/mapQlPredicateToExpression.js +3 -0
  376. package/src/parser/src/predicate/types.d.ts +2 -2
  377. package/src/parser/src/types.d.ts +23 -11
  378. package/src/renderReactRoot.d.ts +2 -4
  379. package/src/renderReactRoot.js +5 -46
  380. package/src/types.d.ts +6 -6
  381. package/themes/dark.css +1 -1
  382. package/themes/dark.css.map +1 -1
  383. package/themes/light.css +1 -1
  384. package/themes/light.css.map +1 -1
  385. package/tsconfig.esm.tsbuildinfo +1 -0
  386. package/publishTimestamp.d.ts +0 -2
  387. package/publishTimestamp.js +0 -1
  388. package/src/AdaptableOptions/FilterOptions.d.ts +0 -216
  389. package/src/AdaptableOptions/FinancePluginOptions.d.ts +0 -6
  390. package/src/AdaptableOptions/FinancePluginOptions.js +0 -1
  391. package/src/Api/Events/ChexboxColumnClicked.d.ts +0 -24
  392. package/src/Api/Events/ChexboxColumnClicked.js +0 -1
  393. package/src/Api/Events/QueryRun.d.ts +0 -15
  394. package/src/Api/Events/QueryRun.js +0 -1
  395. package/src/PredefinedConfig/ConditionalStyleState.d.ts +0 -41
  396. package/src/PredefinedConfig/ConditionalStyleState.js +0 -1
  397. package/version.d.ts +0 -2
  398. package/version.js +0 -1
  399. /package/src/AdaptableOptions/{FilterOptions.js → GridFilterOptions.js} +0 -0
@@ -0,0 +1,123 @@
1
+ import * as React from 'react';
2
+ import { useDispatch, useSelector } from 'react-redux';
3
+ import * as SystemRedux from '../../Redux/ActionsReducers/SystemRedux';
4
+ import { GridFilterModuleId, NamedQueryModuleId } from '../../Utilities/Constants/ModuleConstants';
5
+ import StringExtensions from '../../Utilities/Extensions/StringExtensions';
6
+ import { useAdaptable } from '../AdaptableContext';
7
+ import * as PopupRedux from '../../Redux/ActionsReducers/PopupRedux';
8
+ export const useGridFilterExpressionEditor = () => {
9
+ var _a, _b, _c;
10
+ const adaptable = useAdaptable();
11
+ const dispatch = useDispatch();
12
+ const gridFilter = useSelector((state) => {
13
+ var _a;
14
+ return (_a = state.Layout.Layouts.find((l) => l.Name == state.Layout.CurrentLayout)) === null || _a === void 0 ? void 0 : _a.GridFilter;
15
+ });
16
+ const [isAdaptableReady, setIsAdaptableReady] = React.useState(false);
17
+ const [expression, setExpression] = React.useState(() => {
18
+ return adaptable.api.gridFilterApi.getCurrentGridFilterExpression();
19
+ });
20
+ const namedQueries = (_a = useSelector((state) => state.NamedQuery.NamedQueries)) !== null && _a !== void 0 ? _a : [];
21
+ const cachedQueries = (_b = useSelector((state) => state.System.CachedQueries)) !== null && _b !== void 0 ? _b : [];
22
+ const isSuspended = (_c = gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.IsSuspended) !== null && _c !== void 0 ? _c : false;
23
+ const onAddCachedQuery = (cachedQuery) => {
24
+ dispatch(SystemRedux.SystemCachedQueryAdd(cachedQuery));
25
+ };
26
+ React.useEffect(() => {
27
+ adaptable.api.eventApi.on('AdaptableReady', () => {
28
+ setIsAdaptableReady(true);
29
+ });
30
+ }, []);
31
+ React.useEffect(() => {
32
+ if ((gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.Expression) != expression) {
33
+ setExpression(gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.Expression);
34
+ }
35
+ }, [gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.Expression]);
36
+ const isExpressionValid = expression == '' ||
37
+ adaptable.api.internalApi
38
+ .getQueryLanguageService()
39
+ .validateBoolean(expression, NamedQueryModuleId).isValid;
40
+ const isExpressionNamedQuery = namedQueries.find((sq) => sq.BooleanExpression == expression) != null;
41
+ let availableColumns = adaptable.api.columnApi.getColumns().map((col) => {
42
+ return {
43
+ label: col.friendlyName,
44
+ onClick: () => setExpression(expression + `[${col.columnId}]`),
45
+ };
46
+ });
47
+ const clearQuery = () => {
48
+ adaptable.api.gridFilterApi.clearGridFilter();
49
+ setExpression('');
50
+ };
51
+ const runQuery = (newExpression = expression) => {
52
+ if (StringExtensions.IsNullOrEmpty(newExpression) &&
53
+ StringExtensions.IsNotNullOrEmpty(gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.Expression)) {
54
+ // user pressed enter key with an empty input => clear existing current query
55
+ adaptable.api.gridFilterApi.setGridFilterExpression('');
56
+ return;
57
+ }
58
+ if (!adaptable.api.internalApi
59
+ .getQueryLanguageService()
60
+ .validateBoolean(newExpression, NamedQueryModuleId).isValid) {
61
+ return;
62
+ }
63
+ if (StringExtensions.IsNotNullOrEmpty(expression)) {
64
+ let cachedQuery = {
65
+ expression: expression,
66
+ time: new Date(),
67
+ };
68
+ if (cachedQuery) {
69
+ onAddCachedQuery(cachedQuery);
70
+ }
71
+ }
72
+ adaptable.api.gridFilterApi.setGridFilterExpression(newExpression);
73
+ };
74
+ const gridFilterAccessLevel = React.useMemo(() => {
75
+ return adaptable.api.internalApi
76
+ .getEntitlementService()
77
+ .getEntitlementAccessLevelForModule(GridFilterModuleId);
78
+ }, []);
79
+ const namedQueryModuleAccessLevel = adaptable.api.internalApi
80
+ .getEntitlementService()
81
+ .getEntitlementAccessLevelForModule(NamedQueryModuleId);
82
+ const onShowNamedQueries = (value, popup) => dispatch(PopupRedux.PopupShowScreen(NamedQueryModuleId, popup, {
83
+ action: 'New',
84
+ source: 'Other',
85
+ value,
86
+ }));
87
+ const saveQuery = () => {
88
+ const namedqueryPopuName = adaptable.api.internalApi
89
+ .getModuleService()
90
+ .getModuleById(NamedQueryModuleId).moduleInfo.Popup;
91
+ onShowNamedQueries(expression, namedqueryPopuName);
92
+ };
93
+ const suspendGridFilter = () => {
94
+ adaptable.api.gridFilterApi.suspendGridFilter();
95
+ };
96
+ const unSuspendGridFilter = () => {
97
+ adaptable.api.gridFilterApi.unSuspendGridFilter();
98
+ };
99
+ return {
100
+ namedQueryModuleAccessLevel,
101
+ cachedQueries,
102
+ expression,
103
+ setExpression,
104
+ isExpressionNamedQuery,
105
+ isExpressionValid,
106
+ isSuspended,
107
+ gridFilter,
108
+ isAdaptableReady,
109
+ namedQueries,
110
+ onAddCachedQuery,
111
+ availableColumns,
112
+ runQuery,
113
+ clearQuery,
114
+ onExpand: () => adaptable.api.gridFilterApi.openExpressionEditorForGridFilter(expression),
115
+ saveQuery,
116
+ suspendGridFilter,
117
+ unSuspendGridFilter,
118
+ setGridFilterExpression: (expression) => {
119
+ adaptable.api.gridFilterApi.setGridFilterExpression(expression);
120
+ },
121
+ gridFilterAccessLevel,
122
+ };
123
+ };
@@ -0,0 +1,4 @@
1
+ export declare const useGridFilterOptionsForExpressionEditorProps: () => {
2
+ showQueryBuilder: boolean;
3
+ showExpressionEditor: boolean;
4
+ };
@@ -0,0 +1,27 @@
1
+ import { useAdaptable } from '../AdaptableContext';
2
+ export const useGridFilterOptionsForExpressionEditorProps = () => {
3
+ const adaptable = useAdaptable();
4
+ const gridfilterOptions = adaptable.api.optionsApi.getGridFilterOptions();
5
+ switch (gridfilterOptions.availableFilterEditors) {
6
+ case 'Both':
7
+ return {
8
+ showQueryBuilder: true,
9
+ showExpressionEditor: true,
10
+ };
11
+ case 'QueryBuilder':
12
+ return {
13
+ showQueryBuilder: true,
14
+ showExpressionEditor: false,
15
+ };
16
+ case 'ExpressionEditor':
17
+ return {
18
+ showQueryBuilder: false,
19
+ showExpressionEditor: true,
20
+ };
21
+ default:
22
+ return {
23
+ showQueryBuilder: true,
24
+ showExpressionEditor: true,
25
+ };
26
+ }
27
+ };
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { Flex } from 'rebass';
3
- import version from '../../../../version';
3
+ import { version } from '../../../../package.json';
4
4
  import Panel from '../../../components/Panel';
5
5
  import { Tabs } from '../../../components/Tabs';
6
6
  import ArrayExtensions from '../../../Utilities/Extensions/ArrayExtensions';
@@ -24,6 +24,7 @@ export const GridInfoPopup = (props) => {
24
24
  .getFreeTextColumns()
25
25
  .map((c) => c.ColumnId);
26
26
  const columnFilterDescription = props.api.columnFilterApi.internalApi.columnFiltersToString(props.api.columnFilterApi.getColumnFilters());
27
+ const gridFilterExpression = props.api.gridFilterApi.getCurrentGridFilterExpression();
27
28
  const sorts = ArrayExtensions.IsNotNullOrEmpty(props.api.gridApi.getColumnSorts())
28
29
  ? props.api.gridApi.getColumnSorts().map((gs) => {
29
30
  return props.api.columnApi.getFriendlyNameForColumnId(gs.ColumnId) + ': ' + gs.SortOrder;
@@ -35,6 +36,7 @@ export const GridInfoPopup = (props) => {
35
36
  }
36
37
  returnRows.push(createReadOnlyColItem(colItems, 'Sorted Columns', ArrayExtensions.IsNotNullOrEmpty(sorts) ? sorts.join('; ') : 'None'));
37
38
  returnRows.push(createReadOnlyColItem(colItems, 'Column Filters', columnFilterDescription));
39
+ returnRows.push(createReadOnlyColItem(colItems, 'Grid Filter', gridFilterExpression));
38
40
  returnRows.push(createReadOnlyColItem(colItems, 'All Rows', props.api.gridApi.getRowCount()));
39
41
  returnRows.push(createReadOnlyColItem(colItems, 'Visible Rows', props.api.gridApi.getVisibleRowCount()));
40
42
  returnRows.push(createReadOnlyColItem(colItems, 'Selected Rows', selectedRowInfo === null || selectedRowInfo === void 0 ? void 0 : selectedRowInfo.gridRows.length));
@@ -68,8 +70,8 @@ export const GridInfoPopup = (props) => {
68
70
  React.createElement(Flex, { flexDirection: "column", flex: 1, height: "100%" },
69
71
  React.createElement(Panel, { flex: 1 },
70
72
  React.createElement(Tabs, null,
71
- React.createElement(Tabs.Tab, null, "Info"),
72
- React.createElement(Tabs.Tab, null, "Objects"),
73
+ React.createElement(Tabs.Tab, null, "Grid Summary"),
74
+ React.createElement(Tabs.Tab, null, "Config"),
73
75
  React.createElement(Tabs.Content, null,
74
76
  React.createElement(AdaptableObjectCollection, { margin: 2, colItems: propValueColItems, items: gridSummaries })),
75
77
  React.createElement(Tabs.Content, null,
@@ -2,7 +2,6 @@ import * as React from 'react';
2
2
  import { connect } from 'react-redux';
3
3
  import AdaptableHelper from '../../Utilities/Helpers/AdaptableHelper';
4
4
  import { Flex } from 'rebass';
5
- import DropdownButton from '../../components/DropdownButton';
6
5
  import join from '../../components/utils/join';
7
6
  import * as GeneralConstants from '../../Utilities/Constants/GeneralConstants';
8
7
  import { ButtonSave } from '../Components/Buttons/ButtonSave';
@@ -12,6 +11,7 @@ import { ButtonDelete } from '../Components/Buttons/ButtonDelete';
12
11
  import { ButtonClone } from '../Components/Buttons/ButtonClone';
13
12
  import * as GridRedux from '../../Redux/ActionsReducers/GridRedux';
14
13
  import * as LayoutRedux from '../../Redux/ActionsReducers/LayoutRedux';
14
+ import { Select } from '../../components/Select';
15
15
  export const COMPONENT_LAYOUT_POPUP_NAME = 'LayoutEditorStandalonePopup';
16
16
  class LayoutViewPanelComponent extends React.Component {
17
17
  render() {
@@ -27,7 +27,7 @@ class LayoutViewPanelComponent extends React.Component {
27
27
  const elementType = this.props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
28
28
  return (React.createElement(Flex, { flexDirection: "row", className: `ab-${elementType}__Layout__wrap`, flexWrap: this.props.viewType === 'ToolPanel' ? 'wrap' : 'nowrap' },
29
29
  React.createElement(Flex, { flex: 1 },
30
- React.createElement(DropdownButton, { marginRight: 2, columns: ['label'], style: { width: '100%', fontSize: 'small' }, className: `ab-${elementType}__Layout__select`, items: availableLayoutOptions, disabled: availableLayoutOptions.length == 0 }, layoutEntity ? layoutEntity.Name : null)),
30
+ React.createElement(Select, { style: { width: '100%' }, options: availableLayoutOptions, className: `ab-${elementType}__Layout__select`, value: layoutEntity ? layoutEntity.Name : null, onChange: (layout) => this.props.onSelectLayout(layout) })),
31
31
  React.createElement(Flex, { flexDirection: "row", className: join(this.props.accessLevel == 'ReadOnly' ? GeneralConstants.READ_ONLY_STYLE : '', `ab-${elementType}__Layout__wrap`) },
32
32
  isManualSaveLayout && (React.createElement(ButtonSave, { className: `ab-${elementType}__Layout__save`, onClick: () => this.onSaveLayout(), tooltip: "Save Changes to Current Layout", disabled: !this.props.CanSave, accessLevel: accessLevel })),
33
33
  React.createElement(ButtonEdit, { onClick: () => this.props.api.layoutApi.showLayoutEditor(layoutEntity.Name), tooltip: "Edit Layout", className: `ab-${elementType}__Layout__edit`, accessLevel: accessLevel }),
@@ -59,7 +59,8 @@ function mapDispatchToProps(dispatch) {
59
59
  onSelectLayout: (layoutName) => dispatch(LayoutRedux.LayoutSelect(layoutName)),
60
60
  onSaveLayout: (layout) => {
61
61
  dispatch(LayoutRedux.LayoutSave(layout));
62
- dispatch(GridRedux.LayoutUpdateCurrentDraft(null));
62
+ // Cannot be se to null, because it needs to be up to date when it is updated
63
+ dispatch(GridRedux.LayoutUpdateCurrentDraft(layout));
63
64
  },
64
65
  };
65
66
  }
@@ -15,7 +15,8 @@ export const SaveLayoutButton = () => {
15
15
  const isManualSaveLayout = !adaptable.api.layoutApi.shouldAutoSaveLayouts();
16
16
  const handleSave = React.useCallback((layout) => {
17
17
  dispatch(LayoutRedux.LayoutSave(layout));
18
- dispatch(GridRedux.LayoutUpdateCurrentDraft(null));
18
+ // Cannot be se to null, because it needs to be up to date when it is updated
19
+ dispatch(GridRedux.LayoutUpdateCurrentDraft(layout));
19
20
  }, []);
20
21
  const isSaveEnabled = currentDraftLayout && !adaptable.api.layoutApi.internalApi.areDraftAndCurrentLayoutEqual();
21
22
  if (!isManualSaveLayout) {
@@ -13,6 +13,7 @@ import { RowGroupingSection, RowGroupingSectionSummary } from './sections/RowGro
13
13
  import { AggregationsSection, AggregationsSectionSummary, isAggregationsSectionValid, } from './sections/AggregationsSection';
14
14
  import { SortSection, SortSectionSummary } from './sections/SortSection';
15
15
  import { FilterSection, FilterSectionSummary, isColumnFiltersValid, } from './sections/FilterSection';
16
+ import { GridFilterSection, GridFilterSectionSummary, isGridFiltersValid, } from './sections/GridFilterSection';
16
17
  export const LayoutWizard = (props) => {
17
18
  var _a, _b;
18
19
  const dispatch = useDispatch();
@@ -131,6 +132,15 @@ export const LayoutWizard = (props) => {
131
132
  render: () => (React.createElement(Box, { p: 2, style: { height: '100%' } },
132
133
  React.createElement(FilterSection, { onChange: (newLayout) => setLayout(newLayout) }))),
133
134
  },
135
+ {
136
+ title: 'Grid Filter',
137
+ isVisible: () => layoutSupportedFeatures.GridFilter,
138
+ isValid: (layout) => isGridFiltersValid(layout, adaptable.api),
139
+ details: 'View Grid Filter',
140
+ renderSummary: () => React.createElement(GridFilterSectionSummary, null),
141
+ render: () => (React.createElement(Box, { p: 2, style: { height: '100%' } },
142
+ React.createElement(GridFilterSection, { onChange: (newLayout) => setLayout(newLayout) }))),
143
+ },
134
144
  '-',
135
145
  {
136
146
  details: 'Review your Layout',
@@ -8,13 +8,13 @@ import { useOnePageAdaptableWizardContext } from '../../../Wizard/OnePageAdaptab
8
8
  import { getLayoutFilterViewItems } from '../../../../Strategy/Utilities/Layout/getLayoutFilterViewItems';
9
9
  import { Tag } from '../../../../components/Tag';
10
10
  import { PredicateEditor } from '../../../Components/PredicateEditor/PredicateEditor';
11
- import DropdownButton from '../../../../components/DropdownButton';
12
11
  import FormLayout, { FormRow } from '../../../../components/FormLayout';
12
+ import { ColumnSelector } from '../../../Components/Selectors/ColumnSelector';
13
13
  export const isColumnFiltersValid = (layout) => {
14
14
  var _a, _b;
15
15
  const invalidColumnFilters = (_b = ((_a = layout.ColumnFilters) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.filter((columnFilter) => { var _a; return !((_a = columnFilter === null || columnFilter === void 0 ? void 0 : columnFilter.Predicate) === null || _a === void 0 ? void 0 : _a.PredicateId); });
16
16
  if (invalidColumnFilters.length > 0) {
17
- return 'Please select a predicate for each column filter';
17
+ return 'Please select a Predicate for each Column Filter';
18
18
  }
19
19
  return true;
20
20
  };
@@ -22,7 +22,7 @@ export const FilterSectionSummary = () => {
22
22
  const { data: layout } = useOnePageAdaptableWizardContext();
23
23
  const adaptable = useAdaptable();
24
24
  const fitlerViewItems = getLayoutFilterViewItems(layout, adaptable.api);
25
- return (React.createElement(Box, null, fitlerViewItems.values.length ? (fitlerViewItems.values.map((value) => (React.createElement(Tag, { key: value, mb: 1, mr: 1 }, value)))) : (React.createElement(Tag, null, "No Filters"))));
25
+ return (React.createElement(Box, null, fitlerViewItems.values.length ? (fitlerViewItems.values.map((value) => (React.createElement(Tag, { key: value, mb: 1, mr: 1 }, value)))) : (React.createElement(Tag, null, "No Column Filters"))));
26
26
  };
27
27
  export const FilterSection = (props) => {
28
28
  var _a;
@@ -39,30 +39,28 @@ export const FilterSection = (props) => {
39
39
  }, [layout.ColumnFilters]);
40
40
  const columnsOptions = React.useMemo(() => adaptable.api.columnApi
41
41
  .getFilterableColumns()
42
- .filter(
43
- // filter out columns with filters already
44
- (abColumn) => {
42
+ .filter((abColumn) => {
45
43
  var _a;
46
44
  return !((_a = layout.ColumnFilters) === null || _a === void 0 ? void 0 : _a.some((columnFilter) => abColumn.columnId === columnFilter.ColumnId));
47
45
  })
48
46
  .map(({ columnId }) => ({
49
47
  label: adaptable.api.columnApi.getFriendlyNameForColumnId(columnId),
50
- onClick: () => {
51
- props.onChange(Object.assign(Object.assign({}, layout), { ColumnFilters: [
52
- ...layoutFilters,
53
- {
54
- ColumnId: columnId,
55
- Predicate: null,
56
- },
57
- ] }));
58
- },
48
+ value: columnId,
59
49
  })), [layout, layoutFilters]);
60
50
  return (React.createElement(Tabs, { style: { height: '100%' } },
61
51
  React.createElement(Tabs.Tab, null, "Column Filters"),
62
52
  React.createElement(Tabs.Content, null,
63
53
  React.createElement(FormLayout, { mb: 2 },
64
- React.createElement(FormRow, { label: "Add new filter" },
65
- React.createElement(DropdownButton, { "data-name": "select-column", minWidth: 250, items: columnsOptions, mr: 2, columns: ['label'] }, "Select Column"))),
54
+ React.createElement(FormRow, { label: "Add Column Filter" },
55
+ React.createElement(ColumnSelector, { filterColumn: (column) => column.filterable && !layoutFilters.some((f) => f.ColumnId === column.columnId), value: "none", onChange: (option) => {
56
+ props.onChange(Object.assign(Object.assign({}, layout), { ColumnFilters: [
57
+ ...layoutFilters,
58
+ {
59
+ ColumnId: option,
60
+ Predicate: null,
61
+ },
62
+ ] }));
63
+ } }))),
66
64
  (layoutFilters === null || layoutFilters === void 0 ? void 0 : layoutFilters.length) > 0 && (React.createElement(Box, { p: 0, as: "ul" }, layoutFilters.map((columnFilter) => {
67
65
  const predicateDefs = adaptable.api.columnFilterApi.getFilterPredicateDefsForColumnId(columnFilter.ColumnId);
68
66
  const items = [
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { AdaptableApi, Layout } from '../../../../../types';
3
+ export declare const isGridFiltersValid: (layout: Layout, api: AdaptableApi) => true | string;
4
+ export declare const GridFilterSectionSummary: React.FunctionComponent;
5
+ interface GridFilterSectionProps {
6
+ onChange: (data: Layout) => void;
7
+ }
8
+ export declare const GridFilterSection: React.FunctionComponent<GridFilterSectionProps>;
9
+ export {};
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { Box } from 'rebass';
3
+ import { Tabs } from '../../../../components/Tabs';
4
+ import { useAdaptable } from '../../../AdaptableContext';
5
+ import { useOnePageAdaptableWizardContext } from '../../../Wizard/OnePageAdaptableWizard';
6
+ import { Tag } from '../../../../components/Tag';
7
+ import { ExpressionEditor } from '../../../../components/ExpressionEditor';
8
+ import { GridFilterModuleId } from '../../../../Utilities/Constants/ModuleConstants';
9
+ import StringExtensions from '../../../../Utilities/Extensions/StringExtensions';
10
+ import { useGridFilterOptionsForExpressionEditorProps } from '../../../GridFilter/useGridFilterOptionsForExpressionEditor';
11
+ export const isGridFiltersValid = (layout, api) => {
12
+ var _a;
13
+ const expression = (_a = layout === null || layout === void 0 ? void 0 : layout.GridFilter) === null || _a === void 0 ? void 0 : _a.Expression;
14
+ if (StringExtensions.IsNullOrEmpty(expression)) {
15
+ return true;
16
+ }
17
+ return (api.internalApi.getQueryLanguageService().validateBoolean(expression, GridFilterModuleId)
18
+ .isValid || 'Invalid Expression');
19
+ };
20
+ export const GridFilterSectionSummary = () => {
21
+ var _a, _b;
22
+ const { data: layout } = useOnePageAdaptableWizardContext();
23
+ return (React.createElement(Box, null, React.createElement(Tag, { mb: 1, mr: 1 }, (_b = (_a = layout === null || layout === void 0 ? void 0 : layout.GridFilter) === null || _a === void 0 ? void 0 : _a.Expression) !== null && _b !== void 0 ? _b : 'No Grid Filter')));
24
+ };
25
+ export const GridFilterSection = (props) => {
26
+ var _a, _b;
27
+ const { api } = useAdaptable();
28
+ const { data: layout } = useOnePageAdaptableWizardContext();
29
+ const initialData = React.useMemo(() => api.internalApi.getQueryPreviewData(), []);
30
+ const expressionEditorProps = useGridFilterOptionsForExpressionEditorProps();
31
+ return (React.createElement(Tabs, { style: { height: '100%' } },
32
+ React.createElement(Tabs.Tab, null, "Grid Filters"),
33
+ React.createElement(Tabs.Content, null,
34
+ React.createElement(ExpressionEditor, Object.assign({}, expressionEditorProps, { allowSaveNamedQuery: false, type: 'boolean', module: GridFilterModuleId, value: (_b = (_a = layout === null || layout === void 0 ? void 0 : layout.GridFilter) === null || _a === void 0 ? void 0 : _a.Expression) !== null && _b !== void 0 ? _b : '', onChange: (expression) => {
35
+ props.onChange(Object.assign(Object.assign({}, layout), { GridFilter: Object.assign(Object.assign({}, layout.GridFilter), { Expression: expression }) }));
36
+ }, initialData: initialData, columns: api.columnApi.getQueryableColumns(), namedQueries: api.namedQueryApi.getNamedQueries(), api: api })))));
37
+ };
@@ -1 +1,61 @@
1
- import*as e from"react";import{Logo as t}from"../../components/Logo";import{Flex as r}from"rebass";const o={border:"1px solid var(--ab-color-error)",padding:"5px",fontWeight:600,margin:"5px",fontSize:"14px",alignItems:"center",color:"var(--ab-color-text-on-defaultbackground)",background:"var(--ab-color-defaultbackground)"},n=e=>{const t=[["display","none"],["opacity","0"],["position","absolute"],["position","fixed"],["position","relative"],["visibility","hidden"]];for(const[r,o]of t)if(e.style[r]===o)return!1;return!0};export const LicenseWatermark=i=>{const l=e.useRef(null);return e.useEffect((()=>{const e=setInterval((()=>{var e,t;(null===(e=l.current)||void 0===e?void 0:e.isConnected)||alert("It is not allowed to remove the Adaptable watermark."),n(l.current)||alert("It is not allowed to modify the Adaptable watermark."),(null===(t=null==l?void 0:l.current)||void 0===t?void 0:t.style)&&(l.current.style.border=o.border,l.current.style.padding=o.padding,l.current.style.fontWeight=`${o.fontWeight}`,l.current.style.margin=o.margin,l.current.style.fontSize=o.fontSize,l.current.style.color=o.color,l.current.style.background=o.background,l.current.style.display="flex",l.current.style.position="static",l.current.style.opacity="1",l.current.style.visibility="visible")}),5e3);return()=>clearTimeout(e)}),[]),e.createElement(r,{style:o,ref:l},e.createElement(t,{style:{marginRight:10}}),e.createElement("div",null,i.children))};
1
+ import * as React from 'react';
2
+ import { Logo } from '../../components/Logo';
3
+ import { Flex } from 'rebass';
4
+ const style = {
5
+ border: '1px solid var(--ab-color-error)',
6
+ padding: '5px',
7
+ fontWeight: 600,
8
+ margin: '5px',
9
+ fontSize: '14px',
10
+ alignItems: 'center',
11
+ color: 'var(--ab-color-text-on-defaultbackground)',
12
+ background: 'var(--ab-color-defaultbackground)',
13
+ };
14
+ const isStyleValid = (element) => {
15
+ const notAllowedProperties = [
16
+ ['display', 'none'],
17
+ ['opacity', '0'],
18
+ ['position', 'absolute'],
19
+ ['position', 'fixed'],
20
+ ['position', 'relative'],
21
+ ['visibility', 'hidden'],
22
+ ];
23
+ for (const [prop, value] of notAllowedProperties) {
24
+ if (element.style[prop] === value) {
25
+ return false;
26
+ }
27
+ }
28
+ return true;
29
+ };
30
+ export const LicenseWatermark = (props) => {
31
+ const ref = React.useRef(null);
32
+ React.useEffect(() => {
33
+ const checkWatermark = () => {
34
+ var _a, _b;
35
+ if (!((_a = ref.current) === null || _a === void 0 ? void 0 : _a.isConnected)) {
36
+ alert('It is not allowed to remove the Adaptable watermark.');
37
+ }
38
+ if (!isStyleValid(ref.current)) {
39
+ alert('It is not allowed to modify the Adaptable watermark.');
40
+ }
41
+ if ((_b = ref === null || ref === void 0 ? void 0 : ref.current) === null || _b === void 0 ? void 0 : _b.style) {
42
+ ref.current.style.border = style.border;
43
+ ref.current.style.padding = style.padding;
44
+ ref.current.style.fontWeight = `${style.fontWeight}`;
45
+ ref.current.style.margin = style.margin;
46
+ ref.current.style.fontSize = style.fontSize;
47
+ ref.current.style.color = style.color;
48
+ ref.current.style.background = style.background;
49
+ ref.current.style.display = 'flex';
50
+ ref.current.style.position = 'static';
51
+ ref.current.style.opacity = '1';
52
+ ref.current.style.visibility = 'visible';
53
+ }
54
+ };
55
+ const timerId = setInterval(checkWatermark, 5000);
56
+ return () => clearTimeout(timerId);
57
+ }, []);
58
+ return (React.createElement(Flex, { style: style, ref: ref },
59
+ React.createElement(Logo, { style: { marginRight: 10 } }),
60
+ React.createElement("div", null, props.children)));
61
+ };
@@ -5,7 +5,7 @@ export const EditGridFilterButton = () => {
5
5
  const adaptable = useAdaptable();
6
6
  const handleClick = React.useCallback((event) => {
7
7
  event.stopPropagation();
8
- adaptable.api.gridFilterApi.expandGridFilterEditor();
8
+ adaptable.api.gridFilterApi.openExpressionEditorForGridFilter();
9
9
  }, []);
10
10
  return React.createElement(SimpleButton, { variant: "text", iconSize: 15, onClick: handleClick, icon: "edit" });
11
11
  };
@@ -8,7 +8,7 @@ import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableW
8
8
  import AdaptableInput from '../../Components/AdaptableInput';
9
9
  import { Tag } from '../../../components/Tag';
10
10
  export const isValidNamedQuerySettings = (data, api) => {
11
- const validationResult = api.namedQueryApi.isValidNamedQueryName(data);
11
+ const validationResult = api.namedQueryApi.isValidNamedQuery(data);
12
12
  const ErrorMessage = !validationResult.valid ? validationResult.message : null;
13
13
  if (!ErrorMessage) {
14
14
  return true;
@@ -30,14 +30,14 @@ export function NamedQueryWizard(props) {
30
30
  return (React.createElement(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, onFinish: handleFinish, sections: [
31
31
  {
32
32
  title: 'Expression',
33
- details: "Specify the Named Query's Expression",
33
+ details: "Build the Named Query's Expression",
34
34
  renderSummary: renderNamedQueryExpressionSummary,
35
35
  isValid: isValidNamedQueryExpression,
36
36
  render: () => React.createElement(NamedQueryExpressionWizardSection, { onChange: setNamedQuery }),
37
37
  },
38
38
  {
39
39
  title: 'Query Name',
40
- details: 'Specify a unique name for the Named Query',
40
+ details: 'Specify a unique Name for the Named Query',
41
41
  renderSummary: renderNamedQuerySettingsSummary,
42
42
  isValid: isValidNamedQuerySettings,
43
43
  render: () => {
@@ -36,7 +36,7 @@ const QuickSearchPopupComponent = (props) => {
36
36
  React.createElement(Flex, { flexDirection: "column" },
37
37
  React.createElement(FormLayout, { columns: [1, 2] },
38
38
  React.createElement(FormRow, null,
39
- React.createElement(CheckBox, { "data-name": "filter-quick-search-results", value: "existing", marginLeft: 1, marginRight: 3, checked: state.RunQueryAfterQuickSearch, disabled: StringExtensions.IsNotNullOrEmpty(searchText), onChange: onQuickSearchBehaviourChange }, "Filter Quick Search Results"))))),
39
+ React.createElement(CheckBox, { "data-name": "filter-quick-search-results", value: "existing", marginLeft: 1, marginRight: 3, checked: state.RunQueryAfterQuickSearch, disabled: StringExtensions.IsNotNullOrEmpty(searchText), onChange: onQuickSearchBehaviourChange }, "Filter using Quick Search Results"))))),
40
40
  React.createElement(StyleComponent, { style: { height: '100%' }, api: props.api, Style: props.QuickSearchStyle, UpdateStyle: onUpdateStyle })));
41
41
  };
42
42
  function mapStateToProps(state, ownProps) {
@@ -1,5 +1,5 @@
1
1
  import { QuickSearchRunAction } from '../../Redux/ActionsReducers/QuickSearchRedux';
2
- declare type UseQuickSearchProps = {
2
+ type UseQuickSearchProps = {
3
3
  onRunQuickSearch: (quickSearchText: string) => QuickSearchRunAction;
4
4
  QuickSearchText: string;
5
5
  };
@@ -3,8 +3,8 @@ import { Box } from 'rebass';
3
3
  import { Tabs } from '../../../../components/Tabs';
4
4
  import FormLayout, { FormRow } from '../../../../components/FormLayout';
5
5
  import Input from '../../../../components/Input';
6
- import DropdownButton from '../../../../components/DropdownButton';
7
6
  import { CheckBox } from '../../../../components/CheckBox';
7
+ import { Select } from '../../../../components/Select';
8
8
  const MESSAGE_TYPES = ['Success', 'Info', 'Warning', 'Error'];
9
9
  export const ScheduleSettingsReminder = (props) => {
10
10
  var _a, _b, _c, _d, _e;
@@ -39,7 +39,10 @@ export const ScheduleSettingsReminder = (props) => {
39
39
  React.createElement(FormRow, { label: "Message" },
40
40
  React.createElement(Input, { "data-name": "message", width: 300, onChange: handleMessageChange, placeholder: "Enter Reminder Message", type: "string", value: (_b = props.reminderSchedule) === null || _b === void 0 ? void 0 : _b.Message })),
41
41
  React.createElement(FormRow, { label: "Type" },
42
- React.createElement(DropdownButton, { "data-name": "message-type", style: { width: 300 }, columns: ['label'], placeholder: "Select Option", items: messageTypes }, ((_c = props.reminderSchedule) === null || _c === void 0 ? void 0 : _c.MessageType) || 'Select Option')),
42
+ React.createElement(Box, { maxWidth: 300 },
43
+ React.createElement(Select, { "data-name": "message-type", placeholder: "Select Option", options: messageTypes, value: (_c = props.reminderSchedule) === null || _c === void 0 ? void 0 : _c.MessageType, onChange: (value) => {
44
+ props.onChange(Object.assign(Object.assign({}, props.reminderSchedule), { MessageType: value }));
45
+ } }))),
43
46
  React.createElement(FormRow, { label: "" },
44
47
  React.createElement(CheckBox, { "data-name": "display-notification", checked: (_d = props.reminderSchedule) === null || _d === void 0 ? void 0 : _d.DisplayNotification, onChange: handleDisplayNotificationChange }, "Show the Reminder as a Notification")),
45
48
  React.createElement(FormRow, { label: "" },
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { ReportSchedule, Report } from '../../../../PredefinedConfig/ExportState';
3
2
  import { CustomDestination } from '../../../../AdaptableOptions/ExportOptions';
3
+ import { Report, ReportSchedule } from '../../../../PredefinedConfig/ExportState';
4
4
  interface ReportScheduleProps {
5
5
  report: ReportSchedule;
6
6
  onChange: (reminder: ReportSchedule) => void;
@@ -1,15 +1,14 @@
1
1
  import * as React from 'react';
2
2
  import { Box } from 'rebass';
3
- import { Tabs } from '../../../../components/Tabs';
4
3
  import FormLayout, { FormRow } from '../../../../components/FormLayout';
5
- import DropdownButton from '../../../../components/DropdownButton';
4
+ import { Select } from '../../../../components/Select';
5
+ import { Tabs } from '../../../../components/Tabs';
6
6
  const DESTINATIONS = ['Excel', 'CSV', 'Clipboard', 'JSON'];
7
7
  export const ScheduleSettingsReport = (props) => {
8
8
  var _a, _b;
9
9
  const reportOptions = props.allReports.map((report) => ({
10
10
  label: report.Name,
11
11
  value: report.Name,
12
- onClick: () => props.onChange(Object.assign(Object.assign({}, props.report), { ReportName: report.Name })),
13
12
  }));
14
13
  const customDestinationNames = props.customDestinations.map((destination) => destination.name);
15
14
  const destinationOptions = [...DESTINATIONS, ...customDestinationNames].map((destination) => ({
@@ -25,7 +24,9 @@ export const ScheduleSettingsReport = (props) => {
25
24
  React.createElement(Tabs.Content, null,
26
25
  React.createElement(FormLayout, null,
27
26
  React.createElement(FormRow, { label: "Export" },
28
- React.createElement(DropdownButton, { "data-name": "select-report", columns: ['label'], style: { width: 300 }, items: reportOptions }, ((_a = props === null || props === void 0 ? void 0 : props.report) === null || _a === void 0 ? void 0 : _a.ReportName) || 'Select Report')),
27
+ React.createElement(Box, { maxWidth: 300 },
28
+ React.createElement(Select, { "data-name": "select-export", options: reportOptions, value: (_a = props === null || props === void 0 ? void 0 : props.report) === null || _a === void 0 ? void 0 : _a.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange(Object.assign(Object.assign({}, props.report), { ReportName: value })) }))),
29
29
  React.createElement(FormRow, { label: "Destination" },
30
- React.createElement(DropdownButton, { "data-name": "select-destination", columns: ['label'], style: { width: 300 }, items: destinationOptions }, ((_b = props === null || props === void 0 ? void 0 : props.report) === null || _b === void 0 ? void 0 : _b.ExportDestination) || 'Select Destination')))))));
30
+ React.createElement(Box, { maxWidth: 300 },
31
+ React.createElement(Select, { "data-name": "select-destination", options: destinationOptions, value: (_b = props === null || props === void 0 ? void 0 : props.report) === null || _b === void 0 ? void 0 : _b.ExportDestination, placeholder: "Select Destination", onChange: (value) => props.onChange(Object.assign(Object.assign({}, props.report), { ExportDestination: value })) }))))))));
31
32
  };
@@ -5,10 +5,10 @@ import { shortcutOperationList } from '../shortcutOperations';
5
5
  import FormLayout, { FormRow } from '../../../components/FormLayout';
6
6
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
7
7
  import { Tabs } from '../../../components/Tabs';
8
- import DropdownButton from '../../../components/DropdownButton';
9
8
  import { SummaryText } from '../../../View/Wizard/OnePageAdaptableWizard';
10
9
  import { Tag } from '../../../components/Tag';
11
10
  import HelpBlock from '../../../components/HelpBlock';
11
+ import { Select } from '../../../components/Select';
12
12
  export const isSettingsValid = (data) => {
13
13
  const shortcutKey = data.ShortcutKey && typeof data.ShortcutKey === 'string' ? '' : 'Shortcut key is not selected';
14
14
  const shortcutValue = typeof data.ShortcutValue === 'number' ? '' : 'Shortcut value is not specified';
@@ -45,12 +45,11 @@ export const ShortcutSettingsWizard = (props) => {
45
45
  const optionActions = shortcutOperationList.map((operation) => ({
46
46
  value: operation,
47
47
  label: operation,
48
- onClick: () => handleOperationChange(operation),
48
+ // onClick: () => handleOperationChange(operation),
49
49
  }));
50
50
  const optionKeys = props.availableKeys.map((key) => ({
51
51
  value: key,
52
52
  label: key,
53
- onClick: () => handleKeyChange(key),
54
53
  }));
55
54
  return (React.createElement(Box, { "data-name": "shortcut-column-settings" },
56
55
  React.createElement(Tabs, { autoFocus: false },
@@ -59,20 +58,20 @@ export const ShortcutSettingsWizard = (props) => {
59
58
  React.createElement(FormLayout, null,
60
59
  React.createElement(FormRow, null,
61
60
  ' ',
62
- React.createElement(HelpBlock, { fontSize: 2, mb: 0 }, "Keyboard key that, when pressed, triggers the shortcut")),
61
+ React.createElement(HelpBlock, { fontSize: 2, mb: 0 }, "Keyboard key that, when pressed, triggers the Shortcut")),
63
62
  React.createElement(FormRow, { label: "Key" },
64
63
  React.createElement(Flex, { flexDirection: "row" },
65
- React.createElement(DropdownButton, { "data-name": "shortcut-key", style: { flex: 1 }, marginRight: 3, items: optionKeys, columns: ['label'] }, shortcut.ShortcutKey || 'Select Key'))),
64
+ React.createElement(Select, { "data-name": "shortcut-key", placeholder: "Select Key", options: optionKeys, onChange: (key) => handleKeyChange(key), value: shortcut.ShortcutKey || 'Select Key' }))),
66
65
  React.createElement(FormRow, null,
67
66
  ' ',
68
67
  React.createElement(HelpBlock, { fontSize: 2, mb: 0 }, "Mathematical operation performed on Cell's current value (using the Shortcut's 'value') - used to calculate the Cell's new total")),
69
68
  React.createElement(FormRow, { label: "Operation" },
70
69
  React.createElement(Flex, { flexDirection: "row" },
71
- React.createElement(DropdownButton, { "data-name": "shortcut-operation", style: { flex: 1 }, marginRight: 3, items: optionActions, columns: ['label'] }, shortcut.ShortcutOperation || 'Select Operation'))),
70
+ React.createElement(Select, { "data-name": "shortcut-operation", placeholder: "Select Operation", options: optionActions, onChange: (operation) => handleOperationChange(operation), value: shortcut.ShortcutOperation }))),
72
71
  React.createElement(FormRow, null,
73
72
  ' ',
74
73
  React.createElement(HelpBlock, { fontSize: 2, mb: 0 }, "Number that is used - together with the 'Operation' and the current cell value - to calculate the new total for the cell")),
75
74
  React.createElement(FormRow, { label: "Value" },
76
75
  React.createElement(Flex, { flexDirection: "row" },
77
- React.createElement(Input, { "data-name": "shortcut-value", flex: 1, marginRight: 3, onChange: handleOperationValueChange, placeholder: "Enter Number", type: "number", value: (_a = shortcut.ShortcutValue) !== null && _a !== void 0 ? _a : '' }))))))));
76
+ React.createElement(Input, { "data-name": "shortcut-value", style: { maxWidth: 100 }, flex: 1, marginRight: 3, onChange: handleOperationValueChange, placeholder: "Enter Number", type: "number", value: (_a = shortcut.ShortcutValue) !== null && _a !== void 0 ? _a : '' }))))))));
78
77
  };