@adaptabletools/adaptable-cjs 18.0.0-canary.9 → 18.0.1

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 (422) hide show
  1. package/base.css +18 -20
  2. package/base.css.map +1 -1
  3. package/index.css +22 -20
  4. package/index.css.map +1 -1
  5. package/package.json +1 -1
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +5 -6
  7. package/src/AdaptableOptions/ActionColumnOptions.d.ts +3 -2
  8. package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -0
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +14 -13
  10. package/src/AdaptableOptions/AdaptablePlugin.d.ts +2 -0
  11. package/src/AdaptableOptions/AdaptablePlugin.js +2 -0
  12. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +7 -0
  13. package/src/AdaptableOptions/ColumnMenuOptions.d.ts +94 -0
  14. package/src/AdaptableOptions/ColumnOptions.d.ts +9 -4
  15. package/src/AdaptableOptions/CommentOptions.d.ts +20 -9
  16. package/src/AdaptableOptions/ContextMenuOptions.d.ts +94 -0
  17. package/src/AdaptableOptions/CustomSortOptions.d.ts +2 -2
  18. package/src/AdaptableOptions/DataImportOptions.d.ts +2 -2
  19. package/src/AdaptableOptions/FormatColumnOptions.d.ts +2 -2
  20. package/src/AdaptableOptions/GroupingOptions.d.ts +0 -26
  21. package/src/AdaptableOptions/NoteOptions.d.ts +12 -3
  22. package/src/AdaptableOptions/PredicateOptions.d.ts +2 -2
  23. package/src/AdaptableOptions/QuickSearchOptions.d.ts +1 -1
  24. package/src/AdaptableOptions/StateOptions.d.ts +6 -0
  25. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
  26. package/src/Api/AdaptableApi.d.ts +16 -6
  27. package/src/Api/ColumnApi.d.ts +13 -0
  28. package/src/Api/ColumnMenuApi.d.ts +13 -0
  29. package/src/Api/{ScopeApi.d.ts → ColumnScopeApi.d.ts} +28 -28
  30. package/src/Api/CommentApi.d.ts +20 -22
  31. package/src/Api/ConfigApi.d.ts +12 -7
  32. package/src/Api/ContextMenuApi.d.ts +9 -0
  33. package/src/Api/EventApi.d.ts +7 -9
  34. package/src/Api/Events/CommentChanged.d.ts +11 -0
  35. package/src/Api/Events/CommentChanged.js +2 -0
  36. package/src/Api/Events/GridDataChanged.d.ts +1 -1
  37. package/src/Api/FlashingCellApi.d.ts +2 -2
  38. package/src/Api/GridApi.d.ts +32 -4
  39. package/src/Api/Implementation/ActionColumnApiImpl.js +3 -6
  40. package/src/Api/Implementation/ActionRowApiImpl.js +3 -7
  41. package/src/Api/Implementation/AdaptableApiImpl.d.ts +7 -5
  42. package/src/Api/Implementation/AdaptableApiImpl.js +9 -5
  43. package/src/Api/Implementation/AlertApiImpl.js +8 -13
  44. package/src/Api/Implementation/ApiBase.d.ts +6 -4
  45. package/src/Api/Implementation/ApiBase.js +11 -5
  46. package/src/Api/Implementation/CalendarApiImpl.js +1 -6
  47. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
  48. package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
  49. package/src/Api/Implementation/ChartingApiImpl.js +3 -3
  50. package/src/Api/Implementation/ColumnApiImpl.d.ts +5 -0
  51. package/src/Api/Implementation/ColumnApiImpl.js +48 -16
  52. package/src/Api/Implementation/ColumnFilterApiImpl.js +7 -7
  53. package/src/Api/Implementation/ColumnMenuApiImpl.d.ts +8 -0
  54. package/src/Api/Implementation/ColumnMenuApiImpl.js +16 -0
  55. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +33 -0
  56. package/src/Api/Implementation/{ScopeApiImpl.js → ColumnScopeApiImpl.js} +48 -15
  57. package/src/Api/Implementation/CommentsApiImpl.d.ts +4 -5
  58. package/src/Api/Implementation/CommentsApiImpl.js +6 -6
  59. package/src/Api/Implementation/ConfigApiImpl.d.ts +4 -3
  60. package/src/Api/Implementation/ConfigApiImpl.js +25 -25
  61. package/src/Api/Implementation/ContextMenuApiImpl.d.ts +7 -0
  62. package/src/Api/Implementation/ContextMenuApiImpl.js +13 -0
  63. package/src/Api/Implementation/DashboardApiImpl.js +1 -6
  64. package/src/Api/Implementation/ExportApiImpl.js +5 -10
  65. package/src/Api/Implementation/ExpressionApiImpl.js +14 -19
  66. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -1
  67. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +2 -2
  68. package/src/Api/Implementation/FlashingCellApiImpl.js +3 -8
  69. package/src/Api/Implementation/FormatColumnApiImpl.js +4 -4
  70. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -1
  71. package/src/Api/Implementation/GridApiImpl.d.ts +9 -2
  72. package/src/Api/Implementation/GridApiImpl.js +52 -11
  73. package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -7
  74. package/src/Api/Implementation/LayoutApiImpl.js +6 -15
  75. package/src/Api/Implementation/{NotesApiImpl.d.ts → NoteApiImpl.d.ts} +8 -8
  76. package/src/Api/Implementation/{NotesApiImpl.js → NoteApiImpl.js} +14 -14
  77. package/src/Api/Implementation/OptionsApiImpl.d.ts +6 -5
  78. package/src/Api/Implementation/OptionsApiImpl.js +7 -4
  79. package/src/Api/Implementation/PredicateApiImpl.js +2 -2
  80. package/src/Api/Implementation/ScheduleApiImpl.js +6 -6
  81. package/src/Api/Implementation/TeamSharingApiImpl.js +3 -15
  82. package/src/Api/Implementation/ThemeApiImpl.js +2 -7
  83. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +14 -8
  84. package/src/Api/Implementation/UserInterfaceApiImpl.js +32 -27
  85. package/src/Api/Internal/ActionRowInternalApi.d.ts +1 -0
  86. package/src/Api/Internal/ActionRowInternalApi.js +19 -46
  87. package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
  88. package/src/Api/Internal/AdaptableInternalApi.js +16 -30
  89. package/src/Api/Internal/AlertInternalApi.d.ts +2 -2
  90. package/src/Api/Internal/AlertInternalApi.js +7 -20
  91. package/src/Api/Internal/CalculatedColumnInternalApi.js +10 -16
  92. package/src/Api/Internal/ChartingInternalApi.js +13 -13
  93. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
  94. package/src/Api/Internal/ColumnFilterInternalApi.js +24 -30
  95. package/src/Api/Internal/ColumnInternalApi.d.ts +2 -0
  96. package/src/Api/Internal/ColumnInternalApi.js +8 -1
  97. package/src/Api/Internal/CommentsInternalApi.d.ts +1 -1
  98. package/src/Api/Internal/CommentsInternalApi.js +3 -2
  99. package/src/Api/Internal/CustomSortInternalApi.js +1 -1
  100. package/src/Api/Internal/DashboardInternalApi.js +5 -11
  101. package/src/Api/Internal/DataImportInternalApi.js +3 -9
  102. package/src/Api/Internal/DataSetInternalApi.js +2 -7
  103. package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
  104. package/src/Api/Internal/ExportInternalApi.js +8 -5
  105. package/src/Api/Internal/ExpressionInternalApi.js +3 -13
  106. package/src/Api/Internal/Fdc3InternalApi.js +3 -12
  107. package/src/Api/Internal/FormatColumnInternalApi.d.ts +3 -6
  108. package/src/Api/Internal/FormatColumnInternalApi.js +37 -30
  109. package/src/Api/Internal/FreeTextColumnInternalApi.js +4 -3
  110. package/src/Api/Internal/GridFilterInternalApi.d.ts +5 -0
  111. package/src/Api/Internal/GridFilterInternalApi.js +8 -8
  112. package/src/Api/Internal/GridInternalApi.d.ts +2 -0
  113. package/src/Api/Internal/GridInternalApi.js +28 -40
  114. package/src/Api/Internal/LayoutInternalApi.d.ts +2 -0
  115. package/src/Api/Internal/LayoutInternalApi.js +26 -19
  116. package/src/Api/Internal/NoteInternalApi.d.ts +4 -0
  117. package/src/Api/Internal/{NotesInternalApi.js → NoteInternalApi.js} +6 -5
  118. package/src/Api/Internal/PredicateInternalApi.d.ts +6 -6
  119. package/src/Api/Internal/PredicateInternalApi.js +5 -40
  120. package/src/Api/Internal/ScheduleInternalApi.js +1 -6
  121. package/src/Api/Internal/StyledColumnInternalApi.d.ts +2 -2
  122. package/src/Api/Internal/StyledColumnInternalApi.js +8 -9
  123. package/src/Api/Internal/SystemStatusInternalApi.js +1 -7
  124. package/src/Api/Internal/TeamSharingInternalApi.js +2 -7
  125. package/src/Api/Internal/ThemeInternalApi.js +1 -1
  126. package/src/Api/Internal/UserInterfaceInternalApi.js +1 -1
  127. package/src/Api/LayoutApi.d.ts +9 -12
  128. package/src/Api/NoteApi.d.ts +48 -0
  129. package/src/Api/NoteApi.js +2 -0
  130. package/src/Api/OptionsApi.d.ts +14 -10
  131. package/src/Api/UserInterfaceApi.d.ts +15 -13
  132. package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
  133. package/src/PredefinedConfig/AlertState.d.ts +2 -2
  134. package/src/PredefinedConfig/CommentState.d.ts +27 -23
  135. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  136. package/src/PredefinedConfig/Common/AdaptableObject.d.ts +4 -4
  137. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +2 -2
  138. package/src/PredefinedConfig/Common/CellSummary.d.ts +5 -14
  139. package/src/PredefinedConfig/Common/{AdaptableScope.d.ts → ColumnScope.d.ts} +1 -1
  140. package/src/PredefinedConfig/Common/ColumnScope.js +2 -0
  141. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +1 -5
  142. package/src/PredefinedConfig/Common/Enums.d.ts +4 -1
  143. package/src/PredefinedConfig/Common/Enums.js +3 -0
  144. package/src/PredefinedConfig/Common/Fdc3Intent.d.ts +2 -2
  145. package/src/PredefinedConfig/Common/Menu.d.ts +39 -4
  146. package/src/PredefinedConfig/Common/Menu.js +126 -0
  147. package/src/PredefinedConfig/Common/RowScope.d.ts +17 -0
  148. package/src/PredefinedConfig/Common/RowScope.js +2 -0
  149. package/src/PredefinedConfig/Common/RowSummary.d.ts +15 -1
  150. package/src/PredefinedConfig/Common/RowSummary.js +17 -1
  151. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
  152. package/src/PredefinedConfig/Common/TransposeConfig.js +2 -0
  153. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  154. package/src/PredefinedConfig/Common/Types.js +4 -1
  155. package/src/PredefinedConfig/ExportState.d.ts +2 -2
  156. package/src/PredefinedConfig/FlashingCellState.d.ts +2 -2
  157. package/src/PredefinedConfig/FormatColumnState.d.ts +9 -5
  158. package/src/PredefinedConfig/LayoutState.d.ts +2 -2
  159. package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +4 -4
  160. package/src/PredefinedConfig/NoteState.js +2 -0
  161. package/src/PredefinedConfig/PlusMinusState.d.ts +2 -2
  162. package/src/PredefinedConfig/PopupState.d.ts +1 -2
  163. package/src/PredefinedConfig/PredefinedConfig.d.ts +2 -2
  164. package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
  165. package/src/PredefinedConfig/ShortcutState.d.ts +2 -2
  166. package/src/PredefinedConfig/StyledColumnState.d.ts +5 -5
  167. package/src/PredefinedConfig/SystemState.d.ts +5 -4
  168. package/src/Redux/ActionsReducers/CommentsRedux.d.ts +0 -4
  169. package/src/Redux/ActionsReducers/CommentsRedux.js +1 -39
  170. package/src/Redux/ActionsReducers/LayoutRedux.js +12 -10
  171. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  172. package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +31 -31
  173. package/src/Redux/ActionsReducers/PopupRedux.d.ts +5 -13
  174. package/src/Redux/ActionsReducers/PopupRedux.js +1 -22
  175. package/src/Redux/ActionsReducers/SystemRedux.d.ts +11 -5
  176. package/src/Redux/ActionsReducers/SystemRedux.js +14 -11
  177. package/src/Redux/Store/AdaptableStore.js +39 -32
  178. package/src/Strategy/AdaptableModuleBase.d.ts +10 -10
  179. package/src/Strategy/AdaptableModuleBase.js +13 -16
  180. package/src/Strategy/AlertModule.d.ts +3 -2
  181. package/src/Strategy/AlertModule.js +4 -4
  182. package/src/Strategy/BulkUpdateModule.d.ts +3 -2
  183. package/src/Strategy/BulkUpdateModule.js +2 -1
  184. package/src/Strategy/CalculatedColumnModule.d.ts +3 -4
  185. package/src/Strategy/CalculatedColumnModule.js +18 -14
  186. package/src/Strategy/CellSummaryModule.d.ts +9 -9
  187. package/src/Strategy/CellSummaryModule.js +96 -107
  188. package/src/Strategy/ColumnFilterModule.d.ts +3 -3
  189. package/src/Strategy/ColumnFilterModule.js +36 -57
  190. package/src/Strategy/ColumnInfoModule.d.ts +3 -3
  191. package/src/Strategy/ColumnInfoModule.js +6 -4
  192. package/src/Strategy/CommentModule.d.ts +12 -0
  193. package/src/Strategy/CommentModule.js +75 -0
  194. package/src/Strategy/CustomSortModule.d.ts +1 -2
  195. package/src/Strategy/CustomSortModule.js +3 -2
  196. package/src/Strategy/DashboardModule.d.ts +3 -3
  197. package/src/Strategy/DashboardModule.js +10 -20
  198. package/src/Strategy/DataImportModule.d.ts +4 -4
  199. package/src/Strategy/DataImportModule.js +8 -8
  200. package/src/Strategy/ExportModule.d.ts +1 -2
  201. package/src/Strategy/ExportModule.js +56 -42
  202. package/src/Strategy/Fdc3Module.d.ts +1 -1
  203. package/src/Strategy/Fdc3Module.js +3 -13
  204. package/src/Strategy/FlashingCellModule.d.ts +4 -3
  205. package/src/Strategy/FlashingCellModule.js +10 -10
  206. package/src/Strategy/FormatColumnModule.d.ts +1 -1
  207. package/src/Strategy/FormatColumnModule.js +29 -47
  208. package/src/Strategy/FreeTextColumnModule.d.ts +1 -2
  209. package/src/Strategy/FreeTextColumnModule.js +2 -2
  210. package/src/Strategy/GridInfoModule.d.ts +3 -3
  211. package/src/Strategy/GridInfoModule.js +5 -3
  212. package/src/Strategy/Interface/IModule.d.ts +4 -4
  213. package/src/Strategy/LayoutModule.d.ts +4 -10
  214. package/src/Strategy/LayoutModule.js +50 -150
  215. package/src/Strategy/NoteModule.d.ts +10 -0
  216. package/src/Strategy/NoteModule.js +60 -0
  217. package/src/Strategy/PlusMinusModule.d.ts +1 -2
  218. package/src/Strategy/PlusMinusModule.js +5 -5
  219. package/src/Strategy/SettingsPanelModule.d.ts +3 -3
  220. package/src/Strategy/SettingsPanelModule.js +6 -6
  221. package/src/Strategy/ShortcutModule.js +1 -1
  222. package/src/Strategy/SmartEditModule.d.ts +3 -2
  223. package/src/Strategy/SmartEditModule.js +2 -1
  224. package/src/Strategy/StyledColumnModule.d.ts +2 -1
  225. package/src/Strategy/StyledColumnModule.js +42 -22
  226. package/src/Strategy/SystemStatusModule.d.ts +3 -3
  227. package/src/Strategy/SystemStatusModule.js +6 -3
  228. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +4 -2
  229. package/src/Strategy/Utilities/getScopeViewItems.d.ts +2 -2
  230. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  231. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  232. package/src/Utilities/Constants/GeneralConstants.js +3 -2
  233. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  234. package/src/Utilities/Constants/ModuleConstants.js +7 -7
  235. package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -2
  236. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -2
  237. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +144 -7
  238. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  239. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  240. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  241. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -1
  242. package/src/Utilities/Helpers/AdaptableHelper.js +21 -1
  243. package/src/Utilities/Interface/MessagePopups.d.ts +0 -3
  244. package/src/Utilities/MenuItem.d.ts +10 -7
  245. package/src/Utilities/MenuItem.js +6 -3
  246. package/src/Utilities/ObjectFactory.d.ts +3 -3
  247. package/src/Utilities/ObjectFactory.js +7 -25
  248. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +1 -0
  249. package/src/Utilities/Services/AggregatedScalarLiveValue.js +12 -10
  250. package/src/Utilities/Services/CellPopupService.js +4 -4
  251. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
  252. package/src/Utilities/Services/LicenseService/index.js +1 -198
  253. package/src/Utilities/Services/ModuleService.js +6 -2
  254. package/src/Utilities/Services/QueryLanguageService.js +2 -2
  255. package/src/Utilities/Services/ReportService.d.ts +7 -5
  256. package/src/Utilities/Services/ReportService.js +245 -26
  257. package/src/Utilities/Services/RowSummaryService.d.ts +26 -0
  258. package/src/Utilities/Services/RowSummaryService.js +160 -0
  259. package/src/Utilities/Services/ValidationService.js +2 -2
  260. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  261. package/src/Utilities/adaptableQlUtils.js +18 -0
  262. package/src/Utilities/license/decode.js +1 -70
  263. package/src/Utilities/license/hashing.js +1 -47
  264. package/src/View/AdaptableViewFactory.js +2 -2
  265. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
  266. package/src/View/Alert/AlertEntityRow.js +1 -1
  267. package/src/View/Alert/Utilities/getAvailablePredicates.d.ts +2 -2
  268. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -1
  269. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +2 -2
  270. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
  271. package/src/View/BulkUpdate/BulkUpdatePopup.js +2 -2
  272. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
  273. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
  274. package/src/View/ColumnInfo/ColumnInfo.js +1 -1
  275. package/src/View/Comments/CommentsEditor.js +28 -17
  276. package/src/View/Comments/CommentsPopup.js +15 -7
  277. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  278. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
  279. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +46 -0
  280. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
  281. package/src/View/Components/CellPopup/index.d.ts +1 -0
  282. package/src/View/Components/CellPopup/index.js +6 -3
  283. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.d.ts +3 -3
  284. package/src/View/Components/EntityRulesEditor/index.d.ts +3 -3
  285. package/src/View/Components/FilterForm/FilterForm.js +20 -12
  286. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
  287. package/src/View/Components/FilterForm/QuickFilterValues.js +39 -23
  288. package/src/View/Components/NewScopeComponent.d.ts +5 -5
  289. package/src/View/Components/NewScopeComponent.js +6 -4
  290. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +4 -1
  291. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +10 -1
  292. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -10
  293. package/src/View/Components/RangesComponent.d.ts +2 -2
  294. package/src/View/Components/RangesComponent.js +1 -1
  295. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
  296. package/src/View/Components/SharedProps/WizardScopeState.d.ts +2 -2
  297. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  298. package/src/View/Components/ValueSelector/index.js +2 -2
  299. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +1 -1
  300. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +4 -2
  301. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  302. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +2 -2
  303. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +20 -7
  304. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
  305. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
  306. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +27 -12
  307. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +1 -1
  308. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  309. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  310. package/src/View/GridFilter/GridFilterViewPanel.js +3 -3
  311. package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
  312. package/src/View/Layout/LayoutViewPanel.js +2 -1
  313. package/src/View/Layout/TransposedPopup.js +20 -19
  314. package/src/View/Layout/Wizard/LayoutWizard.js +38 -3
  315. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  316. package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
  317. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +18 -2
  318. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +9 -0
  319. package/src/View/Layout/Wizard/sections/RowSummarySection.js +181 -0
  320. package/src/View/License/LicenseWatermark.js +1 -66
  321. package/src/View/Note/NotePopup.d.ts +2 -0
  322. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +16 -11
  323. package/src/View/PlusMinus/PlusMinusSummary.js +2 -2
  324. package/src/View/SmartEdit/SmartEditPopup.js +1 -1
  325. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  326. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +5 -7
  327. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -1
  328. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  329. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +38 -14
  330. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -1
  331. package/src/agGrid/ActionColumnRenderer.js +40 -4
  332. package/src/agGrid/AdaptableAgGrid.d.ts +11 -16
  333. package/src/agGrid/AdaptableAgGrid.js +230 -250
  334. package/src/agGrid/AgGridAdapter.d.ts +4 -2
  335. package/src/agGrid/AgGridAdapter.js +12 -0
  336. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -3
  337. package/src/agGrid/AgGridColumnAdapter.js +42 -71
  338. package/src/agGrid/AgGridMenuAdapter.d.ts +25 -8
  339. package/src/agGrid/AgGridMenuAdapter.js +405 -74
  340. package/src/agGrid/AgGridOptionsService.d.ts +4 -1
  341. package/src/agGrid/AgGridOptionsService.js +22 -0
  342. package/src/agGrid/BadgeRenderer.d.ts +2 -2
  343. package/src/agGrid/BadgeRenderer.js +24 -11
  344. package/src/agGrid/PercentBarRenderer.js +2 -1
  345. package/src/agGrid/buildSortedColumnStateForLayout.d.ts +7 -0
  346. package/src/agGrid/buildSortedColumnStateForLayout.js +124 -0
  347. package/src/agGrid/defaultAdaptableOptions.js +7 -12
  348. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
  349. package/src/agGrid/editors/AdaptableDateEditor/index.js +1 -1
  350. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
  351. package/src/agGrid/sortColumnStateForVisibleColumns.d.ts +12 -0
  352. package/src/agGrid/sortColumnStateForVisibleColumns.js +50 -0
  353. package/src/agGrid/weightedAverage.d.ts +0 -2
  354. package/src/agGrid/weightedAverage.js +1 -56
  355. package/src/components/Accordion.d.ts +7 -0
  356. package/src/components/Accordion.js +41 -0
  357. package/src/components/Datepicker/index.js +10 -2
  358. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  359. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  360. package/src/components/ExpressionEditor/QueryBuilder/utils.js +3 -17
  361. package/src/components/Input/index.d.ts +1 -2
  362. package/src/components/ProgressIndicator/ProgressIndicator.js +15 -6
  363. package/src/components/Select/Select.d.ts +1 -1
  364. package/src/components/Select/Select.js +3 -1
  365. package/src/components/Textarea/index.d.ts +2 -2
  366. package/src/components/icons/collapse-all.d.ts +3 -0
  367. package/src/components/icons/collapse-all.js +7 -0
  368. package/src/components/icons/copy.d.ts +3 -0
  369. package/src/components/icons/copy.js +7 -0
  370. package/src/components/icons/csv.d.ts +3 -0
  371. package/src/components/icons/csv.js +7 -0
  372. package/src/components/icons/data-object.d.ts +3 -0
  373. package/src/components/icons/data-object.js +7 -0
  374. package/src/components/icons/excel.d.ts +3 -0
  375. package/src/components/icons/excel.js +8 -0
  376. package/src/components/icons/expand-all.d.ts +3 -0
  377. package/src/components/icons/expand-all.js +7 -0
  378. package/src/components/icons/filter-off.d.ts +3 -0
  379. package/src/components/icons/filter-off.js +7 -0
  380. package/src/components/icons/grid-info.d.ts +3 -0
  381. package/src/components/icons/grid-info.js +7 -0
  382. package/src/components/icons/index.js +22 -0
  383. package/src/components/icons/note.js +2 -2
  384. package/src/components/icons/select-all.d.ts +3 -0
  385. package/src/components/icons/select-all.js +7 -0
  386. package/src/components/icons/select-fwd.d.ts +3 -0
  387. package/src/components/icons/select-fwd.js +7 -0
  388. package/src/components/icons/select-off.d.ts +3 -0
  389. package/src/components/icons/select-off.js +7 -0
  390. package/src/env.js +2 -2
  391. package/src/metamodel/adaptable.metamodel.d.ts +222 -116
  392. package/src/metamodel/adaptable.metamodel.js +1 -9429
  393. package/src/parser/src/parser.js +576 -553
  394. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  395. package/src/parser/src/predicate/mapQlPredicateToExpression.js +3 -4
  396. package/src/parser/src/types.d.ts +2 -2
  397. package/src/parser/src/types.js +1 -2
  398. package/src/types.d.ts +32 -25
  399. package/tsconfig.cjs.tsbuildinfo +1 -1
  400. package/src/AdaptableOptions/MenuOptions.d.ts +0 -234
  401. package/src/AdaptableOptions/MenuOptions.js +0 -99
  402. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  403. package/src/Api/Implementation/ScopeApiImpl.d.ts +0 -33
  404. package/src/Api/Internal/NotesInternalApi.d.ts +0 -4
  405. package/src/Api/NotesApi.d.ts +0 -48
  406. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  407. package/src/PredefinedConfig/CellAddress.js +0 -5
  408. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -38
  409. package/src/Strategy/CommentsModule.d.ts +0 -17
  410. package/src/Strategy/CommentsModule.js +0 -86
  411. package/src/Strategy/NotesModule.d.ts +0 -10
  412. package/src/Strategy/NotesModule.js +0 -61
  413. package/src/Utilities/Services/SummaryService.d.ts +0 -19
  414. package/src/Utilities/Services/SummaryService.js +0 -33
  415. package/src/View/Notes/NotesPopup.d.ts +0 -2
  416. /package/src/{Api/Events/CommentsChangedInfo.js → AdaptableOptions/ColumnMenuOptions.js} +0 -0
  417. /package/src/{Api/NotesApi.js → AdaptableOptions/ContextMenuOptions.js} +0 -0
  418. /package/src/Api/{ScopeApi.js → ColumnMenuApi.js} +0 -0
  419. /package/src/{PredefinedConfig/Common/AdaptableScope.js → Api/ColumnScopeApi.js} +0 -0
  420. /package/src/{PredefinedConfig/NotesState.js → Api/ContextMenuApi.js} +0 -0
  421. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  422. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -78,9 +78,9 @@ class CellPopupService {
78
78
  this.hidePopup();
79
79
  return;
80
80
  }
