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

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 (318) hide show
  1. package/index.css +98 -17
  2. package/package.json +1 -1
  3. package/src/{Utilities → AdaptableState/Aggregations}/weightedAverage.js +2 -3
  4. package/src/AdaptableState/Common/Enums.d.ts +0 -12
  5. package/src/AdaptableState/Common/Enums.js +1 -16
  6. package/src/{Utilities → AdaptableState/Common}/MenuItem.d.ts +4 -4
  7. package/src/{Utilities → AdaptableState/Common}/MenuItem.js +1 -1
  8. package/src/AdaptableState/StyledColumnState.d.ts +8 -850
  9. package/src/AdaptableState/StyledColumnState.js +0 -10
  10. package/src/AdaptableState/StyledColumns/BadgeStyle.d.ts +143 -0
  11. package/src/AdaptableState/StyledColumns/BadgeStyle.js +12 -0
  12. package/src/AdaptableState/StyledColumns/BulletChartStyle.d.ts +147 -0
  13. package/src/AdaptableState/StyledColumns/BulletChartStyle.js +2 -0
  14. package/src/AdaptableState/StyledColumns/Common/BarStyleProperties.d.ts +84 -0
  15. package/src/AdaptableState/StyledColumns/Common/BarStyleProperties.js +6 -0
  16. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.d.ts +13 -0
  17. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +7 -0
  18. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.d.ts +79 -0
  19. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +10 -0
  20. package/src/AdaptableState/StyledColumns/GradientStyle.d.ts +48 -0
  21. package/src/AdaptableState/StyledColumns/GradientStyle.js +2 -0
  22. package/src/AdaptableState/StyledColumns/IconStyle.d.ts +158 -0
  23. package/src/AdaptableState/StyledColumns/IconStyle.js +2 -0
  24. package/src/AdaptableState/StyledColumns/PercentBarStyle.d.ts +32 -0
  25. package/src/AdaptableState/StyledColumns/PercentBarStyle.js +2 -0
  26. package/src/AdaptableState/StyledColumns/RangeBarStyle.d.ts +155 -0
  27. package/src/AdaptableState/StyledColumns/RangeBarStyle.js +2 -0
  28. package/src/AdaptableState/StyledColumns/RatingStyle.d.ts +111 -0
  29. package/src/AdaptableState/StyledColumns/RatingStyle.js +2 -0
  30. package/src/AdaptableState/StyledColumns/SparklineStyle.d.ts +21 -0
  31. package/src/AdaptableState/StyledColumns/SparklineStyle.js +2 -0
  32. package/src/Api/ColumnScopeApi.d.ts +1 -1
  33. package/src/Api/Implementation/AlertApiImpl.js +1 -1
  34. package/src/Api/Implementation/ChartingApiImpl.js +5 -5
  35. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +1 -1
  36. package/src/Api/Implementation/ExportApiImpl.js +1 -1
  37. package/src/Api/Implementation/LayoutHelpers.js +2 -3
  38. package/src/Api/Implementation/QuickSearchApiImpl.js +4 -4
  39. package/src/Api/Implementation/ThemeApiImpl.js +2 -2
  40. package/src/Api/Internal/ActionColumnInternalApi.js +2 -2
  41. package/src/Api/Internal/AlertInternalApi.js +1 -1
  42. package/src/Api/Internal/ChartingInternalApi.js +2 -2
  43. package/src/Api/Internal/ColumnInternalApi.js +2 -2
  44. package/src/Api/Internal/EventInternalApi.js +3 -4
  45. package/src/Api/Internal/ExportInternalApi.js +2 -2
  46. package/src/Api/Internal/FormatColumnInternalApi.js +4 -4
  47. package/src/Api/Internal/GridInternalApi.js +1 -1
  48. package/src/Api/Internal/StyledColumnInternalApi.d.ts +3 -1
  49. package/src/Api/Internal/StyledColumnInternalApi.js +6 -6
  50. package/src/Redux/ActionsReducers/ExportRedux.js +1 -1
  51. package/src/Redux/ActionsReducers/InternalRedux.js +1 -1
  52. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +2 -3
  53. package/src/Redux/Store/AdaptableReduxMerger.js +7 -9
  54. package/src/Redux/Store/AdaptableStore.js +5 -5
  55. package/src/Strategy/AdaptableModuleBase.d.ts +1 -1
  56. package/src/Strategy/AdaptableModuleBase.js +1 -1
  57. package/src/Strategy/AlertModule.d.ts +1 -1
  58. package/src/Strategy/AlertModule.js +2 -2
  59. package/src/Strategy/BulkUpdateModule.d.ts +1 -1
  60. package/src/Strategy/CalculatedColumnModule.d.ts +2 -2
  61. package/src/Strategy/CellSummaryModule.d.ts +2 -2
  62. package/src/Strategy/ChartingModule.d.ts +1 -1
  63. package/src/Strategy/ChartingModule.js +4 -4
  64. package/src/Strategy/ColumnInfoModule.d.ts +2 -2
  65. package/src/Strategy/CommentModule.d.ts +1 -1
  66. package/src/Strategy/CustomSortModule.d.ts +1 -1
  67. package/src/Strategy/ExportModule.js +2 -2
  68. package/src/Strategy/FlashingCellModule.d.ts +1 -1
  69. package/src/Strategy/FreeTextColumnModule.d.ts +1 -1
  70. package/src/Strategy/GridInfoModule.d.ts +2 -2
  71. package/src/Strategy/LayoutModule.js +2 -2
  72. package/src/Strategy/NoteModule.d.ts +1 -1
  73. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  74. package/src/Strategy/PlusMinusModule.js +8 -8
  75. package/src/Strategy/SettingsPanelModule.d.ts +2 -2
  76. package/src/Strategy/SmartEditModule.d.ts +1 -1
  77. package/src/Strategy/SystemStatusModule.d.ts +2 -2
  78. package/src/Strategy/TeamSharingModule.js +4 -4
  79. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +2 -3
  80. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +2 -2
  81. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +2 -3
  82. package/src/Utilities/Extensions/ArrayExtensions.d.ts +32 -0
  83. package/src/Utilities/Extensions/ArrayExtensions.js +54 -1
  84. package/src/Utilities/Extensions/NumberExtensions.d.ts +21 -0
  85. package/src/Utilities/Extensions/NumberExtensions.js +78 -0
  86. package/src/Utilities/Extensions/ObjectExtensions.d.ts +44 -0
  87. package/src/Utilities/Extensions/ObjectExtensions.js +277 -0
  88. package/src/Utilities/Extensions/StringExtensions.d.ts +26 -0
  89. package/src/Utilities/Extensions/StringExtensions.js +49 -3
  90. package/src/Utilities/Helpers/AdaptableHelper.js +7 -7
  91. package/src/Utilities/Helpers/{alertFormHelper.js → AlertHelper.js} +1 -1
  92. package/src/Utilities/Helpers/DateHelper.js +2 -2
  93. package/src/Utilities/Helpers/{FormatHelper.js → DisplayFormatHelper.js} +5 -5
  94. package/src/Utilities/Helpers/Helper.d.ts +0 -6
  95. package/src/Utilities/Helpers/Helper.js +0 -38
  96. package/src/Utilities/Helpers/{QuickSearchStyleHelper.js → QuickSearchHelper.js} +2 -3
  97. package/src/Utilities/Helpers/{ScheduleHelper.d.ts → Scheduling/ScheduleHelper.d.ts} +1 -1
  98. package/src/Utilities/Helpers/{ScheduleHelper.js → Scheduling/ScheduleHelper.js} +1 -1
  99. package/src/Utilities/Helpers/{ScheduleJobManager.d.ts → Scheduling/ScheduleJobManager.d.ts} +1 -1
  100. package/src/Utilities/Helpers/{ScheduleJobRunner.d.ts → Scheduling/ScheduleJobRunner.d.ts} +1 -1
  101. package/src/Utilities/Helpers/{ScheduledAlertHelper.d.ts → Scheduling/ScheduledAlertHelper.d.ts} +1 -1
  102. package/src/Utilities/Helpers/{ScheduledAlertHelper.js → Scheduling/ScheduledAlertHelper.js} +4 -4
  103. package/src/Utilities/Helpers/{ScheduledJobsMiddlewareHelper.d.ts → Scheduling/ScheduledJobsMiddlewareHelper.d.ts} +1 -1
  104. package/src/Utilities/Helpers/{ScheduledJobsMiddlewareHelper.js → Scheduling/ScheduledJobsMiddlewareHelper.js} +1 -1
  105. package/src/Utilities/Helpers/{ScheduledReportHelper.d.ts → Scheduling/ScheduledReportHelper.d.ts} +1 -1
  106. package/src/Utilities/Helpers/{ScheduledReportHelper.js → Scheduling/ScheduledReportHelper.js} +1 -1
  107. package/src/Utilities/Helpers/SettingsPanelHelper.d.ts +5 -0
  108. package/src/Utilities/{Defaults/DefaultSettingsPanel.js → Helpers/SettingsPanelHelper.js} +16 -1
  109. package/src/Utilities/Helpers/StyledColumns/BarStylesHelper.d.ts +63 -0
  110. package/src/Utilities/Helpers/StyledColumns/BarStylesHelper.js +334 -0
  111. package/src/Utilities/Helpers/{StyledColumnGradientHelper.d.ts → StyledColumns/GradientStyleHelper.d.ts} +4 -2
  112. package/src/Utilities/Helpers/{StyledColumnGradientHelper.js → StyledColumns/GradientStyleHelper.js} +9 -9
  113. package/src/Utilities/Helpers/{IconStylePresets.d.ts → StyledColumns/IconStyleHelper.d.ts} +6 -1
  114. package/src/Utilities/Helpers/{IconStylePresets.js → StyledColumns/IconStyleHelper.js} +16 -0
  115. package/src/Utilities/Helpers/{percentBarPreviewHelper.d.ts → StyledColumns/PercentBarStyleHelper.d.ts} +2 -1
  116. package/src/Utilities/Helpers/{percentBarPreviewHelper.js → StyledColumns/PercentBarStyleHelper.js} +11 -17
  117. package/src/Utilities/Helpers/{SparklineOptionsHelper.js → StyledColumns/SparklineStyleHelper.js} +1 -1
  118. package/src/Utilities/Helpers/StyledColumns/StyledColumnHelper.d.ts +52 -0
  119. package/src/Utilities/Helpers/StyledColumns/StyledColumnHelper.js +124 -0
  120. package/src/Utilities/Helpers/TimingHelper.d.ts +34 -0
  121. package/src/Utilities/{utils/debounce.js → Helpers/TimingHelper.js} +25 -9
  122. package/src/Utilities/ObjectFactory.js +1 -1
  123. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +2 -0
  124. package/src/Utilities/Services/CalculatedColumnExpressionService.js +118 -2
  125. package/src/Utilities/Services/LicenseService/index.js +1 -1
  126. package/src/Utilities/Services/RowSummaryService.d.ts +1 -1
  127. package/src/Utilities/Services/RowSummaryService.js +6 -6
  128. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +2 -2
  129. package/src/View/Alert/Utilities/getAlertType.js +1 -1
  130. package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +1 -1
  131. package/src/View/Alert/Utilities/mapAlertDefinition.js +1 -1
  132. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +1 -1
  133. package/src/View/Alert/Wizard/AlertButtonsEditor.js +159 -126
  134. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +4 -4
  135. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +1 -1
  136. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -1
  137. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +1 -1
  138. package/src/View/Alert/Wizard/AlertWizard.js +10 -2
  139. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  140. package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +2 -2
  141. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
  142. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
  143. package/src/View/Comments/CommentsEditor.js +2 -2
  144. package/src/View/Comments/CommentsPopup.js +2 -2
  145. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +3 -2
  146. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +3 -2
  147. package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.d.ts +2 -0
  148. package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.js +6 -0
  149. package/src/View/Components/Buttons/EntityListActionButtons.js +1 -1
  150. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -0
  151. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +8 -8
  152. package/src/View/Components/ColumnFilter/ColumnFilter.js +14 -1
  153. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -2
  154. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +2 -2
  155. package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +2 -2
  156. package/src/View/Components/Forms/AdaptableFormControlTextClear.js +2 -1
  157. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -1
  158. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +2 -2
  159. package/src/View/Components/Popups/AdaptablePopupAlert.js +2 -2
  160. package/src/View/Components/Popups/Utilities.js +5 -5
  161. package/src/View/Components/RangesComponent.d.ts +4 -3
  162. package/src/View/Components/RangesComponent.js +5 -9
  163. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +3 -3
  164. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +2 -3
  165. package/src/View/Dashboard/CustomDashboardButton.js +2 -3
  166. package/src/View/Dashboard/Dashboard.js +2 -2
  167. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +2 -2
  168. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +2 -2
  169. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +2 -2
  170. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +2 -2
  171. package/src/View/Export/ExportSchedulesTab.js +3 -4
  172. package/src/View/Filter/FilterViewPanel.js +1 -1
  173. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +13 -13
  174. package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +4 -4
  175. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +2 -2
  176. package/src/View/Layout/LayoutViewPanel.js +2 -2
  177. package/src/View/Layout/Wizard/sections/RowSummarySection.js +128 -102
  178. package/src/View/Note/NoteEditor.js +2 -2
  179. package/src/View/Note/NotePopup.js +2 -2
  180. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +7 -7
  181. package/src/View/QuickSearch/QuickSearchPopup.js +4 -4
  182. package/src/View/QuickSearch/useQuickSearchDebounced.js +2 -3
  183. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  184. package/src/View/SpecialColumnSettingsWizardStep.js +2 -2
  185. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +1 -1
  186. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +36 -30
  187. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +1 -3
  188. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +79 -68
  189. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +8 -8
  190. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +42 -15
  191. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +92 -52
  192. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +14 -14
  193. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextLayoutEditor.d.ts +9 -0
  194. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextLayoutEditor.js +37 -0
  195. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextPreview.d.ts +23 -0
  196. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextPreview.js +62 -0
  197. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +1 -1
  198. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.d.ts +3 -2
  199. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +7 -9
  200. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +1 -1
  201. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +3 -2
  202. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +2 -1
  203. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +13 -17
  204. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.d.ts +2 -1
  205. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +5 -5
  206. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +4 -4
  207. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +2 -2
  208. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +24 -15
  209. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +11 -17
  210. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +2 -1
  211. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +2 -2
  212. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +20 -60
  213. package/src/View/UIHelper.js +1 -1
  214. package/src/View/Wizard/OnePageAdaptableWizard.js +2 -2
  215. package/src/View/Wizard/OnePageWizards.js +3 -1
  216. package/src/agGrid/AdaptableAgGrid.js +11 -11
  217. package/src/agGrid/AgGridColumnAdapter.js +30 -28
  218. package/src/agGrid/AgGridExportAdapter.js +3 -3
  219. package/src/agGrid/AgGridMenuAdapter.js +129 -4
  220. package/src/agGrid/cellRenderers/BadgeRenderer.js +9 -7
  221. package/src/agGrid/cellRenderers/BulletChartRenderer.js +47 -46
  222. package/src/agGrid/cellRenderers/IconRenderer.d.ts +2 -1
  223. package/src/agGrid/cellRenderers/IconRenderer.js +20 -19
  224. package/src/agGrid/cellRenderers/PercentBarRenderer.js +29 -101
  225. package/src/agGrid/cellRenderers/RangeBarRenderer.js +54 -52
  226. package/src/agGrid/cellRenderers/RatingRenderer.js +6 -6
  227. package/src/agGrid/editors/AdaptableDateEditor/index.js +3 -3
  228. package/src/components/ColorPicker/ColorPicker.js +2 -2
  229. package/src/components/Datepicker/index.js +2 -2
  230. package/src/components/FormLayout/index.js +2 -2
  231. package/src/components/OverlayTrigger/index.js +2 -2
  232. package/src/env.js +2 -2
  233. package/src/layout-manager/src/isLayoutEqual.js +4 -5
  234. package/src/metamodel/adaptable.metamodel.d.ts +118 -19
  235. package/src/metamodel/adaptable.metamodel.js +1 -1
  236. package/src/migration/VersionUpgrade23.d.ts +27 -31
  237. package/src/migration/VersionUpgrade23.js +110 -29
  238. package/src/types.d.ts +12 -1
  239. package/tsconfig.cjs.tsbuildinfo +1 -1
  240. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +0 -3
  241. package/src/Utilities/Helpers/iconStyledColumnColumnSupport.d.ts +0 -5
  242. package/src/Utilities/Helpers/iconStyledColumnColumnSupport.js +0 -18
  243. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +0 -3
  244. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +0 -19
  245. package/src/Utilities/Helpers/styledColumnRowKindSupport.d.ts +0 -25
  246. package/src/Utilities/Helpers/styledColumnRowKindSupport.js +0 -70
  247. package/src/Utilities/Services/CalculatedColumnSyntheticChange.d.ts +0 -4
  248. package/src/Utilities/Services/CalculatedColumnSyntheticChange.js +0 -120
  249. package/src/Utilities/utils/chunk.d.ts +0 -6
  250. package/src/Utilities/utils/chunk.js +0 -20
  251. package/src/Utilities/utils/clamp.d.ts +0 -5
  252. package/src/Utilities/utils/clamp.js +0 -10
  253. package/src/Utilities/utils/cloneDeepWith.d.ts +0 -9
  254. package/src/Utilities/utils/cloneDeepWith.js +0 -70
  255. package/src/Utilities/utils/debounce.d.ts +0 -20
  256. package/src/Utilities/utils/flatten.d.ts +0 -5
  257. package/src/Utilities/utils/flatten.js +0 -10
  258. package/src/Utilities/utils/flattenDeep.d.ts +0 -5
  259. package/src/Utilities/utils/flattenDeep.js +0 -10
  260. package/src/Utilities/utils/get.d.ts +0 -6
  261. package/src/Utilities/utils/get.js +0 -38
  262. package/src/Utilities/utils/index.d.ts +0 -22
  263. package/src/Utilities/utils/index.js +0 -48
  264. package/src/Utilities/utils/isArray.d.ts +0 -6
  265. package/src/Utilities/utils/isArray.js +0 -8
  266. package/src/Utilities/utils/isEqual.d.ts +0 -5
  267. package/src/Utilities/utils/isEqual.js +0 -127
  268. package/src/Utilities/utils/isObject.d.ts +0 -6
  269. package/src/Utilities/utils/isObject.js +0 -12
  270. package/src/Utilities/utils/isPlainObject.d.ts +0 -6
  271. package/src/Utilities/utils/isPlainObject.js +0 -20
  272. package/src/Utilities/utils/kebabCase.d.ts +0 -5
  273. package/src/Utilities/utils/kebabCase.js +0 -12
  274. package/src/Utilities/utils/merge.d.ts +0 -11
  275. package/src/Utilities/utils/merge.js +0 -44
  276. package/src/Utilities/utils/mergeWith.d.ts +0 -7
  277. package/src/Utilities/utils/mergeWith.js +0 -50
  278. package/src/Utilities/utils/orderBy.d.ts +0 -8
  279. package/src/Utilities/utils/orderBy.js +0 -33
  280. package/src/Utilities/utils/parseInt.d.ts +0 -6
  281. package/src/Utilities/utils/parseInt.js +0 -12
  282. package/src/Utilities/utils/sentenceCase.d.ts +0 -6
  283. package/src/Utilities/utils/sentenceCase.js +0 -19
  284. package/src/Utilities/utils/startCase.d.ts +0 -5
  285. package/src/Utilities/utils/startCase.js +0 -15
  286. package/src/Utilities/utils/throttle.d.ts +0 -17
  287. package/src/Utilities/utils/throttle.js +0 -23
  288. package/src/Utilities/utils/toNumber.d.ts +0 -5
  289. package/src/Utilities/utils/toNumber.js +0 -42
  290. package/src/Utilities/utils/uniq.d.ts +0 -7
  291. package/src/Utilities/utils/uniq.js +0 -12
  292. package/src/Utilities/utils/uniqBy.d.ts +0 -8
  293. package/src/Utilities/utils/uniqBy.js +0 -25
  294. package/src/Utilities/utils/words.d.ts +0 -7
  295. package/src/Utilities/utils/words.js +0 -13
  296. package/src/agGrid/buildValueAggregationMenuItem.d.ts +0 -19
  297. package/src/agGrid/buildValueAggregationMenuItem.js +0 -114
  298. package/src/agGrid/cellRenderers/shouldRenderStyledColumnOnRow.d.ts +0 -30
  299. package/src/agGrid/cellRenderers/shouldRenderStyledColumnOnRow.js +0 -58
  300. package/src/agGrid/createAgGridIcon.d.ts +0 -10
  301. package/src/agGrid/createAgGridIcon.js +0 -19
  302. /package/src/{Utilities → AdaptableState/Aggregations}/only.d.ts +0 -0
  303. /package/src/{Utilities → AdaptableState/Aggregations}/only.js +0 -0
  304. /package/src/{Utilities → AdaptableState/Aggregations}/weightedAverage.d.ts +0 -0
  305. /package/src/Utilities/Helpers/{ActionColumnWidthHelper.d.ts → ActionColumnHelper.d.ts} +0 -0
  306. /package/src/Utilities/Helpers/{ActionColumnWidthHelper.js → ActionColumnHelper.js} +0 -0
  307. /package/src/Utilities/Helpers/{alertFormHelper.d.ts → AlertHelper.d.ts} +0 -0
  308. /package/src/Utilities/Helpers/{chartingHelper.d.ts → ChartHelper.d.ts} +0 -0
  309. /package/src/Utilities/Helpers/{chartingHelper.js → ChartHelper.js} +0 -0
  310. /package/src/Utilities/Helpers/{FormatHelper.d.ts → DisplayFormatHelper.d.ts} +0 -0
  311. /package/src/Utilities/Helpers/{plusMinusTriggerKeys.d.ts → PlusMinusHelper.d.ts} +0 -0
  312. /package/src/Utilities/Helpers/{plusMinusTriggerKeys.js → PlusMinusHelper.js} +0 -0
  313. /package/src/Utilities/Helpers/{QuickSearchStyleHelper.d.ts → QuickSearchHelper.d.ts} +0 -0
  314. /package/src/Utilities/Helpers/{ScheduleJobManager.js → Scheduling/ScheduleJobManager.js} +0 -0
  315. /package/src/Utilities/Helpers/{ScheduleJobRunner.js → Scheduling/ScheduleJobRunner.js} +0 -0
  316. /package/src/Utilities/Helpers/{SparklineOptionsHelper.d.ts → StyledColumns/SparklineStyleHelper.d.ts} +0 -0
  317. /package/src/Utilities/Helpers/{ThemeHelpers.d.ts → ThemeHelper.d.ts} +0 -0
  318. /package/src/Utilities/Helpers/{ThemeHelpers.js → ThemeHelper.js} +0 -0
