@mathstack/viz 2.1.0 → 2.2.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 (450) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +11 -11
  3. package/fesm2022/mathstack-viz.mjs +11024 -0
  4. package/fesm2022/mathstack-viz.mjs.map +1 -0
  5. package/package.json +18 -6
  6. package/types/mathstack-viz.d.ts +5830 -0
  7. package/CHANGELOG.md +0 -0
  8. package/cypress/fixtures/example.json +0 -5
  9. package/cypress/fixtures/usMap.json +0 -13511
  10. package/cypress/support/commands.ts +0 -104
  11. package/cypress/support/component-index.html +0 -12
  12. package/cypress/support/component.ts +0 -33
  13. package/cypress.config.ts +0 -9
  14. package/karma.conf.js +0 -62
  15. package/ng-package.json +0 -8
  16. package/project.json +0 -97
  17. package/src/.eslintrc.json +0 -35
  18. package/src/.prettierrc +0 -31
  19. package/src/lib/axes/base/config/xy-axis-builder.ts +0 -68
  20. package/src/lib/axes/base/config/xy-axis-config.ts +0 -35
  21. package/src/lib/axes/base/config/xy-axis-options.ts +0 -11
  22. package/src/lib/axes/base/xy-axis-base.spec.ts +0 -114
  23. package/src/lib/axes/base/xy-axis-base.ts +0 -305
  24. package/src/lib/axes/base/xy-axis-domain-lines.cy.ts +0 -511
  25. package/src/lib/axes/baseline/axis-baseline-builder.ts +0 -77
  26. package/src/lib/axes/baseline/axis-baseline-options.ts +0 -4
  27. package/src/lib/axes/baseline/axis-baseline.ts +0 -11
  28. package/src/lib/axes/grid/grid-builder.ts +0 -74
  29. package/src/lib/axes/grid/grid-config.ts +0 -13
  30. package/src/lib/axes/grid/grid-options.ts +0 -7
  31. package/src/lib/axes/index.ts +0 -40
  32. package/src/lib/axes/label/axis-label-builder.ts +0 -140
  33. package/src/lib/axes/label/axis-label-options.ts +0 -12
  34. package/src/lib/axes/label/axis-label.ts +0 -18
  35. package/src/lib/axes/label/axis-labels.cy.ts +0 -303
  36. package/src/lib/axes/ordinal/ordinal-axis-config.ts +0 -31
  37. package/src/lib/axes/ordinal/ordinal-axis.spec.ts +0 -30
  38. package/src/lib/axes/ordinal/ordinal-axis.ts +0 -26
  39. package/src/lib/axes/quantitative/quantitative-axis-config.ts +0 -39
  40. package/src/lib/axes/quantitative/quantitative-axis-ticks.cy.ts +0 -748
  41. package/src/lib/axes/quantitative/quantitative-axis.spec.ts +0 -537
  42. package/src/lib/axes/quantitative/quantitative-axis.ts +0 -191
  43. package/src/lib/axes/ticks/tick-wrap/tick-wrap-builder.ts +0 -141
  44. package/src/lib/axes/ticks/tick-wrap/tick-wrap-options.ts +0 -11
  45. package/src/lib/axes/ticks/tick-wrap/tick-wrap.cy.ts +0 -360
  46. package/src/lib/axes/ticks/tick-wrap/tick-wrap.ts +0 -21
  47. package/src/lib/axes/ticks/ticks-builder.ts +0 -370
  48. package/src/lib/axes/ticks/ticks-options.ts +0 -24
  49. package/src/lib/axes/ticks/ticks.ts +0 -33
  50. package/src/lib/axes/x/x-axis-config.ts +0 -48
  51. package/src/lib/axes/x/x-axis.spec.ts +0 -90
  52. package/src/lib/axes/x/x-axis.ts +0 -109
  53. package/src/lib/axes/x-ordinal/x-ordinal-axis-builder.ts +0 -75
  54. package/src/lib/axes/x-ordinal/x-ordinal-axis-config.ts +0 -27
  55. package/src/lib/axes/x-ordinal/x-ordinal-axis.component.ts +0 -33
  56. package/src/lib/axes/x-quantitative/x-quantitative-axis-builder.ts +0 -74
  57. package/src/lib/axes/x-quantitative/x-quantitative-axis-config.ts +0 -32
  58. package/src/lib/axes/x-quantitative/x-quantitative-axis.component.ts +0 -40
  59. package/src/lib/axes/xy-axis.module.ts +0 -20
  60. package/src/lib/axes/y/y-axis-config.ts +0 -47
  61. package/src/lib/axes/y/y-axis.spec.ts +0 -92
  62. package/src/lib/axes/y/y-axis.ts +0 -161
  63. package/src/lib/axes/y-ordinal/y-ordinal-axis-builder.ts +0 -76
  64. package/src/lib/axes/y-ordinal/y-ordinal-axis-config.ts +0 -29
  65. package/src/lib/axes/y-ordinal/y-ordinal-axis.component.ts +0 -33
  66. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-builder.ts +0 -74
  67. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-config.ts +0 -34
  68. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis.component.ts +0 -40
  69. package/src/lib/bars/bars.component.scss +0 -0
  70. package/src/lib/bars/bars.component.spec.ts +0 -1470
  71. package/src/lib/bars/bars.component.ts +0 -717
  72. package/src/lib/bars/bars.cy.ts +0 -829
  73. package/src/lib/bars/bars.module.ts +0 -9
  74. package/src/lib/bars/config/backgrounds/bars-backgrounds-builder.ts +0 -51
  75. package/src/lib/bars/config/backgrounds/bars-backgrounds-options.ts +0 -4
  76. package/src/lib/bars/config/backgrounds/bars-backgrounds.ts +0 -11
  77. package/src/lib/bars/config/bars-builder.ts +0 -340
  78. package/src/lib/bars/config/bars-config.spec.ts +0 -132
  79. package/src/lib/bars/config/bars-config.ts +0 -70
  80. package/src/lib/bars/config/bars-dimensions.ts +0 -29
  81. package/src/lib/bars/config/bars-options.ts +0 -20
  82. package/src/lib/bars/config/labels/bars-labels-builder.ts +0 -89
  83. package/src/lib/bars/config/labels/bars-labels-options.ts +0 -6
  84. package/src/lib/bars/config/labels/bars-labels.cy.ts +0 -781
  85. package/src/lib/bars/config/labels/bars-labels.ts +0 -13
  86. package/src/lib/bars/events/actions/bars-click-actions.ts +0 -23
  87. package/src/lib/bars/events/actions/bars-hover-actions.ts +0 -43
  88. package/src/lib/bars/events/actions/bars-hover-move-actions.ts +0 -21
  89. package/src/lib/bars/events/bars-events.directive.spec.ts +0 -186
  90. package/src/lib/bars/events/bars-events.directive.ts +0 -235
  91. package/src/lib/bars/events/bars-interaction-output.ts +0 -17
  92. package/src/lib/bars/events/bars-tooltip-positioner.ts +0 -24
  93. package/src/lib/bars/index.ts +0 -18
  94. package/src/lib/charts/chart/chart-scaling.cy.ts +0 -323
  95. package/src/lib/charts/chart/chart.component.html +0 -45
  96. package/src/lib/charts/chart/chart.component.scss +0 -37
  97. package/src/lib/charts/chart/chart.component.ts +0 -243
  98. package/src/lib/charts/chart/chart.token.ts +0 -4
  99. package/src/lib/charts/chart/chart.ts +0 -5
  100. package/src/lib/charts/chart/config/chart-builder.ts +0 -194
  101. package/src/lib/charts/chart/config/chart-config.ts +0 -21
  102. package/src/lib/charts/chart/config/chart-options.ts +0 -11
  103. package/src/lib/charts/chart.module.ts +0 -10
  104. package/src/lib/charts/index.ts +0 -9
  105. package/src/lib/charts/map-chart/map-chart.component.scss +0 -0
  106. package/src/lib/charts/map-chart/map-chart.component.spec.ts +0 -35
  107. package/src/lib/charts/map-chart/map-chart.component.ts +0 -61
  108. package/src/lib/charts/xy-chart/xy-chart.component.spec.ts +0 -34
  109. package/src/lib/charts/xy-chart/xy-chart.component.ts +0 -65
  110. package/src/lib/core/common-behaviors/constructor.ts +0 -7
  111. package/src/lib/core/index.ts +0 -11
  112. package/src/lib/core/pipes/resize-chart-height.pipe.spec.ts +0 -23
  113. package/src/lib/core/pipes/resize-chart-height.pipe.ts +0 -20
  114. package/src/lib/core/styles/_spacing.scss +0 -4
  115. package/src/lib/core/types/layout.ts +0 -28
  116. package/src/lib/core/types/scale.ts +0 -6
  117. package/src/lib/core/types/utility.ts +0 -11
  118. package/src/lib/core/types/values.ts +0 -10
  119. package/src/lib/core/utilities/colors.spec.ts +0 -57
  120. package/src/lib/core/utilities/colors.ts +0 -42
  121. package/src/lib/core/utilities/fill-utilities.spec.ts +0 -25
  122. package/src/lib/core/utilities/fill-utilities.ts +0 -21
  123. package/src/lib/core/utilities/type-guards.spec.ts +0 -55
  124. package/src/lib/core/utilities/type-guards.ts +0 -33
  125. package/src/lib/core/utilities/value-format.ts +0 -21
  126. package/src/lib/core/utilities/values.spec.ts +0 -954
  127. package/src/lib/core/utilities/values.ts +0 -189
  128. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-builder.ts +0 -105
  129. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-options.ts +0 -24
  130. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.spec.ts +0 -66
  131. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.ts +0 -72
  132. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/concrete-domain-padding.ts +0 -10
  133. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-padding.ts +0 -76
  134. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-test-utility.ts +0 -130
  135. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over-options.ts +0 -3
  136. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over.ts +0 -37
  137. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel-options.ts +0 -3
  138. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel.ts +0 -73
  139. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/quantitative-domain-padding.cy.ts +0 -978
  140. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval-options.ts +0 -3
  141. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval.ts +0 -27
  142. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig-options.ts +0 -3
  143. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig.ts +0 -30
  144. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder.ts +0 -183
  145. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-options.ts +0 -8
  146. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.spec.ts +0 -28
  147. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.ts +0 -62
  148. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension-options.ts +0 -15
  149. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.spec.ts +0 -155
  150. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.ts +0 -57
  151. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-builder.ts +0 -166
  152. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-options.ts +0 -10
  153. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.spec.ts +0 -34
  154. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.ts +0 -57
  155. package/src/lib/data-dimensions/dimension-builder.ts +0 -45
  156. package/src/lib/data-dimensions/dimension-options.ts +0 -12
  157. package/src/lib/data-dimensions/dimension.ts +0 -30
  158. package/src/lib/data-dimensions/index.ts +0 -31
  159. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder.ts +0 -122
  160. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-options.ts +0 -12
  161. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.spec.ts +0 -83
  162. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.ts +0 -101
  163. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder.ts +0 -108
  164. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-options.ts +0 -12
  165. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.cy.ts +0 -384
  166. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.spec.ts +0 -63
  167. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.ts +0 -79
  168. package/src/lib/data-export/data-export-config.ts +0 -98
  169. package/src/lib/data-export/data-export.spec.ts +0 -33
  170. package/src/lib/data-export/data-export.ts +0 -87
  171. package/src/lib/data-export/index.ts +0 -2
  172. package/src/lib/dots/config/dots-builder.ts +0 -442
  173. package/src/lib/dots/config/dots-config.spec.ts +0 -123
  174. package/src/lib/dots/config/dots-config.ts +0 -81
  175. package/src/lib/dots/config/dots-options.ts +0 -32
  176. package/src/lib/dots/dots.component.scss +0 -0
  177. package/src/lib/dots/dots.component.spec.ts +0 -143
  178. package/src/lib/dots/dots.component.ts +0 -291
  179. package/src/lib/dots/dots.cy.ts +0 -594
  180. package/src/lib/dots/dots.module.ts +0 -9
  181. package/src/lib/dots/events/actions/dots-hover-actions.ts +0 -19
  182. package/src/lib/dots/events/actions/dots-hover-move-actions.ts +0 -38
  183. package/src/lib/dots/events/dots-events.directive.ts +0 -214
  184. package/src/lib/dots/events/dots-interaction-output.ts +0 -15
  185. package/src/lib/dots/events/dots-tooltip-positioner.ts +0 -24
  186. package/src/lib/dots/index.ts +0 -10
  187. package/src/lib/events/events.directive.ts +0 -184
  188. package/src/lib/events/events.types.ts +0 -57
  189. package/src/lib/events/index.ts +0 -4
  190. package/src/lib/events/interaction-output.ts +0 -34
  191. package/src/lib/events/tooltip-positioner.ts +0 -15
  192. package/src/lib/fill-definitions/fill-definitions.ts +0 -4
  193. package/src/lib/fill-definitions/index.ts +0 -1
  194. package/src/lib/geographies/config/geographies-builder.ts +0 -224
  195. package/src/lib/geographies/config/geographies-config.spec.ts +0 -100
  196. package/src/lib/geographies/config/geographies-config.ts +0 -81
  197. package/src/lib/geographies/config/geographies-options.ts +0 -37
  198. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-builder.ts +0 -212
  199. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-options.ts +0 -26
  200. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.spec.ts +0 -119
  201. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.ts +0 -148
  202. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-builder.ts +0 -65
  203. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-options.ts +0 -15
  204. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension.ts +0 -32
  205. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-enums.ts +0 -10
  206. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-types.ts +0 -15
  207. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-builder.ts +0 -18
  208. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-options.ts +0 -8
  209. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.spec.ts +0 -60
  210. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.ts +0 -34
  211. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-builder.ts +0 -46
  212. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-options.ts +0 -8
  213. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.cy.ts +0 -437
  214. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.spec.ts +0 -105
  215. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.ts +0 -54
  216. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-builder.ts +0 -65
  217. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-options.ts +0 -9
  218. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.spec.ts +0 -82
  219. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.ts +0 -81
  220. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks.cy.ts +0 -378
  221. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-builder.ts +0 -50
  222. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-options.ts +0 -8
  223. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.cy.ts +0 -362
  224. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.spec.ts +0 -72
  225. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.ts +0 -56
  226. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-builder.ts +0 -60
  227. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-options.ts +0 -9
  228. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.cy.ts +0 -307
  229. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.spec.ts +0 -104
  230. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.ts +0 -89
  231. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-builder.ts +0 -62
  232. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-options.ts +0 -8
  233. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.cy.ts +0 -265
  234. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.spec.ts +0 -42
  235. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.ts +0 -42
  236. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-builder.ts +0 -116
  237. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-options.ts +0 -20
  238. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer.ts +0 -104
  239. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-builder.ts +0 -111
  240. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-options.ts +0 -19
  241. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.spec.ts +0 -41
  242. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.ts +0 -67
  243. package/src/lib/geographies/config/layers/labels/geographies-labels-builder.ts +0 -269
  244. package/src/lib/geographies/config/layers/labels/geographies-labels-options.ts +0 -45
  245. package/src/lib/geographies/config/layers/labels/geographies-labels.ts +0 -38
  246. package/src/lib/geographies/events/actions/geographies-click-actions.ts +0 -21
  247. package/src/lib/geographies/events/actions/geographies-hover-actions.ts +0 -17
  248. package/src/lib/geographies/events/actions/geographies-hover-move-actions.ts +0 -19
  249. package/src/lib/geographies/events/geographies-events.directive.spec.ts +0 -225
  250. package/src/lib/geographies/events/geographies-events.directive.ts +0 -235
  251. package/src/lib/geographies/events/geographies-interaction-output.ts +0 -17
  252. package/src/lib/geographies/events/geographies-tooltip-positioner.ts +0 -23
  253. package/src/lib/geographies/geographies-feature.ts +0 -16
  254. package/src/lib/geographies/geographies.component.html +0 -1
  255. package/src/lib/geographies/geographies.component.scss +0 -0
  256. package/src/lib/geographies/geographies.component.spec.ts +0 -148
  257. package/src/lib/geographies/geographies.component.ts +0 -318
  258. package/src/lib/geographies/geographies.cy.ts +0 -640
  259. package/src/lib/geographies/geographies.module.ts +0 -9
  260. package/src/lib/geographies/index.ts +0 -32
  261. package/src/lib/grouped-bars/config/grouped-bars-builder.ts +0 -66
  262. package/src/lib/grouped-bars/config/grouped-bars-config.ts +0 -41
  263. package/src/lib/grouped-bars/config/grouped-bars-options.ts +0 -9
  264. package/src/lib/grouped-bars/events/grouped-bars-events.directive.ts +0 -221
  265. package/src/lib/grouped-bars/grouped-bars.component.scss +0 -0
  266. package/src/lib/grouped-bars/grouped-bars.component.spec.ts +0 -25
  267. package/src/lib/grouped-bars/grouped-bars.component.ts +0 -94
  268. package/src/lib/grouped-bars/grouped-bars.module.ts +0 -9
  269. package/src/lib/grouped-bars/index.ts +0 -10
  270. package/src/lib/image-download/image-download-config.ts +0 -57
  271. package/src/lib/image-download/image-download-enums.ts +0 -7
  272. package/src/lib/image-download/image-download-options.ts +0 -14
  273. package/src/lib/image-download/image-download.service.ts +0 -70
  274. package/src/lib/image-download/index.ts +0 -4
  275. package/src/lib/lines/config/area-fills/area-fills-builder.ts +0 -87
  276. package/src/lib/lines/config/area-fills/area-fills-options.ts +0 -8
  277. package/src/lib/lines/config/area-fills/area-fills.ts +0 -14
  278. package/src/lib/lines/config/lines-builder.ts +0 -242
  279. package/src/lib/lines/config/lines-config.spec.ts +0 -52
  280. package/src/lib/lines/config/lines-config.ts +0 -96
  281. package/src/lib/lines/config/lines-options.ts +0 -19
  282. package/src/lib/lines/config/stroke/lines-stroke-builder.ts +0 -135
  283. package/src/lib/lines/config/stroke/lines-stroke-options.ts +0 -6
  284. package/src/lib/lines/config/stroke/lines-stroke.ts +0 -15
  285. package/src/lib/lines/events/actions/lines-click-actions.ts +0 -17
  286. package/src/lib/lines/events/actions/lines-hover-move-actions.ts +0 -113
  287. package/src/lib/lines/events/actions/lines-marker-click-actions.ts +0 -29
  288. package/src/lib/lines/events/lines-events.directive.spec.ts +0 -152
  289. package/src/lib/lines/events/lines-events.directive.ts +0 -310
  290. package/src/lib/lines/events/lines-interaction-output.ts +0 -17
  291. package/src/lib/lines/events/lines-tooltip-positioner.ts +0 -24
  292. package/src/lib/lines/index.ts +0 -17
  293. package/src/lib/lines/lines.component.scss +0 -0
  294. package/src/lib/lines/lines.component.spec.ts +0 -95
  295. package/src/lib/lines/lines.component.ts +0 -425
  296. package/src/lib/lines/lines.cy.ts +0 -738
  297. package/src/lib/lines/lines.module.ts +0 -9
  298. package/src/lib/map-legend/continuous-legend/continuous-legend.component.html +0 -28
  299. package/src/lib/map-legend/continuous-legend/continuous-legend.component.scss +0 -76
  300. package/src/lib/map-legend/continuous-legend/continuous-legend.component.spec.ts +0 -61
  301. package/src/lib/map-legend/continuous-legend/continuous-legend.component.ts +0 -82
  302. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.html +0 -40
  303. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.scss +0 -141
  304. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.spec.ts +0 -75
  305. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.ts +0 -57
  306. package/src/lib/map-legend/index.ts +0 -2
  307. package/src/lib/map-legend/map-legend-base.spec.ts +0 -190
  308. package/src/lib/map-legend/map-legend-base.ts +0 -99
  309. package/src/lib/map-legend/map-legend.component.html +0 -24
  310. package/src/lib/map-legend/map-legend.component.scss +0 -0
  311. package/src/lib/map-legend/map-legend.component.spec.ts +0 -125
  312. package/src/lib/map-legend/map-legend.component.ts +0 -80
  313. package/src/lib/map-legend/map-legend.module.ts +0 -8
  314. package/src/lib/marks/aux-marks/aux-marks.ts +0 -18
  315. package/src/lib/marks/aux-marks/config/aux-marks-builder.ts +0 -25
  316. package/src/lib/marks/aux-marks/config/aux-marks-config.ts +0 -6
  317. package/src/lib/marks/config/marks-config.ts +0 -14
  318. package/src/lib/marks/config/marks-options.ts +0 -9
  319. package/src/lib/marks/index.ts +0 -15
  320. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.spec.ts +0 -74
  321. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.ts +0 -40
  322. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.spec.ts +0 -79
  323. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.ts +0 -63
  324. package/src/lib/marks/marks.ts +0 -39
  325. package/src/lib/marks/primary-marks/config/primary-marks-builder.ts +0 -75
  326. package/src/lib/marks/primary-marks/config/primary-marks-config.ts +0 -9
  327. package/src/lib/marks/primary-marks/primary-marks-base.spec.ts +0 -58
  328. package/src/lib/marks/primary-marks/primary-marks.ts +0 -43
  329. package/src/lib/marks/xy-marks/xy-aux-marks/xy-aux-marks.ts +0 -40
  330. package/src/lib/marks/xy-marks/xy-marks-config.ts +0 -5
  331. package/src/lib/marks/xy-marks/xy-marks.ts +0 -10
  332. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks-config.ts +0 -7
  333. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.spec.ts +0 -186
  334. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.ts +0 -72
  335. package/src/lib/point-markers/index.ts +0 -3
  336. package/src/lib/point-markers/point-markers-builder.ts +0 -93
  337. package/src/lib/point-markers/point-markers-options.ts +0 -6
  338. package/src/lib/point-markers/point-markers.ts +0 -13
  339. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-builder.ts +0 -162
  340. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-options.ts +0 -17
  341. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels.ts +0 -26
  342. package/src/lib/quantitative-rules/config/quantitative-rules-builder.ts +0 -134
  343. package/src/lib/quantitative-rules/config/quantitative-rules-config.ts +0 -21
  344. package/src/lib/quantitative-rules/config/quantitative-rules-dimensions.ts +0 -20
  345. package/src/lib/quantitative-rules/config/quantitative-rules-options.ts +0 -13
  346. package/src/lib/quantitative-rules/index.ts +0 -6
  347. package/src/lib/quantitative-rules/quantitative-rules.component.scss +0 -3
  348. package/src/lib/quantitative-rules/quantitative-rules.component.spec.ts +0 -50
  349. package/src/lib/quantitative-rules/quantitative-rules.component.ts +0 -224
  350. package/src/lib/quantitative-rules/quantitative-rules.cy.ts +0 -549
  351. package/src/lib/quantitative-rules/quantitative-rules.module.ts +0 -8
  352. package/src/lib/stacked-area/config/stacked-area-builder.ts +0 -264
  353. package/src/lib/stacked-area/config/stacked-area-config.spec.ts +0 -107
  354. package/src/lib/stacked-area/config/stacked-area-config.ts +0 -109
  355. package/src/lib/stacked-area/config/stacked-area-options.ts +0 -28
  356. package/src/lib/stacked-area/events/actions/stacked-area-hover-move-actions.ts +0 -17
  357. package/src/lib/stacked-area/events/stacked-area-events.directive.spec.ts +0 -168
  358. package/src/lib/stacked-area/events/stacked-area-events.directive.ts +0 -272
  359. package/src/lib/stacked-area/events/stacked-area-interaction-output.ts +0 -33
  360. package/src/lib/stacked-area/events/stacked-area-tooltip-positioner.ts +0 -37
  361. package/src/lib/stacked-area/index.ts +0 -7
  362. package/src/lib/stacked-area/stacked-area.component.scss +0 -0
  363. package/src/lib/stacked-area/stacked-area.component.spec.ts +0 -41
  364. package/src/lib/stacked-area/stacked-area.component.ts +0 -241
  365. package/src/lib/stacked-area/stacked-area.module.ts +0 -9
  366. package/src/lib/stacked-bars/config/stacked-bars-builder.ts +0 -109
  367. package/src/lib/stacked-bars/config/stacked-bars-config.spec.ts +0 -122
  368. package/src/lib/stacked-bars/config/stacked-bars-config.ts +0 -79
  369. package/src/lib/stacked-bars/config/stacked-bars-options.ts +0 -16
  370. package/src/lib/stacked-bars/events/actions/stacked-bars-click-actions.ts +0 -23
  371. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-actions.ts +0 -22
  372. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-move-actions.ts +0 -21
  373. package/src/lib/stacked-bars/events/stacked-bars-events.directive.spec.ts +0 -266
  374. package/src/lib/stacked-bars/events/stacked-bars-events.directive.ts +0 -240
  375. package/src/lib/stacked-bars/index.ts +0 -10
  376. package/src/lib/stacked-bars/stacked-bars.component.scss +0 -0
  377. package/src/lib/stacked-bars/stacked-bars.component.spec.ts +0 -25
  378. package/src/lib/stacked-bars/stacked-bars.component.ts +0 -158
  379. package/src/lib/stacked-bars/stacked-bars.module.ts +0 -9
  380. package/src/lib/stroke/base/stroke-base-options.ts +0 -7
  381. package/src/lib/stroke/base/stroke-base.ts +0 -9
  382. package/src/lib/stroke/index.ts +0 -5
  383. package/src/lib/stroke/stroke-builder.ts +0 -103
  384. package/src/lib/stroke/stroke-options.ts +0 -5
  385. package/src/lib/stroke/stroke.ts +0 -12
  386. package/src/lib/svg-text-wrap/index.ts +0 -3
  387. package/src/lib/svg-text-wrap/svg-text-wrap-builder.ts +0 -105
  388. package/src/lib/svg-text-wrap/svg-text-wrap-options.ts +0 -8
  389. package/src/lib/svg-text-wrap/svg-text-wrap.ts +0 -137
  390. package/src/lib/testing/data/continent-population-year-data.ts +0 -126
  391. package/src/lib/testing/data/country-area-continent.ts +0 -59
  392. package/src/lib/testing/data/state-population-income-year-data.ts +0 -123
  393. package/src/lib/testing/stubs/bars.component.stub.ts +0 -12
  394. package/src/lib/testing/stubs/chart.component.stub.ts +0 -6
  395. package/src/lib/testing/stubs/click.directive.stub.ts +0 -15
  396. package/src/lib/testing/stubs/core/destroy-ref.stub.ts +0 -9
  397. package/src/lib/testing/stubs/core/overlay-ref.stub.ts +0 -13
  398. package/src/lib/testing/stubs/core/overlay.stub.ts +0 -8
  399. package/src/lib/testing/stubs/event.directive.stub.ts +0 -10
  400. package/src/lib/testing/stubs/hover-move.directive.stub.ts +0 -17
  401. package/src/lib/testing/stubs/hover.directive.stub.ts +0 -14
  402. package/src/lib/testing/stubs/input-event.directive.stub.ts +0 -9
  403. package/src/lib/testing/stubs/lines.component.stub.ts +0 -13
  404. package/src/lib/testing/stubs/map-aux-marks.stub.ts +0 -10
  405. package/src/lib/testing/stubs/map-chart.component.stub.ts +0 -3
  406. package/src/lib/testing/stubs/map-legend-content.stub.ts +0 -16
  407. package/src/lib/testing/stubs/map-legend.component.stub.ts +0 -10
  408. package/src/lib/testing/stubs/map-primary-marks.stub.ts +0 -16
  409. package/src/lib/testing/stubs/ordinal-axis.stub.ts +0 -18
  410. package/src/lib/testing/stubs/primary-marks.stub.ts +0 -18
  411. package/src/lib/testing/stubs/quantitative-axis.stub.ts +0 -18
  412. package/src/lib/testing/stubs/services/main.service.stub.ts +0 -5
  413. package/src/lib/testing/stubs/services/utilities.service.stub.ts +0 -7
  414. package/src/lib/testing/stubs/stacked-area.component.stub.ts +0 -13
  415. package/src/lib/testing/stubs/x-axis.stub.ts +0 -10
  416. package/src/lib/testing/stubs/xy-axis.class.stub.ts +0 -20
  417. package/src/lib/testing/stubs/xy-axis.stub.ts +0 -44
  418. package/src/lib/testing/stubs/xy-chart.component.stub.ts +0 -5
  419. package/src/lib/testing/stubs/xy-data-marks.stub.ts +0 -15
  420. package/src/lib/testing/stubs/y-axis.stub.ts +0 -15
  421. package/src/lib/tooltips/config/tooltip.ts +0 -11
  422. package/src/lib/tooltips/html-tooltip/config/html-tooltip-builder.ts +0 -134
  423. package/src/lib/tooltips/html-tooltip/config/html-tooltip-config.ts +0 -21
  424. package/src/lib/tooltips/html-tooltip/config/html-tooltip-options.ts +0 -12
  425. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position-builder.ts +0 -191
  426. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position.ts +0 -42
  427. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-builder.ts +0 -75
  428. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-options.ts +0 -8
  429. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size.ts +0 -15
  430. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.spec.ts +0 -537
  431. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.ts +0 -210
  432. package/src/lib/tooltips/html-tooltip/html-tooltip.module.ts +0 -16
  433. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.html +0 -41
  434. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.scss +0 -63
  435. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.ts +0 -19
  436. package/src/lib/tooltips/index.ts +0 -11
  437. package/src/lib/tooltips/svg-tooltip/config/svg-tooltip.ts +0 -5
  438. package/src/lib/xy-background/index.ts +0 -2
  439. package/src/lib/xy-background/xy-background.component.html +0 -10
  440. package/src/lib/xy-background/xy-background.component.scss +0 -0
  441. package/src/lib/xy-background/xy-background.component.spec.ts +0 -24
  442. package/src/lib/xy-background/xy-background.component.ts +0 -19
  443. package/src/lib/xy-background/xy-background.module.ts +0 -8
  444. package/src/public-api.ts +0 -26
  445. package/src/test.ts +0 -15
  446. package/tsconfig.doc.json +0 -4
  447. package/tsconfig.json +0 -20
  448. package/tsconfig.lib.json +0 -23
  449. package/tsconfig.lib.prod.json +0 -10
  450. package/tsconfig.spec.json +0 -10
