@adaptabletools/adaptable-cjs 23.0.0-canary.5 → 23.0.0-canary.7

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 (335) hide show
  1. package/icons/sort-asc.svg +1 -1
  2. package/index.css +756 -257
  3. package/package.json +1 -1
  4. package/src/AdaptableOptions/DataSetOptions.d.ts +26 -2
  5. package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -1
  6. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +42 -10
  7. package/src/AdaptableState/Common/AdaptableFormat.d.ts +7 -0
  8. package/src/AdaptableState/Common/AdaptableMessageType.d.ts +1 -1
  9. package/src/AdaptableState/Common/Enums.d.ts +1 -1
  10. package/src/AdaptableState/Common/Enums.js +1 -1
  11. package/src/AdaptableState/StyledColumnState.d.ts +2 -2
  12. package/src/Api/Internal/AlertInternalApi.js +1 -1
  13. package/src/Api/Internal/DataSetInternalApi.d.ts +3 -0
  14. package/src/Api/Internal/DataSetInternalApi.js +73 -13
  15. package/src/Redux/Store/AdaptableStore.js +6 -4
  16. package/src/Strategy/CalculatedColumnModule.js +1 -0
  17. package/src/Strategy/ColumnFilterModule.js +1 -0
  18. package/src/Strategy/FlashingCellModule.js +6 -2
  19. package/src/Strategy/FormatColumnModule.js +1 -1
  20. package/src/Strategy/FreeTextColumnModule.js +38 -28
  21. package/src/Strategy/Interface/IModule.d.ts +3 -1
  22. package/src/Strategy/LayoutModule.js +15 -66
  23. package/src/Strategy/StyledColumnModule.js +11 -28
  24. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.d.ts +1 -0
  25. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -0
  26. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +2 -0
  27. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.js +17 -1
  28. package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
  29. package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +5 -1
  30. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
  31. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +111 -0
  32. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
  33. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +177 -0
  34. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +1 -0
  35. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -0
  36. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.d.ts +26 -0
  37. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.js +97 -0
  38. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
  39. package/src/Utilities/Defaults/DefaultSettingsPanel.js +48 -42
  40. package/src/Utilities/Helpers/FormatHelper.js +3 -0
  41. package/src/Utilities/Helpers/ScheduleHelper.js +2 -0
  42. package/src/Utilities/Helpers/StyleHelper.d.ts +18 -0
  43. package/src/Utilities/Helpers/StyleHelper.js +30 -1
  44. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +6 -4
  45. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
  46. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +19 -0
  47. package/src/Utilities/getScopeViewItems.js +2 -0
  48. package/src/Utilities/wizardSelection.d.ts +10 -0
  49. package/src/Utilities/wizardSelection.js +22 -0
  50. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +2 -2
  51. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +2 -2
  52. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +3 -3
  53. package/src/View/Alert/AlertViewPanel.js +2 -2
  54. package/src/View/Alert/Utilities/getAlertButtonStyle.js +7 -4
  55. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +0 -1
  56. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +1 -6
  57. package/src/View/Alert/Wizard/AlertButtonsEditor.js +2 -1
  58. package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
  59. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +1 -2
  60. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
  61. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +3 -4
  62. package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +1 -1
  63. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -2
  64. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
  65. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +30 -7
  66. package/src/View/Alert/Wizard/AlertWizard.js +3 -3
  67. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
  68. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -14
  69. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  70. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -6
  71. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  72. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -2
  73. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  74. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +29 -3
  75. package/src/View/CellSummary/CellSummaryViewPanel.js +4 -4
  76. package/src/View/Charting/ShowChartButton.js +8 -8
  77. package/src/View/ColumnInfo/ColumnInfo.js +21 -1
  78. package/src/View/Components/AdaptableObjectCollection/index.js +2 -3
  79. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +1 -1
  80. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +4 -4
  81. package/src/View/Components/AdaptableObjectRow/index.js +2 -2
  82. package/src/View/Components/Buttons/ButtonBase/index.js +2 -3
  83. package/src/View/Components/Buttons/ButtonNew.d.ts +2 -0
  84. package/src/View/Components/Buttons/ButtonNew.js +1 -1
  85. package/src/View/Components/Buttons/EntityListActionButtons.js +3 -3
  86. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +2 -2
  87. package/src/View/Components/ColumnFilter/ColumnFilter.js +1 -2
  88. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +0 -1
  89. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +3 -1
  90. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
  91. package/src/View/Components/ColumnSelector/index.d.ts +12 -0
  92. package/src/View/Components/ColumnSelector/index.js +30 -6
  93. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
  94. package/src/View/Components/ModuleValueSelector/index.js +2 -1
  95. package/src/View/Components/NewScopeComponent.js +3 -8
  96. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
  97. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
  98. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +2 -2
  99. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
  100. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
  101. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -4
  102. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -3
  103. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
  104. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +5 -0
  105. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
  106. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +27 -28
  107. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
  108. package/src/View/Components/RangesComponent.d.ts +2 -4
  109. package/src/View/Components/RangesComponent.js +95 -66
  110. package/src/View/Components/ReorderDraggable/index.js +2 -3
  111. package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
  112. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
  113. package/src/View/Components/StyleComponent.js +30 -63
  114. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +9 -6
  115. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
  116. package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -80
  117. package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
  118. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +81 -0
  119. package/src/View/Components/ValueSelector/index.d.ts +29 -0
  120. package/src/View/Components/ValueSelector/index.js +112 -29
  121. package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
  122. package/src/View/Components/wizardColumnListStyles.js +13 -0
  123. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  124. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +4 -6
  125. package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
  126. package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
  127. package/src/View/Dashboard/DashboardPopup.js +3 -67
  128. package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
  129. package/src/View/Dashboard/DashboardPopupSections.js +73 -0
  130. package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
  131. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
  132. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
  133. package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
  134. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +99 -0
  135. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
  136. package/src/View/DataChangeHistory/buildActionColumnButton.js +33 -41
  137. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
  138. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +46 -0
  139. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  140. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
  141. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  142. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  143. package/src/View/Export/ExportDestinationPicker.js +4 -5
  144. package/src/View/Export/ExportViewPanel.js +2 -2
  145. package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
  146. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +2 -7
  147. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
  148. package/src/View/Export/Wizard/ReportRowsWizardSection.js +2 -5
  149. package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
  150. package/src/View/FlashingCell/FlashingCellStyle.js +5 -3
  151. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
  152. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +5 -9
  153. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
  154. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +10 -0
  155. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  156. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +5 -1
  157. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
  158. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +3 -8
  159. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -2
  160. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  161. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +101 -44
  162. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
  163. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -6
  164. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +55 -15
  165. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  166. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
  167. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -9
  168. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +4 -9
  169. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
  170. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
  171. package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
  172. package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
  173. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -3
  174. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  175. package/src/View/Layout/LayoutViewPanel.js +2 -2
  176. package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
  177. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
  178. package/src/View/Layout/Wizard/sections/AggregationsSection.js +77 -33
  179. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
  180. package/src/View/Layout/Wizard/sections/ColumnsSection.js +154 -275
  181. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
  182. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +146 -143
  183. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
  184. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +22 -10
  185. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
  186. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +21 -10
  187. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
  188. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +23 -12
  189. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +7 -3
  190. package/src/View/Layout/Wizard/sections/RowSummarySection.js +10 -10
  191. package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
  192. package/src/View/Layout/Wizard/sections/SortSection.js +43 -18
  193. package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
  194. package/src/View/Layout/Wizard/sections/columnLayoutCards.js +167 -0
  195. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
  196. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +216 -0
  197. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
  198. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +72 -0
  199. package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
  200. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +57 -0
  201. package/src/View/License/LicenseWatermark.js +1 -1
  202. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
  203. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
  204. package/src/View/Note/NoteEditor.js +2 -2
  205. package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
  206. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  207. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
  208. package/src/View/SmartEdit/SmartEditPopup.js +2 -2
  209. package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
  210. package/src/View/StateManagement/StateManagementPopup.js +1 -1
  211. package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
  212. package/src/View/StateManagement/components/ExportDropdown.js +12 -13
  213. package/src/View/StatusBar/StatusBarPanel.js +2 -2
  214. package/src/View/StatusBar/StatusBarPopup.js +33 -5
  215. package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
  216. package/src/View/StatusBar/statusBarPanelHelpers.js +11 -0
  217. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +2 -0
  218. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +13 -10
  219. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
  220. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +137 -119
  221. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +7 -13
  222. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
  223. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
  224. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +54 -0
  225. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
  226. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +28 -6
  227. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +8 -17
  228. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
  229. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +46 -28
  230. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +97 -42
  231. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
  232. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
  233. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +31 -45
  234. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +10 -5
  235. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +93 -6
  236. package/src/View/UIHelper.d.ts +0 -2
  237. package/src/View/UIHelper.js +8 -24
  238. package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
  239. package/src/View/Wizard/CollapsibleWizardCard.js +90 -0
  240. package/src/View/Wizard/OnePageWizards.js +6 -6
  241. package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
  242. package/src/View/Wizard/SummaryColorTag.js +79 -0
  243. package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
  244. package/src/View/Wizard/WizardTypeSelection.js +40 -0
  245. package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
  246. package/src/View/Wizard/rowGroupSummaryTags.js +21 -0
  247. package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
  248. package/src/View/Wizard/scopeSummaryTags.js +38 -0
  249. package/src/agGrid/AdaptableAgGrid.js +1 -1
  250. package/src/agGrid/AgGridAdapter.js +0 -5
  251. package/src/agGrid/AgGridColumnAdapter.js +1 -1
  252. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
  253. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
  254. package/src/components/Card/index.js +5 -7
  255. package/src/components/CheckBox/index.js +2 -3
  256. package/src/components/CodeBlock/index.js +2 -3
  257. package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
  258. package/src/components/ColorPicker/ColorPicker.js +8 -6
  259. package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
  260. package/src/components/ColorPicker/OptionalColorPicker.js +31 -0
  261. package/src/components/ColorPicker/index.d.ts +1 -0
  262. package/src/components/ColorPicker/index.js +1 -0
  263. package/src/components/Combobox/comboboxUtils.d.ts +1 -0
  264. package/src/components/Combobox/index.js +19 -18
  265. package/src/components/Dashboard/DashboardManager.js +2 -4
  266. package/src/components/Dialog/index.js +4 -4
  267. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
  268. package/src/components/DragAndDropContext/DragAndDropContext.js +4 -1
  269. package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
  270. package/src/components/DragAndDropContext/ModuleManager.js +43 -4
  271. package/src/components/DragAndDropContext/TabList.d.ts +11 -4
  272. package/src/components/DragAndDropContext/TabList.js +52 -38
  273. package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
  274. package/src/components/DragAndDropContext/UnusedPanel.js +13 -9
  275. package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
  276. package/src/components/DragAndDropContext/dragScope.js +34 -0
  277. package/src/components/DragAndDropContext/types.d.ts +7 -0
  278. package/src/components/DropdownButton/index.d.ts +33 -25
  279. package/src/components/DropdownButton/index.js +24 -158
  280. package/src/components/EmptyContent/index.js +2 -3
  281. package/src/components/ErrorBox/index.js +2 -3
  282. package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
  283. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
  284. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +9 -9
  285. package/src/components/FieldWrap/index.js +2 -3
  286. package/src/components/Flex.js +2 -2
  287. package/src/components/FormLayout/index.d.ts +1 -1
  288. package/src/components/HelpBlock/index.js +3 -4
  289. package/src/components/IconSelector/IconSelector.d.ts +8 -0
  290. package/src/components/IconSelector/IconSelector.js +13 -8
  291. package/src/components/IconSelector/index.d.ts +1 -0
  292. package/src/components/IconSelector/index.js +3 -0
  293. package/src/components/Modal/index.js +2 -2
  294. package/src/components/NewSelect/index.js +11 -1
  295. package/src/components/Panel/index.js +7 -7
  296. package/src/components/Radio/index.d.ts +1 -1
  297. package/src/components/Radio/index.js +8 -6
  298. package/src/components/SimpleButton/index.js +7 -7
  299. package/src/components/StylePreview.js +2 -3
  300. package/src/components/Tabs/index.js +4 -4
  301. package/src/components/Tag/Tag.d.ts +16 -0
  302. package/src/components/Tag/Tag.js +16 -5
  303. package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
  304. package/src/components/Tag/columnScopeTagHelpers.js +12 -0
  305. package/src/components/Tag/index.d.ts +1 -1
  306. package/src/components/Tag/index.js +3 -1
  307. package/src/components/Textarea/index.js +2 -3
  308. package/src/components/Toggle/Toggle.d.ts +2 -0
  309. package/src/components/Toggle/Toggle.js +14 -7
  310. package/src/components/Toggle/ToggleGroup.js +2 -2
  311. package/src/components/ToggleButton/index.js +4 -5
  312. package/src/components/Tree/TreeDropdown/index.js +3 -5
  313. package/src/components/WarningBox/index.js +2 -3
  314. package/src/components/icons/sort-asc.js +1 -1
  315. package/src/components/ui/button.d.ts +2 -2
  316. package/src/components/ui/combobox.d.ts +3 -1
  317. package/src/components/ui/combobox.js +2 -2
  318. package/src/components/ui/input-group.d.ts +1 -1
  319. package/src/components/ui/select.js +3 -2
  320. package/src/components/ui/textarea.js +1 -1
  321. package/src/env.js +2 -2
  322. package/src/layout-manager/src/index.js +7 -3
  323. package/src/metamodel/adaptable.metamodel.js +1 -1
  324. package/src/types.d.ts +1 -1
  325. package/tsconfig.cjs.tsbuildinfo +1 -1
  326. package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
  327. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -295
  328. package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
  329. package/src/components/DropdownButton/DropdownButtonItem.js +0 -2
  330. package/src/components/DropdownButton/renderItem.d.ts +0 -14
  331. package/src/components/DropdownButton/renderItem.js +0 -14
  332. package/src/components/DropdownButton/useExpanded.d.ts +0 -24
  333. package/src/components/DropdownButton/useExpanded.js +0 -59
  334. package/src/components/NewDropdownButton/index.d.ts +0 -27
  335. package/src/components/NewDropdownButton/index.js +0 -28