@@ -4,8 +4,8 @@ exports.FormatColumnFormatWizardSection = exports.getFormatDisplayTypeForScope =
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
- const uniq_1 = tslib_1.__importDefault(require("../../../Utilities/utils/uniq"));
8
- const clamp_1 = tslib_1.__importDefault(require("../../../Utilities/utils/clamp"));
7
+ const ArrayExtensions_1 = require("../../../Utilities/Extensions/ArrayExtensions");
8
+ const NumberExtensions_1 = require("../../../Utilities/Extensions/NumberExtensions");
9
9
  const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
10
10
  const Input_1 = tslib_1.__importDefault(require("../../../components/Input"));
11
11
  const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
@@ -18,7 +18,7 @@ const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
18
18
  const StringExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/StringExtensions"));
19
19
  const Tag_1 = require("../../../components/Tag");
20
20
  const AdaptableContext_1 = require("../../AdaptableContext");
21
- const FormatHelper_1 = tslib_1.__importDefault(require("../../../Utilities/Helpers/FormatHelper"));
21
+ const DisplayFormatHelper_1 = tslib_1.__importDefault(require("../../../Utilities/Helpers/DisplayFormatHelper"));
22
22
  const Toggle_1 = require("../../../components/Toggle");
23
23
  const GeneralConstants_1 = require("../../../Utilities/Constants/GeneralConstants");
