@adaptabletools/adaptable 23.0.0-canary.8 → 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 (275) hide show
  1. package/index.css +29 -14
  2. package/package.json +1 -1
  3. package/src/{Utilities → AdaptableState/Aggregations}/weightedAverage.js +1 -1
  4. package/src/AdaptableState/Common/Enums.d.ts +0 -12
  5. package/src/AdaptableState/Common/Enums.js +0 -15
  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/StyledColumns/BulletChartStyle.d.ts +5 -5
  9. package/src/AdaptableState/StyledColumns/Common/{BarChartCellText.d.ts → BarStyleProperties.d.ts} +34 -10
  10. package/src/AdaptableState/StyledColumns/GradientStyle.d.ts +2 -2
  11. package/src/AdaptableState/StyledColumns/PercentBarStyle.d.ts +2 -2
  12. package/src/AdaptableState/StyledColumns/RangeBarStyle.d.ts +5 -5
  13. package/src/Api/Implementation/AlertApiImpl.js +1 -1
  14. package/src/Api/Implementation/ChartingApiImpl.js +1 -1
  15. package/src/Api/Implementation/ExportApiImpl.js +1 -1
  16. package/src/Api/Implementation/LayoutHelpers.js +1 -1
  17. package/src/Api/Implementation/QuickSearchApiImpl.js +1 -1
  18. package/src/Api/Implementation/ThemeApiImpl.js +1 -1
  19. package/src/Api/Internal/ActionColumnInternalApi.js +1 -1
  20. package/src/Api/Internal/AlertInternalApi.js +1 -1
  21. package/src/Api/Internal/ChartingInternalApi.js +1 -1
  22. package/src/Api/Internal/ColumnInternalApi.js +1 -1
  23. package/src/Api/Internal/EventInternalApi.js +1 -1
  24. package/src/Api/Internal/ExportInternalApi.js +1 -1
  25. package/src/Api/Internal/FormatColumnInternalApi.js +1 -1
  26. package/src/Api/Internal/GridInternalApi.js +1 -1
  27. package/src/Api/Internal/StyledColumnInternalApi.js +1 -1
  28. package/src/Redux/ActionsReducers/ExportRedux.js +1 -1
  29. package/src/Redux/ActionsReducers/InternalRedux.js +1 -1
  30. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +1 -1
  31. package/src/Redux/Store/AdaptableReduxMerger.js +2 -4
  32. package/src/Redux/Store/AdaptableStore.js +3 -3
  33. package/src/Strategy/AdaptableModuleBase.d.ts +1 -1
  34. package/src/Strategy/AdaptableModuleBase.js +1 -1
  35. package/src/Strategy/AlertModule.d.ts +1 -1
  36. package/src/Strategy/AlertModule.js +2 -2
  37. package/src/Strategy/BulkUpdateModule.d.ts +1 -1
  38. package/src/Strategy/CalculatedColumnModule.d.ts +2 -2
  39. package/src/Strategy/CellSummaryModule.d.ts +2 -2
  40. package/src/Strategy/ChartingModule.d.ts +1 -1
  41. package/src/Strategy/ChartingModule.js +1 -1
  42. package/src/Strategy/ColumnInfoModule.d.ts +2 -2
  43. package/src/Strategy/CommentModule.d.ts +1 -1
  44. package/src/Strategy/CustomSortModule.d.ts +1 -1
  45. package/src/Strategy/ExportModule.js +2 -2
  46. package/src/Strategy/FlashingCellModule.d.ts +1 -1
  47. package/src/Strategy/FreeTextColumnModule.d.ts +1 -1
  48. package/src/Strategy/GridInfoModule.d.ts +2 -2
  49. package/src/Strategy/LayoutModule.js +1 -1
  50. package/src/Strategy/NoteModule.d.ts +1 -1
  51. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  52. package/src/Strategy/PlusMinusModule.js +1 -1
  53. package/src/Strategy/SettingsPanelModule.d.ts +2 -2
  54. package/src/Strategy/SmartEditModule.d.ts +1 -1
  55. package/src/Strategy/SystemStatusModule.d.ts +2 -2
  56. package/src/Strategy/TeamSharingModule.js +2 -2
  57. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +1 -1
  58. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +1 -1
  59. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +1 -1
  60. package/src/Utilities/Extensions/ArrayExtensions.d.ts +32 -0
  61. package/src/Utilities/Extensions/ArrayExtensions.js +49 -0
  62. package/src/Utilities/Extensions/NumberExtensions.d.ts +21 -0
  63. package/src/Utilities/Extensions/NumberExtensions.js +74 -0
  64. package/src/Utilities/Extensions/ObjectExtensions.d.ts +44 -0
  65. package/src/Utilities/Extensions/ObjectExtensions.js +271 -0
  66. package/src/Utilities/Extensions/StringExtensions.d.ts +26 -0
  67. package/src/Utilities/Extensions/StringExtensions.js +44 -1
  68. package/src/Utilities/Helpers/AdaptableHelper.js +2 -2
  69. package/src/Utilities/Helpers/{alertFormHelper.js → AlertHelper.js} +1 -1
  70. package/src/Utilities/Helpers/DateHelper.js +1 -1
  71. package/src/Utilities/Helpers/{FormatHelper.js → DisplayFormatHelper.js} +1 -1
  72. package/src/Utilities/Helpers/Helper.d.ts +0 -6
  73. package/src/Utilities/Helpers/Helper.js +0 -35
  74. package/src/Utilities/Helpers/{QuickSearchStyleHelper.js → QuickSearchHelper.js} +1 -1
  75. package/src/Utilities/Helpers/{ScheduleHelper.d.ts → Scheduling/ScheduleHelper.d.ts} +1 -1
  76. package/src/Utilities/Helpers/{ScheduleHelper.js → Scheduling/ScheduleHelper.js} +1 -1
  77. package/src/Utilities/Helpers/{ScheduleJobManager.d.ts → Scheduling/ScheduleJobManager.d.ts} +1 -1
  78. package/src/Utilities/Helpers/{ScheduleJobRunner.d.ts → Scheduling/ScheduleJobRunner.d.ts} +1 -1
  79. package/src/Utilities/Helpers/{ScheduledAlertHelper.d.ts → Scheduling/ScheduledAlertHelper.d.ts} +1 -1
  80. package/src/Utilities/Helpers/{ScheduledAlertHelper.js → Scheduling/ScheduledAlertHelper.js} +4 -4
  81. package/src/Utilities/Helpers/{ScheduledJobsMiddlewareHelper.d.ts → Scheduling/ScheduledJobsMiddlewareHelper.d.ts} +1 -1
  82. package/src/Utilities/Helpers/{ScheduledJobsMiddlewareHelper.js → Scheduling/ScheduledJobsMiddlewareHelper.js} +1 -1
  83. package/src/Utilities/Helpers/{ScheduledReportHelper.d.ts → Scheduling/ScheduledReportHelper.d.ts} +1 -1
  84. package/src/Utilities/Helpers/{ScheduledReportHelper.js → Scheduling/ScheduledReportHelper.js} +1 -1
  85. package/src/Utilities/Helpers/SettingsPanelHelper.d.ts +5 -0
  86. package/src/Utilities/{Defaults/DefaultSettingsPanel.js → Helpers/SettingsPanelHelper.js} +14 -0
  87. package/src/Utilities/Helpers/StyledColumns/BarStylesHelper.d.ts +63 -0
  88. package/src/Utilities/Helpers/{barChartCellText.js → StyledColumns/BarStylesHelper.js} +33 -32
  89. package/src/Utilities/Helpers/{StyledColumnGradientHelper.d.ts → StyledColumns/GradientStyleHelper.d.ts} +4 -4
  90. package/src/Utilities/Helpers/{StyledColumnGradientHelper.js → StyledColumns/GradientStyleHelper.js} +3 -3
  91. package/src/Utilities/Helpers/{IconStylePresets.d.ts → StyledColumns/IconStyleHelper.d.ts} +6 -1
  92. package/src/Utilities/Helpers/{IconStylePresets.js → StyledColumns/IconStyleHelper.js} +15 -0
  93. package/src/Utilities/Helpers/{percentBarPreviewHelper.d.ts → StyledColumns/PercentBarStyleHelper.d.ts} +2 -2
  94. package/src/Utilities/Helpers/{percentBarPreviewHelper.js → StyledColumns/PercentBarStyleHelper.js} +7 -7
  95. package/src/Utilities/Helpers/{SparklineOptionsHelper.js → StyledColumns/SparklineStyleHelper.js} +1 -1
  96. package/src/Utilities/Helpers/StyledColumns/StyledColumnHelper.d.ts +52 -0
  97. package/src/{agGrid/cellRenderers/shouldRenderStyledColumnOnRow.js → Utilities/Helpers/StyledColumns/StyledColumnHelper.js} +64 -2
  98. package/src/Utilities/Helpers/TimingHelper.d.ts +34 -0
  99. package/src/Utilities/{utils/debounce.js → Helpers/TimingHelper.js} +23 -9
  100. package/src/Utilities/ObjectFactory.js +1 -1
  101. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +2 -0
  102. package/src/Utilities/Services/CalculatedColumnExpressionService.js +114 -1
  103. package/src/Utilities/Services/LicenseService/index.js +1 -1
  104. package/src/Utilities/Services/RowSummaryService.d.ts +1 -1
  105. package/src/Utilities/Services/RowSummaryService.js +4 -4
  106. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +1 -1
  107. package/src/View/Alert/Utilities/getAlertType.js +1 -1
  108. package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +1 -1
  109. package/src/View/Alert/Utilities/mapAlertDefinition.js +1 -1
  110. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +1 -1
  111. package/src/View/Alert/Wizard/AlertButtonsEditor.js +1 -1
  112. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +2 -2
  113. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +1 -1
  114. package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -1
  115. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +1 -1
  116. package/src/View/Alert/Wizard/AlertWizard.js +1 -1
  117. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  118. package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
  119. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +1 -1
  120. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +1 -1
  121. package/src/View/Comments/CommentsEditor.js +1 -1
  122. package/src/View/Comments/CommentsPopup.js +1 -1
  123. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
  124. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -1
  125. package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -1
  126. package/src/View/Components/Forms/AdaptableFormControlTextClear.js +2 -1
  127. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +1 -1
  128. package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
  129. package/src/View/Components/Popups/Utilities.js +1 -1
  130. package/src/View/Components/RangesComponent.d.ts +3 -3
  131. package/src/View/Components/RangesComponent.js +3 -7
  132. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
  133. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  134. package/src/View/Dashboard/CustomDashboardButton.js +1 -1
  135. package/src/View/Dashboard/Dashboard.js +1 -1
  136. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +1 -1
  137. package/src/View/DataChangeHistory/DataChangeHistoryTable.js +1 -1
  138. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
  139. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  140. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +3 -3
  141. package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +1 -1
  142. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -1
  143. package/src/View/Layout/LayoutViewPanel.js +1 -1
  144. package/src/View/Note/NoteEditor.js +1 -1
  145. package/src/View/Note/NotePopup.js +1 -1
  146. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +1 -1
  147. package/src/View/QuickSearch/QuickSearchPopup.js +1 -1
  148. package/src/View/QuickSearch/useQuickSearchDebounced.js +1 -1
  149. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
  150. package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
  151. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +16 -20
  152. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +1 -1
  153. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +1 -1
  154. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +14 -16
  155. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +2 -2
  156. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/{BarChartCellTextLayoutEditor.d.ts → BarStyleCellTextLayoutEditor.d.ts} +4 -4
  157. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextLayoutEditor.js +33 -0
  158. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/{BarChartCellTextPreview.d.ts → BarStyleCellTextPreview.d.ts} +6 -6
  159. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/{BarChartCellTextPreview.js → BarStyleCellTextPreview.js} +6 -6
  160. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.d.ts +2 -2
  161. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +2 -4
  162. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +7 -7
  163. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +1 -1
  164. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +11 -9
  165. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +7 -7
  166. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +1 -1
  167. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +11 -15
  168. package/src/View/UIHelper.js +1 -1
  169. package/src/View/Wizard/OnePageAdaptableWizard.js +1 -1
  170. package/src/View/Wizard/OnePageWizards.js +3 -1
  171. package/src/agGrid/AdaptableAgGrid.js +6 -6
  172. package/src/agGrid/AgGridColumnAdapter.js +16 -15
  173. package/src/agGrid/AgGridExportAdapter.js +1 -1
  174. package/src/agGrid/AgGridMenuAdapter.js +127 -2
  175. package/src/agGrid/cellRenderers/BadgeRenderer.js +1 -1
  176. package/src/agGrid/cellRenderers/BulletChartRenderer.js +6 -6
  177. package/src/agGrid/cellRenderers/IconRenderer.js +2 -3
  178. package/src/agGrid/cellRenderers/PercentBarRenderer.js +6 -6
  179. package/src/agGrid/cellRenderers/RangeBarRenderer.js +7 -8
  180. package/src/agGrid/cellRenderers/RatingRenderer.js +2 -2
  181. package/src/agGrid/editors/AdaptableDateEditor/index.js +1 -1
  182. package/src/components/ColorPicker/ColorPicker.js +1 -1
  183. package/src/components/Datepicker/index.js +1 -1
  184. package/src/components/FormLayout/index.js +1 -1
  185. package/src/components/OverlayTrigger/index.js +1 -1
  186. package/src/env.js +2 -2
  187. package/src/layout-manager/src/isLayoutEqual.js +1 -1
  188. package/src/metamodel/adaptable.metamodel.d.ts +41 -8
  189. package/src/metamodel/adaptable.metamodel.js +1 -1
  190. package/src/migration/VersionUpgrade23.js +2 -2
  191. package/src/types.d.ts +3 -3
  192. package/tsconfig.esm.tsbuildinfo +1 -1
  193. package/src/AdaptableState/StyledColumns/Common/BarChartCellText.js +0 -6
  194. package/src/AdaptableState/StyledColumns/Common/BarChartMarker.d.ts +0 -24
  195. package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +0 -3
  196. package/src/Utilities/Helpers/barChartCellText.d.ts +0 -63
  197. package/src/Utilities/Helpers/iconStyledColumnColumnSupport.d.ts +0 -5
  198. package/src/Utilities/Helpers/iconStyledColumnColumnSupport.js +0 -15
  199. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +0 -3
  200. package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +0 -15
  201. package/src/Utilities/Helpers/styledColumnRowKindSupport.d.ts +0 -25
  202. package/src/Utilities/Helpers/styledColumnRowKindSupport.js +0 -63
  203. package/src/Utilities/Services/CalculatedColumnSyntheticChange.d.ts +0 -4
  204. package/src/Utilities/Services/CalculatedColumnSyntheticChange.js +0 -115
  205. package/src/Utilities/utils/chunk.d.ts +0 -6
  206. package/src/Utilities/utils/chunk.js +0 -17
  207. package/src/Utilities/utils/clamp.d.ts +0 -5
  208. package/src/Utilities/utils/clamp.js +0 -7
  209. package/src/Utilities/utils/cloneDeepWith.d.ts +0 -9
  210. package/src/Utilities/utils/cloneDeepWith.js +0 -67
  211. package/src/Utilities/utils/debounce.d.ts +0 -20
  212. package/src/Utilities/utils/flatten.d.ts +0 -5
  213. package/src/Utilities/utils/flatten.js +0 -7
  214. package/src/Utilities/utils/flattenDeep.d.ts +0 -5
  215. package/src/Utilities/utils/flattenDeep.js +0 -7
  216. package/src/Utilities/utils/get.d.ts +0 -6
  217. package/src/Utilities/utils/get.js +0 -35
  218. package/src/Utilities/utils/index.d.ts +0 -22
  219. package/src/Utilities/utils/index.js +0 -22
  220. package/src/Utilities/utils/isArray.d.ts +0 -6
  221. package/src/Utilities/utils/isArray.js +0 -6
  222. package/src/Utilities/utils/isEqual.d.ts +0 -5
  223. package/src/Utilities/utils/isEqual.js +0 -124
  224. package/src/Utilities/utils/isObject.d.ts +0 -6
  225. package/src/Utilities/utils/isObject.js +0 -9
  226. package/src/Utilities/utils/isPlainObject.d.ts +0 -6
  227. package/src/Utilities/utils/isPlainObject.js +0 -17
  228. package/src/Utilities/utils/kebabCase.d.ts +0 -5
  229. package/src/Utilities/utils/kebabCase.js +0 -8
  230. package/src/Utilities/utils/merge.d.ts +0 -11
  231. package/src/Utilities/utils/merge.js +0 -40
  232. package/src/Utilities/utils/mergeWith.d.ts +0 -7
  233. package/src/Utilities/utils/mergeWith.js +0 -46
  234. package/src/Utilities/utils/orderBy.d.ts +0 -8
  235. package/src/Utilities/utils/orderBy.js +0 -30
  236. package/src/Utilities/utils/parseInt.d.ts +0 -6
  237. package/src/Utilities/utils/parseInt.js +0 -9
  238. package/src/Utilities/utils/sentenceCase.d.ts +0 -6
  239. package/src/Utilities/utils/sentenceCase.js +0 -15
  240. package/src/Utilities/utils/startCase.d.ts +0 -5
  241. package/src/Utilities/utils/startCase.js +0 -11
  242. package/src/Utilities/utils/throttle.d.ts +0 -17
  243. package/src/Utilities/utils/throttle.js +0 -19
  244. package/src/Utilities/utils/toNumber.d.ts +0 -5
  245. package/src/Utilities/utils/toNumber.js +0 -39
  246. package/src/Utilities/utils/uniq.d.ts +0 -7
  247. package/src/Utilities/utils/uniq.js +0 -9
  248. package/src/Utilities/utils/uniqBy.d.ts +0 -8
  249. package/src/Utilities/utils/uniqBy.js +0 -22
  250. package/src/Utilities/utils/words.d.ts +0 -7
  251. package/src/Utilities/utils/words.js +0 -10
  252. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarChartCellTextLayoutEditor.js +0 -35
  253. package/src/agGrid/buildValueAggregationMenuItem.d.ts +0 -19
  254. package/src/agGrid/buildValueAggregationMenuItem.js +0 -111
  255. package/src/agGrid/cellRenderers/shouldRenderStyledColumnOnRow.d.ts +0 -30
  256. package/src/agGrid/createAgGridIcon.d.ts +0 -10
  257. package/src/agGrid/createAgGridIcon.js +0 -16
  258. /package/src/{Utilities → AdaptableState/Aggregations}/only.d.ts +0 -0
  259. /package/src/{Utilities → AdaptableState/Aggregations}/only.js +0 -0
  260. /package/src/{Utilities → AdaptableState/Aggregations}/weightedAverage.d.ts +0 -0
  261. /package/src/AdaptableState/StyledColumns/Common/{BarChartMarker.js → BarStyleProperties.js} +0 -0
  262. /package/src/Utilities/Helpers/{ActionColumnWidthHelper.d.ts → ActionColumnHelper.d.ts} +0 -0
  263. /package/src/Utilities/Helpers/{ActionColumnWidthHelper.js → ActionColumnHelper.js} +0 -0
  264. /package/src/Utilities/Helpers/{alertFormHelper.d.ts → AlertHelper.d.ts} +0 -0
  265. /package/src/Utilities/Helpers/{chartingHelper.d.ts → ChartHelper.d.ts} +0 -0
  266. /package/src/Utilities/Helpers/{chartingHelper.js → ChartHelper.js} +0 -0
  267. /package/src/Utilities/Helpers/{FormatHelper.d.ts → DisplayFormatHelper.d.ts} +0 -0
  268. /package/src/Utilities/Helpers/{plusMinusTriggerKeys.d.ts → PlusMinusHelper.d.ts} +0 -0
  269. /package/src/Utilities/Helpers/{plusMinusTriggerKeys.js → PlusMinusHelper.js} +0 -0
  270. /package/src/Utilities/Helpers/{QuickSearchStyleHelper.d.ts → QuickSearchHelper.d.ts} +0 -0
  271. /package/src/Utilities/Helpers/{ScheduleJobManager.js → Scheduling/ScheduleJobManager.js} +0 -0
  272. /package/src/Utilities/Helpers/{ScheduleJobRunner.js → Scheduling/ScheduleJobRunner.js} +0 -0
  273. /package/src/Utilities/Helpers/{SparklineOptionsHelper.d.ts → StyledColumns/SparklineStyleHelper.d.ts} +0 -0
  274. /package/src/Utilities/Helpers/{ThemeHelpers.d.ts → ThemeHelper.d.ts} +0 -0
  275. /package/src/Utilities/Helpers/{ThemeHelpers.js → ThemeHelper.js} +0 -0