@@ -1,40 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExportDropdown = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- const DropdownButton_1 = tslib_1.__importDefault(require("../../../components/DropdownButton"));
5
+ const DropdownButton_1 = require("../../../components/DropdownButton");
7
6
  const handleExportState_1 = require("../handleExportState");
8
7
  const ExportDropdown = (props) => {
8
+ const { api, type, ...rest } = props;
9
9
  const handleChange = (destination) => {
10
- switch (props.type) {
11
- case 'adaptableState':
12
- const adaptableState = props.api.stateApi.getPersistentState();
13
- (0, handleExportState_1.handleExportState)(destination, 'adaptableState', adaptableState, props.api);
10
+ switch (type) {
11
+ case 'adaptableState': {
12
+ const adaptableState = api.stateApi.getPersistentState();
13
+ (0, handleExportState_1.handleExportState)(destination, 'adaptableState', adaptableState, api);
14
14
  break;
15
- case 'initialState':
16
- const initialState = props.api.stateApi.getInitialState();
17
- (0, handleExportState_1.handleExportState)(destination, 'initialState', initialState, props.api);
15
+ }
16
+ case 'initialState': {
17
+ const initialState = api.stateApi.getInitialState();
18
+ (0, handleExportState_1.handleExportState)(destination, 'initialState', initialState, api);
18
19
  break;
20
+ }
19
21
  }
20
22
  };
21
23
  const destinationOptions = [
22
24
  {
23
- value: 'Clipboard',
24
25
  label: 'Clipboard',
25
26
  onClick: () => handleChange('Clipboard'),
26
27
  },
27
28
  {
28
- value: 'Console',
29
29
  label: 'Console',
30
30
  onClick: () => handleChange('Console'),
31
31
  },
32
32
  {
33
- value: 'JSON',
34
33
  label: 'JSON',
35
34
  onClick: () => handleChange('JSON'),
36
35
  },
37
36
  ];
38
- return ((0, jsx_runtime_1.jsx)(DropdownButton_1.default, { className: "ab-StateManagement__Export-Dropdown", ...props, items: destinationOptions, value: undefined }));
37
+ return ((0, jsx_runtime_1.jsx)(DropdownButton_1.NewDropdownButton, { variant: "outlined", className: "ab-StateManagement__Export-Dropdown", ...rest, items: destinationOptions }));
39
38
  };
40
39
  exports.ExportDropdown = ExportDropdown;
@@ -8,7 +8,7 @@ const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleB
8
8
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/ArrayExtensions"));
9
9
  const AdaptablePopover_1 = require("../AdaptablePopover");
10
10
  const Flex_1 = require("../../components/Flex");
11
- const clsx_1 = tslib_1.__importDefault(require("clsx"));
11
+ const utils_1 = require("../../lib/utils");
12
12
  /**
13
13
  * Statusbar sub panel are similar to vs code:
14
14
  * - text
@@ -40,6 +40,6 @@ const StatusBarPanel = (props) => {
40
40
  const preparedContent = typeof content === 'function'
41
41
  ? React.createElement(content)
42
42
  : content;
43
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { ...flexProps, alignItems: "center", justifyContent: "center", className: (0, clsx_1.default)(baseClassName, flexProps.className, shouldTriggerActionOnWrapperClick ? 'twa:cursor-pointer' : 'twa:cursor-default'), onClick: handleWrapperClick, children: [props.icon && ((0, jsx_runtime_1.jsx)(SimpleButton_1.default, { tooltip: tooltip, color: props.color, icon: props.icon, iconSize: 15, variant: "text", onClick: handleIconClick, className: preparedContent ? 'twa:mr-1' : 'twa:mr-0' })), popover ? ((0, jsx_runtime_1.jsx)(AdaptablePopover_1.AdaptablePopover, { alignPosition: [['BottomCenter', 'TopCenter']], tooltipText: tooltip, showIcon: false, bodyText: [popoverContent], MessageType: 'Info', showEvent: 'focus', hideEvent: "blur", popoverMinWidth: popoverMinWidth, children: preparedContent })) : (preparedContent), ArrayExtensions_1.default.IsNotNullOrEmpty(extraActions) && ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:ml-1", children: extraActions?.map?.((action, index) => React.createElement(action, { key: index })) }))] }));
43
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { ...flexProps, alignItems: "center", justifyContent: "center", className: (0, utils_1.cn)(baseClassName, flexProps.className, shouldTriggerActionOnWrapperClick ? 'twa:cursor-pointer' : 'twa:cursor-default'), onClick: handleWrapperClick, children: [props.icon && ((0, jsx_runtime_1.jsx)(SimpleButton_1.default, { tooltip: tooltip, color: props.color, icon: props.icon, iconSize: 15, variant: "text", onClick: handleIconClick, className: preparedContent ? 'twa:mr-1' : 'twa:mr-0' })), popover ? ((0, jsx_runtime_1.jsx)(AdaptablePopover_1.AdaptablePopover, { alignPosition: [['BottomCenter', 'TopCenter']], tooltipText: tooltip, showIcon: false, bodyText: [popoverContent], MessageType: 'Info', showEvent: 'focus', hideEvent: "blur", popoverMinWidth: popoverMinWidth, children: preparedContent })) : (preparedContent), ArrayExtensions_1.default.IsNotNullOrEmpty(extraActions) && ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:ml-1", children: extraActions?.map?.((action, index) => React.createElement(action, { key: index })) }))] }));
44
44
  };
45
45
  exports.StatusBarPanel = StatusBarPanel;
@@ -12,6 +12,7 @@ const StatusBarRedux_1 = require("../../Redux/ActionsReducers/StatusBarRedux");
12
12
  const AdaptableContext_1 = require("../AdaptableContext");
13
13
  const PopupPanel_1 = require("../Components/Popups/AdaptablePopup/PopupPanel");
14
14
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
15
+ const statusBarPanelHelpers_1 = require("./statusBarPanelHelpers");
15
16
  const StatusBarPopup = (props) => {
16
17
  const statusPanels = (0, react_redux_1.useSelector)(StatusBarRedux_1.getStatusPanelsSelector);
17
18
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
@@ -30,20 +31,47 @@ const StatusBarPopup = (props) => {
30
31
  };
31
32
  });
32
33
  adaptable.api.statusBarApi.setStatusBarPanels(newStatusPanels);
33
- }, [statusPanels]);
34
- const availableItems = Types_1.ALL_STATUS_SUB_PANELS.filter((panel) => {
34
+ }, [statusPanels, adaptable.api.statusBarApi]);
35
+ const availableItems = React.useMemo(() => Types_1.ALL_STATUS_SUB_PANELS.filter((panel) => {
35
36
  const module = adaptable.ModuleService.getModuleById(panel);
36
37
  return module?.isModuleVisible();
37
38
  }).map((panel) => {
38
39
  const module = adaptable.ModuleService.getModuleById(panel);
39
40
  return { Id: panel, Title: module.moduleInfo.FriendlyName };
40
- });
41
+ }), [adaptable]);
42
+ const unusedItemGroups = React.useMemo(() => {
43
+ const statusPanelIds = [];
44
+ const moduleShortcutIds = [];
45
+ availableItems.forEach((item) => {
46
+ const module = adaptable.ModuleService.getModuleById(item.Id);
47
+ if ((0, statusBarPanelHelpers_1.isRichStatusBarPanel)(module)) {
48
+ statusPanelIds.push(item.Id);
49
+ }
50
+ else {
51
+ moduleShortcutIds.push(item.Id);
52
+ }
53
+ });
54
+ return [
55
+ {
56
+ listId: 'UNUSED-PANELS',
57
+ title: 'Status Panels',
58
+ help: 'Fully featured actionable controls',
59
+ items: statusPanelIds,
60
+ },
61
+ {
62
+ listId: 'UNUSED-SHORTCUTS',
63
+ title: 'Module Shortcuts',
64
+ help: 'Buttons to open Module Status Panel',
65
+ items: moduleShortcutIds,
66
+ },
67
+ ];
68
+ }, [availableItems, adaptable]);
41
69
  const disabled = props.accessLevel === GeneralConstants_1.ACCESS_LEVEL_READ_ONLY;
42
- return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { headerText: props.moduleInfo.FriendlyName, glyphicon: props.moduleInfo.Glyph, infoLink: props.moduleInfo.HelpPage, infoLinkDisabled: !props.api.internalApi.isDocumentationLinksDisplayed(), children: statusPanels.length ? ((0, jsx_runtime_1.jsx)(ModuleManager_1.ModuleManager, { permittedActions: {
70
+ return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { headerText: props.moduleInfo.FriendlyName, glyphicon: props.moduleInfo.Glyph, infoLink: props.moduleInfo.HelpPage, infoLinkDisabled: !props.api.internalApi.isDocumentationLinksDisplayed(), children: statusPanels.length ? ((0, jsx_runtime_1.jsx)(ModuleManager_1.ModuleManager, { dragScope: "status-bar", layout: "rows", permittedActions: {
43
71
  createTab: false,
44
72
  dragAndDropTab: false,
45
73
  deleteTab: false,
46
74
  editTabName: false,
47
- }, onTabsChange: handleTabChange, disabled: disabled, tabs: tabs, availableItems: availableItems, tabsTitle: 'AdapTable Status Bar Panels', unusedPanelTitle: "Available Status Bar Components", dragItemText: "Drag into a Status Bar Panel below" })) : ((0, jsx_runtime_1.jsx)(EmptyContent_1.default, { children: "To enable this feature add to Grid Options statusPanels the Adaptable Status Panel." })) }));
75
+ }, onTabsChange: handleTabChange, disabled: disabled, tabs: tabs, availableItems: availableItems, unusedItemGroups: unusedItemGroups, dragItemText: "Drag items from either panel above into a Status Bar Panel below", tabsTitle: "AdapTable Status Bar Panels" })) : ((0, jsx_runtime_1.jsx)(EmptyContent_1.default, { children: "To enable this feature add to Grid Options statusPanels the Adaptable Status Panel." })) }));
48
76
  };
49
77
  exports.StatusBarPopup = StatusBarPopup;
@@ -0,0 +1,2 @@
1
+ import { IModule } from '../../Strategy/Interface/IModule';
2
+ export declare const isRichStatusBarPanel: (module: IModule | undefined) => boolean;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRichStatusBarPanel = void 0;
4
+ const isRichStatusBarPanel = (module) => {
5
+ if (!module) {
6
+ return false;
7
+ }
8
+ const statusBarPanelProps = module.getViewProperties?.()?.getStatusBarPanelProps?.() ?? {};
9
+ return Boolean(statusBarPanelProps.view || statusBarPanelProps.content || statusBarPanelProps.popover);
10
+ };
11
+ exports.isRichStatusBarPanel = isRichStatusBarPanel;
@@ -11,6 +11,8 @@ export interface BadgePillStyleEditorProps {
11
11
  */
12
12
  onChange: (next: BadgePillStyle | undefined) => void;
13
13
  disabled?: boolean;
14
+ /** When true, omit outer border — for use inside a wizard Card body. */
15
+ embedded?: boolean;
14
16
  }
