@geotab/zenith 3.14.1 → 3.15.0-beta.0

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 (523) hide show
  1. package/README.md +28 -2
  2. package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +17 -7
  3. package/dist/alert/banner.d.ts +2 -3
  4. package/dist/alert/hooks/useAlertState.d.ts +0 -1
  5. package/dist/banner/bannerMultipLine.d.ts +0 -1
  6. package/dist/banner/bannerSingleLine.d.ts +0 -1
  7. package/dist/banner/utils/isSummaryErrorElement.d.ts +1 -2
  8. package/dist/calendar/dateUtils.js +2 -2
  9. package/dist/card/card.js +17 -7
  10. package/dist/card/components/content.d.ts +0 -1
  11. package/dist/cardContainer/helpers/getSizeClass.js +1 -2
  12. package/dist/chart/accessibleChart/accessibleChart.js +1 -1
  13. package/dist/chart/accessibleChart/accessibleChartNarrative.d.ts +1 -1
  14. package/dist/chart/accessibleChart/accessibleChartNarrative.js +11 -5
  15. package/dist/chart/accessibleChart/generatePieNarrative.d.ts +7 -0
  16. package/dist/chart/accessibleChart/generatePieNarrative.js +179 -0
  17. package/dist/chart/accessibleChart/interfaces.d.ts +1 -0
  18. package/dist/chart/barChart/getDefaultOptions.js +5 -6
  19. package/dist/chart/barChart.js +152 -50
  20. package/dist/chart/interfaces.d.ts +0 -1
  21. package/dist/chart/lineChart/getDefaultOptions.js +5 -6
  22. package/dist/chart/lineChart/useChartTicks.d.ts +0 -1
  23. package/dist/chart/lineChart/useSummary.d.ts +7 -8
  24. package/dist/chart/lineChart.js +167 -59
  25. package/dist/chart/pieChart.js +174 -76
  26. package/dist/chart/plugins/linePlugin/getInterpolatedValue.js +1 -2
  27. package/dist/chart/plugins/linePlugin/linePlugin.js +29 -7
  28. package/dist/chart/utils/convertDates.d.ts +1 -1
  29. package/dist/chart/utils/getFormattedLabel.js +1 -2
  30. package/dist/chart/utils/getNiceAxisRange.d.ts +21 -0
  31. package/dist/chart/utils/getNiceAxisRange.js +76 -0
  32. package/dist/chart/utils/getRange.js +2 -2
  33. package/dist/chart/utils/getYAxisMeta.d.ts +2 -5
  34. package/dist/chart/utils/getYAxisMeta.js +17 -2
  35. package/dist/chart/utils/getYAxisTickCount.d.ts +15 -0
  36. package/dist/chart/utils/getYAxisTickCount.js +19 -0
  37. package/dist/chart/utils/resampleArrayEvenly.js +1 -2
  38. package/dist/checkbox/checkbox.js +17 -7
  39. package/dist/checkboxListWithAction/checkboxListWithAction.d.ts +0 -1
  40. package/dist/chip/chip.d.ts +0 -1
  41. package/dist/chip/utils/useChip.d.ts +0 -1
  42. package/dist/commonHelpers/HOC/reducerLogger/reducerLogger.d.ts +1 -1
  43. package/dist/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +0 -1
  44. package/dist/commonHelpers/arrowNavigation/hooks/useHoldOnScroll.d.ts +0 -1
  45. package/dist/commonHelpers/generateId.js +1 -2
  46. package/dist/commonHelpers/hooks/breakpoints.d.ts +4 -0
  47. package/dist/commonHelpers/hooks/breakpoints.js +7 -0
  48. package/dist/commonHelpers/hooks/fetch.reducer.d.ts +1 -1
  49. package/dist/commonHelpers/hooks/fetch.reducer.js +1 -2
  50. package/dist/commonHelpers/hooks/useDebouncedMemo.d.ts +0 -1
  51. package/dist/commonHelpers/hooks/useDebouncedMemo.js +1 -2
  52. package/dist/commonHelpers/hooks/useDeviceType.js +2 -2
  53. package/dist/commonHelpers/hooks/useEscape.d.ts +1 -1
  54. package/dist/commonHelpers/hooks/useGridSize.d.ts +0 -1
  55. package/dist/commonHelpers/hooks/useMobileOrTablet.d.ts +1 -0
  56. package/dist/commonHelpers/hooks/useMobileOrTablet.js +21 -0
  57. package/dist/commonHelpers/hooks/usePillSize.d.ts +0 -1
  58. package/dist/{gridLayout → commonHelpers}/hooks/useTablet.js +8 -11
  59. package/dist/commonHelpers/utils.js +3 -3
  60. package/dist/commonStyles/colors/colors.less +1 -0
  61. package/dist/dataFeed/dataFeed.d.ts +1 -1
  62. package/dist/dataFeed/dataFeed.js +2 -2
  63. package/dist/dataFeed/dataFeedCell/dataFeedCell.d.ts +3 -1
  64. package/dist/dataFeed/dataFeedColumnsItems.d.ts +2 -2
  65. package/dist/dataGrid/cell/cell.d.ts +3 -1
  66. package/dist/dataGrid/columns/actionsColumn/actionsButton.js +1 -2
  67. package/dist/dataGrid/columns/actionsColumn/actionsColumn.d.ts +3 -3
  68. package/dist/dataGrid/dataGrid.d.ts +13 -1
  69. package/dist/dataGrid/dataGrid.js +48 -3
  70. package/dist/dataGrid/emptySearchList/emptySearchList.d.ts +0 -1
  71. package/dist/dataGrid/row/row.d.ts +3 -1
  72. package/dist/dataGrid/withActions/withActions.d.ts +1 -1
  73. package/dist/dataGrid/withFlexibleColumns/components/columnSettingsList.js +1 -2
  74. package/dist/dataGrid/withFlexibleColumns/withFlexibleColumns.d.ts +1 -1
  75. package/dist/dataGrid/withLoading/withLoading.d.ts +1 -1
  76. package/dist/dataGrid/withSelectableRows/withLimitedSelectableRows.d.ts +1 -1
  77. package/dist/dataGrid/withSelectableRows/withSelectableRows.d.ts +1 -1
  78. package/dist/dataGrid/withSortableColumns/withSortableColumns.d.ts +1 -1
  79. package/dist/dateInputInner/dateInputInnerReducer.js +2 -2
  80. package/dist/dateRangeRaw/utils/areMapsEqual.js +1 -2
  81. package/dist/dialog/dialog.d.ts +0 -1
  82. package/dist/dropdown/dropdown.js +1 -1
  83. package/dist/dropdown/useDropdownState.d.ts +0 -1
  84. package/dist/dropdownRaw/dropdownHelper.js +2 -2
  85. package/dist/dropdownRaw/dropdownList.d.ts +3 -2
  86. package/dist/dropdownRaw/dropdownList.js +31 -49
  87. package/dist/dropdownRaw/dropdownRaw.js +34 -13
  88. package/dist/dropdownRaw/stateReducer/stateReducer.d.ts +4 -1
  89. package/dist/dropdownRaw/stateReducer/stateReducer.js +33 -23
  90. package/dist/dropdownRaw/stateReducer/stateReducerHelper.d.ts +1 -2
  91. package/dist/dropdownRaw/stateReducer/stateReducerHelper.js +8 -13
  92. package/dist/dropdownRaw/types.d.ts +20 -0
  93. package/dist/feedbackContainer/feedbackContainer.js +17 -7
  94. package/dist/feedbackContainer/hooks/useFeedbackAlert.d.ts +0 -1
  95. package/dist/feedbackContainer/hooks/useFeedbackToast.d.ts +0 -1
  96. package/dist/filters/components/filtersDropdown.js +2 -2
  97. package/dist/filters/components/filtersItem.d.ts +2 -2
  98. package/dist/filters/components/filtersSearchList.d.ts +0 -1
  99. package/dist/filters/components/filtersSelect.d.ts +0 -1
  100. package/dist/filters/components/filtersSelectCompact.d.ts +0 -1
  101. package/dist/filters/components/filtersSelectListItem.d.ts +0 -1
  102. package/dist/filters/components/filtersSelectUnfoldingPill.d.ts +0 -1
  103. package/dist/filters/components/filtersSidePanelItem.js +17 -7
  104. package/dist/filters/filtersHelper.d.ts +1 -1
  105. package/dist/filters/filtersHelper.js +5 -5
  106. package/dist/filters/filtersHooks.d.ts +0 -1
  107. package/dist/filtersBar/components/filtersBarDropdownWithCheckbox/filtersBarDropdownWithCheckbox.js +1 -1
  108. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +2 -2
  109. package/dist/filtersBar/filtersBar.js +2 -2
  110. package/dist/filtersBar/filtersBarActions/filtersBarActions.d.ts +0 -1
  111. package/dist/filtersBar/filtersBarInterfaces.d.ts +0 -1
  112. package/dist/filtersBar/filtersBarReducer.js +2 -2
  113. package/dist/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelDropdownWithCheckbox/filtersBarSidePanelDropdownWithCheckbox.d.ts +4 -10
  114. package/dist/filtersBar/filtersBarSidePanel/sidePanelReducer.js +2 -2
  115. package/dist/filtersBar/utils/getNumberOfChangedFilters.js +1 -2
  116. package/dist/footerButtons/footerButtons.js +17 -7
  117. package/dist/formField/components/formFieldAdditionalInfo.d.ts +0 -1
  118. package/dist/formField/components/formFieldCounter.d.ts +0 -1
  119. package/dist/formField/components/formFieldLoading.d.ts +0 -1
  120. package/dist/formField/components/formFieldSkeleton.d.ts +0 -1
  121. package/dist/formField/components/formFieldWithLabel.d.ts +0 -1
  122. package/dist/formField/components/formFieldWithoutLabel.d.ts +0 -1
  123. package/dist/formField/formField.d.ts +1 -1
  124. package/dist/formField/hooks/useBanner.d.ts +0 -1
  125. package/dist/formField/hooks/useDisabled.d.ts +1 -1
  126. package/dist/formGroup/components/customRow/customRow.d.ts +0 -1
  127. package/dist/formGroup/formGroup.js +17 -7
  128. package/dist/formGroup/hooks/listHooks/useStateToElements.d.ts +0 -1
  129. package/dist/formGroup/hooks/listHooks/useStateToElements.js +1 -1
  130. package/dist/formGroup/utils/formGroupProvider.d.ts +0 -1
  131. package/dist/formGroup/utils/isFormLabel.d.ts +1 -1
  132. package/dist/formGroupItem/formGroupItem.d.ts +0 -1
  133. package/dist/formLayout/components/layoutColumn/layoutColum.d.ts +0 -1
  134. package/dist/formLayout/hooks/useFormButtons.d.ts +1 -1
  135. package/dist/formLayout/types.d.ts +0 -1
  136. package/dist/formLayout/utils/attachHeadings.d.ts +1 -1
  137. package/dist/formLayout/utils/attachSeparators.d.ts +0 -1
  138. package/dist/formLayout/utils/getChildrenWithCustomColumns.d.ts +1 -2
  139. package/dist/formLayout/utils/getChildrenWithCustomColumns.js +2 -2
  140. package/dist/formLayout/utils/getFieldLabel.js +5 -5
  141. package/dist/formSection/components/actions.d.ts +0 -1
  142. package/dist/formSection/components/additional.d.ts +0 -1
  143. package/dist/formSection/utils/isFormSection.d.ts +2 -4
  144. package/dist/formStepper/components/formStepRaw.d.ts +0 -1
  145. package/dist/formStepper/formStepper.d.ts +0 -1
  146. package/dist/formStepper/formStepper.js +5 -5
  147. package/dist/formStepperButtons/formStepperButtons.js +3 -3
  148. package/dist/gridLayout/hooks/useStretch.js +1 -1
  149. package/dist/gridLayout/utils/convertStateToClasses.js +1 -2
  150. package/dist/gridLayout/utils/gridLayoutProvider.d.ts +0 -1
  151. package/dist/gridLayout/utils/gridLayoutProvider.js +1 -1
  152. package/dist/gridLayout/utils/isGridItem.d.ts +1 -1
  153. package/dist/groupsFilter/groupsHelper.d.ts +5 -5
  154. package/dist/groupsFilterRaw/groupsFilterHelper.js +16 -16
  155. package/dist/groupsFilterRaw/groupsHelper.d.ts +1 -1
  156. package/dist/groupsFilterRaw/groupsHelper.js +4 -4
  157. package/dist/groupsFilterRaw/stateReducer/stateReducer.d.ts +1 -1
  158. package/dist/groupsFilterRaw/stateReducer/stateReducer.js +2 -2
  159. package/dist/groupsFilterRaw/testData.js +3 -4
  160. package/dist/groupsFilterRaw/uiStateReducer/uiStateReducer.js +2 -2
  161. package/dist/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +5 -0
  162. package/dist/header/components/mobileFilterControl/mobileFilterControl.d.ts +0 -1
  163. package/dist/header/components/mobileSearchControl/mobileSearchControl.d.ts +0 -1
  164. package/dist/header/header.js +17 -7
  165. package/dist/header/headerButton.d.ts +0 -1
  166. package/dist/header/headerContext.d.ts +1 -2
  167. package/dist/header/headerHelpers.d.ts +5 -5
  168. package/dist/header/headerHelpers.js +17 -7
  169. package/dist/header/hooks/useNonFittingElements.d.ts +3 -4
  170. package/dist/headerTitle/headerTitle.d.ts +0 -1
  171. package/dist/icons/iconAce.d.ts +3 -0
  172. package/dist/icons/iconAce.js +12 -0
  173. package/dist/icons/iconBreak.d.ts +3 -0
  174. package/dist/icons/iconBreak.js +12 -0
  175. package/dist/icons/iconChevronStepper.d.ts +3 -0
  176. package/dist/icons/iconChevronStepper.js +12 -0
  177. package/dist/icons/iconPotato.d.ts +3 -0
  178. package/dist/icons/iconPotato.js +12 -0
  179. package/dist/icons/iconToggleLarge.d.ts +3 -0
  180. package/dist/icons/iconToggleLarge.js +12 -0
  181. package/dist/icons/iconToggleSmall.d.ts +3 -0
  182. package/dist/icons/iconToggleSmall.js +12 -0
  183. package/dist/icons/iconTrendNeutral.d.ts +3 -0
  184. package/dist/icons/iconTrendNeutral.js +12 -0
  185. package/dist/icons/iconTruck.d.ts +3 -0
  186. package/dist/icons/iconTruck.js +12 -0
  187. package/dist/index.css +219 -169
  188. package/dist/index.d.ts +8 -0
  189. package/dist/index.js +30 -13
  190. package/dist/layout/layout.d.ts +2 -1
  191. package/dist/layout/layout.js +17 -7
  192. package/dist/layout/layoutBanner.d.ts +0 -1
  193. package/dist/lineChart/lineChart.d.ts +1 -0
  194. package/dist/lineChart/lineChart.js +135 -70
  195. package/dist/lineChartMini/lineChartMini.d.ts +1 -0
  196. package/dist/lineChartMini/lineChartMini.js +141 -73
  197. package/dist/list/itemData/itemData.d.ts +2 -1
  198. package/dist/list/itemData/itemDataInternal.d.ts +2 -1
  199. package/dist/list/list.d.ts +0 -1
  200. package/dist/list/utils/changeOrder.js +1 -2
  201. package/dist/list/utils/isDataListitem.d.ts +1 -1
  202. package/dist/list/viewportProvider/viewportContext.d.ts +0 -1
  203. package/dist/menu/components/controlledMenuList/controlledMenuList.d.ts +2 -4
  204. package/dist/menu/components/controlledMenuList/controlledMenuList.js +3 -1
  205. package/dist/menu/components/createControlledMenuList.js +1 -2
  206. package/dist/menu/components/createMenuItem.js +1 -2
  207. package/dist/menu/contexts/usePathContext.js +1 -2
  208. package/dist/menu/utils/buildMenuContent.js +1 -2
  209. package/dist/menu/utils/findPrevFocusable.js +1 -2
  210. package/dist/menu/utils/useDisplayContent.d.ts +21 -0
  211. package/dist/menu/utils/useDisplayContent.js +35 -0
  212. package/dist/menu/utils/useMenuItemKeyboardNav.js +1 -2
  213. package/dist/miniTabs/miniTabsHelper.js +17 -7
  214. package/dist/mobileSheet/components/mobileSheetTitle.d.ts +0 -1
  215. package/dist/modal/modal.js +17 -7
  216. package/dist/nav/context/nav.context.d.ts +0 -1
  217. package/dist/nav/navFooter/navEditFooter/navEditFooter.d.ts +0 -1
  218. package/dist/nav/navFooter/navFooter.d.ts +1 -1
  219. package/dist/nav/navFooter/navFooterAction/navFooterAction.d.ts +2 -1
  220. package/dist/nav/navFooter/navFooterAction/navFooterAction.js +3 -1
  221. package/dist/nav/navItem/navItem.d.ts +2 -0
  222. package/dist/nav/navItem/navItem.js +56 -47
  223. package/dist/nav/navItem/navItemContent.d.ts +19 -0
  224. package/dist/nav/navItem/navItemContent.js +21 -0
  225. package/dist/nav/navItem/navItemType.d.ts +7 -0
  226. package/dist/nav/navItem/navItemType.js +9 -0
  227. package/dist/nav/utils/navUtils.d.ts +2 -4
  228. package/dist/nav/utils/navUtils.js +2 -2
  229. package/dist/overview/overview.d.ts +0 -1
  230. package/dist/pageHeader/pageHeader.d.ts +1 -1
  231. package/dist/pageHeader/pageHeaderButton.d.ts +0 -1
  232. package/dist/pageHeader/pageHeaderHelpers.d.ts +1 -1
  233. package/dist/pageHeader/pageHeaderMenu.d.ts +0 -1
  234. package/dist/pagination/paginationArrow.d.ts +0 -1
  235. package/dist/pill/interfaces/pill.interface.d.ts +0 -1
  236. package/dist/pillBox/components/pillBoxItem.d.ts +1 -2
  237. package/dist/popup/popup.js +17 -7
  238. package/dist/progressIndicator/progressIndicator.d.ts +39 -0
  239. package/dist/progressIndicator/progressIndicator.js +30 -0
  240. package/dist/progressIndicator/progressIndicatorUtils.d.ts +12 -0
  241. package/dist/progressIndicator/progressIndicatorUtils.js +30 -0
  242. package/dist/radioGroupRaw/radioGroupRaw.js +17 -7
  243. package/dist/radioGroupRaw/types.d.ts +0 -1
  244. package/dist/react-chartjs/dateFns/dateFns.js +10 -11
  245. package/dist/react-chartjs/utils.d.ts +3 -3
  246. package/dist/react-chartjs/utils.js +8 -9
  247. package/dist/searchInputRaw/searchInputRaw.js +17 -7
  248. package/dist/searchInputRaw/types.d.ts +0 -1
  249. package/dist/selectField/selectField.d.ts +2 -3
  250. package/dist/selectList/selectList.d.ts +0 -1
  251. package/dist/selectRaw/hooks/usePopupWidth.js +17 -7
  252. package/dist/selectRaw/selectRaw.js +20 -7
  253. package/dist/sidePanel/sidePanelCell/sidePanelCell.d.ts +0 -1
  254. package/dist/summaries/utils/splitIntoPairs.js +1 -2
  255. package/dist/summaryTile/summaryTile.js +17 -7
  256. package/dist/summaryTile/summaryTileTrigger.js +17 -7
  257. package/dist/table/actions/actionsMenu.d.ts +0 -1
  258. package/dist/table/children/useTableChildren.d.ts +7 -7
  259. package/dist/table/detailPanel/interfaces.d.ts +0 -1
  260. package/dist/table/flexible/columnsList.js +1 -2
  261. package/dist/table/loading/useLoading.d.ts +10 -10
  262. package/dist/table/nested/nestedData.d.ts +3 -1
  263. package/dist/table/nested/useNestedRows.d.ts +2 -2
  264. package/dist/table/selectable/selectableHeader.d.ts +2 -1
  265. package/dist/table/selectable/selectableHeader.js +4 -3
  266. package/dist/table/selectable/useSelectableRows.d.ts +1 -1
  267. package/dist/table/selectable/useSelectableRows.js +7 -4
  268. package/dist/table/table.d.ts +16 -1
  269. package/dist/table/table.js +101 -5
  270. package/dist/tag/tag.d.ts +19 -0
  271. package/dist/tag/tag.js +14 -0
  272. package/dist/textIconButton/textIconButton.js +17 -7
  273. package/dist/toastRaw/toastRaw.d.ts +1 -1
  274. package/dist/toastRaw/toastRaw.js +3 -1
  275. package/dist/toggleButtonRaw/toggleButtonRaw.js +17 -7
  276. package/dist/toggleButtonRaw/types.d.ts +0 -1
  277. package/dist/tooltip/tooltip.js +17 -7
  278. package/dist/tooltipInfo/tooltipInfo.d.ts +0 -1
  279. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  280. package/dist/utils/compareElementsUtils/isArraysEqualDeeply.js +1 -2
  281. package/dist/utils/compareElementsUtils/isElementsEqual.js +2 -2
  282. package/dist/utils/escapeHtml.js +1 -2
  283. package/dist/utils/localization/directionContext.d.ts +0 -1
  284. package/dist/utils/localization/languageContext.d.ts +0 -1
  285. package/dist/utils/localization/translations/en.json +12 -1
  286. package/dist/utils/theme/themeContext.d.ts +0 -1
  287. package/dist/utils/topWindow/topWindowContext.d.ts +0 -1
  288. package/dist/utils/useFadeComponent.d.ts +0 -1
  289. package/dist/utils/userFormat/userFormatContext.d.ts +0 -1
  290. package/dist/waiting/waiting.d.ts +2 -1
  291. package/dist/waiting/waiting.js +23 -6
  292. package/esm/alert/banner.d.ts +2 -3
  293. package/esm/alert/hooks/useAlertState.d.ts +0 -1
  294. package/esm/banner/bannerMultipLine.d.ts +0 -1
  295. package/esm/banner/bannerSingleLine.d.ts +0 -1
  296. package/esm/banner/utils/isSummaryErrorElement.d.ts +1 -2
  297. package/esm/card/components/content.d.ts +0 -1
  298. package/esm/chart/accessibleChart/accessibleChart.js +1 -1
  299. package/esm/chart/accessibleChart/accessibleChartNarrative.d.ts +1 -1
  300. package/esm/chart/accessibleChart/accessibleChartNarrative.js +8 -2
  301. package/esm/chart/accessibleChart/generatePieNarrative.d.ts +7 -0
  302. package/esm/chart/accessibleChart/generatePieNarrative.js +167 -0
  303. package/esm/chart/accessibleChart/interfaces.d.ts +1 -0
  304. package/esm/chart/barChart/getDefaultOptions.js +5 -6
  305. package/esm/chart/barChart.js +147 -50
  306. package/esm/chart/interfaces.d.ts +0 -1
  307. package/esm/chart/lineChart/getDefaultOptions.js +5 -6
  308. package/esm/chart/lineChart/useChartTicks.d.ts +0 -1
  309. package/esm/chart/lineChart/useSummary.d.ts +7 -8
  310. package/esm/chart/lineChart.js +162 -59
  311. package/esm/chart/pieChart.js +169 -76
  312. package/esm/chart/plugins/linePlugin/linePlugin.js +29 -7
  313. package/esm/chart/utils/convertDates.d.ts +1 -1
  314. package/esm/chart/utils/getNiceAxisRange.d.ts +21 -0
  315. package/esm/chart/utils/getNiceAxisRange.js +72 -0
  316. package/esm/chart/utils/getRange.js +2 -2
  317. package/esm/chart/utils/getYAxisMeta.d.ts +2 -5
  318. package/esm/chart/utils/getYAxisMeta.js +17 -2
  319. package/esm/chart/utils/getYAxisTickCount.d.ts +15 -0
  320. package/esm/chart/utils/getYAxisTickCount.js +15 -0
  321. package/esm/checkboxListWithAction/checkboxListWithAction.d.ts +0 -1
  322. package/esm/chip/chip.d.ts +0 -1
  323. package/esm/chip/utils/useChip.d.ts +0 -1
  324. package/esm/commonHelpers/HOC/reducerLogger/reducerLogger.d.ts +1 -1
  325. package/esm/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +0 -1
  326. package/esm/commonHelpers/arrowNavigation/hooks/useHoldOnScroll.d.ts +0 -1
  327. package/esm/commonHelpers/hooks/breakpoints.d.ts +4 -0
  328. package/esm/commonHelpers/hooks/breakpoints.js +4 -0
  329. package/esm/commonHelpers/hooks/fetch.reducer.d.ts +1 -1
  330. package/esm/commonHelpers/hooks/useDebouncedMemo.d.ts +0 -1
  331. package/esm/commonHelpers/hooks/useDeviceType.js +2 -2
  332. package/esm/commonHelpers/hooks/useEscape.d.ts +1 -1
  333. package/esm/commonHelpers/hooks/useGridSize.d.ts +0 -1
  334. package/esm/commonHelpers/hooks/useMobileOrTablet.d.ts +1 -0
  335. package/esm/commonHelpers/hooks/useMobileOrTablet.js +17 -0
  336. package/esm/commonHelpers/hooks/usePillSize.d.ts +0 -1
  337. package/esm/commonHelpers/hooks/useTablet.js +17 -0
  338. package/esm/dataFeed/dataFeed.d.ts +1 -1
  339. package/esm/dataFeed/dataFeed.js +2 -2
  340. package/esm/dataFeed/dataFeedCell/dataFeedCell.d.ts +3 -1
  341. package/esm/dataFeed/dataFeedColumnsItems.d.ts +2 -2
  342. package/esm/dataGrid/cell/cell.d.ts +3 -1
  343. package/esm/dataGrid/columns/actionsColumn/actionsColumn.d.ts +3 -3
  344. package/esm/dataGrid/dataGrid.d.ts +13 -1
  345. package/esm/dataGrid/dataGrid.js +48 -3
  346. package/esm/dataGrid/emptySearchList/emptySearchList.d.ts +0 -1
  347. package/esm/dataGrid/row/row.d.ts +3 -1
  348. package/esm/dataGrid/withActions/withActions.d.ts +1 -1
  349. package/esm/dataGrid/withFlexibleColumns/withFlexibleColumns.d.ts +1 -1
  350. package/esm/dataGrid/withLoading/withLoading.d.ts +1 -1
  351. package/esm/dataGrid/withSelectableRows/withLimitedSelectableRows.d.ts +1 -1
  352. package/esm/dataGrid/withSelectableRows/withSelectableRows.d.ts +1 -1
  353. package/esm/dataGrid/withSortableColumns/withSortableColumns.d.ts +1 -1
  354. package/esm/dialog/dialog.d.ts +0 -1
  355. package/esm/dropdown/dropdown.js +1 -1
  356. package/esm/dropdown/useDropdownState.d.ts +0 -1
  357. package/esm/dropdownRaw/dropdownList.d.ts +3 -2
  358. package/esm/dropdownRaw/dropdownList.js +14 -42
  359. package/esm/dropdownRaw/dropdownRaw.js +35 -14
  360. package/esm/dropdownRaw/stateReducer/stateReducer.d.ts +4 -1
  361. package/esm/dropdownRaw/stateReducer/stateReducer.js +32 -22
  362. package/esm/dropdownRaw/stateReducer/stateReducerHelper.d.ts +1 -2
  363. package/esm/dropdownRaw/stateReducer/stateReducerHelper.js +5 -10
  364. package/esm/dropdownRaw/types.d.ts +20 -0
  365. package/esm/feedbackContainer/hooks/useFeedbackAlert.d.ts +0 -1
  366. package/esm/feedbackContainer/hooks/useFeedbackToast.d.ts +0 -1
  367. package/esm/filters/components/filtersItem.d.ts +2 -2
  368. package/esm/filters/components/filtersSearchList.d.ts +0 -1
  369. package/esm/filters/components/filtersSelect.d.ts +0 -1
  370. package/esm/filters/components/filtersSelectCompact.d.ts +0 -1
  371. package/esm/filters/components/filtersSelectListItem.d.ts +0 -1
  372. package/esm/filters/components/filtersSelectUnfoldingPill.d.ts +0 -1
  373. package/esm/filters/filtersHelper.d.ts +1 -1
  374. package/esm/filters/filtersHooks.d.ts +0 -1
  375. package/esm/filtersBar/components/filtersBarDropdownWithCheckbox/filtersBarDropdownWithCheckbox.js +1 -1
  376. package/esm/filtersBar/filtersBar.js +2 -2
  377. package/esm/filtersBar/filtersBarActions/filtersBarActions.d.ts +0 -1
  378. package/esm/filtersBar/filtersBarInterfaces.d.ts +0 -1
  379. package/esm/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelDropdownWithCheckbox/filtersBarSidePanelDropdownWithCheckbox.d.ts +4 -10
  380. package/esm/formField/components/formFieldAdditionalInfo.d.ts +0 -1
  381. package/esm/formField/components/formFieldCounter.d.ts +0 -1
  382. package/esm/formField/components/formFieldLoading.d.ts +0 -1
  383. package/esm/formField/components/formFieldSkeleton.d.ts +0 -1
  384. package/esm/formField/components/formFieldWithLabel.d.ts +0 -1
  385. package/esm/formField/components/formFieldWithoutLabel.d.ts +0 -1
  386. package/esm/formField/formField.d.ts +1 -1
  387. package/esm/formField/hooks/useBanner.d.ts +0 -1
  388. package/esm/formField/hooks/useDisabled.d.ts +1 -1
  389. package/esm/formGroup/components/customRow/customRow.d.ts +0 -1
  390. package/esm/formGroup/hooks/listHooks/useStateToElements.d.ts +0 -1
  391. package/esm/formGroup/hooks/listHooks/useStateToElements.js +1 -1
  392. package/esm/formGroup/utils/formGroupProvider.d.ts +0 -1
  393. package/esm/formGroup/utils/isFormLabel.d.ts +1 -1
  394. package/esm/formGroupItem/formGroupItem.d.ts +0 -1
  395. package/esm/formLayout/components/layoutColumn/layoutColum.d.ts +0 -1
  396. package/esm/formLayout/hooks/useFormButtons.d.ts +1 -1
  397. package/esm/formLayout/types.d.ts +0 -1
  398. package/esm/formLayout/utils/attachHeadings.d.ts +1 -1
  399. package/esm/formLayout/utils/attachSeparators.d.ts +0 -1
  400. package/esm/formLayout/utils/getChildrenWithCustomColumns.d.ts +1 -2
  401. package/esm/formLayout/utils/getChildrenWithCustomColumns.js +2 -2
  402. package/esm/formLayout/utils/getFieldLabel.js +5 -5
  403. package/esm/formSection/components/actions.d.ts +0 -1
  404. package/esm/formSection/components/additional.d.ts +0 -1
  405. package/esm/formSection/utils/isFormSection.d.ts +2 -4
  406. package/esm/formStepper/components/formStepRaw.d.ts +0 -1
  407. package/esm/formStepper/formStepper.d.ts +0 -1
  408. package/esm/formStepper/formStepper.js +5 -5
  409. package/esm/formStepperButtons/formStepperButtons.js +3 -3
  410. package/esm/gridLayout/hooks/useStretch.js +1 -1
  411. package/esm/gridLayout/utils/gridLayoutProvider.d.ts +0 -1
  412. package/esm/gridLayout/utils/gridLayoutProvider.js +1 -1
  413. package/esm/gridLayout/utils/isGridItem.d.ts +1 -1
  414. package/esm/groupsFilter/groupsHelper.d.ts +5 -5
  415. package/esm/groupsFilterRaw/groupsHelper.d.ts +1 -1
  416. package/esm/groupsFilterRaw/stateReducer/stateReducer.d.ts +1 -1
  417. package/esm/groupsFilterRaw/testData.js +1 -2
  418. package/esm/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +5 -0
  419. package/esm/header/components/mobileFilterControl/mobileFilterControl.d.ts +0 -1
  420. package/esm/header/components/mobileSearchControl/mobileSearchControl.d.ts +0 -1
  421. package/esm/header/headerButton.d.ts +0 -1
  422. package/esm/header/headerContext.d.ts +1 -2
  423. package/esm/header/headerHelpers.d.ts +5 -5
  424. package/esm/header/hooks/useNonFittingElements.d.ts +3 -4
  425. package/esm/headerTitle/headerTitle.d.ts +0 -1
  426. package/esm/icons/iconAce.d.ts +3 -0
  427. package/esm/icons/iconAce.js +8 -0
  428. package/esm/icons/iconBreak.d.ts +3 -0
  429. package/esm/icons/iconBreak.js +8 -0
  430. package/esm/icons/iconChevronStepper.d.ts +3 -0
  431. package/esm/icons/iconChevronStepper.js +8 -0
  432. package/esm/icons/iconPotato.d.ts +3 -0
  433. package/esm/icons/iconPotato.js +8 -0
  434. package/esm/icons/iconToggleLarge.d.ts +3 -0
  435. package/esm/icons/iconToggleLarge.js +8 -0
  436. package/esm/icons/iconToggleSmall.d.ts +3 -0
  437. package/esm/icons/iconToggleSmall.js +8 -0
  438. package/esm/icons/iconTrendNeutral.d.ts +3 -0
  439. package/esm/icons/iconTrendNeutral.js +8 -0
  440. package/esm/icons/iconTruck.d.ts +3 -0
  441. package/esm/icons/iconTruck.js +8 -0
  442. package/esm/index.d.ts +8 -0
  443. package/esm/index.js +8 -0
  444. package/esm/layout/layout.d.ts +2 -1
  445. package/esm/layout/layoutBanner.d.ts +0 -1
  446. package/esm/lineChart/lineChart.d.ts +1 -0
  447. package/esm/lineChart/lineChart.js +129 -69
  448. package/esm/lineChartMini/lineChartMini.d.ts +1 -0
  449. package/esm/lineChartMini/lineChartMini.js +136 -73
  450. package/esm/list/itemData/itemData.d.ts +2 -1
  451. package/esm/list/itemData/itemDataInternal.d.ts +2 -1
  452. package/esm/list/list.d.ts +0 -1
  453. package/esm/list/utils/isDataListitem.d.ts +1 -1
  454. package/esm/list/viewportProvider/viewportContext.d.ts +0 -1
  455. package/esm/menu/components/controlledMenuList/controlledMenuList.d.ts +2 -4
  456. package/esm/menu/components/controlledMenuList/controlledMenuList.js +3 -1
  457. package/esm/menu/utils/useDisplayContent.d.ts +21 -0
  458. package/esm/menu/utils/useDisplayContent.js +31 -0
  459. package/esm/mobileSheet/components/mobileSheetTitle.d.ts +0 -1
  460. package/esm/nav/context/nav.context.d.ts +0 -1
  461. package/esm/nav/navFooter/navEditFooter/navEditFooter.d.ts +0 -1
  462. package/esm/nav/navFooter/navFooter.d.ts +1 -1
  463. package/esm/nav/navFooter/navFooterAction/navFooterAction.d.ts +2 -1
  464. package/esm/nav/navFooter/navFooterAction/navFooterAction.js +3 -1
  465. package/esm/nav/navItem/navItem.d.ts +2 -0
  466. package/esm/nav/navItem/navItem.js +57 -48
  467. package/esm/nav/navItem/navItemContent.d.ts +19 -0
  468. package/esm/nav/navItem/navItemContent.js +17 -0
  469. package/esm/nav/navItem/navItemType.d.ts +7 -0
  470. package/esm/nav/navItem/navItemType.js +6 -0
  471. package/esm/nav/utils/navUtils.d.ts +2 -4
  472. package/esm/overview/overview.d.ts +0 -1
  473. package/esm/pageHeader/pageHeader.d.ts +1 -1
  474. package/esm/pageHeader/pageHeaderButton.d.ts +0 -1
  475. package/esm/pageHeader/pageHeaderHelpers.d.ts +1 -1
  476. package/esm/pageHeader/pageHeaderMenu.d.ts +0 -1
  477. package/esm/pagination/paginationArrow.d.ts +0 -1
  478. package/esm/pill/interfaces/pill.interface.d.ts +0 -1
  479. package/esm/pillBox/components/pillBoxItem.d.ts +1 -2
  480. package/esm/progressIndicator/progressIndicator.d.ts +39 -0
  481. package/esm/progressIndicator/progressIndicator.js +26 -0
  482. package/esm/progressIndicator/progressIndicatorUtils.d.ts +12 -0
  483. package/esm/progressIndicator/progressIndicatorUtils.js +25 -0
  484. package/esm/radioGroupRaw/types.d.ts +0 -1
  485. package/esm/react-chartjs/utils.d.ts +3 -3
  486. package/esm/searchInputRaw/types.d.ts +0 -1
  487. package/esm/selectField/selectField.d.ts +2 -3
  488. package/esm/selectList/selectList.d.ts +0 -1
  489. package/esm/selectRaw/selectRaw.js +3 -0
  490. package/esm/sidePanel/sidePanelCell/sidePanelCell.d.ts +0 -1
  491. package/esm/table/actions/actionsMenu.d.ts +0 -1
  492. package/esm/table/children/useTableChildren.d.ts +7 -7
  493. package/esm/table/detailPanel/interfaces.d.ts +0 -1
  494. package/esm/table/loading/useLoading.d.ts +10 -10
  495. package/esm/table/nested/nestedData.d.ts +3 -1
  496. package/esm/table/nested/useNestedRows.d.ts +2 -2
  497. package/esm/table/selectable/selectableHeader.d.ts +2 -1
  498. package/esm/table/selectable/selectableHeader.js +4 -3
  499. package/esm/table/selectable/useSelectableRows.d.ts +1 -1
  500. package/esm/table/selectable/useSelectableRows.js +7 -4
  501. package/esm/table/table.d.ts +16 -1
  502. package/esm/table/table.js +102 -6
  503. package/esm/tag/tag.d.ts +19 -0
  504. package/esm/tag/tag.js +10 -0
  505. package/esm/testHelpers/geotab-axe/index.d.ts +0 -1
  506. package/esm/toastRaw/toastRaw.d.ts +1 -1
  507. package/esm/toastRaw/toastRaw.js +3 -1
  508. package/esm/toggleButtonRaw/types.d.ts +0 -1
  509. package/esm/tooltipInfo/tooltipInfo.d.ts +0 -1
  510. package/esm/tsconfig.esm.tsbuildinfo +1 -0
  511. package/esm/utils/localization/directionContext.d.ts +0 -1
  512. package/esm/utils/localization/languageContext.d.ts +0 -1
  513. package/esm/utils/localization/translations/en.json +12 -1
  514. package/esm/utils/theme/themeContext.d.ts +0 -1
  515. package/esm/utils/topWindow/topWindowContext.d.ts +0 -1
  516. package/esm/utils/useFadeComponent.d.ts +0 -1
  517. package/esm/utils/userFormat/userFormatContext.d.ts +0 -1
  518. package/esm/waiting/waiting.d.ts +2 -1
  519. package/esm/waiting/waiting.js +24 -7
  520. package/package.json +13 -6
  521. package/esm/gridLayout/hooks/useTablet.js +0 -20
  522. /package/dist/{gridLayout → commonHelpers}/hooks/useTablet.d.ts +0 -0
  523. /package/esm/{gridLayout → commonHelpers}/hooks/useTablet.d.ts +0 -0
