@adaptabletools/adaptable-cjs 23.0.0-canary.6 → 23.0.0-canary.8

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 (396) hide show
  1. package/icons/sort-asc.svg +1 -1
  2. package/index.css +828 -263
  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 +8 -850
  12. package/src/AdaptableState/StyledColumnState.js +0 -10
  13. package/src/AdaptableState/StyledColumns/BadgeStyle.d.ts +143 -0
  14. package/src/AdaptableState/StyledColumns/BadgeStyle.js +12 -0
  15. package/src/AdaptableState/StyledColumns/BulletChartStyle.d.ts +147 -0
  16. package/src/AdaptableState/StyledColumns/Common/BarChartCellText.d.ts +60 -0
  17. package/src/AdaptableState/StyledColumns/Common/BarChartCellText.js +7 -0
  18. package/src/AdaptableState/StyledColumns/Common/BarChartMarker.d.ts +24 -0
  19. package/src/AdaptableState/StyledColumns/Common/BarChartMarker.js +6 -0
  20. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.d.ts +13 -0
  21. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +7 -0
  22. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.d.ts +79 -0
  23. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +10 -0
  24. package/src/AdaptableState/StyledColumns/GradientStyle.d.ts +48 -0
  25. package/src/AdaptableState/StyledColumns/GradientStyle.js +2 -0
  26. package/src/AdaptableState/StyledColumns/IconStyle.d.ts +158 -0
  27. package/src/AdaptableState/StyledColumns/IconStyle.js +2 -0
  28. package/src/AdaptableState/StyledColumns/PercentBarStyle.d.ts +32 -0
  29. package/src/AdaptableState/StyledColumns/PercentBarStyle.js +2 -0
  30. package/src/AdaptableState/StyledColumns/RangeBarStyle.d.ts +155 -0
  31. package/src/AdaptableState/StyledColumns/RangeBarStyle.js +2 -0
  32. package/src/AdaptableState/StyledColumns/RatingStyle.d.ts +111 -0
  33. package/src/AdaptableState/StyledColumns/RatingStyle.js +2 -0
  34. package/src/AdaptableState/StyledColumns/SparklineStyle.d.ts +21 -0
  35. package/src/AdaptableState/StyledColumns/SparklineStyle.js +2 -0
  36. package/src/Api/ColumnScopeApi.d.ts +1 -1
  37. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +1 -1
  38. package/src/Api/Internal/AlertInternalApi.js +1 -1
  39. package/src/Api/Internal/DataSetInternalApi.d.ts +3 -0
  40. package/src/Api/Internal/DataSetInternalApi.js +73 -13
  41. package/src/Api/Internal/StyledColumnInternalApi.d.ts +3 -1
  42. package/src/Redux/Store/AdaptableStore.js +6 -4
  43. package/src/Strategy/CalculatedColumnModule.js +1 -0
  44. package/src/Strategy/ColumnFilterModule.js +1 -0
  45. package/src/Strategy/FlashingCellModule.js +6 -2
  46. package/src/Strategy/FormatColumnModule.js +1 -1
  47. package/src/Strategy/FreeTextColumnModule.js +38 -28
  48. package/src/Strategy/Interface/IModule.d.ts +3 -1
  49. package/src/Strategy/LayoutModule.js +15 -66
  50. package/src/Strategy/StyledColumnModule.js +11 -28
  51. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.d.ts +1 -0
  52. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -0
  53. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +2 -0
  54. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.js +17 -1
  55. package/src/Strategy/Utilities/Export/getExportRowsViewItems.d.ts +1 -0
  56. package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +5 -1
  57. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.d.ts +11 -0
  58. package/src/Strategy/Utilities/Layout/aggregationSummaryHelpers.js +111 -0
  59. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.d.ts +48 -0
  60. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +177 -0
  61. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +1 -0
  62. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -0
  63. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.d.ts +26 -0
  64. package/src/Strategy/Utilities/Layout/rowGroupSummaryHelpers.js +97 -0
  65. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +3 -5
  66. package/src/Utilities/Defaults/DefaultSettingsPanel.js +48 -42
  67. package/src/Utilities/Helpers/FormatHelper.js +3 -0
  68. package/src/Utilities/Helpers/IconStylePresets.d.ts +1 -1
  69. package/src/Utilities/Helpers/ScheduleHelper.js +2 -0
  70. package/src/Utilities/Helpers/StyleHelper.d.ts +18 -0
  71. package/src/Utilities/Helpers/StyleHelper.js +30 -1
  72. package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +3 -1
  73. package/src/Utilities/Helpers/StyledColumnGradientHelper.js +6 -4
  74. package/src/Utilities/Helpers/barChartCellText.d.ts +63 -0
  75. package/src/Utilities/Helpers/barChartCellText.js +333 -0
  76. package/src/Utilities/Helpers/percentBarPreviewHelper.d.ts +2 -1
  77. package/src/Utilities/Helpers/percentBarPreviewHelper.js +3 -8
  78. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +3 -0
  79. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +19 -0
  80. package/src/Utilities/getScopeViewItems.js +2 -0
  81. package/src/Utilities/wizardSelection.d.ts +10 -0
  82. package/src/Utilities/wizardSelection.js +22 -0
  83. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +2 -2
  84. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +2 -2
  85. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +3 -3
  86. package/src/View/Alert/AlertViewPanel.js +2 -2
  87. package/src/View/Alert/Utilities/getAlertButtonStyle.js +7 -4
  88. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +0 -1
  89. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +1 -6
  90. package/src/View/Alert/Wizard/AlertButtonsEditor.js +159 -125
  91. package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
  92. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +1 -2
  93. package/src/View/Alert/Wizard/AlertNotificationWizardSection.d.ts +1 -1
  94. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +4 -5
  95. package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +1 -1
  96. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -2
  97. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +1 -1
  98. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +30 -7
  99. package/src/View/Alert/Wizard/AlertWizard.js +12 -4
  100. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +2 -1
  101. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +3 -14
  102. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  103. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +4 -6
  104. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.d.ts +1 -1
  105. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +1 -2
  106. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  107. package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +29 -3
  108. package/src/View/CellSummary/CellSummaryViewPanel.js +4 -4
  109. package/src/View/Charting/ShowChartButton.js +8 -8
  110. package/src/View/ColumnInfo/ColumnInfo.js +21 -1
  111. package/src/View/Components/AdaptableObjectCollection/index.js +2 -3
  112. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +3 -2
  113. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +7 -6
  114. package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.d.ts +2 -0
  115. package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.js +6 -0
  116. package/src/View/Components/AdaptableObjectRow/index.js +2 -2
  117. package/src/View/Components/Buttons/ButtonBase/index.js +2 -3
  118. package/src/View/Components/Buttons/ButtonNew.d.ts +2 -0
  119. package/src/View/Components/Buttons/ButtonNew.js +1 -1
  120. package/src/View/Components/Buttons/EntityListActionButtons.js +3 -3
  121. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -0
  122. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +9 -9
  123. package/src/View/Components/ColumnFilter/ColumnFilter.js +15 -3
  124. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +2 -2
  125. package/src/View/Components/ColumnSelector/index.d.ts +12 -0
  126. package/src/View/Components/ColumnSelector/index.js +30 -6
  127. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +2 -2
  128. package/src/View/Components/ModuleValueSelector/index.js +2 -1
  129. package/src/View/Components/NewScopeComponent.js +3 -8
  130. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +5 -4
  131. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +4 -4
  132. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +3 -3
  133. package/src/View/Components/Popups/AdaptablePopup/Navigation.d.ts +3 -2
  134. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +38 -28
  135. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -4
  136. package/src/View/Components/Popups/AdaptablePopup/TopBar.js +2 -3
  137. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.d.ts +11 -0
  138. package/src/View/Components/Popups/AdaptablePopup/settingsPanelNavigationTypes.js +5 -0
  139. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.d.ts +3 -1
  140. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +27 -28
  141. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -1
  142. package/src/View/Components/RangesComponent.d.ts +4 -5
  143. package/src/View/Components/RangesComponent.js +95 -66
  144. package/src/View/Components/ReorderDraggable/index.js +2 -3
  145. package/src/View/Components/Selectors/BulkUpdateValueSelector.d.ts +0 -2
  146. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +3 -3
  147. package/src/View/Components/StyleComponent.js +30 -63
  148. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +9 -6
  149. package/src/View/Components/ToolPanel/ToolPanelPopup.d.ts +3 -13
  150. package/src/View/Components/ToolPanel/ToolPanelPopup.js +5 -80
  151. package/src/View/Components/ToolPanel/ToolPanelPopupSections.d.ts +17 -0
  152. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +81 -0
  153. package/src/View/Components/ValueSelector/index.d.ts +29 -0
  154. package/src/View/Components/ValueSelector/index.js +112 -29
  155. package/src/View/Components/wizardColumnListStyles.d.ts +10 -0
  156. package/src/View/Components/wizardColumnListStyles.js +13 -0
  157. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  158. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +4 -6
  159. package/src/View/CustomSort/Wizard/CustomSortWizard.js +2 -2
  160. package/src/View/Dashboard/DashboardPopup.d.ts +1 -11
  161. package/src/View/Dashboard/DashboardPopup.js +3 -67
  162. package/src/View/Dashboard/DashboardPopupSections.d.ts +20 -0
  163. package/src/View/Dashboard/DashboardPopupSections.js +73 -0
  164. package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -2
  165. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +1 -6
  166. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -20
  167. package/src/View/DataChangeHistory/DataChangeHistoryTable.d.ts +8 -0
  168. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +99 -0
  169. package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +5 -3
  170. package/src/View/DataChangeHistory/buildActionColumnButton.js +33 -41
  171. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.d.ts +15 -0
  172. package/src/View/DataChangeHistory/dataChangeHistoryHelpers.js +46 -0
  173. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  174. package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +32 -19
  175. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  176. package/src/View/DataSet/DataSetViewPanel.d.ts +2 -2
  177. package/src/View/Export/ExportDestinationPicker.js +4 -5
  178. package/src/View/Export/ExportSchedulesTab.js +3 -4
  179. package/src/View/Export/ExportViewPanel.js +2 -2
  180. package/src/View/Export/Wizard/ReportColumnsWizardSection.d.ts +2 -1
  181. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +2 -7
  182. package/src/View/Export/Wizard/ReportRowsWizardSection.d.ts +2 -1
  183. package/src/View/Export/Wizard/ReportRowsWizardSection.js +2 -5
  184. package/src/View/Filter/FilterViewPanel.js +1 -1
  185. package/src/View/FlashingCell/FlashingCellStyle.d.ts +4 -2
  186. package/src/View/FlashingCell/FlashingCellStyle.js +5 -3
  187. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.d.ts +2 -1
  188. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +5 -9
  189. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.d.ts +9 -0
  190. package/src/View/FlashingCell/Wizard/FlashingCellScopeSummary.js +10 -0
  191. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.d.ts +1 -1
  192. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +5 -1
  193. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.d.ts +0 -5
  194. package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +3 -8
  195. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -2
  196. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -1
  197. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +101 -44
  198. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.d.ts +0 -1
  199. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -6
  200. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +55 -15
  201. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +1 -1
  202. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.d.ts +2 -3
  203. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +5 -9
  204. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +4 -9
  205. package/src/View/FreeTextColumn/Utilities/getFreeTextColumnSettingsTags.js +3 -2
  206. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -2
  207. package/src/View/GridFilter/GridFilterPopupUI/index.js +3 -2
  208. package/src/View/GridFilter/GridFilterViewPanel.js +5 -5
  209. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +2 -3
  210. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  211. package/src/View/Layout/LayoutViewPanel.js +2 -2
  212. package/src/View/Layout/Wizard/LayoutWizard.js +24 -28
  213. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +13 -1
  214. package/src/View/Layout/Wizard/sections/AggregationsSection.js +77 -33
  215. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +4 -1
  216. package/src/View/Layout/Wizard/sections/ColumnsSection.js +154 -275
  217. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +4 -1
  218. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +146 -143
  219. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +5 -2
  220. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +22 -10
  221. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.d.ts +4 -1
  222. package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +21 -10
  223. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +5 -2
  224. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +23 -12
  225. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +7 -3
  226. package/src/View/Layout/Wizard/sections/RowSummarySection.js +130 -104
  227. package/src/View/Layout/Wizard/sections/SortSection.d.ts +12 -2
  228. package/src/View/Layout/Wizard/sections/SortSection.js +43 -18
  229. package/src/View/Layout/Wizard/sections/columnLayoutCards.d.ts +20 -0
  230. package/src/View/Layout/Wizard/sections/columnLayoutCards.js +167 -0
  231. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.d.ts +30 -0
  232. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +216 -0
  233. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.d.ts +8 -0
  234. package/src/View/Layout/Wizard/sections/layoutWizardAccordionHelpers.js +72 -0
  235. package/src/View/Layout/Wizard/sections/layoutWizardColumns.d.ts +11 -0
  236. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +57 -0
  237. package/src/View/License/LicenseWatermark.js +1 -1
  238. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.d.ts +1 -1
  239. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +1 -2
  240. package/src/View/Note/NoteEditor.js +2 -2
  241. package/src/View/QuickSearch/QuickSearchPopup.js +2 -3
  242. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  243. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +1 -1
  244. package/src/View/SmartEdit/SmartEditPopup.js +2 -2
  245. package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
  246. package/src/View/StateManagement/StateManagementPopup.js +1 -1
  247. package/src/View/StateManagement/components/ExportDropdown.d.ts +2 -2
  248. package/src/View/StateManagement/components/ExportDropdown.js +12 -13
  249. package/src/View/StatusBar/StatusBarPanel.js +2 -2
  250. package/src/View/StatusBar/StatusBarPopup.js +33 -5
  251. package/src/View/StatusBar/statusBarPanelHelpers.d.ts +2 -0
  252. package/src/View/StatusBar/statusBarPanelHelpers.js +11 -0
  253. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +3 -1
  254. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +13 -10
  255. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +2 -2
  256. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +143 -119
  257. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +1 -3
  258. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +7 -13
  259. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -1
  260. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.d.ts +5 -0
  261. package/src/View/StyledColumn/Wizard/StyledColumnTypeThumbnail.js +54 -0
  262. package/src/View/StyledColumn/Wizard/StyledColumnWizard.d.ts +2 -0
  263. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +28 -6
  264. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +76 -70
  265. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +2 -1
  266. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +83 -38
  267. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +172 -75
  268. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +2 -1
  269. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +1 -1
  270. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +31 -45
  271. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.d.ts +9 -0
  272. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.js +40 -0
  273. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.d.ts +23 -0
  274. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextPreview.js +62 -0
  275. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +1 -1
  276. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.d.ts +2 -1
  277. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +1 -1
  278. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +3 -2
  279. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +2 -1
  280. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +13 -17
  281. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.d.ts +2 -1
  282. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +5 -5
  283. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +2 -2
  284. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +13 -6
  285. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +11 -17
  286. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +2 -1
  287. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +26 -57
  288. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +93 -6
  289. package/src/View/UIHelper.d.ts +0 -2
  290. package/src/View/UIHelper.js +8 -24
  291. package/src/View/Wizard/CollapsibleWizardCard.d.ts +68 -0
  292. package/src/View/Wizard/CollapsibleWizardCard.js +90 -0
  293. package/src/View/Wizard/OnePageWizards.js +6 -6
  294. package/src/View/Wizard/SummaryColorTag.d.ts +24 -0
  295. package/src/View/Wizard/SummaryColorTag.js +79 -0
  296. package/src/View/Wizard/WizardTypeSelection.d.ts +34 -0
  297. package/src/View/Wizard/WizardTypeSelection.js +40 -0
  298. package/src/View/Wizard/rowGroupSummaryTags.d.ts +18 -0
  299. package/src/View/Wizard/rowGroupSummaryTags.js +21 -0
  300. package/src/View/Wizard/scopeSummaryTags.d.ts +6 -0
  301. package/src/View/Wizard/scopeSummaryTags.js +38 -0
  302. package/src/agGrid/AgGridAdapter.js +0 -5
  303. package/src/agGrid/AgGridColumnAdapter.js +3 -2
  304. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +4 -7
  305. package/src/agGrid/cellRenderers/BadgeRenderer.js +7 -5
  306. package/src/agGrid/cellRenderers/BulletChartRenderer.js +43 -42
  307. package/src/agGrid/cellRenderers/IconRenderer.d.ts +2 -1
  308. package/src/agGrid/cellRenderers/IconRenderer.js +13 -11
  309. package/src/agGrid/cellRenderers/PercentBarRenderer.js +24 -96
  310. package/src/agGrid/cellRenderers/RangeBarRenderer.js +49 -46
  311. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -1
  312. package/src/components/Card/index.js +5 -7
  313. package/src/components/CheckBox/index.js +2 -3
  314. package/src/components/CodeBlock/index.js +2 -3
  315. package/src/components/ColorPicker/ColorPicker.d.ts +1 -0
  316. package/src/components/ColorPicker/ColorPicker.js +8 -6
  317. package/src/components/ColorPicker/OptionalColorPicker.d.ts +12 -0
  318. package/src/components/ColorPicker/OptionalColorPicker.js +31 -0
  319. package/src/components/ColorPicker/index.d.ts +1 -0
  320. package/src/components/ColorPicker/index.js +1 -0
  321. package/src/components/Combobox/comboboxUtils.d.ts +1 -0
  322. package/src/components/Combobox/index.js +19 -18
  323. package/src/components/Dashboard/DashboardManager.js +2 -4
  324. package/src/components/Dialog/index.js +4 -4
  325. package/src/components/DragAndDropContext/DragAndDropContext.d.ts +5 -0
  326. package/src/components/DragAndDropContext/DragAndDropContext.js +4 -1
  327. package/src/components/DragAndDropContext/ModuleManager.d.ts +15 -3
  328. package/src/components/DragAndDropContext/ModuleManager.js +43 -4
  329. package/src/components/DragAndDropContext/TabList.d.ts +11 -4
  330. package/src/components/DragAndDropContext/TabList.js +52 -38
  331. package/src/components/DragAndDropContext/UnusedPanel.d.ts +4 -3
  332. package/src/components/DragAndDropContext/UnusedPanel.js +13 -9
  333. package/src/components/DragAndDropContext/dragScope.d.ts +6 -0
  334. package/src/components/DragAndDropContext/dragScope.js +34 -0
  335. package/src/components/DragAndDropContext/types.d.ts +7 -0
  336. package/src/components/DropdownButton/index.d.ts +33 -25
  337. package/src/components/DropdownButton/index.js +24 -158
  338. package/src/components/EmptyContent/index.js +2 -3
  339. package/src/components/ErrorBox/index.js +2 -3
  340. package/src/components/ExpressionEditor/BaseEditorInput.js +3 -3
  341. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +3 -3
  342. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +9 -9
  343. package/src/components/FieldWrap/index.js +2 -3
  344. package/src/components/Flex.js +2 -2
  345. package/src/components/FormLayout/index.d.ts +1 -1
  346. package/src/components/HelpBlock/index.js +3 -4
  347. package/src/components/IconSelector/IconSelector.d.ts +8 -0
  348. package/src/components/IconSelector/IconSelector.js +13 -8
  349. package/src/components/IconSelector/index.d.ts +1 -0
  350. package/src/components/IconSelector/index.js +3 -0
  351. package/src/components/Modal/index.js +2 -2
  352. package/src/components/NewSelect/index.js +11 -1
  353. package/src/components/Panel/index.js +7 -7
  354. package/src/components/Radio/index.d.ts +1 -1
  355. package/src/components/Radio/index.js +8 -6
  356. package/src/components/SimpleButton/index.js +7 -7
  357. package/src/components/StylePreview.js +2 -3
  358. package/src/components/Tabs/index.js +4 -4
  359. package/src/components/Tag/Tag.d.ts +16 -0
  360. package/src/components/Tag/Tag.js +16 -5
  361. package/src/components/Tag/columnScopeTagHelpers.d.ts +8 -0
  362. package/src/components/Tag/columnScopeTagHelpers.js +12 -0
  363. package/src/components/Tag/index.d.ts +1 -1
  364. package/src/components/Tag/index.js +3 -1
  365. package/src/components/Textarea/index.js +2 -3
  366. package/src/components/Toggle/Toggle.d.ts +2 -0
  367. package/src/components/Toggle/Toggle.js +14 -7
  368. package/src/components/Toggle/ToggleGroup.js +2 -2
  369. package/src/components/ToggleButton/index.js +4 -5
  370. package/src/components/Tree/TreeDropdown/index.js +3 -5
  371. package/src/components/WarningBox/index.js +2 -3
  372. package/src/components/icons/sort-asc.js +1 -1
  373. package/src/components/ui/button.d.ts +2 -2
  374. package/src/components/ui/combobox.d.ts +3 -1
  375. package/src/components/ui/combobox.js +2 -2
  376. package/src/components/ui/input-group.d.ts +1 -1
  377. package/src/components/ui/select.js +3 -2
  378. package/src/components/ui/textarea.js +1 -1
  379. package/src/env.js +2 -2
  380. package/src/layout-manager/src/index.js +7 -3
  381. package/src/metamodel/adaptable.metamodel.d.ts +80 -14
  382. package/src/metamodel/adaptable.metamodel.js +1 -1
  383. package/src/migration/VersionUpgrade23.d.ts +27 -31
  384. package/src/migration/VersionUpgrade23.js +110 -29
  385. package/src/types.d.ts +13 -2
  386. package/tsconfig.cjs.tsbuildinfo +1 -1
  387. package/src/View/DataChangeHistory/DataChangeHistoryGrid.d.ts +0 -17
  388. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -295
  389. package/src/components/DropdownButton/DropdownButtonItem.d.ts +0 -12
  390. package/src/components/DropdownButton/renderItem.d.ts +0 -14
  391. package/src/components/DropdownButton/renderItem.js +0 -14
  392. package/src/components/DropdownButton/useExpanded.d.ts +0 -24
  393. package/src/components/DropdownButton/useExpanded.js +0 -59
  394. package/src/components/NewDropdownButton/index.d.ts +0 -27
  395. package/src/components/NewDropdownButton/index.js +0 -28
  396. /package/src/{components/DropdownButton/DropdownButtonItem.js → AdaptableState/StyledColumns/BulletChartStyle.js} +0 -0
