@adaptabletools/adaptable 23.0.0-canary.3 → 23.0.0-canary.5

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 (277) hide show
  1. package/index.css +116 -61
  2. package/package.json +9 -4
  3. package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -4
  4. package/src/AdaptableOptions/EditOptions.d.ts +2 -2
  5. package/src/AdaptableOptions/FilterOptions.d.ts +0 -7
  6. package/src/AdaptableState/Common/AdaptableForm.d.ts +18 -1
  7. package/src/AdaptableState/Common/AdaptableForm.js +31 -0
  8. package/src/AdaptableState/Common/AggregationColumns.d.ts +14 -6
  9. package/src/AdaptableState/Common/AggregationColumns.js +27 -2
  10. package/src/AdaptableState/Common/CellDataChangedInfo.d.ts +3 -2
  11. package/src/AdaptableState/Common/ColumnScope.d.ts +4 -0
  12. package/src/AdaptableState/Common/Enums.d.ts +5 -10
  13. package/src/AdaptableState/Common/Enums.js +4 -10
  14. package/src/AdaptableState/PlusMinusState.d.ts +3 -3
  15. package/src/AdaptableState/ShortcutState.d.ts +2 -6
  16. package/src/AdaptableState/StyledColumnState.d.ts +3 -5
  17. package/src/AdaptableState/ThemeState.d.ts +33 -28
  18. package/src/Api/EventApi.d.ts +14 -1
  19. package/src/Api/Events/ThemeChanged.d.ts +6 -0
  20. package/src/Api/Events/ThemeSelected.d.ts +11 -0
  21. package/src/Api/Events/ThemeSelected.js +1 -0
  22. package/src/Api/Implementation/EventApiImpl.js +4 -0
  23. package/src/Api/Implementation/LayoutApiImpl.d.ts +0 -2
  24. package/src/Api/Implementation/LayoutApiImpl.js +0 -14
  25. package/src/Api/Implementation/LayoutHelpers.d.ts +2 -0
  26. package/src/Api/Implementation/LayoutHelpers.js +29 -7
  27. package/src/Api/Implementation/ThemeApiImpl.d.ts +3 -2
  28. package/src/Api/Implementation/ThemeApiImpl.js +19 -15
  29. package/src/Api/Internal/EventInternalApi.d.ts +2 -0
  30. package/src/Api/Internal/EventInternalApi.js +8 -1
  31. package/src/Api/Internal/StyledColumnInternalApi.d.ts +4 -4
  32. package/src/Api/Internal/StyledColumnInternalApi.js +4 -4
  33. package/src/Api/Internal/ThemeInternalApi.d.ts +0 -1
  34. package/src/Api/Internal/ThemeInternalApi.js +0 -10
  35. package/src/Api/LayoutApi.d.ts +1 -8
  36. package/src/Api/ThemeApi.d.ts +6 -2
  37. package/src/Redux/ActionsReducers/ThemeRedux.d.ts +3 -3
  38. package/src/Strategy/CalculatedColumnModule.js +3 -1
  39. package/src/Strategy/FormatColumnModule.js +14 -7
  40. package/src/Strategy/LayoutModule.js +13 -8
  41. package/src/Strategy/StyledColumnModule.js +64 -36
  42. package/src/Utilities/Constants/ReduxConstants.d.ts +2 -2
  43. package/src/Utilities/Constants/ReduxConstants.js +1 -14
  44. package/src/Utilities/Helpers/FormatHelper.js +20 -1
  45. package/src/Utilities/Helpers/SparklineOptionsHelper.d.ts +7 -0
  46. package/src/Utilities/Helpers/SparklineOptionsHelper.js +65 -0
  47. package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +23 -1
  48. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +204 -0
  49. package/src/Utilities/Helpers/ThemeHelpers.d.ts +5 -0
  50. package/src/Utilities/Helpers/ThemeHelpers.js +38 -0
  51. package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +19 -0
  52. package/src/Utilities/Helpers/percentBarPreviewHelper.js +143 -0
  53. package/src/Utilities/ObjectFactory.d.ts +1 -3
  54. package/src/Utilities/ObjectFactory.js +0 -8
  55. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +1 -0
  56. package/src/Utilities/Services/CalculatedColumnExpressionService.js +7 -0
  57. package/src/Utilities/Services/CalculatedColumnSyntheticChange.d.ts +4 -0
  58. package/src/Utilities/Services/CalculatedColumnSyntheticChange.js +115 -0
  59. package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +1 -0
  60. package/src/Utilities/Services/ThemeService.js +1 -1
  61. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +17 -16
  62. package/src/View/Alert/Wizard/AlertButtonsEditor.js +114 -103
  63. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +13 -14
  64. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +55 -55
  65. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +3 -2
  66. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +2 -2
  67. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +31 -39
  68. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +3 -4
  69. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +9 -13
  70. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +30 -17
  71. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +7 -9
  72. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +3 -3
  73. package/src/View/CellSummary/CellSummaryViewPanel.js +1 -1
  74. package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +3 -10
  75. package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
  76. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +35 -52
  77. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +4 -31
  78. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.d.ts +5 -0
  79. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/PreviewChartSection.js +21 -0
  80. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.d.ts +1 -0
  81. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +10 -7
  82. package/src/View/Comments/CommentsEditor.js +1 -1
  83. package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +1 -1
  84. package/src/View/Components/ModuleProfile.js +1 -1
  85. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
  86. package/src/View/Components/Popups/WindowPopups/windowFactory.js +0 -1
  87. package/src/View/Components/RangesComponent.d.ts +7 -2
  88. package/src/View/Components/RangesComponent.js +94 -22
  89. package/src/View/Components/Selectors/ColumnSelector.js +5 -0
  90. package/src/View/Components/StyleComponent.d.ts +1 -0
  91. package/src/View/Components/StyleComponent.js +1 -1
  92. package/src/View/Components/ValueSelector/index.js +70 -57
  93. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +8 -13
  94. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +8 -8
  95. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  96. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +11 -12
  97. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +6 -4
  98. package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +3 -2
  99. package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +5 -15
  100. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +24 -26
  101. package/src/View/Export/Wizard/ReportNameWizardSection.js +10 -13
  102. package/src/View/Export/Wizard/ReportRowsWizardSection.js +20 -22
  103. package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +2 -0
  104. package/src/View/Export/Wizard/ScheduledReportSettings.js +13 -13
  105. package/src/View/Export/Wizard/ScheduledReportWizard.js +4 -5
  106. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +8 -6
  107. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +24 -23
  108. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +20 -11
  109. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +21 -5
  110. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -4
  111. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +7 -0
  112. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +117 -12
  113. package/src/View/FormatColumn/Wizard/FormatColumnPreview.d.ts +15 -0
  114. package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +66 -0
  115. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +4 -0
  116. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +30 -0
  117. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +13 -8
  118. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  119. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +3 -1
  120. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +62 -13
  121. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +5 -3
  122. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.d.ts +2 -0
  123. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +15 -0
  124. package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.d.ts +10 -0
  125. package/src/View/FreeTextColumn/Wizard/FreeTextColumnDefinitionWizardSection.js +53 -0
  126. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +2 -3
  127. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +33 -68
  128. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +15 -11
  129. package/src/View/Layout/LayoutViewPanel.js +23 -21
  130. package/src/View/Layout/TransposedPopup.js +2 -2
  131. package/src/View/Layout/Wizard/LayoutWizard.js +3 -3
  132. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +2 -3
  133. package/src/View/Layout/Wizard/sections/AggregationsSection.js +115 -26
  134. package/src/View/Layout/Wizard/sections/ColumnsSection.js +79 -79
  135. package/src/View/Layout/Wizard/sections/FilterSection.js +31 -32
  136. package/src/View/Layout/Wizard/sections/GridFilterSection.js +11 -11
  137. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +1 -2
  138. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +101 -52
  139. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +9 -8
  140. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +4 -4
  141. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +36 -33
  142. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +2 -2
  143. package/src/View/Layout/Wizard/sections/RowSummarySection.js +95 -73
  144. package/src/View/Layout/Wizard/sections/SettingsSection.js +4 -5
  145. package/src/View/Layout/Wizard/sections/SortSection.js +2 -2
  146. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -1
  147. package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +9 -14
  148. package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +1 -3
  149. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.d.ts +4 -0
  150. package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +43 -13
  151. package/src/View/PlusMinus/Wizard/PlusMinusScopeWizardSection.js +11 -18
  152. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +2 -6
  153. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +6 -22
  154. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +15 -21
  155. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +2 -2
  156. package/src/View/Shortcut/Wizard/ShortcutScopeWizardSection.js +11 -18
  157. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +17 -6
  158. package/src/View/Shortcut/Wizard/ShortcutWizard.js +3 -3
  159. package/src/View/Shortcut/shortcutOperations.d.ts +3 -0
  160. package/src/View/Shortcut/shortcutOperations.js +28 -0
  161. package/src/View/SpecialColumnSettingsWizardStep.js +9 -8
  162. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +5 -0
  163. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +24 -15
  164. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +10 -2
  165. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +96 -16
  166. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +14 -0
  167. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +45 -24
  168. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +2 -3
  169. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +108 -33
  170. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +21 -13
  171. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.d.ts +5 -0
  172. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +121 -23
  173. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.d.ts +1 -0
  174. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +34 -11
  175. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.d.ts +5 -0
  176. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +86 -12
  177. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.d.ts +5 -0
  178. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +121 -34
  179. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.d.ts +1 -0
  180. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +55 -75
  181. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +5 -0
  182. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.js +16 -0
  183. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +7 -13
  184. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +5 -5
  185. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +4 -3
  186. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +5 -4
  187. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +12 -14
  188. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +5 -0
  189. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.js +16 -0
  190. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.d.ts +3 -0
  191. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +31 -3
  192. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +9 -0
  193. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +58 -0
  194. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.d.ts +10 -0
  195. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +30 -0
  196. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.d.ts +10 -0
  197. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +91 -0
  198. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.d.ts +8 -0
  199. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +52 -0
  200. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.d.ts +8 -0
  201. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +53 -0
  202. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +18 -0
  203. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +58 -0
  204. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.d.ts +10 -0
  205. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +126 -0
  206. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +12 -5
  207. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts +1 -5
  208. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +52 -29
  209. package/src/View/SystemStatus/Utilities/getStatusItemStyle.js +1 -1
  210. package/src/View/Theme/ThemePopup.d.ts +2 -14
  211. package/src/View/Theme/ThemePopup.js +1 -36
  212. package/src/View/UIHelper.js +1 -1
  213. package/src/View/Wizard/OnePageAdaptableWizard.js +7 -21
  214. package/src/View/renderWithAdaptableContext.js +2 -3
  215. package/src/agGrid/AdaptableAgGrid.d.ts +1 -1
  216. package/src/agGrid/AdaptableAgGrid.js +38 -43
  217. package/src/agGrid/AgGridAdapter.d.ts +1 -1
  218. package/src/agGrid/AgGridAdapter.js +27 -17
  219. package/src/agGrid/AgGridColumnAdapter.js +10 -19
  220. package/src/agGrid/AgGridMenuAdapter.d.ts +0 -1
  221. package/src/agGrid/AgGridMenuAdapter.js +20 -37
  222. package/src/agGrid/buildValueAggregationMenuItem.d.ts +19 -0
  223. package/src/agGrid/buildValueAggregationMenuItem.js +111 -0
  224. package/src/agGrid/cellRenderers/IconRenderer.d.ts +6 -0
  225. package/src/agGrid/cellRenderers/IconRenderer.js +43 -15
  226. package/src/agGrid/createAgGridIcon.d.ts +10 -0
  227. package/src/agGrid/createAgGridIcon.js +16 -0
  228. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +11 -6
  229. package/src/components/Combobox/VirtualizedList.js +5 -5
  230. package/src/components/Combobox/comboboxUtils.d.ts +4 -1
  231. package/src/components/Combobox/comboboxUtils.js +2 -0
  232. package/src/components/Combobox/index.d.ts +1 -0
  233. package/src/components/Combobox/index.js +35 -15
  234. package/src/components/DragAndDropContext/UnusedPanel.js +1 -1
  235. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
  236. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  237. package/src/components/Input/NumberInput.js +1 -1
  238. package/src/components/Panel/index.js +1 -1
  239. package/src/components/SimpleButton/index.js +4 -4
  240. package/src/components/Toggle/Toggle.js +1 -1
  241. package/src/components/Toggle/ToggleGroup.js +1 -1
  242. package/src/components/Tree/TreeDropdown/index.js +2 -6
  243. package/src/env.js +2 -2
  244. package/src/layout-manager/src/LayoutManagerModel.d.ts +5 -1
  245. package/src/layout-manager/src/index.js +2 -9
  246. package/src/metamodel/adaptable.metamodel.d.ts +39 -46
  247. package/src/metamodel/adaptable.metamodel.js +1 -1
  248. package/src/types.d.ts +5 -5
  249. package/themes/dark.css +1 -68
  250. package/themes/light.css +1 -5
  251. package/tsconfig.esm.tsbuildinfo +1 -1
  252. package/src/AdaptableState/Common/FilterActionOnDataChange.d.ts +0 -17
  253. package/src/AdaptableState/Common/FilterActionOnDataChange.js +0 -4
  254. package/src/Aggregation/ParameterizedAggregationRegistry.d.ts +0 -35
  255. package/src/Aggregation/ParameterizedAggregationRegistry.js +0 -63
  256. package/src/Aggregation/definitions/weightedAverageAggregationDefinition.d.ts +0 -3
  257. package/src/Aggregation/definitions/weightedAverageAggregationDefinition.js +0 -55
  258. package/src/Aggregation/parameterizedAggregationColumnMenu.d.ts +0 -8
  259. package/src/Aggregation/parameterizedAggregationColumnMenu.js +0 -137
  260. package/src/Aggregation/parameterizedAggregationHeader.d.ts +0 -13
  261. package/src/Aggregation/parameterizedAggregationHeader.js +0 -60
  262. package/src/Aggregation/parameterizedAggregationHelpers.d.ts +0 -23
  263. package/src/Aggregation/parameterizedAggregationHelpers.js +0 -111
  264. package/src/Aggregation/parameterizedAggregationWizardHelpers.d.ts +0 -9
  265. package/src/Aggregation/parameterizedAggregationWizardHelpers.js +0 -66
  266. package/src/Aggregation/validateParameterizedAggregations.d.ts +0 -4
  267. package/src/Aggregation/validateParameterizedAggregations.js +0 -20
  268. package/src/View/AdaptableComputedCSSVarsContext.d.ts +0 -12
  269. package/src/View/AdaptableComputedCSSVarsContext.js +0 -29
  270. package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.d.ts +0 -12
  271. package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.js +0 -43
  272. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.d.ts +0 -5
  273. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +0 -28
  274. package/src/View/Theme/VariantSelector.d.ts +0 -8
  275. package/src/View/Theme/VariantSelector.js +0 -20
  276. package/src/components/Select/CSSNumericVariableWatch.d.ts +0 -11
  277. package/src/components/Select/CSSNumericVariableWatch.js +0 -45