@@ -1,124 +0,0 @@
1
- /**
2
- * Performs a deep comparison between two values to determine if they are equivalent.
3
- * Drop-in replacement for lodash/isEqual.
4
- */
5
- function baseIsEqual(a, b, seen) {
6
- // Identical references or primitives
7
- if (a === b) {
8
- return true;
9
- }
10
- // NaN check
11
- if (a !== a && b !== b) {
12
- return true;
13
- }
14
- // Null/undefined/primitive mismatch
15
- if (a == null || b == null) {
16
- return false;
17
- }
18
- const typeA = typeof a;
19
- const typeB = typeof b;
20
- if (typeA !== typeB) {
21
- return false;
22
- }
23
- if (typeA !== 'object') {
24
- return false;
25
- }
26
- // Date
27
- if (a instanceof Date && b instanceof Date) {
28
- return a.getTime() === b.getTime();
29
- }
30
- // RegExp
31
- if (a instanceof RegExp && b instanceof RegExp) {
32
- return a.source === b.source && a.flags === b.flags;
33
- }
34
- // One is Date/RegExp but the other is not
35
- if (a instanceof Date !== b instanceof Date) {
36
- return false;
37
- }
38
- if (a instanceof RegExp !== b instanceof RegExp) {
39
- return false;
40
- }
41
- // Circular reference detection
42
- if (seen.has(a)) {
43
- return seen.get(a) === b;
44
- }
45
- seen.set(a, b);
46
- // Arrays
47
- if (Array.isArray(a)) {
48
- if (!Array.isArray(b) || a.length !== b.length) {
49
- return false;
50
- }
51
- for (let i = 0; i < a.length; i++) {
52
- if (!baseIsEqual(a[i], b[i], seen)) {
53
- return false;
54
- }
55
- }
56
- return true;
57
- }
58
- if (Array.isArray(b)) {
59
- return false;
60
- }
61
- // Map
62
- if (a instanceof Map && b instanceof Map) {
63
- if (a.size !== b.size) {
64
- return false;
65
- }
66
- for (const [key, val] of a) {
67
- if (!b.has(key) || !baseIsEqual(val, b.get(key), seen)) {
68
- return false;
69
- }
70
- }
71
- return true;
72
- }
73
- // Set (unordered deep comparison, matching lodash behavior)
74
- if (a instanceof Set && b instanceof Set) {
75
- if (a.size !== b.size) {
76
- return false;
77
- }
78
- for (const valA of a) {
79
- let found = false;
80
- for (const valB of b) {
81
- if (baseIsEqual(valA, valB, new Map(seen))) {
82
- found = true;
83
- break;
84
- }
85
- }
86
- if (!found) {
87
- return false;
88
- }
89
- }
90
- return true;
91
- }
92
- // ArrayBuffer / TypedArray
93
- if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
94
- const viewA = a;
95
- const viewB = b;
96
- if (viewA.length !== viewB.length) {
97
- return false;
98
- }
99
- for (let i = 0; i < viewA.length; i++) {
100
- if (viewA[i] !== viewB[i]) {
101
- return false;
102
- }
103
- }
104
- return true;
105
- }
106
- // Plain objects
107
- const keysA = Object.keys(a);
108
- const keysB = Object.keys(b);
109
- if (keysA.length !== keysB.length) {
110
- return false;
111
- }
112
- for (const key of keysA) {
113
- if (!Object.prototype.hasOwnProperty.call(b, key)) {
114
- return false;
115
- }
116
- if (!baseIsEqual(a[key], b[key], seen)) {
117
- return false;
118
- }
119
- }
120
- return true;
121
- }
122
- export default function isEqual(value, other) {
123
- return baseIsEqual(value, other, new Map());
124
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Checks if value is the language type of Object.
3
- * (e.g. arrays, functions, objects, regexes, new Number(0), and new String(''))
4
- * Drop-in replacement for lodash/isObject.
5
- */
6
- export default function isObject(value: any): value is object;
@@ -1,9 +0,0 @@
1
- /**
2
- * Checks if value is the language type of Object.
3
- * (e.g. arrays, functions, objects, regexes, new Number(0), and new String(''))
4
- * Drop-in replacement for lodash/isObject.
5
- */
6
- export default function isObject(value) {
7
- const type = typeof value;
8
- return value != null && (type === 'object' || type === 'function');
9
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Checks if value is a plain object, that is, an object created by the
3
- * Object constructor or one with a [[Prototype]] of null.
4
- * Drop-in replacement for lodash/isPlainObject.
5
- */
6
- export default function isPlainObject(value: any): value is Record<string, any>;
@@ -1,17 +0,0 @@
1
- /**
2
- * Checks if value is a plain object, that is, an object created by the
3
- * Object constructor or one with a [[Prototype]] of null.
4
- * Drop-in replacement for lodash/isPlainObject.
5
- */
6
- export default function isPlainObject(value) {
7
- if (value === null || value === undefined || typeof value !== 'object') {
8
- return false;
9
- }
10
- const proto = Object.getPrototypeOf(value);
11
- // Object.create(null)
12
- if (proto === null) {
13
- return true;
14
- }
15
- // Normal plain objects
16
- return proto === Object.prototype;
17
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Converts string to kebab-case.
3
- * Drop-in replacement for lodash/kebabCase.
4
- */
5
- export default function kebabCase(string: string): string;
@@ -1,8 +0,0 @@
1
- /**
2
- * Converts string to kebab-case.
3
- * Drop-in replacement for lodash/kebabCase.
4
- */
5
- import words from './words';
6
- export default function kebabCase(string) {
7
- return words(string).map((w) => w.toLowerCase()).join('-');
8
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Recursively merges own enumerable string keyed properties of source objects into
3
- * the destination object. Source properties that resolve to undefined are skipped if
4
- * a destination value exists. Array and plain object properties are merged recursively.
5
- * Other objects and value types are overridden by assignment.
6
- * Drop-in replacement for lodash/merge.
7
- */
8
- export default function merge<TObject, TSource1>(object: TObject, source1: TSource1): TObject & TSource1;
9
- export default function merge<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
10
- export default function merge<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
11
- export default function merge(target: any, ...sources: any[]): any;
@@ -1,40 +0,0 @@
1
- /**
2
- * Recursively merges own enumerable string keyed properties of source objects into
3
- * the destination object. Source properties that resolve to undefined are skipped if
4
- * a destination value exists. Array and plain object properties are merged recursively.
5
- * Other objects and value types are overridden by assignment.
6
- * Drop-in replacement for lodash/merge.
7
- */
8
- import isPlainObject from './isPlainObject';
9
- function baseMerge(target, source) {
10
- if (source == null) {
11
- return target;
12
- }
13
- const keys = Object.keys(source);
14
- for (const key of keys) {
15
- const srcValue = source[key];
16
- const tgtValue = target[key];
17
- if (Array.isArray(srcValue)) {
18
- if (!Array.isArray(tgtValue)) {
19
- target[key] = [];
20
- }
21
- baseMerge(target[key], srcValue);
22
- }
23
- else if (isPlainObject(srcValue)) {
24
- if (!isPlainObject(tgtValue)) {
25
- target[key] = {};
26
- }
27
- baseMerge(target[key], srcValue);
28
- }
29
- else if (srcValue !== undefined) {
30
- target[key] = srcValue;
31
- }
32
- }
33
- return target;
34
- }
35
- export default function merge(target, ...sources) {
36
- for (const source of sources) {
37
- baseMerge(target, source);
38
- }
39
- return target;
40
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * This method is like `merge` except that it accepts customizer which is
3
- * invoked to produce the merged values of the destination and source properties.
4
- * If customizer returns undefined, merging is handled by the method instead.
5
- * Drop-in replacement for lodash/mergeWith.
6
- */
7
- export default function mergeWith<T extends object>(target: T, ...args: any[]): T;
@@ -1,46 +0,0 @@
1
- /**
2
- * This method is like `merge` except that it accepts customizer which is
3
- * invoked to produce the merged values of the destination and source properties.
4
- * If customizer returns undefined, merging is handled by the method instead.
5
- * Drop-in replacement for lodash/mergeWith.
6
- */
7
- import isPlainObject from './isPlainObject';
8
- function baseMergeWith(target, source, customizer) {
9
- if (source == null) {
10
- return target;
11
- }
12
- const keys = Object.keys(source);
13
- for (const key of keys) {
14
- const srcValue = source[key];
15
- const tgtValue = target[key];
16
- const customResult = customizer(tgtValue, srcValue, key, target, source);
17
- if (customResult !== undefined) {
18
- target[key] = customResult;
19
- }
20
- else if (Array.isArray(srcValue)) {
21
- if (!Array.isArray(tgtValue)) {
22
- target[key] = [];
23
- }
24
- baseMergeWith(target[key], srcValue, customizer);
25
- }
26
- else if (isPlainObject(srcValue)) {
27
- if (!isPlainObject(tgtValue)) {
28
- target[key] = {};
29
- }
30
- baseMergeWith(target[key], srcValue, customizer);
31
- }
32
- else if (srcValue !== undefined) {
33
- target[key] = srcValue;
34
- }
35
- }
36
- return target;
37
- }
38
- export default function mergeWith(target, ...args) {
39
- // The last argument is the customizer function
40
- const customizer = args[args.length - 1];
41
- const sources = args.slice(0, -1);
42
- for (const source of sources) {
43
- baseMergeWith(target, source, customizer);
44
- }
45
- return target;
46
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * This method is like `sortBy` except that it allows specifying the sort
3
- * orders of the iteratees to sort by. If orders is unspecified, all values
4
- * are sorted in ascending order. Otherwise, specify an order of "desc" for
5
- * descending or "asc" for ascending sort order of corresponding values.
6
- * Drop-in replacement for lodash/orderBy.
7
- */
8
- export default function orderBy<T>(collection: T[], iteratees: ((item: T) => any)[] | string[], orders?: ('asc' | 'desc')[]): T[];
@@ -1,30 +0,0 @@
1
- /**
2
- * This method is like `sortBy` except that it allows specifying the sort
3
- * orders of the iteratees to sort by. If orders is unspecified, all values
4
- * are sorted in ascending order. Otherwise, specify an order of "desc" for
5
- * descending or "asc" for ascending sort order of corresponding values.
6
- * Drop-in replacement for lodash/orderBy.
7
- */
8
- export default function orderBy(collection, iteratees, orders) {
9
- const result = [...collection];
10
- const fns = iteratees.map((iteratee) => typeof iteratee === 'function' ? iteratee : (item) => item?.[iteratee]);
11
- result.sort((a, b) => {
12
- for (let i = 0; i < fns.length; i++) {
13
- const valA = fns[i](a);
14
- const valB = fns[i](b);
15
- if (valA !== valB) {
16
- const order = orders?.[i] === 'desc' ? -1 : 1;
17
- if (valA == null)
18
- return 1;
19
- if (valB == null)
20
- return -1;
21
- if (valA < valB)
22
- return -order;
23
- if (valA > valB)
24
- return order;
25
- }
26
- }
27
- return 0;
28
- });
29
- return result;
30
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Converts string to an integer of the specified radix.
3
- * If radix is undefined or 0, a radix of 10 is used (unlike native parseInt which auto-detects).
4
- * Drop-in replacement for lodash/parseInt.
5
- */
6
- export default function parseIntFn(string: string, radix?: number): number;
@@ -1,9 +0,0 @@
1
- /**
2
- * Converts string to an integer of the specified radix.
3
- * If radix is undefined or 0, a radix of 10 is used (unlike native parseInt which auto-detects).
4
- * Drop-in replacement for lodash/parseInt.
5
- */
6
- export default function parseIntFn(string, radix) {
7
- const str = typeof string === 'string' ? string.trim() : String(string);
8
- return globalThis.parseInt(str, radix || 10);
9
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Converts string to Sentence case.
3
- * Splits on camelCase, PascalCase, dots, underscores, hyphens, and non-alphanumeric characters.
4
- * Drop-in replacement for the sentence-case package.
5
- */
6
- export default function sentenceCase(input: string): string;
@@ -1,15 +0,0 @@
1
- /**
2
- * Converts string to Sentence case.
3
- * Splits on camelCase, PascalCase, dots, underscores, hyphens, and non-alphanumeric characters.
4
- * Drop-in replacement for the sentence-case package.
5
- */
6
- import words from './words';
7
- export default function sentenceCase(input) {
8
- const parts = words(input);
9
- if (parts.length === 0) {
10
- return '';
11
- }
12
- return parts
13
- .map((w, i) => (i === 0 ? w.charAt(0).toUpperCase() + w.slice(1).toLowerCase() : w.toLowerCase()))
14
- .join(' ');
15
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Converts string to Start Case.
3
- * Drop-in replacement for lodash/startCase.
4
- */
5
- export default function startCase(string: string): string;
@@ -1,11 +0,0 @@
1
- /**
2
- * Converts string to Start Case.
3
- * Drop-in replacement for lodash/startCase.
4
- */
5
- import words from './words';
6
- function capitalize(word) {
7
- return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
8
- }
9
- export default function startCase(string) {
10
- return words(string).map(capitalize).join(' ');
11
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * Creates a throttled function that only invokes func at most once per
3
- * every wait milliseconds. The throttled function comes with a cancel
4
- * method to cancel delayed func invocations and a flush method to
5
- * immediately invoke them.
6
- *
7
- * Supports options: { leading, trailing }
8
- * Drop-in replacement for lodash/throttle.
9
- *
10
- * Implemented using debounce with maxWait (same approach as lodash).
11
- */
12
- import { DebouncedFunction } from './debounce';
13
- export interface ThrottleOptions {
14
- leading?: boolean;
15
- trailing?: boolean;
16
- }
17
- export default function throttle<T extends (...args: any[]) => any>(func: T, wait?: number, options?: ThrottleOptions): DebouncedFunction<T>;
@@ -1,19 +0,0 @@
1
- /**
2
- * Creates a throttled function that only invokes func at most once per
3
- * every wait milliseconds. The throttled function comes with a cancel
4
- * method to cancel delayed func invocations and a flush method to
5
- * immediately invoke them.
6
- *
7
- * Supports options: { leading, trailing }
8
- * Drop-in replacement for lodash/throttle.
9
- *
10
- * Implemented using debounce with maxWait (same approach as lodash).
11
- */
12
- import debounce from './debounce';
13
- export default function throttle(func, wait = 0, options) {
14
- return debounce(func, wait, {
15
- leading: options?.leading ?? true,
16
- trailing: options?.trailing ?? true,
17
- maxWait: wait,
18
- });
19
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Converts value to a number.
3
- * Drop-in replacement for lodash/toNumber.
4
- */
5
- export default function toNumber(value: any): number;
@@ -1,39 +0,0 @@
1
- /**
2
- * Converts value to a number.
3
- * Drop-in replacement for lodash/toNumber.
4
- */
5
- const reTrimStart = /^\s+/;
6
- const reTrimEnd = /\s+$/;
7
- const reIsBinary = /^0b[01]+$/i;
8
- const reIsOctal = /^0o[0-7]+$/i;
9
- const reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
10
- export default function toNumber(value) {
11
- if (typeof value === 'number') {
12
- return value;
13
- }
14
- if (typeof value === 'symbol') {
15
- return NaN;
16
- }
17
- if (typeof value === 'boolean') {
18
- return value ? 1 : 0;
19
- }
20
- if (value == null) {
21
- return value === undefined ? NaN : 0;
22
- }
23
- if (typeof value === 'string') {
24
- const trimmed = value.replace(reTrimStart, '').replace(reTrimEnd, '');
25
- if (reIsBinary.test(trimmed)) {
26
- return globalThis.parseInt(trimmed.slice(2), 2);
27
- }
28
- if (reIsOctal.test(trimmed)) {
29
- return globalThis.parseInt(trimmed.slice(2), 8);
30
- }
31
- if (reIsBadHex.test(trimmed)) {
32
- return NaN;
33
- }
34
- return +trimmed;
35
- }
36
- // Objects: try valueOf
37
- const other = typeof value.valueOf === 'function' ? value.valueOf() : value;
38
- return +other;
39
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Creates a duplicate-free version of an array, using SameValueZero for equality comparisons,
3
- * in which only the first occurrence of each element is kept. The order of result values is
4
- * determined by the order they occur in the array.
5
- * Drop-in replacement for lodash/uniq.
6
- */
7
- export default function uniq<T>(array: T[]): T[];
@@ -1,9 +0,0 @@
1
- /**
2
- * Creates a duplicate-free version of an array, using SameValueZero for equality comparisons,
3
- * in which only the first occurrence of each element is kept. The order of result values is
4
- * determined by the order they occur in the array.
5
- * Drop-in replacement for lodash/uniq.
6
- */
7
- export default function uniq(array) {
8
- return [...new Set(array)];
9
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * This method is like `uniq` except that it accepts iteratee which is
3
- * invoked for each element in array to generate the criterion by which
4
- * uniqueness is computed. The order of result values is determined by the
5
- * order they occur in the array. The iteratee is invoked with one argument: (value).
6
- * Drop-in replacement for lodash/uniqBy.
7
- */
8
- export default function uniqBy<T>(array: T[], iteratee: ((value: T) => any) | string): T[];
@@ -1,22 +0,0 @@
1
- /**
2
- * This method is like `uniq` except that it accepts iteratee which is
3
- * invoked for each element in array to generate the criterion by which
4
- * uniqueness is computed. The order of result values is determined by the
5
- * order they occur in the array. The iteratee is invoked with one argument: (value).
6
- * Drop-in replacement for lodash/uniqBy.
7
- */
8
- export default function uniqBy(array, iteratee) {
9
- const seen = new Set();
10
- const result = [];
11
- const fn = typeof iteratee === 'function'
12
- ? iteratee
13
- : (value) => value?.[iteratee];
14
- for (const item of array) {
15
- const key = fn(item);
16
- if (!seen.has(key)) {
17
- seen.add(key);
18
- result.push(item);
19
- }
20
- }
21
- return result;
22
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Split a string into words: handles camelCase, PascalCase, UPPER_CASE,
3
- * UPPER_SNAKE_CASE, snake_case, kebab-case, spaces, and dot.notation.
4
- *
5
- * Shared helper used by kebabCase, startCase, and sentenceCase.
6
- */
7
- export default function words(str: string): string[];
@@ -1,10 +0,0 @@
1
- /**
2
- * Split a string into words: handles camelCase, PascalCase, UPPER_CASE,
3
- * UPPER_SNAKE_CASE, snake_case, kebab-case, spaces, and dot.notation.
4
- *
5
- * Shared helper used by kebabCase, startCase, and sentenceCase.
6
- */
7
- export default function words(str) {
8
- const matches = str.match(/[A-Z]?[a-z]+|[A-Z]+(?=[A-Z][a-z]|\d|$|[^a-zA-Z0-9])|[A-Z]|[0-9]+/g);
9
- return matches || [];
10
- }
@@ -1,35 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from 'react';
3
- import { resolveBarChartCellTextLayout } from '../../../../../Utilities/Helpers/barChartCellText';
4
- import { CheckBox } from '../../../../../components/CheckBox';
5
- import { Box, Flex } from '../../../../../components/Flex';
6
- import { SingleSelect } from '../../../../../components/NewSelect';
7
- const TOKEN_LABELS = {
8
- CellValue: 'Cell Value',
9
- PercentageValue: 'Percent Value',
10
- };
11
- const TOKENS = ['CellValue', 'PercentageValue'];
12
- const HORIZONTAL_CHOICES = [
13
- { value: 'Left', label: 'Left' },
14
- { value: 'Center', label: 'Center' },
15
- { value: 'Right', label: 'Right' },
16
- ];
17
- const VERTICAL_CHOICES = [
18
- { value: 'Above', label: 'Above Bar' },
19
- { value: 'Below', label: 'Below Bar' },
20
- { value: 'Merged', label: 'Merged' },
21
- ];
22
- const tokenKey = (token) => token === 'CellValue' ? 'CellValue' : 'PercentValue';
23
- export const BarChartCellTextLayoutEditor = ({ disabled, cellTextProperties, onToggle, onPlacementChange }) => {
24
- const layout = resolveBarChartCellTextLayout(cellTextProperties);
25
- return (_jsxs(Box, { className: "twa:inline-grid twa:grid-cols-[160px_140px_140px] twa:gap-x-4 twa:gap-y-2 twa:items-center", children: [_jsx(Box, { className: "twa:text-xs twa:font-medium twa:opacity-80", children: "Value" }), _jsx(Box, { className: "twa:text-xs twa:font-medium twa:opacity-80", children: "Horizontal" }), _jsx(Box, { className: "twa:text-xs twa:font-medium twa:opacity-80", children: "Vertical" }), TOKENS.map((token) => {
26
- const placement = layout[tokenKey(token)];
27
- const isShown = Boolean(placement);
28
- const rowDisabled = disabled || !isShown;
29
- return (_jsxs(React.Fragment, { children: [_jsx(Flex, { alignItems: "center", children: _jsx(CheckBox, { disabled: disabled, checked: isShown, onChange: (checked) => onToggle(token, checked), children: TOKEN_LABELS[token] }) }), _jsx(Box, { children: _jsx(SingleSelect, { className: "twa:w-full", disabled: rowDisabled, value: placement?.Horizontal ?? 'Left', onValueChange: (v) => onPlacementChange(token, {
30
- Horizontal: v,
31
- }), items: HORIZONTAL_CHOICES }) }), _jsx(Box, { children: _jsx(SingleSelect, { className: "twa:w-full", disabled: rowDisabled, value: placement?.Vertical ?? 'Below', onValueChange: (v) => onPlacementChange(token, {
32
- Vertical: v,
33
- }), items: VERTICAL_CHOICES }) })] }, token));
34
- })] }));
35
- };
@@ -1,19 +0,0 @@
1
- import { MenuItemDef } from 'ag-grid-enterprise';
2
- import { AdaptableApi } from '../types';
3
- import { ColumnMenuContext } from '../AdaptableState/Common/Menu';
4
- /**
5
- * Builds the replacement for AG Grid's built-in `valueAggSubMenu` column menu item.
6
- *
7
- * AG Grid does not allow customizing the built-in submenu, so we rebuild an
8
- * equivalent one: the column's existing aggregation functions plus a
9
- * `Weighted Average` item whose submenu lists the numeric columns that can be
10
- * used as the weight parameter.
11
- *
12
- * Both standard and weighted selections persist through the current Layout
13
- * (`updateCurrentLayout`), so the existing `weightedAvg` aggFunc can read the
14
- * chosen `weightedColumnId` back from the Layout.
15
- *
16
- * Weighted Average is never used in Pivot Layouts, so this only deals with the
17
- * Table Layout aggregations and the caller skips it entirely in Pivot mode.
18
- */
19
- export declare function buildValueAggregationMenuItem(adaptableApi: AdaptableApi, menuContext: ColumnMenuContext): MenuItemDef;