@@ -1,84 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DashboardPopup = exports.DashboardConfigView = void 0;
3
+ exports.DashboardPopup = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const react_redux_1 = require("react-redux");
8
8
  const DashboardRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/DashboardRedux"));
9
9
  const PopupPanel_1 = require("../Components/Popups/AdaptablePopup/PopupPanel");
10
- const DashboardManager_1 = tslib_1.__importDefault(require("../../components/Dashboard/DashboardManager"));
11
10
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
12
- const ModuleValueSelector_1 = require("../Components/ModuleValueSelector");
13
- const PinnedToolbarsSelector_1 = require("./PinnedToolbarsSelector");
14
- const Flex_1 = require("../../components/Flex");
15
- const ToggleButton_1 = require("../../components/ToggleButton");
16
- const Tabs_1 = require("../../components/Tabs");
17
- const Card_1 = require("../../components/Card");
18
- var DashboardConfigView;
19
- (function (DashboardConfigView) {
20
- DashboardConfigView["Toolbars"] = "Toolbars";
21
- DashboardConfigView["Buttons"] = "Buttons";
22
- DashboardConfigView["PinnedToolbars"] = "PinnedToolbars";
23
- })(DashboardConfigView || (exports.DashboardConfigView = DashboardConfigView = {}));
11
+ const DashboardPopupSections_1 = require("./DashboardPopupSections");
24
12
  class DashboardPopupComponent extends React.Component {
25
- constructor(props) {
26
- super(props);
27
- this.state = {
28
- DashboardConfigView: DashboardConfigView.Toolbars,
29
- };
30
- }
31
13
  render() {
32
- const systemToolbars = this.props.api.dashboardApi.internalApi
33
- .getModuleToolbars()
34
- .map((toolbar) => ({
35
- Id: toolbar.id,
36
- Title: toolbar.friendlyName,
37
- }));
38
- const customToolbars = this.props.api.dashboardApi.getCustomToolbars().map((ct) => ({
39
- Id: ct.name,
40
- Title: ct.title ? ct.title : ct.name,
41
- }));
42
- const tabs = this.props.DashboardState.Tabs.map((tab) => {
43
- const Toolbars = tab.Toolbars.filter((vt) => {
44
- let customToolbar = this.props.api.dashboardApi
45
- .getCustomToolbars()
46
- .find((ct) => ct.name === vt);
47
- return customToolbar
48
- ? true
49
- : this.props.api.internalApi
50
- .getModuleService()
51
- .isAdapTableModulePresent(vt);
52
- });
53
- return { ...tab, Toolbars };
54
- });
55
- let selectedModuleButtons = [];
56
- this.props.DashboardState.ModuleButtons.forEach((x) => {
57
- let menuItem = this.props.InternalState.SettingsPanelModuleEntries.find((m) => m.category == x);
58
- if (menuItem?.isVisible) {
59
- selectedModuleButtons.push(x);
60
- }
61
- });
62
- const allModuleButtons = this.props.InternalState.SettingsPanelModuleEntries.map((x) => x.category);
63
- const baseClassName = 'ab-Dashboard-Popup';
64
14
  const dashboardAccessLevel = this.props.api.entitlementApi.getEntitlementAccessLevelForModule('Dashboard');
65
15
  const areDashboardSettingsVisible = dashboardAccessLevel == GeneralConstants_1.ACCESS_LEVEL_FULL || dashboardAccessLevel == GeneralConstants_1.ACCESS_LEVEL_READ_ONLY;
66
16
  const isDashboardDisabled = dashboardAccessLevel === GeneralConstants_1.ACCESS_LEVEL_READ_ONLY;
67
- const isModuleCheckboxDisabled = (module) => {
68
- if (module === 'SettingsPanel') {
69
- return this.props.api.optionsApi.getSettingsPanelOptions().alwaysShowInDashboard;
70
- }
71
- return false;
72
- };
73
- const contentCls = '';
74
- return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { headerText: this.props.moduleInfo.FriendlyName, glyphicon: this.props.moduleInfo.Glyph, infoLink: this.props.moduleInfo.HelpPage, infoLinkDisabled: !this.props.api.internalApi.isDocumentationLinksDisplayed(), children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:h-full twa:gap-4", children: [areDashboardSettingsVisible && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(Card_1.Card, { children: [(0, jsx_runtime_1.jsx)(Card_1.Card.Title, { gap: 8, children: "Display Settings" }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { gap: 2, className: "twa:p-2", children: (0, jsx_runtime_1.jsxs)("div", { className: "twa:flex twa:flex-row twa:items-center twa:justify-start twa:gap-3", children: [(0, jsx_runtime_1.jsx)(ToggleButton_1.ToggleButton, { className: "twa:w-24", onChange: (visible) => this.props.onSetDashboardHidden(!visible), checked: !this.props.IsHidden, "data-name": "dashboard-visibility", children: this.props.IsHidden ? 'Hidden' : 'Visible' }), this.props.DashboardState.Tabs?.length > 0 ? ((0, jsx_runtime_1.jsx)(ToggleButton_1.ToggleButton, { disabled: this.props.IsFloating, className: "twa:w-24", onChange: (expanded) => this.props.onSetDashboardCollapsed(!expanded), checked: !this.props.IsCollapsed, "data-name": "expand-state", children: this.props.IsCollapsed ? 'Collapsed' : 'Expanded' })) : null, this.props.api.optionsApi.getDashboardOptions().canFloat ? ((0, jsx_runtime_1.jsx)(ToggleButton_1.ToggleButton, { className: "twa:w-24", onChange: (pinned) => this.props.onSetDashboardFloating(!pinned), checked: !this.props.IsFloating, "data-name": "floating", children: this.props.IsFloating ? 'Floating' : 'Pinned' })) : null] }) })] }) })), (0, jsx_runtime_1.jsxs)(Card_1.Card, { className: "twa:flex-1 twa:overflow-hidden", gap: 0, children: [(0, jsx_runtime_1.jsx)(Card_1.Card.Title, { children: "Contents" }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-2", children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { className: "twa:flex-1 twa:min-h-0", children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { value: "pinned-toolbars", children: "Pinned Toolbars" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { value: "tabbed-toolbars", children: "Tabs & Toolbars" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { value: "buttons", children: "Buttons" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { value: "pinned-toolbars", className: contentCls, children: (0, jsx_runtime_1.jsx)(PinnedToolbarsSelector_1.PinnedToolbarsSelector, {}) }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { value: "tabbed-toolbars", className: contentCls, children: (0, jsx_runtime_1.jsx)(DashboardManager_1.default, { disabled: isDashboardDisabled, availableToolbars: [...systemToolbars, ...customToolbars], tabs: tabs, onTabsChange: this.props.onDashboardSetTabs, api: this.props.api }) }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { value: "buttons", className: contentCls, children: (0, jsx_runtime_1.jsx)(ModuleValueSelector_1.ModuleValueSelector, { disabled: isDashboardDisabled, options: allModuleButtons, value: selectedModuleButtons, isOptionDisabled: isModuleCheckboxDisabled, onChange: (selectedValues) => this.props.onDashboardSetModuleButtons(selectedValues) }) })] }) })] })] }) }));
75
- }
76
- onDashboardConfigViewChanged(event) {
77
- let e = event.target;
78
- let dashboardConfigView = e.value;
79
- this.setState({
80
- DashboardConfigView: dashboardConfigView,
81
- });
17
+ return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { headerText: this.props.moduleInfo.FriendlyName, glyphicon: this.props.moduleInfo.Glyph, infoLink: this.props.moduleInfo.HelpPage, infoLinkDisabled: !this.props.api.internalApi.isDocumentationLinksDisplayed(), bodyClassName: "twa:gap-3 twa:flex twa:flex-col", children: (0, jsx_runtime_1.jsx)(DashboardPopupSections_1.DashboardPopupSections, { DashboardState: this.props.DashboardState, InternalState: this.props.InternalState, IsCollapsed: this.props.IsCollapsed, IsHidden: this.props.IsHidden, IsFloating: this.props.IsFloating, isDashboardDisabled: isDashboardDisabled, areDashboardSettingsVisible: areDashboardSettingsVisible, canFloat: this.props.api.optionsApi.getDashboardOptions().canFloat ?? false, onDashboardSetModuleButtons: this.props.onDashboardSetModuleButtons, onDashboardSetTabs: this.props.onDashboardSetTabs, onSetDashboardCollapsed: this.props.onSetDashboardCollapsed, onSetDashboardHidden: this.props.onSetDashboardHidden, onSetDashboardFloating: this.props.onSetDashboardFloating }) }));
82
18
  }