@@ -1,17 +1,15 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Box, Flex } from '../../../../../components/Flex';
3
- const getText = (options) => {
4
- let text = '';
5
- if (options && options.includes('CellValue')) {
6
- text += '20';
7
- }
8
- if (options && options.includes('PercentageValue')) {
9
- text += ' (50%)';
10
- }
11
- return text.trim();
12
- };
3
+ import { getVariableColor } from '../../../../../Utilities/Helpers/StyleHelper';
4
+ const stripClassName = 'twa:h-6 twa:w-[128px] twa:rounded twa:overflow-hidden twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
5
+ /**
6
+ * Compact range-colour strip for Percent Bar range summaries.
7
+ * Cell text / origin / font are shown in `StyledColumnPercentBarPreview`.
8
+ */
13
9
  export const PercentBarStylePreview = (props) => {
14
- const cellText = getText(props.cellText);
15
- const tooltip = getText(props.toolTipText);
16
- return (_jsxs(Box, { title: tooltip, className: "twa:flex-1", children: [_jsx(Flex, { style: { backgroundColor: props.backgroundColor }, className: `twa:flex-1 ${cellText ? 'twa:h-[8px]' : 'twa:h-[18px]'}`, children: _jsx(Box, { className: "twa:basis-[50%]", style: { background: props.barBackgroundColor } }) }), cellText && _jsx(Box, { className: "twa:text-3", children: cellText })] }));
10
+ const trackColor = props.backgroundColor ? getVariableColor(props.backgroundColor) : undefined;
11
+ const barColor = props.barBackgroundColor
12
+ ? getVariableColor(props.barBackgroundColor)
13
+ : undefined;
14
+ return (_jsx(Box, { className: stripClassName, children: _jsx(Flex, { className: "twa:h-full twa:relative", style: trackColor ? { backgroundColor: trackColor } : undefined, children: barColor && (_jsx(Box, { className: "twa:absolute twa:top-0 twa:left-0 twa:h-full twa:w-1/2", style: { background: barColor } })) }) }));
17
15
  };
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { RangeBarStyle } from '../../../../../AdaptableState/StyledColumnState';
3
+ export declare const RangeBarRangesSummaryPreview: React.FunctionComponent<{
4
+ rangeStyle: RangeBarStyle;
5
+ }>;
@@ -0,0 +1,16 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Flex } from '../../../../../components/Flex';
3
+ import { Tag } from '../../../../../components/Tag';
4
+ import { getVariableColor } from '../../../../../Utilities/Helpers/StyleHelper';
5
+ const stripClassName = 'twa:h-6 twa:w-[128px] twa:rounded twa:overflow-hidden twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
6
+ export const RangeBarRangesSummaryPreview = ({ rangeStyle }) => {
7
+ const ranges = rangeStyle.CellRanges ?? [];
8
+ if (!ranges.length) {
9
+ return null;
10
+ }
11
+ let postfix = '';
12
+ if (rangeStyle.RangeValueType === 'Percentage') {
13
+ postfix = '%';
14
+ }
15
+ return (_jsx(Flex, { flexDirection: "column", className: "twa:gap-2", children: ranges.map((range, i) => (_jsxs(Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: [_jsxs(Tag, { children: [range.Min, postfix, " \u2192 ", range.Max, postfix] }), _jsx(Box, { className: stripClassName, style: { background: getVariableColor(range.Color) } })] }, i))) }));
16
+ };
@@ -8,3 +8,6 @@ import { StyledColumn } from '../../../../../types';
8
8
  export declare const StyledColumnBadgePreview: React.FunctionComponent<React.PropsWithChildren<{
9
9
  data: StyledColumn;
10
10
  }>>;
