@fundar/data-chart-telling 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +8 -7
  3. package/dist/configuration/config.svelte.d.ts +1 -1
  4. package/dist/configuration/config.svelte.js +177 -100
  5. package/dist/configuration/themes/index.d.ts +5 -1428
  6. package/dist/index.d.ts +23 -14
  7. package/dist/index.js +20 -11
  8. package/dist/layout/base/BasePlotLayout.svelte +115 -50
  9. package/dist/layout/base/BasePlotLayout.svelte.d.ts +1 -38
  10. package/dist/layout/coordinates/CoordinatesLayout.svelte +42 -40
  11. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +0 -2
  12. package/dist/layout/coordinates/ProjectionZoom.svelte +48 -0
  13. package/dist/layout/coordinates/ProjectionZoom.svelte.d.ts +10 -0
  14. package/dist/layout/coordinates/ZoomedProjection.d.ts +11 -0
  15. package/dist/layout/coordinates/ZoomedProjection.js +24 -0
  16. package/dist/layout/coordinates/camera.svelte.js +11 -8
  17. package/dist/layout/coordinates/projections/argentina.js +1 -1
  18. package/dist/layout/coordinates/projections/fit.d.ts +1 -1
  19. package/dist/layout/coordinates/projections/fit.js +1 -1
  20. package/dist/layout/coordinates/zoom.svelte.d.ts +4 -5
  21. package/dist/layout/coordinates/zoom.svelte.js +4 -5
  22. package/dist/layout/facet/FacetLayout.svelte +1 -1
  23. package/dist/layout/facet/config.js +1 -1
  24. package/dist/layout/facet/scope.d.ts +40 -0
  25. package/dist/layout/facet/scope.js +104 -0
  26. package/dist/layout/figure/Figure.svelte +2 -0
  27. package/dist/layout/geometry/GeometryLayout.svelte +14 -9
  28. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +0 -3
  29. package/dist/layout/geometry/MarkerOffset.svelte +28 -0
  30. package/dist/layout/geometry/MarkerOffset.svelte.d.ts +13 -0
  31. package/dist/layout/grid/GridCell.svelte +6 -8
  32. package/dist/layout/legend/ContinuousSection.svelte +44 -9
  33. package/dist/layout/legend/DiscreteBadgeItem.svelte +2 -2
  34. package/dist/layout/legend/DiscreteSection.svelte +2 -2
  35. package/dist/layout/legend/DiscreteSymbolIcon.svelte +39 -15
  36. package/dist/layout/legend/LegendChannels.js +36 -12
  37. package/dist/layout/legend/LegendLayout.svelte +9 -1
  38. package/dist/layout/legend/LegendState.svelte.d.ts +4 -0
  39. package/dist/layout/legend/LegendState.svelte.js +23 -8
  40. package/dist/layout/legend/SizeSection.svelte +1 -1
  41. package/dist/layout/margins/PlotMargins.svelte.d.ts +2 -5
  42. package/dist/layout/margins/PlotMargins.svelte.js +35 -8
  43. package/dist/layout/plot/Plot.svelte +22 -2
  44. package/dist/layout/plot/Slice.d.ts +5 -1
  45. package/dist/layout/plot/Slice.js +14 -4
  46. package/dist/layout/scales/NiceTicks.d.ts +3 -0
  47. package/dist/layout/scales/NiceTicks.js +4 -0
  48. package/dist/layout/scales/ScalesLayout.svelte +93 -7
  49. package/dist/layout/scales/ScalesLayout.svelte.d.ts +5 -0
  50. package/dist/layout/scales/SveltePlotScale.d.ts +2 -2
  51. package/dist/layout/scales/SveltePlotScale.js +13 -6
  52. package/dist/layout/scales/TickLabels.d.ts +32 -0
  53. package/dist/layout/scales/TickLabels.js +55 -0
  54. package/dist/layout/styles/StylesLayout.svelte +2 -2
  55. package/dist/layout/styles/ValueLabels.d.ts +33 -5
  56. package/dist/layout/styles/ValueLabels.js +80 -21
  57. package/dist/layout/timeline/TimelineLayout.svelte +1 -1
  58. package/dist/layout/tooltip/Tooltip.svelte +4 -4
  59. package/dist/layout/tooltip/Tooltip.svelte.d.ts +4 -4
  60. package/dist/layout/tooltip/TooltipState.svelte.js +1 -1
  61. package/dist/markers/MarkerKinds.d.ts +5 -0
  62. package/dist/markers/MarkerKinds.js +1 -0
  63. package/dist/markers/area/AreaMarker.svelte +15 -63
  64. package/dist/markers/arrow/ArrowMarker.svelte +51 -9
  65. package/dist/markers/bar/BarMarker.svelte +8 -4
  66. package/dist/markers/bollinger/BollingerMarker.svelte +33 -18
  67. package/dist/markers/box/BoxMarker.svelte +40 -9
  68. package/dist/markers/delta/Delta.d.ts +6 -1
  69. package/dist/markers/delta/Delta.js +16 -1
  70. package/dist/markers/delta/DeltaMarker.svelte +9 -87
  71. package/dist/markers/delta/DeltaPoint.svelte +97 -0
  72. package/dist/markers/delta/DeltaPoint.svelte.d.ts +29 -0
  73. package/dist/markers/dot/DotMarker.svelte +24 -27
  74. package/dist/markers/image/ImageMarker.svelte +17 -12
  75. package/dist/markers/inset/InsetMarker.svelte +2 -2
  76. package/dist/markers/line/LineMarker.svelte +1 -0
  77. package/dist/markers/link/LinkMarker.svelte +174 -29
  78. package/dist/markers/regression/RegressionMarker.svelte +16 -33
  79. package/dist/markers/rule/RuleMarker.svelte +14 -5
  80. package/dist/markers/text/Declutter.d.ts +4 -0
  81. package/dist/markers/text/Declutter.js +26 -11
  82. package/dist/markers/text/TextMarker.svelte +91 -48
  83. package/dist/markers/tick/TickMarker.svelte +27 -25
  84. package/dist/markers/utils/MarkerChannels.d.ts +24 -0
  85. package/dist/markers/utils/MarkerChannels.js +42 -7
  86. package/dist/markers/utils/RowOffset.d.ts +23 -0
  87. package/dist/markers/utils/RowOffset.js +23 -0
  88. package/dist/markers/utils/RowOffsetMarks.svelte +30 -0
  89. package/dist/markers/utils/RowOffsetMarks.svelte.d.ts +33 -0
  90. package/dist/markers/utils/RowStroke.d.ts +31 -0
  91. package/dist/markers/utils/RowStroke.js +28 -0
  92. package/dist/markers/violin/ViolinMarker.svelte +75 -0
  93. package/dist/markers/violin/ViolinMarker.svelte.d.ts +7 -0
  94. package/dist/markers/violin/ViolinProfiles.d.ts +29 -0
  95. package/dist/markers/violin/ViolinProfiles.js +55 -0
  96. package/dist/markers/waffle/WaffleMarker.svelte +17 -37
  97. package/dist/phases/Pipeline.d.ts +5 -0
  98. package/dist/phases/Pipeline.js +5 -0
  99. package/dist/phases/data/DataPhase.js +3 -3
  100. package/dist/phases/data/PlotAxes.d.ts +10 -0
  101. package/dist/phases/data/PlotAxes.js +14 -1
  102. package/dist/phases/facet/FacetPanels.d.ts +1 -0
  103. package/dist/phases/facet/FacetPanels.js +1 -0
  104. package/dist/phases/facet/FacetPhase.d.ts +2 -1
  105. package/dist/phases/facet/FacetPhase.js +19 -4
  106. package/dist/phases/mapping/MappingPhase.js +1 -1
  107. package/dist/phases/markers/MarkersPhase.js +2 -1
  108. package/dist/phases/scales/CategoryOrder.d.ts +23 -0
  109. package/dist/phases/scales/CategoryOrder.js +73 -0
  110. package/dist/phases/scales/ScalesPhase.js +21 -7
  111. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +3 -2
  112. package/dist/phases/sharedScales/SharedScalesPhase.js +5 -2
  113. package/dist/phases/statistics/Statistics.d.ts +10 -6
  114. package/dist/phases/statistics/Statistics.js +20 -10
  115. package/dist/phases/statistics/StatisticsPhase.js +16 -3
  116. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +1 -1
  117. package/dist/phases/statistics/methods/BollingerStatistic.js +13 -11
  118. package/dist/phases/statistics/methods/BoxStatistic.d.ts +1 -1
  119. package/dist/phases/statistics/methods/BoxStatistic.js +14 -12
  120. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +1 -1
  121. package/dist/phases/statistics/methods/Density2dStatistic.js +13 -11
  122. package/dist/phases/statistics/methods/DensityStatistic.d.ts +1 -1
  123. package/dist/phases/statistics/methods/DensityStatistic.js +11 -9
  124. package/dist/phases/statistics/methods/DeviationStatistic.d.ts +8 -0
  125. package/dist/phases/statistics/methods/DeviationStatistic.js +111 -0
  126. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +1 -1
  127. package/dist/phases/statistics/methods/MovingAverageStatistic.js +11 -9
  128. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +1 -1
  129. package/dist/phases/statistics/methods/RegressionStatistic.js +16 -14
  130. package/dist/phases/transforms/ProcessedPositions.js +1 -1
  131. package/dist/phases/transforms/TransformsPhase.js +49 -3
  132. package/dist/phases/transforms/ValueSelection.d.ts +30 -0
  133. package/dist/phases/transforms/ValueSelection.js +53 -0
  134. package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte +5 -2
  135. package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte.d.ts +2 -2
  136. package/dist/plots/{heatmap → correlation/heatmap}/defaults.d.ts +2 -2
  137. package/dist/plots/{heatmap → correlation/heatmap}/defaults.js +5 -5
  138. package/dist/plots/{heatmap → correlation/heatmap}/markers.d.ts +4 -4
  139. package/dist/plots/{heatmap → correlation/heatmap}/markers.js +3 -3
  140. package/dist/plots/{scatter → correlation/scatter}/Plot.svelte +5 -2
  141. package/dist/plots/{scatter → correlation/scatter}/Plot.svelte.d.ts +2 -2
  142. package/dist/plots/{scatter → correlation/scatter}/defaults.d.ts +2 -2
  143. package/dist/plots/{scatter → correlation/scatter}/defaults.js +4 -4
  144. package/dist/plots/{scatter → correlation/scatter}/markers.d.ts +4 -4
  145. package/dist/plots/{scatter → correlation/scatter}/markers.js +3 -3
  146. package/dist/plots/{box → distribution/box}/BoxSummaries.d.ts +2 -2
  147. package/dist/plots/{box → distribution/box}/BoxSummaries.js +6 -6
  148. package/dist/plots/{box → distribution/box}/Plot.svelte +2 -2
  149. package/dist/plots/{box → distribution/box}/Plot.svelte.d.ts +2 -2
  150. package/dist/plots/{box → distribution/box}/defaults.d.ts +2 -2
  151. package/dist/plots/{box → distribution/box}/defaults.js +1 -1
  152. package/dist/plots/{box → distribution/box}/markers.d.ts +2 -2
  153. package/dist/plots/distribution/density/Plot.svelte +45 -0
  154. package/dist/plots/distribution/density/Plot.svelte.d.ts +26 -0
  155. package/dist/plots/distribution/density/defaults.d.ts +9 -0
  156. package/dist/plots/distribution/density/defaults.js +29 -0
  157. package/dist/plots/distribution/density/markers.d.ts +9 -0
  158. package/dist/plots/distribution/density/markers.js +42 -0
  159. package/dist/plots/{histogram → distribution/histogram}/Plot.svelte +2 -2
  160. package/dist/plots/{histogram → distribution/histogram}/Plot.svelte.d.ts +2 -2
  161. package/dist/plots/{histogram → distribution/histogram}/defaults.d.ts +2 -2
  162. package/dist/plots/{histogram → distribution/histogram}/defaults.js +3 -3
  163. package/dist/plots/{histogram → distribution/histogram}/markers.d.ts +3 -3
  164. package/dist/plots/{histogram → distribution/histogram}/markers.js +5 -5
  165. package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte +5 -2
  166. package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte.d.ts +2 -2
  167. package/dist/plots/{pyramid → distribution/pyramid}/defaults.d.ts +2 -2
  168. package/dist/plots/{pyramid → distribution/pyramid}/defaults.js +6 -6
  169. package/dist/plots/{pyramid → distribution/pyramid}/markers.d.ts +4 -4
  170. package/dist/plots/{pyramid → distribution/pyramid}/markers.js +6 -6
  171. package/dist/plots/distribution/violin/Plot.svelte +45 -0
  172. package/dist/plots/distribution/violin/Plot.svelte.d.ts +26 -0
  173. package/dist/plots/distribution/violin/defaults.d.ts +10 -0
  174. package/dist/plots/distribution/violin/defaults.js +58 -0
  175. package/dist/plots/distribution/violin/markers.d.ts +10 -0
  176. package/dist/plots/distribution/violin/markers.js +71 -0
  177. package/dist/plots/{area → evolution/area}/Plot.svelte +2 -2
  178. package/dist/plots/{area → evolution/area}/Plot.svelte.d.ts +2 -2
  179. package/dist/plots/{area → evolution/area}/defaults.d.ts +2 -2
  180. package/dist/plots/{area → evolution/area}/defaults.js +2 -0
  181. package/dist/plots/{area → evolution/area}/markers.d.ts +2 -2
  182. package/dist/plots/{area → evolution/area}/markers.js +1 -1
  183. package/dist/plots/{line → evolution/line}/Plot.svelte +2 -2
  184. package/dist/plots/{line → evolution/line}/Plot.svelte.d.ts +2 -2
  185. package/dist/plots/{line → evolution/line}/defaults.d.ts +2 -2
  186. package/dist/plots/{line → evolution/line}/defaults.js +2 -0
  187. package/dist/plots/{line → evolution/line}/markers.d.ts +11 -8
  188. package/dist/plots/{line → evolution/line}/markers.js +6 -4
  189. package/dist/plots/evolution/slope/Plot.svelte +42 -0
  190. package/dist/plots/evolution/slope/Plot.svelte.d.ts +26 -0
  191. package/dist/plots/evolution/slope/defaults.d.ts +8 -0
  192. package/dist/plots/evolution/slope/defaults.js +31 -0
  193. package/dist/plots/evolution/slope/markers.d.ts +16 -0
  194. package/dist/plots/evolution/slope/markers.js +79 -0
  195. package/dist/plots/evolution/sparkline/Plot.svelte +45 -0
  196. package/dist/plots/evolution/sparkline/Plot.svelte.d.ts +26 -0
  197. package/dist/plots/evolution/sparkline/defaults.d.ts +7 -0
  198. package/dist/plots/evolution/sparkline/defaults.js +23 -0
  199. package/dist/plots/evolution/sparkline/markers.d.ts +7 -0
  200. package/dist/plots/evolution/sparkline/markers.js +56 -0
  201. package/dist/plots/{geo → map/geo}/Core.svelte +11 -10
  202. package/dist/plots/{geo → map/geo}/Core.svelte.d.ts +1 -1
  203. package/dist/plots/map/geo/GeoFeatures.svelte.d.ts +9 -0
  204. package/dist/plots/map/geo/GeoFeatures.svelte.js +55 -0
  205. package/dist/plots/map/geo/GeoGeometry.d.ts +27 -0
  206. package/dist/plots/map/geo/GeoGeometry.js +142 -0
  207. package/dist/plots/map/geo/GeoSegments.d.ts +16 -0
  208. package/dist/plots/map/geo/GeoSegments.js +23 -0
  209. package/dist/plots/{geo → map/geo}/Plot.svelte +10 -10
  210. package/dist/plots/{geo → map/geo}/Plot.svelte.d.ts +2 -2
  211. package/dist/plots/{geo → map/geo}/defaults.d.ts +2 -2
  212. package/dist/plots/{geo → map/geo}/defaults.js +1 -1
  213. package/dist/plots/{geo → map/geo}/phases/data.d.ts +1 -1
  214. package/dist/plots/{geo → map/geo}/phases/data.js +7 -6
  215. package/dist/plots/{geo → map/geo}/phases/hover.d.ts +1 -1
  216. package/dist/plots/{geo → map/geo}/phases/hover.js +2 -2
  217. package/dist/plots/{geo → map/geo}/phases/markers.d.ts +1 -1
  218. package/dist/plots/{geo → map/geo}/phases/markers.js +6 -10
  219. package/dist/plots/{geo → map/geo}/phases/scales.d.ts +2 -2
  220. package/dist/plots/{geo → map/geo}/phases/scales.js +28 -12
  221. package/dist/plots/{geo → map/geo}/phases/tooltip.d.ts +1 -1
  222. package/dist/plots/map/geo/phases/tooltip.js +5 -0
  223. package/dist/plots/{geo → map/geo}/slices.d.ts +2 -2
  224. package/dist/plots/{geo → map/geo}/slices.js +2 -2
  225. package/dist/plots/{bar → ranking/bar}/Plot.svelte +2 -2
  226. package/dist/plots/{bar → ranking/bar}/Plot.svelte.d.ts +2 -2
  227. package/dist/plots/ranking/bar/defaults.d.ts +16 -0
  228. package/dist/plots/{bar → ranking/bar}/defaults.js +15 -9
  229. package/dist/plots/{bar → ranking/bar}/markers.d.ts +8 -8
  230. package/dist/plots/{bar → ranking/bar}/markers.js +8 -17
  231. package/dist/plots/ranking/bullet/Plot.svelte +42 -0
  232. package/dist/plots/ranking/bullet/Plot.svelte.d.ts +26 -0
  233. package/dist/plots/ranking/bullet/defaults.d.ts +8 -0
  234. package/dist/plots/ranking/bullet/defaults.js +24 -0
  235. package/dist/plots/ranking/bullet/markers.d.ts +10 -0
  236. package/dist/plots/ranking/bullet/markers.js +90 -0
  237. package/dist/plots/ranking/cleveland/ClevelandConnector.d.ts +48 -0
  238. package/dist/plots/ranking/cleveland/ClevelandConnector.js +140 -0
  239. package/dist/plots/ranking/cleveland/ClevelandMarkers.d.ts +33 -0
  240. package/dist/plots/ranking/cleveland/ClevelandMarkers.js +375 -0
  241. package/dist/plots/ranking/cleveland/ClevelandRanges.d.ts +31 -0
  242. package/dist/plots/ranking/cleveland/ClevelandRanges.js +116 -0
  243. package/dist/plots/ranking/cleveland/Plot.svelte +45 -0
  244. package/dist/plots/ranking/cleveland/Plot.svelte.d.ts +26 -0
  245. package/dist/plots/ranking/cleveland/defaults.d.ts +13 -0
  246. package/dist/plots/ranking/cleveland/defaults.js +66 -0
  247. package/dist/plots/ranking/dumbbell/Plot.svelte +45 -0
  248. package/dist/plots/ranking/dumbbell/Plot.svelte.d.ts +26 -0
  249. package/dist/plots/ranking/dumbbell/defaults.d.ts +9 -0
  250. package/dist/plots/ranking/dumbbell/defaults.js +19 -0
  251. package/dist/plots/ranking/forest/Plot.svelte +42 -0
  252. package/dist/plots/ranking/forest/Plot.svelte.d.ts +26 -0
  253. package/dist/plots/ranking/forest/defaults.d.ts +11 -0
  254. package/dist/plots/ranking/forest/defaults.js +20 -0
  255. package/dist/plots/ranking/lollipop/Plot.svelte +45 -0
  256. package/dist/plots/ranking/lollipop/Plot.svelte.d.ts +26 -0
  257. package/dist/plots/ranking/lollipop/defaults.d.ts +9 -0
  258. package/dist/plots/ranking/lollipop/defaults.js +18 -0
  259. package/dist/plots/utils/RowNumbers.d.ts +16 -0
  260. package/dist/plots/utils/RowNumbers.js +24 -0
  261. package/dist/plots/utils/gaps.js +1 -1
  262. package/dist/plots/utils/segments.d.ts +4 -1
  263. package/dist/plots/utils/segments.js +20 -7
  264. package/dist/types/configuration/styling.d.ts +284 -143
  265. package/dist/types/layout/coordinates.d.ts +5 -4
  266. package/dist/types/layout/facet.d.ts +18 -0
  267. package/dist/types/layout/legend.d.ts +23 -5
  268. package/dist/types/layout/plot.d.ts +46 -1
  269. package/dist/types/layout/scales.d.ts +39 -7
  270. package/dist/types/layout/statistics/deviation.d.ts +40 -0
  271. package/dist/types/layout/statistics/index.d.ts +7 -2
  272. package/dist/types/layout/styles/base.d.ts +18 -0
  273. package/dist/types/layout/styles/bullet.d.ts +25 -0
  274. package/dist/types/layout/styles/connector.d.ts +98 -0
  275. package/dist/types/layout/styles/curve.d.ts +11 -0
  276. package/dist/types/layout/styles/frame.d.ts +17 -0
  277. package/dist/types/layout/styles/gaps.d.ts +12 -0
  278. package/dist/types/layout/styles/geo.d.ts +55 -0
  279. package/dist/types/layout/styles/index.d.ts +8 -0
  280. package/dist/types/layout/styles/index.js +8 -0
  281. package/dist/types/layout/styles/values.d.ts +47 -0
  282. package/dist/types/layout/timeline.d.ts +5 -2
  283. package/dist/types/layout/tooltip.d.ts +6 -2
  284. package/dist/types/markers/axis/area.d.ts +2 -2
  285. package/dist/types/markers/axis/arrow.d.ts +3 -0
  286. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +2 -1
  287. package/dist/types/markers/axis/bar.d.ts +1 -1
  288. package/dist/types/markers/axis/box.d.ts +5 -0
  289. package/dist/types/markers/axis/delta.d.ts +15 -2
  290. package/dist/types/markers/axis/difference.d.ts +2 -2
  291. package/dist/types/markers/axis/image.d.ts +3 -2
  292. package/dist/types/markers/axis/line.d.ts +2 -0
  293. package/dist/types/markers/axis/rule.d.ts +18 -2
  294. package/dist/types/markers/axis/trail.d.ts +2 -3
  295. package/dist/types/markers/axis/violin.d.ts +25 -0
  296. package/dist/types/markers/basic/dot.d.ts +3 -2
  297. package/dist/types/markers/basic/text.d.ts +13 -3
  298. package/dist/types/markers/channels/commonMarkerConfig.d.ts +7 -3
  299. package/dist/types/markers/channels/commonMarkerConfigWithRowOffset.d.ts +13 -0
  300. package/dist/types/markers/common.d.ts +1 -1
  301. package/dist/types/markers/common.js +1 -0
  302. package/dist/types/markers/geo/link.d.ts +5 -1
  303. package/dist/types/phases/facet/phase.d.ts +4 -0
  304. package/dist/types/phases/index.d.ts +1 -1
  305. package/dist/types/phases/scales/phase.d.ts +5 -1
  306. package/dist/types/phases/state.d.ts +15 -2
  307. package/dist/types/phases/statistics/source.d.ts +3 -1
  308. package/dist/types/phases/transforms/phase.d.ts +22 -0
  309. package/dist/types/plots/{heatmap → correlation/heatmap}/props.d.ts +6 -6
  310. package/dist/types/plots/{heatmap → correlation/heatmap}/state.d.ts +4 -4
  311. package/dist/types/plots/{scatter → correlation/scatter}/props.d.ts +6 -6
  312. package/dist/types/plots/{scatter → correlation/scatter}/state.d.ts +2 -2
  313. package/dist/types/plots/{box → distribution/box}/props.d.ts +6 -6
  314. package/dist/types/plots/{box → distribution/box}/state.d.ts +3 -3
  315. package/dist/types/plots/distribution/density/props.d.ts +23 -0
  316. package/dist/types/plots/distribution/density/state.d.ts +6 -0
  317. package/dist/types/plots/{histogram → distribution/histogram}/props.d.ts +7 -7
  318. package/dist/types/plots/{histogram → distribution/histogram}/state.d.ts +2 -2
  319. package/dist/types/plots/distribution/histogram/state.js +1 -0
  320. package/dist/types/plots/{pyramid → distribution/pyramid}/props.d.ts +6 -6
  321. package/dist/types/plots/distribution/pyramid/props.js +1 -0
  322. package/dist/types/plots/{pyramid → distribution/pyramid}/state.d.ts +3 -3
  323. package/dist/types/plots/distribution/pyramid/state.js +1 -0
  324. package/dist/types/plots/distribution/violin/props.d.ts +23 -0
  325. package/dist/types/plots/distribution/violin/props.js +1 -0
  326. package/dist/types/plots/distribution/violin/state.d.ts +6 -0
  327. package/dist/types/plots/distribution/violin/state.js +1 -0
  328. package/dist/types/plots/{area → evolution/area}/props.d.ts +6 -6
  329. package/dist/types/plots/evolution/area/props.js +1 -0
  330. package/dist/types/plots/{area → evolution/area}/state.d.ts +2 -2
  331. package/dist/types/plots/evolution/area/state.js +1 -0
  332. package/dist/types/plots/evolution/line/props.d.ts +10 -0
  333. package/dist/types/plots/evolution/line/props.js +1 -0
  334. package/dist/types/plots/{line → evolution/line}/state.d.ts +3 -3
  335. package/dist/types/plots/evolution/line/state.js +1 -0
  336. package/dist/types/plots/evolution/slope/props.d.ts +5 -0
  337. package/dist/types/plots/evolution/slope/props.js +1 -0
  338. package/dist/types/plots/evolution/slope/state.d.ts +5 -0
  339. package/dist/types/plots/evolution/slope/state.js +1 -0
  340. package/dist/types/plots/evolution/sparkline/props.d.ts +5 -0
  341. package/dist/types/plots/evolution/sparkline/props.js +1 -0
  342. package/dist/types/plots/evolution/sparkline/state.d.ts +5 -0
  343. package/dist/types/plots/evolution/sparkline/state.js +1 -0
  344. package/dist/types/plots/{geo → map/geo}/props.d.ts +8 -8
  345. package/dist/types/plots/map/geo/props.js +1 -0
  346. package/dist/types/plots/{geo → map/geo}/state.d.ts +18 -11
  347. package/dist/types/plots/map/geo/state.js +1 -0
  348. package/dist/types/plots/props.d.ts +7 -4
  349. package/dist/types/plots/{bar → ranking/bar}/props.d.ts +6 -6
  350. package/dist/types/plots/ranking/bar/props.js +1 -0
  351. package/dist/types/plots/{bar → ranking/bar}/state.d.ts +2 -2
  352. package/dist/types/plots/ranking/bar/state.js +1 -0
  353. package/dist/types/plots/ranking/bullet/props.d.ts +22 -0
  354. package/dist/types/plots/ranking/bullet/props.js +1 -0
  355. package/dist/types/plots/ranking/bullet/state.d.ts +5 -0
  356. package/dist/types/plots/ranking/bullet/state.js +1 -0
  357. package/dist/types/plots/ranking/cleveland/props.d.ts +10 -0
  358. package/dist/types/plots/ranking/cleveland/props.js +1 -0
  359. package/dist/types/plots/ranking/cleveland/state.d.ts +49 -0
  360. package/dist/types/plots/ranking/cleveland/state.js +1 -0
  361. package/dist/types/plots/ranking/dumbbell/props.d.ts +10 -0
  362. package/dist/types/plots/ranking/dumbbell/props.js +1 -0
  363. package/dist/types/plots/ranking/dumbbell/state.d.ts +5 -0
  364. package/dist/types/plots/ranking/dumbbell/state.js +1 -0
  365. package/dist/types/plots/ranking/forest/props.d.ts +23 -0
  366. package/dist/types/plots/ranking/forest/props.js +1 -0
  367. package/dist/types/plots/ranking/forest/state.d.ts +5 -0
  368. package/dist/types/plots/ranking/forest/state.js +1 -0
  369. package/dist/types/plots/ranking/lollipop/props.d.ts +10 -0
  370. package/dist/types/plots/ranking/lollipop/props.js +1 -0
  371. package/dist/types/plots/ranking/lollipop/state.d.ts +5 -0
  372. package/dist/types/plots/ranking/lollipop/state.js +1 -0
  373. package/dist/types/plots/segments/common.d.ts +4 -1
  374. package/dist/types/plots/segments/config.d.ts +4 -2
  375. package/dist/utils/OpacityScale.d.ts +14 -0
  376. package/dist/utils/OpacityScale.js +43 -0
  377. package/dist/utils/{symbol.d.ts → SymbolPath.d.ts} +0 -12
  378. package/dist/utils/{symbol.js → SymbolPath.js} +0 -24
  379. package/dist/utils/SymbolScale.d.ts +18 -0
  380. package/dist/utils/SymbolScale.js +29 -0
  381. package/dist/utils/color/ColorRamp.d.ts +27 -0
  382. package/dist/utils/color/ColorRamp.js +120 -0
  383. package/dist/utils/color/CssColor.d.ts +19 -0
  384. package/dist/utils/color/CssColor.js +114 -0
  385. package/dist/utils/color/Palette.d.ts +21 -0
  386. package/dist/utils/color/Palette.js +52 -0
  387. package/dist/utils/color/index.d.ts +11 -3
  388. package/dist/utils/color/index.js +14 -3
  389. package/dist/utils/grouping.js +1 -1
  390. package/docs/architecture.md +1 -1
  391. package/docs/chrome.md +2 -2
  392. package/docs/composer.md +2 -2
  393. package/docs/concepts.md +1 -1
  394. package/docs/development.md +1 -1
  395. package/docs/facets.md +50 -3
  396. package/docs/getting-started.md +2 -2
  397. package/docs/legend.md +13 -11
  398. package/docs/markers.md +57 -27
  399. package/docs/plots/correlation/heatmap.md +26 -0
  400. package/docs/plots/correlation/scatter.md +35 -0
  401. package/docs/plots/distribution/box.md +28 -0
  402. package/docs/plots/distribution/density.md +26 -0
  403. package/docs/plots/distribution/histogram.md +33 -0
  404. package/docs/plots/distribution/pyramid.md +31 -0
  405. package/docs/plots/distribution/violin.md +35 -0
  406. package/docs/plots/evolution/area.md +32 -0
  407. package/docs/plots/evolution/line.md +93 -0
  408. package/docs/plots/evolution/slope.md +39 -0
  409. package/docs/plots/evolution/sparkline.md +34 -0
  410. package/docs/plots/ranking/bar.md +59 -0
  411. package/docs/plots/ranking/bullet.md +37 -0
  412. package/docs/plots/ranking/cleveland.md +54 -0
  413. package/docs/plots/ranking/dumbbell.md +39 -0
  414. package/docs/plots/ranking/forest.md +40 -0
  415. package/docs/plots/ranking/lollipop.md +39 -0
  416. package/docs/plots.md +22 -280
  417. package/docs/scales.md +30 -24
  418. package/docs/styles-and-segments.md +25 -21
  419. package/docs/theming.md +23 -20
  420. package/docs/timeline.md +3 -3
  421. package/docs/tooltip-and-hover.md +10 -10
  422. package/docs/transforms-and-statistics.md +13 -12
  423. package/examples/BarValues.svelte +1 -1
  424. package/examples/Box.svelte +1 -1
  425. package/examples/Bullet.svelte +17 -0
  426. package/examples/Chrome.svelte +1 -1
  427. package/examples/ChromeOrder.svelte +1 -1
  428. package/examples/Cleveland.svelte +15 -0
  429. package/examples/Composer.svelte +2 -2
  430. package/examples/CustomTooltip.svelte +1 -1
  431. package/examples/Density.svelte +7 -0
  432. package/examples/Dumbbell.svelte +16 -0
  433. package/examples/Facets.svelte +1 -1
  434. package/examples/FacetsCarousel.svelte +1 -1
  435. package/examples/FacetsRowsCols.svelte +1 -1
  436. package/examples/FacetsScoped.svelte +26 -0
  437. package/examples/FirstPlot.svelte +1 -1
  438. package/examples/Forest.svelte +17 -0
  439. package/examples/Gaps.svelte +2 -2
  440. package/examples/GroupedBars.svelte +1 -1
  441. package/examples/Heatmap.svelte +3 -3
  442. package/examples/HeatmapSegments.svelte +8 -8
  443. package/examples/Histogram.svelte +1 -1
  444. package/examples/HorizontalBars.svelte +1 -1
  445. package/examples/LegendSections.svelte +1 -1
  446. package/examples/LegendToggle.svelte +1 -1
  447. package/examples/LineByRegion.svelte +1 -1
  448. package/examples/LineDates.svelte +1 -1
  449. package/examples/LineStep.svelte +16 -0
  450. package/examples/LineStepSegment.svelte +18 -0
  451. package/examples/Lollipop.svelte +17 -0
  452. package/examples/Markers.svelte +1 -1
  453. package/examples/MovingAverage.svelte +1 -1
  454. package/examples/Pyramid.svelte +9 -2
  455. package/examples/Regression.svelte +2 -2
  456. package/examples/ResponsiveLine.svelte +1 -1
  457. package/examples/Scales.svelte +1 -1
  458. package/examples/Scatter.svelte +2 -2
  459. package/examples/SegmentHighlight.svelte +1 -1
  460. package/examples/Segments.svelte +1 -1
  461. package/examples/SegmentsBySeries.svelte +1 -1
  462. package/examples/Slope.svelte +17 -0
  463. package/examples/Sparkline.svelte +14 -0
  464. package/examples/StackedArea.svelte +1 -1
  465. package/examples/StackedBars.svelte +1 -1
  466. package/examples/TimelinePlayer.svelte +1 -1
  467. package/examples/TimelineRule.svelte +1 -1
  468. package/examples/Tooltip.svelte +1 -1
  469. package/examples/ValueLabels.svelte +1 -1
  470. package/examples/Violin.svelte +14 -0
  471. package/examples/datasets/argentina-chile-trends.ts +34 -0
  472. package/examples/datasets/commodity-prices.ts +48 -0
  473. package/examples/datasets/countries-over-time.ts +368 -0
  474. package/examples/datasets/daily-temperature.ts +121 -0
  475. package/examples/datasets/earthquakes.ts +977 -0
  476. package/examples/datasets/flight-routes.ts +29 -0
  477. package/examples/datasets/height-density.ts +37 -0
  478. package/examples/datasets/heights.ts +370 -0
  479. package/examples/datasets/index.ts +24 -0
  480. package/examples/datasets/inflation-by-region.ts +44 -0
  481. package/examples/datasets/inflation-ranges.ts +34 -0
  482. package/examples/datasets/iris-flower.ts +207 -0
  483. package/examples/datasets/life-expectancy.ts +95 -0
  484. package/examples/datasets/napoleons-march.ts +182 -0
  485. package/examples/datasets/penguins.ts +54 -0
  486. package/examples/datasets/population-by-age-with-gaps.ts +23 -0
  487. package/examples/datasets/population-by-age.ts +890 -0
  488. package/examples/datasets/province-population.ts +521 -0
  489. package/examples/datasets/stock-prices.ts +63 -0
  490. package/examples/datasets/weather-stations-over-time.ts +31 -0
  491. package/examples/datasets/weather-stations.ts +22 -0
  492. package/examples/datasets/wind-vectors.ts +30 -0
  493. package/examples/datasets/world-temperature.ts +400 -0
  494. package/llms-full.txt +27 -14
  495. package/llms.txt +33 -4
  496. package/package.json +10 -1
  497. package/dist/plots/bar/defaults.d.ts +0 -9
  498. package/dist/plots/geo/features.svelte.d.ts +0 -5
  499. package/dist/plots/geo/features.svelte.js +0 -44
  500. package/dist/plots/geo/phases/tooltip.js +0 -5
  501. package/dist/plots/utils/geoAccessors.d.ts +0 -72
  502. package/dist/plots/utils/geoAccessors.js +0 -220
  503. package/dist/plots/utils/geoSegments.d.ts +0 -29
  504. package/dist/plots/utils/geoSegments.js +0 -37
  505. package/dist/types/layout/styles.d.ts +0 -122
  506. package/dist/types/markers/axis/curveName.d.ts +0 -2
  507. package/dist/types/plots/line/props.d.ts +0 -10
  508. package/dist/utils/color/contrast.d.ts +0 -9
  509. package/dist/utils/color/contrast.js +0 -40
  510. package/dist/utils/color/cssColor.d.ts +0 -4
  511. package/dist/utils/color/cssColor.js +0 -77
  512. package/dist/utils/color/ramp.d.ts +0 -17
  513. package/dist/utils/color/ramp.js +0 -110
  514. package/dist/utils/opacity.d.ts +0 -9
  515. package/dist/utils/opacity.js +0 -38
  516. package/examples/data.ts +0 -324
  517. /package/dist/plots/{box → distribution/box}/markers.js +0 -0
  518. /package/dist/types/layout/{styles.js → statistics/deviation.js} +0 -0
  519. /package/dist/types/{markers/axis/curveName.js → layout/styles/base.js} +0 -0
  520. /package/dist/types/{plots/area/props.js → layout/styles/bullet.js} +0 -0
  521. /package/dist/types/{plots/area/state.js → layout/styles/connector.js} +0 -0
  522. /package/dist/types/{plots/bar/props.js → layout/styles/curve.js} +0 -0
  523. /package/dist/types/{plots/bar/state.js → layout/styles/frame.js} +0 -0
  524. /package/dist/types/{plots/box/props.js → layout/styles/gaps.js} +0 -0
  525. /package/dist/types/{plots/box/state.js → layout/styles/geo.js} +0 -0
  526. /package/dist/types/{plots/geo/props.js → layout/styles/values.js} +0 -0
  527. /package/dist/types/{plots/geo/state.js → markers/axis/violin.js} +0 -0
  528. /package/dist/types/{plots/heatmap/props.js → markers/channels/commonMarkerConfigWithRowOffset.js} +0 -0
  529. /package/dist/types/plots/{histogram → correlation/heatmap}/props.js +0 -0
  530. /package/dist/types/plots/{heatmap → correlation/heatmap}/state.js +0 -0
  531. /package/dist/types/plots/{line → correlation/scatter}/props.js +0 -0
  532. /package/dist/types/plots/{histogram → correlation/scatter}/state.js +0 -0
  533. /package/dist/types/plots/{pyramid → distribution/box}/props.js +0 -0
  534. /package/dist/types/plots/{line → distribution/box}/state.js +0 -0
  535. /package/dist/types/plots/{scatter → distribution/density}/props.js +0 -0
  536. /package/dist/types/plots/{pyramid → distribution/density}/state.js +0 -0
  537. /package/dist/types/plots/{scatter/state.js → distribution/histogram/props.js} +0 -0
  538. /package/dist/{plots/utils → utils}/accessors.d.ts +0 -0
  539. /package/dist/{plots/utils → utils}/accessors.js +0 -0