@@ -1,264 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { safeAssign } from '@mathstack/app-kit';
3
- import {
4
- CurveFactory,
5
- curveLinear,
6
- InternMap,
7
- Series,
8
- stackOffsetNone,
9
- stackOrderNone,
10
- } from 'd3';
11
- import { ContinuousValue, DataValue } from '../../core/types/values';
12
- import { DateChartPositionDimensionBuilder } from '../../data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-builder';
13
- import { NumberChartPositionDimensionBuilder } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder';
14
- import { OrdinalVisualValueDimensionBuilder } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder';
15
- import { PrimaryMarksBuilder } from '../../marks/primary-marks/config/primary-marks-builder';
16
- import { StackedAreaConfig } from './stacked-area-config';
17
-
18
- const DEFAULT = {
19
- _curve: curveLinear,
20
- _stackOrder: stackOrderNone,
21
- _stackOffset: stackOffsetNone,
22
- };
23
-
24
- /**
25
- * Builds a configuration object for a StackedAreaComponent.
26
- *
27
- * Must be added to a providers array in or above the component that consumes it if it is injected via the constructor. (e.g. `providers: [VicStackedAreaBuilder]` in the component decorator)
28
- *
29
- * The first generic parameter, Datum, is the type of the data that will be used to create the stacked area chart.
30
- *
31
- * The second generic parameter, TCategoricalValue, is the type of the categorical data that will be used to stack the areas.
32
- */
33
- @Injectable()
34
- export class VicStackedAreaConfigBuilder<
35
- Datum,
36
- CategoricalDomain extends DataValue,
37
- > extends PrimaryMarksBuilder<Datum> {
38
- private colorDimensionBuilder: OrdinalVisualValueDimensionBuilder<
39
- Datum,
40
- CategoricalDomain,
41
- string
42
- >;
43
- private _categoricalOrder: CategoricalDomain[];
44
- private _curve: CurveFactory;
45
- private _stackOrder: (
46
- series: Series<
47
- [ContinuousValue, InternMap<CategoricalDomain, number>],
48
- CategoricalDomain
49
- >
50
- ) => Iterable<number>;
51
- private _stackOffset: (
52
- series: Series<
53
- [ContinuousValue, InternMap<CategoricalDomain, number>],
54
- CategoricalDomain
55
- >[],
56
- order: number[]
57
- ) => void;
58
- private xDimensionBuilder:
59
- | NumberChartPositionDimensionBuilder<Datum>
60
- | DateChartPositionDimensionBuilder<Datum>;
61
- private yDimensionBuilder: NumberChartPositionDimensionBuilder<Datum>;
62
-
63
- constructor() {
64
- super();
65
- safeAssign(this, DEFAULT);
66
- }
67
-
68
- /**
69
- * REQUIRED. Sets the categorical dimension for the stacked area chart.
70
- */
71
- color(
72
- color: (
73
- color: OrdinalVisualValueDimensionBuilder<
74
- Datum,
75
- CategoricalDomain,
76
- string
77
- >
78
- ) => void
79
- ): this {
80
- this.colorDimensionBuilder = new OrdinalVisualValueDimensionBuilder<
81
- Datum,
82
- CategoricalDomain,
83
- string
84
- >();
85
- color(this.colorDimensionBuilder);
86
- return this;
87
- }
88
-
89
- /**
90
- * OPTIONAL. Allows user to provide a custom order for the categories of data / the stack.
91
- *
92
- * If not provided, the order will be determined by d3.
93
- */
94
- categoricalOrder(value: CategoricalDomain[]): this {
95
- if (value === null) {
96
- this._categoricalOrder = undefined;
97
- return this;
98
- }
99
- this._categoricalOrder = value;
100
- return this;
101
- }
102
-
103
- /**
104
- * OPTIONAL. Sets the curve factory for the line.
105
- *
106
- * @default curveLinear
107
- */
108
- curve(value: null): this;
109
- curve(value: CurveFactory): this;
110
- curve(value: CurveFactory | null): this {
111
- if (value === null) {
112
- this._curve = DEFAULT._curve;
113
- return this;
114
- }
115
- this._curve = value;
116
- return this;
117
- }
118
-
119
- /**
120
- * OPTIONAL: Sets the order of the stack.
121
- *
122
- * @default stackOrderNone
123
- */
124
- stackOrder(stackOrder: null): this;
125
- stackOrder(
126
- stackOrder: (
127
- series: Series<
128
- [ContinuousValue, InternMap<CategoricalDomain, number>],
129
- CategoricalDomain
130
- >
131
- ) => Iterable<number>
132
- ): this;
133
- stackOrder(
134
- stackOrder:
135
- | ((
136
- series: Series<
137
- [ContinuousValue, InternMap<CategoricalDomain, number>],
138
- CategoricalDomain
139
- >
140
- ) => Iterable<number>)
141
- | null
142
- ): this {
143
- if (stackOrder === null) {
144
- this._stackOrder = DEFAULT._stackOrder;
145
- return this;
146
- }
147
- this._stackOrder = stackOrder;
148
- return this;
149
- }
150
-
151
- /**
152
- * OPTIONAL. Sets the offset of the stack.
153
- *
154
- * @default stackOffsetNone
155
- */
156
- stackOffset(stackOffset: null): this;
157
- stackOffset(
158
- stackOffset: (
159
- series: Series<
160
- [ContinuousValue, InternMap<CategoricalDomain, number>],
161
- CategoricalDomain
162
- >[],
163
- order: number[]
164
- ) => void
165
- ): this;
166
- stackOffset(
167
- stackOffset:
168
- | ((
169
- series: Series<
170
- [ContinuousValue, InternMap<CategoricalDomain, number>],
171
- CategoricalDomain
172
- >[],
173
- order: number[]
174
- ) => void)
175
- | null
176
- ): this {
177
- if (stackOffset === null) {
178
- this._stackOffset = DEFAULT._stackOffset;
179
- return this;
180
- }
181
- this._stackOffset = stackOffset;
182
- return this;
183
- }
184
-
185
- /**
186
- * REQUIRED. Sets the x dimension for the stacked area chart when using Date data.
187
- */
188
- xDate(x: null): this;
189
- xDate(x: (x: DateChartPositionDimensionBuilder<Datum>) => void): this;
190
- xDate(
191
- x: ((x: DateChartPositionDimensionBuilder<Datum>) => void) | null
192
- ): this {
193
- if (x === null) return this;
194
- this.xDimensionBuilder = new DateChartPositionDimensionBuilder<Datum>();
195
- x(this.xDimensionBuilder);
196
- return this;
197
- }
198
-
199
- /**
200
- * REQUIRED. Sets the x dimension for the stacked area chart when using numeric data.
201
- */
202
- xNumeric(x: null): this;
203
- xNumeric(x: (x: NumberChartPositionDimensionBuilder<Datum>) => void): this;
204
- xNumeric(
205
- x: ((x: NumberChartPositionDimensionBuilder<Datum>) => void) | null
206
- ): this {
207
- // do not reset the xDimensionBuilder if null is passed. if xNumeric is not called, then xDate will be called
208
- // allow for
209
- // .xNumber((x) => condition ? x.stuff() : null)
210
- // .xDate((x) => !condition ? x.stuff() : null)
211
- if (x === null) return this;
212
- this.xDimensionBuilder = new NumberChartPositionDimensionBuilder<Datum>();
213
- x(this.xDimensionBuilder);
214
- return this;
215
- }
216
-
217
- /**
218
- * REQUIRED. Sets the y dimension for the stacked area chart.
219
- */
220
- y(y: (y: NumberChartPositionDimensionBuilder<Datum>) => void): this {
221
- this.yDimensionBuilder = new NumberChartPositionDimensionBuilder<Datum>();
222
- y(this.yDimensionBuilder);
223
- return this;
224
- }
225
-
226
- /**
227
- * REQUIRED. Builds the configuration object for the stacked area chart.
228
- */
229
- getConfig(): StackedAreaConfig<Datum, CategoricalDomain> {
230
- this.validateBuilder();
231
- return new StackedAreaConfig({
232
- marksClass: 'vic-stacked-area',
233
- color: this.colorDimensionBuilder._build('Color'),
234
- categoricalOrder: this._categoricalOrder,
235
- curve: this._curve,
236
- data: this._data,
237
- datumClass: this._datumClass,
238
- mixBlendMode: this._mixBlendMode,
239
- stackOrder: this._stackOrder,
240
- stackOffset: this._stackOffset,
241
- x: this.xDimensionBuilder._build('X'),
242
- y: this.yDimensionBuilder._build('Y'),
243
- });
244
- }
245
-
246
- protected override validateBuilder(): void {
247
- super.validateBuilder('Stacked Area');
248
- if (!this.colorDimensionBuilder) {
249
- throw new Error(
250
- 'Stacked Area Builder: Color dimension must be created. Please use method `color` to set the categorical dimension.'
251
- );
252
- }
253
- if (!this.xDimensionBuilder) {
254
- throw new Error(
255
- 'Stacked Area Builder: X dimension must be created. Please use method `xNumeric` or `xDate` to set the x dimension.'
256
- );
257
- }
258
- if (!this.yDimensionBuilder) {
259
- throw new Error(
260
- 'Stacked Area Builder: Y dimension must be created. Please use method `y` to set the y dimension.'
261
- );
262
- }
263
- }
264
- }
@@ -1,107 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { DateChartPositionDimension } from '../../data-dimensions/continuous-quantitative/date-chart-position/date-chart-position';
3
- import { NumberChartPositionDimension } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position';
4
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
5
- import { VicStackedAreaConfigBuilder } from './stacked-area-builder';
6
- import { StackedAreaConfig } from './stacked-area-config';
7
-
8
- type Datum = { date: Date; value: number; category: string };
9
- const data = [
10
- { date: new Date('2020-01-01'), value: 1, category: 'a' },
11
- { date: new Date('2020-01-02'), value: 2, category: 'a' },
12
- { date: new Date('2020-01-03'), value: 3, category: 'a' },
13
- { date: new Date('2020-01-01'), value: 4, category: 'b' },
14
- { date: new Date('2020-01-02'), value: 5, category: 'b' },
15
- { date: new Date('2020-01-03'), value: 6, category: 'b' },
16
- ];
17
- function createConfig(): StackedAreaConfig<Datum, string> {
18
- return new VicStackedAreaConfigBuilder<Datum, string>()
19
- .data(data)
20
- .xDate((dimension) => dimension.valueAccessor((d) => d.date))
21
- .y((dimension) => dimension.valueAccessor((d) => d.value))
22
- .color((dimension) => dimension.valueAccessor((d) => d.category))
23
- .getConfig();
24
- }
25
-
26
- describe('StackedAreaConfig', () => {
27
- let config: StackedAreaConfig<Datum, string>;
28
- beforeEach(() => {
29
- config = undefined;
30
- });
31
- describe('initPropertiesFromData()', () => {
32
- beforeEach(() => {
33
- spyOn(
34
- StackedAreaConfig.prototype as any,
35
- 'setDimensionPropertiesFromData'
36
- );
37
- spyOn(StackedAreaConfig.prototype as any, 'setValueIndicies');
38
- spyOn(StackedAreaConfig.prototype as any, 'setSeries');
39
- spyOn(
40
- StackedAreaConfig.prototype as any,
41
- 'initQuantitativeDomainFromStack'
42
- );
43
- config = createConfig();
44
- });
45
- it('calls setDimensionPropertiesFromData once', () => {
46
- expect(
47
- (config as any).setDimensionPropertiesFromData
48
- ).toHaveBeenCalledTimes(1);
49
- });
50
- it('calls setValueIndicies once', () => {
51
- expect((config as any).setValueIndicies).toHaveBeenCalledTimes(1);
52
- });
53
- it('calls setSeries once', () => {
54
- expect((config as any).setSeries).toHaveBeenCalledTimes(1);
55
- });
56
- it('calls initQuantitativeDomainFromStack once', () => {
57
- expect(
58
- (config as any).initQuantitativeDomainFromStack
59
- ).toHaveBeenCalledTimes(1);
60
- });
61
- });
62
-
63
- describe('setDimensionPropertiesFromData()', () => {
64
- beforeEach(() => {
65
- spyOn(StackedAreaConfig.prototype as any, 'initPropertiesFromData');
66
- spyOn(DateChartPositionDimension.prototype, 'setPropertiesFromData');
67
- spyOn(NumberChartPositionDimension.prototype, 'setPropertiesFromData');
68
- spyOn(OrdinalVisualValueDimension.prototype, 'setPropertiesFromData');
69
- config = createConfig();
70
- (config as any).setDimensionPropertiesFromData();
71
- });
72
- it('calls x.setPropertiesFromData once', () => {
73
- expect(config.x.setPropertiesFromData).toHaveBeenCalledTimes(1);
74
- });
75
- it('calls y.setPropertiesFromData once', () => {
76
- expect(config.y.setPropertiesFromData).toHaveBeenCalledTimes(1);
77
- });
78
- it('calls categorical.setPropertiesFromData once', () => {
79
- expect(config.color.setPropertiesFromData).toHaveBeenCalledTimes(1);
80
- });
81
- });
82
-
83
- describe('setValueIndicies()', () => {
84
- beforeEach(() => {
85
- spyOn(StackedAreaConfig.prototype as any, 'initPropertiesFromData');
86
- });
87
- it('sets valueIndicies to an array of length 6', () => {
88
- config = createConfig();
89
- (config as any).setDimensionPropertiesFromData();
90
- (config as any).setValueIndicies();
91
- expect(config.valueIndices).toEqual([0, 1, 2, 3, 4, 5]);
92
- });
93
- it('sets valueIndicies to an array of length 3 if categorical domain is limited by user', () => {
94
- config = new VicStackedAreaConfigBuilder<Datum, string>()
95
- .data(data)
96
- .xDate((dimension) => dimension.valueAccessor((d) => d.date))
97
- .y((dimension) => dimension.valueAccessor((d) => d.value))
98
- .color((dimension) =>
99
- dimension.valueAccessor((d) => d.category).domain(['a'])
100
- )
101
- .getConfig();
102
- (config as any).setDimensionPropertiesFromData();
103
- (config as any).setValueIndicies();
104
- expect(config.valueIndices).toEqual([0, 1, 2]);
105
- });
106
- });
107
- });
@@ -1,109 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import {
3
- CurveFactory,
4
- extent,
5
- InternMap,
6
- range,
7
- rollup,
8
- Series,
9
- SeriesPoint,
10
- stack,
11
- } from 'd3';
12
- import { ContinuousValue, DataValue } from '../../core/types/values';
13
- import { DateChartPositionDimension } from '../../data-dimensions/continuous-quantitative/date-chart-position/date-chart-position';
14
- import { NumberChartPositionDimension } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position';
15
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
16
- import { DataMarksOptions } from '../../marks/config/marks-options';
17
- import { XyPrimaryMarksConfig } from '../../marks/xy-marks/xy-primary-marks/xy-primary-marks-config';
18
- import { StackedAreaOptions } from './stacked-area-options';
19
-
20
- export type StackedAreaDatum<CategoricalDomain> = (SeriesPoint<
21
- [ContinuousValue, InternMap<CategoricalDomain, number>]
22
- > & {
23
- i: number;
24
- })[];
25
-
26
- export class StackedAreaConfig<Datum, CategoricalDomain extends DataValue>
27
- extends XyPrimaryMarksConfig<Datum>
28
- implements DataMarksOptions<Datum>
29
- {
30
- color: OrdinalVisualValueDimension<Datum, CategoricalDomain, string>;
31
- categoricalOrder: CategoricalDomain[];
32
- curve: CurveFactory;
33
- stackOrder: (
34
- series: Series<
35
- [ContinuousValue, InternMap<CategoricalDomain, number>],
36
- CategoricalDomain
37
- >
38
- ) => Iterable<number>;
39
- stackOffset: (
40
- series: Series<
41
- [ContinuousValue, InternMap<CategoricalDomain, number>],
42
- CategoricalDomain
43
- >[],
44
- order: number[]
45
- ) => void;
46
- x: DateChartPositionDimension<Datum> | NumberChartPositionDimension<Datum>;
47
- y: NumberChartPositionDimension<Datum>;
48
- series: StackedAreaDatum<CategoricalDomain>[];
49
-
50
- constructor(options: StackedAreaOptions<Datum, CategoricalDomain>) {
51
- super();
52
- safeAssign(this, options);
53
- this.initPropertiesFromData();
54
- }
55
-
56
- protected initPropertiesFromData(): void {
57
- this.setDimensionPropertiesFromData();
58
- this.setValueIndicies();
59
- this.setSeries();
60
- this.initQuantitativeDomainFromStack();
61
- }
62
-
63
- private setDimensionPropertiesFromData(): void {
64
- this.x.setPropertiesFromData(this.data);
65
- this.y.setPropertiesFromData(this.data);
66
- this.color.setPropertiesFromData(this.data);
67
- }
68
-
69
- private setValueIndicies(): void {
70
- this.valueIndices = range(this.x.values.length).filter((i) =>
71
- this.color.domainIncludes(this.color.values[i])
72
- );
73
- }
74
-
75
- private setSeries(): void {
76
- const rolledUpData = rollup(
77
- this.valueIndices,
78
- ([i]) => i,
79
- (i) => this.x.values[i],
80
- (i) => this.color.values[i]
81
- );
82
-
83
- const keys = this.categoricalOrder
84
- ? this.categoricalOrder.slice().reverse()
85
- : this.color.calculatedDomain;
86
-
87
- this.series = stack<
88
- [ContinuousValue, InternMap<CategoricalDomain, number>],
89
- CategoricalDomain
90
- >()
91
- .keys(keys)
92
- .value(([, I], category) => this.y.values[I.get(category)])
93
- .order(this.stackOrder)
94
- .offset(this.stackOffset)(Array.from(rolledUpData))
95
- .map((s) =>
96
- s.map((d) =>
97
- Object.assign(d, {
98
- i: d.data[1].get(s.key),
99
- })
100
- )
101
- );
102
- }
103
-
104
- private initQuantitativeDomainFromStack(): void {
105
- if (this.y.domain === undefined) {
106
- this.y.setDomain(extent(this.series.flat(2)));
107
- }
108
- }
109
- }
@@ -1,28 +0,0 @@
1
- import { CurveFactory, InternMap, Series } from 'd3';
2
- import { ContinuousValue, DataValue } from '../../core/types/values';
3
- import { DateChartPositionDimension } from '../../data-dimensions/continuous-quantitative/date-chart-position/date-chart-position';
4
- import { NumberChartPositionDimension } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position';
5
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
6
- import { DataMarksOptions } from '../../marks/config/marks-options';
7
-
8
- export interface StackedAreaOptions<Datum, CategoricalDomain extends DataValue>
9
- extends DataMarksOptions<Datum>, DataMarksOptions<Datum> {
10
- color: OrdinalVisualValueDimension<Datum, CategoricalDomain, string>;
11
- categoricalOrder: CategoricalDomain[];
12
- curve: CurveFactory;
13
- stackOrder: (
14
- series: Series<
15
- [ContinuousValue, InternMap<CategoricalDomain, number>],
16
- CategoricalDomain
17
- >
18
- ) => Iterable<number>;
19
- stackOffset: (
20
- series: Series<
21
- [ContinuousValue, InternMap<CategoricalDomain, number>],
22
- CategoricalDomain
23
- >[],
24
- order: number[]
25
- ) => void;
26
- x: DateChartPositionDimension<Datum> | NumberChartPositionDimension<Datum>;
27
- y: NumberChartPositionDimension<Datum>;
28
- }
@@ -1,17 +0,0 @@
1
- import { DataValue } from '../../../core/types/values';
2
- import { EventType, HoverMoveAction } from '../../../events';
3
- import { StackedAreaHost } from '../stacked-area-events.directive';
4
-
5
- export class StackedAreaHoverMoveEmitTooltipData<
6
- Datum,
7
- TCategoricalValue extends DataValue,
8
- > implements HoverMoveAction<StackedAreaHost<Datum, TCategoricalValue>> {
9
- onStart(host: StackedAreaHost<Datum, TCategoricalValue>): void {
10
- const tooltipData = host.getInteractionOutput(EventType.HoverMove);
11
- host.emitInteractionOutput(tooltipData);
12
- }
13
-
14
- onEnd(host: StackedAreaHost<Datum, TCategoricalValue>): void {
15
- host.emitInteractionOutput(null);
16
- }
17
- }
@@ -1,168 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Renderer2 } from '@angular/core';
3
- import { TestBed } from '@angular/core/testing';
4
- import { selectAll } from 'd3';
5
- import { of } from 'rxjs';
6
- import { EventType } from '../../events';
7
- import { STACKED_AREA } from '../stacked-area.component';
8
- import { StackedAreaEventsDirective } from './stacked-area-events.directive';
9
-
10
- describe('StackedAreaEventsDirective', () => {
11
- let directive: StackedAreaEventsDirective<any, any, any>;
12
- let stackedAreaStub: any;
13
-
14
- beforeEach(() => {
15
- stackedAreaStub = {
16
- stackedAreas$: of(selectAll([document.createElement('path')])),
17
- config: {
18
- x: { values: [1, 2, 3] },
19
- valueIndices: [0, 1, 2],
20
- series: [
21
- [
22
- { i: 0, 0: 0, 1: 10 },
23
- { i: 1, 0: 10, 1: 20 },
24
- { i: 2, 0: 20, 1: 30 },
25
- ],
26
- ],
27
- },
28
- scales: {
29
- x: (v: any) => v,
30
- y: (v: any) => v,
31
- },
32
- ranges: { x: [0, 100], y: [100, 0] },
33
- getTooltipData: () => ({ foo: 'bar' }),
34
- chart: {
35
- svgRef: { nativeElement: { getBBox: () => ({ height: 100 }) } },
36
- },
37
- };
38
- TestBed.configureTestingModule({
39
- providers: [
40
- StackedAreaEventsDirective,
41
- Renderer2,
42
- { provide: STACKED_AREA, useValue: stackedAreaStub },
43
- ],
44
- });
45
- directive = TestBed.inject(StackedAreaEventsDirective);
46
- directive.stackedArea = stackedAreaStub;
47
- });
48
-
49
- it('should get elements from stackedAreas$', (done) => {
50
- directive.getElements().subscribe((els: any) => {
51
- expect(Array.isArray(els)).toBeTrue();
52
- expect(els[0] instanceof Element).toBeTrue();
53
- done();
54
- });
55
- });
56
-
57
- it('should call runActions with hoverMoveActions on onEnter', () => {
58
- const action = { initialize: jasmine.createSpy('initialize') } as any;
59
- directive.hoverMoveActions = [action];
60
- (directive as any).isEventAllowed = (type: any) =>
61
- type === EventType.HoverMove;
62
- directive.onEnter({} as PointerEvent, {} as Element);
63
- expect(action.initialize).toHaveBeenCalled();
64
- });
65
-
66
- it('should call setPositionsFromPointer, setClosestXIndicies, setClosestDatumPosition, and run onStart for each hoverMoveAction on onMove', () => {
67
- const action = { onStart: jasmine.createSpy('onStart') } as any;
68
- directive.hoverMoveActions = [action];
69
- (directive as any).isEventAllowed = (type: any) =>
70
- type === EventType.HoverMove;
71
- spyOn(directive, 'setPositionsFromPointer');
72
- spyOn(directive, 'pointerIsInChartArea').and.returnValue(true);
73
- spyOn(directive, 'setClosestXIndicies').and.callThrough();
74
- spyOn(directive, 'setClosestDatumPosition').and.callThrough();
75
- directive.closestXIndicies = [0];
76
- directive.positionX = 1;
77
- directive.positionY = 5;
78
- directive.onMove({} as PointerEvent, {} as Element);
79
- expect(directive.setPositionsFromPointer).toHaveBeenCalled();
80
- expect(directive.setClosestXIndicies).toHaveBeenCalled();
81
- expect(directive.setClosestDatumPosition).toHaveBeenCalled();
82
- expect(action.onStart).toHaveBeenCalled();
83
- });
84
-
85
- it('should call onEnd for each hoverMoveAction on onLeave', () => {
86
- const action = { onEnd: jasmine.createSpy('onEnd') } as any;
87
- directive.hoverMoveActions = [action];
88
- (directive as any).isEventAllowed = (type: any) =>
89
- type === EventType.HoverMove;
90
- spyOn(directive, 'resetDirective');
91
- directive.onLeave({} as PointerEvent, {} as Element);
92
- expect(action.onEnd).toHaveBeenCalled();
93
- expect(directive.resetDirective).toHaveBeenCalled();
94
- });
95
-
96
- it('should call setPositionsFromPointer and run clickActions on onClick', () => {
97
- const action = { onStart: jasmine.createSpy('onStart') } as any;
98
- directive.clickActions = [action];
99
- (directive as any).isEventAllowed = (type: any) => type === EventType.Click;
100
- spyOn(directive, 'setPositionsFromPointer');
101
- directive.onClick({} as PointerEvent, {} as Element);
102
- expect(directive.setPositionsFromPointer).toHaveBeenCalled();
103
- expect(action.onStart).toHaveBeenCalled();
104
- });
105
-
106
- it('should call onStart/onEnd for inputEventActions on onInputEvent', () => {
107
- const onStart = jasmine.createSpy('onStart');
108
- const onEnd = jasmine.createSpy('onEnd');
109
- directive.inputEventActions = [{ onStart, onEnd } as any];
110
- (directive as any).isEventAllowed = (type: any) => type === EventType.Input;
111
- directive.onInputEvent('foo');
112
- expect(onStart).toHaveBeenCalledWith(directive, 'foo');
113
- directive.onInputEvent(null);
114
- expect(onEnd).toHaveBeenCalledWith(directive, null);
115
- });
116
-
117
- it('should run onEnd for each clickAction and resetDirective on onClickRemove if not prevented', () => {
118
- const action = { onEnd: jasmine.createSpy('onEnd') } as any;
119
- directive.clickActions = [action];
120
- directive.preventAction = {
121
- click: false,
122
- hover: false,
123
- hoverMove: false,
124
- input: false,
125
- };
126
- spyOn(directive, 'resetDirective');
127
- directive.onClickRemove();
128
- expect(action.onEnd).toHaveBeenCalled();
129
- expect(directive.resetDirective).toHaveBeenCalled();
130
- });
131
-
132
- it('should return true if pointer is in chart area', () => {
133
- directive.positionX = 50;
134
- directive.positionY = 50;
135
- expect(directive.pointerIsInChartArea()).toBeTrue();
136
- });
137
-
138
- it('should return false if pointer is outside chart area', () => {
139
- directive.positionX = -10;
140
- directive.positionY = 50;
141
- expect(directive.pointerIsInChartArea()).toBeFalse();
142
- });
143
-
144
- it('should set closestXIndicies for number x values', () => {
145
- directive.stackedArea.config.x.values = [1, 2, 3];
146
- directive.stackedArea.config.valueIndices = [0, 1, 2];
147
- directive.stackedArea.scales.x = (v: any) => v;
148
- directive.positionX = 2;
149
- directive.setClosestXIndicies();
150
- expect(directive.closestXIndicies).toContain(1);
151
- });
152
-
153
- it('should emit interaction output', () => {
154
- spyOn(directive.interactionOutput, 'emit');
155
- const output = {
156
- data: [],
157
- positionX: 1,
158
- hoveredAreaTop: 10,
159
- hoveredAreaBottom: 0,
160
- hoveredDatum: {} as any,
161
- type: EventType.HoverMove,
162
- };
163
- directive.emitInteractionOutput(output as any);
164
- expect(directive.interactionOutput.emit).toHaveBeenCalledWith(
165
- output as any
166
- );
167
- });
168
- });