24
24
  const Textarea_1 = tslib_1.__importDefault(require("../../../components/Textarea"));
@@ -193,7 +193,7 @@ const getFormatDisplayTypeForScope = (scope, api) => {
193
193
  // Check for ColumnIds in scope
194
194
  if ('ColumnIds' in scope) {
195
195
  const columns = scope.ColumnIds.map((c) => api.columnApi.getColumnWithColumnId(c)).filter(Boolean);
196
- const columnDataTypes = (0, uniq_1.default)(columns.map((c) => c.dataType));
196
+ const columnDataTypes = (0, ArrayExtensions_1.uniq)(columns.map((c) => c.dataType));
197
197
  // If there's only one data type
198
198
  if (columnDataTypes.length === 1) {
199
199
  const dataType = columnDataTypes[0];
@@ -298,7 +298,7 @@ const DATE_FORMAT_PRESET_HEADER_HEIGHT = 40;
298
298
  const DateFormatPresetsTable = ({ onApplyPattern }) => {
299
299
  const rows = React.useMemo(() => DateFormatPresets.map((pattern) => ({
300
300
  pattern,
301
- formattedDate: FormatHelper_1.default.DateFormatter(new Date(), { Pattern: pattern }) ?? '',
301
+ formattedDate: DisplayFormatHelper_1.default.DateFormatter(new Date(), { Pattern: pattern }) ?? '',
302
302
  })), []);
303
303
  const columns = React.useMemo(() => ({
304
304
  pattern: {
@@ -331,7 +331,7 @@ const renderDateFormat = (data, _onChange, setFormatOption, scopedCustomFormatte
331
331
  return null;
332
332
  }
333
333
  return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3", 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: "Format" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Enter a Unicode date pattern (e.g. dd/MM/yyyy), or pick a preset below" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsx)(FormLayout_1.default, { children: (0, jsx_runtime_1.jsxs)(FormLayout_1.FormRow, { label: "Pattern", children: [(0, jsx_runtime_1.jsx)(Input_1.default, { "data-name": "pattern", value: resolved.Options.Pattern ?? '', onChange: (e) => setFormatOption('Pattern', e.currentTarget.value), className: "twa:mr-2" }), (0, jsx_runtime_1.jsx)("span", { children: resolved.Options.Pattern &&
334
- FormatHelper_1.default.DateFormatter(new Date(), resolved.Options, true) })] }) }) })] }), scopedCustomFormatters.length > 0 && ((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: "Custom Formats" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Apply a developer-defined formatter to this Column" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsx)(FormLayout_1.default, { children: scopedCustomFormatters.map((formatter) => renderCustomFormatter(data, formatter, setFormatOption)) }) })] })), (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: "Presets" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Apply a common date pattern as a starting point" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:px-0 twa:pt-0 twa:pb-1", children: (0, jsx_runtime_1.jsx)(DateFormatPresetsTable, { onApplyPattern: (pattern) => setFormatOption('Pattern', pattern) }) })] })] }));
334
+ DisplayFormatHelper_1.default.DateFormatter(new Date(), resolved.Options, true) })] }) }) })] }), scopedCustomFormatters.length > 0 && ((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: "Custom Formats" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Apply a developer-defined formatter to this Column" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsx)(FormLayout_1.default, { children: scopedCustomFormatters.map((formatter) => renderCustomFormatter(data, formatter, setFormatOption)) }) })] })), (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: "Presets" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Apply a common date pattern as a starting point" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:px-0 twa:pt-0 twa:pb-1", children: (0, jsx_runtime_1.jsx)(DateFormatPresetsTable, { onApplyPattern: (pattern) => setFormatOption('Pattern', pattern) }) })] })] }));
335
335
  };
336
336
  const renderNumberFormat = (data, onChange, setFormatOption, scopedCustomFormatters, api) => {
337
337
  const resolved = (0, AdaptableFormatPresets_1.resolveDisplayFormat)(data.DisplayFormat);
@@ -367,9 +367,9 @@ const renderNumberFormat = (data, onChange, setFormatOption, scopedCustomFormatt
367
367
  return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", "data-name": 'format-column-display-format', className: "twa:gap-3 twa:p-3", 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: "Presets" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Pick a common numeric preset as a starting point" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { children: (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "row", className: "twa:m-2", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:mr-6", children: [(0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-dollar", className: "twa:my-1", checked: IS_DOLLAR, onChange: () => setPreset('Dollar'), children: "Dollar" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-sterling", className: "twa:my-1", checked: IS_STERLING, onChange: () => setPreset('Sterling'), children: "Sterling" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-euro", className: "twa:my-1", checked: IS_EURO, onChange: () => setPreset('Euro'), children: "Euro" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-yen", className: "twa:my-1", checked: IS_YEN, onChange: () => setPreset('Yen'), children: "Yen" })] }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:mr-6", children: [(0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-thousand", className: "twa:my-1", checked: IS_THOUSAND, onChange: () => setPreset('Thousand'), children: "K (Thousand)" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-million", className: "twa:my-1", checked: IS_MILLION, onChange: () => setPreset('Million'), children: "M (Million)" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-billion", className: "twa:my-1", checked: IS_BILLION, onChange: () => setPreset('Billion'), children: "B (Billion)" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-basis-points", className: "twa:my-1", checked: IS_BASIS_POINTS, onChange: () => setPreset('BasisPoints'), children: "bps (Basis Pts)" })] }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: "twa:mr-6", children: [(0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-integer", className: "twa:my-1", checked: IS_INTEGER, onChange: () => setPreset('Integer'), children: "Integer" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-decimal", className: "twa:my-1", checked: IS_DECIMAL, onChange: () => setPreset('Decimal'), children: "Decimal" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-percentage", className: "twa:my-1", checked: IS_PERCENT, onChange: () => setPreset('Percentage'), children: "Percentage" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-scientific", className: "twa:my-1", checked: IS_SCIENTIFIC, onChange: () => setPreset('Scientific'), children: "Scientific" })] }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", children: [(0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-accounting", className: "twa:my-1", checked: IS_ACCOUNTING, onChange: () => setPreset('Accounting'), children: "Accounting" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-fx-rate", className: "twa:my-1", checked: IS_FX_RATE, onChange: () => setPreset('FXRate'), children: "FX Rate" }), (0, jsx_runtime_1.jsx)(Radio_1.default, { "data-name": "preset-bitcoin", className: "twa:my-1", checked: IS_BITCOIN, onChange: () => setPreset('Bitcoin'), children: "Bitcoin" })] })] }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:pl-0", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Format" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Fine-tune digits, separators, prefix / suffix and rounding behaviour" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:px-0 twa:pt-0 twa:pb-1", children: (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:flex twa:flex-row twa:items-start twa:-ml-0.5", children: [(0, jsx_runtime_1.jsxs)(FormLayout_1.default, { sizes: NUMBER_FORMAT_DIGIT_FORM_SIZES, columns: [NUMBER_FORMAT_LABEL_COLUMN, { name: 'children' }], className: "twa:mr-6 twa:shrink-0", children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Fraction Digits", children: (0, jsx_runtime_1.jsx)(Input_1.default, { className: NUMBER_FORMAT_INPUT_CLASS, "data-name": "fraction-digits", type: "number", min: "0", value: typeof resolved.Options.FractionDigits === 'number'
368
368
  ? resolved.Options.FractionDigits
369
369
  : '', onChange: (e) => setFormatOption('FractionDigits', StringExtensions_1.default.IsNumeric(e.currentTarget.value)
370
- ? (0, clamp_1.default)(Number(e.currentTarget.value), 0, 20)
370
+ ? (0, NumberExtensions_1.clamp)(Number(e.currentTarget.value), 0, 20)
371
371
  : undefined) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Integer Digits", children: (0, jsx_runtime_1.jsx)(Input_1.default, { className: NUMBER_FORMAT_INPUT_CLASS, "data-name": "integer-digits", type: "number", min: "0", value: resolved.Options.IntegerDigits, onChange: (e) => setFormatOption('IntegerDigits', StringExtensions_1.default.IsNumeric(e.currentTarget.value)
372
- ? (0, clamp_1.default)(Number(e.currentTarget.value), 0, 20)
372
+ ? (0, NumberExtensions_1.clamp)(Number(e.currentTarget.value), 0, 20)
373
373
  : undefined) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Fraction Separator", children: (0, jsx_runtime_1.jsx)(Input_1.default, { className: NUMBER_FORMAT_INPUT_CLASS, "data-name": "fraction-separator", value: resolved.Options.FractionSeparator ?? '', onChange: (e) => setFormatOption('FractionSeparator', e.currentTarget.value) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Integer Separator", children: (0, jsx_runtime_1.jsx)(Input_1.default, { className: NUMBER_FORMAT_INPUT_CLASS, "data-name": "integer-separator", value: resolved.Options.IntegerSeparator ?? '', onChange: (e) => setFormatOption('IntegerSeparator', e.currentTarget.value) }) })] }), (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { sizes: NUMBER_FORMAT_VALUE_FORM_SIZES, columns: [NUMBER_FORMAT_LABEL_COLUMN, NUMBER_FORMAT_VALUE_CHILDREN_COLUMN], className: "twa:mr-5 twa:shrink-0", children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Multiplier", children: (0, jsx_runtime_1.jsx)(Input_1.default, { className: NUMBER_FORMAT_INPUT_CLASS, "data-name": "multiplier", type: "number", value: resolved.Options.Multiplier, onChange: (e) => setFormatOption('Multiplier', Number(e.currentTarget.value)) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Prefix", children: (0, jsx_runtime_1.jsx)(Input_1.default, { className: NUMBER_FORMAT_INPUT_CLASS, "data-name": "prefix", value: resolved.Options.Prefix ?? '', onChange: (e) => setFormatOption('Prefix', e.currentTarget.value) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Suffix", children: (0, jsx_runtime_1.jsx)(Input_1.default, { className: NUMBER_FORMAT_INPUT_CLASS, "data-name": "suffix", value: resolved.Options.Suffix ?? '', onChange: (e) => setFormatOption('Suffix', e.currentTarget.value) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Zero Display", children: (0, jsx_runtime_1.jsx)(Input_1.default, { className: NUMBER_FORMAT_INPUT_CLASS, "data-name": "zero-display", value: resolved.Options.ZeroDisplay === undefined ||
374
374
  resolved.Options.ZeroDisplay === '0'
375
375
  ? '0'
@@ -390,25 +390,25 @@ const renderNumberFormat = (data, onChange, setFormatOption, scopedCustomFormatt
390
390
  ] }), (0, jsx_runtime_1.jsx)(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
391
391
  { Content: GeneralConstants_1.DEFAULT_DOUBLE_DISPLAY_VALUE, Size: 1 },
392
392
  {
393
- Content: FormatHelper_1.default.NumberFormatter(GeneralConstants_1.DEFAULT_DOUBLE_DISPLAY_VALUE, resolved.Options),
393
+ Content: DisplayFormatHelper_1.default.NumberFormatter(GeneralConstants_1.DEFAULT_DOUBLE_DISPLAY_VALUE, resolved.Options),
394
394
  Size: 1,
395
395
  },
396
396
  ] }), (0, jsx_runtime_1.jsx)(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
397
397
  { Content: '-' + GeneralConstants_1.DEFAULT_DOUBLE_DISPLAY_VALUE, Size: 1 },
398
398
  {
399
- Content: FormatHelper_1.default.NumberFormatter(-GeneralConstants_1.DEFAULT_DOUBLE_DISPLAY_VALUE, resolved.Options),
399
+ Content: DisplayFormatHelper_1.default.NumberFormatter(-GeneralConstants_1.DEFAULT_DOUBLE_DISPLAY_VALUE, resolved.Options),
400
400
  Size: 1,
401
401
  },
402
402
  ] }), (0, jsx_runtime_1.jsx)(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
403
403
  { Content: '0.123', Size: 1 },
404
404
  {
405
- Content: FormatHelper_1.default.NumberFormatter(0.123, resolved.Options),
405
+ Content: DisplayFormatHelper_1.default.NumberFormatter(0.123, resolved.Options),
406
406
  Size: 1,
407
407
  },
408
408
  ] }), (0, jsx_runtime_1.jsx)(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
409
409
  { Content: '0', Size: 1 },
410
410
  {
411
- Content: FormatHelper_1.default.NumberFormatter(0, resolved.Options),
411
+ Content: DisplayFormatHelper_1.default.NumberFormatter(0, resolved.Options),
412
412
  Size: 1,
413
413
  },
414
414
  ] })] })] })] }));
