@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
package/README.md CHANGED
@@ -45,9 +45,35 @@ Now components are ready for usage.
45
45
 
46
46
  Zenith library provides components defined in Zenith Design System. It includes very basic blocks like colors, icons, font presets, atom components like buttons, checkboxes etc and high order components - header, table, filters bar etc. List of existing components can be found in [Storybook](https://developers.geotab.com/zenith-storybook/index.html).
47
47
 
48
-
49
48
  ## Change log
50
49
 
50
+ ### 3.15.0
51
+
52
+ - Add infinite scroll support for desktop `DataGrid`
53
+ - Add `tabIndex` support for keyboard and screen reader accessibility in `Chart`
54
+ - Add customization for `Toggle` component in toolbar
55
+ - Update `Nav` CSS styling
56
+ - Add `active` property support to `Footer.Action` component
57
+ - Add native accessible loading-status support (`isLoading` prop with live-region) to `Waiting`
58
+ - Add status dot and label support to `Tag` component
59
+ - Add "trend, neutral" icon to icon library
60
+ - Improve select-all behavior in search for `Dropdown`
61
+ - Add new icons (`IconAce`, `IconBreak`, `IconChevronStepper` and more)
62
+ - Add `ProgressIndicator` — new table-cell progress component
63
+ - Fix `DropdownRaw` single-select mode not auto-closing after leaf node selection
64
+ - Fix second Y-axis chart increments not aligning with first Y-axis
65
+ - Fix `EmptyState` component not adapting to dark mode in Drive app
66
+ - Fix `Chart` Y-axis showing negative floor for all-positive data
67
+ - Fix `Tabs` active tab underline gap with bottom divider
68
+ - Fix icons not adapting to dark mode in Drive app
69
+ - Fix `Chart` line tooltip showing interpolated value instead of actual data point
70
+ - Fix `TabBar` content not adapting to dark theme
71
+ - Fix dropdown height inconsistency
72
+ - Fix full selection mode bug in `Dropdown`
73
+ - Fix icon fill overriding parent colour in primary buttons and nav
74
+ - Fix `GroupsFilter` input padding
75
+ - Fix `Toast` progress bar border radius in RTL layouts
76
+
51
77
  ### 3.14.1
52
78
 
53
79
  - Add new languages support: Bulgarian, Greek, Estonian, Georgian, Lithuanian, and Latvian
@@ -69,7 +95,7 @@ Zenith library provides components defined in Zenith Design System. It includes
69
95
 
70
96
  ### 3.12.3
71
97
 
72
- - Fix `LineChart` crash when timed chart has no data
98
+ - Fix: line chart crash when timed chart has no data
73
99
 
74
100
  ### 3.12.1
75
101
 
@@ -27,13 +27,23 @@ var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? fun
27
27
  } : function (o, v) {
28
28
  o["default"] = v;
29
29
  });