15
17
  /**
16
18
  * Compact editor for the cut-down {@link BadgePillStyle}.
@@ -3,12 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderBadgePillStyleSummaryTags = exports.getBadgePillStyleSummaryItems = exports.BadgePillStyleEditor = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- const CheckBox_1 = require("../../../components/CheckBox");
7
6
  const ColorPicker_1 = require("../../../components/ColorPicker");
8
7
  const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
9
8
  const Flex_1 = require("../../../components/Flex");
10
9
  const Toggle_1 = require("../../../components/Toggle");
11
- const Tag_1 = require("../../../components/Tag");
10
+ const SummaryColorTag_1 = require("../../Wizard/SummaryColorTag");
12
11
  const LABEL_COLUMN = { name: 'label', style: { textAlign: 'start' } };
13
12
  const CHILD_COLUMN = { name: 'children' };
14
13
  /**
@@ -39,7 +38,11 @@ const BadgePillStyleEditor = (props) => {
39
38
  }
40
39
  };
41
40
  const disabledClass = disabled ? 'twa:opacity-50 twa:pointer-events-none' : '';
42
- return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:mt-2 twa:rounded-standard twa:border twa:border-border twa:overflow-hidden twa:shadow-sm", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-3", children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { columns: [LABEL_COLUMN, CHILD_COLUMN], sizes: ['7.5rem', '1fr'], gridColumnGap: "0.75rem", children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Background", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2", children: [(0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { disabled: disabled, checked: !!pill.BackColor, onChange: (checked) => update({ BackColor: checked ? pill.BackColor ?? '#cccccc' : undefined }), children: "Set" }), (0, jsx_runtime_1.jsx)(ColorPicker_1.ColorPicker, { disabled: disabled || !pill.BackColor, api: props.api, value: pill.BackColor || '#cccccc', onChange: (c) => update({ BackColor: c }) })] }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Text", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2", children: [(0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { disabled: disabled, checked: !!pill.ForeColor, onChange: (checked) => update({ ForeColor: checked ? pill.ForeColor ?? '#000000' : undefined }), children: "Set" }), (0, jsx_runtime_1.jsx)(ColorPicker_1.ColorPicker, { disabled: disabled || !pill.ForeColor, api: props.api, value: pill.ForeColor || '#000000', onChange: (c) => update({ ForeColor: c }) })] }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Border", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2", children: [(0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { disabled: disabled, checked: !!pill.BorderColor, onChange: (checked) => update({ BorderColor: checked ? pill.BorderColor ?? '#000000' : undefined }), children: "Set" }), (0, jsx_runtime_1.jsx)(ColorPicker_1.ColorPicker, { disabled: disabled || !pill.BorderColor, api: props.api, value: pill.BorderColor || '#000000', onChange: (c) => update({ BorderColor: c }) })] }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Font", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: disabledClass, children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2 twa:flex-wrap", children: [(0, jsx_runtime_1.jsxs)(Toggle_1.ToggleGroup, { children: [(0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { pressed: pill.FontStyle === 'Italic', onPressedChange: (pressed) => update({ FontStyle: pressed ? 'Italic' : undefined }), icon: "italic" }), (0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { pressed: pill.FontWeight === 'Bold', onPressedChange: (pressed) => update({ FontWeight: pressed ? 'Bold' : undefined }), icon: "bold" })] }), (0, jsx_runtime_1.jsxs)(Toggle_1.ToggleGroup, { children: [(0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { pressed: pill.TextDecoration === 'Underline', onPressedChange: (pressed) => update({ TextDecoration: pressed ? 'Underline' : undefined }), icon: "underline" }), (0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { pressed: pill.TextDecoration === 'LineThrough', onPressedChange: (pressed) => update({ TextDecoration: pressed ? 'LineThrough' : undefined }), icon: "strikethrough" }), (0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { pressed: pill.TextDecoration === 'Overline', onPressedChange: (pressed) => update({ TextDecoration: pressed ? 'Overline' : undefined }), icon: "overline" })] })] }) }) })] }) }) }));
41
+ const form = ((0, jsx_runtime_1.jsxs)(FormLayout_1.default, { columns: [LABEL_COLUMN, CHILD_COLUMN], sizes: ['7.5rem', '1fr'], gridColumnGap: "0.75rem", children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Background", children: (0, jsx_runtime_1.jsx)(ColorPicker_1.OptionalColorPicker, { disabled: disabled, api: props.api, value: pill.BackColor, defaultColor: "#cccccc", onChange: (c) => update({ BackColor: c }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Text", children: (0, jsx_runtime_1.jsx)(ColorPicker_1.OptionalColorPicker, { disabled: disabled, api: props.api, value: pill.ForeColor, defaultColor: "#000000", onChange: (c) => update({ ForeColor: c }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Border", children: (0, jsx_runtime_1.jsx)(ColorPicker_1.OptionalColorPicker, { disabled: disabled, api: props.api, value: pill.BorderColor, defaultColor: "#000000", onChange: (c) => update({ BorderColor: c }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Font", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: disabledClass, children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2 twa:flex-wrap", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2", children: [(0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { standalone: true, pressed: pill.FontStyle === 'Italic', onPressedChange: (pressed) => update({ FontStyle: pressed ? 'Italic' : undefined }), icon: "italic" }), (0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { standalone: true, pressed: pill.FontWeight === 'Bold', onPressedChange: (pressed) => update({ FontWeight: pressed ? 'Bold' : undefined }), icon: "bold" })] }), (0, jsx_runtime_1.jsxs)(Toggle_1.ToggleGroup, { children: [(0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { pressed: pill.TextDecoration === 'Underline', onPressedChange: (pressed) => update({ TextDecoration: pressed ? 'Underline' : undefined }), icon: "underline" }), (0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { pressed: pill.TextDecoration === 'LineThrough', onPressedChange: (pressed) => update({ TextDecoration: pressed ? 'LineThrough' : undefined }), icon: "strikethrough" }), (0, jsx_runtime_1.jsx)(Toggle_1.Toggle, { pressed: pill.TextDecoration === 'Overline', onPressedChange: (pressed) => update({ TextDecoration: pressed ? 'Overline' : undefined }), icon: "overline" })] })] }) }) })] }));
42
+ if (props.embedded) {
43
+ return form;
44
+ }
45
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:mt-2 twa:rounded-standard twa:border twa:border-border twa:overflow-hidden twa:shadow-sm", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-3", children: form }) }));
43
46
  };
44
47
  exports.BadgePillStyleEditor = BadgePillStyleEditor;
45
48
  /** Descriptive pill properties for summary panels (`Label: value` strings). */