81
- const cellNotes = this.adaptable.api.notesApi.getCellNotes(cellPosition);
81
+ const cellNote = this.adaptable.api.noteApi.getNoteForCell(cellPosition);
82
82
  const cellComments = this.adaptable.api.commentApi.getCommentThread(cellPosition);
83
- const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
83
+ const hasNotesOrComments = cellNote || cellComments;
84
84
  // call only if it is different
85
85
  if (CellPopupService.isSameAddress(openCellAddress, cellPosition)) {
86
86
  return;
@@ -96,9 +96,9 @@ class CellPopupService {
96
96
  return;
97
97
  }
98
98
  // if open but this has no note, close
99
- const cellNotes = this.adaptable.api.notesApi.getCellNotes(cellAddress);
99
+ const cellNote = this.adaptable.api.noteApi.getNoteForCell(cellAddress);
100
100
  const cellComments = this.adaptable.api.commentApi.getCommentThread(cellAddress);
101
- const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
101
+ const hasNotesOrComments = cellNote || cellComments;
102
102
  if (openCellAddress && !hasNotesOrComments) {
103
103
  // hide only if in edit mode
104
104
  // because if you select a cell and move the mouse fast over another cell
@@ -4,11 +4,8 @@ import { IAdaptableService } from './IAdaptableService';
4
4
  import { ExcelStyle, IRowNode } from '@ag-grid-community/core';
5
5
  import { CustomDestination, SystemExportDestination } from '../../../types';
6
6
  export interface IReportService extends IAdaptableService {
7
- resetExcelStyleMemoization(): void;
8
- registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
9
- getRegisteredExcelStyles(): ExcelStyle[];
7
+ buildExcelStylesForVisualReports(): ExcelStyle[];
10
8
  getExcelStyleIdForCellClassKey(cellClassKey: string): string;
11
- registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
12
9
  getExcelStyleWithFormattedDate(cellClassId: string): string;
13
10
  CreateSystemReport(systemReportName: SystemReportName): Report;
14
11
  IsSystemReport(reportName: string): boolean;
@@ -1,198 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LicenseService = exports.LicenseValidityType = void 0;
4
- const tslib_1 = require("tslib");
5
- const SystemRedux_1 = require("../../../Redux/ActionsReducers/SystemRedux");
6
- const PopupRedux_1 = require("../../../Redux/ActionsReducers/PopupRedux");
7
- const ObjectFactory_1 = tslib_1.__importDefault(require("../../ObjectFactory"));
8
- const clamp_1 = tslib_1.__importDefault(require("lodash/clamp"));
9
- const DocumentationLinkConstants_1 = require("../../Constants/DocumentationLinkConstants");
10
- const decode_1 = require("../../license/decode");
11
- const shouldLogThankYouMessage_1 = require("./shouldLogThankYouMessage");
12
- const EMAIL = 'sales@adaptabletools.com';
13
- const COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE = 10;
14
- const DAY_IN_MS = 1000 * 60 * 60 * 24;
15
- var LicenseValidityType;
16
- (function (LicenseValidityType) {
17
- LicenseValidityType["INVALID_LICENSE"] = "INVALID_LICENSE";
18
- LicenseValidityType["NO_LICENSE"] = "NO_LICENSE";
19
- LicenseValidityType["NON_PRODUCTION_VALID"] = "NON_PRODUCTION_VALID";
20
- LicenseValidityType["NON_PRODUCTION_EXPIRED_IN_SCOPE"] = "NON_PRODUCTION_EXPIRED_IN_SCOPE";
21
- LicenseValidityType["NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE"] = "NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE";
22
- LicenseValidityType["COMMERCIAL_VALID"] = "COMMERCIAL_VALID";
23
- LicenseValidityType["COMMERCIAL_EXPIRED_IN_SCOPE"] = "COMMERCIAL_EXPIRED_IN_SCOPE";
24
- LicenseValidityType["COMMERCIAL_EXPIRED_OUT_OF_SCOPE"] = "COMMERCIAL_EXPIRED_OUT_OF_SCOPE";
25
- })(LicenseValidityType = exports.LicenseValidityType || (exports.LicenseValidityType = {}));
26
- const SANDPACK_REGEX = /(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g;
27
- const SANDBOX_REGEX = /(https):\/\/\S+(\.csb\.app)/g;
28
- const DEMO_REGEX = /(https):\/\/\S+(\.adaptabletools\.com)/g;
29
- const getOrigin = () => {
30
- return typeof window !== 'undefined' ? window.location.origin : '';
31
- };
32
- const isInsideSandpack = () => {
33
- const [_fullUrl, protocol, sandpackUrl] = Array.from(SANDPACK_REGEX.exec(getOrigin()) || []);
34
- return protocol === 'https' && sandpackUrl === 'sandpack.codesandbox.io';
35
- };
36
- const isInsideSandbox = () => {
37
- const [_fullUrl, protocol, sandboxUrl] = Array.from(SANDBOX_REGEX.exec(getOrigin()) || []);
38
- return protocol === 'https' && sandboxUrl === '.csb.app';
39
- };
40
- const isDemoApp = () => {
41
- const [_fullUrl, protocol, demoAppUrl] = Array.from(DEMO_REGEX.exec(getOrigin()) || []);
42
- return protocol === 'https' && demoAppUrl === '.adaptabletools.com';
43
- };
44
- class LicenseService {
45
- constructor(adaptable, licenseKey, packageDetails) {
46
- this.adaptable = adaptable;
47
- this.licenseKey = licenseKey;
48
- this.packageDetails = packageDetails;
49
- this.adaptable = adaptable;
50
- this.adaptable.api.eventApi.on('AdaptableReady', () => {
51
- requestAnimationFrame(() => {
52
- // using a rAF because we want to make sure that the window.location.origin is available (Master/Detail is fidgity sometimes)
53
- this.init();
54
- });
55
- });
56
- }
57
- init() {
58
- let details = null;
59
- if (this.licenseKey) {
60
- try {
61
- details = (0, decode_1.decode)(this.licenseKey);
62
- }
63
- catch (error) {
64
- details = error;
65
- }
66
- }
67
- if (!isInsideSandpack() && !isInsideSandbox() && !isDemoApp()) {
68
- this.handleLicenseValidation(details, this.getValidityType(details, this.packageDetails));
69
- }
70
- }
71
- getValidityType(details, packageDetails) {
72
- if (!details) {
73
- return LicenseValidityType.NO_LICENSE;
74
- }
75
- if (details instanceof Error) {
76
- return LicenseValidityType.INVALID_LICENSE;
77
- }
78
- const currentVersionReleaseDate = new Date(packageDetails.publishedAt);
79
- const licenseEndDate = new Date(details.end);
80
- const currentDate = new Date();
81
- const isExpired = licenseEndDate < currentDate;
82
- const isTrial = details.trial;
83
- const isScope = licenseEndDate > currentVersionReleaseDate;
84
- let validityType = null;
85
- if (isExpired) {
86
- if (isScope) {
87
- if (isTrial) {
88
- validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE;
89
- }
90
- else {
91
- validityType = LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE;
92
- }
93
- }
94
- else {
95
- if (isTrial) {
96
- validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE;
97
- }
98
- else {
99
- validityType = LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE;
100
- }
101
- }
102
- }
103
- else {
104
- if (isTrial) {
105
- validityType = LicenseValidityType.NON_PRODUCTION_VALID;
106
- }
107
- else {
108
- validityType = LicenseValidityType.COMMERCIAL_VALID;
109
- }
110
- }
111
- return validityType;
112
- }
113
- handleLicenseValidation(details, validityType) {
114
- var _a;
115
- const nowAtMidnight = new Date();
116
- nowAtMidnight.setHours(0, 0, 0, 0);
117
- let daysLeft = 0;
118
- if (!(details instanceof Error) && (details === null || details === void 0 ? void 0 : details.end)) {
119
- daysLeft = Math.floor((((_a = details === null || details === void 0 ? void 0 : details.end) === null || _a === void 0 ? void 0 : _a.getTime()) - nowAtMidnight.getTime()) / DAY_IN_MS);
120
- daysLeft = (0, clamp_1.default)(daysLeft, 0, Infinity);
121
- }
122
- let APP_NAME = '';
123
- let forApp = '';
124
- if (details &&
125
- !(details instanceof Error) &&
126
- details.appName &&
127
- details.appName != decode_1.GENERIC_APP_NAME) {
128
- APP_NAME = details.appName;
129
- forApp = ` for application [APP_NAME]`;
130
- }
131
- const annotateMessage = (message, link = DocumentationLinkConstants_1.LicenseDocsLink, email = EMAIL, days = daysLeft, appName = APP_NAME) => {
132
- return message
133
- .replace('[LINK]', link)
134
- .replace('[EMAIL]', email)
135
- .replace('[APP_NAME]', appName)
136
- .replace('[DAYS]', `${days}`);
137
- };
138
- switch (validityType) {
139
- case 'NO_LICENSE':
140
- case 'NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE':
141
- this.adaptable.logger.consoleLogByMessageType(annotateMessage('This instance of AdapTable does not have a license, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK].'), 'Error');
142
- this.showNotification('No AdapTable License found.');
143
- this.showWatermark('This instance of AdapTable does not have a license, and some functionality has therefore been removed.');
144
- this.disableStatePersistence();
145
- break;
146
- case 'INVALID_LICENSE':
147
- this.adaptable.logger.consoleLogByMessageType(annotateMessage('This instance of AdapTable seems to use a corrupted License, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK].'), 'Error');
148
- this.showNotification('Corrupted AdapTable License found.');
149
- this.showWatermark(`This instance of AdapTable has a corrupted License, and some functionality has therefore been removed.`);
150
- this.disableStatePersistence();
151
- break;
152
- case 'NON_PRODUCTION_VALID':
153
- this.adaptable.logger.consoleLogByMessageType(annotateMessage('This AdapTable trial license expires in [DAYS] days. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK].'), 'Info');
154
- break;
155
- case 'NON_PRODUCTION_EXPIRED_IN_SCOPE':
156
- this.adaptable.logger.consoleLogByMessageType(annotateMessage('This AdapTable trial license has now expired. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK].'), 'Warning');
157
- this.showWatermark('AdapTable License has expired');
158
- break;
159
- case 'COMMERCIAL_VALID':
160
- if (daysLeft <= COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE) {
161
- this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`), 'Info');
162
- }
163
- else {
164
- try {
165
- if ((0, shouldLogThankYouMessage_1.shouldLogThankYouMessage)()) {
166
- this.adaptable.logger.consoleLogByMessageType(annotateMessage(`Thank you for using a valid AdapTable license${forApp}. Your license will expire in [DAYS] days.`), 'Info');
167
- }
168
- }
169
- catch (ex) { }
170
- }
171
- break;
172
- case 'COMMERCIAL_EXPIRED_IN_SCOPE':
173
- this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`), 'Warning');
174
- break;
175
- case 'COMMERCIAL_EXPIRED_OUT_OF_SCOPE':
176
- this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`), 'Error');
177
- this.showNotification('Adaptable License has expired');
178
- this.showWatermark('Adaptable License has expired');
179
- break;
180
- }
181
- }
182
- showNotification(text) {
183
- this.adaptable.api.internalApi.dispatchReduxAction((0, PopupRedux_1.PopupShowAlert)({
184
- alertType: 'generic',
185
- header: 'License Error',
186
- message: text,
187
- alertDefinition: ObjectFactory_1.default.CreateInternalAlertDefinitionForMessages('Error'),
188
- }));
189
- }
190
- showWatermark(text) {
191
- this.adaptable.api.internalApi.dispatchReduxAction((0, SystemRedux_1.SystemLicenseShowWatermark)(text));
192
- }
193
- disableStatePersistence() {
194
- this.adaptable.api.internalApi.dispatchReduxAction((0, SystemRedux_1.SystemLicenseDisablePersistence)());
195
- }
196
- destroy() { }
197
- }
198
- exports.LicenseService = LicenseService;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LicenseService=exports.LicenseValidityType=void 0;const e=require("tslib"),a=require("../../../Redux/ActionsReducers/SystemRedux"),t=require("../../../Redux/ActionsReducers/PopupRedux"),s=e.__importDefault(require("../../ObjectFactory")),i=e.__importDefault(require("lodash/clamp")),o=require("../../Constants/DocumentationLinkConstants"),n=require("../../license/decode"),r=require("./shouldLogThankYouMessage"),l="sales@adaptabletools.com",c=10,d=864e5;var p;!function(e){e.INVALID_LICENSE="INVALID_LICENSE",e.NO_LICENSE="NO_LICENSE",e.NON_PRODUCTION_VALID="NON_PRODUCTION_VALID",e.NON_PRODUCTION_EXPIRED_IN_SCOPE="NON_PRODUCTION_EXPIRED_IN_SCOPE",e.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE="NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE",e.COMMERCIAL_VALID="COMMERCIAL_VALID",e.COMMERCIAL_EXPIRED_IN_SCOPE="COMMERCIAL_EXPIRED_IN_SCOPE",e.COMMERCIAL_EXPIRED_OUT_OF_SCOPE="COMMERCIAL_EXPIRED_OUT_OF_SCOPE"}(p=exports.LicenseValidityType||(exports.LicenseValidityType={}));const h=()=>"undefined"!=typeof window?window.location.origin:"",E=()=>{const e=h(),[a,t,s]=Array.from(/(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g.exec(e)||[]);return"https"===t&&"sandpack.codesandbox.io"===s},_=()=>{const e=h(),[a,t,s]=Array.from(/(https):\/\/\S+(\.csb\.app)/g.exec(e)||[]);return"https"===t&&".csb.app"===s},I=()=>{const e=h(),[a,t,s]=Array.from(/(https):\/\/\S+(\.adaptabletools\.com)/g.exec(e)||[]);return"https"===t&&".adaptabletools.com"===s};class O{constructor(e,a,t){this.adaptable=e,this.licenseKey=a,this.packageDetails=t,this.adaptable=e,this.adaptable.api.eventApi.on("AdaptableReady",(()=>{requestAnimationFrame((()=>{this.init()}))}))}init(){let e=null;if(this.licenseKey)try{e=(0,n.decode)(this.licenseKey)}catch(a){e=a}E()||_()||I()||this.handleLicenseValidation(e,this.getValidityType(e,this.packageDetails))}getValidityType(e,a){if(!e)return p.NO_LICENSE;if(e instanceof Error)return p.INVALID_LICENSE;const t=new Date(a.publishedAt),s=new Date(e.end),i=s<new Date,o=e.trial;let n=null;return n=i?s>t?o?p.NON_PRODUCTION_EXPIRED_IN_SCOPE:p.COMMERCIAL_EXPIRED_IN_SCOPE:o?p.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE:p.COMMERCIAL_EXPIRED_OUT_OF_SCOPE:o?p.NON_PRODUCTION_VALID:p.COMMERCIAL_VALID,n}handleLicenseValidation(e,a){var t;const s=new Date;s.setHours(0,0,0,0);let p=0;e instanceof Error||!(null==e?void 0:e.end)||(p=Math.floor(((null===(t=null==e?void 0:e.end)||void 0===t?void 0:t.getTime())-s.getTime())/d),p=(0,i.default)(p,0,1/0));let h="",E="";!e||e instanceof Error||!e.appName||e.appName==n.GENERIC_APP_NAME||(h=e.appName,E=" for application [APP_NAME]");const _=(e,a=o.LicenseDocsLink,t=l,s=p,i=h)=>e.replace("[LINK]",a).replace("[EMAIL]",t).replace("[APP_NAME]",i).replace("[DAYS]",`${s}`);switch(a){case"NO_LICENSE":case"NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(_("This instance of AdapTable does not have a license, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("No AdapTable License found."),this.showWatermark("This instance of AdapTable does not have a license, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"INVALID_LICENSE":this.adaptable.logger.consoleLogByMessageType(_("This instance of AdapTable seems to use a corrupted License, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("Corrupted AdapTable License found."),this.showWatermark("This instance of AdapTable has a corrupted License, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"NON_PRODUCTION_VALID":this.adaptable.logger.consoleLogByMessageType(_("This AdapTable trial license expires in [DAYS] days. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Info");break;case"NON_PRODUCTION_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(_("This AdapTable trial license has now expired. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Warning"),this.showWatermark("AdapTable License has expired");break;case"COMMERCIAL_VALID":if(p<=c)this.adaptable.logger.consoleLogByMessageType(_(`This AdapTable license${E} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`),"Info");else try{(0,r.shouldLogThankYouMessage)()&&this.adaptable.logger.consoleLogByMessageType(_(`Thank you for using a valid AdapTable license${E}. Your license will expire in [DAYS] days.`),"Info")}catch(e){}break;case"COMMERCIAL_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(_(`This AdapTable license${E} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`),"Warning");break;case"COMMERCIAL_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(_(`This AdapTable license${E} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`),"Error"),this.showNotification("Adaptable License has expired"),this.showWatermark("Adaptable License has expired")}}showNotification(e){this.adaptable.api.internalApi.dispatchReduxAction((0,t.PopupShowAlert)({alertType:"generic",header:"License Error",message:e,alertDefinition:s.default.CreateInternalAlertDefinitionForMessages("Error")}))}showWatermark(e){this.adaptable.api.internalApi.dispatchReduxAction((0,a.SystemLicenseShowWatermark)(e))}disableStatePersistence(){this.adaptable.api.internalApi.dispatchReduxAction((0,a.SystemLicenseDisablePersistence)())}destroy(){}}exports.LicenseService=O;
@@ -14,13 +14,13 @@ class ModuleService {
14
14
  const settingsPanelMenuItems = [];
15
15
  const buttonMenuItems = [];
16
16
  this.getModuleCollection().forEach((module) => {
17
- const settingsPanelMenuItem = module.addModuleMenuItem('ModuleMenu');
17
+ const settingsPanelMenuItem = module.createModuleMenuItem('ModuleMenu');
18
18
  if (Helper_1.default.objectExists(settingsPanelMenuItem)) {
19
19
  if (settingsPanelMenuItems.findIndex((m) => m.module == settingsPanelMenuItem.module) == -1) {
20
20
  settingsPanelMenuItems.push(settingsPanelMenuItem);
21
21
  }
22
22
  }
23
- const buttonMenuItem = module.addModuleMenuItem('ModuleButton');
23
+ const buttonMenuItem = module.createModuleMenuItem('ModuleButton');
24
24
  if (Helper_1.default.objectExists(buttonMenuItem)) {
25
25
  if (buttonMenuItems.findIndex((m) => m.module == buttonMenuItem.module) == -1) {
26
26
  buttonMenuItems.push(buttonMenuItem);
@@ -105,6 +105,8 @@ class ModuleService {
105
105
  return learnUrl + 'handbook-exporting';
106
106
  case 'ColumnFilter':
107
107
  return learnUrl + 'handbook-column-filter';
108
+ case 'Comment':
109
+ return learnUrl + 'handbook-comments';
108
110
  case 'GridFilter':
109
111
  return learnUrl + 'handbook-grid-filter';
110
112
  case 'FlashingCell':
@@ -117,6 +119,8 @@ class ModuleService {
117
119
  return learnUrl + 'handbook-monitoring-grid-info';
118
120
  case 'Layout':
119
121
  return learnUrl + 'handbook-layouts';
122
+ case 'Note':
123
+ return learnUrl + 'handbook-notes';
120
124
  case 'PlusMinus':
121
125
  return learnUrl + 'handbook-editing-plus-minus';
122
126
  case 'NamedQuery':
@@ -52,7 +52,7 @@ class QueryLanguageService {
52
52
  const moduleExpressionFunctions = this.getModuleExpressionFunctionsMap(module);
53
53
  const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctions);
54
54
  const reactiveExpression$ = parser.evaluate(reactiveExpression, {
55
- node: reactiveExpression,
55
+ node: this.adaptableApi.gridApi.getFirstRowNode(),
56
56
  adaptableApi: this.adaptableApi,
57
57
  userName: this.adaptableApi.optionsApi.getUserName(),
58
58
  adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
@@ -66,7 +66,7 @@ class QueryLanguageService {
66
66
  const moduleExpressionFunctionsMap = this.getModuleExpressionFunctionsMap(module);
67
67
  const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctionsMap);
68
68
  const aggregationEvaluation = parser.evaluate(aggregationExpression, {
69
- node: aggregationExpression,
69
+ node: this.adaptableApi.gridApi.getFirstRowNode(),
70
70
  adaptableApi: this.adaptableApi,
71
71
  userName: this.adaptableApi.optionsApi.getUserName(),
72
72
  adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
@@ -10,11 +10,8 @@ export declare class ReportService implements IReportService {
10
10
  private cellClassKey2excelStyleIdMap;
11
11
  private excelStylesWithFormattedDate;
12
12
  constructor(adaptableApi: AdaptableApi);
13
- resetExcelStyleMemoization(): void;
14
- registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
15
- getRegisteredExcelStyles(): ExcelStyle[];
13
+ destroy(): void;
16
14
  getExcelStyleIdForCellClassKey(cellClassKey: string): string;
17
- registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
18
15
  getExcelStyleWithFormattedDate(cellClassId: string): string;
19
16
  CreateSystemReport(systemReportName: SystemReportName): Report;
20
17
  IsSystemReport(reportName: string): boolean;
@@ -33,7 +30,12 @@ export declare class ReportService implements IReportService {
33
30
  getCellExportValueFromRowNode(rowNode: IRowNode, columnId: string): any;
34
31
  getCellExportValueFromRawValue(rowNode: IRowNode, cellRawValue: any, columnId: string): any;
35
32
  getReportFileName(reportName: string, destination: SystemExportDestination | CustomDestination): string;
36
- destroy(): void;
37
33
  private getCustomExportDateFormat;
38
34
  private getCellExportValueFromRawValueByType;
35
+ buildExcelStylesForVisualReports(): ExcelStyle[];
36
+ createExcelStyleMemoization(): void;
37
+ private convertCSSToExcelStyle;
38
+ private resetExcelStyleMemoization;
39
+ private registerExcelStyle;
40
+ private registerExcelStyleWithFormattedDate;
39
41
  }
@@ -11,6 +11,8 @@ const StringExtensions_1 = tslib_1.__importDefault(require("../Extensions/String
11
11
  const ModuleConstants_1 = require("../Constants/ModuleConstants");
12
12
  const uuid_1 = require("../../components/utils/uuid");
13
13
  const ObjectFactory_1 = require("../ObjectFactory");
14
+ const StyleHelper_1 = require("../Helpers/StyleHelper");
15
+ const tinycolor2_1 = tslib_1.__importDefault(require("tinycolor2"));
14
16
  class ReportService {
15
17
  constructor(adaptableApi) {
16
18
  this.adaptableApi = adaptableApi;
@@ -19,29 +21,12 @@ class ReportService {
19
21
  this.excelStylesWithFormattedDate = {};
20
22
  this.adaptableApi = adaptableApi;
21
23
  }
22
- resetExcelStyleMemoization() {
23
- this.excelStylesCache = {};
24
- this.cellClassKey2excelStyleIdMap = {};
25
- this.excelStylesWithFormattedDate = {};
26
- }
27
- registerExcelStyle(excelStyle, cellClassKey) {
28
- const excelStyleKey = JSON.stringify(excelStyle);
29
- if (!this.excelStylesCache[excelStyleKey]) {
30
- const excelStyleId = (0, uuid_1.createUuid)();
31
- const excelStyleWithId = Object.assign(Object.assign({}, excelStyle), { id: excelStyleId });
32
- this.excelStylesCache[excelStyleKey] = excelStyleWithId;
33
- }
34
- this.cellClassKey2excelStyleIdMap[cellClassKey] = this.excelStylesCache[excelStyleKey].id;
35
- }
36
- getRegisteredExcelStyles() {
37
- return Object.values(this.excelStylesCache);
24
+ destroy() {
25
+ // TO DO
38
26
  }
39
27
  getExcelStyleIdForCellClassKey(cellClassKey) {
40
28
  return this.cellClassKey2excelStyleIdMap[cellClassKey];
41
29
  }
42
- registerExcelStyleWithFormattedDate(cellClassId, isoFormattedValue) {
43
- this.excelStylesWithFormattedDate[cellClassId] = isoFormattedValue;
44
- }
45
30
  getExcelStyleWithFormattedDate(cellClassId) {
46
31
  return this.excelStylesWithFormattedDate[cellClassId];
47
32
  }
@@ -103,8 +88,11 @@ class ReportService {
103
88
  reportName == GeneralConstants_1.VISUAL_DATA_REPORT);
104
89
  }
105
90
  IsSystemReportActive(reportName) {
106
- if (reportName == GeneralConstants_1.SELECTED_CELLS_REPORT || reportName == GeneralConstants_1.SELECTED_ROWS_REPORT) {
107
- return this.adaptableApi.gridApi.isGridSelectable();
91
+ if (reportName == GeneralConstants_1.SELECTED_CELLS_REPORT) {
92
+ return this.adaptableApi.gridApi.isGridRangeSelectable();
93
+ }
94
+ if (reportName == GeneralConstants_1.SELECTED_ROWS_REPORT) {
95
+ return this.adaptableApi.gridApi.isGridRowSelectable();
108
96
  }
109
97
  if (reportName === GeneralConstants_1.VISUAL_DATA_REPORT) {
110
98
  return this.adaptableApi.exportApi
@@ -150,7 +138,7 @@ class ReportService {
150
138
  case 'SelectedColumns':
151
139
  return '[Selected Columns]';
152
140
  case 'ScopeColumns':
153
- return this.adaptableApi.scopeApi.getScopeDescription(report.Scope);
141
+ return this.adaptableApi.columnScopeApi.getScopeDescription(report.Scope);
154
142
  }
155
143
  }
156
144
  GetReportExpressionDescription(report, cols) {
@@ -213,7 +201,7 @@ class ReportService {
213
201
  reportColumns = report.Scope.ColumnIds.map((columnId) => this.adaptableApi.columnApi.getColumnWithColumnId(columnId)).filter((c) => c);
214
202
  }
215
203
  else {
216
- reportColumns = this.adaptableApi.scopeApi.getColumnsForScope(report.Scope);
204
+ reportColumns = this.adaptableApi.columnScopeApi.getColumnsForScope(report.Scope);
217
205
  }
218
206
  break;
219
207
  }
@@ -369,9 +357,6 @@ class ReportService {
369
357
  }
370
358
  return fileName;
371
359
  }
372
- destroy() {
373
- // TO DO
374
- }
375
360
  getCustomExportDateFormat() {
376
361
  return this.adaptableApi.optionsApi.getExportOptions().exportDateFormat;
377
362
  }
@@ -383,5 +368,239 @@ class ReportService {
383
368
  : // type === formattedValue
384
369
  this.adaptableApi.gridApi.getDisplayValueFromRawValue(rowNode, columnId, cellRawValue);
385
370
  }
371
+ // aggregate and merge all acive Adaptable styles with the user proviided ExcelStyles
372
+ buildExcelStylesForVisualReports() {
373
+ // for historical reasons, the styles are merged as class variables
374
+ // we could/should refactor this to be more functional
375
+ this.createExcelStyleMemoization();
376
+ return Object.values(this.excelStylesCache);
377
+ }
378
+ createExcelStyleMemoization() {
379
+ this.resetExcelStyleMemoization();
380
+ // we memoize as much as possible, as this is called quite A LOT
381
+ const adaptableColumnMap = {};
382
+ const getAdaptableColumnWithColumnId = (columnId) => {
383
+ const memoizedColumn = adaptableColumnMap[columnId];
384
+ if (memoizedColumn) {
385
+ return memoizedColumn;
386
+ }
387
+ const abColumn = this.adaptableApi.columnApi.getColumnWithColumnId(columnId);
388
+ adaptableColumnMap[columnId] = abColumn;
389
+ return abColumn;
390
+ };
391
+ const formatColumnsWithDisplayFormatForColumn = {};
392
+ const getFormatColumnsWithDisplayFormatForColumn = (columnId) => {
393
+ const memoizedFormatColumns = formatColumnsWithDisplayFormatForColumn[columnId];
394
+ if (memoizedFormatColumns) {
395
+ return memoizedFormatColumns;
396
+ }
397
+ const abColumn = getAdaptableColumnWithColumnId(columnId);
398
+ const formatColumns = this.adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
399
+ formatColumnsWithDisplayFormatForColumn[columnId] = formatColumns;
400
+ return formatColumns;
401
+ };
402
+ const isDateCellExportedAsFormattedValue = this.adaptableApi.exportApi.internalApi.isDateCellExportedAsFormattedValue();
403
+ const displayedColumns = this.adaptableApi.agGridApi.getAllDisplayedColumns();
404
+ const colDefs = displayedColumns.map((column) => {
405
+ return column.getColDef();
406
+ });
407
+ const forAllVisibleRowNodesDoConfig = { includeGroupRows: true };
408
+ const agGridApi = this.adaptableApi.agGridApi;
409
+ const userExcelStyles = this.adaptableApi.internalApi
410
+ .getAdaptableInstance()
411
+ .agGridAdapter.getUserGridOptionsProperty('excelStyles') || [];
412
+ this.adaptableApi.internalApi.forAllVisibleRowNodesDo((node, rowIndex) => {
413
+ var _a;
414
+ const rowParams = {
415
+ node,
416
+ data: node.data,
417
+ rowIndex,
418
+ api: agGridApi,
419
+ columnApi: null,
420
+ context: ((_a = agGridApi.__getContext) === null || _a === void 0 ? void 0 : _a.call(agGridApi)) || {},
421
+ };
422
+ const getRowStyleFn = agGridApi.getGridOption('getRowStyle');
423
+ const rowStyle = getRowStyleFn ? getRowStyleFn(rowParams) : {};
424
+ displayedColumns.forEach((column, columnIndex) => {
425
+ var _a, _b, _c;
426
+ const colDef = colDefs[columnIndex];
427
+ let cellClassParams;
428
+ const getLazyCellClassParams = () => {
429
+ if (!cellClassParams) {
430
+ cellClassParams = {
431
+ colDef,
432
+ node,
433
+ column,
434
+ data: node.data,
435
+ value: this.adaptableApi.gridApi.getRawValueFromRowNode(node, column.getId()),
436
+ rowIndex,
437
+ api: agGridApi,
438
+ columnApi: null,
439
+ context: {},
440
+ };
441
+ }
442
+ return cellClassParams;
443
+ };
444
+ const cellStyle = typeof colDef.cellStyle === 'function' ? colDef.cellStyle(getLazyCellClassParams()) : {};
445
+ const excelStyles = [];
446
+ // add user defined excel styles
447
+ let userColDefCellClass = this.adaptableApi.internalApi
448
+ .getAdaptableInstance()
449
+ .agGridColumnAdapter.getUserColDefProperty(column.getColId(), 'cellClass');
450
+ const userDefinedCellClass = typeof userColDefCellClass === 'function'
451
+ ? userColDefCellClass(getLazyCellClassParams())
452
+ : userColDefCellClass;
453
+ const userDefinedExcelStyle = userDefinedCellClass &&
454
+ userExcelStyles.find((excelStyle) => {
455
+ var _a;
456
+ return typeof userDefinedCellClass === 'string'
457
+ ? userDefinedCellClass === excelStyle.id
458
+ : (_a = userDefinedCellClass === null || userDefinedCellClass === void 0 ? void 0 : userDefinedCellClass.includes) === null || _a === void 0 ? void 0 : _a.call(userDefinedCellClass, excelStyle.id);
459
+ });
460
+ if (userDefinedExcelStyle) {
461
+ excelStyles.push(userDefinedExcelStyle);
462
+ }
463
+ // add adaptable derived styles (format column etc.)
464
+ const adaptableStyle = Object.assign(Object.assign({}, rowStyle), Object.keys(cellStyle).reduce((result, key) => {
465
+ if (cellStyle[key] !== null) {
466
+ result[key] = cellStyle[key];
467
+ }
468
+ return result;
469
+ }, {}));
470
+ const sanitizedAdaptableStyle = (0, StyleHelper_1.sanitizeStyle)(adaptableStyle);
471
+ if (Object.values(sanitizedAdaptableStyle).some((style) => style != null)) {
472
+ excelStyles.push(this.convertCSSToExcelStyle(sanitizedAdaptableStyle));
473
+ }
474
+ const excelDataType = this.adaptableApi.exportApi.internalApi.getExcelDataType(colDef === null || colDef === void 0 ? void 0 : colDef.type);
475
+ const rawValue = this.adaptableApi.gridApi.getRawValueFromRowNode(node, column.getId());
476
+ // don't add the cell style if it has no adaptable custom styles
477
+ if (!excelStyles.length &&
478
+ // if this is a formatted Date value, we still need to add the AG GRID specific type & numberFormat below
479
+ !(excelDataType === 'DateTime' && isDateCellExportedAsFormattedValue)) {
480
+ return;
481
+ }
482
+ const cellClassId = this.adaptableApi.internalApi
483
+ .getAdaptableInstance()
484
+ .agGridColumnAdapter.getExcelClassNameForCell(column.getId(), this.adaptableApi.internalApi
485
+ .getAdaptableInstance()
486
+ .getPrimaryKeyValueFromRowNode(node), userDefinedCellClass);
487
+ const finalCellExcelStyle = Object.assign({}, ...excelStyles);
488
+ if (excelDataType === 'DateTime' && isDateCellExportedAsFormattedValue) {
489
+ let dateFormatPattern = this.adaptableApi.optionsApi.getExportOptions().exportDateFormat;
490
+ const abColumn = getAdaptableColumnWithColumnId(column.getColId());
491
+ if (!dateFormatPattern) {
492
+ const mostRelevantFormatColumn = this.adaptableApi.formatColumnApi.internalApi.getMostRelevantFormatColumnForColumn(getFormatColumnsWithDisplayFormatForColumn(column.getColId()), abColumn, { node, value: rawValue });
493
+ dateFormatPattern =
494
+ ((_a = mostRelevantFormatColumn === null || mostRelevantFormatColumn === void 0 ? void 0 : mostRelevantFormatColumn.DisplayFormat) === null || _a === void 0 ? void 0 : _a.Formatter) === 'DateFormatter' &&
495
+ ((_c = (_b = mostRelevantFormatColumn === null || mostRelevantFormatColumn === void 0 ? void 0 : mostRelevantFormatColumn.DisplayFormat) === null || _b === void 0 ? void 0 : _b.Options) === null || _c === void 0 ? void 0 : _c.Pattern);
496
+ }
497
+ if (dateFormatPattern) {
498
+ const normalisedValue = this.adaptableApi.internalApi
499
+ .getAdaptableInstance()
500
+ .getNormalisedValueFromRawValue(rawValue, abColumn);
501
+ if (normalisedValue) {
502
+ // we have to pass the date in the ISO format to Excel
503
+ // see https://www.ag-grid.com/javascript-data-grid/excel-export-data-types/#dates
504
+ // we can NOT use Date.toISOString() because we don't want the timezone corrections to kick in
505
+ const isoFormattedValue = (0, FormatHelper_1.DateFormatter)(normalisedValue, {
506
+ Pattern: `yyyy-MM-dd'T'HH:mm:ss.SSS`,
507
+ });
508
+ if (isoFormattedValue) {
509
+ finalCellExcelStyle.dataType = 'DateTime';
510
+ finalCellExcelStyle.numberFormat = { format: dateFormatPattern };
511
+ // create a new cell key to ensure any user provided className does not interfere
512
+ const cellKey = this.adaptableApi.internalApi
513
+ .getAdaptableInstance()
514
+ .agGridColumnAdapter.getExcelClassNameForCell(column.getColId(), this.adaptableApi.internalApi
515
+ .getAdaptableInstance()
516
+ .getPrimaryKeyValueFromRowNode(node));
517
+ // we need to register so that later the cellProcessor will put the isoFormattedValue through (thus giving the formatting responsability to Excel)
518
+ this.registerExcelStyleWithFormattedDate(cellKey, isoFormattedValue);
519
+ }
520
+ }
521
+ }
522
+ }
523
+ this.registerExcelStyle(finalCellExcelStyle, cellClassId);
524
+ });
525
+ }, forAllVisibleRowNodesDoConfig);
526
+ }
527
+ convertCSSToExcelStyle(style) {
528
+ const getHexColor = (color) => {
529
+ const preparedColor = (0, StyleHelper_1.getVariableColor)(color);
530
+ const t = (0, tinycolor2_1.default)(preparedColor);
531
+ const a = t.getAlpha();
532
+ return tinycolor2_1.default.mix((0, tinycolor2_1.default)('white'), t, a * 100).toHexString();
533
+ };
534
+ let result = {};
535
+ if (style.backgroundColor != null) {
536
+ result.interior = {
537
+ color: getHexColor(style.backgroundColor),
538
+ pattern: 'Solid',
539
+ };
540
+ }
541
+ if (style.borderColor != null) {
542
+ const excelBorder = {
543
+ color: style.borderColor,
544
+ lineStyle: 'Continuous',
545
+ weight: 1,
546
+ };
547
+ result.borders = {
548
+ borderBottom: excelBorder,
549
+ borderLeft: excelBorder,
550
+ borderRight: excelBorder,
551
+ borderTop: excelBorder,
552
+ };
553
+ }
554
+ if (style.textAlign) {
555
+ result.alignment = {
556
+ horizontal: StringExtensions_1.default.CapitaliseFirstLetter(style.textAlign),
557
+ };
558
+ }
559
+ if (style.color != null) {
560
+ if (!result.font) {
561
+ result.font = {};
562
+ }
563
+ result.font = {
564
+ color: getHexColor(style.color),
565
+ };
566
+ }
567
+ if (style.fontStyle === 'italic') {
568
+ if (!result.font) {
569
+ result.font = {};
570
+ }
571
+ result.font.italic = true;
572
+ }
573
+ if (style.fontWeight != null &&
574
+ (style.fontWeight === 'bold' || Number(style.fontWeight) >= 600)) {
575
+ if (!result.font) {
576
+ result.font = {};
577
+ }
578
+ result.font.bold = true;
579
+ }
580
+ if (style.fontSize != null) {
581
+ if (!result.font) {
582
+ result.font = {};
583
+ }
584
+ result.font.size = (0, StyleHelper_1.convertCSSAbsoluteFontSizeToPt)(style.fontSize);
585
+ }
586
+ return result;
587
+ }
588
+ resetExcelStyleMemoization() {
589
+ this.excelStylesCache = {};
590
+ this.cellClassKey2excelStyleIdMap = {};
591
+ this.excelStylesWithFormattedDate = {};
592
+ }
593
+ registerExcelStyle(excelStyle, cellClassKey) {
594
+ const excelStyleKey = JSON.stringify(excelStyle);
595
+ if (!this.excelStylesCache[excelStyleKey]) {
596
+ const excelStyleId = (0, uuid_1.createUuid)();
597
+ const excelStyleWithId = Object.assign(Object.assign({}, excelStyle), { id: excelStyleId });
598
+ this.excelStylesCache[excelStyleKey] = excelStyleWithId;
599
+ }
600
+ this.cellClassKey2excelStyleIdMap[cellClassKey] = this.excelStylesCache[excelStyleKey].id;
601
+ }
602
+ registerExcelStyleWithFormattedDate(cellClassId, isoFormattedValue) {
603
+ this.excelStylesWithFormattedDate[cellClassId] = isoFormattedValue;
604
+ }
386
605
  }
387
606
  exports.ReportService = ReportService;