30
- var __importStar = this && this.__importStar || function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
30
+ var __importStar = this && this.__importStar || function () {
31
+ var ownKeys = function (o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ }();
37
47
  Object.defineProperty(exports, "__esModule", {
38
48
  value: true
39
49
  });
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const Banner: import("react").FC<import("../banner/banner").IBanner> & {
3
- ErrorSummary: import("react").FC<import("../banner/bannerErrorSummary").IBannerErrorSummary>;
1
+ export declare const Banner: import("react").FC<import("..").IBanner> & {
2
+ ErrorSummary: typeof import("../banner/bannerErrorSummary").BannerErrorSummary;
4
3
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IAlertItem } from "../../feedbackContainer/types";
3
2
  export interface IUseAlertState {
4
3
  alerts: IAlertItem[];
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import "./banner.less";
3
2
  import { TBannerSize } from "./bannerUtils";
4
3
  import { IBannerAction } from "./banner";
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import "./banner.less";
3
2
  import { TBannerSize } from "./bannerUtils";
4
3
  import { IBannerAction } from "./banner";
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { IBannerErrorSummary } from "../bannerErrorSummary";
3
- export declare const isSummaryErrorElement: (child: React.ReactNode) => child is import("react").ReactElement<IBannerErrorSummary, string | import("react").JSXElementConstructor<any>>;
2
+ export declare const isSummaryErrorElement: (child: React.ReactNode) => child is React.ReactElement<IBannerErrorSummary>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getValidTime = exports.getValidDatesForEnd = exports.getValidDatesForStart = exports.isDifferentPeriod = exports.isValidationDateError = exports.isValidDate = exports.getSelectableYears = exports.isDisableDate = exports.isDisableYear = exports.getAvailablePeriod = exports.toDayStart = exports.setYear = exports.getSameDateOrTheLastForMonth = exports.addMonth = exports.getEndOfWeek = exports.getStartOfWeek = exports.getDayOfWeekOffset = exports.addMonths = exports.addDays = exports.addMinutes = exports.getNewEndDate = exports.getNewStartDate = exports.getCalendarMonthDates = exports.getEndOfMonth = exports.getStartOfMonth = exports.dayNames = void 0;
3
+ exports.getValidTime = exports.getValidDatesForEnd = exports.getValidDatesForStart = exports.isDifferentPeriod = exports.isValidationDateError = exports.isValidDate = exports.getSelectableYears = exports.isDisableDate = exports.isDisableYear = exports.getAvailablePeriod = exports.toDayStart = exports.setYear = exports.getSameDateOrTheLastForMonth = exports.addMonth = exports.getEndOfWeek = exports.getStartOfWeek = exports.getDayOfWeekOffset = exports.addDays = exports.addMinutes = exports.getNewEndDate = exports.getNewStartDate = exports.getCalendarMonthDates = exports.getEndOfMonth = exports.getStartOfMonth = exports.dayNames = void 0;
4
+ exports.addMonths = addMonths;
4
5
  exports.dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
5
6
  const getStartOfMonth = (d) => {
6
7
  const date = new Date(Date.parse(d));
@@ -90,7 +91,6 @@ function addMonths(date, num) {
90
91
  date.setDate(Math.min(day, Math.round((monthAdded.getTime() - date.getTime()) / 86400000)));
91
92
  return date;
92
93
  }
93
- exports.addMonths = addMonths;
94
94
  const getDayOfWeekOffset = (nowDate, firstDayOfWeek) => {
95
95
  const dayOfWeek = nowDate.getDay();
96
96
  const startDayOfWeek = firstDayOfWeek ? exports.dayNames.indexOf(firstDayOfWeek) : 0;
package/dist/card/card.js CHANGED
@@ -27,13 +27,23 @@ var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? fun
27
27
  } : function (o, v) {
28
28
  o["default"] = v;
29
29
  });
30
- var __importStar = this && this.__importStar || function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
30
+ var __importStar = this && this.__importStar || function () {
31
+ var ownKeys = function (o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ }();
37
47
  Object.defineProperty(exports, "__esModule", {
38
48
  value: true
39
49
  });
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IZenComponentProps } from "../../commonHelpers/zenComponent";
3
2
  export interface IContent extends Pick<IZenComponentProps, "children"> {
4
3
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSizeClass = void 0;
3
+ exports.getSizeClass = getSizeClass;
4
4
  function getSizeClass(className, size) {
5
5
  // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
6
6
  switch (size) {
@@ -22,4 +22,3 @@ function getSizeClass(className, size) {
22
22
  return "";
23
23
  }
24
24
  }
25
- exports.getSizeClass = getSizeClass;
@@ -5,5 +5,5 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const userFormatProvider_1 = require("../../utils/userFormat/userFormatProvider");
6
6
  const accessibleChartNarrative_1 = require("./accessibleChartNarrative");
7
7
  const accessibleChartTable_1 = require("./accessibleChartTable");
8
- const AccessibleChart = (props) => ((0, jsx_runtime_1.jsxs)(userFormatProvider_1.UserFormatProvider, { dateFormat: "d MMMM yyyy", children: [props.type !== "pie" && (0, jsx_runtime_1.jsx)(accessibleChartNarrative_1.AccessibleChartNarrative, Object.assign({}, props)), (0, jsx_runtime_1.jsx)(accessibleChartTable_1.AccessibleChartTable, Object.assign({}, props))] }));
8
+ const AccessibleChart = (props) => ((0, jsx_runtime_1.jsxs)(userFormatProvider_1.UserFormatProvider, { dateFormat: "d MMMM yyyy", children: [(0, jsx_runtime_1.jsx)(accessibleChartNarrative_1.AccessibleChartNarrative, Object.assign({}, props)), (0, jsx_runtime_1.jsx)(accessibleChartTable_1.AccessibleChartTable, Object.assign({}, props))] }));
9
9
  exports.AccessibleChart = AccessibleChart;
@@ -3,4 +3,4 @@ import { IBarChartOptions } from "../barChart/interfaces";
3
3
  import { ILineChartOptions, ILineChartPoint } from "../lineChart/interfaces";
4
4
  export declare function collectAllPoints(dataset: AccessibleChartDataset, dateFormatter: (d: Date | string, format?: string) => string, miniChartLabels?: string[], options?: ILineChartOptions | IBarChartOptions): IAccessiblePoint[];
5
5
  export declare function simplifyData(data: ILineChartPoint[]): ILineChartPoint[];
6
- export declare const AccessibleChartNarrative: ({ data, options }: IAccessibleChart) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const AccessibleChartNarrative: ({ data, type, options, narrativeId }: IAccessibleChart) => import("react/jsx-runtime").JSX.Element;
@@ -6,7 +6,9 @@ const {
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.AccessibleChartNarrative = exports.simplifyData = exports.collectAllPoints = void 0;
9
+ exports.AccessibleChartNarrative = void 0;
10
+ exports.collectAllPoints = collectAllPoints;
11
+ exports.simplifyData = simplifyData;
10
12
  const jsx_runtime_1 = require("react/jsx-runtime");
11
13
  const useLanguage_1 = require("../../utils/localization/useLanguage");
12
14
  const react_1 = require("react");
@@ -17,6 +19,7 @@ const getFormattedLabel_1 = require("../utils/getFormattedLabel");
17
19
  const truncateDecimals_1 = require("../../utils/truncateDecimals");
18
20
  const calculateMinTruncationPrecision_1 = require("../utils/calculateMinTruncationPrecision");
19
21
  const removeTrendDataFromDatasets_1 = require("../utils/removeTrendDataFromDatasets");
22
+ const generatePieNarrative_1 = require("./generatePieNarrative");
20
23
  injectString("cs", "Data", "Data");
21
24
  injectString("da-DK", "Data", "Data");
22
25
  injectString("de", "Data", "Daten");
@@ -485,7 +488,6 @@ function collectAllPoints(dataset, dateFormatter, miniChartLabels, options) {
485
488
  }
486
489
  return allPoints;
487
490
  }
488
- exports.collectAllPoints = collectAllPoints;
489
491
  function simplifyData(data) {
490
492
  // Need at least 3 points to find a peak or valley
491
493
  if (data.length < 3) {
@@ -647,7 +649,6 @@ function simplifyData(data) {
647
649
  }
648
650
  return finalResult;
649
651
  }
650
- exports.simplifyData = simplifyData;
651
652
  function getTrendDirectionBySlope(slope) {
652
653
  const slopeThreshold = 1e-10;
653
654
  if (slope > slopeThreshold) {
@@ -1035,7 +1036,9 @@ function detectDatasetTrend(dataset, translate, dateFormatter, miniChartLabels,
1035
1036
  }
1036
1037
  const AccessibleChartNarrative = ({
1037
1038
  data,
1038
- options
1039
+ type,
1040
+ options,
1041
+ narrativeId
1039
1042
  }) => {
1040
1043
  const {
1041
1044
  translate
@@ -1047,6 +1050,7 @@ const AccessibleChartNarrative = ({
1047
1050
  } = (0, react_1.useContext)(userFormatContext_1.userFormatContext);
1048
1051
  const dateFormatter = (0, react_1.useCallback)((d, format = dateFormat) => (0, formatDate_1.formatDate)(toLocalDateTime(d), format, translate), [toLocalDateTime, dateFormat, translate]);
1049
1052
  const filteredDatasets = (0, removeTrendDataFromDatasets_1.removeTrendDataFromDatasets)(data.datasets);
1053
+ const pieAnalysis = (0, react_1.useMemo)(() => type === "pie" ? (0, generatePieNarrative_1.generatePieNarrative)(data, translate) : null, [type, data, translate]);
1050
1054
  const datasetsWithAnalysis = (0, react_1.useMemo)(() => filteredDatasets.map(dataset => {
1051
1055
  const datasetObj = Object.assign({}, dataset);
1052
1056
  try {
@@ -1058,9 +1062,11 @@ const AccessibleChartNarrative = ({
1058
1062
  return errMsg;
1059
1063
  }
1060
1064
  }), [filteredDatasets, translate, dateFormatter, miniChartLabels, options]);
1065
+ const lines = pieAnalysis !== null && pieAnalysis !== void 0 ? pieAnalysis : datasetsWithAnalysis;
1061
1066
  return (0, jsx_runtime_1.jsx)("div", {
1067
+ id: narrativeId,
1062
1068
  className: "screen-reader-only",
1063
- children: datasetsWithAnalysis.map((analysis, index) => (0, jsx_runtime_1.jsx)("div", {
1069
+ children: lines.map((analysis, index) => (0, jsx_runtime_1.jsx)("div", {
1064
1070
  children: analysis
1065
1071
  }, index))
1066
1072
  });
@@ -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,179 @@
1
+ "use strict";
2
+
3
+ const {
4
+ injectString
5
+ } = require("../../utils/localization/translationsDictionary");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.PIE_LARGEST_COUNT = exports.PIE_LARGE_DATASET_THRESHOLD = void 0;
10
+ exports.formatPieSlice = formatPieSlice;
11
+ exports.generatePieSliceDetails = generatePieSliceDetails;
12
+ exports.generatePieSummaryLines = generatePieSummaryLines;
13
+ exports.generatePieNarrative = generatePieNarrative;
14
+ const calculateMinTruncationPrecision_1 = require("../utils/calculateMinTruncationPrecision");
15
+ const truncateDecimals_1 = require("../../utils/truncateDecimals");
16
+ injectString("da-DK", "Summary: {COUNT} slices.", "Oversigt: {COUNT} udsnit.");
17
+ injectString("en", "Summary: {COUNT} slices.", "Summary: {COUNT} slices.");
18
+ injectString("fi-FI", "Summary: {COUNT} slices.", "Yhteenveto: {COUNT} segmentti\xE4.");
19
+ injectString("hu-HU", "Summary: {COUNT} slices.", "\xD6sszefoglal\xE1s: {COUNT} szelet.");
20
+ injectString("ms", "Summary: {COUNT} slices.", "Ringkasan: {COUNT} hirisan.");
21
+ injectString("nb-NO", "Summary: {COUNT} slices.", "Sammendrag: {COUNT} utsnitt.");
22
+ injectString("nl", "Summary: {COUNT} slices.", "Samenvatting: {COUNT} segmenten.");
23
+ injectString("pt-BR", "Summary: {COUNT} slices.", "Resumo: {COUNT} fatias.");
24
+ injectString("sk-SK", "Summary: {COUNT} slices.", "S\xFAhrn: {COUNT} v\xFDsekov.");
25
+ injectString("sv", "Summary: {COUNT} slices.", "Sammanfattning: {COUNT} segment.");
26
+ injectString("ar", "Summary: {COUNT} slices.", "\u0627\u0644\u0645\u0644\u062E\u0635: {COUNT} \u0634\u0631\u064A\u062D\u0629.");
27
+ injectString("lt-LT", "Summary: {COUNT} slices.", "Santrauka: {COUNT} segmentai.");
28
+ injectString("lv-LV", "Summary: {COUNT} slices.", "Kopsavilkums: {COUNT} sektori.");
29
+ injectString("ka-GE", "Summary: {COUNT} slices.", "\u10E8\u10D4\u10EF\u10D0\u10DB\u10D4\u10D1\u10D0: {COUNT} \u10E1\u10D4\u10D2\u10DB\u10D4\u10DC\u10E2\u10D8.");
30
+ injectString("el-GR", "Summary: {COUNT} slices.", "\u03A3\u03CD\u03BD\u03BF\u03C8\u03B7: {COUNT} \u03C4\u03BC\u03AE\u03BC\u03B1\u03C4\u03B1.");
31
+ injectString("et-EE", "Summary: {COUNT} slices.", "Kokkuv\xF5te: {COUNT} sektorit.");
32
+ injectString("bg-BG", "Summary: {COUNT} slices.", "\u041E\u0431\u043E\u0431\u0449\u0435\u043D\u0438\u0435: {COUNT} \u0441\u0435\u0433\u043C\u0435\u043D\u0442\u0430.");
33
+ injectString("da-DK", "Largest:", "St\xF8rst:");
34
+ injectString("en", "Largest:", "Largest:");
35
+ injectString("fi-FI", "Largest:", "Suurin:");
36
+ injectString("hu-HU", "Largest:", "Legnagyobb:");
37
+ injectString("ms", "Largest:", "Terbesar:");
38
+ injectString("nb-NO", "Largest:", "St\xF8rst:");
39
+ injectString("nl", "Largest:", "Grootste:");
40
+ injectString("pt-BR", "Largest:", "Maior:");
41
+ injectString("sk-SK", "Largest:", "Najv\xE4\u010D\u0161\xED:");
42
+ injectString("sv", "Largest:", "St\xF6rst:");
43
+ injectString("ar", "Largest:", "\u0627\u0644\u0623\u0643\u0628\u0631:");
44
+ injectString("lt-LT", "Largest:", "Did\u017Eiausias:");
45
+ injectString("lv-LV", "Largest:", "Liel\u0101kais:");
46
+ injectString("ka-GE", "Largest:", "\u10E7\u10D5\u10D4\u10DA\u10D0\u10D6\u10D4 \u10D3\u10D8\u10D3\u10D8:");
47
+ injectString("el-GR", "Largest:", "\u039C\u03B5\u03B3\u03B1\u03BB\u03CD\u03C4\u03B5\u03C1\u03BF:");
48
+ injectString("et-EE", "Largest:", "Suurim:");
49
+ injectString("bg-BG", "Largest:", "\u041D\u0430\u0439-\u0433\u043E\u043B\u044F\u043C:");
50
+ injectString("da-DK", "Smallest:", "Mindst:");
51
+ injectString("en", "Smallest:", "Smallest:");
52
+ injectString("fi-FI", "Smallest:", "Pienin:");
53
+ injectString("hu-HU", "Smallest:", "Legkisebb:");
54
+ injectString("ms", "Smallest:", "Terkecil:");
55
+ injectString("nb-NO", "Smallest:", "Minst:");
56
+ injectString("nl", "Smallest:", "Kleinste:");
57
+ injectString("pt-BR", "Smallest:", "Menor:");
58
+ injectString("sk-SK", "Smallest:", "Najmen\u0161\xED:");
59
+ injectString("sv", "Smallest:", "Minst:");
60
+ injectString("ar", "Smallest:", "\u0627\u0644\u0623\u0635\u063A\u0631:");
61
+ injectString("lt-LT", "Smallest:", "Ma\u017Eiausias:");
62
+ injectString("lv-LV", "Smallest:", "Maz\u0101kais:");
63
+ injectString("ka-GE", "Smallest:", "\u10E7\u10D5\u10D4\u10DA\u10D0\u10D6\u10D4 \u10DE\u10D0\u10E2\u10D0\u10E0\u10D0:");
64
+ injectString("el-GR", "Smallest:", "\u039C\u03B9\u03BA\u03C1\u03CC\u03C4\u03B5\u03C1\u03BF:");
65
+ injectString("et-EE", "Smallest:", "V\xE4ikseim:");
66
+ injectString("bg-BG", "Smallest:", "\u041D\u0430\u0439-\u043C\u0430\u043B\u044A\u043A:");
67
+ injectString("da-DK", "Rest: {COUNT} other slices account for {PCT}%.", "Resten: {COUNT} andre udsnit udg\xF8r {PCT}%.");
68
+ injectString("en", "Rest: {COUNT} other slices account for {PCT}%.", "Rest: {COUNT} other slices account for {PCT}%.");
69
+ injectString("fi-FI", "Rest: {COUNT} other slices account for {PCT}%.", "Muut: {COUNT} muuta segmentti\xE4 kattaa {PCT}%.");
70
+ injectString("hu-HU", "Rest: {COUNT} other slices account for {PCT}%.", "T\xF6bbi: {COUNT} egy\xE9b szelet teszi ki a {PCT}%-ot.");
71
+ injectString("ms", "Rest: {COUNT} other slices account for {PCT}%.", "Selebihnya: {COUNT} hirisan lain mewakili {PCT}%.");
72
+ injectString("nb-NO", "Rest: {COUNT} other slices account for {PCT}%.", "Resten: {COUNT} andre utsnitt utgj\xF8r {PCT}%.");
73
+ injectString("nl", "Rest: {COUNT} other slices account for {PCT}%.", "Rest: {COUNT} andere segmenten zijn goed voor {PCT}%.");
74
+ injectString("pt-BR", "Rest: {COUNT} other slices account for {PCT}%.", "Restante: {COUNT} outras fatias representam {PCT}%.");
75
+ injectString("sk-SK", "Rest: {COUNT} other slices account for {PCT}%.", "Zvy\u0161ok: {COUNT} \u010Fal\u0161\xEDch v\xFDsekov tvor\xED {PCT}%.");
76
+ injectString("sv", "Rest: {COUNT} other slices account for {PCT}%.", "\xD6vriga: {COUNT} andra segment svarar f\xF6r {PCT}%.");
77
+ 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.");
78
+ injectString("lt-LT", "Rest: {COUNT} other slices account for {PCT}%.", "Kiti: {COUNT} segmentai sudaro {PCT}%.");
79
+ injectString("lv-LV", "Rest: {COUNT} other slices account for {PCT}%.", "P\u0101r\u0113jie: {COUNT} sektori veido {PCT}%.");
80
+ 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.");
81
+ 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}%.");
82
+ injectString("et-EE", "Rest: {COUNT} other slices account for {PCT}%.", "\xDClej\xE4\xE4nud: {COUNT} sektorit moodustavad {PCT}%.");
83
+ 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}%.");
84
+ injectString("da-DK", "Details, {COUNT} items:", "Detaljer, {COUNT} elementer:");
85
+ injectString("en", "Details, {COUNT} items:", "Details, {COUNT} items:");
86
+ injectString("fi-FI", "Details, {COUNT} items:", "Tiedot, {COUNT} kohdetta:");
87
+ injectString("hu-HU", "Details, {COUNT} items:", "R\xE9szletek, {COUNT} elem:");
88
+ injectString("ms", "Details, {COUNT} items:", "Butiran, {COUNT} item:");
89
+ injectString("nb-NO", "Details, {COUNT} items:", "Detaljer, {COUNT} elementer:");
90
+ injectString("nl", "Details, {COUNT} items:", "Details, {COUNT} items:");
91
+ injectString("pt-BR", "Details, {COUNT} items:", "Detalhes, {COUNT} itens:");
92
+ injectString("sk-SK", "Details, {COUNT} items:", "Podrobnosti, {COUNT} polo\u017Eiek:");
93
+ injectString("sv", "Details, {COUNT} items:", "Detaljer, {COUNT} objekt:");
94
+ injectString("ar", "Details, {COUNT} items:", "\u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644\u060C {COUNT} \u0639\u0646\u0627\u0635\u0631:");
95
+ injectString("lt-LT", "Details, {COUNT} items:", "Detal\u0117s, {COUNT} elementai:");
96
+ injectString("lv-LV", "Details, {COUNT} items:", "Deta\u013Cas, {COUNT} vienumi:");
97
+ injectString("ka-GE", "Details, {COUNT} items:", "\u10D3\u10D4\u10E2\u10D0\u10DA\u10D4\u10D1\u10D8, {COUNT} \u10D4\u10DA\u10D4\u10DB\u10D4\u10DC\u10E2\u10D8:");
98
+ 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:");
99
+ injectString("et-EE", "Details, {COUNT} items:", "\xDCksikasjad, {COUNT} \xFCksust:");
100
+ 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:");
101
+ injectString("cs", "No data available", "Nejsou k\xA0dispozici \u017E\xE1dn\xE1 data");
102
+ injectString("da-DK", "No data available", "Ingen data tilg\xE6ngelige");
103
+ injectString("de", "No data available", "Keine Daten verf\xFCgbar");
104
+ injectString("en", "No data available", "No data available");
105
+ injectString("es", "No data available", "No hay datos disponibles");
106
+ injectString("fi-FI", "No data available", "Tietoja ei saatavilla");
107
+ injectString("fr", "No data available", "Aucune donn\xE9e disponible");
108
+ injectString("fr-FR", "No data available", "Aucune donn\xE9e disponible");
109
+ injectString("hu-HU", "No data available", "Nincsenek rendelkez\xE9sre \xE1ll\xF3 adatok");
110
+ injectString("id", "No data available", "Tidak ada data tersedia");
111
+ injectString("it", "No data available", "Nessun dato disponibile");
112
+ injectString("ja", "No data available", "\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093");
113
+ injectString("ko-KR", "No data available", "\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4");
114
+ injectString("ms", "No data available", "Tiada data tersedia");
115
+ injectString("nb-NO", "No data available", "Ingen data tilgjengelig");
116
+ injectString("nl", "No data available", "Geen gegevens beschikbaar");
117
+ injectString("pl", "No data available", "Brak dost\u0119pnych danych");
118
+ injectString("pt-BR", "No data available", "Nenhum dado dispon\xEDvel");
119
+ injectString("pt-PT", "No data available", "Sem dados dispon\xEDveis");
120
+ injectString("sk-SK", "No data available", "Nie s\xFA k dispoz\xEDcii \u017Eiadne \xFAdaje");
121
+ injectString("sv", "No data available", "Det finns inga tillg\xE4ngliga data");
122
+ injectString("th", "No data available", "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25");
123
+ injectString("tr", "No data available", "Mevcut veri yok");
124
+ injectString("zh-Hans", "No data available", "\u65E0\u53EF\u7528\u6570\u636E");
125
+ injectString("zh-TW", "No data available", "\u6C92\u6709\u53EF\u7528\u8CC7\u6599");
126
+ injectString("ro-RO", "No data available", "Nu exist\u0103 date disponibile");
127
+ injectString("ar", "No data available", "\u0644\u0627 \u062A\u0648\u0641\u0631 \u0628\u064A\u0627\u0646\u0627\u062A");
128
+ injectString("lt-LT", "No data available", "Duomen\u0173 n\u0117ra");
129
+ injectString("lv-LV", "No data available", "Nav pieejamu datu");
130
+ injectString("ka-GE", "No data available", "\u10DB\u10DD\u10DC\u10D0\u10EA\u10D4\u10DB\u10D4\u10D1\u10D8 \u10D0\u10E0 \u10D0\u10E0\u10D8\u10E1");
131
+ 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");
132
+ injectString("et-EE", "No data available", "Andmed puuduvad");
133
+ injectString("bg-BG", "No data available", "\u041D\u044F\u043C\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u0434\u0430\u043D\u043D\u0438");
134
+ exports.PIE_LARGE_DATASET_THRESHOLD = 6;
135
+ exports.PIE_LARGEST_COUNT = 3;
136
+ function formatPieSlice(label, value, total, decimalLength) {
137
+ const pct = Math.round(value / total * 100);
138
+ return `${label}: ${(0, truncateDecimals_1.truncateDecimals)(value, decimalLength)} (${pct}%)`;
139
+ }
140
+ function generatePieSliceDetails(values, labels, total, decimalLength) {
141
+ return values.map((value, index) => {
142
+ var _a;
143
+ return formatPieSlice((_a = labels[index]) !== null && _a !== void 0 ? _a : String(index + 1), value, total, decimalLength);
144
+ });
145
+ }
146
+ function generatePieSummaryLines(values, labels, total, decimalLength, details, translate) {
147
+ var _a;
148
+ const indexed = values.map((value, index) => ({
149
+ value,
150
+ index
151
+ }));
152
+ const sorted = [...indexed].sort((a, b) => b.value - a.value);
153
+ const largestItems = sorted.slice(0, exports.PIE_LARGEST_COUNT);
154
+ const smallestItem = sorted[sorted.length - 1];
155
+ const restItems = sorted.slice(exports.PIE_LARGEST_COUNT, sorted.length - 1);
156
+ const restTotal = restItems.reduce((sum, item) => sum + item.value, 0);
157
+ const restPct = Math.round(restTotal / total * 100);
158
+ const largestStr = largestItems.map(item => {
159
+ var _a;
160
+ return formatPieSlice((_a = labels[item.index]) !== null && _a !== void 0 ? _a : String(item.index + 1), item.value, total, decimalLength);
161
+ }).join(", ");
162
+ const smallestStr = formatPieSlice((_a = labels[smallestItem.index]) !== null && _a !== void 0 ? _a : String(smallestItem.index + 1), smallestItem.value, total, decimalLength);
163
+ 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];
164
+ }
165
+ function generatePieNarrative(data, translate) {
166
+ var _a, _b, _c;
167
+ const values = (_b = (_a = data.datasets[0]) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : [];
168
+ const labels = (_c = data.labels) !== null && _c !== void 0 ? _c : [];
169
+ const total = values.reduce((sum, v) => sum + (typeof v === "number" ? v : 0), 0);
170
+ if (total === 0 || values.length === 0) {
171
+ return [translate("No data available")];
172
+ }
173
+ const decimalLength = (0, calculateMinTruncationPrecision_1.calculateMinTruncationPrecision)(values.filter(v => typeof v === "number"));
174
+ const details = generatePieSliceDetails(values, labels, total, decimalLength);
175
+ if (values.length <= exports.PIE_LARGE_DATASET_THRESHOLD) {
176
+ return details;
177
+ }
178
+ return generatePieSummaryLines(values, labels, total, decimalLength, details, translate);
179
+ }
@@ -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";
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDefaultOptions = void 0;
4
4
  const formatDate_1 = require("../../utils/formatDate");
5
+ const getYAxisTickCount_1 = require("../utils/getYAxisTickCount");
5
6
  const getDefaultGridStyle = (isDark) => ({
6
7
  drawTicks: false,
7
8
  color: isDark ? "#C0CCD8" : "#4E677E"
@@ -43,18 +44,16 @@ const getDefaultOptions = (yAxis, isTimedData, isDark, translate, isRtl = false)
43
44
  border: defaultGridBorderStyle
44
45
  }
45
46
  };
47
+ // When there is more than one Y-axis, force every axis to render the same number of tick
48
+ // increments so their horizontal grid lines line up (see getYAxisTickCount for details).
49
+ const yAxisTickCount = (0, getYAxisTickCount_1.getYAxisTickCount)(yAxis.length);
46
50
  for (let i = 0; i < yAxis.length; i++) {
47
51
  const yAxisId = yAxis[i].name;
48
52
  scales[yAxisId] = {
49
53
  title: {
50
54
  display: false
51
55
  },
52
- ticks: {
53
- color: textColor,
54
- padding: 10,
55
- source: "data",
56
- autoSkip: true
57
- },
56
+ ticks: Object.assign({ color: textColor, padding: 10, source: "data", autoSkip: yAxisTickCount === undefined }, (yAxisTickCount !== undefined && { count: yAxisTickCount })),
58
57
  beginAtZero: true,
59
58
  grid: i === 0 ? getDefaultGridStyle(isDark) : { display: false },
60
59
  border: defaultGridBorderStyle,