@geotab/zenith 3.14.1 → 3.15.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) 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 +10 -2
  27. package/dist/chart/utils/convertDates.d.ts +1 -1
  28. package/dist/chart/utils/getFormattedLabel.js +1 -2
  29. package/dist/chart/utils/getNiceAxisRange.d.ts +21 -0
  30. package/dist/chart/utils/getNiceAxisRange.js +76 -0
  31. package/dist/chart/utils/getRange.js +2 -2
  32. package/dist/chart/utils/getYAxisMeta.d.ts +2 -5
  33. package/dist/chart/utils/getYAxisMeta.js +17 -2
  34. package/dist/chart/utils/getYAxisTickCount.d.ts +15 -0
  35. package/dist/chart/utils/getYAxisTickCount.js +19 -0
  36. package/dist/chart/utils/resampleArrayEvenly.js +1 -2
  37. package/dist/checkbox/checkbox.js +17 -7
  38. package/dist/checkboxListWithAction/checkboxListWithAction.d.ts +0 -1
  39. package/dist/chip/chip.d.ts +0 -1
  40. package/dist/chip/utils/useChip.d.ts +0 -1
  41. package/dist/commonHelpers/HOC/reducerLogger/reducerLogger.d.ts +1 -1
  42. package/dist/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +0 -1
  43. package/dist/commonHelpers/arrowNavigation/hooks/useHoldOnScroll.d.ts +0 -1
  44. package/dist/commonHelpers/generateId.js +1 -2
  45. package/dist/commonHelpers/hooks/breakpoints.d.ts +4 -0
  46. package/dist/commonHelpers/hooks/breakpoints.js +7 -0
  47. package/dist/commonHelpers/hooks/fetch.reducer.d.ts +1 -1
  48. package/dist/commonHelpers/hooks/fetch.reducer.js +1 -2
  49. package/dist/commonHelpers/hooks/useDebouncedMemo.d.ts +0 -1
  50. package/dist/commonHelpers/hooks/useDebouncedMemo.js +1 -2
  51. package/dist/commonHelpers/hooks/useDeviceType.js +2 -2
  52. package/dist/commonHelpers/hooks/useEscape.d.ts +1 -1
  53. package/dist/commonHelpers/hooks/useGridSize.d.ts +0 -1
  54. package/dist/commonHelpers/hooks/useMobileOrTablet.d.ts +1 -0
  55. package/dist/commonHelpers/hooks/useMobileOrTablet.js +21 -0
  56. package/dist/commonHelpers/hooks/usePillSize.d.ts +0 -1
  57. package/dist/{gridLayout → commonHelpers}/hooks/useTablet.js +8 -11
  58. package/dist/commonHelpers/utils.js +3 -3
  59. package/dist/commonStyles/colors/colors.less +1 -0
  60. package/dist/dataFeed/dataFeed.d.ts +1 -1
  61. package/dist/dataFeed/dataFeed.js +2 -2
  62. package/dist/dataFeed/dataFeedCell/dataFeedCell.d.ts +3 -1
  63. package/dist/dataFeed/dataFeedColumnsItems.d.ts +2 -2
  64. package/dist/dataGrid/cell/cell.d.ts +3 -1
  65. package/dist/dataGrid/columns/actionsColumn/actionsButton.js +1 -2
  66. package/dist/dataGrid/columns/actionsColumn/actionsColumn.d.ts +3 -3
  67. package/dist/dataGrid/dataGrid.d.ts +13 -1
  68. package/dist/dataGrid/dataGrid.js +48 -3
  69. package/dist/dataGrid/emptySearchList/emptySearchList.d.ts +0 -1
  70. package/dist/dataGrid/row/row.d.ts +3 -1
  71. package/dist/dataGrid/withActions/withActions.d.ts +1 -1
  72. package/dist/dataGrid/withFlexibleColumns/components/columnSettingsList.js +1 -2
  73. package/dist/dataGrid/withFlexibleColumns/withFlexibleColumns.d.ts +1 -1
  74. package/dist/dataGrid/withLoading/withLoading.d.ts +1 -1
  75. package/dist/dataGrid/withSelectableRows/withLimitedSelectableRows.d.ts +1 -1
  76. package/dist/dataGrid/withSelectableRows/withSelectableRows.d.ts +1 -1
  77. package/dist/dataGrid/withSortableColumns/withSortableColumns.d.ts +1 -1
  78. package/dist/dateInputInner/dateInputInnerReducer.js +2 -2
  79. package/dist/dateRangeRaw/utils/areMapsEqual.js +1 -2
  80. package/dist/dialog/dialog.d.ts +0 -1
  81. package/dist/dropdown/dropdown.js +1 -1
  82. package/dist/dropdown/useDropdownState.d.ts +0 -1
  83. package/dist/dropdownRaw/dropdownHelper.js +2 -2
  84. package/dist/dropdownRaw/dropdownList.d.ts +3 -2
  85. package/dist/dropdownRaw/dropdownList.js +31 -49
  86. package/dist/dropdownRaw/dropdownRaw.js +34 -13
  87. package/dist/dropdownRaw/stateReducer/stateReducer.d.ts +4 -1
  88. package/dist/dropdownRaw/stateReducer/stateReducer.js +33 -23
  89. package/dist/dropdownRaw/stateReducer/stateReducerHelper.d.ts +1 -2
  90. package/dist/dropdownRaw/stateReducer/stateReducerHelper.js +8 -13
  91. package/dist/dropdownRaw/types.d.ts +20 -0
  92. package/dist/feedbackContainer/feedbackContainer.js +17 -7
  93. package/dist/feedbackContainer/hooks/useFeedbackAlert.d.ts +0 -1
  94. package/dist/feedbackContainer/hooks/useFeedbackToast.d.ts +0 -1
  95. package/dist/filters/components/filtersDropdown.js +2 -2
  96. package/dist/filters/components/filtersItem.d.ts +2 -2
  97. package/dist/filters/components/filtersSearchList.d.ts +0 -1
  98. package/dist/filters/components/filtersSelect.d.ts +0 -1
  99. package/dist/filters/components/filtersSelectCompact.d.ts +0 -1
  100. package/dist/filters/components/filtersSelectListItem.d.ts +0 -1
  101. package/dist/filters/components/filtersSelectUnfoldingPill.d.ts +0 -1
  102. package/dist/filters/components/filtersSidePanelItem.js +17 -7
  103. package/dist/filters/filtersHelper.d.ts +1 -1
  104. package/dist/filters/filtersHelper.js +5 -5
  105. package/dist/filters/filtersHooks.d.ts +0 -1
  106. package/dist/filtersBar/components/filtersBarDropdownWithCheckbox/filtersBarDropdownWithCheckbox.js +1 -1
  107. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +2 -2
  108. package/dist/filtersBar/filtersBar.js +2 -2
  109. package/dist/filtersBar/filtersBarActions/filtersBarActions.d.ts +0 -1
  110. package/dist/filtersBar/filtersBarInterfaces.d.ts +0 -1
  111. package/dist/filtersBar/filtersBarReducer.js +2 -2
  112. package/dist/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelDropdownWithCheckbox/filtersBarSidePanelDropdownWithCheckbox.d.ts +4 -10
  113. package/dist/filtersBar/filtersBarSidePanel/sidePanelReducer.js +2 -2
  114. package/dist/filtersBar/utils/getNumberOfChangedFilters.js +1 -2
  115. package/dist/footerButtons/footerButtons.js +17 -7
  116. package/dist/formField/components/formFieldAdditionalInfo.d.ts +0 -1
  117. package/dist/formField/components/formFieldCounter.d.ts +0 -1
  118. package/dist/formField/components/formFieldLoading.d.ts +0 -1
  119. package/dist/formField/components/formFieldSkeleton.d.ts +0 -1
  120. package/dist/formField/components/formFieldWithLabel.d.ts +0 -1
  121. package/dist/formField/components/formFieldWithoutLabel.d.ts +0 -1
  122. package/dist/formField/formField.d.ts +1 -1
  123. package/dist/formField/hooks/useBanner.d.ts +0 -1
  124. package/dist/formField/hooks/useDisabled.d.ts +1 -1
  125. package/dist/formGroup/components/customRow/customRow.d.ts +0 -1
  126. package/dist/formGroup/formGroup.js +17 -7
  127. package/dist/formGroup/hooks/listHooks/useStateToElements.d.ts +0 -1
  128. package/dist/formGroup/hooks/listHooks/useStateToElements.js +1 -1
  129. package/dist/formGroup/utils/formGroupProvider.d.ts +0 -1
  130. package/dist/formGroup/utils/isFormLabel.d.ts +1 -1
  131. package/dist/formGroupItem/formGroupItem.d.ts +0 -1
  132. package/dist/formLayout/components/layoutColumn/layoutColum.d.ts +0 -1
  133. package/dist/formLayout/hooks/useFormButtons.d.ts +1 -1
  134. package/dist/formLayout/types.d.ts +0 -1
  135. package/dist/formLayout/utils/attachHeadings.d.ts +1 -1
  136. package/dist/formLayout/utils/attachSeparators.d.ts +0 -1
  137. package/dist/formLayout/utils/getChildrenWithCustomColumns.d.ts +1 -2
  138. package/dist/formLayout/utils/getChildrenWithCustomColumns.js +2 -2
  139. package/dist/formLayout/utils/getFieldLabel.js +5 -5
  140. package/dist/formSection/components/actions.d.ts +0 -1
  141. package/dist/formSection/components/additional.d.ts +0 -1
  142. package/dist/formSection/utils/isFormSection.d.ts +2 -4
  143. package/dist/formStepper/components/formStepRaw.d.ts +0 -1
  144. package/dist/formStepper/formStepper.d.ts +0 -1
  145. package/dist/formStepper/formStepper.js +5 -5
  146. package/dist/formStepperButtons/formStepperButtons.js +3 -3
  147. package/dist/gridLayout/hooks/useStretch.js +1 -1
  148. package/dist/gridLayout/utils/convertStateToClasses.js +1 -2
  149. package/dist/gridLayout/utils/gridLayoutProvider.d.ts +0 -1
  150. package/dist/gridLayout/utils/gridLayoutProvider.js +1 -1
  151. package/dist/gridLayout/utils/isGridItem.d.ts +1 -1
  152. package/dist/groupsFilter/groupsHelper.d.ts +5 -5
  153. package/dist/groupsFilterRaw/groupsFilterHelper.js +16 -16
  154. package/dist/groupsFilterRaw/groupsHelper.d.ts +1 -1
  155. package/dist/groupsFilterRaw/groupsHelper.js +4 -4
  156. package/dist/groupsFilterRaw/stateReducer/stateReducer.d.ts +1 -1
  157. package/dist/groupsFilterRaw/stateReducer/stateReducer.js +2 -2
  158. package/dist/groupsFilterRaw/testData.js +3 -4
  159. package/dist/groupsFilterRaw/uiStateReducer/uiStateReducer.js +2 -2
  160. package/dist/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +5 -0
  161. package/dist/header/components/mobileFilterControl/mobileFilterControl.d.ts +0 -1
  162. package/dist/header/components/mobileSearchControl/mobileSearchControl.d.ts +0 -1
  163. package/dist/header/header.js +17 -7
  164. package/dist/header/headerButton.d.ts +0 -1
  165. package/dist/header/headerContext.d.ts +1 -2
  166. package/dist/header/headerHelpers.d.ts +5 -5
  167. package/dist/header/headerHelpers.js +17 -7
  168. package/dist/header/hooks/useNonFittingElements.d.ts +3 -4
  169. package/dist/headerTitle/headerTitle.d.ts +0 -1
  170. package/dist/icons/iconAce.d.ts +3 -0
  171. package/dist/icons/iconAce.js +12 -0
  172. package/dist/icons/iconBreak.d.ts +3 -0
  173. package/dist/icons/iconBreak.js +12 -0
  174. package/dist/icons/iconChevronStepper.d.ts +3 -0
  175. package/dist/icons/iconChevronStepper.js +12 -0
  176. package/dist/icons/iconPotato.d.ts +3 -0
  177. package/dist/icons/iconPotato.js +12 -0
  178. package/dist/icons/iconToggleLarge.d.ts +3 -0
  179. package/dist/icons/iconToggleLarge.js +12 -0
  180. package/dist/icons/iconToggleSmall.d.ts +3 -0
  181. package/dist/icons/iconToggleSmall.js +12 -0
  182. package/dist/icons/iconTrendNeutral.d.ts +3 -0
  183. package/dist/icons/iconTrendNeutral.js +12 -0
  184. package/dist/icons/iconTruck.d.ts +3 -0
  185. package/dist/icons/iconTruck.js +12 -0
  186. package/dist/index.css +234 -33
  187. package/dist/index.d.ts +8 -0
  188. package/dist/index.js +30 -13
  189. package/dist/layout/layout.d.ts +2 -1
  190. package/dist/layout/layout.js +17 -7
  191. package/dist/layout/layoutBanner.d.ts +0 -1
  192. package/dist/lineChart/lineChart.d.ts +1 -0
  193. package/dist/lineChart/lineChart.js +135 -70
  194. package/dist/lineChartMini/lineChartMini.d.ts +1 -0
  195. package/dist/lineChartMini/lineChartMini.js +141 -73
  196. package/dist/list/itemData/itemData.d.ts +2 -1
  197. package/dist/list/itemData/itemDataInternal.d.ts +2 -1
  198. package/dist/list/list.d.ts +0 -1
  199. package/dist/list/utils/changeOrder.js +1 -2
  200. package/dist/list/utils/isDataListitem.d.ts +1 -1
  201. package/dist/list/viewportProvider/viewportContext.d.ts +0 -1
  202. package/dist/menu/components/controlledMenuList/controlledMenuList.d.ts +2 -4
  203. package/dist/menu/components/controlledMenuList/controlledMenuList.js +3 -1
  204. package/dist/menu/components/createControlledMenuList.js +1 -2
  205. package/dist/menu/components/createMenuItem.js +1 -2
  206. package/dist/menu/contexts/usePathContext.js +1 -2
  207. package/dist/menu/utils/buildMenuContent.js +1 -2
  208. package/dist/menu/utils/findPrevFocusable.js +1 -2
  209. package/dist/menu/utils/useDisplayContent.d.ts +21 -0
  210. package/dist/menu/utils/useDisplayContent.js +35 -0
  211. package/dist/menu/utils/useMenuItemKeyboardNav.js +1 -2
  212. package/dist/miniTabs/miniTabsHelper.js +17 -7
  213. package/dist/mobileSheet/components/mobileSheetTitle.d.ts +0 -1
  214. package/dist/modal/modal.js +17 -7
  215. package/dist/nav/context/nav.context.d.ts +0 -1
  216. package/dist/nav/navFooter/navEditFooter/navEditFooter.d.ts +0 -1
  217. package/dist/nav/navFooter/navFooter.d.ts +1 -1
  218. package/dist/nav/navFooter/navFooterAction/navFooterAction.d.ts +2 -1
  219. package/dist/nav/navFooter/navFooterAction/navFooterAction.js +3 -1
  220. package/dist/nav/navItem/navItem.d.ts +2 -0
  221. package/dist/nav/navItem/navItem.js +56 -47
  222. package/dist/nav/navItem/navItemContent.d.ts +19 -0
  223. package/dist/nav/navItem/navItemContent.js +21 -0
  224. package/dist/nav/navItem/navItemType.d.ts +7 -0
  225. package/dist/nav/navItem/navItemType.js +9 -0
  226. package/dist/nav/utils/navUtils.d.ts +2 -4
  227. package/dist/nav/utils/navUtils.js +2 -2
  228. package/dist/overview/overview.d.ts +0 -1
  229. package/dist/pageHeader/pageHeader.d.ts +1 -1
  230. package/dist/pageHeader/pageHeaderButton.d.ts +0 -1
  231. package/dist/pageHeader/pageHeaderHelpers.d.ts +1 -1
  232. package/dist/pageHeader/pageHeaderMenu.d.ts +0 -1
  233. package/dist/pagination/paginationArrow.d.ts +0 -1
  234. package/dist/pill/interfaces/pill.interface.d.ts +0 -1
  235. package/dist/pillBox/components/pillBoxItem.d.ts +1 -2
  236. package/dist/popup/popup.js +17 -7
  237. package/dist/progressIndicator/progressIndicator.d.ts +39 -0
  238. package/dist/progressIndicator/progressIndicator.js +30 -0
  239. package/dist/progressIndicator/progressIndicatorUtils.d.ts +12 -0
  240. package/dist/progressIndicator/progressIndicatorUtils.js +30 -0
  241. package/dist/radioGroupRaw/radioGroupRaw.js +17 -7
  242. package/dist/radioGroupRaw/types.d.ts +0 -1
  243. package/dist/react-chartjs/dateFns/dateFns.js +10 -11
  244. package/dist/react-chartjs/utils.d.ts +3 -3
  245. package/dist/react-chartjs/utils.js +8 -9
  246. package/dist/searchInputRaw/searchInputRaw.js +17 -7
  247. package/dist/searchInputRaw/types.d.ts +0 -1
  248. package/dist/selectField/selectField.d.ts +2 -3
  249. package/dist/selectList/selectList.d.ts +0 -1
  250. package/dist/selectRaw/hooks/usePopupWidth.js +17 -7
  251. package/dist/selectRaw/selectRaw.js +20 -7
  252. package/dist/sidePanel/sidePanelCell/sidePanelCell.d.ts +0 -1
  253. package/dist/summaries/utils/splitIntoPairs.js +1 -2
  254. package/dist/summaryTile/summaryTile.js +17 -7
  255. package/dist/summaryTile/summaryTileTrigger.js +17 -7
  256. package/dist/table/actions/actionsMenu.d.ts +0 -1
  257. package/dist/table/children/useTableChildren.d.ts +7 -7
  258. package/dist/table/detailPanel/interfaces.d.ts +0 -1
  259. package/dist/table/flexible/columnsList.js +1 -2
  260. package/dist/table/loading/useLoading.d.ts +10 -10
  261. package/dist/table/nested/nestedData.d.ts +3 -1
  262. package/dist/table/nested/useNestedRows.d.ts +2 -2
  263. package/dist/table/selectable/selectableHeader.d.ts +2 -1
  264. package/dist/table/selectable/selectableHeader.js +4 -3
  265. package/dist/table/selectable/useSelectableRows.d.ts +1 -1
  266. package/dist/table/selectable/useSelectableRows.js +7 -4
  267. package/dist/table/table.d.ts +16 -1
  268. package/dist/table/table.js +101 -5
  269. package/dist/tag/tag.d.ts +19 -0
  270. package/dist/tag/tag.js +14 -0
  271. package/dist/textIconButton/textIconButton.js +17 -7
  272. package/dist/toastRaw/toastRaw.d.ts +1 -1
  273. package/dist/toastRaw/toastRaw.js +3 -1
  274. package/dist/toggleButtonRaw/toggleButtonRaw.js +17 -7
  275. package/dist/toggleButtonRaw/types.d.ts +0 -1
  276. package/dist/tooltip/tooltip.js +17 -7
  277. package/dist/tooltipInfo/tooltipInfo.d.ts +0 -1
  278. package/dist/utils/compareElementsUtils/isArraysEqualDeeply.js +1 -2
  279. package/dist/utils/compareElementsUtils/isElementsEqual.js +2 -2
  280. package/dist/utils/escapeHtml.js +1 -2
  281. package/dist/utils/localization/directionContext.d.ts +0 -1
  282. package/dist/utils/localization/languageContext.d.ts +0 -1
  283. package/dist/utils/localization/translations/en.json +12 -1
  284. package/dist/utils/theme/themeContext.d.ts +0 -1
  285. package/dist/utils/topWindow/topWindowContext.d.ts +0 -1
  286. package/dist/utils/useFadeComponent.d.ts +0 -1
  287. package/dist/utils/userFormat/userFormatContext.d.ts +0 -1
  288. package/dist/waiting/waiting.d.ts +2 -1
  289. package/dist/waiting/waiting.js +23 -6
  290. package/esm/alert/banner.d.ts +2 -3
  291. package/esm/alert/hooks/useAlertState.d.ts +0 -1
  292. package/esm/banner/bannerMultipLine.d.ts +0 -1
  293. package/esm/banner/bannerSingleLine.d.ts +0 -1
  294. package/esm/banner/utils/isSummaryErrorElement.d.ts +1 -2
  295. package/esm/card/components/content.d.ts +0 -1
  296. package/esm/chart/accessibleChart/accessibleChart.js +1 -1
  297. package/esm/chart/accessibleChart/accessibleChartNarrative.d.ts +1 -1
  298. package/esm/chart/accessibleChart/accessibleChartNarrative.js +8 -2
  299. package/esm/chart/accessibleChart/generatePieNarrative.d.ts +7 -0
  300. package/esm/chart/accessibleChart/generatePieNarrative.js +167 -0
  301. package/esm/chart/accessibleChart/interfaces.d.ts +1 -0
  302. package/esm/chart/barChart/getDefaultOptions.js +5 -6
  303. package/esm/chart/barChart.js +147 -50
  304. package/esm/chart/interfaces.d.ts +0 -1
  305. package/esm/chart/lineChart/getDefaultOptions.js +5 -6
  306. package/esm/chart/lineChart/useChartTicks.d.ts +0 -1
  307. package/esm/chart/lineChart/useSummary.d.ts +7 -8
  308. package/esm/chart/lineChart.js +162 -59
  309. package/esm/chart/pieChart.js +169 -76
  310. package/esm/chart/plugins/linePlugin/getInterpolatedValue.js +9 -0
  311. package/esm/chart/utils/convertDates.d.ts +1 -1
  312. package/esm/chart/utils/getNiceAxisRange.d.ts +21 -0
  313. package/esm/chart/utils/getNiceAxisRange.js +72 -0
  314. package/esm/chart/utils/getRange.js +2 -2
  315. package/esm/chart/utils/getYAxisMeta.d.ts +2 -5
  316. package/esm/chart/utils/getYAxisMeta.js +17 -2
  317. package/esm/chart/utils/getYAxisTickCount.d.ts +15 -0
  318. package/esm/chart/utils/getYAxisTickCount.js +15 -0
  319. package/esm/checkboxListWithAction/checkboxListWithAction.d.ts +0 -1
  320. package/esm/chip/chip.d.ts +0 -1
  321. package/esm/chip/utils/useChip.d.ts +0 -1
  322. package/esm/commonHelpers/HOC/reducerLogger/reducerLogger.d.ts +1 -1
  323. package/esm/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +0 -1
  324. package/esm/commonHelpers/arrowNavigation/hooks/useHoldOnScroll.d.ts +0 -1
  325. package/esm/commonHelpers/hooks/breakpoints.d.ts +4 -0
  326. package/esm/commonHelpers/hooks/breakpoints.js +4 -0
  327. package/esm/commonHelpers/hooks/fetch.reducer.d.ts +1 -1
  328. package/esm/commonHelpers/hooks/useDebouncedMemo.d.ts +0 -1
  329. package/esm/commonHelpers/hooks/useDeviceType.js +2 -2
  330. package/esm/commonHelpers/hooks/useEscape.d.ts +1 -1
  331. package/esm/commonHelpers/hooks/useGridSize.d.ts +0 -1
  332. package/esm/commonHelpers/hooks/useMobileOrTablet.d.ts +1 -0
  333. package/esm/commonHelpers/hooks/useMobileOrTablet.js +17 -0
  334. package/esm/commonHelpers/hooks/usePillSize.d.ts +0 -1
  335. package/esm/commonHelpers/hooks/useTablet.js +17 -0
  336. package/esm/dataFeed/dataFeed.d.ts +1 -1
  337. package/esm/dataFeed/dataFeed.js +2 -2
  338. package/esm/dataFeed/dataFeedCell/dataFeedCell.d.ts +3 -1
  339. package/esm/dataFeed/dataFeedColumnsItems.d.ts +2 -2
  340. package/esm/dataGrid/cell/cell.d.ts +3 -1
  341. package/esm/dataGrid/columns/actionsColumn/actionsColumn.d.ts +3 -3
  342. package/esm/dataGrid/dataGrid.d.ts +13 -1
  343. package/esm/dataGrid/dataGrid.js +48 -3
  344. package/esm/dataGrid/emptySearchList/emptySearchList.d.ts +0 -1
  345. package/esm/dataGrid/row/row.d.ts +3 -1
  346. package/esm/dataGrid/withActions/withActions.d.ts +1 -1
  347. package/esm/dataGrid/withFlexibleColumns/withFlexibleColumns.d.ts +1 -1
  348. package/esm/dataGrid/withLoading/withLoading.d.ts +1 -1
  349. package/esm/dataGrid/withSelectableRows/withLimitedSelectableRows.d.ts +1 -1
  350. package/esm/dataGrid/withSelectableRows/withSelectableRows.d.ts +1 -1
  351. package/esm/dataGrid/withSortableColumns/withSortableColumns.d.ts +1 -1
  352. package/esm/dialog/dialog.d.ts +0 -1
  353. package/esm/dropdown/dropdown.js +1 -1
  354. package/esm/dropdown/useDropdownState.d.ts +0 -1
  355. package/esm/dropdownRaw/dropdownList.d.ts +3 -2
  356. package/esm/dropdownRaw/dropdownList.js +14 -42
  357. package/esm/dropdownRaw/dropdownRaw.js +35 -14
  358. package/esm/dropdownRaw/stateReducer/stateReducer.d.ts +4 -1
  359. package/esm/dropdownRaw/stateReducer/stateReducer.js +32 -22
  360. package/esm/dropdownRaw/stateReducer/stateReducerHelper.d.ts +1 -2
  361. package/esm/dropdownRaw/stateReducer/stateReducerHelper.js +5 -10
  362. package/esm/dropdownRaw/types.d.ts +20 -0
  363. package/esm/feedbackContainer/hooks/useFeedbackAlert.d.ts +0 -1
  364. package/esm/feedbackContainer/hooks/useFeedbackToast.d.ts +0 -1
  365. package/esm/filters/components/filtersItem.d.ts +2 -2
  366. package/esm/filters/components/filtersSearchList.d.ts +0 -1
  367. package/esm/filters/components/filtersSelect.d.ts +0 -1
  368. package/esm/filters/components/filtersSelectCompact.d.ts +0 -1
  369. package/esm/filters/components/filtersSelectListItem.d.ts +0 -1
  370. package/esm/filters/components/filtersSelectUnfoldingPill.d.ts +0 -1
  371. package/esm/filters/filtersHelper.d.ts +1 -1
  372. package/esm/filters/filtersHooks.d.ts +0 -1
  373. package/esm/filtersBar/components/filtersBarDropdownWithCheckbox/filtersBarDropdownWithCheckbox.js +1 -1
  374. package/esm/filtersBar/filtersBar.js +2 -2
  375. package/esm/filtersBar/filtersBarActions/filtersBarActions.d.ts +0 -1
  376. package/esm/filtersBar/filtersBarInterfaces.d.ts +0 -1
  377. package/esm/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelDropdownWithCheckbox/filtersBarSidePanelDropdownWithCheckbox.d.ts +4 -10
  378. package/esm/formField/components/formFieldAdditionalInfo.d.ts +0 -1
  379. package/esm/formField/components/formFieldCounter.d.ts +0 -1
  380. package/esm/formField/components/formFieldLoading.d.ts +0 -1
  381. package/esm/formField/components/formFieldSkeleton.d.ts +0 -1
  382. package/esm/formField/components/formFieldWithLabel.d.ts +0 -1
  383. package/esm/formField/components/formFieldWithoutLabel.d.ts +0 -1
  384. package/esm/formField/formField.d.ts +1 -1
  385. package/esm/formField/hooks/useBanner.d.ts +0 -1
  386. package/esm/formField/hooks/useDisabled.d.ts +1 -1
  387. package/esm/formGroup/components/customRow/customRow.d.ts +0 -1
  388. package/esm/formGroup/hooks/listHooks/useStateToElements.d.ts +0 -1
  389. package/esm/formGroup/hooks/listHooks/useStateToElements.js +1 -1
  390. package/esm/formGroup/utils/formGroupProvider.d.ts +0 -1
  391. package/esm/formGroup/utils/isFormLabel.d.ts +1 -1
  392. package/esm/formGroupItem/formGroupItem.d.ts +0 -1
  393. package/esm/formLayout/components/layoutColumn/layoutColum.d.ts +0 -1
  394. package/esm/formLayout/hooks/useFormButtons.d.ts +1 -1
  395. package/esm/formLayout/types.d.ts +0 -1
  396. package/esm/formLayout/utils/attachHeadings.d.ts +1 -1
  397. package/esm/formLayout/utils/attachSeparators.d.ts +0 -1
  398. package/esm/formLayout/utils/getChildrenWithCustomColumns.d.ts +1 -2
  399. package/esm/formLayout/utils/getChildrenWithCustomColumns.js +2 -2
  400. package/esm/formLayout/utils/getFieldLabel.js +5 -5
  401. package/esm/formSection/components/actions.d.ts +0 -1
  402. package/esm/formSection/components/additional.d.ts +0 -1
  403. package/esm/formSection/utils/isFormSection.d.ts +2 -4
  404. package/esm/formStepper/components/formStepRaw.d.ts +0 -1
  405. package/esm/formStepper/formStepper.d.ts +0 -1
  406. package/esm/formStepper/formStepper.js +5 -5
  407. package/esm/formStepperButtons/formStepperButtons.js +3 -3
  408. package/esm/gridLayout/hooks/useStretch.js +1 -1
  409. package/esm/gridLayout/utils/gridLayoutProvider.d.ts +0 -1
  410. package/esm/gridLayout/utils/gridLayoutProvider.js +1 -1
  411. package/esm/gridLayout/utils/isGridItem.d.ts +1 -1
  412. package/esm/groupsFilter/groupsHelper.d.ts +5 -5
  413. package/esm/groupsFilterRaw/groupsHelper.d.ts +1 -1
  414. package/esm/groupsFilterRaw/stateReducer/stateReducer.d.ts +1 -1
  415. package/esm/groupsFilterRaw/testData.js +1 -2
  416. package/esm/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +5 -0
  417. package/esm/header/components/mobileFilterControl/mobileFilterControl.d.ts +0 -1
  418. package/esm/header/components/mobileSearchControl/mobileSearchControl.d.ts +0 -1
  419. package/esm/header/headerButton.d.ts +0 -1
  420. package/esm/header/headerContext.d.ts +1 -2
  421. package/esm/header/headerHelpers.d.ts +5 -5
  422. package/esm/header/hooks/useNonFittingElements.d.ts +3 -4
  423. package/esm/headerTitle/headerTitle.d.ts +0 -1
  424. package/esm/icons/iconAce.d.ts +3 -0
  425. package/esm/icons/iconAce.js +8 -0
  426. package/esm/icons/iconBreak.d.ts +3 -0
  427. package/esm/icons/iconBreak.js +8 -0
  428. package/esm/icons/iconChevronStepper.d.ts +3 -0
  429. package/esm/icons/iconChevronStepper.js +8 -0
  430. package/esm/icons/iconPotato.d.ts +3 -0
  431. package/esm/icons/iconPotato.js +8 -0
  432. package/esm/icons/iconToggleLarge.d.ts +3 -0
  433. package/esm/icons/iconToggleLarge.js +8 -0
  434. package/esm/icons/iconToggleSmall.d.ts +3 -0
  435. package/esm/icons/iconToggleSmall.js +8 -0
  436. package/esm/icons/iconTrendNeutral.d.ts +3 -0
  437. package/esm/icons/iconTrendNeutral.js +8 -0
  438. package/esm/icons/iconTruck.d.ts +3 -0
  439. package/esm/icons/iconTruck.js +8 -0
  440. package/esm/index.d.ts +8 -0
  441. package/esm/index.js +8 -0
  442. package/esm/layout/layout.d.ts +2 -1
  443. package/esm/layout/layoutBanner.d.ts +0 -1
  444. package/esm/lineChart/lineChart.d.ts +1 -0
  445. package/esm/lineChart/lineChart.js +129 -69
  446. package/esm/lineChartMini/lineChartMini.d.ts +1 -0
  447. package/esm/lineChartMini/lineChartMini.js +136 -73
  448. package/esm/list/itemData/itemData.d.ts +2 -1
  449. package/esm/list/itemData/itemDataInternal.d.ts +2 -1
  450. package/esm/list/list.d.ts +0 -1
  451. package/esm/list/utils/isDataListitem.d.ts +1 -1
  452. package/esm/list/viewportProvider/viewportContext.d.ts +0 -1
  453. package/esm/menu/components/controlledMenuList/controlledMenuList.d.ts +2 -4
  454. package/esm/menu/components/controlledMenuList/controlledMenuList.js +3 -1
  455. package/esm/menu/utils/useDisplayContent.d.ts +21 -0
  456. package/esm/menu/utils/useDisplayContent.js +31 -0
  457. package/esm/mobileSheet/components/mobileSheetTitle.d.ts +0 -1
  458. package/esm/nav/context/nav.context.d.ts +0 -1
  459. package/esm/nav/navFooter/navEditFooter/navEditFooter.d.ts +0 -1
  460. package/esm/nav/navFooter/navFooter.d.ts +1 -1
  461. package/esm/nav/navFooter/navFooterAction/navFooterAction.d.ts +2 -1
  462. package/esm/nav/navFooter/navFooterAction/navFooterAction.js +3 -1
  463. package/esm/nav/navItem/navItem.d.ts +2 -0
  464. package/esm/nav/navItem/navItem.js +57 -48
  465. package/esm/nav/navItem/navItemContent.d.ts +19 -0
  466. package/esm/nav/navItem/navItemContent.js +17 -0
  467. package/esm/nav/navItem/navItemType.d.ts +7 -0
  468. package/esm/nav/navItem/navItemType.js +6 -0
  469. package/esm/nav/utils/navUtils.d.ts +2 -4
  470. package/esm/overview/overview.d.ts +0 -1
  471. package/esm/pageHeader/pageHeader.d.ts +1 -1
  472. package/esm/pageHeader/pageHeaderButton.d.ts +0 -1
  473. package/esm/pageHeader/pageHeaderHelpers.d.ts +1 -1
  474. package/esm/pageHeader/pageHeaderMenu.d.ts +0 -1
  475. package/esm/pagination/paginationArrow.d.ts +0 -1
  476. package/esm/pill/interfaces/pill.interface.d.ts +0 -1
  477. package/esm/pillBox/components/pillBoxItem.d.ts +1 -2
  478. package/esm/progressIndicator/progressIndicator.d.ts +39 -0
  479. package/esm/progressIndicator/progressIndicator.js +26 -0
  480. package/esm/progressIndicator/progressIndicatorUtils.d.ts +12 -0
  481. package/esm/progressIndicator/progressIndicatorUtils.js +25 -0
  482. package/esm/radioGroupRaw/types.d.ts +0 -1
  483. package/esm/react-chartjs/utils.d.ts +3 -3
  484. package/esm/searchInputRaw/types.d.ts +0 -1
  485. package/esm/selectField/selectField.d.ts +2 -3
  486. package/esm/selectList/selectList.d.ts +0 -1
  487. package/esm/selectRaw/selectRaw.js +3 -0
  488. package/esm/sidePanel/sidePanelCell/sidePanelCell.d.ts +0 -1
  489. package/esm/table/actions/actionsMenu.d.ts +0 -1
  490. package/esm/table/children/useTableChildren.d.ts +7 -7
  491. package/esm/table/detailPanel/interfaces.d.ts +0 -1
  492. package/esm/table/loading/useLoading.d.ts +10 -10
  493. package/esm/table/nested/nestedData.d.ts +3 -1
  494. package/esm/table/nested/useNestedRows.d.ts +2 -2
  495. package/esm/table/selectable/selectableHeader.d.ts +2 -1
  496. package/esm/table/selectable/selectableHeader.js +4 -3
  497. package/esm/table/selectable/useSelectableRows.d.ts +1 -1
  498. package/esm/table/selectable/useSelectableRows.js +7 -4
  499. package/esm/table/table.d.ts +16 -1
  500. package/esm/table/table.js +102 -6
  501. package/esm/tag/tag.d.ts +19 -0
  502. package/esm/tag/tag.js +10 -0
  503. package/esm/testHelpers/geotab-axe/index.d.ts +0 -1
  504. package/esm/toastRaw/toastRaw.d.ts +1 -1
  505. package/esm/toastRaw/toastRaw.js +3 -1
  506. package/esm/toggleButtonRaw/types.d.ts +0 -1
  507. package/esm/tooltipInfo/tooltipInfo.d.ts +0 -1
  508. package/esm/utils/localization/directionContext.d.ts +0 -1
  509. package/esm/utils/localization/languageContext.d.ts +0 -1
  510. package/esm/utils/localization/translations/en.json +12 -1
  511. package/esm/utils/theme/themeContext.d.ts +0 -1
  512. package/esm/utils/topWindow/topWindowContext.d.ts +0 -1
  513. package/esm/utils/useFadeComponent.d.ts +0 -1
  514. package/esm/utils/userFormat/userFormatContext.d.ts +0 -1
  515. package/esm/waiting/waiting.d.ts +2 -1
  516. package/esm/waiting/waiting.js +24 -7
  517. package/package.json +13 -6
  518. package/esm/gridLayout/hooks/useTablet.js +0 -20
  519. /package/dist/{gridLayout → commonHelpers}/hooks/useTablet.d.ts +0 -0
  520. /package/esm/{gridLayout → commonHelpers}/hooks/useTablet.d.ts +0 -0