@@ -49,22 +52,22 @@ const getBadgePillStyleSummaryItems = (pill) => {
49
52
  }
50
53
  const items = [];
51
54
  if (pill.BackColor) {
52
- items.push({ label: 'Pill Back Colour', value: pill.BackColor });
55
+ items.push({ label: 'Back Colour', value: pill.BackColor });
53
56
  }
54
57
  if (pill.ForeColor) {
55
- items.push({ label: 'Pill Fore Colour', value: pill.ForeColor });
58
+ items.push({ label: 'Fore Colour', value: pill.ForeColor });
56
59
  }
57
60
  if (pill.BorderColor) {
58
- items.push({ label: 'Pill Border Colour', value: pill.BorderColor });
61
+ items.push({ label: 'Border Colour', value: pill.BorderColor });
59
62
  }
60
63
  if (pill.FontWeight === 'Bold') {
61
- items.push({ label: 'Pill Font Weight', value: 'Bold' });
64
+ items.push({ label: 'Font Weight', value: 'Bold' });
62
65
  }
63
66
  if (pill.FontStyle === 'Italic') {
64
- items.push({ label: 'Pill Font Style', value: 'Italic' });
67
+ items.push({ label: 'Font Style', value: 'Italic' });
65
68
  }
66
69
  if (pill.TextDecoration && pill.TextDecoration !== 'None') {
67
- items.push({ label: 'Pill Text Decoration', value: pill.TextDecoration });
70
+ items.push({ label: 'Text Decoration', value: pill.TextDecoration });
68
71
  }