@@ -426,7 +426,7 @@ const renderStringFormat = (data, _onChange, setFormatOption, scopedCustomFormat
426
426
  { Content: '"' + GeneralConstants_1.DEFAULT_STRING_DISPLAY_VALUE + '"', Size: 1 },
427
427
  {
428
428
  Content: '"' +
429
- FormatHelper_1.default.StringFormatter(GeneralConstants_1.DEFAULT_STRING_DISPLAY_VALUE, resolved.Options) +
429
+ DisplayFormatHelper_1.default.StringFormatter(GeneralConstants_1.DEFAULT_STRING_DISPLAY_VALUE, resolved.Options) +
430
430
  '"',
431
431
  Size: 1,
432
432
  },
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const AdaptableFormatPresets_1 = require("../../../AdaptableState/Common/AdaptableFormatPresets");
7
7
  const GeneralConstants_1 = require("../../../Utilities/Constants/GeneralConstants");
8
- const FormatHelper_1 = tslib_1.__importDefault(require("../../../Utilities/Helpers/FormatHelper"));
8
+ const DisplayFormatHelper_1 = tslib_1.__importDefault(require("../../../Utilities/Helpers/DisplayFormatHelper"));
9
9
  const StyleHelper_1 = require("../../../Utilities/Helpers/StyleHelper");
10
10
  const Card_1 = require("../../../components/Card");
11
11
  const Flex_1 = require("../../../components/Flex");
@@ -52,13 +52,13 @@ const getFormatColumnPreviewText = (formatColumn, api) => {
52
52
  return String(sample);
53
53
  }
54
54
  if (resolved.Formatter === 'NumberFormatter' && typeof sample === 'number') {
55
- return FormatHelper_1.default.NumberFormatter(sample, resolved.Options) ?? String(sample);
55
+ return DisplayFormatHelper_1.default.NumberFormatter(sample, resolved.Options) ?? String(sample);
56
56
  }
57
57
  if (resolved.Formatter === 'DateFormatter') {
58
- return FormatHelper_1.default.DateFormatter(new Date(), resolved.Options) ?? String(sample);
58
+ return DisplayFormatHelper_1.default.DateFormatter(new Date(), resolved.Options) ?? String(sample);
59
59
  }
60
60
  if (resolved.Formatter === 'StringFormatter' && typeof sample === 'string') {
61
- return FormatHelper_1.default.StringFormatter(sample, resolved.Options) ?? sample;
61
+ return DisplayFormatHelper_1.default.StringFormatter(sample, resolved.Options) ?? sample;
62
62
  }
63
63
  return String(sample);
64
64
  };