83
19
  }
84
20
  function mapStateToProps(state, ownProps) {
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { InternalState } from '../../AdaptableState/InternalState';
3
+ import { DashboardState, DashboardTab } from '../../AdaptableState/DashboardState';
4
+ import { AdaptableModuleButtons } from '../../AdaptableState/Common/Types';
5
+ export interface DashboardPopupSectionsProps {
6
+ DashboardState: DashboardState;
7
+ InternalState: InternalState;
8
+ IsCollapsed: boolean;
9
+ IsHidden: boolean;
10
+ IsFloating: boolean;
11
+ isDashboardDisabled: boolean;
12
+ areDashboardSettingsVisible: boolean;
13
+ canFloat: boolean;
14
+ onDashboardSetModuleButtons: (moduleButtons: AdaptableModuleButtons) => void;
15
+ onDashboardSetTabs: (tabs: DashboardTab[]) => void;
16
+ onSetDashboardCollapsed: (isCollapsed: boolean) => void;
17
+ onSetDashboardHidden: (isHidden: boolean) => void;
18
+ onSetDashboardFloating: (isFloating: boolean) => void;
19
+ }
20
+ export declare const DashboardPopupSections: React.FunctionComponent<DashboardPopupSectionsProps>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DashboardPopupSections = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const React = tslib_1.__importStar(require("react"));
7
+ const DashboardManager_1 = tslib_1.__importDefault(require("../../components/Dashboard/DashboardManager"));
8
+ const ModuleValueSelector_1 = require("../Components/ModuleValueSelector");
9
+ const PinnedToolbarsSelector_1 = require("./PinnedToolbarsSelector");
10
+ const Flex_1 = require("../../components/Flex");
11
+ const Tag_1 = require("../../components/Tag");
12
+ const ToggleButton_1 = require("../../components/ToggleButton");
13
+ const AdaptableContext_1 = require("../AdaptableContext");
14
+ const CollapsibleWizardCard_1 = require("../Wizard/CollapsibleWizardCard");
15
+ const DashboardSettingsToggles = ({ isHidden, isCollapsed, isFloating, hasTabs, canFloat, className, onSetHidden, onSetCollapsed, onSetFloating, }) => ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: className ?? 'twa:gap-3 twa:p-1', children: [(0, jsx_runtime_1.jsx)(ToggleButton_1.ToggleButton, { className: "twa:w-24", onChange: (visible) => onSetHidden(!visible), checked: !isHidden, "data-name": "dashboard-visibility", children: isHidden ? 'Hidden' : 'Visible' }), hasTabs ? ((0, jsx_runtime_1.jsx)(ToggleButton_1.ToggleButton, { disabled: isFloating, className: "twa:w-24", onChange: (expanded) => onSetCollapsed(!expanded), checked: !isCollapsed, "data-name": "expand-state", children: isCollapsed ? 'Collapsed' : 'Expanded' })) : null, canFloat ? ((0, jsx_runtime_1.jsx)(ToggleButton_1.ToggleButton, { className: "twa:w-24", onChange: (pinned) => onSetFloating(!pinned), checked: !isFloating, "data-name": "floating", children: isFloating ? 'Floating' : 'Pinned' })) : null] }));
16
+ const DashboardPopupSections = (props) => {
17
+ const { api } = (0, AdaptableContext_1.useAdaptable)();
18
+ const { bindCard } = (0, CollapsibleWizardCard_1.useWizardCardAccordion)(null);
19
+ const systemToolbars = api.dashboardApi.internalApi.getModuleToolbars().map((toolbar) => ({
20
+ Id: toolbar.id,
21
+ Title: toolbar.friendlyName,
22
+ }));
23
+ const customToolbars = api.dashboardApi.getCustomToolbars().map((ct) => ({
24
+ Id: ct.name,
25
+ Title: ct.title ? ct.title : ct.name,
26
+ }));
27
+ const allToolbars = [...systemToolbars, ...customToolbars];
28
+ const toolbarTitleById = React.useMemo(() => allToolbars.reduce((map, toolbar) => {
29
+ map.set(toolbar.Id, toolbar.Title);
30
+ return map;
31
+ }, new Map()), [allToolbars]);
32
+ const tabs = props.DashboardState.Tabs.map((tab) => {
33
+ const Toolbars = tab.Toolbars.filter((vt) => {
34
+ const customToolbar = api.dashboardApi
35
+ .getCustomToolbars()
36
+ .find((ct) => ct.name === vt);
37
+ return customToolbar
38
+ ? true
39
+ : api.internalApi.getModuleService().isAdapTableModulePresent(vt);
40
+ });
41
+ return { ...tab, Toolbars };
42
+ });
43
+ const selectedModuleButtons = [];
44
+ props.DashboardState.ModuleButtons?.forEach((module) => {
45
+ const menuItem = props.InternalState.SettingsPanelModuleEntries.find((entry) => entry.category === module);
46
+ if (menuItem?.isVisible) {
47
+ selectedModuleButtons.push(module);
48
+ }
49
+ });
50
+ const allModuleButtons = props.InternalState.SettingsPanelModuleEntries.map((entry) => entry.category);
51
+ const isModuleCheckboxDisabled = (module) => {
52
+ if (module === 'SettingsPanel') {
53
+ return api.optionsApi.getSettingsPanelOptions().alwaysShowInDashboard;
54
+ }
55
+ return false;
56
+ };
57
+ const pinnedToolbarIds = props.DashboardState.PinnedToolbars ?? [];
58
+ const pinnedToolbarTitles = pinnedToolbarIds.map((id) => toolbarTitleById.get(id) ?? id);
59
+ const moduleButtonLabels = selectedModuleButtons.map((module) => api.internalApi.getModuleService().getModuleFriendlyName(module) ?? module);
60
+ const tabsCompactLabels = tabs.flatMap((tab) => {
61
+ const toolbarTitles = tab.Toolbars.map((toolbarId) => toolbarTitleById.get(toolbarId) ?? toolbarId);
62
+ return [`Tab: ${tab.Name}`, ...toolbarTitles];
63
+ });
64
+ const settingsToggles = ((0, jsx_runtime_1.jsx)(DashboardSettingsToggles, { isHidden: props.IsHidden, isCollapsed: props.IsCollapsed, isFloating: props.IsFloating, hasTabs: tabs.length > 0, canFloat: props.canFloat, onSetHidden: props.onSetDashboardHidden, onSetCollapsed: props.onSetDashboardCollapsed, onSetFloating: props.onSetDashboardFloating }));
65
+ const pinnedSummary = pinnedToolbarTitles.length > 0 ? ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", alignItems: "center", className: "twa:gap-1", children: pinnedToolbarTitles.map((title, index) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: title }, `${title}-${index}`))) })) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Pinned Toolbars" }));
66
+ const tabsSummary = tabs.length > 0 ? ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-2", children: tabs.map((tab) => {
67
+ const toolbarTitles = tab.Toolbars.map((toolbarId) => toolbarTitleById.get(toolbarId) ?? toolbarId);
68
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexWrap: "wrap", alignItems: "center", className: "twa:gap-1", children: [(0, jsx_runtime_1.jsxs)(Tag_1.Tag, { children: ["Tab: ", tab.Name] }), toolbarTitles.map((title, index) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: title }, `${tab.Name}-${title}-${index}`)))] }, tab.Uuid ?? tab.Name));
69
+ }) })) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Tabs Configured" }));
70
+ const moduleButtonsSummary = moduleButtonLabels.length > 0 ? ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", alignItems: "center", className: "twa:gap-1", children: moduleButtonLabels.map((label) => ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: label }, label))) })) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Module Buttons" }));
71
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:h-full twa:min-h-0 twa:gap-3 twa:overflow-y-auto", children: [props.areDashboardSettingsVisible && ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...bindCard('settings'), "data-name": "dashboard-settings", title: "Settings", help: "Control Dashboard visibility, expansion and floating mode", compactSummary: settingsToggles, compactSummaryInteractive: true, summary: settingsToggles, className: "twa:overflow-hidden", children: settingsToggles })), (0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...bindCard('pinned-toolbars'), "data-name": "dashboard-pinned-toolbars", title: "Pinned Toolbars", help: "Optional strip along the top of the grid \u2014 pin Toolbars you want always visible (e.g. Grid Filter)", compactSummary: (0, CollapsibleWizardCard_1.renderCompactColumnTags)(pinnedToolbarTitles, (title) => title, { emptyLabel: 'No Pinned Toolbars' }), summary: pinnedSummary, className: "twa:overflow-hidden twa:flex twa:flex-col", bodyClassName: "twa:min-h-[200px] twa:overflow-hidden", children: (0, jsx_runtime_1.jsx)(PinnedToolbarsSelector_1.PinnedToolbarsSelector, {}) }), (0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...bindCard('tabs-toolbars'), "data-name": "dashboard-tabs-toolbars", title: "Tabs & Toolbars", help: "Group Toolbars into named Tabs in the Dashboard header (independent of Pinned Toolbars)", compactSummary: (0, CollapsibleWizardCard_1.renderCompactColumnTags)(tabsCompactLabels, (label) => label, { emptyLabel: 'No Tabs Configured' }), summary: tabsSummary, className: "twa:overflow-hidden twa:flex twa:flex-col", bodyClassName: "twa:min-h-[280px] twa:overflow-hidden", children: (0, jsx_runtime_1.jsx)(DashboardManager_1.default, { disabled: props.isDashboardDisabled, availableToolbars: [...systemToolbars, ...customToolbars], tabs: tabs, onTabsChange: props.onDashboardSetTabs, api: api }) }), (0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...bindCard('module-buttons', { fillAvailable: true }), "data-name": "dashboard-module-buttons", title: "Module Buttons", help: "Buttons in the Dashboard header that open Module settings", compactSummary: (0, CollapsibleWizardCard_1.renderCompactColumnTags)(moduleButtonLabels, (label) => label, { emptyLabel: 'No Module Buttons' }), summary: moduleButtonsSummary, className: "twa:overflow-hidden twa:flex twa:flex-col", bodyClassName: "twa:min-h-[240px] twa:overflow-hidden twa:flex twa:flex-col twa:!pt-0 twa:!pb-0 twa:px-1", children: (0, jsx_runtime_1.jsx)(ModuleValueSelector_1.ModuleValueSelector, { disabled: props.isDashboardDisabled, options: allModuleButtons, value: selectedModuleButtons, isOptionDisabled: isModuleCheckboxDisabled, onChange: (selectedValues) => props.onDashboardSetModuleButtons(selectedValues) }) })] }));
72
+ };
73
+ exports.DashboardPopupSections = DashboardPopupSections;
@@ -36,13 +36,13 @@ const PinnedToolbarsSelector = (props) => {
36
36
  },