69
72
  return items;
70
73
  };
@@ -75,6 +78,6 @@ const renderBadgePillStyleSummaryTags = (pill) => {
75
78
  if (!items.length) {
76
79
  return null;
77
80
  }
78
- return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-1 twa:flex-wrap", children: items.map(({ label, value }) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: `${label}: ${value}` }, label))) }));
81
+ return (0, SummaryColorTag_1.renderSummaryLabelValueTags)(items);
79
82
  };
80
83
  exports.renderBadgePillStyleSummaryTags = renderBadgePillStyleSummaryTags;
@@ -8,7 +8,7 @@ export declare const renderBadgeDefinitionSummaryTags: (styledColumn: StyledColu
8
8
  export declare const StyledColumnBadgeDefinitionsView: React.FunctionComponent<React.PropsWithChildren<{
9
9
  data: StyledColumn;
10
10
  }>>;
11
- export declare const renderBadgeSummary: (styledColumn: StyledColumn, api?: AdaptableApi) => React.JSX.Element;
11
+ export declare const renderBadgeSummary: (styledColumn: StyledColumn, api: AdaptableApi) => React.JSX.Element;
12
12
  export interface StyledColumnBadgeSectionProps {
13
13
  onChange: (data: StyledColumn) => void;
14
14
  }
@@ -17,4 +17,4 @@ export interface StyledColumnBadgeStyleSectionProps {
17
17
  onChange: (data: StyledColumn) => void;
18
18
  }
19
19
  export declare const StyledColumnBadgeStyleSection: React.FunctionComponent<StyledColumnBadgeStyleSectionProps>;
20
- export declare const renderBadgeStyleSummary: (styledColumn: StyledColumn, api?: AdaptableApi) => React.JSX.Element;
20
+ export declare const renderBadgeStyleSummary: (styledColumn: StyledColumn, api: AdaptableApi) => React.JSX.Element;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderBadgeStyleSummary = exports.StyledColumnBadgeStyleSection = exports.StyledColumnBadgeSection = exports.renderBadgeSummary = exports.StyledColumnBadgeDefinitionsView = exports.renderBadgeDefinitionSummaryTags = exports.getStyledColumnBadgeStyleViewValues = exports.getStyledColumnBadgeDefinitionViewValues = exports.getStyledColumnBadgeDefinitionViewValueGroups = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- const DropdownButton_1 = tslib_1.__importDefault(require("../../../components/DropdownButton"));
7
6
  const ErrorBox_1 = tslib_1.__importDefault(require("../../../components/ErrorBox"));
8
7
  const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
9
- const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
10
8
  const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
9
+ const ButtonNew_1 = require("../../Components/Buttons/ButtonNew");
11
10
  const Tag_1 = require("../../../components/Tag");
11
+ const SummaryColorTag_1 = require("../../Wizard/SummaryColorTag");
12
12
  const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
13
13
  const AdaptableIconSelector_1 = require("../../Components/AdaptableIconSelector");
14
14
  const PredicateEditor_1 = require("../../Components/PredicateEditor/PredicateEditor");
@@ -26,6 +26,9 @@ const StyledColumnSliceStyleEditors_1 = require("./StyledColumnSliceStyleEditors
26
26
  const Card_1 = require("../../../components/Card");
27
27
  const AdaptableContext_1 = require("../../AdaptableContext");
28
28
  const StyledColumnBadgePreview_1 = require("./StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview");
29
+ const CollapsibleWizardCard_1 = require("../../Wizard/CollapsibleWizardCard");
30
+ const NewSelect_1 = require("../../../components/NewSelect");
31
+ const utils_1 = require("../../../lib/utils");
29
32
  const BADGE_STYLE_FORM_SIZES = ['200px', '1fr'];
30
33
  const SHAPE_CHOICES = [
31
34
  { value: 'Pill', label: 'Pill' },
@@ -42,97 +45,99 @@ const OVERFLOW_CHOICES = [
42
45
  { value: 'Wrap', label: 'Wrap', hint: 'Wrap onto subsequent lines' },
43
46
  { value: 'Scroll', label: 'Scroll', hint: 'Single line; cell scrolls horizontally' },
44
47
  ];
45
- const BadgeEditor = (props) => {
48
+ const badgeCardId = (index) => `badge-${index}`;
49
+ const getBadgePreviewValue = (dataType) => dataType === 'number' || dataType === 'numberArray'
50
+ ? `${GeneralConstants_1.DEFAULT_INTEGER_DISPLAY_VALUE}`
51
+ : GeneralConstants_1.DEFAULT_STRING_DISPLAY_VALUE;
52
+ const getBadgeDefinitionSummaryItems = (badge, api) => {
53
+ const items = [];
54
+ let rule = 'Always';
55
+ if (badge.Predicate) {
56
+ rule = api.predicateApi.predicateToString(badge.Predicate);
57
+ }
58
+ else if (badge.Expression) {
59
+ rule = badge.Expression.BooleanExpression;
60
+ }
61
+ items.push({ label: 'Rule', value: rule });
62
+ items.push({ label: 'Shape', value: badge.Shape ?? 'Rounded' });
63
+ items.push(...(0, BadgePillStyleEditor_1.getBadgePillStyleSummaryItems)(badge.PillStyle));
64
+ if (badge.Icon) {
65
+ items.push({
66
+ label: 'Icon',
67
+ value: 'name' in badge.Icon ? badge.Icon.name : 'Custom',
68
+ icon: badge.Icon,
69
+ });
70
+ }
71
+ if (badge.IconOnly) {
72
+ items.push({ label: 'Icon Only', value: 'Yes' });
73
+ }
74
+ if (badge.Icon && badge.IconPosition) {
75
+ items.push({ label: 'Icon Position', value: badge.IconPosition });
76
+ }
77
+ if (typeof badge.IconGap === 'number') {
78
+ items.push({ label: 'Icon Gap', value: `${badge.IconGap}px` });
79
+ }
80
+ return items;
81
+ };
82
+ const BadgePreview = ({ badge, density, previewValue }) => ((0, jsx_runtime_1.jsx)(Badge_1.Badge, { pillStyle: badge.PillStyle, icon: badge.Icon, iconPosition: badge.IconPosition, shape: badge.Shape, density: density, iconGap: badge.IconGap, children: badge.IconOnly ? '' : previewValue }));
83
+ const BadgeCardSummary = ({ badge, api }) => ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardValueSummary, { value: (0, SummaryColorTag_1.renderSummaryLabelValueTags)(getBadgeDefinitionSummaryItems(badge, api)) }));
84
+ const BadgeEditorForm = (props) => {
46
85
  const { api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
47
- const { badge, columnId, onChange, density, index } = props;
86
+ const { badge, columnId, onChange } = props;
48
87
  const predicateDefs = api.styledColumnApi.internalApi.getBadgePredicateDefsForColumn(columnId);
49
- const dataType = api.columnApi.getColumnDataTypeForColumnId(columnId);
50
- const previewValue = dataType === 'number' || dataType == 'numberArray'
51
- ? GeneralConstants_1.DEFAULT_INTEGER_DISPLAY_VALUE
52
- : GeneralConstants_1.DEFAULT_STRING_DISPLAY_VALUE;
53
88
  const currentShape = badge.Shape ?? 'Rounded';
54
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "ab-Badge-Definition-Editor twa:mb-3 twa:rounded-standard twa:border twa:border-border twa:overflow-hidden twa:shadow-sm", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "ab-Badge-Definition-Editor__header twa:px-3 twa:py-2 twa:border-b twa:border-border twa:gap-2", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex-1 twa:font-medium twa:text-3", children: `Badge ${index + 1}` }), (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { icon: "delete", variant: "text", tooltip: "Delete badge", onClick: props.onDelete })] }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-3", children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Preview", children: (0, jsx_runtime_1.jsx)(Badge_1.Badge, { pillStyle: badge.PillStyle, icon: badge.Icon, iconPosition: badge.IconPosition, shape: badge.Shape, density: density, iconGap: badge.IconGap, children: badge.IconOnly ? '' : previewValue }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Shape", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:ml-2", children: (0, jsx_runtime_1.jsx)(Radio_1.RadioGroup, { orientation: "horizontal", name: `ab-badge-shape-${columnId}`, value: currentShape, onRadioChange: (value) => onChange({ ...badge, Shape: value }), className: "twa:gap-3", children: SHAPE_CHOICES.map((choice) => ((0, jsx_runtime_1.jsx)(Radio_1.default, { value: choice.value, children: choice.label }, choice.value))) }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Style", children: (0, jsx_runtime_1.jsx)(BadgePillStyleEditor_1.BadgePillStyleEditor, { api: api, value: badge.PillStyle, onChange: (next) => {
55
- if (next) {
56
- onChange({ ...badge, PillStyle: next });
57
- }
58
- else {
59
- const cleaned = { ...badge };
60
- delete cleaned.PillStyle;
61
- onChange(cleaned);
62
- }
63
- } }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: 'Rule', children: columnId ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(HelpBlock_1.default, { className: "twa:text-2 twa:mb-1 twa:mt-2", children: "Create (optional) Rule for when the Badge is displayed; if no Rule provided Badge will always display (unless overriden by another Rule)" }), (0, jsx_runtime_1.jsx)(PredicateEditor_1.PredicateEditor, { columnId: columnId, predicate: badge.Predicate, predicateDefs: predicateDefs, placeholder: "No Predicate Selected", onChange: (predicate) => {
64
- onChange({
65
- ...badge,
66
- Predicate: predicate,
67
- });
68
- }, onClear: () => onChange({
69
- ...badge,
70
- Predicate: undefined,
71
- }) })] })) : ((0, jsx_runtime_1.jsx)(ErrorBox_1.default, { children: "Select a column first" })) }), (0, jsx_runtime_1.jsxs)(FormLayout_1.FormRow, { label: "Icon", children: [(0, jsx_runtime_1.jsx)(HelpBlock_1.default, { className: "twa:text-2 twa:mb-1 twa:mt-2", children: "Select (optional) Icon (and Icon position) to display in the Badge" }), ' ', !badge.Icon || 'name' in badge.Icon ? ((0, jsx_runtime_1.jsx)(AdaptableIconSelector_1.AdaptableIconSelector, { value: badge?.Icon && 'name' in badge?.Icon ? badge.Icon.name : undefined, onChange: (iconName) => {
72
- if (iconName) {
73
- onChange({
74
- ...badge,
75
- Icon: {
76
- name: iconName,
77
- },
78
- });
79
- }
80
- else {
81
- onChange({
82
- ...badge,
83
- Icon: undefined,
84
- });
85
- }
86
- } })) : ((0, jsx_runtime_1.jsx)(AdaptableIconComponent_1.AdaptableIconComponent, { icon: badge.Icon }))] }), badge.Icon && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Icon Position", children: (0, jsx_runtime_1.jsx)(DropdownButton_1.default, { columns: ['label'], items: [
87
- {
88
- label: 'Start',
89
- onClick: () => onChange({ ...badge, IconPosition: 'Start' }),
90
- },
91
- {
92
- label: 'End',
93
- onClick: () => onChange({ ...badge, IconPosition: 'End' }),
94
- },
95
- ], children: badge.IconPosition ?? 'Start' }) })), badge.Icon && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Show Icon Only", children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: badge.IconOnly, onClick: () => onChange({ ...badge, IconOnly: !badge.IconOnly }) }) })), badge.Icon && !badge.IconOnly && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Icon Gap", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2 twa:gap-2", children: [(0, jsx_runtime_1.jsx)(NumberInput_1.NumberInput, { value: badge.IconGap ?? '', placeholder: "auto", step: 1, min: 0, style: { width: 70 }, onChange: (value) => {
96
- onChange({
97
- ...badge,
98
- IconGap: typeof value === 'number' && value >= 0 ? value : undefined,
99
- });
100
- } }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70", children: "px between icon and text \u2014 leave blank to follow Density" })] }) }))] }) })] }));
89
+ const hasIcon = Boolean(badge.Icon);
90
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-2", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Shape" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Define shape of the corners for this badge" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(Radio_1.RadioGroup, { orientation: "horizontal", name: `ab-badge-shape-${columnId}`, value: currentShape, onRadioChange: (value) => onChange({ ...badge, Shape: value }), className: "twa:gap-3", children: SHAPE_CHOICES.map((choice) => ((0, jsx_runtime_1.jsx)(Radio_1.default, { value: choice.value, children: choice.label }, choice.value))) }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Style" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Colours and font styling for the badge pill" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(BadgePillStyleEditor_1.BadgePillStyleEditor, { embedded: true, api: api, value: badge.PillStyle, onChange: (next) => {
91
+ if (next) {
92
+ onChange({ ...badge, PillStyle: next });
93
+ }
94
+ else {
95
+ const cleaned = { ...badge };
96
+ delete cleaned.PillStyle;
97
+ onChange(cleaned);
98
+ }
99
+ } }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Rule" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional rule for when this badge is displayed \u2014 leave empty for Badge to always show" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: columnId ? ((0, jsx_runtime_1.jsx)(PredicateEditor_1.PredicateEditor, { columnId: columnId, predicate: badge.Predicate, predicateDefs: predicateDefs, placeholder: "No Predicate Selected", onChange: (predicate) => {
100
+ onChange({
101
+ ...badge,
102
+ Predicate: predicate,
103
+ });
104
+ }, onClear: () => onChange({
105
+ ...badge,
106
+ Predicate: undefined,
107
+ }) })) : ((0, jsx_runtime_1.jsx)(ErrorBox_1.default, { children: "Select a column first" })) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Icon" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Optional icon inside the badge \u2014 position and spacing apply once an icon is selected" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Icon", children: !badge.Icon || 'name' in badge.Icon ? ((0, jsx_runtime_1.jsx)(AdaptableIconSelector_1.AdaptableIconSelector, { value: badge?.Icon && 'name' in badge.Icon ? badge.Icon.name : undefined, onChange: (iconName) => {
108
+ if (iconName) {
109
+ onChange({
110
+ ...badge,
111
+ Icon: {
112
+ name: iconName,
113
+ },
114
+ });
115
+ }
116
+ else {
117
+ onChange({
118
+ ...badge,
119
+ Icon: undefined,
120
+ IconOnly: undefined,
121
+ IconPosition: undefined,
122
+ IconGap: undefined,
123
+ });
124
+ }
125
+ } })) : ((0, jsx_runtime_1.jsx)(AdaptableIconComponent_1.AdaptableIconComponent, { icon: badge.Icon })) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Icon Position", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[160px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { disabled: !hasIcon, className: "twa:w-full", value: badge.IconPosition ?? 'Start', onValueChange: (v) => onChange({ ...badge, IconPosition: v }), items: [
126
+ { value: 'Start', label: 'Start' },
127
+ { value: 'End', label: 'End' },
128
+ ] }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Show Icon Only", children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { disabled: !hasIcon, checked: badge.IconOnly, onClick: () => onChange({ ...badge, IconOnly: !badge.IconOnly }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Icon Gap", children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2", children: [(0, jsx_runtime_1.jsx)(NumberInput_1.NumberInput, { disabled: !hasIcon || badge.IconOnly, value: badge.IconGap ?? '', placeholder: "auto", step: 1, min: 0, style: { width: 70 }, onChange: (value) => {
129
+ onChange({
130
+ ...badge,
131
+ IconGap: typeof value === 'number' && value >= 0 ? value : undefined,
132
+ });
133
+ } }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70", children: "px between icon and text \u2014 leave blank to follow Density" })] }) })] }) })] })] }));
101
134
  };