@@ -0,0 +1,890 @@
1
+ // ── Population of Buenos Aires City by age and sex ──────────────────────────
2
+ // National censuses 1991-2022, plus the city's official projections for 2023-2040.
3
+ // Share of the city's population, in percent.
4
+
5
+ // ── Pyramid: every year, by age group and sex ───────────────────────────────
6
+
7
+ export type AgeRow = { year: number; ageGroup: string; sex: 'Female' | 'Male'; share: number };
8
+
9
+ /** Every year, one row per age group and sex, for a pyramid. */
10
+ export const POPULATION_BY_AGE: AgeRow[] = [
11
+ { year: 1991, ageGroup: '0-4', sex: 'Female', share: 3 },
12
+ { year: 1991, ageGroup: '0-4', sex: 'Male', share: 3.1 },
13
+ { year: 1991, ageGroup: '5-9', sex: 'Female', share: 3.1 },
14
+ { year: 1991, ageGroup: '5-9', sex: 'Male', share: 3.1 },
15
+ { year: 1991, ageGroup: '10-14', sex: 'Female', share: 3.3 },
16
+ { year: 1991, ageGroup: '10-14', sex: 'Male', share: 3.4 },
17
+ { year: 1991, ageGroup: '15-19', sex: 'Female', share: 3.7 },
18
+ { year: 1991, ageGroup: '15-19', sex: 'Male', share: 3.5 },
19
+ { year: 1991, ageGroup: '20-24', sex: 'Female', share: 3.8 },
20
+ { year: 1991, ageGroup: '20-24', sex: 'Male', share: 3.5 },
21
+ { year: 1991, ageGroup: '25-29', sex: 'Female', share: 3.7 },
22
+ { year: 1991, ageGroup: '25-29', sex: 'Male', share: 3.5 },
23
+ { year: 1991, ageGroup: '30-34', sex: 'Female', share: 3.6 },
24
+ { year: 1991, ageGroup: '30-34', sex: 'Male', share: 3.4 },
25
+ { year: 1991, ageGroup: '35-39', sex: 'Female', share: 3.5 },
26
+ { year: 1991, ageGroup: '35-39', sex: 'Male', share: 3.1 },
27
+ { year: 1991, ageGroup: '40-44', sex: 'Female', share: 3.5 },
28
+ { year: 1991, ageGroup: '40-44', sex: 'Male', share: 3 },
29
+ { year: 1991, ageGroup: '45-49', sex: 'Female', share: 3.4 },
30
+ { year: 1991, ageGroup: '45-49', sex: 'Male', share: 2.7 },
31
+ { year: 1991, ageGroup: '50-54', sex: 'Female', share: 3 },
32
+ { year: 1991, ageGroup: '50-54', sex: 'Male', share: 2.4 },
33
+ { year: 1991, ageGroup: '55-59', sex: 'Female', share: 3.1 },
34
+ { year: 1991, ageGroup: '55-59', sex: 'Male', share: 2.4 },
35
+ { year: 1991, ageGroup: '60-64', sex: 'Female', share: 3.4 },
36
+ { year: 1991, ageGroup: '60-64', sex: 'Male', share: 2.4 },
37
+ { year: 1991, ageGroup: '65-69', sex: 'Female', share: 3.2 },
38
+ { year: 1991, ageGroup: '65-69', sex: 'Male', share: 2.2 },
39
+ { year: 1991, ageGroup: '70-74', sex: 'Female', share: 2.5 },
40
+ { year: 1991, ageGroup: '70-74', sex: 'Male', share: 1.5 },
41
+ { year: 1991, ageGroup: '75-79', sex: 'Female', share: 2.2 },
42
+ { year: 1991, ageGroup: '75-79', sex: 'Male', share: 1.2 },
43
+ { year: 1991, ageGroup: '80-84', sex: 'Female', share: 1.6 },
44
+ { year: 1991, ageGroup: '80-84', sex: 'Male', share: 0.7 },
45
+ { year: 1991, ageGroup: '85+', sex: 'Female', share: 1 },
46
+ { year: 1991, ageGroup: '85+', sex: 'Male', share: 0.4 },
47
+ { year: 2001, ageGroup: '0-4', sex: 'Female', share: 2.8 },
48
+ { year: 2001, ageGroup: '0-4', sex: 'Male', share: 2.9 },
49
+ { year: 2001, ageGroup: '5-9', sex: 'Female', share: 2.6 },
50
+ { year: 2001, ageGroup: '5-9', sex: 'Male', share: 2.7 },
51
+ { year: 2001, ageGroup: '10-14', sex: 'Female', share: 2.9 },
52
+ { year: 2001, ageGroup: '10-14', sex: 'Male', share: 3 },
53
+ { year: 2001, ageGroup: '15-19', sex: 'Female', share: 3.2 },
54
+ { year: 2001, ageGroup: '15-19', sex: 'Male', share: 3.2 },
55
+ { year: 2001, ageGroup: '20-24', sex: 'Female', share: 4.3 },
56
+ { year: 2001, ageGroup: '20-24', sex: 'Male', share: 4.1 },
57
+ { year: 2001, ageGroup: '25-29', sex: 'Female', share: 4.3 },
58
+ { year: 2001, ageGroup: '25-29', sex: 'Male', share: 4.1 },
59
+ { year: 2001, ageGroup: '30-34', sex: 'Female', share: 3.7 },
60
+ { year: 2001, ageGroup: '30-34', sex: 'Male', share: 3.5 },
61
+ { year: 2001, ageGroup: '35-39', sex: 'Female', share: 3.4 },
62
+ { year: 2001, ageGroup: '35-39', sex: 'Male', share: 3 },
63
+ { year: 2001, ageGroup: '40-44', sex: 'Female', share: 3.4 },
64
+ { year: 2001, ageGroup: '40-44', sex: 'Male', share: 2.9 },
65
+ { year: 2001, ageGroup: '45-49', sex: 'Female', share: 3.4 },
66
+ { year: 2001, ageGroup: '45-49', sex: 'Male', share: 2.7 },
67
+ { year: 2001, ageGroup: '50-54', sex: 'Female', share: 3.4 },
68
+ { year: 2001, ageGroup: '50-54', sex: 'Male', share: 2.7 },
69
+ { year: 2001, ageGroup: '55-59', sex: 'Female', share: 3.1 },
70
+ { year: 2001, ageGroup: '55-59', sex: 'Male', share: 2.4 },
71
+ { year: 2001, ageGroup: '60-64', sex: 'Female', share: 2.7 },
72
+ { year: 2001, ageGroup: '60-64', sex: 'Male', share: 1.9 },
73
+ { year: 2001, ageGroup: '65-69', sex: 'Female', share: 2.6 },
74
+ { year: 2001, ageGroup: '65-69', sex: 'Male', share: 1.8 },
75
+ { year: 2001, ageGroup: '70-74', sex: 'Female', share: 2.8 },
76
+ { year: 2001, ageGroup: '70-74', sex: 'Male', share: 1.7 },
77
+ { year: 2001, ageGroup: '75-79', sex: 'Female', share: 2.4 },
78
+ { year: 2001, ageGroup: '75-79', sex: 'Male', share: 1.4 },
79
+ { year: 2001, ageGroup: '80-84', sex: 'Female', share: 1.7 },
80
+ { year: 2001, ageGroup: '80-84', sex: 'Male', share: 0.8 },
81
+ { year: 2001, ageGroup: '85+', sex: 'Female', share: 1.5 },
82
+ { year: 2001, ageGroup: '85+', sex: 'Male', share: 0.5 },
83
+ { year: 2010, ageGroup: '0-4', sex: 'Female', share: 2.8 },
84
+ { year: 2010, ageGroup: '0-4', sex: 'Male', share: 2.9 },
85
+ { year: 2010, ageGroup: '5-9', sex: 'Female', share: 2.7 },
86
+ { year: 2010, ageGroup: '5-9', sex: 'Male', share: 2.8 },
87
+ { year: 2010, ageGroup: '10-14', sex: 'Female', share: 2.6 },
88
+ { year: 2010, ageGroup: '10-14', sex: 'Male', share: 2.6 },
89
+ { year: 2010, ageGroup: '15-19', sex: 'Female', share: 3 },
90
+ { year: 2010, ageGroup: '15-19', sex: 'Male', share: 2.9 },
91
+ { year: 2010, ageGroup: '20-24', sex: 'Female', share: 4.1 },
92
+ { year: 2010, ageGroup: '20-24', sex: 'Male', share: 3.9 },
93
+ { year: 2010, ageGroup: '25-29', sex: 'Female', share: 4.4 },
94
+ { year: 2010, ageGroup: '25-29', sex: 'Male', share: 4.1 },
95
+ { year: 2010, ageGroup: '30-34', sex: 'Female', share: 4.4 },
96
+ { year: 2010, ageGroup: '30-34', sex: 'Male', share: 4.1 },
97
+ { year: 2010, ageGroup: '35-39', sex: 'Female', share: 3.9 },
98
+ { year: 2010, ageGroup: '35-39', sex: 'Male', share: 3.5 },
99
+ { year: 2010, ageGroup: '40-44', sex: 'Female', share: 3.3 },
100
+ { year: 2010, ageGroup: '40-44', sex: 'Male', share: 3 },
101
+ { year: 2010, ageGroup: '45-49', sex: 'Female', share: 3.2 },
102
+ { year: 2010, ageGroup: '45-49', sex: 'Male', share: 2.8 },
103
+ { year: 2010, ageGroup: '50-54', sex: 'Female', share: 3.2 },
104
+ { year: 2010, ageGroup: '50-54', sex: 'Male', share: 2.7 },
105
+ { year: 2010, ageGroup: '55-59', sex: 'Female', share: 3.2 },
106
+ { year: 2010, ageGroup: '55-59', sex: 'Male', share: 2.5 },
107
+ { year: 2010, ageGroup: '60-64', sex: 'Female', share: 3 },
108
+ { year: 2010, ageGroup: '60-64', sex: 'Male', share: 2.3 },
109
+ { year: 2010, ageGroup: '65-69', sex: 'Female', share: 2.6 },
110
+ { year: 2010, ageGroup: '65-69', sex: 'Male', share: 1.8 },
111
+ { year: 2010, ageGroup: '70-74', sex: 'Female', share: 2.2 },
112
+ { year: 2010, ageGroup: '70-74', sex: 'Male', share: 1.5 },
113
+ { year: 2010, ageGroup: '75-79', sex: 'Female', share: 2 },
114
+ { year: 2010, ageGroup: '75-79', sex: 'Male', share: 1.2 },
115
+ { year: 2010, ageGroup: '80-84', sex: 'Female', share: 1.9 },
116
+ { year: 2010, ageGroup: '80-84', sex: 'Male', share: 0.8 },
117
+ { year: 2010, ageGroup: '85+', sex: 'Female', share: 1.7 },
118
+ { year: 2010, ageGroup: '85+', sex: 'Male', share: 0.6 },
119
+ { year: 2022, ageGroup: '0-4', sex: 'Female', share: 2.3 },
120
+ { year: 2022, ageGroup: '0-4', sex: 'Male', share: 2.4 },
121
+ { year: 2022, ageGroup: '5-9', sex: 'Female', share: 3.1 },
122
+ { year: 2022, ageGroup: '5-9', sex: 'Male', share: 3.2 },
123
+ { year: 2022, ageGroup: '10-14', sex: 'Female', share: 3.1 },
124
+ { year: 2022, ageGroup: '10-14', sex: 'Male', share: 3.2 },
125
+ { year: 2022, ageGroup: '15-19', sex: 'Female', share: 3 },
126
+ { year: 2022, ageGroup: '15-19', sex: 'Male', share: 3.1 },
127
+ { year: 2022, ageGroup: '20-24', sex: 'Female', share: 3.5 },
128
+ { year: 2022, ageGroup: '20-24', sex: 'Male', share: 3.3 },
129
+ { year: 2022, ageGroup: '25-29', sex: 'Female', share: 4 },
130
+ { year: 2022, ageGroup: '25-29', sex: 'Male', share: 3.7 },
131
+ { year: 2022, ageGroup: '30-34', sex: 'Female', share: 3.8 },
132
+ { year: 2022, ageGroup: '30-34', sex: 'Male', share: 3.6 },
133
+ { year: 2022, ageGroup: '35-39', sex: 'Female', share: 3.7 },
134
+ { year: 2022, ageGroup: '35-39', sex: 'Male', share: 3.5 },
135
+ { year: 2022, ageGroup: '40-44', sex: 'Female', share: 3.4 },
136
+ { year: 2022, ageGroup: '40-44', sex: 'Male', share: 3.1 },
137
+ { year: 2022, ageGroup: '45-49', sex: 'Female', share: 3.3 },
138
+ { year: 2022, ageGroup: '45-49', sex: 'Male', share: 2.8 },
139
+ { year: 2022, ageGroup: '50-54', sex: 'Female', share: 3.1 },
140
+ { year: 2022, ageGroup: '50-54', sex: 'Male', share: 2.5 },
141
+ { year: 2022, ageGroup: '55-59', sex: 'Female', share: 2.9 },
142
+ { year: 2022, ageGroup: '55-59', sex: 'Male', share: 2.4 },
143
+ { year: 2022, ageGroup: '60-64', sex: 'Female', share: 2.8 },
144
+ { year: 2022, ageGroup: '60-64', sex: 'Male', share: 2.2 },
145
+ { year: 2022, ageGroup: '65-69', sex: 'Female', share: 2.6 },
146
+ { year: 2022, ageGroup: '65-69', sex: 'Male', share: 2 },
147
+ { year: 2022, ageGroup: '70-74', sex: 'Female', share: 2.6 },
148
+ { year: 2022, ageGroup: '70-74', sex: 'Male', share: 1.8 },
149
+ { year: 2022, ageGroup: '75-79', sex: 'Female', share: 2.3 },
150
+ { year: 2022, ageGroup: '75-79', sex: 'Male', share: 1.4 },
151
+ { year: 2022, ageGroup: '80-84', sex: 'Female', share: 1.8 },
152
+ { year: 2022, ageGroup: '80-84', sex: 'Male', share: 0.9 },
153
+ { year: 2022, ageGroup: '85+', sex: 'Female', share: 2.5 },
154
+ { year: 2022, ageGroup: '85+', sex: 'Male', share: 0.9 },
155
+ { year: 2023, ageGroup: '0-4', sex: 'Female', share: 2.2 },
156
+ { year: 2023, ageGroup: '0-4', sex: 'Male', share: 2.3 },
157
+ { year: 2023, ageGroup: '5-9', sex: 'Female', share: 3 },
158
+ { year: 2023, ageGroup: '5-9', sex: 'Male', share: 3.1 },
159
+ { year: 2023, ageGroup: '10-14', sex: 'Female', share: 3.2 },
160
+ { year: 2023, ageGroup: '10-14', sex: 'Male', share: 3.3 },
161
+ { year: 2023, ageGroup: '15-19', sex: 'Female', share: 3.1 },
162
+ { year: 2023, ageGroup: '15-19', sex: 'Male', share: 3.2 },
163
+ { year: 2023, ageGroup: '20-24', sex: 'Female', share: 3.4 },
164
+ { year: 2023, ageGroup: '20-24', sex: 'Male', share: 3.3 },
165
+ { year: 2023, ageGroup: '25-29', sex: 'Female', share: 3.9 },
166
+ { year: 2023, ageGroup: '25-29', sex: 'Male', share: 3.7 },
167
+ { year: 2023, ageGroup: '30-34', sex: 'Female', share: 3.9 },
168
+ { year: 2023, ageGroup: '30-34', sex: 'Male', share: 3.7 },
169
+ { year: 2023, ageGroup: '35-39', sex: 'Female', share: 3.7 },
170
+ { year: 2023, ageGroup: '35-39', sex: 'Male', share: 3.5 },
171
+ { year: 2023, ageGroup: '40-44', sex: 'Female', share: 3.4 },
172
+ { year: 2023, ageGroup: '40-44', sex: 'Male', share: 3.1 },
173
+ { year: 2023, ageGroup: '45-49', sex: 'Female', share: 3.3 },
174
+ { year: 2023, ageGroup: '45-49', sex: 'Male', share: 2.9 },
175
+ { year: 2023, ageGroup: '50-54', sex: 'Female', share: 3.1 },
176
+ { year: 2023, ageGroup: '50-54', sex: 'Male', share: 2.6 },
177
+ { year: 2023, ageGroup: '55-59', sex: 'Female', share: 2.9 },
178
+ { year: 2023, ageGroup: '55-59', sex: 'Male', share: 2.4 },
179
+ { year: 2023, ageGroup: '60-64', sex: 'Female', share: 2.8 },
180
+ { year: 2023, ageGroup: '60-64', sex: 'Male', share: 2.2 },
181
+ { year: 2023, ageGroup: '65-69', sex: 'Female', share: 2.6 },
182
+ { year: 2023, ageGroup: '65-69', sex: 'Male', share: 2 },
183
+ { year: 2023, ageGroup: '70-74', sex: 'Female', share: 2.6 },
184
+ { year: 2023, ageGroup: '70-74', sex: 'Male', share: 1.8 },
185
+ { year: 2023, ageGroup: '75-79', sex: 'Female', share: 2.4 },
186
+ { year: 2023, ageGroup: '75-79', sex: 'Male', share: 1.5 },
187
+ { year: 2023, ageGroup: '80-84', sex: 'Female', share: 1.9 },
188
+ { year: 2023, ageGroup: '80-84', sex: 'Male', share: 0.9 },
189
+ { year: 2023, ageGroup: '85+', sex: 'Female', share: 2.5 },
190
+ { year: 2023, ageGroup: '85+', sex: 'Male', share: 0.9 },
191
+ { year: 2024, ageGroup: '0-4', sex: 'Female', share: 2 },
192
+ { year: 2024, ageGroup: '0-4', sex: 'Male', share: 2.1 },
193
+ { year: 2024, ageGroup: '5-9', sex: 'Female', share: 2.9 },
194
+ { year: 2024, ageGroup: '5-9', sex: 'Male', share: 3 },
195
+ { year: 2024, ageGroup: '10-14', sex: 'Female', share: 3.2 },
196
+ { year: 2024, ageGroup: '10-14', sex: 'Male', share: 3.3 },
197
+ { year: 2024, ageGroup: '15-19', sex: 'Female', share: 3.1 },
198
+ { year: 2024, ageGroup: '15-19', sex: 'Male', share: 3.2 },
199
+ { year: 2024, ageGroup: '20-24', sex: 'Female', share: 3.3 },
200
+ { year: 2024, ageGroup: '20-24', sex: 'Male', share: 3.2 },
201
+ { year: 2024, ageGroup: '25-29', sex: 'Female', share: 3.9 },
202
+ { year: 2024, ageGroup: '25-29', sex: 'Male', share: 3.7 },
203
+ { year: 2024, ageGroup: '30-34', sex: 'Female', share: 3.9 },
204
+ { year: 2024, ageGroup: '30-34', sex: 'Male', share: 3.7 },
205
+ { year: 2024, ageGroup: '35-39', sex: 'Female', share: 3.7 },
206
+ { year: 2024, ageGroup: '35-39', sex: 'Male', share: 3.5 },
207
+ { year: 2024, ageGroup: '40-44', sex: 'Female', share: 3.5 },
208
+ { year: 2024, ageGroup: '40-44', sex: 'Male', share: 3.2 },
209
+ { year: 2024, ageGroup: '45-49', sex: 'Female', share: 3.3 },
210
+ { year: 2024, ageGroup: '45-49', sex: 'Male', share: 2.9 },
211
+ { year: 2024, ageGroup: '50-54', sex: 'Female', share: 3.2 },
212
+ { year: 2024, ageGroup: '50-54', sex: 'Male', share: 2.6 },
213
+ { year: 2024, ageGroup: '55-59', sex: 'Female', share: 2.9 },
214
+ { year: 2024, ageGroup: '55-59', sex: 'Male', share: 2.4 },
215
+ { year: 2024, ageGroup: '60-64', sex: 'Female', share: 2.9 },
216
+ { year: 2024, ageGroup: '60-64', sex: 'Male', share: 2.2 },
217
+ { year: 2024, ageGroup: '65-69', sex: 'Female', share: 2.6 },
218
+ { year: 2024, ageGroup: '65-69', sex: 'Male', share: 2 },
219
+ { year: 2024, ageGroup: '70-74', sex: 'Female', share: 2.5 },
220
+ { year: 2024, ageGroup: '70-74', sex: 'Male', share: 1.8 },
221
+ { year: 2024, ageGroup: '75-79', sex: 'Female', share: 2.4 },
222
+ { year: 2024, ageGroup: '75-79', sex: 'Male', share: 1.5 },
223
+ { year: 2024, ageGroup: '80-84', sex: 'Female', share: 1.9 },
224
+ { year: 2024, ageGroup: '80-84', sex: 'Male', share: 1 },
225
+ { year: 2024, ageGroup: '85+', sex: 'Female', share: 2.6 },
226
+ { year: 2024, ageGroup: '85+', sex: 'Male', share: 0.9 },
227
+ { year: 2025, ageGroup: '0-4', sex: 'Female', share: 1.9 },
228
+ { year: 2025, ageGroup: '0-4', sex: 'Male', share: 2 },
229
+ { year: 2025, ageGroup: '5-9', sex: 'Female', share: 2.7 },
230
+ { year: 2025, ageGroup: '5-9', sex: 'Male', share: 2.8 },
231
+ { year: 2025, ageGroup: '10-14', sex: 'Female', share: 3.2 },
232
+ { year: 2025, ageGroup: '10-14', sex: 'Male', share: 3.3 },
233
+ { year: 2025, ageGroup: '15-19', sex: 'Female', share: 3.2 },
234
+ { year: 2025, ageGroup: '15-19', sex: 'Male', share: 3.2 },
235
+ { year: 2025, ageGroup: '20-24', sex: 'Female', share: 3.3 },
236
+ { year: 2025, ageGroup: '20-24', sex: 'Male', share: 3.2 },
237
+ { year: 2025, ageGroup: '25-29', sex: 'Female', share: 3.8 },
238
+ { year: 2025, ageGroup: '25-29', sex: 'Male', share: 3.6 },
239
+ { year: 2025, ageGroup: '30-34', sex: 'Female', share: 4 },
240
+ { year: 2025, ageGroup: '30-34', sex: 'Male', share: 3.7 },
241
+ { year: 2025, ageGroup: '35-39', sex: 'Female', share: 3.7 },
242
+ { year: 2025, ageGroup: '35-39', sex: 'Male', share: 3.5 },
243
+ { year: 2025, ageGroup: '40-44', sex: 'Female', share: 3.5 },
244
+ { year: 2025, ageGroup: '40-44', sex: 'Male', share: 3.3 },
245
+ { year: 2025, ageGroup: '45-49', sex: 'Female', share: 3.3 },
246
+ { year: 2025, ageGroup: '45-49', sex: 'Male', share: 3 },
247
+ { year: 2025, ageGroup: '50-54', sex: 'Female', share: 3.2 },
248
+ { year: 2025, ageGroup: '50-54', sex: 'Male', share: 2.7 },
249
+ { year: 2025, ageGroup: '55-59', sex: 'Female', share: 3 },
250
+ { year: 2025, ageGroup: '55-59', sex: 'Male', share: 2.4 },
251
+ { year: 2025, ageGroup: '60-64', sex: 'Female', share: 2.9 },
252
+ { year: 2025, ageGroup: '60-64', sex: 'Male', share: 2.2 },
253
+ { year: 2025, ageGroup: '65-69', sex: 'Female', share: 2.7 },
254
+ { year: 2025, ageGroup: '65-69', sex: 'Male', share: 2 },
255
+ { year: 2025, ageGroup: '70-74', sex: 'Female', share: 2.5 },
256
+ { year: 2025, ageGroup: '70-74', sex: 'Male', share: 1.8 },
257
+ { year: 2025, ageGroup: '75-79', sex: 'Female', share: 2.4 },
258
+ { year: 2025, ageGroup: '75-79', sex: 'Male', share: 1.5 },
259
+ { year: 2025, ageGroup: '80-84', sex: 'Female', share: 1.9 },
260
+ { year: 2025, ageGroup: '80-84', sex: 'Male', share: 1 },
261
+ { year: 2025, ageGroup: '85+', sex: 'Female', share: 2.6 },
262
+ { year: 2025, ageGroup: '85+', sex: 'Male', share: 0.9 },
263
+ { year: 2026, ageGroup: '0-4', sex: 'Female', share: 1.8 },
264
+ { year: 2026, ageGroup: '0-4', sex: 'Male', share: 1.9 },
265
+ { year: 2026, ageGroup: '5-9', sex: 'Female', share: 2.5 },
266
+ { year: 2026, ageGroup: '5-9', sex: 'Male', share: 2.6 },
267
+ { year: 2026, ageGroup: '10-14', sex: 'Female', share: 3.2 },
268
+ { year: 2026, ageGroup: '10-14', sex: 'Male', share: 3.3 },
269
+ { year: 2026, ageGroup: '15-19', sex: 'Female', share: 3.2 },
270
+ { year: 2026, ageGroup: '15-19', sex: 'Male', share: 3.3 },
271
+ { year: 2026, ageGroup: '20-24', sex: 'Female', share: 3.3 },
272
+ { year: 2026, ageGroup: '20-24', sex: 'Male', share: 3.2 },
273
+ { year: 2026, ageGroup: '25-29', sex: 'Female', share: 3.7 },
274
+ { year: 2026, ageGroup: '25-29', sex: 'Male', share: 3.5 },
275
+ { year: 2026, ageGroup: '30-34', sex: 'Female', share: 4 },
276
+ { year: 2026, ageGroup: '30-34', sex: 'Male', share: 3.7 },
277
+ { year: 2026, ageGroup: '35-39', sex: 'Female', share: 3.7 },
278
+ { year: 2026, ageGroup: '35-39', sex: 'Male', share: 3.5 },
279
+ { year: 2026, ageGroup: '40-44', sex: 'Female', share: 3.6 },
280
+ { year: 2026, ageGroup: '40-44', sex: 'Male', share: 3.4 },
281
+ { year: 2026, ageGroup: '45-49', sex: 'Female', share: 3.3 },
282
+ { year: 2026, ageGroup: '45-49', sex: 'Male', share: 3 },
283
+ { year: 2026, ageGroup: '50-54', sex: 'Female', share: 3.2 },
284
+ { year: 2026, ageGroup: '50-54', sex: 'Male', share: 2.7 },
285
+ { year: 2026, ageGroup: '55-59', sex: 'Female', share: 3 },
286
+ { year: 2026, ageGroup: '55-59', sex: 'Male', share: 2.5 },
287
+ { year: 2026, ageGroup: '60-64', sex: 'Female', share: 2.9 },
288
+ { year: 2026, ageGroup: '60-64', sex: 'Male', share: 2.2 },
289
+ { year: 2026, ageGroup: '65-69', sex: 'Female', share: 2.7 },
290
+ { year: 2026, ageGroup: '65-69', sex: 'Male', share: 2 },
291
+ { year: 2026, ageGroup: '70-74', sex: 'Female', share: 2.5 },
292
+ { year: 2026, ageGroup: '70-74', sex: 'Male', share: 1.8 },
293
+ { year: 2026, ageGroup: '75-79', sex: 'Female', share: 2.4 },
294
+ { year: 2026, ageGroup: '75-79', sex: 'Male', share: 1.5 },
295
+ { year: 2026, ageGroup: '80-84', sex: 'Female', share: 2 },
296
+ { year: 2026, ageGroup: '80-84', sex: 'Male', share: 1 },
297
+ { year: 2026, ageGroup: '85+', sex: 'Female', share: 2.6 },
298
+ { year: 2026, ageGroup: '85+', sex: 'Male', share: 0.9 },
299
+ { year: 2027, ageGroup: '0-4', sex: 'Female', share: 1.8 },
300
+ { year: 2027, ageGroup: '0-4', sex: 'Male', share: 1.9 },
301
+ { year: 2027, ageGroup: '5-9', sex: 'Female', share: 2.3 },
302
+ { year: 2027, ageGroup: '5-9', sex: 'Male', share: 2.4 },
303
+ { year: 2027, ageGroup: '10-14', sex: 'Female', share: 3.2 },
304
+ { year: 2027, ageGroup: '10-14', sex: 'Male', share: 3.3 },
305
+ { year: 2027, ageGroup: '15-19', sex: 'Female', share: 3.3 },
306
+ { year: 2027, ageGroup: '15-19', sex: 'Male', share: 3.4 },
307
+ { year: 2027, ageGroup: '20-24', sex: 'Female', share: 3.3 },
308
+ { year: 2027, ageGroup: '20-24', sex: 'Male', share: 3.3 },
309
+ { year: 2027, ageGroup: '25-29', sex: 'Female', share: 3.6 },
310
+ { year: 2027, ageGroup: '25-29', sex: 'Male', share: 3.4 },
311
+ { year: 2027, ageGroup: '30-34', sex: 'Female', share: 4 },
312
+ { year: 2027, ageGroup: '30-34', sex: 'Male', share: 3.7 },
313
+ { year: 2027, ageGroup: '35-39', sex: 'Female', share: 3.8 },
314
+ { year: 2027, ageGroup: '35-39', sex: 'Male', share: 3.6 },
315
+ { year: 2027, ageGroup: '40-44', sex: 'Female', share: 3.7 },
316
+ { year: 2027, ageGroup: '40-44', sex: 'Male', share: 3.5 },
317
+ { year: 2027, ageGroup: '45-49', sex: 'Female', share: 3.4 },
318
+ { year: 2027, ageGroup: '45-49', sex: 'Male', share: 3 },
319
+ { year: 2027, ageGroup: '50-54', sex: 'Female', share: 3.3 },
320
+ { year: 2027, ageGroup: '50-54', sex: 'Male', share: 2.8 },
321
+ { year: 2027, ageGroup: '55-59', sex: 'Female', share: 3.1 },
322
+ { year: 2027, ageGroup: '55-59', sex: 'Male', share: 2.5 },
323
+ { year: 2027, ageGroup: '60-64', sex: 'Female', share: 2.9 },
324
+ { year: 2027, ageGroup: '60-64', sex: 'Male', share: 2.3 },
325
+ { year: 2027, ageGroup: '65-69', sex: 'Female', share: 2.7 },
326
+ { year: 2027, ageGroup: '65-69', sex: 'Male', share: 2.1 },
327
+ { year: 2027, ageGroup: '70-74', sex: 'Female', share: 2.5 },
328
+ { year: 2027, ageGroup: '70-74', sex: 'Male', share: 1.8 },
329
+ { year: 2027, ageGroup: '75-79', sex: 'Female', share: 2.4 },
330
+ { year: 2027, ageGroup: '75-79', sex: 'Male', share: 1.5 },
331
+ { year: 2027, ageGroup: '80-84', sex: 'Female', share: 2 },
332
+ { year: 2027, ageGroup: '80-84', sex: 'Male', share: 1.1 },
333
+ { year: 2027, ageGroup: '85+', sex: 'Female', share: 2.7 },
334
+ { year: 2027, ageGroup: '85+', sex: 'Male', share: 1 },
335
+ { year: 2028, ageGroup: '0-4', sex: 'Female', share: 1.8 },
336
+ { year: 2028, ageGroup: '0-4', sex: 'Male', share: 1.8 },
337
+ { year: 2028, ageGroup: '5-9', sex: 'Female', share: 2.2 },
338
+ { year: 2028, ageGroup: '5-9', sex: 'Male', share: 2.3 },
339
+ { year: 2028, ageGroup: '10-14', sex: 'Female', share: 3.1 },
340
+ { year: 2028, ageGroup: '10-14', sex: 'Male', share: 3.2 },
341
+ { year: 2028, ageGroup: '15-19', sex: 'Female', share: 3.3 },
342
+ { year: 2028, ageGroup: '15-19', sex: 'Male', share: 3.4 },
343
+ { year: 2028, ageGroup: '20-24', sex: 'Female', share: 3.3 },
344
+ { year: 2028, ageGroup: '20-24', sex: 'Male', share: 3.3 },
345
+ { year: 2028, ageGroup: '25-29', sex: 'Female', share: 3.5 },
346
+ { year: 2028, ageGroup: '25-29', sex: 'Male', share: 3.3 },
347
+ { year: 2028, ageGroup: '30-34', sex: 'Female', share: 3.9 },
348
+ { year: 2028, ageGroup: '30-34', sex: 'Male', share: 3.7 },
349
+ { year: 2028, ageGroup: '35-39', sex: 'Female', share: 3.8 },
350
+ { year: 2028, ageGroup: '35-39', sex: 'Male', share: 3.6 },
351
+ { year: 2028, ageGroup: '40-44', sex: 'Female', share: 3.7 },
352
+ { year: 2028, ageGroup: '40-44', sex: 'Male', share: 3.5 },
353
+ { year: 2028, ageGroup: '45-49', sex: 'Female', share: 3.4 },
354
+ { year: 2028, ageGroup: '45-49', sex: 'Male', share: 3.1 },
355
+ { year: 2028, ageGroup: '50-54', sex: 'Female', share: 3.3 },
356
+ { year: 2028, ageGroup: '50-54', sex: 'Male', share: 2.9 },
357
+ { year: 2028, ageGroup: '55-59', sex: 'Female', share: 3.1 },
358
+ { year: 2028, ageGroup: '55-59', sex: 'Male', share: 2.5 },
359
+ { year: 2028, ageGroup: '60-64', sex: 'Female', share: 2.9 },
360
+ { year: 2028, ageGroup: '60-64', sex: 'Male', share: 2.3 },
361
+ { year: 2028, ageGroup: '65-69', sex: 'Female', share: 2.7 },
362
+ { year: 2028, ageGroup: '65-69', sex: 'Male', share: 2.1 },
363
+ { year: 2028, ageGroup: '70-74', sex: 'Female', share: 2.5 },
364
+ { year: 2028, ageGroup: '70-74', sex: 'Male', share: 1.8 },
365
+ { year: 2028, ageGroup: '75-79', sex: 'Female', share: 2.3 },
366
+ { year: 2028, ageGroup: '75-79', sex: 'Male', share: 1.5 },
367
+ { year: 2028, ageGroup: '80-84', sex: 'Female', share: 2 },
368
+ { year: 2028, ageGroup: '80-84', sex: 'Male', share: 1.1 },
369
+ { year: 2028, ageGroup: '85+', sex: 'Female', share: 2.7 },
370
+ { year: 2028, ageGroup: '85+', sex: 'Male', share: 1 },
371
+ { year: 2029, ageGroup: '0-4', sex: 'Female', share: 1.7 },
372
+ { year: 2029, ageGroup: '0-4', sex: 'Male', share: 1.8 },
373
+ { year: 2029, ageGroup: '5-9', sex: 'Female', share: 2 },
374
+ { year: 2029, ageGroup: '5-9', sex: 'Male', share: 2.1 },
375
+ { year: 2029, ageGroup: '10-14', sex: 'Female', share: 3 },
376
+ { year: 2029, ageGroup: '10-14', sex: 'Male', share: 3.1 },
377
+ { year: 2029, ageGroup: '15-19', sex: 'Female', share: 3.4 },
378
+ { year: 2029, ageGroup: '15-19', sex: 'Male', share: 3.4 },
379
+ { year: 2029, ageGroup: '20-24', sex: 'Female', share: 3.4 },
380
+ { year: 2029, ageGroup: '20-24', sex: 'Male', share: 3.4 },
381
+ { year: 2029, ageGroup: '25-29', sex: 'Female', share: 3.4 },
382
+ { year: 2029, ageGroup: '25-29', sex: 'Male', share: 3.3 },
383
+ { year: 2029, ageGroup: '30-34', sex: 'Female', share: 3.8 },
384
+ { year: 2029, ageGroup: '30-34', sex: 'Male', share: 3.6 },
385
+ { year: 2029, ageGroup: '35-39', sex: 'Female', share: 3.9 },
386
+ { year: 2029, ageGroup: '35-39', sex: 'Male', share: 3.7 },
387
+ { year: 2029, ageGroup: '40-44', sex: 'Female', share: 3.7 },
388
+ { year: 2029, ageGroup: '40-44', sex: 'Male', share: 3.5 },
389
+ { year: 2029, ageGroup: '45-49', sex: 'Female', share: 3.5 },
390
+ { year: 2029, ageGroup: '45-49', sex: 'Male', share: 3.2 },
391
+ { year: 2029, ageGroup: '50-54', sex: 'Female', share: 3.3 },
392
+ { year: 2029, ageGroup: '50-54', sex: 'Male', share: 2.9 },
393
+ { year: 2029, ageGroup: '55-59', sex: 'Female', share: 3.2 },
394
+ { year: 2029, ageGroup: '55-59', sex: 'Male', share: 2.6 },
395
+ { year: 2029, ageGroup: '60-64', sex: 'Female', share: 2.9 },
396
+ { year: 2029, ageGroup: '60-64', sex: 'Male', share: 2.3 },
397
+ { year: 2029, ageGroup: '65-69', sex: 'Female', share: 2.8 },
398
+ { year: 2029, ageGroup: '65-69', sex: 'Male', share: 2.1 },
399
+ { year: 2029, ageGroup: '70-74', sex: 'Female', share: 2.5 },
400
+ { year: 2029, ageGroup: '70-74', sex: 'Male', share: 1.8 },
401
+ { year: 2029, ageGroup: '75-79', sex: 'Female', share: 2.3 },
402
+ { year: 2029, ageGroup: '75-79', sex: 'Male', share: 1.5 },
403
+ { year: 2029, ageGroup: '80-84', sex: 'Female', share: 2 },
404
+ { year: 2029, ageGroup: '80-84', sex: 'Male', share: 1.2 },
405
+ { year: 2029, ageGroup: '85+', sex: 'Female', share: 2.7 },
406
+ { year: 2029, ageGroup: '85+', sex: 'Male', share: 1 },
407
+ { year: 2030, ageGroup: '0-4', sex: 'Female', share: 1.7 },
408
+ { year: 2030, ageGroup: '0-4', sex: 'Male', share: 1.8 },
409
+ { year: 2030, ageGroup: '5-9', sex: 'Female', share: 1.9 },
410
+ { year: 2030, ageGroup: '5-9', sex: 'Male', share: 2 },
411
+ { year: 2030, ageGroup: '10-14', sex: 'Female', share: 2.8 },
412
+ { year: 2030, ageGroup: '10-14', sex: 'Male', share: 2.9 },
413
+ { year: 2030, ageGroup: '15-19', sex: 'Female', share: 3.4 },
414
+ { year: 2030, ageGroup: '15-19', sex: 'Male', share: 3.5 },
415
+ { year: 2030, ageGroup: '20-24', sex: 'Female', share: 3.4 },
416
+ { year: 2030, ageGroup: '20-24', sex: 'Male', share: 3.4 },
417
+ { year: 2030, ageGroup: '25-29', sex: 'Female', share: 3.3 },
418
+ { year: 2030, ageGroup: '25-29', sex: 'Male', share: 3.3 },
419
+ { year: 2030, ageGroup: '30-34', sex: 'Female', share: 3.7 },
420
+ { year: 2030, ageGroup: '30-34', sex: 'Male', share: 3.6 },
421
+ { year: 2030, ageGroup: '35-39', sex: 'Female', share: 4 },
422
+ { year: 2030, ageGroup: '35-39', sex: 'Male', share: 3.7 },
423
+ { year: 2030, ageGroup: '40-44', sex: 'Female', share: 3.7 },
424
+ { year: 2030, ageGroup: '40-44', sex: 'Male', share: 3.5 },
425
+ { year: 2030, ageGroup: '45-49', sex: 'Female', share: 3.6 },
426
+ { year: 2030, ageGroup: '45-49', sex: 'Male', share: 3.3 },
427
+ { year: 2030, ageGroup: '50-54', sex: 'Female', share: 3.4 },
428
+ { year: 2030, ageGroup: '50-54', sex: 'Male', share: 2.9 },
429
+ { year: 2030, ageGroup: '55-59', sex: 'Female', share: 3.2 },
430
+ { year: 2030, ageGroup: '55-59', sex: 'Male', share: 2.6 },
431
+ { year: 2030, ageGroup: '60-64', sex: 'Female', share: 2.9 },
432
+ { year: 2030, ageGroup: '60-64', sex: 'Male', share: 2.3 },
433
+ { year: 2030, ageGroup: '65-69', sex: 'Female', share: 2.8 },
434
+ { year: 2030, ageGroup: '65-69', sex: 'Male', share: 2.1 },
435
+ { year: 2030, ageGroup: '70-74', sex: 'Female', share: 2.5 },
436
+ { year: 2030, ageGroup: '70-74', sex: 'Male', share: 1.8 },
437
+ { year: 2030, ageGroup: '75-79', sex: 'Female', share: 2.3 },
438
+ { year: 2030, ageGroup: '75-79', sex: 'Male', share: 1.5 },
439
+ { year: 2030, ageGroup: '80-84', sex: 'Female', share: 2 },
440
+ { year: 2030, ageGroup: '80-84', sex: 'Male', share: 1.2 },
441
+ { year: 2030, ageGroup: '85+', sex: 'Female', share: 2.8 },
442
+ { year: 2030, ageGroup: '85+', sex: 'Male', share: 1.1 },
443
+ { year: 2031, ageGroup: '0-4', sex: 'Female', share: 1.7 },
444
+ { year: 2031, ageGroup: '0-4', sex: 'Male', share: 1.8 },
445
+ { year: 2031, ageGroup: '5-9', sex: 'Female', share: 1.8 },
446
+ { year: 2031, ageGroup: '5-9', sex: 'Male', share: 1.9 },
447
+ { year: 2031, ageGroup: '10-14', sex: 'Female', share: 2.6 },
448
+ { year: 2031, ageGroup: '10-14', sex: 'Male', share: 2.7 },
449
+ { year: 2031, ageGroup: '15-19', sex: 'Female', share: 3.4 },
450
+ { year: 2031, ageGroup: '15-19', sex: 'Male', share: 3.5 },
451
+ { year: 2031, ageGroup: '20-24', sex: 'Female', share: 3.4 },
452
+ { year: 2031, ageGroup: '20-24', sex: 'Male', share: 3.5 },
453
+ { year: 2031, ageGroup: '25-29', sex: 'Female', share: 3.3 },
454
+ { year: 2031, ageGroup: '25-29', sex: 'Male', share: 3.3 },
455
+ { year: 2031, ageGroup: '30-34', sex: 'Female', share: 3.6 },
456
+ { year: 2031, ageGroup: '30-34', sex: 'Male', share: 3.5 },
457
+ { year: 2031, ageGroup: '35-39', sex: 'Female', share: 4 },
458
+ { year: 2031, ageGroup: '35-39', sex: 'Male', share: 3.7 },
459
+ { year: 2031, ageGroup: '40-44', sex: 'Female', share: 3.7 },
460
+ { year: 2031, ageGroup: '40-44', sex: 'Male', share: 3.5 },
461
+ { year: 2031, ageGroup: '45-49', sex: 'Female', share: 3.6 },
462
+ { year: 2031, ageGroup: '45-49', sex: 'Male', share: 3.4 },
463
+ { year: 2031, ageGroup: '50-54', sex: 'Female', share: 3.4 },
464
+ { year: 2031, ageGroup: '50-54', sex: 'Male', share: 3 },
465
+ { year: 2031, ageGroup: '55-59', sex: 'Female', share: 3.3 },
466
+ { year: 2031, ageGroup: '55-59', sex: 'Male', share: 2.7 },
467
+ { year: 2031, ageGroup: '60-64', sex: 'Female', share: 3 },
468
+ { year: 2031, ageGroup: '60-64', sex: 'Male', share: 2.4 },
469
+ { year: 2031, ageGroup: '65-69', sex: 'Female', share: 2.8 },
470
+ { year: 2031, ageGroup: '65-69', sex: 'Male', share: 2.1 },
471
+ { year: 2031, ageGroup: '70-74', sex: 'Female', share: 2.5 },
472
+ { year: 2031, ageGroup: '70-74', sex: 'Male', share: 1.8 },
473
+ { year: 2031, ageGroup: '75-79', sex: 'Female', share: 2.3 },
474
+ { year: 2031, ageGroup: '75-79', sex: 'Male', share: 1.5 },
475
+ { year: 2031, ageGroup: '80-84', sex: 'Female', share: 2 },
476
+ { year: 2031, ageGroup: '80-84', sex: 'Male', share: 1.2 },
477
+ { year: 2031, ageGroup: '85+', sex: 'Female', share: 2.8 },
478
+ { year: 2031, ageGroup: '85+', sex: 'Male', share: 1.1 },
479
+ { year: 2032, ageGroup: '0-4', sex: 'Female', share: 1.8 },
480
+ { year: 2032, ageGroup: '0-4', sex: 'Male', share: 1.8 },
481
+ { year: 2032, ageGroup: '5-9', sex: 'Female', share: 1.8 },
482
+ { year: 2032, ageGroup: '5-9', sex: 'Male', share: 1.9 },
483
+ { year: 2032, ageGroup: '10-14', sex: 'Female', share: 2.4 },
484
+ { year: 2032, ageGroup: '10-14', sex: 'Male', share: 2.5 },
485
+ { year: 2032, ageGroup: '15-19', sex: 'Female', share: 3.3 },
486
+ { year: 2032, ageGroup: '15-19', sex: 'Male', share: 3.4 },
487
+ { year: 2032, ageGroup: '20-24', sex: 'Female', share: 3.5 },
488
+ { year: 2032, ageGroup: '20-24', sex: 'Male', share: 3.6 },
489
+ { year: 2032, ageGroup: '25-29', sex: 'Female', share: 3.4 },
490
+ { year: 2032, ageGroup: '25-29', sex: 'Male', share: 3.4 },
491
+ { year: 2032, ageGroup: '30-34', sex: 'Female', share: 3.5 },
492
+ { year: 2032, ageGroup: '30-34', sex: 'Male', share: 3.4 },
493
+ { year: 2032, ageGroup: '35-39', sex: 'Female', share: 3.9 },
494
+ { year: 2032, ageGroup: '35-39', sex: 'Male', share: 3.7 },
495
+ { year: 2032, ageGroup: '40-44', sex: 'Female', share: 3.8 },
496
+ { year: 2032, ageGroup: '40-44', sex: 'Male', share: 3.6 },
497
+ { year: 2032, ageGroup: '45-49', sex: 'Female', share: 3.7 },
498
+ { year: 2032, ageGroup: '45-49', sex: 'Male', share: 3.4 },
499
+ { year: 2032, ageGroup: '50-54', sex: 'Female', share: 3.4 },
500
+ { year: 2032, ageGroup: '50-54', sex: 'Male', share: 3 },
501
+ { year: 2032, ageGroup: '55-59', sex: 'Female', share: 3.3 },
502
+ { year: 2032, ageGroup: '55-59', sex: 'Male', share: 2.8 },
503
+ { year: 2032, ageGroup: '60-64', sex: 'Female', share: 3 },
504
+ { year: 2032, ageGroup: '60-64', sex: 'Male', share: 2.4 },
505
+ { year: 2032, ageGroup: '65-69', sex: 'Female', share: 2.8 },
506
+ { year: 2032, ageGroup: '65-69', sex: 'Male', share: 2.1 },
507
+ { year: 2032, ageGroup: '70-74', sex: 'Female', share: 2.6 },
508
+ { year: 2032, ageGroup: '70-74', sex: 'Male', share: 1.9 },
509
+ { year: 2032, ageGroup: '75-79', sex: 'Female', share: 2.3 },
510
+ { year: 2032, ageGroup: '75-79', sex: 'Male', share: 1.5 },
511
+ { year: 2032, ageGroup: '80-84', sex: 'Female', share: 2 },
512
+ { year: 2032, ageGroup: '80-84', sex: 'Male', share: 1.2 },
513
+ { year: 2032, ageGroup: '85+', sex: 'Female', share: 2.9 },
514
+ { year: 2032, ageGroup: '85+', sex: 'Male', share: 1.2 },
515
+ { year: 2033, ageGroup: '0-4', sex: 'Female', share: 1.8 },
516
+ { year: 2033, ageGroup: '0-4', sex: 'Male', share: 1.9 },
517
+ { year: 2033, ageGroup: '5-9', sex: 'Female', share: 1.8 },
518
+ { year: 2033, ageGroup: '5-9', sex: 'Male', share: 1.8 },
519
+ { year: 2033, ageGroup: '10-14', sex: 'Female', share: 2.2 },
520
+ { year: 2033, ageGroup: '10-14', sex: 'Male', share: 2.3 },
521
+ { year: 2033, ageGroup: '15-19', sex: 'Female', share: 3.2 },
522
+ { year: 2033, ageGroup: '15-19', sex: 'Male', share: 3.3 },
523
+ { year: 2033, ageGroup: '20-24', sex: 'Female', share: 3.6 },
524
+ { year: 2033, ageGroup: '20-24', sex: 'Male', share: 3.6 },
525
+ { year: 2033, ageGroup: '25-29', sex: 'Female', share: 3.4 },
526
+ { year: 2033, ageGroup: '25-29', sex: 'Male', share: 3.4 },
527
+ { year: 2033, ageGroup: '30-34', sex: 'Female', share: 3.4 },
528
+ { year: 2033, ageGroup: '30-34', sex: 'Male', share: 3.3 },
529
+ { year: 2033, ageGroup: '35-39', sex: 'Female', share: 3.9 },
530
+ { year: 2033, ageGroup: '35-39', sex: 'Male', share: 3.6 },
531
+ { year: 2033, ageGroup: '40-44', sex: 'Female', share: 3.9 },
532
+ { year: 2033, ageGroup: '40-44', sex: 'Male', share: 3.6 },
533
+ { year: 2033, ageGroup: '45-49', sex: 'Female', share: 3.7 },
534
+ { year: 2033, ageGroup: '45-49', sex: 'Male', share: 3.5 },
535
+ { year: 2033, ageGroup: '50-54', sex: 'Female', share: 3.4 },
536
+ { year: 2033, ageGroup: '50-54', sex: 'Male', share: 3.1 },
537
+ { year: 2033, ageGroup: '55-59', sex: 'Female', share: 3.3 },
538
+ { year: 2033, ageGroup: '55-59', sex: 'Male', share: 2.8 },
539
+ { year: 2033, ageGroup: '60-64', sex: 'Female', share: 3.1 },
540
+ { year: 2033, ageGroup: '60-64', sex: 'Male', share: 2.5 },
541
+ { year: 2033, ageGroup: '65-69', sex: 'Female', share: 2.8 },
542
+ { year: 2033, ageGroup: '65-69', sex: 'Male', share: 2.2 },
543
+ { year: 2033, ageGroup: '70-74', sex: 'Female', share: 2.6 },
544
+ { year: 2033, ageGroup: '70-74', sex: 'Male', share: 1.9 },
545
+ { year: 2033, ageGroup: '75-79', sex: 'Female', share: 2.3 },
546
+ { year: 2033, ageGroup: '75-79', sex: 'Male', share: 1.5 },
547
+ { year: 2033, ageGroup: '80-84', sex: 'Female', share: 2 },
548
+ { year: 2033, ageGroup: '80-84', sex: 'Male', share: 1.2 },
549
+ { year: 2033, ageGroup: '85+', sex: 'Female', share: 2.9 },
550
+ { year: 2033, ageGroup: '85+', sex: 'Male', share: 1.2 },
551
+ { year: 2034, ageGroup: '0-4', sex: 'Female', share: 1.9 },
552
+ { year: 2034, ageGroup: '0-4', sex: 'Male', share: 2 },
553
+ { year: 2034, ageGroup: '5-9', sex: 'Female', share: 1.7 },
554
+ { year: 2034, ageGroup: '5-9', sex: 'Male', share: 1.8 },
555
+ { year: 2034, ageGroup: '10-14', sex: 'Female', share: 2.1 },
556
+ { year: 2034, ageGroup: '10-14', sex: 'Male', share: 2.1 },
557
+ { year: 2034, ageGroup: '15-19', sex: 'Female', share: 3.1 },
558
+ { year: 2034, ageGroup: '15-19', sex: 'Male', share: 3.2 },
559
+ { year: 2034, ageGroup: '20-24', sex: 'Female', share: 3.6 },
560
+ { year: 2034, ageGroup: '20-24', sex: 'Male', share: 3.6 },
561
+ { year: 2034, ageGroup: '25-29', sex: 'Female', share: 3.4 },
562
+ { year: 2034, ageGroup: '25-29', sex: 'Male', share: 3.5 },
563
+ { year: 2034, ageGroup: '30-34', sex: 'Female', share: 3.3 },
564
+ { year: 2034, ageGroup: '30-34', sex: 'Male', share: 3.3 },
565
+ { year: 2034, ageGroup: '35-39', sex: 'Female', share: 3.8 },
566
+ { year: 2034, ageGroup: '35-39', sex: 'Male', share: 3.6 },
567
+ { year: 2034, ageGroup: '40-44', sex: 'Female', share: 3.9 },
568
+ { year: 2034, ageGroup: '40-44', sex: 'Male', share: 3.6 },
569
+ { year: 2034, ageGroup: '45-49', sex: 'Female', share: 3.7 },
570
+ { year: 2034, ageGroup: '45-49', sex: 'Male', share: 3.5 },
571
+ { year: 2034, ageGroup: '50-54', sex: 'Female', share: 3.5 },
572
+ { year: 2034, ageGroup: '50-54', sex: 'Male', share: 3.1 },
573
+ { year: 2034, ageGroup: '55-59', sex: 'Female', share: 3.3 },
574
+ { year: 2034, ageGroup: '55-59', sex: 'Male', share: 2.9 },
575
+ { year: 2034, ageGroup: '60-64', sex: 'Female', share: 3.1 },
576
+ { year: 2034, ageGroup: '60-64', sex: 'Male', share: 2.5 },
577
+ { year: 2034, ageGroup: '65-69', sex: 'Female', share: 2.8 },
578
+ { year: 2034, ageGroup: '65-69', sex: 'Male', share: 2.2 },
579
+ { year: 2034, ageGroup: '70-74', sex: 'Female', share: 2.6 },
580
+ { year: 2034, ageGroup: '70-74', sex: 'Male', share: 1.9 },
581
+ { year: 2034, ageGroup: '75-79', sex: 'Female', share: 2.3 },
582
+ { year: 2034, ageGroup: '75-79', sex: 'Male', share: 1.5 },
583
+ { year: 2034, ageGroup: '80-84', sex: 'Female', share: 2 },
584
+ { year: 2034, ageGroup: '80-84', sex: 'Male', share: 1.2 },
585
+ { year: 2034, ageGroup: '85+', sex: 'Female', share: 2.9 },
586
+ { year: 2034, ageGroup: '85+', sex: 'Male', share: 1.3 },
587
+ { year: 2035, ageGroup: '0-4', sex: 'Female', share: 2 },
588
+ { year: 2035, ageGroup: '0-4', sex: 'Male', share: 2.1 },
589
+ { year: 2035, ageGroup: '5-9', sex: 'Female', share: 1.7 },
590
+ { year: 2035, ageGroup: '5-9', sex: 'Male', share: 1.8 },
591
+ { year: 2035, ageGroup: '10-14', sex: 'Female', share: 2 },
592
+ { year: 2035, ageGroup: '10-14', sex: 'Male', share: 2 },
593
+ { year: 2035, ageGroup: '15-19', sex: 'Female', share: 3 },
594
+ { year: 2035, ageGroup: '15-19', sex: 'Male', share: 3 },
595
+ { year: 2035, ageGroup: '20-24', sex: 'Female', share: 3.6 },
596
+ { year: 2035, ageGroup: '20-24', sex: 'Male', share: 3.6 },
597
+ { year: 2035, ageGroup: '25-29', sex: 'Female', share: 3.4 },
598
+ { year: 2035, ageGroup: '25-29', sex: 'Male', share: 3.5 },
599
+ { year: 2035, ageGroup: '30-34', sex: 'Female', share: 3.3 },
600
+ { year: 2035, ageGroup: '30-34', sex: 'Male', share: 3.3 },
601
+ { year: 2035, ageGroup: '35-39', sex: 'Female', share: 3.7 },
602
+ { year: 2035, ageGroup: '35-39', sex: 'Male', share: 3.5 },
603
+ { year: 2035, ageGroup: '40-44', sex: 'Female', share: 4 },
604
+ { year: 2035, ageGroup: '40-44', sex: 'Male', share: 3.7 },
605
+ { year: 2035, ageGroup: '45-49', sex: 'Female', share: 3.7 },
606
+ { year: 2035, ageGroup: '45-49', sex: 'Male', share: 3.5 },
607
+ { year: 2035, ageGroup: '50-54', sex: 'Female', share: 3.6 },
608
+ { year: 2035, ageGroup: '50-54', sex: 'Male', share: 3.2 },
609
+ { year: 2035, ageGroup: '55-59', sex: 'Female', share: 3.4 },
610
+ { year: 2035, ageGroup: '55-59', sex: 'Male', share: 2.9 },
611
+ { year: 2035, ageGroup: '60-64', sex: 'Female', share: 3.2 },
612
+ { year: 2035, ageGroup: '60-64', sex: 'Male', share: 2.6 },
613
+ { year: 2035, ageGroup: '65-69', sex: 'Female', share: 2.9 },
614
+ { year: 2035, ageGroup: '65-69', sex: 'Male', share: 2.2 },
615
+ { year: 2035, ageGroup: '70-74', sex: 'Female', share: 2.7 },
616
+ { year: 2035, ageGroup: '70-74', sex: 'Male', share: 1.9 },
617
+ { year: 2035, ageGroup: '75-79', sex: 'Female', share: 2.3 },
618
+ { year: 2035, ageGroup: '75-79', sex: 'Male', share: 1.6 },
619
+ { year: 2035, ageGroup: '80-84', sex: 'Female', share: 1.9 },
620
+ { year: 2035, ageGroup: '80-84', sex: 'Male', share: 1.2 },
621
+ { year: 2035, ageGroup: '85+', sex: 'Female', share: 3 },
622
+ { year: 2035, ageGroup: '85+', sex: 'Male', share: 1.3 },
623
+ { year: 2036, ageGroup: '0-4', sex: 'Female', share: 2.1 },
624
+ { year: 2036, ageGroup: '0-4', sex: 'Male', share: 2.1 },
625
+ { year: 2036, ageGroup: '5-9', sex: 'Female', share: 1.7 },
626
+ { year: 2036, ageGroup: '5-9', sex: 'Male', share: 1.8 },
627
+ { year: 2036, ageGroup: '10-14', sex: 'Female', share: 1.9 },
628
+ { year: 2036, ageGroup: '10-14', sex: 'Male', share: 1.9 },
629
+ { year: 2036, ageGroup: '15-19', sex: 'Female', share: 2.7 },
630
+ { year: 2036, ageGroup: '15-19', sex: 'Male', share: 2.8 },
631
+ { year: 2036, ageGroup: '20-24', sex: 'Female', share: 3.6 },
632
+ { year: 2036, ageGroup: '20-24', sex: 'Male', share: 3.6 },
633
+ { year: 2036, ageGroup: '25-29', sex: 'Female', share: 3.5 },
634
+ { year: 2036, ageGroup: '25-29', sex: 'Male', share: 3.6 },
635
+ { year: 2036, ageGroup: '30-34', sex: 'Female', share: 3.3 },
636
+ { year: 2036, ageGroup: '30-34', sex: 'Male', share: 3.3 },
637
+ { year: 2036, ageGroup: '35-39', sex: 'Female', share: 3.6 },
638
+ { year: 2036, ageGroup: '35-39', sex: 'Male', share: 3.4 },
639
+ { year: 2036, ageGroup: '40-44', sex: 'Female', share: 4 },
640
+ { year: 2036, ageGroup: '40-44', sex: 'Male', share: 3.7 },
641
+ { year: 2036, ageGroup: '45-49', sex: 'Female', share: 3.7 },
642
+ { year: 2036, ageGroup: '45-49', sex: 'Male', share: 3.5 },
643
+ { year: 2036, ageGroup: '50-54', sex: 'Female', share: 3.7 },
644
+ { year: 2036, ageGroup: '50-54', sex: 'Male', share: 3.3 },
645
+ { year: 2036, ageGroup: '55-59', sex: 'Female', share: 3.4 },
646
+ { year: 2036, ageGroup: '55-59', sex: 'Male', share: 2.9 },
647
+ { year: 2036, ageGroup: '60-64', sex: 'Female', share: 3.2 },
648
+ { year: 2036, ageGroup: '60-64', sex: 'Male', share: 2.6 },
649
+ { year: 2036, ageGroup: '65-69', sex: 'Female', share: 2.9 },
650
+ { year: 2036, ageGroup: '65-69', sex: 'Male', share: 2.2 },
651
+ { year: 2036, ageGroup: '70-74', sex: 'Female', share: 2.7 },
652
+ { year: 2036, ageGroup: '70-74', sex: 'Male', share: 1.9 },
653
+ { year: 2036, ageGroup: '75-79', sex: 'Female', share: 2.3 },
654
+ { year: 2036, ageGroup: '75-79', sex: 'Male', share: 1.6 },
655
+ { year: 2036, ageGroup: '80-84', sex: 'Female', share: 1.9 },
656
+ { year: 2036, ageGroup: '80-84', sex: 'Male', share: 1.2 },
657
+ { year: 2036, ageGroup: '85+', sex: 'Female', share: 3 },
658
+ { year: 2036, ageGroup: '85+', sex: 'Male', share: 1.3 },
659
+ { year: 2037, ageGroup: '0-4', sex: 'Female', share: 2.1 },
660
+ { year: 2037, ageGroup: '0-4', sex: 'Male', share: 2.2 },
661
+ { year: 2037, ageGroup: '5-9', sex: 'Female', share: 1.8 },
662
+ { year: 2037, ageGroup: '5-9', sex: 'Male', share: 1.8 },
663
+ { year: 2037, ageGroup: '10-14', sex: 'Female', share: 1.8 },
664
+ { year: 2037, ageGroup: '10-14', sex: 'Male', share: 1.9 },
665
+ { year: 2037, ageGroup: '15-19', sex: 'Female', share: 2.5 },
666
+ { year: 2037, ageGroup: '15-19', sex: 'Male', share: 2.6 },
667
+ { year: 2037, ageGroup: '20-24', sex: 'Female', share: 3.5 },
668
+ { year: 2037, ageGroup: '20-24', sex: 'Male', share: 3.6 },
669
+ { year: 2037, ageGroup: '25-29', sex: 'Female', share: 3.6 },
670
+ { year: 2037, ageGroup: '25-29', sex: 'Male', share: 3.6 },
671
+ { year: 2037, ageGroup: '30-34', sex: 'Female', share: 3.3 },
672
+ { year: 2037, ageGroup: '30-34', sex: 'Male', share: 3.3 },
673
+ { year: 2037, ageGroup: '35-39', sex: 'Female', share: 3.5 },
674
+ { year: 2037, ageGroup: '35-39', sex: 'Male', share: 3.3 },
675
+ { year: 2037, ageGroup: '40-44', sex: 'Female', share: 3.9 },
676
+ { year: 2037, ageGroup: '40-44', sex: 'Male', share: 3.6 },
677
+ { year: 2037, ageGroup: '45-49', sex: 'Female', share: 3.8 },
678
+ { year: 2037, ageGroup: '45-49', sex: 'Male', share: 3.5 },
679
+ { year: 2037, ageGroup: '50-54', sex: 'Female', share: 3.7 },
680
+ { year: 2037, ageGroup: '50-54', sex: 'Male', share: 3.4 },
681
+ { year: 2037, ageGroup: '55-59', sex: 'Female', share: 3.4 },
682
+ { year: 2037, ageGroup: '55-59', sex: 'Male', share: 2.9 },
683
+ { year: 2037, ageGroup: '60-64', sex: 'Female', share: 3.2 },
684
+ { year: 2037, ageGroup: '60-64', sex: 'Male', share: 2.7 },
685
+ { year: 2037, ageGroup: '65-69', sex: 'Female', share: 2.9 },
686
+ { year: 2037, ageGroup: '65-69', sex: 'Male', share: 2.3 },
687
+ { year: 2037, ageGroup: '70-74', sex: 'Female', share: 2.7 },
688
+ { year: 2037, ageGroup: '70-74', sex: 'Male', share: 1.9 },
689
+ { year: 2037, ageGroup: '75-79', sex: 'Female', share: 2.4 },
690
+ { year: 2037, ageGroup: '75-79', sex: 'Male', share: 1.6 },
691
+ { year: 2037, ageGroup: '80-84', sex: 'Female', share: 1.9 },
692
+ { year: 2037, ageGroup: '80-84', sex: 'Male', share: 1.2 },
693
+ { year: 2037, ageGroup: '85+', sex: 'Female', share: 3 },
694
+ { year: 2037, ageGroup: '85+', sex: 'Male', share: 1.4 },
695
+ { year: 2038, ageGroup: '0-4', sex: 'Female', share: 2.2 },
696
+ { year: 2038, ageGroup: '0-4', sex: 'Male', share: 2.2 },
697
+ { year: 2038, ageGroup: '5-9', sex: 'Female', share: 1.8 },
698
+ { year: 2038, ageGroup: '5-9', sex: 'Male', share: 1.9 },
699
+ { year: 2038, ageGroup: '10-14', sex: 'Female', share: 1.8 },
700
+ { year: 2038, ageGroup: '10-14', sex: 'Male', share: 1.8 },
701
+ { year: 2038, ageGroup: '15-19', sex: 'Female', share: 2.4 },
702
+ { year: 2038, ageGroup: '15-19', sex: 'Male', share: 2.4 },
703
+ { year: 2038, ageGroup: '20-24', sex: 'Female', share: 3.4 },
704
+ { year: 2038, ageGroup: '20-24', sex: 'Male', share: 3.5 },
705
+ { year: 2038, ageGroup: '25-29', sex: 'Female', share: 3.6 },
706
+ { year: 2038, ageGroup: '25-29', sex: 'Male', share: 3.7 },
707
+ { year: 2038, ageGroup: '30-34', sex: 'Female', share: 3.3 },
708
+ { year: 2038, ageGroup: '30-34', sex: 'Male', share: 3.4 },
709
+ { year: 2038, ageGroup: '35-39', sex: 'Female', share: 3.4 },
710
+ { year: 2038, ageGroup: '35-39', sex: 'Male', share: 3.3 },
711
+ { year: 2038, ageGroup: '40-44', sex: 'Female', share: 3.9 },
712
+ { year: 2038, ageGroup: '40-44', sex: 'Male', share: 3.6 },
713
+ { year: 2038, ageGroup: '45-49', sex: 'Female', share: 3.9 },
714
+ { year: 2038, ageGroup: '45-49', sex: 'Male', share: 3.6 },
715
+ { year: 2038, ageGroup: '50-54', sex: 'Female', share: 3.7 },
716
+ { year: 2038, ageGroup: '50-54', sex: 'Male', share: 3.4 },
717
+ { year: 2038, ageGroup: '55-59', sex: 'Female', share: 3.4 },
718
+ { year: 2038, ageGroup: '55-59', sex: 'Male', share: 3 },
719
+ { year: 2038, ageGroup: '60-64', sex: 'Female', share: 3.3 },
720
+ { year: 2038, ageGroup: '60-64', sex: 'Male', share: 2.7 },
721
+ { year: 2038, ageGroup: '65-69', sex: 'Female', share: 3 },
722
+ { year: 2038, ageGroup: '65-69', sex: 'Male', share: 2.3 },
723
+ { year: 2038, ageGroup: '70-74', sex: 'Female', share: 2.7 },
724
+ { year: 2038, ageGroup: '70-74', sex: 'Male', share: 2 },
725
+ { year: 2038, ageGroup: '75-79', sex: 'Female', share: 2.4 },
726
+ { year: 2038, ageGroup: '75-79', sex: 'Male', share: 1.6 },
727
+ { year: 2038, ageGroup: '80-84', sex: 'Female', share: 2 },
728
+ { year: 2038, ageGroup: '80-84', sex: 'Male', share: 1.2 },
729
+ { year: 2038, ageGroup: '85+', sex: 'Female', share: 3 },
730
+ { year: 2038, ageGroup: '85+', sex: 'Male', share: 1.4 },
731
+ { year: 2039, ageGroup: '0-4', sex: 'Female', share: 2.2 },
732
+ { year: 2039, ageGroup: '0-4', sex: 'Male', share: 2.3 },
733
+ { year: 2039, ageGroup: '5-9', sex: 'Female', share: 1.9 },
734
+ { year: 2039, ageGroup: '5-9', sex: 'Male', share: 2 },
735
+ { year: 2039, ageGroup: '10-14', sex: 'Female', share: 1.8 },
736
+ { year: 2039, ageGroup: '10-14', sex: 'Male', share: 1.8 },
737
+ { year: 2039, ageGroup: '15-19', sex: 'Female', share: 2.2 },
738
+ { year: 2039, ageGroup: '15-19', sex: 'Male', share: 2.2 },
739
+ { year: 2039, ageGroup: '20-24', sex: 'Female', share: 3.3 },
740
+ { year: 2039, ageGroup: '20-24', sex: 'Male', share: 3.3 },
741
+ { year: 2039, ageGroup: '25-29', sex: 'Female', share: 3.6 },
742
+ { year: 2039, ageGroup: '25-29', sex: 'Male', share: 3.7 },
743
+ { year: 2039, ageGroup: '30-34', sex: 'Female', share: 3.4 },
744
+ { year: 2039, ageGroup: '30-34', sex: 'Male', share: 3.4 },
745
+ { year: 2039, ageGroup: '35-39', sex: 'Female', share: 3.3 },
746
+ { year: 2039, ageGroup: '35-39', sex: 'Male', share: 3.2 },
747
+ { year: 2039, ageGroup: '40-44', sex: 'Female', share: 3.8 },
748
+ { year: 2039, ageGroup: '40-44', sex: 'Male', share: 3.6 },
749
+ { year: 2039, ageGroup: '45-49', sex: 'Female', share: 3.9 },
750
+ { year: 2039, ageGroup: '45-49', sex: 'Male', share: 3.6 },
751
+ { year: 2039, ageGroup: '50-54', sex: 'Female', share: 3.7 },
752
+ { year: 2039, ageGroup: '50-54', sex: 'Male', share: 3.4 },
753
+ { year: 2039, ageGroup: '55-59', sex: 'Female', share: 3.5 },
754
+ { year: 2039, ageGroup: '55-59', sex: 'Male', share: 3.1 },
755
+ { year: 2039, ageGroup: '60-64', sex: 'Female', share: 3.3 },
756
+ { year: 2039, ageGroup: '60-64', sex: 'Male', share: 2.8 },
757
+ { year: 2039, ageGroup: '65-69', sex: 'Female', share: 3.1 },
758
+ { year: 2039, ageGroup: '65-69', sex: 'Male', share: 2.4 },
759
+ { year: 2039, ageGroup: '70-74', sex: 'Female', share: 2.7 },
760
+ { year: 2039, ageGroup: '70-74', sex: 'Male', share: 2 },
761
+ { year: 2039, ageGroup: '75-79', sex: 'Female', share: 2.4 },
762
+ { year: 2039, ageGroup: '75-79', sex: 'Male', share: 1.6 },
763
+ { year: 2039, ageGroup: '80-84', sex: 'Female', share: 2 },
764
+ { year: 2039, ageGroup: '80-84', sex: 'Male', share: 1.2 },
765
+ { year: 2039, ageGroup: '85+', sex: 'Female', share: 3 },
766
+ { year: 2039, ageGroup: '85+', sex: 'Male', share: 1.4 },
767
+ { year: 2040, ageGroup: '0-4', sex: 'Female', share: 2.2 },
768
+ { year: 2040, ageGroup: '0-4', sex: 'Male', share: 2.3 },
769
+ { year: 2040, ageGroup: '5-9', sex: 'Female', share: 2 },
770
+ { year: 2040, ageGroup: '5-9', sex: 'Male', share: 2.1 },
771
+ { year: 2040, ageGroup: '10-14', sex: 'Female', share: 1.8 },
772
+ { year: 2040, ageGroup: '10-14', sex: 'Male', share: 1.8 },
773
+ { year: 2040, ageGroup: '15-19', sex: 'Female', share: 2.1 },
774
+ { year: 2040, ageGroup: '15-19', sex: 'Male', share: 2.1 },
775
+ { year: 2040, ageGroup: '20-24', sex: 'Female', share: 3.1 },
776
+ { year: 2040, ageGroup: '20-24', sex: 'Male', share: 3.2 },
777
+ { year: 2040, ageGroup: '25-29', sex: 'Female', share: 3.7 },
778
+ { year: 2040, ageGroup: '25-29', sex: 'Male', share: 3.7 },
779
+ { year: 2040, ageGroup: '30-34', sex: 'Female', share: 3.4 },
780
+ { year: 2040, ageGroup: '30-34', sex: 'Male', share: 3.5 },
781
+ { year: 2040, ageGroup: '35-39', sex: 'Female', share: 3.3 },
782
+ { year: 2040, ageGroup: '35-39', sex: 'Male', share: 3.2 },
783
+ { year: 2040, ageGroup: '40-44', sex: 'Female', share: 3.7 },
784
+ { year: 2040, ageGroup: '40-44', sex: 'Male', share: 3.5 },
785
+ { year: 2040, ageGroup: '45-49', sex: 'Female', share: 4 },
786
+ { year: 2040, ageGroup: '45-49', sex: 'Male', share: 3.6 },
787
+ { year: 2040, ageGroup: '50-54', sex: 'Female', share: 3.7 },
788
+ { year: 2040, ageGroup: '50-54', sex: 'Male', share: 3.4 },
789
+ { year: 2040, ageGroup: '55-59', sex: 'Female', share: 3.6 },
790
+ { year: 2040, ageGroup: '55-59', sex: 'Male', share: 3.2 },
791
+ { year: 2040, ageGroup: '60-64', sex: 'Female', share: 3.3 },
792
+ { year: 2040, ageGroup: '60-64', sex: 'Male', share: 2.8 },
793
+ { year: 2040, ageGroup: '65-69', sex: 'Female', share: 3.1 },
794
+ { year: 2040, ageGroup: '65-69', sex: 'Male', share: 2.4 },
795
+ { year: 2040, ageGroup: '70-74', sex: 'Female', share: 2.7 },
796
+ { year: 2040, ageGroup: '70-74', sex: 'Male', share: 2 },
797
+ { year: 2040, ageGroup: '75-79', sex: 'Female', share: 2.4 },
798
+ { year: 2040, ageGroup: '75-79', sex: 'Male', share: 1.6 },
799
+ { year: 2040, ageGroup: '80-84', sex: 'Female', share: 2 },
800
+ { year: 2040, ageGroup: '80-84', sex: 'Male', share: 1.2 },
801
+ { year: 2040, ageGroup: '85+', sex: 'Female', share: 3 },
802
+ { year: 2040, ageGroup: '85+', sex: 'Male', share: 1.4 }
803
+ ];
804
+
805
+ export const AGE_GROUPS = [...new Set(POPULATION_BY_AGE.map(({ ageGroup }) => ageGroup))];
806
+
807
+ // ── The 2022 census ─────────────────────────────────────────────────────────
808
+
809
+ /** The 2022 census alone. */
810
+ export const POPULATION_BY_AGE_AT_2022: AgeRow[] = POPULATION_BY_AGE.filter(
811
+ ({ year }) => year === 2022
812
+ );
813
+
814
+ // ── Shares by sex ───────────────────────────────────────────────────────────
815
+
816
+ /** The same census data over the years, grouped by age: the share of each sex. */
817
+ export type SexShareRow = { year: number; sex: string; share: number };
818
+
819
+ export const SEX_SHARES: SexShareRow[] = [
820
+ { year: 1991, sex: 'Female', share: 54.6 },
821
+ { year: 1991, sex: 'Male', share: 45.5 },
822
+ { year: 2001, sex: 'Female', share: 54.2 },
823
+ { year: 2001, sex: 'Male', share: 45.3 },
824
+ { year: 2010, sex: 'Female', share: 54.2 },
825
+ { year: 2010, sex: 'Male', share: 46 },
826
+ { year: 2022, sex: 'Female', share: 53.8 },
827
+ { year: 2022, sex: 'Male', share: 46.2 }
828
+ ];
829
+
830
+ // ── Shares by broad age group ───────────────────────────────────────────────
831
+
832
+ /** One broad age group's share of the population in a year. */
833
+ export type AgeShareRow = { year: number; ageGroup: string; share: number };
834
+
835
+ const BROAD_AGE_GROUPS: [string, string[]][] = [
836
+ ['0-14', ['0-4', '5-9', '10-14']],
837
+ ['15-29', ['15-19', '20-24', '25-29']],
838
+ ['30-44', ['30-34', '35-39', '40-44']],
839
+ ['45-64', ['45-49', '50-54', '55-59', '60-64']],
840
+ ['65+', ['65-69', '70-74', '75-79', '80-84', '85+']]
841
+ ];
842
+
843
+ /** The broad age groups, youngest first. */
844
+ export const BROAD_AGE_GROUP_NAMES = BROAD_AGE_GROUPS.map(([ageGroup]) => ageGroup);
845
+
846
+ const CENSUS_YEARS = [1991, 2001, 2010, 2022];
847
+
848
+ const YEARS = [...new Set(POPULATION_BY_AGE.map(({ year }) => year))];
849
+
850
+ const roundToTenth = (value: number) => Math.round(value * 10) / 10;
851
+
852
+ /** The census years by broad age group and sex: the share of the population. */
853
+ export const POPULATION_BY_BROAD_AGE: AgeRow[] = CENSUS_YEARS.flatMap((year) =>
854
+ BROAD_AGE_GROUPS.flatMap(([ageGroup, ages]) =>
855
+ (['Female', 'Male'] as const).map((sex) => ({
856
+ year,
857
+ ageGroup,
858
+ sex,
859
+ share: roundToTenth(
860
+ POPULATION_BY_AGE.filter(
861
+ (row) => row.year === year && row.sex === sex && ages.includes(row.ageGroup)
862
+ ).reduce((sum, row) => sum + row.share, 0)
863
+ )
864
+ }))
865
+ )
866
+ );
867
+
868
+ /** Every year, censuses and projections, by broad age group: the share of the population, each year adding up to 100. */
869
+ export const AGE_SHARES_BY_YEAR: AgeShareRow[] = YEARS.flatMap((year) => {
870
+ const rows = POPULATION_BY_AGE.filter((row) => row.year === year);
871
+ const whole = rows.reduce((sum, row) => sum + row.share, 0);
872
+ // Tenths of a percent of the year's whole, the leftover ones going to the largest remainders so the year adds up to exactly 100.
873
+ const shares = BROAD_AGE_GROUPS.map(([ageGroup, ages]) => {
874
+ const exact =
875
+ (rows.filter((row) => ages.includes(row.ageGroup)).reduce((sum, row) => sum + row.share, 0) /
876
+ whole) *
877
+ 1000;
878
+ return { ageGroup, tenths: Math.floor(exact), rest: exact % 1 };
879
+ });
880
+ const missing = 1000 - shares.reduce((sum, { tenths }) => sum + tenths, 0);
881
+ for (const share of [...shares].sort((a, b) => b.rest - a.rest).slice(0, missing)) {
882
+ share.tenths += 1;
883
+ }
884
+ return shares.map(({ ageGroup, tenths }) => ({ year, ageGroup, share: tenths / 10 }));
885
+ });
886
+
887
+ /** The census years alone: the share of each broad age group. */
888
+ export const AGE_SHARES: AgeShareRow[] = AGE_SHARES_BY_YEAR.filter(({ year }) =>
889
+ CENSUS_YEARS.includes(year)
890
+ );