37
37
  ];
38
38
  }, [pinnedToolbars]);
39
- return ((0, jsx_runtime_1.jsx)(ModuleManager_1.ModuleManager, { className: "twa:flex-1", permittedActions: {
39
+ return ((0, jsx_runtime_1.jsx)(ModuleManager_1.ModuleManager, { dragScope: "dashboard-pinned", layout: "strip", permittedActions: {
40
40
  createTab: false,
41
41
  dragAndDropTab: false,
42
42
  deleteTab: false,
43
43
  editTabName: false,
44
44
  }, onTabsChange: (tabs) => {
45
45
  dispatch((0, DashboardRedux_1.DashboardSetPinnedToolbars)(tabs[0].Items));
46
- }, disabled: isDashboardDisabled, tabs: tabs, availableItems: toolbars, filterOutSelectedItems: true, tabsTitle: 'Pinned Toolbars', unusedPanelTitle: "Available Pinned Toolbars", dragItemText: "Drag into the Panel below" }));
46
+ }, disabled: isDashboardDisabled, tabs: tabs, availableItems: toolbars, filterOutSelectedItems: true }));
47
47
  };
48
48
  exports.PinnedToolbarsSelector = PinnedToolbarsSelector;
@@ -3,7 +3,6 @@ import * as React from 'react';
3
3
  import { CellDataChangedInfo } from '../../AdaptableState/Common/CellDataChangedInfo';