102
135
  const getStyledColumnBadgeDefinitionViewValueGroups = (styledColumn, api) => {
103
136
  const badgeStyle = styledColumn.BadgeStyle;
104
137
  if (!badgeStyle?.Badges?.length) {
105
138
  return [];
106
139
  }
107
- return badgeStyle.Badges.map((badge, index) => {
108
- const items = [];
109
- let rule = 'Always';
110
- if (badge.Predicate) {
111
- rule = api.predicateApi.predicateToString(badge.Predicate);
112
- }
113
- else if (badge.Expression) {
114
- rule = badge.Expression.BooleanExpression;
115
- }
116
- items.push(`Badge ${index + 1}: ${rule}`);
117
- items.push(`Shape: ${badge.Shape ?? 'Rounded'}`);
118
- (0, BadgePillStyleEditor_1.getBadgePillStyleSummaryItems)(badge.PillStyle).forEach(({ label, value }) => {
119
- items.push(`${label}: ${value}`);
120
- });
121
- if (badge.Icon) {
122
- const iconName = 'name' in badge.Icon ? badge.Icon.name : 'Custom';
123
- items.push(`Icon: ${iconName}`);
124
- }
125
- if (badge.IconOnly) {
126
- items.push('Icon Only: Yes');
127
- }
128
- if (badge.Icon && badge.IconPosition) {
129
- items.push(`Icon Position: ${badge.IconPosition}`);
130
- }
131
- if (typeof badge.IconGap === 'number') {
132
- items.push(`Icon Gap: ${badge.IconGap}px`);
133
- }
134
- return items;
135
- });
140
+ return badgeStyle.Badges.map((badge) => getBadgeDefinitionSummaryItems(badge, api).map(({ label, value }) => `${label}: ${value}`));
136
141
  };