@@ -8,7 +8,7 @@ const Radio_1 = tslib_1.__importStar(require("../../../components/Radio"));
8
8
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
9
9
  const AdaptableInput_1 = tslib_1.__importDefault(require("../../Components/AdaptableInput"));
10
10
  const CheckBox_1 = require("../../../components/CheckBox");
11
- const FormatHelper_1 = require("../../../Utilities/Helpers/FormatHelper");
11
+ const DisplayFormatHelper_1 = require("../../../Utilities/Helpers/DisplayFormatHelper");
12
12
  const DateHelper_1 = require("../../../Utilities/Helpers/DateHelper");
13
13
  const Tag_1 = require("../../../components/Tag");
14
14
  const SpecialColumnSettingsWizardStep_1 = require("../../SpecialColumnSettingsWizardStep");
@@ -56,7 +56,7 @@ const FreeTextColumnSettingsWizardSection = (props) => {
56
56
  let e = event.target;
57
57
  let DefaultValue = e.value;
58
58
  if (data.FreeTextColumnSettings.DataType === 'date') {
59
- DefaultValue = (0, FormatHelper_1.DateFormatter)(DefaultValue, {
59
+ DefaultValue = (0, DisplayFormatHelper_1.DateFormatter)(DefaultValue, {
60
60
  Pattern,
61
61
  });
62
62
  }
@@ -6,7 +6,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const PopupRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/PopupRedux"));
8
8
  const react_redux_1 = require("react-redux");
9
- const isEqual_1 = tslib_1.__importDefault(require("../../Utilities/utils/isEqual"));
9
+ const ObjectExtensions_1 = require("../../Utilities/Extensions/ObjectExtensions");
10
10
  const join_1 = tslib_1.__importDefault(require("../../components/utils/join"));
11
11
  const LayoutRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/LayoutRedux"));
12
12
  const GeneralConstants = tslib_1.__importStar(require("../../Utilities/Constants/GeneralConstants"));
@@ -24,7 +24,7 @@ const NewSelect_1 = require("../../components/NewSelect");
24
24
  exports.COMPONENT_LAYOUT_POPUP_NAME = 'LayoutEditorStandalonePopup';
25
25
  const LayoutViewPanelComponent = (props) => {
26
26
  const { Layouts, CurrentLayoutName, accessLevel, viewType, api, onSelectLayout, showMissingLayoutsError, } = props;
27
- const isErrorLayout = !Layouts.length || (Layouts.length === 1 && (0, isEqual_1.default)(Layouts[0], GeneralConstants_1.ERROR_LAYOUT));
27
+ const isErrorLayout = !Layouts.length || (Layouts.length === 1 && (0, ObjectExtensions_1.isEqual)(Layouts[0], GeneralConstants_1.ERROR_LAYOUT));
28
28
  React.useEffect(() => {
29
29
  if (isErrorLayout) {
30
30
  showMissingLayoutsError();
@@ -6,7 +6,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const CheckBox_1 = require("../../../../components/CheckBox");
8
8
  const FormLayout_1 = tslib_1.__importStar(require("../../../../components/FormLayout"));
9
- const Panel_1 = tslib_1.__importDefault(require("../../../../components/Panel"));
10
9
  const SimpleButton_1 = tslib_1.__importDefault(require("../../../../components/SimpleButton"));
11
10
  const ButtonNew_1 = require("../../../Components/Buttons/ButtonNew");
12
11
  const Card_1 = require("../../../../components/Card");
@@ -24,6 +23,9 @@ const ColumnGroupTag_1 = require("../../../Components/ColumnGroupTag");
24
23
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/ArrayExtensions"));
25
24
  const Flex_1 = require("../../../../components/Flex");
26
25
  const NewSelect_1 = require("../../../../components/NewSelect");
26
+ const CollapsibleWizardCard_1 = require("../../../Wizard/CollapsibleWizardCard");
27
+ const utils_1 = require("../../../../lib/utils");
28
+ const objectListActionButtonStyles_1 = require("../../../Components/AdaptableObjectList/objectListActionButtonStyles");
27
29
  const areSummaryRowsValid = (layout) => {
28
30
  if (!layout.RowSummaries)
29
31
  return true;
@@ -39,6 +41,7 @@ const areSummaryRowsValid = (layout) => {
39
41
  return valid;
40
42
  };
41
43
  exports.areSummaryRowsValid = areSummaryRowsValid;
44
+ const rowSummaryCardId = (index) => `row-summary-${index}`;
42
45
  const availableExpressionsForColumnTypeCache = new Map();
43
46
  const getAvailableExpressionsForColumnType = (columnType, availableScalarExpressions) => {
44
47
  const key = columnType;
@@ -104,19 +107,28 @@ const getDefaultRowSummaryExpression = (column, availableScalarExpressions, layo
104
107
  }
105
108
  return optionValues[0] ?? null;
106
109
  };
110
+ const RowSummaryPositionTag = ({ position }) => (0, jsx_runtime_1.jsx)(Tag_1.Tag, { className: "twa:shrink-0", children: position });
111
+ const RowSummaryCardSummary = ({ rowSummary }) => {
112
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
113
+ const columnIds = Object.keys(rowSummary.ColumnsMap ?? {}).filter((colId) => colId !== 'Source' && colId !== 'Uuid');
114
+ if (!columnIds.length) {
115
+ return (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No columns" });
116
+ }
117
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexWrap: "wrap", className: "twa:gap-1", children: columnIds.map((colId) => ((0, jsx_runtime_1.jsxs)(Tag_1.ColumnTag, { children: [rowSummary.ColumnsMap[colId], "(", adaptable.api.columnApi.getFriendlyNameForColumnId(colId), ")"] }, colId))) }));
118
+ };
107
119
  const RowSummarySectionSummary = () => {
108
120
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
109
121
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
110
122
  return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex twa:flex-col", children: layout.RowSummaries?.length ? (layout.RowSummaries.map((rowSummary, index) => {
111
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:mr-1 twa:mb-1", children: [rowSummary.Position, ":", ' ', Object.keys(rowSummary.ColumnsMap).map((colId) => {
112
- if (colId === 'Source' || colId === 'Uuid')
113
- return null;
114
- return ((0, jsx_runtime_1.jsxs)(Tag_1.ColumnTag, { className: "twa:mr-1", children: [rowSummary.ColumnsMap[colId], "(", adaptable.api.columnApi.getFriendlyNameForColumnId(colId), ")"] }, colId));
115
- })] }, index) }));
123
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:mr-1 twa:mb-1", children: [rowSummary.Position, ":", ' ', Object.keys(rowSummary.ColumnsMap).map((colId) => {
124
+ if (colId === 'Source' || colId === 'Uuid')
125
+ return null;
126
+ return ((0, jsx_runtime_1.jsxs)(Tag_1.ColumnTag, { className: "twa:mr-1", children: [rowSummary.ColumnsMap[colId], "(", adaptable.api.columnApi.getFriendlyNameForColumnId(colId), ")"] }, colId));
127
+ })] }, index));
116
128
  })) : ((0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: "No Row Summaries" })) }));