4
4
  import { DataChangeHistoryDisableAction, DataChangeHistoryEnableAction, DataChangeHistoryResumeAction, DataChangeHistorySuspendAction } from '../../Redux/ActionsReducers/InternalRedux';
5
5
  import { DataChangeHistoryMode } from '../../AdaptableState/InternalState';
6
- import { AdaptableApi } from '../../Api/AdaptableApi';
7
6
  interface DataChangeHistoryPopupProps extends ModuleViewPopupProps<DataChangeHistoryPopupComponent> {
8
7
  changeHistoryLog: Record<string, CellDataChangedInfo>;
9
8
  changeHistoryMode: DataChangeHistoryMode;
@@ -14,11 +13,7 @@ interface DataChangeHistoryPopupProps extends ModuleViewPopupProps<DataChangeHis
14
13
  onChangeHistorySuspend: () => DataChangeHistorySuspendAction;
15
14
  onChangeHistoryResume: () => DataChangeHistoryResumeAction;
16
15
  }
17
- interface DataChangeHistoryPopupState {
18
- dataChangeHistoryAdaptableApi: AdaptableApi | undefined;
19
- }
20
- declare class DataChangeHistoryPopupComponent extends React.Component<DataChangeHistoryPopupProps, DataChangeHistoryPopupState> {
21
- constructor(props: DataChangeHistoryPopupProps);
16
+ declare class DataChangeHistoryPopupComponent extends React.Component<DataChangeHistoryPopupProps> {
22
17
  render(): React.JSX.Element;
23
18
  }
24
19
  export declare let DataChangeHistoryPopup: import("react-redux").ConnectedComponent<typeof DataChangeHistoryPopupComponent, {
@@ -6,7 +6,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const react_redux_1 = require("react-redux");
8
8
  const PopupPanel_1 = require("../Components/Popups/AdaptablePopup/PopupPanel");
9
- const DataChangeHistoryGrid_1 = require("./DataChangeHistoryGrid");
9
+ const DataChangeHistoryTable_1 = require("./DataChangeHistoryTable");
10
10
  const InternalRedux_1 = require("../../Redux/ActionsReducers/InternalRedux");
11
11
  const ButtonPlay_1 = require("../Components/Buttons/ButtonPlay");
12
12
  const ButtonPause_1 = require("../Components/Buttons/ButtonPause");
@@ -14,42 +14,30 @@ const ButtonStop_1 = require("../Components/Buttons/ButtonStop");
14
14
  const FormatHelper_1 = require("../../Utilities/Helpers/FormatHelper");
15
15
  const Flex_1 = require("../../components/Flex");
16
16
  class DataChangeHistoryPopupComponent extends React.Component {
17
- constructor(props) {
18
- super(props);
19
- this.state = {
20
- dataChangeHistoryAdaptableApi: undefined,
21
- };
22
- }
23
17
  render() {
24
- const { changeHistoryMode, activationTime, suspensionTime, onChangeHistoryEnable, onChangeHistoryDisable, onChangeHistorySuspend, onChangeHistoryResume, } = this.props;
25
- const adaptableContainerId = 'dataChangeHistoryAdaptableContainer';
26
- const agGridContainerId = 'dataChangeHistoryAgGridContainer';
18
+ const { changeHistoryMode, activationTime, suspensionTime, onChangeHistoryEnable, onChangeHistoryDisable, onChangeHistorySuspend, onChangeHistoryResume, changeHistoryLog, } = this.props;
27
19
  const enabled = changeHistoryMode === 'ACTIVE';
28
20
  const disabled = changeHistoryMode === 'INACTIVE';
29
21
  const suspended = changeHistoryMode === 'SUSPENDED';
30
- const buttonPanel = ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "ab-DataChangeHistoryPopup--button-panel twa:gap-1 twa:p-2", children: [disabled && ((0, jsx_runtime_1.jsx)(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-activate", "data-name": 'data-change-history--button-activate"', variant: 'raised', tone: 'accent', tooltip: '', onClick: () => onChangeHistoryEnable(), children: "Activate" })), suspended && ((0, jsx_runtime_1.jsx)(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-resume", "data-name": 'data-change-history--button-resume', variant: 'outlined', tooltip: 'Resume tracking data changes', onClick: () => onChangeHistoryResume(), children: "Resume" })), enabled && ((0, jsx_runtime_1.jsx)(ButtonPause_1.ButtonPause, { className: "ab-DataChangeHistoryPopup--button-suspend", "data-name": 'data-change-history--button-suspend', variant: 'outlined', tooltip: 'Suspend tracking data changes', onClick: () => onChangeHistorySuspend(), children: "Suspend" })), (enabled || suspended) && ((0, jsx_runtime_1.jsx)(ButtonStop_1.ButtonStop, { className: "ab-DataChangeHistoryPopup--button-deactivate", "data-name": 'data-change-history--button-deactivate', variant: 'outlined', tooltip: 'Deactivate data change tracking', onClick: () => onChangeHistoryDisable(), children: "Deactivate" }))] }));
22
+ const buttonPanel = ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "ab-DataChangeHistoryPopup--button-panel twa:gap-1 twa:p-2", children: [disabled && ((0, jsx_runtime_1.jsx)(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-activate", "data-name": 'data-change-history--button-activate', variant: 'raised', tone: 'accent', tooltip: '', onClick: () => onChangeHistoryEnable(), children: "Activate" })), suspended && ((0, jsx_runtime_1.jsx)(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-resume", "data-name": 'data-change-history--button-resume', variant: 'outlined', tooltip: 'Resume tracking data changes', onClick: () => onChangeHistoryResume(), children: "Resume" })), enabled && ((0, jsx_runtime_1.jsx)(ButtonPause_1.ButtonPause, { className: "ab-DataChangeHistoryPopup--button-suspend", "data-name": 'data-change-history--button-suspend', variant: 'outlined', tooltip: 'Suspend tracking data changes', onClick: () => onChangeHistorySuspend(), children: "Suspend" })), (enabled || suspended) && ((0, jsx_runtime_1.jsx)(ButtonStop_1.ButtonStop, { className: "ab-DataChangeHistoryPopup--button-deactivate", "data-name": 'data-change-history--button-deactivate', variant: 'outlined', tooltip: 'Deactivate data change tracking', onClick: () => onChangeHistoryDisable(), children: "Deactivate" }))] }));
31
23
  const dateFormat = `${this.props.api.optionsApi.getUserInterfaceOptions().dateInputOptions.dateFormat} HH:mm:ss`;
32
24
  const statusPanel = ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "ab-DataChangeHistoryPopup--status-panel twa:gap-1", alignItems: 'center', children: [enabled && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "ab-DataChangeHistoryPanel--status-active twa:text-success twa:font-bold", children: "Active" }), !!activationTime && ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:text-2 twa:italic", children: ["(since ", (0, FormatHelper_1.DateFormatter)(activationTime, { Pattern: dateFormat }), ")"] }))] })), suspended && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "ab-DataChangeHistoryPopup--status-suspended twa:text-warn twa:font-bold", children: "Suspended" }), !!suspensionTime && ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:text-2 twa:italic", children: ["(since ", (0, FormatHelper_1.DateFormatter)(suspensionTime, { Pattern: dateFormat }), ")"] }))] })), disabled && (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "ab-DataChangeHistoryPopup--status-disabled twa:text-2" })] }));