11
+ export declare const StyledColumnBadgePreviewCard: React.FunctionComponent<React.PropsWithChildren<{
12
+ data: StyledColumn;
13
+ }>>;
@@ -1,13 +1,29 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { DEFAULT_INTEGER_DISPLAY_VALUE, DEFAULT_STRING_DISPLAY_VALUE, } from '../../../../../Utilities/Constants/GeneralConstants';
3
+ import { convertAdaptableStyleToCSS } from '../../../../../Utilities/Helpers/StyleHelper';
3
4
  import { useAdaptable } from '../../../../AdaptableContext';
4
5
  import { Badge } from '../../../../Components/Badge';
5
6
  import { Box } from '../../../../../components/Flex';
7
+ import { Card } from '../../../../../components/Card';
8
+ import { Tag } from '../../../../../components/Tag';
6
9
  const OVERFLOW_CLASS = {
7
10
  Truncate: 'ab-Badge__wrapper--truncate',
8
11
  Wrap: 'ab-Badge__wrapper--wrap',
9
12
  Scroll: 'ab-Badge__wrapper--scroll',
10
13
  };
14
+ const PREVIEW_CELL_CLASS = 'ab-BadgePreviewCell twa:min-w-[140px] twa:min-h-[32px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
15
+ const resolveBadgeRowJustify = (alignment) => {
16
+ switch (alignment) {
17
+ case 'Center':
18
+ return 'center';
19
+ case 'Right':
20
+ return 'flex-end';
21
+ case 'Left':
22
+ return 'flex-start';
23
+ default:
24
+ return null;
25
+ }
26
+ };
11
27
  /**
12
28
  * Pixel-parity preview of the badges as they would render in the cell.
13
29
  * Uses the same wrapper/badge classes (and the same `Badge` component) as
@@ -17,13 +33,24 @@ export const StyledColumnBadgePreview = ({ data }) => {
17
33
  const adaptable = useAdaptable();
18
34
  const badgeStyle = data.BadgeStyle;
19
35
  if (!badgeStyle || !badgeStyle.Badges || badgeStyle.Badges.length === 0) {
20
- return _jsx("div", { children: "No Badges Defined" });
36
+ return _jsx(Tag, { children: "No Badges Defined" });
21
37
  }
22
38
  const overflow = badgeStyle.OverflowMode ?? 'Truncate';
23
39
  const wrapperClassName = `ab-Badge__wrapper ${OVERFLOW_CLASS[overflow]}`;
24
40
  const spacing = typeof badgeStyle.Spacing === 'number' ? badgeStyle.Spacing : null;
41
+ const rowJustify = resolveBadgeRowJustify(badgeStyle.Font?.Alignment);
42
+ const cellStyle = badgeStyle.Cell ? convertAdaptableStyleToCSS(badgeStyle.Cell) : undefined;
25
43
  const dataType = adaptable.api.columnApi.getColumnDataTypeForColumnId(data.ColumnId);
26
- return (_jsx(Box, { children: _jsx("div", { className: wrapperClassName, style: spacing != null ? { ['--ab-cmp-badge__spacing']: `${spacing}px` } : undefined, children: badgeStyle.Badges.map((badge, index) => {
44
+ const wrapperStyle = {
45
+ ...(spacing != null ? { ['--ab-cmp-badge__spacing']: `${spacing}px` } : {}),
46
+ ...(rowJustify
47
+ ? {
48
+ justifyContent: rowJustify,
49
+ width: '100%',
50
+ }
51
+ : {}),
52
+ };
53
+ return (_jsx(Box, { className: PREVIEW_CELL_CLASS, style: cellStyle, children: _jsx("div", { className: wrapperClassName, style: wrapperStyle, children: badgeStyle.Badges.map((badge, index) => {
27
54
  const badgeValue = badge.IconOnly
28
55
  ? ''
29
56
  : dataType === 'number'
@@ -32,3 +59,4 @@ export const StyledColumnBadgePreview = ({ data }) => {
32
59
  return (_jsx(Badge, { icon: badge.Icon, pillStyle: badge.PillStyle, iconPosition: badge.IconPosition, shape: badge.Shape, density: badgeStyle.Density ?? 'Normal', iconGap: badge.IconGap, children: badgeValue }, index));
33
60
  }) }) }));
34
61
  };
62
+ export const StyledColumnBadgePreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnBadgePreview, { data: data }) })] }));
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { BulletChartStyle, StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
3
+ export declare const StyledColumnBulletPreview: React.FunctionComponent<React.PropsWithChildren<{
4
+ data: StyledColumn;
5
+ }>>;
6
+ export declare const StyledColumnBulletPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
7
+ data: StyledColumn;
8
+ }>>;
9
+ export declare const hasBulletChartRangesConfigured: (bullet: BulletChartStyle | undefined) => boolean;
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { convertAdaptableStyleToCSS } from '../../../../../Utilities/Helpers/StyleHelper';
3
+ import { Box, Flex } from '../../../../../components/Flex';
4
+ import { Card } from '../../../../../components/Card';
5
+ import { Tag } from '../../../../../components/Tag';
6
+ import { StyledColumnBulletChartListPreview } from './StyledColumnChartListPreviews';
7
+ const PREVIEW_CELL_CLASS = 'ab-BulletPreviewCell twa:inline-flex twa:items-center twa:min-w-[180px] twa:min-h-[36px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
8
+ const getBulletPreviewSample = (bullet) => {
9
+ const ranges = bullet.CellRanges ?? [];
10
+ const numeric = ranges.filter((range) => typeof range.Min === 'number' && typeof range.Max === 'number');
11
+ let min = 0;
12
+ let max = 100;
13
+ if (numeric.length) {
14
+ min = Math.min(...numeric.map((range) => range.Min));
15
+ max = Math.max(...numeric.map((range) => range.Max));
16
+ }
17
+ const span = max - min || 1;
18
+ // Matches the schematic bar width (~58%) in `StyledColumnBulletChartListPreview`.
19
+ const sampleValue = min + span * 0.58;
20
+ const valueFraction = (sampleValue - min) / span;
21
+ return {
22
+ sampleValue,
23
+ valueFraction: Math.max(0, Math.min(1, valueFraction)),
24
+ };
25
+ };
26
+ const formatBulletPreviewCellText = (sampleValue, valueFraction, bullet) => {
27
+ const parts = [];
28
+ if (bullet.CellText?.includes('CellValue')) {
29
+ parts.push(Number.isInteger(sampleValue) ? String(sampleValue) : sampleValue.toFixed(1));
30
+ }
31
+ if (bullet.CellText?.includes('PercentageValue')) {
32
+ parts.push(`${(valueFraction * 100).toFixed(0)}%`);
33
+ }
34
+ return parts.join(' ');
35
+ };
36
+ const BulletChartPreviewContent = ({ bullet, }) => {
37
+ const { sampleValue, valueFraction } = getBulletPreviewSample(bullet);
38
+ const cellText = formatBulletPreviewCellText(sampleValue, valueFraction, bullet);
39
+ const hasCellText = Boolean(bullet.CellText?.length && cellText);
40
+ const textPosition = bullet.CellTextPosition ?? 'Below';
41
+ const fontStyle = bullet.Font ? convertAdaptableStyleToCSS(bullet.Font) : undefined;
42
+ const isVertical = bullet.Orientation === 'Vertical';
43
+ const chartEl = _jsx(StyledColumnBulletChartListPreview, { bullet: bullet });
44
+ const textEl = hasCellText ? (_jsx(Box, { className: "ab-BulletChart__text twa:text-2 twa:leading-tight twa:truncate twa:max-w-full", style: fontStyle, children: cellText })) : null;
45
+ if (hasCellText && textPosition === 'Merged') {
46
+ return (_jsxs(Box, { className: "ab-BulletChart__wrapper twa:relative twa:inline-flex", children: [chartEl, _jsx(Box, { className: "ab-BulletChart__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate twa:pointer-events-none", style: fontStyle, children: cellText })] }));
47
+ }
48
+ return (_jsxs(Flex, { className: "ab-BulletChart__wrapper", flexDirection: "column", alignItems: isVertical ? 'center' : 'stretch', style: { justifyContent: 'center', gap: hasCellText ? 2 : 0 }, children: [hasCellText && textPosition === 'Above' && textEl, chartEl, hasCellText && textPosition === 'Below' && textEl] }));
49
+ };
50
+ export const StyledColumnBulletPreview = ({ data }) => {
51
+ const bullet = data.BulletChartStyle;
52
+ if (!bullet) {
53
+ return _jsx(Tag, { children: "No Bullet Chart Style" });
54
+ }
55
+ return (_jsx(Box, { className: PREVIEW_CELL_CLASS, children: _jsx(BulletChartPreviewContent, { bullet: bullet }) }));
56
+ };
57
+ export const StyledColumnBulletPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnBulletPreview, { data: data }) })] }));
58
+ export const hasBulletChartRangesConfigured = (bullet) => Boolean(bullet?.CellRanges?.length);
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
3
+ import { AdaptableApi } from '../../../../../Api/AdaptableApi';
4
+ export declare const StyledColumnGradientPreview: React.FunctionComponent<React.PropsWithChildren<{
5
+ data: StyledColumn;
6
+ api?: AdaptableApi;
7
+ }>>;
8
+ export declare const StyledColumnGradientPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
9
+ data: StyledColumn;
10
+ }>>;
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '../../../../../components/Flex';
3
+ import { Card } from '../../../../../components/Card';
4
+ import { Tag } from '../../../../../components/Tag';
5
+ import { useAdaptable } from '../../../../AdaptableContext';
6
+ import { getGradientPreviewCellStyle, getGradientPreviewSampleValues, hasGradientRangesConfigured, } from '../../../../../Utilities/Helpers/StyledColumnGradientHelper';
7
+ const formatPreviewValue = (value) => {
8
+ if (Number.isInteger(value)) {
9
+ return value.toLocaleString();
10
+ }
11
+ return value.toLocaleString(undefined, { maximumFractionDigits: 2 });
12
+ };
13
+ export const StyledColumnGradientPreview = ({ data, api: apiProp }) => {
14
+ const adaptable = useAdaptable();
15
+ const api = apiProp ?? adaptable.api;
16
+ const gs = data.GradientStyle;
17
+ if (!gs) {
18
+ return _jsx(Tag, { children: "No Gradient Style" });
19
+ }
20
+ if (!hasGradientRangesConfigured(gs)) {
21
+ return _jsx(Tag, { children: "Define ranges before previewing" });
22
+ }
23
+ const sampleValues = getGradientPreviewSampleValues(data, api);
24
+ if (!sampleValues.length) {
25
+ return _jsx(Tag, { children: "No preview available" });
26
+ }
27
+ const rowNode = api.gridApi?.getRowNodeForIndex(0) ?? null;
28
+ return (_jsx(Flex, { alignItems: "stretch", className: "twa:flex-wrap twa:gap-2", children: sampleValues.map((value) => (_jsx(Box, { className: "ab-GradientPreviewCell twa:px-2 twa:py-1 twa:min-w-[56px] twa:text-2 twa:text-center twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]", style: getGradientPreviewCellStyle(value, data, api, rowNode), children: formatPreviewValue(value) }, value))) }));
29
+ };
30
+ export const StyledColumnGradientPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnGradientPreview, { data: data }) })] }));
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
3
+ export declare const DEFAULT_ICON_STYLE_SIZE = 18;
4
+ export declare const DEFAULT_ICON_STYLE_GAP = 4;
5
+ export declare const StyledColumnIconPreview: React.FunctionComponent<React.PropsWithChildren<{
6
+ data: StyledColumn;
7
+ }>>;
8
+ export declare const StyledColumnIconPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
9
+ data: StyledColumn;
10
+ }>>;
@@ -0,0 +1,91 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { isAdaptableCustomIcon, isAdaptableElementIcon, isAdaptableSystemIcon, } from '../../../../../components/Icon';
3
+ import { resolveEffectiveIconStyleMappings } from '../../../../../agGrid/cellRenderers/IconRenderer';
4
+ import { AdaptableIconComponent } from '../../../../Components/AdaptableIconComponent';
5
+ import { Box } from '../../../../../components/Flex';
6
+ import { Card } from '../../../../../components/Card';
7
+ import { Tag } from '../../../../../components/Tag';
8
+ import { convertAdaptableStyleToCSS, hasCellBoxStyle, } from '../../../../../Utilities/Helpers/StyleHelper';
9
+ export const DEFAULT_ICON_STYLE_SIZE = 18;
10
+ export const DEFAULT_ICON_STYLE_GAP = 4;
11
+ const PREVIEW_CELL_CLASS = 'ab-IconPreviewCell twa:inline-flex twa:items-center twa:min-w-[140px] twa:min-h-[32px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
12
+ const isInlineGlyph = (spec) => typeof spec === 'string';
13
+ const isAdaptableIconSpec = (spec) => !!spec &&
14
+ (isAdaptableSystemIcon(spec) ||
15
+ isAdaptableCustomIcon(spec) ||
16
+ isAdaptableElementIcon(spec));
17
+ function getIconCellChromeCss(cell) {
18
+ if (!cell || !hasCellBoxStyle(cell)) {
19
+ return {};
20
+ }
21
+ return convertAdaptableStyleToCSS(cell);
22
+ }
23
+ const renderIconSpecForPreview = (spec, size) => {
24
+ if (isInlineGlyph(spec)) {
25
+ return (_jsx("span", { className: "ab-IconStyle__glyph", style: {
26
+ fontSize: size,
27
+ lineHeight: 1,
28
+ display: 'inline-flex',
29
+ alignItems: 'center',
30
+ justifyContent: 'center',
31
+ }, children: spec }));
32
+ }
33
+ if (isAdaptableIconSpec(spec)) {
34
+ return _jsx(AdaptableIconComponent, { icon: spec });
35
+ }
36
+ return null;
37
+ };
38
+ const buildPreviewText = (mapping, iconStyle) => {
39
+ const cellTextTokens = iconStyle.CellText ?? [];
40
+ const formatted = String(mapping.Key);
41
+ const textParts = [];
42
+ if (cellTextTokens.includes('CellValue') && formatted) {
43
+ textParts.push(formatted);
44
+ }
45
+ if (cellTextTokens.includes('IconDescription') && mapping.Description) {
46
+ textParts.push(mapping.Description);
47
+ }
48
+ return textParts.length > 0 ? textParts.join(' · ') : undefined;
49
+ };
50
+ const IconCellPreviewTree = ({ iconStyle, mapping }) => {
51
+ const size = iconStyle.Size ?? DEFAULT_ICON_STYLE_SIZE;
52
+ const gap = iconStyle.Gap ?? DEFAULT_ICON_STYLE_GAP;
53
+ const textPosition = iconStyle.CellTextPosition ?? 'After';
54
+ const text = buildPreviewText(mapping, iconStyle);
55
+ const fontStyle = iconStyle.Font ? convertAdaptableStyleToCSS(iconStyle.Font) : undefined;
56
+ const iconNode = renderIconSpecForPreview(mapping.Icon, size);
57
+ const textNode = text ? (_jsx("span", { className: "ab-IconStyle__text", style: { lineHeight: 1.2, ...fontStyle }, children: text })) : null;
58
+ if (!iconNode && !textNode) {
59
+ return null;
60
+ }
61
+ if (!textNode) {
62
+ return _jsx(_Fragment, { children: iconNode });
63
+ }
64
+ if (!iconNode) {
65
+ return _jsx(_Fragment, { children: textNode });
66
+ }
67
+ const isStacked = textPosition === 'Above' || textPosition === 'Below';
68
+ const children = textPosition === 'Before' || textPosition === 'Above'
69
+ ? [textNode, iconNode]
70
+ : [iconNode, textNode];
71
+ return (_jsx("span", { className: "ab-IconStyle__wrapper", style: {
72
+ display: 'inline-flex',
73
+ flexDirection: isStacked ? 'column' : 'row',
74
+ alignItems: 'center',
75
+ gap,
76
+ lineHeight: 1,
77
+ }, children: children }));
78
+ };
79
+ export const StyledColumnIconPreview = ({ data }) => {
80
+ const iconStyle = data.IconStyle;
81
+ if (!iconStyle) {
82
+ return _jsx(Tag, { children: "No Icon Style" });
83
+ }
84
+ const effectiveMappings = resolveEffectiveIconStyleMappings(iconStyle);
85
+ if (effectiveMappings.length === 0) {
86
+ return _jsx(Tag, { children: "Define mappings to preview" });
87
+ }
88
+ const previewCellChrome = getIconCellChromeCss(iconStyle.Cell);
89
+ return (_jsx(Box, { className: PREVIEW_CELL_CLASS, style: previewCellChrome, children: _jsx(IconCellPreviewTree, { iconStyle: iconStyle, mapping: effectiveMappings[0] }) }));
90
+ };
91
+ export const StyledColumnIconPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnIconPreview, { data: data }) })] }));
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
3
+ export declare const StyledColumnPercentBarPreview: React.FunctionComponent<React.PropsWithChildren<{
4
+ data: StyledColumn;
5
+ }>>;
6
+ export declare const StyledColumnPercentBarPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
7
+ data: StyledColumn;
8
+ }>>;
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { convertAdaptableStyleToCSS } from '../../../../../Utilities/Helpers/StyleHelper';
3
+ import { formatPercentBarPreviewCellText, getPercentBarPreviewGeometry, getPercentBarPreviewResolvedBarColor, getPercentBarPreviewSampleValues, getPercentBarPreviewScale, getPercentBarPreviewTrackColor, hasPercentBarRangesConfigured, } from '../../../../../Utilities/Helpers/percentBarPreviewHelper';
4
+ import { Box, Flex } from '../../../../../components/Flex';
5
+ import { Card } from '../../../../../components/Card';
6
+ import { Tag } from '../../../../../components/Tag';
7
+ const PREVIEW_CELL_CLASS = 'ab-PercentBarPreviewCell twa:w-[72px] twa:min-h-[32px] twa:px-1 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
8
+ const PercentBarPreviewCell = ({ styledColumn, value, min, max }) => {
9
+ const pb = styledColumn.PercentBarStyle;
10
+ const { barLeftPercent, barWidthPercent, percentageValue, barColor } = getPercentBarPreviewGeometry(value, pb, min, max);
11
+ const trackColor = getPercentBarPreviewTrackColor(pb);
12
+ const fillColor = getPercentBarPreviewResolvedBarColor(barColor);
13
+ const cellText = formatPercentBarPreviewCellText(value, percentageValue, pb);
14
+ const hasCellText = Boolean(pb.CellText?.length && cellText);
15
+ const textPosition = pb.CellTextPosition ?? 'Below';
16
+ const fontStyle = pb.Font ? convertAdaptableStyleToCSS(pb.Font) : undefined;
17
+ const textEl = hasCellText ? (_jsx(Box, { className: "ab-PercentBar__text twa:text-2 twa:leading-tight twa:truncate", style: fontStyle, children: cellText })) : null;
18
+ const barEl = (_jsxs(Box, { className: "ab-PercentBar__bar twa:relative twa:flex-1 twa:min-h-[6px]", style: trackColor ? { background: getPercentBarPreviewResolvedBarColor(trackColor) } : undefined, children: [fillColor && (_jsx(Box, { className: "ab-PercentBar__barInside twa:absolute twa:top-0 twa:h-full", style: {
19
+ background: fillColor,
20
+ left: `${barLeftPercent.toFixed(2)}%`,
21
+ width: `${barWidthPercent.toFixed(2)}%`,
22
+ } })), hasCellText && textPosition === 'Merged' && (_jsx(Box, { className: "ab-PercentBar__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate", style: fontStyle, children: cellText }))] }));
23
+ return (_jsxs(Flex, { className: `ab-PercentBar__wrapper ${PREVIEW_CELL_CLASS}`, flexDirection: "column", style: { justifyContent: 'center', height: hasCellText && textPosition !== 'Merged' ? '100%' : undefined }, children: [hasCellText && textPosition === 'Above' && textEl, barEl, hasCellText && textPosition === 'Below' && textEl] }));
24
+ };
25
+ export const StyledColumnPercentBarPreview = ({ data }) => {
26
+ const pb = data.PercentBarStyle;
27
+ if (!pb) {
28
+ return _jsx(Tag, { children: "No Percent Bar Style" });
29
+ }
30
+ if (!hasPercentBarRangesConfigured(pb)) {
31
+ return _jsx(Tag, { children: "Define ranges before previewing" });
32
+ }
33
+ let min;
34
+ let max;
35
+ if (pb.ColumnComparison) {
36
+ const cmpMin = Number(pb.ColumnComparison.MinValue);
37
+ const cmpMax = Number(pb.ColumnComparison.MaxValue);
38
+ if (!Number.isNaN(cmpMin) && !Number.isNaN(cmpMax)) {
39
+ min = cmpMin;
40
+ max = cmpMax;
41
+ }
42
+ else {
43
+ ({ min, max } = getPercentBarPreviewScale(pb));
44
+ }
45
+ }
46
+ else {
47
+ ({ min, max } = getPercentBarPreviewScale(pb));
48
+ }
49
+ const sampleValues = getPercentBarPreviewSampleValues(pb);
50
+ return (_jsx(Flex, { alignItems: "stretch", className: "twa:flex-wrap twa:gap-2", children: sampleValues.map((value) => (_jsx(PercentBarPreviewCell, { styledColumn: data, value: value, min: min, max: max }, value))) }));
51
+ };
52
+ export const StyledColumnPercentBarPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnPercentBarPreview, { data: data }) })] }));
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
3
+ export declare const StyledColumnRangeBarPreview: React.FunctionComponent<React.PropsWithChildren<{
4
+ data: StyledColumn;
5
+ }>>;
6
+ export declare const StyledColumnRangeBarPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
7
+ data: StyledColumn;
8
+ }>>;
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex } from '../../../../../components/Flex';
3
+ import { Card } from '../../../../../components/Card';
4
+ import { Tag } from '../../../../../components/Tag';
5
+ import { StyledColumnRangeBarListPreview } from './StyledColumnChartListPreviews';
6
+ const PREVIEW_CELL_CLASS = 'ab-RangeBarPreviewCell twa:inline-flex twa:items-center twa:min-w-[180px] twa:min-h-[36px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
7
+ const getRangeBarPreviewSample = (range) => {
8
+ let min = 0;
9
+ let max = 100;
10
+ if (typeof range.Min === 'number' && typeof range.Max === 'number') {
11
+ min = range.Min;
12
+ max = range.Max;
13
+ }
14
+ const span = max - min || 1;
15
+ // Matches the value-marker position (~72%) in `StyledColumnRangeBarListPreview`.
16
+ const sampleValue = min + span * 0.72;
17
+ const valueFraction = (sampleValue - min) / span;
18
+ return {
19
+ sampleValue,
20
+ valueFraction: Math.max(0, Math.min(1, valueFraction)),
21
+ };
22
+ };
23
+ const formatRangeBarPreviewCellText = (sampleValue, valueFraction, range) => {
24
+ const parts = [];
25
+ if (range.CellText?.includes('CellValue')) {
26
+ parts.push(Number.isInteger(sampleValue) ? String(sampleValue) : sampleValue.toFixed(1));
27
+ }
28
+ if (range.CellText?.includes('PercentageValue')) {
29
+ parts.push(`${(valueFraction * 100).toFixed(0)}%`);
30
+ }
31
+ return parts.join(' ');
32
+ };
33
+ const RangeBarPreviewContent = ({ range }) => {
34
+ const { sampleValue, valueFraction } = getRangeBarPreviewSample(range);
35
+ const cellText = formatRangeBarPreviewCellText(sampleValue, valueFraction, range);
36
+ const hasCellText = Boolean(range.CellText?.length && cellText);
37
+ const textPosition = range.CellTextPosition ?? 'Below';
38
+ const isVertical = range.Orientation === 'Vertical';
39
+ const chartEl = _jsx(StyledColumnRangeBarListPreview, { range: range });
40
+ const textEl = hasCellText ? (_jsx(Box, { className: "ab-RangeBar__text twa:text-2 twa:leading-tight twa:truncate twa:max-w-full", children: cellText })) : null;
41
+ if (hasCellText && textPosition === 'Merged') {
42
+ return (_jsxs(Box, { className: "ab-RangeBar__wrapper twa:relative twa:inline-flex", children: [chartEl, _jsx(Box, { className: "ab-RangeBar__text twa:absolute twa:inset-x-0 twa:top-1/2 twa:-translate-y-1/2 twa:px-1 twa:text-2 twa:truncate twa:pointer-events-none", children: cellText })] }));
43
+ }
44
+ return (_jsxs(Flex, { className: "ab-RangeBar__wrapper", flexDirection: "column", alignItems: isVertical ? 'center' : 'stretch', style: { justifyContent: 'center', gap: hasCellText ? 2 : 0 }, children: [hasCellText && textPosition === 'Above' && textEl, chartEl, hasCellText && textPosition === 'Below' && textEl] }));
45
+ };
46
+ export const StyledColumnRangeBarPreview = ({ data }) => {
47
+ const range = data.RangeBarStyle;
48
+ if (!range) {
49
+ return _jsx(Tag, { children: "No Range Bar Style" });
50
+ }
51
+ return (_jsx(Box, { className: PREVIEW_CELL_CLASS, children: _jsx(RangeBarPreviewContent, { range: range }) }));
52
+ };
53
+ export const StyledColumnRangeBarPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnRangeBarPreview, { data: data }) })] }));
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import type { CellBoxStyle } from '../../../../../AdaptableState/Common/AdaptableStyle';
3
+ import { RatingIconShape, RatingStyle, StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
4
+ export declare const DEFAULT_RATING_MAX = 5;
5
+ export declare const DEFAULT_RATING_SIZE = 14;
6
+ export declare const DEFAULT_RATING_GAP = 2;
7
+ export declare const DEFAULT_RATING_ICON: RatingIconShape;
8
+ export declare function getRatingCellChromeCss(cell: CellBoxStyle | undefined): React.CSSProperties;
9
+ export declare const RatingPreview: React.FC<{
10
+ rating: RatingStyle;
11
+ value?: number;
12
+ }>;
13
+ export declare const StyledColumnRatingPreview: React.FunctionComponent<React.PropsWithChildren<{
14
+ data: StyledColumn;
15
+ }>>;
16
+ export declare const StyledColumnRatingPreviewCard: React.FunctionComponent<React.PropsWithChildren<{
17
+ data: StyledColumn;
18
+ }>>;
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { Box } from '../../../../../components/Flex';
4
+ import { Card } from '../../../../../components/Card';
5
+ import { Tag } from '../../../../../components/Tag';
6
+ import { convertAdaptableStyleToCSS, hasCellBoxStyle, } from '../../../../../Utilities/Helpers/StyleHelper';
7
+ export const DEFAULT_RATING_MAX = 5;
8
+ export const DEFAULT_RATING_SIZE = 14;
9
+ export const DEFAULT_RATING_GAP = 2;
10
+ export const DEFAULT_RATING_ICON = 'Star';
11
+ const DEFAULT_FILLED_COLOR = 'var(--ab-color-warn, #f5a623)';
12
+ const DEFAULT_EMPTY_COLOR = 'color-mix(in srgb, currentColor 22%, transparent)';
13
+ const PREVIEW_CELL_CLASS = 'ab-RatingPreviewCell twa:inline-flex twa:items-center twa:min-w-[140px] twa:min-h-[32px] twa:px-2 twa:py-1 twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]';
14
+ const ICON_PATHS = {
15
+ Star: 'M12 2 L14.9 8.6 L22 9.3 L16.7 14.1 L18.2 21 L12 17.4 L5.8 21 L7.3 14.1 L2 9.3 L9.1 8.6 Z',
16
+ Heart: 'M12 21 C 12 21 3 14.5 3 8.5 C 3 5.5 5.5 3 8.5 3 C 10.3 3 11.7 4 12 5.2 C 12.3 4 13.7 3 15.5 3 C 18.5 3 21 5.5 21 8.5 C 21 14.5 12 21 12 21 Z',
17
+ Circle: 'M12 4 a8 8 0 1 0 0.0001 0 Z',
18
+ Thumb: 'M2 11 h4 v10 h-4 z M7 11 l4 -8 c.5 -1 2 -1 2 0 l-1 5 h6 c1 0 2 1 1.7 2 l-2 8 c-.3 1 -1 1.6 -2 1.6 H7 z',
19
+ };
20
+ const clamp = (n, lo, hi) => Math.max(lo, Math.min(hi, n));
21
+ export function getRatingCellChromeCss(cell) {
22
+ if (!cell || !hasCellBoxStyle(cell)) {
23
+ return {};
24
+ }
25
+ return convertAdaptableStyleToCSS(cell);
26
+ }
27
+ export const RatingPreview = ({ rating, value, }) => {
28
+ const instanceId = React.useId();
29
+ const max = rating.Max ?? DEFAULT_RATING_MAX;
30
+ const size = rating.Size ?? DEFAULT_RATING_SIZE;
31
+ const gap = rating.Gap ?? DEFAULT_RATING_GAP;
32
+ const icon = rating.Icon ?? DEFAULT_RATING_ICON;
33
+ const filledColor = rating.FilledColor ?? DEFAULT_FILLED_COLOR;
34
+ const emptyColor = rating.EmptyColor ?? DEFAULT_EMPTY_COLOR;
35
+ const allowHalf = rating.AllowHalf ?? true;
36
+ const previewValue = value ?? Math.max(1, Math.min(max, max * 0.7));
37
+ const effective = allowHalf ? previewValue : Math.round(previewValue);
38
+ const d = ICON_PATHS[icon];
39
+ return (_jsxs("span", { style: {
40
+ display: 'inline-flex',
41
+ alignItems: 'center',
42
+ gap: `${gap}px`,
43
+ lineHeight: 1,
44
+ }, "aria-hidden": "true", children: [Array.from({ length: max }).map((_, i) => {
45
+ const fill = clamp(effective - i, 0, 1);
46
+ const clipId = `ab-rating-preview-clip-${instanceId}-${i}`;
47
+ return (_jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", children: [_jsx("path", { d: d, fill: emptyColor }), fill > 0 && (_jsxs(_Fragment, { children: [_jsx("defs", { children: _jsx("clipPath", { id: clipId, children: _jsx("rect", { x: 0, y: 0, width: 24 * fill, height: 24 }) }) }), _jsx("path", { d: d, fill: filledColor, clipPath: `url(#${clipId})` })] }))] }, i));
48
+ }), rating.ShowValue && (_jsx("span", { style: { marginLeft: 6, fontVariantNumeric: 'tabular-nums' }, children: previewValue }))] }));
49
+ };
50
+ export const StyledColumnRatingPreview = ({ data }) => {
51
+ const rating = data.RatingStyle;
52
+ if (!rating) {
53
+ return _jsx(Tag, { children: "No Rating Style" });
54
+ }
55
+ const previewCellChrome = getRatingCellChromeCss(rating.Cell);
56
+ return (_jsx(Box, { className: PREVIEW_CELL_CLASS, style: previewCellChrome, children: _jsx(RatingPreview, { rating: rating }) }));
57
+ };
58
+ export const StyledColumnRatingPreviewCard = ({ data }) => (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(StyledColumnRatingPreview, { data: data }) })] }));
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import type { CellBoxStyle } from '../../../../../AdaptableState/Common/AdaptableStyle';
3
+ import { StyledColumn } from '../../../../../AdaptableState/StyledColumnState';
4
+ export declare function getSparklineCellChromeCss(cell: CellBoxStyle | undefined): React.CSSProperties;
5
+ export declare const StyledColumnSparklinePreview: React.FunctionComponent<React.PropsWithChildren<{
6
+ data: StyledColumn;
7
+ }>>;
8
+ export declare const StyledColumnSparklinePreviewCard: React.FunctionComponent<React.PropsWithChildren<{
9
+ data: StyledColumn;
10
+ }>>;