117
129
  };
118
130
  exports.RowSummarySectionSummary = RowSummarySectionSummary;
119
- const RowSummaryEditor = React.memo(({ rowSummary, onChange, availableScalarExpressions, onDelete, }) => {
131
+ const RowSummaryEditorForm = React.memo(({ rowSummary, onChange, availableScalarExpressions, }) => {
120
132
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
121
133
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
122
134
  const columns = React.useMemo(() => {
@@ -132,110 +144,124 @@ const RowSummaryEditor = React.memo(({ rowSummary, onChange, availableScalarExpr
132
144
  sortUnorderedItems: false,
133
145
  }).map((colId) => adaptable.api.columnApi.getColumnWithColumnId(colId));
134
146
  }, [rowSummary.ColumnsMap]);
135
- return ((0, jsx_runtime_1.jsx)(Panel_1.default, { className: "twa:mb-3", bodyProps: { className: 'twa:p-2' }, children: (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { className: "twa:w-full", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium twa:flex-1", children: "Row Summary" }), (0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2 twa:shrink-0", children: [(0, jsx_runtime_1.jsx)(SuspendToggleButton_1.SuspendToggleButton, { onSuspend: () => {
136
- onChange({
137
- ...rowSummary,
138
- IsSuspended: true,
139
- });
140
- }, onUnSuspend: () => {
141
- onChange({
142
- ...rowSummary,
143
- IsSuspended: false,
144
- });
145
- }, suspendableObject: rowSummary }), (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { icon: "delete", onClick: () => {
146
- onDelete();
147
- } })] })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card.Body, { className: "twa:p-1 twa:gap-3", children: [(0, jsx_runtime_1.jsxs)(FormLayout_1.default, { children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Position", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { items: [
148
- {
149
- label: 'Top',
150
- value: 'Top',
151
- },
152
- {
153
- label: 'Bottom',
154
- value: 'Bottom',
155
- },
156
- ], value: rowSummary.Position, onValueChange: (position) => {
157
- onChange({
158
- ...rowSummary,
159
- Position: position,
160
- });
161
- } }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "", children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: rowSummary.IncludeOnlyFilteredRows ?? true, onChange: (IncludeOnlyFilteredRows) => {
162
- onChange({
163
- ...rowSummary,
164
- IncludeOnlyFilteredRows,
165
- });
166
- }, children: "Include Only Filtered Rows" }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:h-[400px] twa:overflow-hidden twa:flex twa:flex-col", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Column Aggregations" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Select columns and choose an aggregation function for each" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:p-1", children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { style: { minHeight: 0, maxHeight: '100%' }, showFilterInput: true, toggleSelectionOnRowClick: false, filter: Utilities_1.columnFilter, toIdentifier: (column) => column.columnId, toLabel: (option) => option.friendlyName ?? option.columnId, options: columns, optionLayout: "label-beside-checkbox", toListLabel: (column) => {
167
- const label = column.friendlyName ?? column.columnId;
168
- const disabled = !(column.columnId in (rowSummary.ColumnsMap ?? {}));
169
- if (disabled) {
170
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2", children: [label, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: column }), (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { disabled: true, items: [{ label: 'Select Aggregation', value: null }] })] }));
171
- }
172
- const expressionOptions = buildRowSummaryExpressionOptions(column, availableScalarExpressions, layout);
173
- const expression = rowSummary.ColumnsMap[column.columnId];
174
- return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "twa:mr-2", alignItems: 'center', children: [label, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: column })] }), (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { value: expression, items: expressionOptions, onValueChange: (expression) => {
175
- onChange({
176
- ...rowSummary,
177
- ColumnsMap: {
178
- ...rowSummary.ColumnsMap,
179
- [column.columnId]: expression,
180
- },
181
- });
182
- } })] }));
183
- }, value: Object.keys(rowSummary.ColumnsMap), onChange: (colIds) => {
184
- const newColumnsMap = {};
185
- colIds.forEach((colId) => {
186
- const existing = rowSummary.ColumnsMap[colId];
187
- if (existing) {
188
- newColumnsMap[colId] = existing;
189
- return;
190
- }
191
- const column = adaptable.api.columnApi.getColumnWithColumnId(colId);
192
- newColumnsMap[colId] = column
193
- ? getDefaultRowSummaryExpression(column, availableScalarExpressions, layout)
194
- : null;
195
- });
196
- onChange({
197
- ...rowSummary,
198
- ColumnsMap: newColumnsMap,
199
- });
200
- } }) })] })] })] }) }));
147
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:flex twa:flex-col twa:gap-3 twa:h-full twa:min-h-0 twa:overflow-hidden", children: [(0, jsx_runtime_1.jsxs)(FormLayout_1.default, { children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Position", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { items: [
148
+ {
149
+ label: 'Top',
150
+ value: 'Top',
151
+ },
152
+ {
153
+ label: 'Bottom',
154
+ value: 'Bottom',
155
+ },
156
+ ], value: rowSummary.Position, onValueChange: (position) => {
157
+ onChange({
158
+ ...rowSummary,
159
+ Position: position,
160
+ });
161
+ } }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "", children: (0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: rowSummary.IncludeOnlyFilteredRows ?? true, onChange: (IncludeOnlyFilteredRows) => {
162
+ onChange({
163
+ ...rowSummary,
164
+ IncludeOnlyFilteredRows,
165
+ });
166
+ }, children: "Include Only Filtered Rows" }) })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card, { shadow: false, className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:flex twa:flex-col", children: [(0, jsx_runtime_1.jsxs)(Card_1.Card.Title, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:font-medium", children: "Column Aggregations" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Select columns and choose an aggregation function for each" })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:flex-1 twa:min-h-0 twa:overflow-hidden twa:p-1", children: (0, jsx_runtime_1.jsx)(ValueSelector_1.ValueSelector, { style: { minHeight: 0, maxHeight: '100%' }, showFilterInput: true, toggleSelectionOnRowClick: false, filter: Utilities_1.columnFilter, toIdentifier: (column) => column.columnId, toLabel: (option) => option.friendlyName ?? option.columnId, options: columns, optionLayout: "label-beside-checkbox", toListLabel: (column) => {
167
+ const label = column.friendlyName ?? column.columnId;
168
+ const disabled = !(column.columnId in (rowSummary.ColumnsMap ?? {}));
169
+ if (disabled) {
170
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", className: "twa:gap-2", children: [label, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: column }), (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { disabled: true, items: [{ label: 'Select Aggregation', value: null }] })] }));
171
+ }
172
+ const expressionOptions = buildRowSummaryExpressionOptions(column, availableScalarExpressions, layout);
173
+ const expression = rowSummary.ColumnsMap[column.columnId];
174
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "twa:mr-2", alignItems: 'center', children: [label, (0, jsx_runtime_1.jsx)(ColumnGroupTag_1.ColumnGroupTag, { column: column })] }), (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { value: expression, items: expressionOptions, onValueChange: (expression) => {
175
+ onChange({
176
+ ...rowSummary,
177
+ ColumnsMap: {
178
+ ...rowSummary.ColumnsMap,
179
+ [column.columnId]: expression,
180
+ },
181
+ });
182
+ } })] }));
183
+ }, value: Object.keys(rowSummary.ColumnsMap), onChange: (colIds) => {
184
+ const newColumnsMap = {};
185
+ colIds.forEach((colId) => {
186
+ const existing = rowSummary.ColumnsMap[colId];
187
+ if (existing) {
188
+ newColumnsMap[colId] = existing;
189
+ return;
190
+ }
191
+ const column = adaptable.api.columnApi.getColumnWithColumnId(colId);
192
+ newColumnsMap[colId] = column
193
+ ? getDefaultRowSummaryExpression(column, availableScalarExpressions, layout)
194
+ : null;
195
+ });
196
+ onChange({
197
+ ...rowSummary,
198
+ ColumnsMap: newColumnsMap,
199
+ });
200
+ } }) })] })] }));
201
201
  });