33
25
  const handleChangeUndo = (changeKey) => {
34
- const changeToBeUndone = this.props.changeHistoryLog[changeKey];
26
+ const changeToBeUndone = changeHistoryLog[changeKey];
35
27
  if (changeToBeUndone) {
36
28
  this.props.api.dataChangeHistoryApi.undoDataChangeHistoryEntry(changeToBeUndone);
37
29
  }
38
30
  };
39
31
  const handleClearRow = (changeKey) => {
40
- const changeToBeUndone = this.props.changeHistoryLog[changeKey];
41
- if (changeToBeUndone) {
42
- this.props.api.dataChangeHistoryApi.clearDataChangeHistoryEntry(changeToBeUndone);
32
+ const changeToBeCleared = changeHistoryLog[changeKey];
33
+ if (changeToBeCleared) {
34
+ this.props.api.dataChangeHistoryApi.clearDataChangeHistoryEntry(changeToBeCleared);
43
35
  }
44
36
  };
45
- const agGridThemeMode = this.props.api.internalApi
46
- .getAdaptableInstance()
47
- .agGridThemeAdapter.getAgGridThemeMode();
48
- const currentAgGridTheme = agGridThemeMode === 'legacy' ? this.props.api.themeApi.getAgGridCurrentThemeName() : '';
49
37
  return ((0, jsx_runtime_1.jsx)(PopupPanel_1.PopupPanel, { headerText: this.props.moduleInfo.FriendlyName, glyphicon: this.props.moduleInfo.Glyph, infoLink: this.props.moduleInfo.HelpPage, infoLinkDisabled: !this.props.api.internalApi.isDocumentationLinksDisplayed(), children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "ab-DataChangeHistoryPopup twa:h-full", flexDirection: "column", children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { style: {
50
38
  color: 'var(--ab-dashboard__color)',
51
39
  background: 'var(--ab-dashboard__background)',
52
- }, children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: 'row', children: [buttonPanel, statusPanel] }) }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "ab-DataChangeHistoryPopup--grid twa:flex-1 twa:self-stretch", "data-name": 'data-change-history--grid', flexDirection: 'column', children: [(0, jsx_runtime_1.jsx)("div", { id: adaptableContainerId }), (0, jsx_runtime_1.jsx)("div", { id: agGridContainerId, className: currentAgGridTheme, style: { height: '100%' } }), (0, jsx_runtime_1.jsx)(DataChangeHistoryGrid_1.DataChangeHistoryGrid, { adaptableContainerId: adaptableContainerId, agGridContainerId: agGridContainerId, changeHistoryLog: this.props.changeHistoryLog, onUndoChange: handleChangeUndo, onClearRow: handleClearRow })] })] }) }));
40
+ }, children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: 'row', children: [buttonPanel, statusPanel] }) }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "ab-DataChangeHistoryPopup--grid twa:flex-1 twa:self-stretch", "data-name": 'data-change-history--grid', flexDirection: 'column', children: (0, jsx_runtime_1.jsx)(DataChangeHistoryTable_1.DataChangeHistoryTable, { changeHistoryLog: changeHistoryLog, onUndoChange: handleChangeUndo, onClearRow: handleClearRow }) })] }) }));
53
41
  }
54
42
  }