@@ -1,19 +1,55 @@
1
1
  "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
2
+
3
+ const {
4
+ injectString
5
+ } = require("../utils/localization/translationsDictionary");
6
+ var __rest = this && this.__rest || function (s, e) {
7
+ var t = {};
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
9
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
11
+ }
12
+ return t;
12
13
  };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
14
17
  exports.PieChart = void 0;
15
18
  const jsx_runtime_1 = require("react/jsx-runtime");
16
19
  const react_1 = require("react");
20
+ injectString("cs", "Pie chart", "V\xFDse\u010Dov\xFD graf");
21
+ injectString("da-DK", "Pie chart", "Cirkeldiagram");
22
+ injectString("de", "Pie chart", "Kreisdiagramm");
23
+ injectString("en", "Pie chart", "Pie chart");
24
+ injectString("es", "Pie chart", "Gr\xE1fico de torta");
25
+ injectString("fi-FI", "Pie chart", "Ympyr\xE4kaavio");
26
+ injectString("fr", "Pie chart", "Graphique \xE0 secteurs");
27
+ injectString("fr-FR", "Pie chart", "Diagramme circulaire");
28
+ injectString("hu-HU", "Pie chart", "Keresztdiagram");
29
+ injectString("id", "Pie chart", "Bagan pai");
30
+ injectString("it", "Pie chart", "Grafico a torta");
31
+ injectString("ja", "Pie chart", "\u5186\u30B0\u30E9\u30D5");
32
+ injectString("ko-KR", "Pie chart", "\uD30C\uC774 \uCC28\uD2B8");
33
+ injectString("ms", "Pie chart", "Carta pai");
34
+ injectString("nb-NO", "Pie chart", "Sirkeldiagram");
35
+ injectString("nl", "Pie chart", "Cirkeldiagram");
36
+ injectString("pl", "Pie chart", "Wykres ko\u0142owy");
37
+ injectString("pt-BR", "Pie chart", "Gr\xE1fico de pizza");
38
+ injectString("pt-PT", "Pie chart", "Gr\xE1fico de setores");
39
+ injectString("sk-SK", "Pie chart", "Kol\xE1\u010Dov\xFD graf");
40
+ injectString("sv", "Pie chart", "Cirkeldiagram");
41
+ injectString("th", "Pie chart", "\u0E41\u0E1C\u0E19\u0E20\u0E39\u0E21\u0E34\u0E27\u0E07\u0E01\u0E25\u0E21");
42
+ injectString("tr", "Pie chart", "Pasta grafik");
43
+ injectString("zh-Hans", "Pie chart", "\u997C\u56FE");
44
+ injectString("zh-TW", "Pie chart", "\u5713\u5F62\u5716");
45
+ injectString("ro-RO", "Pie chart", "Diagram\u0103 circular\u0103");
46
+ injectString("ar", "Pie chart", "\u0645\u062E\u0637\u0637 \u062F\u0627\u0626\u0631\u064A");
47
+ injectString("lt-LT", "Pie chart", "Skritulin\u0117 diagrama");
48
+ injectString("lv-LV", "Pie chart", "Sektoru diagramma");
49
+ injectString("ka-GE", "Pie chart", "\u10EC\u10E0\u10D8\u10E3\u10DA\u10D8 \u10E1\u10E5\u10D4\u10DB\u10D0");
50
+ injectString("el-GR", "Pie chart", "\u0393\u03C1\u03AC\u03C6\u03B7\u03BC\u03B1 \u03C0\u03AF\u03C4\u03B1\u03C2");
51
+ injectString("et-EE", "Pie chart", "Sektordiagramm");
52
+ injectString("bg-BG", "Pie chart", "\u041A\u0440\u044A\u0433\u043E\u0432\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u0430");
17
53
  const typedCharts_1 = require("../react-chartjs/typedCharts");