202
202
  const RowSummarySection = (props) => {
203
203
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
204
204
  const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
205
+ const rowSummaries = layout.RowSummaries ?? [];
205
206
  const availableScalarExpressions = React.useMemo(() => {
206
207
  const sytemExpressions = adaptable.api.internalApi
207
208
  .getQueryLanguageService()
208
209
  .getModuleExpressionFunctionsMap(ModuleConstants_1.LayoutModuleId).aggregatedScalarFunctions;
209
210
  return sytemExpressions;
210
211
  }, []);
211
- return ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:p-3 twa:h-full", 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: "Row Summaries" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: "Add summary rows at the top or bottom of the grid with aggregated column values" })] }), (0, jsx_runtime_1.jsxs)(Card_1.Card.Body, { className: "twa:p-1", children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "twa:mb-2", children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:flex-1" }), (0, jsx_runtime_1.jsx)(ButtonNew_1.ButtonNew, { onClick: () => {
212
- props.onChange({
213
- ...layout,
214
- RowSummaries: [
215
- ...(layout.RowSummaries ?? []),
216
- {
217
- Position: 'Top',
218
- ColumnsMap: {},
219
- IncludeOnlyFilteredRows: true,
220
- },
221
- ],
222
- });
223
- }, children: "Add Row Summary" })] }), (layout.RowSummaries ?? []).map((rowSummary, index) => {
224
- return ((0, jsx_runtime_1.jsx)(RowSummaryEditor, { onDelete: () => {
225
- const newSummaries = [...layout.RowSummaries];
226
- newSummaries.splice(index, 1);
227
- props.onChange({
228
- ...layout,
229
- RowSummaries: newSummaries,
230
- });
231
- }, availableScalarExpressions: availableScalarExpressions, rowSummary: rowSummary, onChange: (rowSummary) => {
232
- const newSummaries = [...layout.RowSummaries];
233
- newSummaries[index] = rowSummary;
234
- props.onChange({
235
- ...layout,
236
- RowSummaries: newSummaries,
237
- });
238
- } }, index));
239
- })] })] }) }));
212
+ const { bindCard, hasExpandedCard, expandedFillsSpace, expandedId, setExpandedId } = (0, CollapsibleWizardCard_1.useWizardCardAccordion)(null);
213
+ const handleAddRowSummary = () => {
214
+ const newIndex = rowSummaries.length;
215
+ props.onChange({
216
+ ...layout,
217
+ RowSummaries: [
218
+ ...rowSummaries,
219
+ {
220
+ Position: 'Top',
221
+ ColumnsMap: {},
222
+ IncludeOnlyFilteredRows: true,
223
+ },
224
+ ],
225
+ });
226
+ setExpandedId(rowSummaryCardId(newIndex));
227
+ };
228
+ const handleDeleteRowSummary = (index) => {
229
+ const cardId = rowSummaryCardId(index);
230
+ const newSummaries = [...rowSummaries];
231
+ newSummaries.splice(index, 1);
232
+ props.onChange({
233
+ ...layout,
234
+ RowSummaries: newSummaries,
235
+ });
236
+ if (expandedId === cardId) {
237
+ setExpandedId(null);
238
+ return;
239
+ }
240
+ if (expandedId?.startsWith('row-summary-')) {
241
+ const expandedIndex = Number(expandedId.replace('row-summary-', ''));
242
+ if (!Number.isNaN(expandedIndex) && expandedIndex > index) {
243
+ setExpandedId(rowSummaryCardId(expandedIndex - 1));
244
+ }
245
+ }
246
+ };
247
+ return ((0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: (0, utils_1.cn)((0, CollapsibleWizardCard_1.getWizardAccordionSectionClassName)(hasExpandedCard, expandedFillsSpace), 'twa:p-3'), children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:mb-2 twa:max-w-[520px] twa:shrink-0", children: "Add summary rows at the top or bottom of the grid with aggregated column values" }), (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: handleAddRowSummary, children: "Add Row Summary" }) }), (0, jsx_runtime_1.jsx)(Flex_1.Flex, { flexDirection: "column", className: "twa:gap-3 twa:min-h-0", children: rowSummaries.map((rowSummary, index) => {
248
+ const cardBinding = bindCard(rowSummaryCardId(index), { fillAvailable: true });
249
+ return ((0, jsx_runtime_1.jsx)(CollapsibleWizardCard_1.CollapsibleWizardCard, { ...cardBinding, surface: "panel", "data-name": `row-summary-${index}`, title: `Row Summary ${index + 1}`, help: "Configure position, filters, and column aggregations for this summary row", collapsedHelp: false, compactSummary: (0, jsx_runtime_1.jsx)(RowSummaryPositionTag, { position: rowSummary.Position }), headerVisual: !cardBinding.expanded ? ((0, jsx_runtime_1.jsx)(RowSummaryPositionTag, { position: rowSummary.Position })) : undefined, headerActions: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [cardBinding.expanded ? ((0, jsx_runtime_1.jsx)(SuspendToggleButton_1.SuspendToggleButton, { iconSize: 26, className: (0, objectListActionButtonStyles_1.objectListActionButtonClassName)('suspend'), onSuspend: () => {
250
+ const newSummaries = [...rowSummaries];
251
+ newSummaries[index] = { ...rowSummary, IsSuspended: true };
252
+ props.onChange({ ...layout, RowSummaries: newSummaries });
253
+ }, onUnSuspend: () => {
254
+ const newSummaries = [...rowSummaries];
255
+ newSummaries[index] = { ...rowSummary, IsSuspended: false };
256
+ props.onChange({ ...layout, RowSummaries: newSummaries });
257
+ }, suspendableObject: rowSummary })) : null, (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { icon: "delete", variant: "text", tooltip: "Delete row summary", className: (0, objectListActionButtonStyles_1.objectListActionButtonClassName)('delete'), onClick: () => handleDeleteRowSummary(index) })] }), summary: (0, jsx_runtime_1.jsx)(RowSummaryCardSummary, { rowSummary: rowSummary }), className: "twa:overflow-hidden twa:flex twa:flex-col", bodyClassName: "twa:min-h-[200px] twa:max-h-[420px] twa:overflow-hidden twa:flex twa:flex-col twa:!pt-0", children: (0, jsx_runtime_1.jsx)(RowSummaryEditorForm, { rowSummary: rowSummary, availableScalarExpressions: availableScalarExpressions, onChange: (nextRowSummary) => {
258
+ const newSummaries = [...rowSummaries];
259
+ newSummaries[index] = nextRowSummary;
260
+ props.onChange({
261
+ ...layout,
262
+ RowSummaries: newSummaries,
263
+ });
264
+ } }) }, rowSummaryCardId(index)));
265
+ }) })] }));
240
266
  };
241
267
  exports.RowSummarySection = RowSummarySection;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NoteEditor = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- const throttle_1 = tslib_1.__importDefault(require("../../Utilities/utils/throttle"));
6
+ const TimingHelper_1 = require("../../Utilities/Helpers/TimingHelper");
7
7
  const React = tslib_1.__importStar(require("react"));
8
8
  const Textarea_1 = tslib_1.__importDefault(require("../../components/Textarea"));
9
9
  const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