@@ -0,0 +1,7 @@
1
+ import { ChartData } from "chart.js";
2
+ export declare const PIE_LARGE_DATASET_THRESHOLD = 6;
3
+ export declare const PIE_LARGEST_COUNT = 3;
4
+ export declare function formatPieSlice(label: string, value: number, total: number, decimalLength: number): string;
5
+ export declare function generatePieSliceDetails(values: number[], labels: string[], total: number, decimalLength: number): string[];
6
+ export declare function generatePieSummaryLines(values: number[], labels: string[], total: number, decimalLength: number, details: string[], translate: (s: string) => string): string[];
7
+ export declare function generatePieNarrative(data: ChartData, translate: (s: string) => string): string[];
@@ -0,0 +1,167 @@
1
+ import { injectString } from "../../utils/localization/translationsDictionary";
2
+ import { calculateMinTruncationPrecision } from "../utils/calculateMinTruncationPrecision";
3
+ import { truncateDecimals } from "../../utils/truncateDecimals";
4
+ injectString("da-DK", "Summary: {COUNT} slices.", "Oversigt: {COUNT} udsnit.");
5
+ injectString("en", "Summary: {COUNT} slices.", "Summary: {COUNT} slices.");
6
+ injectString("fi-FI", "Summary: {COUNT} slices.", "Yhteenveto: {COUNT} segmentti\xE4.");
7
+ injectString("hu-HU", "Summary: {COUNT} slices.", "\xD6sszefoglal\xE1s: {COUNT} szelet.");
8
+ injectString("ms", "Summary: {COUNT} slices.", "Ringkasan: {COUNT} hirisan.");
9
+ injectString("nb-NO", "Summary: {COUNT} slices.", "Sammendrag: {COUNT} utsnitt.");
10
+ injectString("nl", "Summary: {COUNT} slices.", "Samenvatting: {COUNT} segmenten.");
11
+ injectString("pt-BR", "Summary: {COUNT} slices.", "Resumo: {COUNT} fatias.");
12
+ injectString("sk-SK", "Summary: {COUNT} slices.", "S\xFAhrn: {COUNT} v\xFDsekov.");
13
+ injectString("sv", "Summary: {COUNT} slices.", "Sammanfattning: {COUNT} segment.");
14
+ injectString("ar", "Summary: {COUNT} slices.", "\u0627\u0644\u0645\u0644\u062E\u0635: {COUNT} \u0634\u0631\u064A\u062D\u0629.");
15
+ injectString("lt-LT", "Summary: {COUNT} slices.", "Santrauka: {COUNT} segmentai.");
16
+ injectString("lv-LV", "Summary: {COUNT} slices.", "Kopsavilkums: {COUNT} sektori.");
17
+ injectString("ka-GE", "Summary: {COUNT} slices.", "\u10E8\u10D4\u10EF\u10D0\u10DB\u10D4\u10D1\u10D0: {COUNT} \u10E1\u10D4\u10D2\u10DB\u10D4\u10DC\u10E2\u10D8.");
18
+ injectString("el-GR", "Summary: {COUNT} slices.", "\u03A3\u03CD\u03BD\u03BF\u03C8\u03B7: {COUNT} \u03C4\u03BC\u03AE\u03BC\u03B1\u03C4\u03B1.");
19
+ injectString("et-EE", "Summary: {COUNT} slices.", "Kokkuv\xF5te: {COUNT} sektorit.");
20
+ injectString("bg-BG", "Summary: {COUNT} slices.", "\u041E\u0431\u043E\u0431\u0449\u0435\u043D\u0438\u0435: {COUNT} \u0441\u0435\u0433\u043C\u0435\u043D\u0442\u0430.");
21
+ injectString("da-DK", "Largest:", "St\xF8rst:");
22
+ injectString("en", "Largest:", "Largest:");
23
+ injectString("fi-FI", "Largest:", "Suurin:");
24
+ injectString("hu-HU", "Largest:", "Legnagyobb:");
25
+ injectString("ms", "Largest:", "Terbesar:");
26
+ injectString("nb-NO", "Largest:", "St\xF8rst:");
27
+ injectString("nl", "Largest:", "Grootste:");
28
+ injectString("pt-BR", "Largest:", "Maior:");
29
+ injectString("sk-SK", "Largest:", "Najv\xE4\u010D\u0161\xED:");
30
+ injectString("sv", "Largest:", "St\xF6rst:");
31
+ injectString("ar", "Largest:", "\u0627\u0644\u0623\u0643\u0628\u0631:");
32
+ injectString("lt-LT", "Largest:", "Did\u017Eiausias:");
33
+ injectString("lv-LV", "Largest:", "Liel\u0101kais:");
34
+ injectString("ka-GE", "Largest:", "\u10E7\u10D5\u10D4\u10DA\u10D0\u10D6\u10D4 \u10D3\u10D8\u10D3\u10D8:");
35
+ injectString("el-GR", "Largest:", "\u039C\u03B5\u03B3\u03B1\u03BB\u03CD\u03C4\u03B5\u03C1\u03BF:");
36
+ injectString("et-EE", "Largest:", "Suurim:");
37
+ injectString("bg-BG", "Largest:", "\u041D\u0430\u0439-\u0433\u043E\u043B\u044F\u043C:");
38
+ injectString("da-DK", "Smallest:", "Mindst:");
39
+ injectString("en", "Smallest:", "Smallest:");
40
+ injectString("fi-FI", "Smallest:", "Pienin:");
41
+ injectString("hu-HU", "Smallest:", "Legkisebb:");
42
+ injectString("ms", "Smallest:", "Terkecil:");
43
+ injectString("nb-NO", "Smallest:", "Minst:");
44
+ injectString("nl", "Smallest:", "Kleinste:");
45
+ injectString("pt-BR", "Smallest:", "Menor:");
46
+ injectString("sk-SK", "Smallest:", "Najmen\u0161\xED:");
47
+ injectString("sv", "Smallest:", "Minst:");
48
+ injectString("ar", "Smallest:", "\u0627\u0644\u0623\u0635\u063A\u0631:");
49
+ injectString("lt-LT", "Smallest:", "Ma\u017Eiausias:");
50
+ injectString("lv-LV", "Smallest:", "Maz\u0101kais:");
51
+ injectString("ka-GE", "Smallest:", "\u10E7\u10D5\u10D4\u10DA\u10D0\u10D6\u10D4 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0:");
52
+ injectString("el-GR", "Smallest:", "\u039C\u03B9\u03BA\u03C1\u03CC\u03C4\u03B5\u03C1\u03BF:");
53
+ injectString("et-EE", "Smallest:", "V\xE4ikseim:");
54
+ injectString("bg-BG", "Smallest:", "\u041D\u0430\u0439-\u043C\u0430\u043B\u044A\u043A:");
55
+ injectString("da-DK", "Rest: {COUNT} other slices account for {PCT}%.", "Resten: {COUNT} andre udsnit udg\xF8r {PCT}%.");
56
+ injectString("en", "Rest: {COUNT} other slices account for {PCT}%.", "Rest: {COUNT} other slices account for {PCT}%.");
57
+ injectString("fi-FI", "Rest: {COUNT} other slices account for {PCT}%.", "Muut: {COUNT} muuta segmentti\xE4 kattaa {PCT}%.");
58
+ injectString("hu-HU", "Rest: {COUNT} other slices account for {PCT}%.", "T\xF6bbi: {COUNT} egy\xE9b szelet teszi ki a {PCT}%-ot.");
59
+ injectString("ms", "Rest: {COUNT} other slices account for {PCT}%.", "Selebihnya: {COUNT} hirisan lain mewakili {PCT}%.");
60
+ injectString("nb-NO", "Rest: {COUNT} other slices account for {PCT}%.", "Resten: {COUNT} andre utsnitt utgj\xF8r {PCT}%.");
61
+ injectString("nl", "Rest: {COUNT} other slices account for {PCT}%.", "Rest: {COUNT} andere segmenten zijn goed voor {PCT}%.");
62
+ injectString("pt-BR", "Rest: {COUNT} other slices account for {PCT}%.", "Restante: {COUNT} outras fatias representam {PCT}%.");
63
+ injectString("sk-SK", "Rest: {COUNT} other slices account for {PCT}%.", "Zvy\u0161ok: {COUNT} \u010Fal\u0161\xEDch v\xFDsekov tvor\xED {PCT}%.");
64
+ injectString("sv", "Rest: {COUNT} other slices account for {PCT}%.", "\xD6vriga: {COUNT} andra segment svarar f\xF6r {PCT}%.");
65
+ injectString("ar", "Rest: {COUNT} other slices account for {PCT}%.", "\u0627\u0644\u0645\u062A\u0628\u0642\u064A: {COUNT} \u0634\u0631\u064A\u062D\u0629 \u0623\u062E\u0631\u0649 \u062A\u0645\u062B\u0651\u0644 {PCT}\u066A.");
66
+ injectString("lt-LT", "Rest: {COUNT} other slices account for {PCT}%.", "Kiti: {COUNT} segmentai sudaro {PCT}%.");
67
+ injectString("lv-LV", "Rest: {COUNT} other slices account for {PCT}%.", "P\u0101r\u0113jie: {COUNT} sektori veido {PCT}%.");
68
+ injectString("ka-GE", "Rest: {COUNT} other slices account for {PCT}%.", "\u10D3\u10D0\u10DC\u10D0\u10E0\u10E9\u10D4\u10DC\u10D8: {COUNT} \u10E1\u10D4\u10D2\u10DB\u10D4\u10DC\u10E2\u10D8 \u10E8\u10D4\u10D0\u10D3\u10D2\u10D4\u10DC\u10E1 {PCT}%-\u10E1.");
69
+ injectString("el-GR", "Rest: {COUNT} other slices account for {PCT}%.", "\u03A5\u03C0\u03CC\u03BB\u03BF\u03B9\u03C0\u03B1: {COUNT} \u03C4\u03BC\u03AE\u03BC\u03B1\u03C4\u03B1 \u03B1\u03BD\u03C4\u03B9\u03C3\u03C4\u03BF\u03B9\u03C7\u03BF\u03CD\u03BD \u03C3\u03C4\u03BF {PCT}%.");
70
+ injectString("et-EE", "Rest: {COUNT} other slices account for {PCT}%.", "\xDClej\xE4\xE4nud: {COUNT} sektorit moodustavad {PCT}%.");
71
+ injectString("bg-BG", "Rest: {COUNT} other slices account for {PCT}%.", "\u041E\u0441\u0442\u0430\u043D\u0430\u043B\u0438\u0442\u0435: {COUNT} \u0441\u0435\u0433\u043C\u0435\u043D\u0442\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u044F\u0432\u0430\u0442 {PCT}%.");
72
+ injectString("da-DK", "Details, {COUNT} items:", "Detaljer, {COUNT} elementer:");
73
+ injectString("en", "Details, {COUNT} items:", "Details, {COUNT} items:");
74
+ injectString("fi-FI", "Details, {COUNT} items:", "Tiedot, {COUNT} kohdetta:");
75
+ injectString("hu-HU", "Details, {COUNT} items:", "R\xE9szletek, {COUNT} elem:");
76
+ injectString("ms", "Details, {COUNT} items:", "Butiran, {COUNT} item:");
77
+ injectString("nb-NO", "Details, {COUNT} items:", "Detaljer, {COUNT} elementer:");
78
+ injectString("nl", "Details, {COUNT} items:", "Details, {COUNT} items:");
79
+ injectString("pt-BR", "Details, {COUNT} items:", "Detalhes, {COUNT} itens:");
80
+ injectString("sk-SK", "Details, {COUNT} items:", "Podrobnosti, {COUNT} polo\u017Eiek:");
81
+ injectString("sv", "Details, {COUNT} items:", "Detaljer, {COUNT} objekt:");
82
+ injectString("ar", "Details, {COUNT} items:", "\u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644\u060C {COUNT} \u0639\u0646\u0627\u0635\u0631:");
83
+ injectString("lt-LT", "Details, {COUNT} items:", "Detal\u0117s, {COUNT} elementai:");
84
+ injectString("lv-LV", "Details, {COUNT} items:", "Deta\u013Cas, {COUNT} vienumi:");
85
+ injectString("ka-GE", "Details, {COUNT} items:", "\u10D3\u10D4\u10E2\u10D0\u10DA\u10D4\u10D1\u10D8, {COUNT} \u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8:");
86
+ injectString("el-GR", "Details, {COUNT} items:", "\u039B\u03B5\u03C0\u03C4\u03BF\u03BC\u03AD\u03C1\u03B5\u03B9\u03B5\u03C2, {COUNT} \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1:");
87
+ injectString("et-EE", "Details, {COUNT} items:", "\xDCksikasjad, {COUNT} \xFCksust:");
88
+ injectString("bg-BG", "Details, {COUNT} items:", "\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438, {COUNT} \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0430:");
89
+ injectString("cs", "No data available", "Nejsou k\xA0dispozici \u017E\xE1dn\xE1 data");
90
+ injectString("da-DK", "No data available", "Ingen data tilg\xE6ngelige");
91
+ injectString("de", "No data available", "Keine Daten verf\xFCgbar");
92
+ injectString("en", "No data available", "No data available");
93
+ injectString("es", "No data available", "No hay datos disponibles");
94
+ injectString("fi-FI", "No data available", "Tietoja ei saatavilla");
95
+ injectString("fr", "No data available", "Aucune donn\xE9e disponible");
96
+ injectString("fr-FR", "No data available", "Aucune donn\xE9e disponible");
97
+ injectString("hu-HU", "No data available", "Nincsenek rendelkez\xE9sre \xE1ll\xF3 adatok");
98
+ injectString("id", "No data available", "Tidak ada data tersedia");
99
+ injectString("it", "No data available", "Nessun dato disponibile");
100
+ injectString("ja", "No data available", "\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093");
101
+ injectString("ko-KR", "No data available", "\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4");
102
+ injectString("ms", "No data available", "Tiada data tersedia");
103
+ injectString("nb-NO", "No data available", "Ingen data tilgjengelig");
104
+ injectString("nl", "No data available", "Geen gegevens beschikbaar");
105
+ injectString("pl", "No data available", "Brak dost\u0119pnych danych");
106
+ injectString("pt-BR", "No data available", "Nenhum dado dispon\xEDvel");
107
+ injectString("pt-PT", "No data available", "Sem dados dispon\xEDveis");
108
+ injectString("sk-SK", "No data available", "Nie s\xFA k dispoz\xEDcii \u017Eiadne \xFAdaje");
109
+ injectString("sv", "No data available", "Det finns inga tillg\xE4ngliga data");
110
+ injectString("th", "No data available", "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25");
111
+ injectString("tr", "No data available", "Mevcut veri yok");
112
+ injectString("zh-Hans", "No data available", "\u65E0\u53EF\u7528\u6570\u636E");
113
+ injectString("zh-TW", "No data available", "\u6C92\u6709\u53EF\u7528\u8CC7\u6599");
114
+ injectString("ro-RO", "No data available", "Nu exist\u0103 date disponibile");
115
+ injectString("ar", "No data available", "\u0644\u0627 \u062A\u0648\u0641\u0631 \u0628\u064A\u0627\u0646\u0627\u062A");
116
+ injectString("lt-LT", "No data available", "Duomen\u0173 n\u0117ra");
117
+ injectString("lv-LV", "No data available", "Nav pieejamu datu");
118
+ injectString("ka-GE", "No data available", "\u10DB\u10DD\u10DC\u10D0\u10EA\u10D4\u10DB\u10D4\u10D1\u10D8 \u10D0\u10E0 \u10D0\u10E0\u10D8\u10E1");
119
+ injectString("el-GR", "No data available", "\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B1 \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1");
120
+ injectString("et-EE", "No data available", "Andmed puuduvad");
121
+ injectString("bg-BG", "No data available", "\u041D\u044F\u043C\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u0434\u0430\u043D\u043D\u0438");
122
+ export const PIE_LARGE_DATASET_THRESHOLD = 6;
123
+ export const PIE_LARGEST_COUNT = 3;
124
+ export function formatPieSlice(label, value, total, decimalLength) {
125
+ const pct = Math.round(value / total * 100);
126
+ return `${label}: ${truncateDecimals(value, decimalLength)} (${pct}%)`;
127
+ }
128
+ export function generatePieSliceDetails(values, labels, total, decimalLength) {
129
+ return values.map((value, index) => {
130
+ var _a;
131
+ return formatPieSlice((_a = labels[index]) !== null && _a !== void 0 ? _a : String(index + 1), value, total, decimalLength);
132
+ });
133
+ }
134
+ export function generatePieSummaryLines(values, labels, total, decimalLength, details, translate) {
135
+ var _a;
136
+ const indexed = values.map((value, index) => ({
137
+ value,
138
+ index
139
+ }));
140
+ const sorted = [...indexed].sort((a, b) => b.value - a.value);
141
+ const largestItems = sorted.slice(0, PIE_LARGEST_COUNT);
142
+ const smallestItem = sorted[sorted.length - 1];
143
+ const restItems = sorted.slice(PIE_LARGEST_COUNT, sorted.length - 1);
144
+ const restTotal = restItems.reduce((sum, item) => sum + item.value, 0);
145
+ const restPct = Math.round(restTotal / total * 100);
146
+ const largestStr = largestItems.map(item => {
147
+ var _a;
148
+ return formatPieSlice((_a = labels[item.index]) !== null && _a !== void 0 ? _a : String(item.index + 1), item.value, total, decimalLength);
149
+ }).join(", ");
150
+ const smallestStr = formatPieSlice((_a = labels[smallestItem.index]) !== null && _a !== void 0 ? _a : String(smallestItem.index + 1), smallestItem.value, total, decimalLength);
151
+ return [translate("Summary: {COUNT} slices.").replace("{COUNT}", String(values.length)), `${translate("Largest:")} ${largestStr}.`, `${translate("Smallest:")} ${smallestStr}.`, translate("Rest: {COUNT} other slices account for {PCT}%.").replace("{COUNT}", String(restItems.length)).replace("{PCT}", String(restPct)), translate("Details, {COUNT} items:").replace("{COUNT}", String(values.length)), ...details];
152
+ }
153
+ export function generatePieNarrative(data, translate) {
154
+ var _a, _b, _c;
155
+ const values = (_b = (_a = data.datasets[0]) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : [];
156
+ const labels = (_c = data.labels) !== null && _c !== void 0 ? _c : [];
157
+ const total = values.reduce((sum, v) => sum + (typeof v === "number" ? v : 0), 0);
158
+ if (total === 0 || values.length === 0) {
159
+ return [translate("No data available")];
160
+ }
161
+ const decimalLength = calculateMinTruncationPrecision(values.filter(v => typeof v === "number"));
162
+ const details = generatePieSliceDetails(values, labels, total, decimalLength);
163
+ if (values.length <= PIE_LARGE_DATASET_THRESHOLD) {
164
+ return details;
165
+ }
166
+ return generatePieSummaryLines(values, labels, total, decimalLength, details, translate);
167
+ }
@@ -10,6 +10,7 @@ export interface IAccessibleChart {
10
10
  data: AccessibleChartData;
11
11
  type: AccessibleChartType;
12
12
  options?: ILineChartOptions | IBarChartOptions;
13
+ narrativeId?: string;
13
14
  }
14
15
  export interface IChartTrend {
15
16
  trendDirection: "increases" | "decreases" | "flat" | "complex" | "undefined";
@@ -1,4 +1,5 @@
1
1
  import { formatDate } from "../../utils/formatDate";
2
+ import { getYAxisTickCount } from "../utils/getYAxisTickCount";
2
3
  const getDefaultGridStyle = (isDark) => ({
3
4
  drawTicks: false,
4
5
  color: isDark ? "#C0CCD8" : "#4E677E"
@@ -40,18 +41,16 @@ export const getDefaultOptions = (yAxis, isTimedData, isDark, translate, isRtl =
40
41
  border: defaultGridBorderStyle
41
42
  }
42
43
  };
44
+ // When there is more than one Y-axis, force every axis to render the same number of tick
45
+ // increments so their horizontal grid lines line up (see getYAxisTickCount for details).
46
+ const yAxisTickCount = getYAxisTickCount(yAxis.length);
43
47
  for (let i = 0; i < yAxis.length; i++) {
44
48
  const yAxisId = yAxis[i].name;
45
49
  scales[yAxisId] = {
46
50
  title: {
47
51
  display: false
48
52
  },
49
- ticks: {
50
- color: textColor,
51
- padding: 10,
52
- source: "data",
53
- autoSkip: true
54
- },
53
+ ticks: Object.assign({ color: textColor, padding: 10, source: "data", autoSkip: yAxisTickCount === undefined }, (yAxisTickCount !== undefined && { count: yAxisTickCount })),
55
54
  beginAtZero: true,
56
55
  grid: i === 0 ? getDefaultGridStyle(isDark) : { display: false },
57
56
  border: defaultGridBorderStyle,
@@ -1,15 +1,13 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
1
+ import { injectString } from "../utils/localization/translationsDictionary";
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) t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
6
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
7
+ }
8
+ return t;
11
9
  };
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
11
  import { useCallback, useContext, useEffect, useId, useMemo } from "react";
14
12
  import { Bar } from "../react-chartjs/typedCharts";
15
13
  import { Chart as ChartJS, CategoryScale, LinearScale, BarController, BarElement } from "chart.js/auto";
@@ -36,43 +34,142 @@ import { ChartInsight } from "./chartInsight/chartInsight";
36
34
  import { userFormatContext } from "../utils/userFormat/userFormatContext";
37
35
  import { Summary } from "../summary/summary";
38
36
  import { AccessibleChart } from "./accessibleChart/accessibleChart";
37
+ injectString("cs", "Bar chart", "Sloupcov\xFD graf");
38
+ injectString("da-DK", "Bar chart", "S\xF8jlediagram");
39
+ injectString("de", "Bar chart", "Balkendiagramm");
40
+ injectString("en", "Bar chart", "Bar chart");
41
+ injectString("es", "Bar chart", "Gr\xE1fico de barras");
42
+ injectString("fi-FI", "Bar chart", "Pylv\xE4sdiagrammi");
43
+ injectString("fr", "Bar chart", "Graphique \xE0 barres");
44
+ injectString("fr-FR", "Bar chart", "Diagramme \xE0 barres");
45
+ injectString("hu-HU", "Bar chart", "Oszlopdiagram");
46
+ injectString("id", "Bar chart", "Bagan batang");
47
+ injectString("it", "Bar chart", "Grafico a barre");
48
+ injectString("ja", "Bar chart", "\u68D2\u30B0\u30E9\u30D5");
49
+ injectString("ko-KR", "Bar chart", "\uB9C9\uB300\uD615 \uCC28\uD2B8");
50
+ injectString("ms", "Bar chart", "Carta bar");
51
+ injectString("nb-NO", "Bar chart", "S\xF8ylediagram");
52
+ injectString("nl", "Bar chart", "Staafdiagram");
53
+ injectString("pl", "Bar chart", "Wykres s\u0142upkowy");
54
+ injectString("pt-BR", "Bar chart", "Gr\xE1fico de barras");
55
+ injectString("pt-PT", "Bar chart", "Gr\xE1fico de barras");
56
+ injectString("sk-SK", "Bar chart", "St\u013Apcov\xFD graf");
57
+ injectString("sv", "Bar chart", "Stapeldiagram");
58
+ injectString("th", "Bar chart", "\u0E41\u0E1C\u0E19\u0E20\u0E39\u0E21\u0E34\u0E41\u0E17\u0E48\u0E07");
59
+ injectString("tr", "Bar chart", "\xC7ubuk grafik");
60
+ injectString("zh-Hans", "Bar chart", "\u6761\u5F62\u56FE");
61
+ injectString("zh-TW", "Bar chart", "\u6A6B\u689D\u5716");
62
+ injectString("ro-RO", "Bar chart", "Grafic de bare");
63
+ injectString("ar", "Bar chart", "\u0645\u062E\u0637\u0637 \u0634\u0631\u064A\u0637\u064A");
64
+ injectString("lt-LT", "Bar chart", "Stulpelin\u0117 diagrama");
65
+ injectString("lv-LV", "Bar chart", "Joslu diagramma");
66
+ injectString("ka-GE", "Bar chart", "\u10D6\u10DD\u10DA\u10DD\u10D5\u10D0\u10DC\u10D8 \u10E1\u10E5\u10D4\u10DB\u10D0");
67
+ injectString("el-GR", "Bar chart", "\u0393\u03C1\u03AC\u03C6\u03B7\u03BC\u03B1 \u03C1\u03AC\u03B2\u03B4\u03C9\u03BD");
68
+ injectString("et-EE", "Bar chart", "Tulpdiagramm");
69
+ injectString("bg-BG", "Bar chart", "\u0421\u0442\u044A\u043B\u0431\u043E\u0432\u0438\u0434\u043D\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u0430");
39
70
  ChartJS.register(BarController, BarElement, CategoryScale, LinearScale);
40
- export const BarChart = (_a) => {
41
- var { data, options = {}, axis, insight, summary, legend, tooltip, plugins, className } = _a, rest = __rest(_a, ["data", "options", "axis", "insight", "summary", "legend", "tooltip", "plugins", "className"]);
42
- const { translate } = useLanguage();
43
- const isDrive = useDrive();
44
- const isMobile = useMobile();
45
- const isRtl = useIsRTL();
46
- const fontSize = useMemo(() => (isDrive ? (isMobile ? 14 : 16) : 12), [isDrive, isMobile]);
47
- const { dark } = useContext(themeContext);
48
- useEffect(() => {
49
- ChartJS.defaults.font = {
50
- family: "Roboto",
51
- size: fontSize
52
- };
53
- ChartJS.defaults.color = dark ? "#FFFFFF" : "#1F2833";
54
- }, [fontSize, dark]);
55
- const legendId = useId();
56
- const tooltipId = useId();
57
- const { toLocalDateTime } = useContext(userFormatContext);
58
- const isTimedData = useMemo(() => isDateRange(data, false), [data]);
59
- const isStacked = useMemo(() => { var _a, _b; return ((_b = (_a = options.scales) === null || _a === void 0 ? void 0 : _a.y) === null || _b === void 0 ? void 0 : _b.stacked) === true; }, [options]);
60
- const yAxisMeta = useMemo(() => getYAxisMeta(data, isStacked), [data, isStacked]);
61
- const defOptions = useMemo(() => getDefaultOptions(yAxisMeta, isTimedData, dark, translate, isRtl), [yAxisMeta, isTimedData, dark, translate, isRtl]);
62
- const chartOptions = deepMerge(defOptions, options);
63
- const { isHidden, toggleHidden } = useHidden();
64
- const chartData = useMemo(() => {
65
- const chData = convertDates(data, toLocalDateTime);
66
- chData.datasets = chData.datasets.map((ds, i) => getDefaultDatasetStyle(ds, i));
67
- chData.datasets = chData.datasets.map((ds, i) => (Object.assign(Object.assign({}, ds), { hidden: isHidden(i), order: isRtl ? chData.datasets.length - 1 - i : i })));
68
- return chData;
69
- }, [data, isHidden, toLocalDateTime, isRtl]);
70
- const chartTooltip = useMemo(() => TooltipPlugin(tooltipId, tooltip, "top", isHidden, dark), [tooltipId, tooltip, isHidden, dark]);
71
- const chartLegend = useMemo(() => legendPlugin(legendId, legend, isDrive, isHidden, toggleHidden), [isDrive, isHidden, legend, legendId, toggleHidden]);
72
- const chartPlugins = useMemo(() => [...(plugins || []), chartTooltip, chartLegend], [chartLegend, chartTooltip, plugins]);
73
- const { xLabels, yLabels } = useAxisLabels(axis, chartOptions);
74
- const intSummary = useSummary(summary, chartData);
75
- const isMainHidden = useMemo(() => isHidden(0), [isHidden]);
76
- const toggleMainData = useCallback(() => toggleHidden(0), [toggleHidden]);
77
- return (_jsxs("div", { className: classNames(["zen-chart", className || ""]), children: [insight ? _jsx(ChartInsight, Object.assign({}, insight)) : null, summary ? _jsx(Summary, Object.assign({ onToggle: toggleMainData, isEnabled: isMainHidden }, intSummary)) : null, (isDrive ? undefined : xLabels) || yLabels.length > 0 ? (_jsx(ChartAxis, { xLabel: isDrive ? undefined : xLabels, yLabels: yLabels, yAxisPosition: isRtl ? "left" : "right" })) : null, _jsx("div", { className: "zen-chart__chart", children: _jsx(Bar, Object.assign({ options: chartOptions, data: chartData, plugins: chartPlugins }, rest, { "aria-hidden": true })) }), _jsx("div", { className: "zen-chart__legend", id: legendId }), isDrive && xLabels ? _jsx("div", { className: "zen-chart__x-axis", children: xLabels }) : null, _jsx(AccessibleChart, { type: "bar", data: chartData, options: chartOptions })] }));
78
- };
71
+ export const BarChart = _a => {
72
+ var {
73
+ data,
74
+ options = {},
75
+ axis,
76
+ insight,
77
+ summary,
78
+ legend,
79
+ tooltip,
80
+ plugins,
81
+ className
82
+ } = _a,
83
+ rest = __rest(_a, ["data", "options", "axis", "insight", "summary", "legend", "tooltip", "plugins", "className"]);
84
+ const {
85
+ translate
86
+ } = useLanguage();
87
+ const isDrive = useDrive();
88
+ const isMobile = useMobile();
89
+ const isRtl = useIsRTL();
90
+ const fontSize = useMemo(() => isDrive ? isMobile ? 14 : 16 : 12, [isDrive, isMobile]);
91
+ const {
92
+ dark
93
+ } = useContext(themeContext);
94
+ useEffect(() => {
95
+ ChartJS.defaults.font = {
96
+ family: "Roboto",
97
+ size: fontSize
98
+ };
99
+ ChartJS.defaults.color = dark ? "#FFFFFF" : "#1F2833";
100
+ }, [fontSize, dark]);
101
+ const legendId = useId();
102
+ const tooltipId = useId();
103
+ const narrativeId = useId();
104
+ const {
105
+ toLocalDateTime
106
+ } = useContext(userFormatContext);
107
+ const isTimedData = useMemo(() => isDateRange(data, false), [data]);
108
+ const isStacked = useMemo(() => {
109
+ var _a, _b;
110
+ return ((_b = (_a = options.scales) === null || _a === void 0 ? void 0 : _a.y) === null || _b === void 0 ? void 0 : _b.stacked) === true;
111
+ }, [options]);
112
+ const yAxisMeta = useMemo(() => getYAxisMeta(data, isStacked), [data, isStacked]);
113
+ const defOptions = useMemo(() => getDefaultOptions(yAxisMeta, isTimedData, dark, translate, isRtl), [yAxisMeta, isTimedData, dark, translate, isRtl]);
114
+ const chartOptions = deepMerge(defOptions, options);
115
+ const {
116
+ isHidden,
117
+ toggleHidden
118
+ } = useHidden();
119
+ const chartData = useMemo(() => {
120
+ const chData = convertDates(data, toLocalDateTime);
121
+ chData.datasets = chData.datasets.map((ds, i) => getDefaultDatasetStyle(ds, i));
122
+ chData.datasets = chData.datasets.map((ds, i) => Object.assign(Object.assign({}, ds), {
123
+ hidden: isHidden(i),
124
+ order: isRtl ? chData.datasets.length - 1 - i : i
125
+ }));
126
+ return chData;
127
+ }, [data, isHidden, toLocalDateTime, isRtl]);
128
+ const chartTooltip = useMemo(() => TooltipPlugin(tooltipId, tooltip, "top", isHidden, dark), [tooltipId, tooltip, isHidden, dark]);
129
+ const chartLegend = useMemo(() => legendPlugin(legendId, legend, isDrive, isHidden, toggleHidden), [isDrive, isHidden, legend, legendId, toggleHidden]);
130
+ const chartPlugins = useMemo(() => [...(plugins || []), chartTooltip, chartLegend], [chartLegend, chartTooltip, plugins]);
131
+ const {
132
+ xLabels,
133
+ yLabels
134
+ } = useAxisLabels(axis, chartOptions);
135
+ const intSummary = useSummary(summary, chartData);
136
+ const isMainHidden = useMemo(() => isHidden(0), [isHidden]);
137
+ const toggleMainData = useCallback(() => toggleHidden(0), [toggleHidden]);
138
+ return _jsxs(_Fragment, {
139
+ children: [_jsxs("div", {
140
+ className: classNames(["zen-chart", className || ""]),
141
+ tabIndex: 0,
142
+ role: "figure",
143
+ "aria-label": translate("Bar chart"),
144
+ "aria-describedby": narrativeId,
145
+ children: [insight ? _jsx(ChartInsight, Object.assign({}, insight)) : null, summary ? _jsx(Summary, Object.assign({
146
+ onToggle: toggleMainData,
147
+ isEnabled: isMainHidden
148
+ }, intSummary)) : null, (isDrive ? undefined : xLabels) || yLabels.length > 0 ? _jsx(ChartAxis, {
149
+ xLabel: isDrive ? undefined : xLabels,
150
+ yLabels: yLabels,
151
+ yAxisPosition: isRtl ? "left" : "right"
152
+ }) : null, _jsx("div", {
153
+ className: "zen-chart__chart",
154
+ children: _jsx(Bar, Object.assign({
155
+ options: chartOptions,
156
+ data: chartData,
157
+ plugins: chartPlugins
158
+ }, rest, {
159
+ "aria-hidden": true
160
+ }))
161
+ }), _jsx("div", {
162
+ className: "zen-chart__legend",
163
+ id: legendId
164
+ }), isDrive && xLabels ? _jsx("div", {
165
+ className: "zen-chart__x-axis",
166
+ children: xLabels
167
+ }) : null]
168
+ }), _jsx(AccessibleChart, {
169
+ type: "bar",
170
+ data: chartData,
171
+ options: chartOptions,
172
+ narrativeId: narrativeId
173
+ })]
174
+ });
175
+ };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface IYAxisMeta {
3
2
  name: string;
4
3
  min: number;
@@ -1,4 +1,5 @@
1
1
  import { formatDate } from "../../utils/formatDate";
2
+ import { getYAxisTickCount } from "../utils/getYAxisTickCount";
2
3
  const defaultGridStyle = {
3
4
  drawTicks: false,
4
5
  color: "#C0CCD8"
@@ -94,18 +95,16 @@ export const getDefaultOptions = (yAxis, xAxis, isTimedData, ticks, isDark, tran
94
95
  border: defaultGridBorderStyle
95
96
  }
96
97
  };
98
+ // When there is more than one Y-axis, force every axis to render the same number of tick
99
+ // increments so their horizontal grid lines line up (see getYAxisTickCount for details).
100
+ const yAxisTickCount = getYAxisTickCount(yAxis.length);
97
101
  for (let i = 0; i < yAxis.length; i++) {
98
102
  const yAxisId = yAxis[i].name;
99
103
  scales[yAxisId] = {
100
104
  title: {
101
105
  display: false
102
106
  },
103
- ticks: {
104
- color: textColor,
105
- padding: 10,
106
- source: "data",
107
- autoSkip: true
108
- },
107
+ ticks: Object.assign({ color: textColor, padding: 10, source: "data", autoSkip: yAxisTickCount === undefined }, (yAxisTickCount !== undefined && { count: yAxisTickCount })),
109
108
  beginAtZero: true,
110
109
  grid: i === 0 ? defaultGridStyle : { display: false },
111
110
  border: defaultGridBorderStyle,
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const useChartTicks: () => {
3
2
  chartRef: import("react").RefObject<HTMLDivElement | null>;
4
3
  ticks: number;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ILineChartData } from "./interfaces";
3
2
  import { IBarChartData } from "../barChart/interfaces";
4
3
  import { IPieChartData } from "../pieChart/interfaces";
@@ -8,13 +7,13 @@ export declare const useSummary: (chartSummary: IChartSummary | false | undefine
8
7
  value: string | number | bigint | true | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined>;
9
8
  color: string | undefined;
10
9
  prefix?: import("react").ReactNode;
11
- unit?: string | undefined;
10
+ unit?: string;
12
11
  tooltip?: import("react").ReactNode;
13
- more?: import("react").ReactNode;
14
- isEnabled?: boolean | undefined;
15
- onToggle?: (() => void) | undefined;
12
+ more?: React.ReactNode;
13
+ isEnabled?: boolean;
14
+ onToggle?: () => void;
16
15
  description?: string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | null | undefined;
17
- label?: string | undefined;
18
- onClick?: (() => void) | undefined;
19
- isHidden?: boolean | undefined;
16
+ label?: string;
17
+ onClick?: () => void;
18
+ isHidden?: boolean;
20
19
  };