18
54
  const auto_1 = require("chart.js/auto");
19
55
  require("../react-chartjs/dateAdapter");
@@ -34,70 +70,132 @@ const accessibleChart_1 = require("./accessibleChart/accessibleChart");
34
70
  const centerTextPlugin_1 = require("./pieChart/centerTextPlugin");
35
71
  const pieLegendPlugin_1 = require("./pieChart/pieLegendPlugin");
36
72
  const legendPlugin_1 = require("./plugins/legend/legendPlugin");
73
+ const useLanguage_1 = require("../utils/localization/useLanguage");
37
74
  auto_1.Chart.register(auto_1.PieController, auto_1.ArcElement);
38
- const PieChart = (_a) => {
39
- var { data, options = {}, insight, summary, legend, tooltip, plugins, className } = _a, rest = __rest(_a, ["data", "options", "insight", "summary", "legend", "tooltip", "plugins", "className"]);
40
- const { isHorizontal } = options;
41
- const isDrive = (0, useDrive_1.useDrive)();
42
- const isMobile = (0, useMobile_1.useMobile)();
43
- const fontSize = (0, react_1.useMemo)(() => (isDrive ? (isMobile ? 14 : 16) : 12), [isDrive, isMobile]);
44
- const { dark } = (0, react_1.useContext)(themeContext_1.themeContext);
45
- const legendId = (0, react_1.useId)();
46
- const tooltipId = (0, react_1.useId)();
47
- const containerRef = (0, react_1.useRef)(null);
48
- (0, react_1.useEffect)(() => {
49
- var _a;
50
- const el = containerRef.current;
51
- const styles = el ? (_a = zen_1.zen.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(zen_1.zen, el) : undefined;
52
- const fontFamily = (styles === null || styles === void 0 ? void 0 : styles.getPropertyValue("--main-font").trim()) || "Roboto";
53
- const color = (styles === null || styles === void 0 ? void 0 : styles.getPropertyValue("--text-primary").trim()) || "";
54
- auto_1.Chart.defaults.font = {
55
- family: fontFamily,
56
- size: fontSize
57
- };
58
- auto_1.Chart.defaults.color = color;
59
- }, [fontSize, dark]);
60
- const defOptions = (0, react_1.useMemo)(() => (0, getDefaultOptions_1.getDefaultOptions)(), []);
61
- const chartOptions = (0, utils_1.deepMerge)(defOptions, options);
62
- const { isHidden, toggleHidden: rawToggle } = (0, useHidden_1.useHidden)();
63
- const pieData = data.datasets[0].data;
64
- const toggleHidden = (0, react_1.useCallback)((index) => {
65
- if (!isHidden(index)) {
66
- const visibleCount = pieData.filter((_, i) => !isHidden(i)).length;
67
- if (visibleCount <= 1)
68
- return;
69
- }
70
- rawToggle(index);
71
- }, [isHidden, rawToggle, pieData]);
72
- const chartData = (0, react_1.useMemo)(() => {
73
- const chData = Object.assign({}, data);
74
- chData.datasets = chData.datasets.map(ds => (0, getDefaultDatasetStyle_1.getDefaultDatasetStyle)(ds));
75
- chData.datasets[0].data = chData.datasets[0].data.map((value, index) => (isHidden(index) ? 0 : value));
76
- return chData;
77
- }, [data, isHidden]);
78
- const chartTooltip = (0, react_1.useMemo)(() => (0, tooltipPlugin_1.TooltipPlugin)(tooltipId, tooltip, "left", isHidden, dark), [tooltipId, tooltip, isHidden, dark]);
79
- const effectiveLegend = (0, react_1.useMemo)(() => (isHorizontal && legend !== false ? Object.assign(Object.assign({}, legend), { position: "right", showBar: true, showPercentage: true }) : legend), [isHorizontal, legend]);
80
- const legendData = (0, react_1.useMemo)(() => {
81
- var _a;
82
- return (Object.assign(Object.assign({}, data), { datasets: [Object.assign(Object.assign({}, data.datasets[0]), { backgroundColor: (_a = chartData.datasets[0]) === null || _a === void 0 ? void 0 : _a.backgroundColor }), ...data.datasets.slice(1)] }));
83
- }, [data, chartData]);
84
- const chartLegend = (0, react_1.useMemo)(() => isHorizontal
85
- ? (0, pieLegendPlugin_1.pieLegendPlugin)(legendId, effectiveLegend, isDrive, legendData, isHidden, toggleHidden)
86
- : (0, legendPlugin_1.legendPlugin)(legendId, legend, isDrive, isHidden, toggleHidden), [isDrive, isHorizontal, effectiveLegend, legend, legendId, legendData, isHidden, toggleHidden]);
87
- const resolvedCenterText = (0, react_1.useMemo)(() => {
88
- if (!options.centerText)
89
- return undefined;
90
- const { getValue, value, label } = options.centerText;
91
- if (getValue) {
92
- const visibleValues = chartData.datasets[0].data.filter((_, i) => !isHidden(i));
93
- return { value: getValue(visibleValues), label };
94
- }
95
- return { value, label };
96
- }, [options.centerText, chartData, isHidden]);
97
- const chartCenterText = (0, react_1.useMemo)(() => (0, centerTextPlugin_1.centerTextPlugin)(resolvedCenterText), [resolvedCenterText]);
98
- const chartPlugins = (0, react_1.useMemo)(() => [...(plugins || []), chartLegend, chartTooltip, chartCenterText], [chartLegend, chartTooltip, chartCenterText, plugins]);
99
- const intSummary = (0, useSummary_1.useSummary)(summary, chartData);
100
- const legendRight = isHorizontal;
101
- return ((0, jsx_runtime_1.jsxs)("div", { ref: containerRef, className: (0, classNames_1.classNames)(["zen-chart", legendRight ? "zen-chart--legend-right" : "", className || ""]), children: [insight ? (0, jsx_runtime_1.jsx)(chartInsight_1.ChartInsight, Object.assign({}, insight)) : null, summary ? (0, jsx_runtime_1.jsx)(summary_1.Summary, Object.assign({}, intSummary)) : null, (0, jsx_runtime_1.jsx)("div", { className: "zen-chart__chart", children: (0, jsx_runtime_1.jsx)(typedCharts_1.Pie, Object.assign({ options: chartOptions, data: chartData, plugins: chartPlugins }, rest, { "aria-hidden": true })) }), (0, jsx_runtime_1.jsx)("div", { className: "zen-chart__legend", id: legendId }), (0, jsx_runtime_1.jsx)(accessibleChart_1.AccessibleChart, { type: "pie", data: chartData })] }));
75
+ const PieChart = _a => {
76
+ var {
77
+ data,
78
+ options = {},
79
+ insight,
80
+ summary,
81
+ legend,
82
+ tooltip,
83
+ plugins,
84
+ className
85
+ } = _a,
86
+ rest = __rest(_a, ["data", "options", "insight", "summary", "legend", "tooltip", "plugins", "className"]);
87
+ const {
88
+ isHorizontal
89
+ } = options;
90
+ const {
91
+ translate
92
+ } = (0, useLanguage_1.useLanguage)();
93
+ const isDrive = (0, useDrive_1.useDrive)();
94
+ const isMobile = (0, useMobile_1.useMobile)();
95
+ const fontSize = (0, react_1.useMemo)(() => isDrive ? isMobile ? 14 : 16 : 12, [isDrive, isMobile]);
96
+ const {
97
+ dark
98
+ } = (0, react_1.useContext)(themeContext_1.themeContext);
99
+ const legendId = (0, react_1.useId)();
100
+ const tooltipId = (0, react_1.useId)();
101
+ const narrativeId = (0, react_1.useId)();
102
+ const containerRef = (0, react_1.useRef)(null);
103
+ (0, react_1.useEffect)(() => {
104
+ var _a;
105
+ const el = containerRef.current;
106
+ const styles = el ? (_a = zen_1.zen.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(zen_1.zen, el) : undefined;
107
+ const fontFamily = (styles === null || styles === void 0 ? void 0 : styles.getPropertyValue("--main-font").trim()) || "Roboto";
108
+ const color = (styles === null || styles === void 0 ? void 0 : styles.getPropertyValue("--text-primary").trim()) || "";
109
+ auto_1.Chart.defaults.font = {
110
+ family: fontFamily,
111
+ size: fontSize
112
+ };
113
+ auto_1.Chart.defaults.color = color;
114
+ }, [fontSize, dark]);
115
+ const defOptions = (0, react_1.useMemo)(() => (0, getDefaultOptions_1.getDefaultOptions)(), []);
116
+ const chartOptions = (0, utils_1.deepMerge)(defOptions, options);
117
+ const {
118
+ isHidden,
119
+ toggleHidden: rawToggle
120
+ } = (0, useHidden_1.useHidden)();
121
+ const pieData = data.datasets[0].data;
122
+ const toggleHidden = (0, react_1.useCallback)(index => {
123
+ if (!isHidden(index)) {
124
+ const visibleCount = pieData.filter((_, i) => !isHidden(i)).length;
125
+ if (visibleCount <= 1) return;
126
+ }
127
+ rawToggle(index);
128
+ }, [isHidden, rawToggle, pieData]);
129
+ const chartData = (0, react_1.useMemo)(() => {
130
+ const chData = Object.assign({}, data);
131
+ chData.datasets = chData.datasets.map(ds => (0, getDefaultDatasetStyle_1.getDefaultDatasetStyle)(ds));
132
+ chData.datasets[0].data = chData.datasets[0].data.map((value, index) => isHidden(index) ? 0 : value);
133
+ return chData;
134
+ }, [data, isHidden]);
135
+ const chartTooltip = (0, react_1.useMemo)(() => (0, tooltipPlugin_1.TooltipPlugin)(tooltipId, tooltip, "left", isHidden, dark), [tooltipId, tooltip, isHidden, dark]);
136
+ const effectiveLegend = (0, react_1.useMemo)(() => isHorizontal && legend !== false ? Object.assign(Object.assign({}, legend), {
137
+ position: "right",
138
+ showBar: true,
139
+ showPercentage: true
140
+ }) : legend, [isHorizontal, legend]);
141
+ const legendData = (0, react_1.useMemo)(() => {
142
+ var _a;
143
+ return Object.assign(Object.assign({}, data), {
144
+ datasets: [Object.assign(Object.assign({}, data.datasets[0]), {
145
+ backgroundColor: (_a = chartData.datasets[0]) === null || _a === void 0 ? void 0 : _a.backgroundColor
146
+ }), ...data.datasets.slice(1)]
147
+ });
148
+ }, [data, chartData]);
149
+ const chartLegend = (0, react_1.useMemo)(() => isHorizontal ? (0, pieLegendPlugin_1.pieLegendPlugin)(legendId, effectiveLegend, isDrive, legendData, isHidden, toggleHidden) : (0, legendPlugin_1.legendPlugin)(legendId, legend, isDrive, isHidden, toggleHidden), [isDrive, isHorizontal, effectiveLegend, legend, legendId, legendData, isHidden, toggleHidden]);
150
+ const resolvedCenterText = (0, react_1.useMemo)(() => {
151
+ if (!options.centerText) return undefined;
152
+ const {
153
+ getValue,
154
+ value,
155
+ label
156
+ } = options.centerText;
157
+ if (getValue) {
158
+ const visibleValues = chartData.datasets[0].data.filter((_, i) => !isHidden(i));
159
+ return {
160
+ value: getValue(visibleValues),
161
+ label
162
+ };
163
+ }
164
+ return {
165
+ value,
166
+ label
167
+ };
168
+ }, [options.centerText, chartData, isHidden]);
169
+ const chartCenterText = (0, react_1.useMemo)(() => (0, centerTextPlugin_1.centerTextPlugin)(resolvedCenterText), [resolvedCenterText]);
170
+ const chartPlugins = (0, react_1.useMemo)(() => [...(plugins || []), chartLegend, chartTooltip, chartCenterText], [chartLegend, chartTooltip, chartCenterText, plugins]);
171
+ const intSummary = (0, useSummary_1.useSummary)(summary, chartData);
172
+ const legendRight = isHorizontal;
173
+ return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
174
+ children: [(0, jsx_runtime_1.jsxs)("div", {
175
+ ref: containerRef,
176
+ className: (0, classNames_1.classNames)(["zen-chart", legendRight ? "zen-chart--legend-right" : "", className || ""]),
177
+ tabIndex: 0,
178
+ role: "figure",
179
+ "aria-label": translate("Pie chart"),
180
+ "aria-describedby": narrativeId,
181
+ children: [insight ? (0, jsx_runtime_1.jsx)(chartInsight_1.ChartInsight, Object.assign({}, insight)) : null, summary ? (0, jsx_runtime_1.jsx)(summary_1.Summary, Object.assign({}, intSummary)) : null, (0, jsx_runtime_1.jsx)("div", {
182
+ className: "zen-chart__chart",
183
+ children: (0, jsx_runtime_1.jsx)(typedCharts_1.Pie, Object.assign({
184
+ options: chartOptions,
185
+ data: chartData,
186
+ plugins: chartPlugins
187
+ }, rest, {
188
+ "aria-hidden": true
189
+ }))
190
+ }), (0, jsx_runtime_1.jsx)("div", {
191
+ className: "zen-chart__legend",
192
+ id: legendId
193
+ })]
194
+ }), (0, jsx_runtime_1.jsx)(accessibleChart_1.AccessibleChart, {
195
+ type: "pie",
196
+ data: data,
197
+ narrativeId: narrativeId
198
+ })]
199
+ });
102
200
  };
103
- exports.PieChart = PieChart;
201
+ exports.PieChart = PieChart;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getInterpolatedValue = void 0;
3
+ exports.getInterpolatedValue = getInterpolatedValue;
4
4
  function getInterpolatedValue(xScale, data, datasetIndex, xPixel) {
5
5
  const dataset = data.datasets[datasetIndex];
6
6
  const dataPoints = dataset.data;
@@ -43,4 +43,3 @@ function getInterpolatedValue(xScale, data, datasetIndex, xPixel) {
43
43
  const interpolatedY = y1 + ((y2 - y1) * (x - x1)) / (x2 - x1);
44
44
  return interpolatedY;
45
45
  }
46
- exports.getInterpolatedValue = getInterpolatedValue;
@@ -55,9 +55,32 @@ const LinePlugin = (containerId, options, isDark) => ({
55
55
  const y = chart.verticalLine.y;
56
56
  const topY = chart.chartArea.top;
57
57
  const bottomY = chart.chartArea.bottom;
58
- (0, drawLine_1.drawLine)(ctx, x, topY, bottomY);
59
58
  const datasets = chart.data.datasets;
60
59
  let lowestValueY = Infinity;
60
+ const xScale = chart.scales.x;
61
+ let snappedX = x;
62
+ let closestDist = Infinity;
63
+ datasets.forEach((dataset, dsIndex) => {
64
+ if (!chart.isDatasetVisible(dsIndex)) {
65
+ return;
66
+ }
67
+ if (chart.getDatasetMeta(dsIndex).type !== "line") {
68
+ return;
69
+ }
70
+ const dataPoints = dataset.data;
71
+ for (const point of dataPoints) {
72
+ if (point.y === null) {
73
+ continue;
74
+ }
75
+ const px = xScale.getPixelForValue(point.x);
76
+ const dist = Math.abs(px - x);
77
+ if (dist < closestDist) {
78
+ closestDist = dist;
79
+ snappedX = px;
80
+ }
81
+ }
82
+ });
83
+ (0, drawLine_1.drawLine)(ctx, snappedX, topY, bottomY);
61
84
  const items = datasets
62
85
  .map((dataset, dsIndex) => {
63
86
  if (!chart.isDatasetVisible(dsIndex)) {
@@ -66,8 +89,7 @@ const LinePlugin = (containerId, options, isDark) => ({
66
89
  if (chart.getDatasetMeta(dsIndex).type !== "line") {
67
90
  return undefined;
68
91
  }
69
- const xScale = chart.scales.x;
70
- const value = (0, getInterpolatedValue_1.getInterpolatedValue)(xScale, chart.data, dsIndex, x);
92
+ const value = (0, getInterpolatedValue_1.getInterpolatedValue)(xScale, chart.data, dsIndex, snappedX);
71
93
  const yAxisID = dataset.yAxisID || "y";
72
94
  const yScale = chart.scales[yAxisID];
73
95
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
@@ -95,8 +117,8 @@ const LinePlugin = (containerId, options, isDark) => ({
95
117
  return;
96
118
  }
97
119
  const chartRect = chart.canvas.getBoundingClientRect();
98
- const top = chartRect.top + (lowestValueY || y);
99
- const left = chartRect.left + x;
120
+ const top = chartRect.top + (lowestValueY !== Infinity ? lowestValueY : y);
121
+ const left = chartRect.left + snappedX;
100
122
  if (zen_1.zen.document === undefined) {
101
123
  return;
102
124
  }
@@ -113,8 +135,8 @@ const LinePlugin = (containerId, options, isDark) => ({
113
135
  xLabel = scaleLabels[elementIdx];
114
136
  }
115
137
  else {
116
- const xValue = chart.scales.x.getValueForPixel(x);
117
- xLabel = xValue ? chart.scales.x.getLabelForValue(xValue) : undefined;
138
+ const xValue = chart.scales.x.getValueForPixel(snappedX);
139
+ xLabel = xValue !== undefined ? chart.scales.x.getLabelForValue(xValue) : undefined;
118
140
  }
119
141
  (0, renderTooltip_1.renderTooltip)(containerId, left + scrollLeft, top + scrollTop, "top", items, options === null || options === void 0 ? void 0 : options.title, options && options.subtitle !== undefined ? options.subtitle : xLabel, (options === null || options === void 0 ? void 0 : options.note) || undefined, isDark);
120
142
  }
@@ -1,3 +1,3 @@
1
1
  import { IBarChartData } from "../barChart/interfaces";
2
2
  import { ILineChartData } from "../lineChart/interfaces";
3
- export declare const convertDates: (data: ILineChartData | IBarChartData, toLocalDateTime: (date: Date | string) => Date) => IBarChartData | ILineChartData;
3
+ export declare const convertDates: (data: ILineChartData | IBarChartData, toLocalDateTime: (date: Date | string) => Date) => typeof data;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFormattedLabel = void 0;
3
+ exports.getFormattedLabel = getFormattedLabel;
4
4
  const isDateString_1 = require("./isDateString");
5
5
  function getFormattedLabel(value, dateFormatter, options) {
6
6
  var _a, _b, _c;
@@ -17,4 +17,3 @@ function getFormattedLabel(value, dateFormatter, options) {
17
17
  }
18
18
  return String(value);
19
19
  }
20
- exports.getFormattedLabel = getFormattedLabel;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Computes a Y-axis min/max pair that:
3
+ * - Fully contains the original [min, max] range.
4
+ * - Splits into exactly `tickCount - 1` equal, "nice" (round-number) steps, so an axis
5
+ * configured with this min/max and `ticks.count = tickCount` renders exactly `tickCount`
6
+ * human-friendly tick values (e.g. 0, 25, 50, 75, 100) instead of arbitrary decimals.
7
+ *
8
+ * This is what allows forcing the same `ticks.count` across multiple Y-axes (see
9
+ * getYAxisTickCount) without sacrificing round-number tick labels: Chart.js's own tick
10
+ * generator produces evenly-spaced (but not necessarily round) values whenever `ticks.count`
11
+ * is combined with an explicit `min`/`max`, so the min/max passed in must already be "niced".
12
+ *
13
+ * **Precondition:** `min <= max`. An inverted range (`min > max`) produces a negative
14
+ * `rawStep`, which causes an early return of the original pair unchanged — Chart.js does not
15
+ * handle inverted axes gracefully. The current call chain enforces this via `normalizeRange`,
16
+ * so the inverted case is unreachable in practice; direct callers must guarantee it themselves.
17
+ */
18
+ export declare const getNiceAxisRange: (min: number, max: number, tickCount: number) => {
19
+ min: number;
20
+ max: number;
21
+ };
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNiceAxisRange = void 0;
4
+ // Classic "nice numbers" step candidates, used to pick human-friendly tick spacing
5
+ // (e.g. 1, 2, 2.5, 5, 10, 20, 25, 50, 100...) instead of arbitrary decimals. 2.5 is included
6
+ // alongside the more common 1-2-5 sequence because omitting it causes the axis range to
7
+ // overshoot the data significantly more often (e.g. a range of 94 rounds up to a step of 50,
8
+ // i.e. a span of 200, instead of a step of 25, i.e. a span of 100).
9
+ const NICE_STEP_MULTIPLIERS = [1, 2, 2.5, 5];
10
+ /**
11
+ * Returns a sorted list of "nice" step candidates at or above `minStep`, spanning a few orders
12
+ * of magnitude so callers can pick the smallest one that satisfies their range requirement.
13
+ */
14
+ const getNiceStepCandidatesAtLeast = (minStep) => {
15
+ if (!Number.isFinite(minStep) || minStep <= 0) {
16
+ return [];
17
+ }
18
+ const exponent = Math.floor(Math.log10(minStep));
19
+ const candidates = [];
20
+ // Search a window around the raw step's magnitude; one order of magnitude below covers
21
+ // rounding edge cases (e.g. minStep just above a power of ten), and several above ensure
22
+ // we can always find a candidate whose range covers the data even for very large steps.
23
+ for (let e = exponent - 1; e <= exponent + 6; e++) {
24
+ for (const multiplier of NICE_STEP_MULTIPLIERS) {
25
+ candidates.push(multiplier * Math.pow(10, e));
26
+ }
27
+ }
28
+ return candidates.filter(candidate => candidate >= minStep * 0.999).sort((a, b) => a - b);
29
+ };
30
+ /**
31
+ * Rounds `value` to a sensible number of decimal places derived from `step`'s magnitude, to
32
+ * avoid floating point artifacts like 0.30000000000000004 ending up in tick labels.
33
+ */
34
+ const roundToStepPrecision = (value, step) => {
35
+ const decimals = Math.max(0, -Math.floor(Math.log10(step)) + 2);
36
+ const factor = Math.pow(10, decimals);
37
+ return Math.round(value * factor) / factor;
38
+ };
39
+ /**
40
+ * Computes a Y-axis min/max pair that:
41
+ * - Fully contains the original [min, max] range.
42
+ * - Splits into exactly `tickCount - 1` equal, "nice" (round-number) steps, so an axis
43
+ * configured with this min/max and `ticks.count = tickCount` renders exactly `tickCount`
44
+ * human-friendly tick values (e.g. 0, 25, 50, 75, 100) instead of arbitrary decimals.
45
+ *
46
+ * This is what allows forcing the same `ticks.count` across multiple Y-axes (see
47
+ * getYAxisTickCount) without sacrificing round-number tick labels: Chart.js's own tick
48
+ * generator produces evenly-spaced (but not necessarily round) values whenever `ticks.count`
49
+ * is combined with an explicit `min`/`max`, so the min/max passed in must already be "niced".
50
+ *
51
+ * **Precondition:** `min <= max`. An inverted range (`min > max`) produces a negative
52
+ * `rawStep`, which causes an early return of the original pair unchanged — Chart.js does not
53
+ * handle inverted axes gracefully. The current call chain enforces this via `normalizeRange`,
54
+ * so the inverted case is unreachable in practice; direct callers must guarantee it themselves.
55
+ */
56
+ const getNiceAxisRange = (min, max, tickCount) => {
57
+ if (!Number.isFinite(min) || !Number.isFinite(max) || tickCount < 2) {
58
+ return { min, max };
59
+ }
60
+ const safeMax = min === max ? min + 1 : max;
61
+ const rawStep = (safeMax - min) / (tickCount - 1);
62
+ if (!(rawStep > 0)) {
63
+ return { min, max: safeMax };
64
+ }
65
+ const candidates = getNiceStepCandidatesAtLeast(rawStep);
66
+ for (const step of candidates) {
67
+ const niceMin = Math.floor(min / step) * step;
68
+ const niceMax = niceMin + step * (tickCount - 1);
69
+ if (niceMax >= safeMax) {
70
+ return { min: roundToStepPrecision(niceMin, step), max: roundToStepPrecision(niceMax, step) };
71
+ }
72
+ }
73
+ // Should be unreachable given the generated candidate range, but fall back safely.
74
+ return { min, max: safeMax };
75
+ };
76
+ exports.getNiceAxisRange = getNiceAxisRange;
@@ -6,12 +6,12 @@ const getRange = (data) => {
6
6
  const { min, max } = (0, getMinMax_1.getMinMax)(data);
7
7
  let range = max - min;
8
8
  if (range === 0) {
9
- range = min * 0.1;
9
+ range = Math.abs(min) * 0.1;
10
10
  }
11
11
  const suggestedMin = min - range * 0.1;
12
12
  const suggestedMax = max + range * 0.1;
13
13
  return {
14
- min: suggestedMin,
14
+ min: min >= 0 && suggestedMin < 0 ? 0 : suggestedMin,
15
15
  max: suggestedMax
16
16
  };
17
17
  };
@@ -1,7 +1,4 @@
1
+ import { IYAxisMeta } from "../interfaces";
1
2
  import { ILineChartData } from "../lineChart/interfaces";
2
3
  import { IBarChartData } from "../barChart/interfaces";
3
- export declare const getYAxisMeta: (data: ILineChartData | IBarChartData, stacked?: boolean) => {
4
- min: number;
5
- max: number;
6
- name: string;
7
- }[];
4
+ export declare const getYAxisMeta: (data: ILineChartData | IBarChartData, stacked?: boolean) => IYAxisMeta[];
@@ -4,6 +4,19 @@ exports.getYAxisMeta = void 0;
4
4
  const getRange_1 = require("./getRange");
5
5
  const mergeRanges_1 = require("./mergeRanges");
6
6
  const normalizeRange_1 = require("./normalizeRange");
7
+ const getNiceAxisRange_1 = require("./getNiceAxisRange");
8
+ const getYAxisTickCount_1 = require("./getYAxisTickCount");
9
+ // When there is more than one Y-axis, snap every axis's min/max to a shared "nice" tick count
10
+ // (see getYAxisTickCount/getNiceAxisRange) so the chart can render the same number of
11
+ // round-number tick increments on each axis, keeping their horizontal grid lines aligned.
12
+ // Single-axis charts are returned unchanged.
13
+ const alignYAxisRanges = (axes) => {
14
+ const tickCount = (0, getYAxisTickCount_1.getYAxisTickCount)(axes.length);
15
+ if (!tickCount) {
16
+ return axes;
17
+ }
18
+ return axes.map(axis => (Object.assign(Object.assign({}, axis), (0, getNiceAxisRange_1.getNiceAxisRange)(axis.min, axis.max, tickCount))));
19
+ };
7
20
  const getYAxisMeta = (data, stacked = false) => {
8
21
  if (data.datasets.length === 0) {
9
22
  return [
@@ -34,7 +47,7 @@ const getYAxisMeta = (data, stacked = false) => {
34
47
  valuesByX.set(xKey, existing);
35
48
  });
36
49
  });
37
- return Object.values(axisMap).map(axis => {
50
+ const stackedResult = Object.values(axisMap).map(axis => {
38
51
  const stackedValues = [];
39
52
  axis.valuesByX.forEach(value => {
40
53
  // Always include 0 as the baseline for stacked charts
@@ -52,6 +65,7 @@ const getYAxisMeta = (data, stacked = false) => {
52
65
  const normalized = (0, normalizeRange_1.normalizeRange)(range);
53
66
  return Object.assign({ name: axis.name }, normalized);
54
67
  });
68
+ return alignYAxisRanges(stackedResult);
55
69
  }
56
70
  const axisMap = data.datasets.reduce((acc, ds) => {
57
71
  const name = ds.yAxisID ? ds.yAxisID : "y";
@@ -62,6 +76,7 @@ const getYAxisMeta = (data, stacked = false) => {
62
76
  acc[name] = Object.assign({ name: name }, totalRange);
63
77
  return acc;
64
78
  }, {});
65
- return Object.values(axisMap).map(el => (Object.assign(Object.assign({}, el), (0, normalizeRange_1.normalizeRange)(el))));
79
+ const result = Object.values(axisMap).map(el => (Object.assign(Object.assign({}, el), (0, normalizeRange_1.normalizeRange)(el))));
80
+ return alignYAxisRanges(result);
66
81
  };
67
82
  exports.getYAxisMeta = getYAxisMeta;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * When a chart renders more than one Y-axis (e.g. a primary/left axis and a secondary/right
3
+ * axis), Chart.js computes "nice" tick values independently per axis by default. Because each
4
+ * axis has its own data range, this frequently produces a different number of tick increments
5
+ * on each axis, which causes the horizontal grid lines to misalign between axes.
6
+ *
7
+ * Forcing every Y-axis to the same explicit `ticks.count` makes Chart.js generate that exact
8
+ * number of evenly-spaced ticks between each axis's own min/max, so the number of increments
9
+ * (and therefore the grid line positions) stay consistent across all Y-axes.
10
+ *
11
+ * Single-axis charts are left untouched (returns `undefined`, so Chart.js falls back to its
12
+ * default "nice ticks" behavior) since there is no second axis to align against.
13
+ */
14
+ export declare const DUAL_YAXIS_TICK_COUNT = 5;
15
+ export declare const getYAxisTickCount: (yAxisCount: number) => number | undefined;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getYAxisTickCount = exports.DUAL_YAXIS_TICK_COUNT = void 0;
4
+ /**
5
+ * When a chart renders more than one Y-axis (e.g. a primary/left axis and a secondary/right
6
+ * axis), Chart.js computes "nice" tick values independently per axis by default. Because each
7
+ * axis has its own data range, this frequently produces a different number of tick increments
8
+ * on each axis, which causes the horizontal grid lines to misalign between axes.
9
+ *
10
+ * Forcing every Y-axis to the same explicit `ticks.count` makes Chart.js generate that exact
11
+ * number of evenly-spaced ticks between each axis's own min/max, so the number of increments
12
+ * (and therefore the grid line positions) stay consistent across all Y-axes.
13
+ *
14
+ * Single-axis charts are left untouched (returns `undefined`, so Chart.js falls back to its
15
+ * default "nice ticks" behavior) since there is no second axis to align against.
16
+ */
17
+ exports.DUAL_YAXIS_TICK_COUNT = 5;
18
+ const getYAxisTickCount = (yAxisCount) => (yAxisCount > 1 ? exports.DUAL_YAXIS_TICK_COUNT : undefined);
19
+ exports.getYAxisTickCount = getYAxisTickCount;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resampleArrayEvenly = void 0;
3
+ exports.resampleArrayEvenly = resampleArrayEvenly;
4
4
  function resampleArrayEvenly(originalArray, newLength) {
5
5
  const originalLength = originalArray.length;
6
6
  if (newLength <= 0 || originalLength === 0) {
@@ -20,4 +20,3 @@ function resampleArrayEvenly(originalArray, newLength) {
20
20
  }
21
21
  return resampledArray;
22
22
  }
23
- exports.resampleArrayEvenly = resampleArrayEvenly;
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __rest = (this && this.__rest) || function (s, e) {
26
36
  var t = {};
27
37
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import "./checkboxListWithAction.less";
3
2
  import { IZenComponentProps } from "../commonHelpers/zenComponent";
4
3
  import { IColor } from "../groupsFilterRaw/groupsFilterInterfaces";
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import "./chip.less";
3
2
  import { IZenComponentProps } from "./../commonHelpers/zenComponent";
4
3
  import { IIcon } from "../icons/icon";