55
43
  function mapStateToProps(state, ownProps) {
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { CellDataChangedInfo } from '../../AdaptableState/Common/CellDataChangedInfo';
3
+ export interface DataChangeHistoryTableProps {
4
+ changeHistoryLog: Record<string, CellDataChangedInfo>;
5
+ onUndoChange: (changeKey: string) => void;
6
+ onClearRow: (changeKey: string) => void;
7
+ }
8
+ export declare const DataChangeHistoryTable: React.FunctionComponent<DataChangeHistoryTableProps>;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataChangeHistoryTable = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const React = tslib_1.__importStar(require("react"));
7
+ const InfiniteTable_1 = require("../../components/InfiniteTable");
8
+ const Flex_1 = require("../../components/Flex");
9
+ const ModuleConstants_1 = require("../../Utilities/Constants/ModuleConstants");
10
+ const FormatHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/FormatHelper"));
11
+ const AdaptableContext_1 = require("../AdaptableContext");
12
+ const AdaptableButtonView_1 = require("../Components/AdaptableButton/AdaptableButtonView");
13
+ const buildActionColumnButton_1 = require("./buildActionColumnButton");
14
+ const dataChangeHistoryHelpers_1 = require("./dataChangeHistoryHelpers");
15
+ const tableDOMProps = {
16
+ style: {
17
+ height: '100%',
18
+ minWidth: '10rem',
19
+ },
20
+ };
21
+ const columnTypes = {
22
+ default: {
23
+ align: 'start',
24
+ defaultFlex: 1,
25
+ defaultSortable: false,
26
+ style: { fontSize: 'var(--ab-font-size-3)' },
27
+ },
28
+ };
29
+ const headerOptions = {
30
+ alwaysReserveSpaceForSortIcon: false,
31
+ };
32
+ const DataChangeHistoryTable = (props) => {
33
+ const { changeHistoryLog, onUndoChange, onClearRow } = props;
34
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
35
+ const undoChangeEnabled = adaptable.api.entitlementApi.isModuleFullEntitlement(ModuleConstants_1.DataChangeHistoryModuleId);
36
+ const rowData = React.useMemo(() => (0, dataChangeHistoryHelpers_1.mapChangeHistoryRowData)(changeHistoryLog, adaptable), [changeHistoryLog, adaptable]);
37
+ const changeHistoryButtons = React.useMemo(() => (0, buildActionColumnButton_1.buildChangeHistoryButtons)(adaptable.adaptableOptions?.dataChangeHistoryOptions, adaptable.api, onUndoChange, onClearRow), [adaptable, onUndoChange, onClearRow]);
38
+ const showActionColumn = undoChangeEnabled && !!changeHistoryButtons?.length;
39
+ const primaryKeyHeader = adaptable.api.columnApi.getPrimaryKeyColumn()?.friendlyName ?? 'Row ID';
40
+ const dateFormat = `${adaptable.api.optionsApi.getUserInterfaceOptions().dateInputOptions.dateFormat} HH:mm:ss`;
41
+ const columnsMap = React.useMemo(() => {
42
+ const columns = {
43
+ primaryKeyValue: {
44
+ header: `Row (${primaryKeyHeader})`,
45
+ valueGetter: (params) => (0, dataChangeHistoryHelpers_1.getChangeHistoryRowChangeInfo)(params.data)?.primaryKeyValue ?? '',
46
+ },
47
+ changedColumnLabel: {
48
+ field: 'changedColumnLabel',
49
+ header: 'Column',
50
+ },
51
+ oldValue: {
52
+ header: 'Previous',
53
+ valueGetter: (params) => (0, dataChangeHistoryHelpers_1.formatChangeHistoryCellValue)((0, dataChangeHistoryHelpers_1.getChangeHistoryRowChangeInfo)(params.data)?.oldValue),
54
+ },
55
+ newValue: {
56
+ header: 'New',
57
+ valueGetter: (params) => (0, dataChangeHistoryHelpers_1.formatChangeHistoryCellValue)((0, dataChangeHistoryHelpers_1.getChangeHistoryRowChangeInfo)(params.data)?.newValue),
58
+ },
59
+ changedAt: {
60
+ header: 'Changed',
61
+ valueGetter: (params) => {
62
+ const changedAt = (0, dataChangeHistoryHelpers_1.getChangeHistoryRowChangeInfo)(params.data)?.changedAt;
63
+ return changedAt != null
64
+ ? FormatHelper_1.default.DateFormatter(changedAt, { Pattern: dateFormat })
65
+ : '';
66
+ },
67
+ },
68
+ changeTriggerLabel: {
69
+ field: 'changeTriggerLabel',
70
+ header: 'Source',
71
+ defaultFlex: 0.75,
72
+ },
73
+ };
74
+ if (showActionColumn && changeHistoryButtons) {
75
+ columns.actions = {
76
+ header: ' ',
77
+ defaultWidth: 110,
78
+ render: (params) => {
79
+ const rowData = params.data;
80
+ if (!(0, dataChangeHistoryHelpers_1.getChangeHistoryRowChangeInfo)(rowData)) {
81
+ return null;
82
+ }
83
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "ab-ActionColumn twa:gap-0.5", children: changeHistoryButtons.map((button, index) => ((0, jsx_runtime_1.jsx)(AdaptableButtonView_1.AdaptableButtonView, { button: button, context: (0, buildActionColumnButton_1.buildDataChangeHistoryContext)(rowData, adaptable.api, onUndoChange, onClearRow), api: adaptable.api, defaults: AdaptableButtonView_1.ADAPTABLE_BUTTON_SURFACE_DEFAULTS.actionColumn }, index))) }));
84
+ },
85
+ };
86
+ }
87
+ return columns;
88
+ }, [
89
+ changeHistoryButtons,
90
+ dateFormat,
91
+ onClearRow,
92
+ onUndoChange,
93
+ primaryKeyHeader,
94
+ showActionColumn,
95
+ adaptable.api,
96
+ ]);
97
+ return ((0, jsx_runtime_1.jsx)(InfiniteTable_1.DataSource, { data: rowData, primaryKey: "primaryKey", children: (0, jsx_runtime_1.jsx)(InfiniteTable_1.InfiniteTableGrid, { columnTypes: columnTypes, headerOptions: headerOptions, domProps: tableDOMProps, columns: columnsMap, columnPinning: showActionColumn ? { actions: 'end' } : undefined }) }));
98
+ };
99
+ exports.DataChangeHistoryTable = DataChangeHistoryTable;
@@ -1,3 +1,5 @@
1
- import { IRowNode } from 'ag-grid-enterprise';
2
- import { ActionColumnContext, AdaptableApi, AdaptableButton, DataChangeHistoryOptions } from '../../types';
3
- export declare const buildActionColumnButton: (options: DataChangeHistoryOptions, parentAdapTableApi: AdaptableApi, undoRowNode: (rowNode: IRowNode) => void, clearRow: (rowNode: IRowNode) => void) => AdaptableButton<ActionColumnContext<any>>[];
1
+ import { DataChangeHistoryContext } from '../../AdaptableOptions/DataChangeHistoryOptions';
2
+ import { AdaptableApi, AdaptableButton, DataChangeHistoryOptions } from '../../types';
3
+ import { DataChangeHistoryData } from './dataChangeHistoryHelpers';
4
+ export declare const buildDataChangeHistoryContext: (rowData: DataChangeHistoryData, parentAdapTableApi: AdaptableApi, onUndoChange: (changeKey: string) => void, onClearRow: (changeKey: string) => void) => DataChangeHistoryContext;
5
+ export declare const buildChangeHistoryButtons: (options: DataChangeHistoryOptions, parentAdapTableApi: AdaptableApi, onUndoChange: (changeKey: string) => void, onClearRow: (changeKey: string) => void) => AdaptableButton<DataChangeHistoryContext>[] | null;
@@ -1,8 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildActionColumnButton = void 0;
4
- const buildActionColumnButton = (options, parentAdapTableApi, undoRowNode, clearRow) => {
5
- let changeHistoryButtons = options.changeHistoryButton;
3
+ exports.buildChangeHistoryButtons = exports.buildDataChangeHistoryContext = void 0;
4
+ const STUB_ACTION_COLUMN = {
5
+ columnId: 'undoActionColumn',
6
+ actionColumnButton: [],
7
+ };
8
+ const buildDataChangeHistoryContext = (rowData, parentAdapTableApi, onUndoChange, onClearRow) => {
9
+ const undoDataChange = () => onUndoChange(rowData.changeKey);
10
+ const clearRow = () => onClearRow(rowData.changeKey);
11
+ return {
12
+ actionColumn: STUB_ACTION_COLUMN,
13
+ primaryKeyValue: rowData.changeInfo.primaryKeyValue,
14
+ rowNode: undefined,
15
+ data: rowData,
16
+ ...parentAdapTableApi.internalApi.buildBaseContext(),
17
+ isGroupNode: false,
18
+ undoDataChange,
19
+ clearRow,
20
+ dataChangedInfo: rowData.changeInfo,
21
+ parentAdapTableApi,
22
+ };
23
+ };
24
+ exports.buildDataChangeHistoryContext = buildDataChangeHistoryContext;
25
+ const buildChangeHistoryButtons = (options, parentAdapTableApi, onUndoChange, onClearRow) => {
26
+ let changeHistoryButtons = options?.changeHistoryButton;
6
27
  if (!changeHistoryButtons ||
7
28
  (Array.isArray(changeHistoryButtons) && changeHistoryButtons.length === 0)) {
8
29
  return null;
@@ -10,78 +31,49 @@ const buildActionColumnButton = (options, parentAdapTableApi, undoRowNode, clear
10
31
  if (!Array.isArray(changeHistoryButtons)) {
11
32
  changeHistoryButtons = [changeHistoryButtons];
12
33
  }
13
- const isGroupNode = (context) => context.adaptableApi.gridApi.isGroupRowNode(context.rowNode);
14
- const onUndo = (context) => {
15
- const rowNode = context.rowNode;
16
- if (context.adaptableApi.gridApi.isGroupRowNode(rowNode)) {
17
- // undo all children
18
- const childrenNodes = context.rowNode?.childrenAfterFilter;
19
- if (childrenNodes) {
20
- childrenNodes.forEach((childNode) => undoRowNode(childNode));
21
- }
22
- }
23
- else {
24
- undoRowNode(rowNode);
25
- }
26
- };
27
- const onClearRow = (context) => {
28
- const rowNode = context.rowNode;
29
- clearRow(rowNode);
30
- };
31
- const buildContext = (context) => {
32
- const dataChangedInfo = context.rowNode.data.changeInfo;
33
- return {
34
- ...context,
35
- isGroupNode: isGroupNode(context),
36
- undoDataChange: () => onUndo(context),
37
- clearRow: () => onClearRow(context),
38
- dataChangedInfo,
39
- parentAdapTableApi,
40
- };
41
- };
42
34
  return changeHistoryButtons.map((actionColumnOption) => ({
43
35
  label: (button, context) => {
44
36
  if (typeof actionColumnOption.label !== 'function') {
45
37
  return actionColumnOption.label;
46
38
  }
47
- return actionColumnOption.label(button, buildContext(context));
39
+ return actionColumnOption.label(button, context);
48
40
  },
49
41
  buttonStyle: (button, context) => {
50
42
  if (typeof actionColumnOption.buttonStyle !== 'function') {
51
43
  return actionColumnOption.buttonStyle;
52
44
  }
53
- return actionColumnOption.buttonStyle(button, buildContext(context));
45
+ return actionColumnOption.buttonStyle(button, context);
54
46
  },
55
47
  tooltip: (button, context) => {
56
48
  if (typeof actionColumnOption.tooltip !== 'function') {
57
49
  return actionColumnOption.tooltip;
58
50
  }
59
- return actionColumnOption.tooltip(button, buildContext(context));
51
+ return actionColumnOption.tooltip(button, context);
60
52
  },
61
53
  disabled: (button, context) => {
62
54
  if (typeof actionColumnOption.disabled !== 'function') {
63
55
  return actionColumnOption.disabled;
64
56
  }
65
- return actionColumnOption.disabled(button, buildContext(context));
57
+ return actionColumnOption.disabled(button, context);
66
58
  },
67
59
  onClick: (button, context) => {
68
60
  if (actionColumnOption.action === 'undo') {
69
- onUndo(buildContext(context));
61
+ context.undoDataChange();
70
62
  }
71
63
  if (actionColumnOption.action === 'clear') {
72
- onClearRow(buildContext(context));
64
+ context.clearRow();
73
65
  }
74
66
  if (typeof actionColumnOption.onClick === 'function') {
75
- actionColumnOption.onClick(button, buildContext(context));
67
+ actionColumnOption.onClick(button, context);
76
68
  }
77
69
  },
78
70
  hidden: (button, context) => {
79
71
  if (typeof actionColumnOption.hidden !== 'function') {
80
72
  return actionColumnOption.hidden;
81
73
  }
82
- return actionColumnOption.hidden(button, buildContext(context));
74
+ return actionColumnOption.hidden(button, context);
83
75
  },
84
76
  icon: actionColumnOption.icon,
85
77
  }));
86
78
  };
87
- exports.buildActionColumnButton = buildActionColumnButton;
79
+ exports.buildChangeHistoryButtons = buildChangeHistoryButtons;
@@ -0,0 +1,15 @@
1
+ import { CellDataChangedInfo } from '../../AdaptableState/Common/CellDataChangedInfo';
2
+ import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
3
+ export interface DataChangeHistoryData {
4
+ primaryKey: string;
5
+ changeKey: string;
6
+ changeTriggerLabel: string;
7
+ changedColumnLabel: string;
8
+ changeInfo: CellDataChangedInfo;
9
+ }
10
+ export declare const getColumnHeaderLabel: (columnId: string, mainAdaptableInstance: IAdaptable) => string;
11
+ export declare const getChangeTriggerLabel: (changeInfo: CellDataChangedInfo) => string;
12
+ export declare const isValidChangeHistoryLogEntry: (changeInfo: CellDataChangedInfo | undefined) => changeInfo is CellDataChangedInfo;
13
+ export declare const mapChangeHistoryRowData: (changeHistoryLog: Record<string, CellDataChangedInfo>, mainAdaptableInstance: IAdaptable) => DataChangeHistoryData[];
14
+ export declare const getChangeHistoryRowChangeInfo: (rowData: Partial<DataChangeHistoryData> | undefined) => CellDataChangedInfo | undefined;
15
+ export declare const formatChangeHistoryCellValue: (value: unknown) => string;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatChangeHistoryCellValue = exports.getChangeHistoryRowChangeInfo = exports.mapChangeHistoryRowData = exports.isValidChangeHistoryLogEntry = exports.getChangeTriggerLabel = exports.getColumnHeaderLabel = void 0;
4
+ const headerMap = new Map();
5
+ const getColumnHeaderLabel = (columnId, mainAdaptableInstance) => {
6
+ if (!headerMap.has(columnId)) {
7
+ headerMap.set(columnId, mainAdaptableInstance.api.columnApi.getColumnWithColumnId(columnId)?.friendlyName ?? columnId);
8
+ }
9
+ return headerMap.get(columnId);
10
+ };
11
+ exports.getColumnHeaderLabel = getColumnHeaderLabel;
12
+ const getChangeTriggerLabel = (changeInfo) => {
13
+ return changeInfo.trigger === 'tick' ? 'Ticking' : 'User Edit';
14
+ };
15
+ exports.getChangeTriggerLabel = getChangeTriggerLabel;
16
+ const isValidChangeHistoryLogEntry = (changeInfo) => {
17
+ return !!changeInfo?.column?.columnId && changeInfo.changedAt != null;
18
+ };
19
+ exports.isValidChangeHistoryLogEntry = isValidChangeHistoryLogEntry;
20
+ const mapChangeHistoryRowData = (changeHistoryLog = {}, mainAdaptableInstance) => {
21
+ return Object.entries(changeHistoryLog)
22
+ .filter(([, changeInfo]) => (0, exports.isValidChangeHistoryLogEntry)(changeInfo))
23
+ .map(([changeKey, changeInfo]) => ({
24
+ primaryKey: `${changeKey}::${changeInfo.changedAt}`,
25
+ changeKey,
26
+ changeTriggerLabel: (0, exports.getChangeTriggerLabel)(changeInfo),
27
+ changedColumnLabel: (0, exports.getColumnHeaderLabel)(changeInfo.column.columnId, mainAdaptableInstance),
28
+ changeInfo,
29
+ }))
30
+ .sort((a, b) => b.changeInfo.changedAt - a.changeInfo.changedAt);
31
+ };
32
+ exports.mapChangeHistoryRowData = mapChangeHistoryRowData;
33
+ const getChangeHistoryRowChangeInfo = (rowData) => {
34
+ if (!(0, exports.isValidChangeHistoryLogEntry)(rowData?.changeInfo)) {
35
+ return undefined;
36
+ }
37
+ return rowData.changeInfo;
38
+ };
39
+ exports.getChangeHistoryRowChangeInfo = getChangeHistoryRowChangeInfo;
40
+ const formatChangeHistoryCellValue = (value) => {
41
+ if (value === null || value === undefined) {
42
+ return '';
43
+ }
44
+ return String(value);
45
+ };
46
+ exports.formatChangeHistoryCellValue = formatChangeHistoryCellValue;
@@ -69,7 +69,7 @@ const DataImportWizard = (props) => {
69
69
  return columnsMap
70
70
  ? columnsMap.reduce((acc, colMap) => {
71
71
  if (colMap.include && !colMap.abColumn) {
72
- acc[colMap.field] = `Field ${colMap.field} does not have a coresponding column.`;
72
+ acc[colMap.field] = `Field ${colMap.field} does not have a corresponding column.`;
73
73
  }
74
74
  return acc;
75
75
  }, {})