137
142
  exports.getStyledColumnBadgeDefinitionViewValueGroups = getStyledColumnBadgeDefinitionViewValueGroups;
138
143
  const getStyledColumnBadgeDefinitionViewValues = (styledColumn, api) => {
@@ -168,11 +173,11 @@ const getStyledColumnBadgeStyleViewValues = (styledColumn, api) => {
168
173
  };
169
174
  exports.getStyledColumnBadgeStyleViewValues = getStyledColumnBadgeStyleViewValues;
170
175
  const renderBadgeDefinitionSummaryTags = (styledColumn, api) => {
171
- const groups = (0, exports.getStyledColumnBadgeDefinitionViewValueGroups)(styledColumn, api);
172
- if (!groups.length) {
176
+ const badges = styledColumn.BadgeStyle?.Badges;
177
+ if (!badges?.length) {
173
178
  return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Badges Defined" });
174
179
  }
175
- return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-2", children: groups.map((items, index) => ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: items.map((item, itemIndex) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: item }, `${index}-${itemIndex}`))) }, index))) }));
180
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-2", children: badges.map((badge, index) => ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: [(0, jsx_runtime_1.jsxs)(Tag_1.Tag, { className: "twa:shrink-0", children: ["Badge ", index + 1] }), (0, SummaryColorTag_1.renderSummaryLabelValueTags)(getBadgeDefinitionSummaryItems(badge, api))] }, index))) }));
176
181
  };
177
182
  exports.renderBadgeDefinitionSummaryTags = renderBadgeDefinitionSummaryTags;
178
183
  const StyledColumnBadgeDefinitionsView = ({ data }) => {
@@ -181,30 +186,57 @@ const StyledColumnBadgeDefinitionsView = ({ data }) => {
181
186
  };
182
187
  exports.StyledColumnBadgeDefinitionsView = StyledColumnBadgeDefinitionsView;
183
188
  const renderBadgeSummary = (styledColumn, api) => {
184
- if (!api) {
185
- const { api: adaptableApi } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
186
- api = adaptableApi;
187
- }
188
189
  return (0, exports.renderBadgeDefinitionSummaryTags)(styledColumn, api);
189
190
  };
190
191
  exports.renderBadgeSummary = renderBadgeSummary;
191
192
  const StyledColumnBadgeSection = (props) => {
192
- const { data } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
193
+ const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
193
194
  const badgeStyle = data?.BadgeStyle ?? {};
194
195
  const badges = badgeStyle.Badges ?? [];
195
196
  const currentDensity = badgeStyle.Density ?? 'Normal';
196
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:justify-end", children: (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { icon: "plus", onClick: () => {
197
- props.onChange({
198
- ...data,
199
- BadgeStyle: {
200
- ...badgeStyle,
201
- Badges: [...badges, ObjectFactory_1.default.CreateDefaultStyledColumnBadge()],
202
- },
203
- });
204
- }, children: "Add Badge" }) }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:p-2", children: badges.map((badge, index) => {
205
- const handleEditBadge = (badge) => {
197
+ const dataType = data.ColumnId
198
+ ? api.columnApi.getColumnDataTypeForColumnId(data.ColumnId)
199
+ : 'text';
200
+ const previewValue = getBadgePreviewValue(dataType);
201
+ const initialExpandedCardId = badges.length === 1 ? badgeCardId(0) : null;
202
+ const { bindCard, hasExpandedCard, expandedFillsSpace, expandedId, setExpandedId } = (0, CollapsibleWizardCard_1.useWizardCardAccordion)(initialExpandedCardId);
203
+ const handleAddBadge = () => {
204
+ const newIndex = badges.length;
205
+ props.onChange({
206
+ ...data,
207
+ BadgeStyle: {
208
+ ...badgeStyle,
209
+ Badges: [...badges, ObjectFactory_1.default.CreateDefaultStyledColumnBadge()],
210
+ },
211
+ });
212
+ setExpandedId(badgeCardId(newIndex));
213
+ };
214
+ const handleDeleteBadge = (index) => {
215
+ const cardId = badgeCardId(index);
216
+ const newBadges = [...badges];
217
+ newBadges.splice(index, 1);
218
+ props.onChange({
219
+ ...data,
220
+ BadgeStyle: {
221
+ ...badgeStyle,
222
+ Badges: newBadges,
223
+ },
224
+ });
225
+ if (expandedId === cardId) {
226
+ setExpandedId(null);
227
+ return;
228
+ }
229
+ if (expandedId?.startsWith('badge-')) {
230
+ const expandedIndex = Number(expandedId.replace('badge-', ''));
231
+ if (!Number.isNaN(expandedIndex) && expandedIndex > index) {
232
+ setExpandedId(badgeCardId(expandedIndex - 1));
233
+ }
234
+ }
235
+ };
236
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: (0, utils_1.cn)((0, CollapsibleWizardCard_1.getWizardAccordionSectionClassName)(hasExpandedCard, expandedFillsSpace), 'twa:p-2'), children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:justify-end twa:mb-2 twa:shrink-0", children: (0, jsx_runtime_1.jsx)(ButtonNew_1.ButtonNew, { onClick: handleAddBadge, children: "Add Badge" }) }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:min-h-0", children: badges.map((badge, index) => {
237
+ const handleEditBadge = (nextBadge) => {
206
238
  const newBadges = [...badges];
207
- newBadges[index] = badge;
239
+ newBadges[index] = nextBadge;
208
240
  props.onChange({
209
241
  ...data,
210
242
  BadgeStyle: {
@@ -213,17 +245,7 @@ const StyledColumnBadgeSection = (props) => {
213
245
  },
214
246
  });
215
247
  };
216
- return ((0, jsx_runtime_1.jsx)(BadgeEditor, { index: index, badge: badge, density: currentDensity, columnId: data.ColumnId, onChange: handleEditBadge, onDelete: () => {
217
- const newBadges = [...badges];
218
- newBadges.splice(index, 1);
219
- props.onChange({
220
- ...data,
221
- BadgeStyle: {
222
- ...badgeStyle,
223
- Badges: newBadges,
224
- },
225
- });
226
- } }, index));
248
+ return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...bindCard(badgeCardId(index)), surface: "panel", "data-name": `styled-column-badge-${index}`, title: `Badge ${index + 1}`, collapsedHelp: false, headerVisual: (0, jsx_runtime_1.jsx)(BadgePreview, { badge: badge, density: currentDensity, previewValue: previewValue }), headerActions: (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { icon: "delete", variant: "text", tooltip: "Delete badge", onClick: () => handleDeleteBadge(index) }), summary: (0, jsx_runtime_1.jsx)(BadgeCardSummary, { badge: badge, api: api }), bodyClassName: "twa:!pt-0 twa:overflow-y-auto", children: (0, jsx_runtime_1.jsx)(BadgeEditorForm, { badge: badge, columnId: data.ColumnId, onChange: handleEditBadge }) }, badgeCardId(index)));
227
249
  }) })] }));
228
250
  };
229
251
  exports.StyledColumnBadgeSection = StyledColumnBadgeSection;
@@ -272,14 +294,10 @@ const StyledColumnBadgeStyleSection = (props) => {
272
294
  };
273
295
  exports.StyledColumnBadgeStyleSection = StyledColumnBadgeStyleSection;
274
296
  const renderBadgeStyleSummary = (styledColumn, api) => {
275
- if (!api) {
276
- const { api: adaptableApi } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
277
- api = adaptableApi;
278
- }
279
297
  const items = (0, exports.getStyledColumnBadgeStyleViewValues)(styledColumn, api);
280
298
  if (!items.length) {
281
299
  return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Style Defined" });
282
300
  }
283
- return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { alignItems: "center", className: "twa:flex-wrap twa:gap-2", children: items.map((item) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: item }, item))) }));
301
+ return (0, SummaryColorTag_1.renderSummaryStringTags)(items);
284
302
  };
285
303
  exports.renderBadgeStyleSummary = renderBadgeStyleSummary;