@@ -15,7 +15,7 @@ const NoteEditor = ({ note, onNoteChange, onClose, editMode, isReadonly }) => {
15
15
  const textAreaRef = React.useRef(null);
16
16
  const [liveValue, setLiveValue] = React.useState(note || '');
17
17
  const throttledOnChange = React.useMemo(() => {
18
- const throttled = (0, throttle_1.default)((value) => onNoteChange(value), 300);
18
+ const throttled = (0, TimingHelper_1.throttle)((value) => onNoteChange(value), 300);
19
19
  return (value) => {
20
20
  setLiveValue(value);
21
21
  throttled(value);
@@ -11,7 +11,7 @@ const AdaptableContext_1 = require("../AdaptableContext");
11
11
  const AdaptableButton_1 = require("../Components/AdaptableButton");
12
12
  const PopupPanel_1 = require("../Components/Popups/AdaptablePopup/PopupPanel");
13
13
  const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
14
- const FormatHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/FormatHelper"));
14
+ const DisplayFormatHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/DisplayFormatHelper"));
15
15
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
16
16
  const tableDOMProps = {
17
17
  style: {
@@ -40,7 +40,7 @@ const NotePopup = (props) => {
40
40
  const isReadOnlyModule = adaptable.api.entitlementApi.getEntitlementAccessLevelForModule('Note') ===
41
41
  GeneralConstants_1.ACCESS_LEVEL_READ_ONLY;
42
42
  const formatDate = (date, format) => {
43
- return FormatHelper_1.default.DateFormatter(date, { Pattern: format });
43
+ return DisplayFormatHelper_1.default.DateFormatter(date, { Pattern: format });
44
44
  };
45
45
  const columnsMap = React.useMemo(() => {
46
46
  const columns = {
@@ -9,10 +9,10 @@ const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
9
9
  const Tag_1 = require("../../../components/Tag");
10
10
  const Flex_1 = require("../../../components/Flex");
11
11
  const Card_1 = require("../../../components/Card");
12
- const plusMinusTriggerKeys_1 = require("../../../Utilities/Helpers/plusMinusTriggerKeys");
12
+ const PlusMinusHelper_1 = require("../../../Utilities/Helpers/PlusMinusHelper");
13
13
  const PlusMinusSettingsSummary = () => {
14
14
  const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
15
- const { incrementKey, decrementKey } = (0, plusMinusTriggerKeys_1.resolvePlusMinusTriggerKeysForNudge)(data, api.optionsApi.getEditOptions().plusMinusOptions ?? {});
15
+ const { incrementKey, decrementKey } = (0, PlusMinusHelper_1.resolvePlusMinusTriggerKeysForNudge)(data, api.optionsApi.getEditOptions().plusMinusOptions ?? {});
16
16
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_1.SummaryText, { children: ["Name ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.Name || 'Not specified' })] }), (0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_1.SummaryText, { children: ["Nudge Value ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: data.NudgeValue ?? 'Not selected' })] }), (0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_1.SummaryText, { children: ["Keys ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: incrementKey }), " / ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: decrementKey })] })] }));
17
17
  };
18
18
  exports.PlusMinusSettingsSummary = PlusMinusSettingsSummary;
@@ -31,7 +31,7 @@ const isSettingsValid = (data, api, _context) => {
31
31
  if (data.NudgeValue === 0) {
32
32
  return 'Nudge value must not be zero.';
33
33
  }
34
- if ((0, plusMinusTriggerKeys_1.plusMinusResolvedKeysConflict)(data, api.optionsApi.getEditOptions().plusMinusOptions ?? {})) {
34
+ if ((0, PlusMinusHelper_1.plusMinusResolvedKeysConflict)(data, api.optionsApi.getEditOptions().plusMinusOptions ?? {})) {
35
35
  return 'Increment and decrement keys cannot be the same for this nudge.';
36
36
  }
37
37
  return true;
@@ -40,8 +40,8 @@ exports.isSettingsValid = isSettingsValid;
40
40
  const PlusMinusSettingsWizardSection = (props) => {
41
41
  const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
42
42
  const pmOpts = api.optionsApi.getEditOptions().plusMinusOptions ?? {};
43
- const incrementBaseline = (0, plusMinusTriggerKeys_1.plusMinusIncrementKeyFromOptionsOnly)(pmOpts);
44
- const decrementBaseline = (0, plusMinusTriggerKeys_1.plusMinusDecrementKeyFromOptionsOnly)(pmOpts);
43
+ const incrementBaseline = (0, PlusMinusHelper_1.plusMinusIncrementKeyFromOptionsOnly)(pmOpts);
44
+ const decrementBaseline = (0, PlusMinusHelper_1.plusMinusDecrementKeyFromOptionsOnly)(pmOpts);
45
45
  const [incrementEdit, setIncrementEdit] = React.useState(undefined);
46
46
  const [decrementEdit, setDecrementEdit] = React.useState(undefined);
47
47
  React.useEffect(() => {
@@ -60,7 +60,7 @@ const PlusMinusSettingsWizardSection = (props) => {
60
60
  : decrementBaseline;
61
61
  const commitIncrementKey = React.useCallback((raw) => {
62
62
  const trimmed = raw.trim();
63
- const next = trimmed === '' || (0, plusMinusTriggerKeys_1.plusMinusTriggerSameAsBaseline)(trimmed, incrementBaseline)
63
+ const next = trimmed === '' || (0, PlusMinusHelper_1.plusMinusTriggerSameAsBaseline)(trimmed, incrementBaseline)
64
64
  ? undefined
65
65
  : trimmed;
66
66
  const prev = data.IncrementKey?.trim() || undefined;
@@ -70,7 +70,7 @@ const PlusMinusSettingsWizardSection = (props) => {
70
70
  }, [data, incrementBaseline, props.onChange]);
71
71
  const commitDecrementKey = React.useCallback((raw) => {
72
72
  const trimmed = raw.trim();
73
- const next = trimmed === '' || (0, plusMinusTriggerKeys_1.plusMinusTriggerSameAsBaseline)(trimmed, decrementBaseline)
73
+ const next = trimmed === '' || (0, PlusMinusHelper_1.plusMinusTriggerSameAsBaseline)(trimmed, decrementBaseline)
74
74
  ? undefined
75
75
  : trimmed;
76
76
  const prev = data.DecrementKey?.trim() || undefined;
@@ -15,7 +15,7 @@ const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Exte
15
15
  const useQuickSearchDebounced_1 = require("./useQuickSearchDebounced");
16
16
  const QuickSearchInput_1 = require("./QuickSearchInput");
17
17
  const Card_1 = require("../../components/Card");
18
- const QuickSearchStyleHelper_1 = require("../../Utilities/Helpers/QuickSearchStyleHelper");
18
+ const QuickSearchHelper_1 = require("../../Utilities/Helpers/QuickSearchHelper");
19
19
  const QuickSearchStyleEditor = ({ api, helpText, headerText, style, updateStyle }) => ((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: headerText }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:text-xs twa:opacity-70 twa:font-normal twa:max-w-[520px]", children: helpText })] }), (0, jsx_runtime_1.jsx)(Card_1.Card.Body, { className: "twa:p-1", children: (0, jsx_runtime_1.jsx)(StyleComponent_1.StyleComponent, { headless: true, hidePreview: true, className: "twa:h-full twa:flex-1 twa:rounded-none", api: api, Style: style, UpdateStyle: updateStyle }) })] }));
20
20
  const QuickSearchPopupComponent = (props) => {
21
21
  const [searchText, search] = (0, useQuickSearchDebounced_1.useQuickSearchDebounced)(props);
@@ -34,10 +34,10 @@ function mapStateToProps(state, ownProps) {
34
34
  const quickSearch = state.QuickSearch;
35
35
  return {
36
36
  QuickSearchText: quickSearch.QuickSearchText,
37
- QuickSearchTextMatchStyle: (0, QuickSearchStyleHelper_1.resolveQuickSearchTextMatchStyle)(quickSearch),
38
- QuickSearchCurrentTextMatchStyle: (0, QuickSearchStyleHelper_1.resolveQuickSearchCurrentTextMatchStyle)(quickSearch),
37
+ QuickSearchTextMatchStyle: (0, QuickSearchHelper_1.resolveQuickSearchTextMatchStyle)(quickSearch),
38
+ QuickSearchCurrentTextMatchStyle: (0, QuickSearchHelper_1.resolveQuickSearchCurrentTextMatchStyle)(quickSearch),
39
39
  // Cell match: show only what is in state — defaults are not applied until explicitly set
40
- QuickSearchCellMatchStyle: (0, QuickSearchStyleHelper_1.isQuickSearchStyleUnset)(quickSearch.CellMatchStyle)
40
+ QuickSearchCellMatchStyle: (0, QuickSearchHelper_1.isQuickSearchStyleUnset)(quickSearch.CellMatchStyle)
41
41
  ? {}
42
42
  : quickSearch.CellMatchStyle,
43
43
  };