@mathstack/viz 2.0.3 → 2.2.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 (448) hide show
  1. package/fesm2022/mathstack-viz.mjs +11024 -0
  2. package/fesm2022/mathstack-viz.mjs.map +1 -0
  3. package/package.json +14 -5
  4. package/types/mathstack-viz.d.ts +5830 -0
  5. package/CHANGELOG.md +0 -0
  6. package/cypress/fixtures/example.json +0 -5
  7. package/cypress/fixtures/usMap.json +0 -13511
  8. package/cypress/support/commands.ts +0 -104
  9. package/cypress/support/component-index.html +0 -12
  10. package/cypress/support/component.ts +0 -33
  11. package/cypress.config.ts +0 -9
  12. package/karma.conf.js +0 -62
  13. package/ng-package.json +0 -8
  14. package/project.json +0 -97
  15. package/src/.eslintrc.json +0 -35
  16. package/src/.prettierrc +0 -31
  17. package/src/lib/axes/base/config/xy-axis-builder.ts +0 -68
  18. package/src/lib/axes/base/config/xy-axis-config.ts +0 -35
  19. package/src/lib/axes/base/config/xy-axis-options.ts +0 -11
  20. package/src/lib/axes/base/xy-axis-base.spec.ts +0 -114
  21. package/src/lib/axes/base/xy-axis-base.ts +0 -300
  22. package/src/lib/axes/base/xy-axis-domain-lines.cy.ts +0 -511
  23. package/src/lib/axes/baseline/axis-baseline-builder.ts +0 -77
  24. package/src/lib/axes/baseline/axis-baseline-options.ts +0 -4
  25. package/src/lib/axes/baseline/axis-baseline.ts +0 -11
  26. package/src/lib/axes/grid/grid-builder.ts +0 -74
  27. package/src/lib/axes/grid/grid-config.ts +0 -13
  28. package/src/lib/axes/grid/grid-options.ts +0 -7
  29. package/src/lib/axes/index.ts +0 -40
  30. package/src/lib/axes/label/axis-label-builder.ts +0 -140
  31. package/src/lib/axes/label/axis-label-options.ts +0 -12
  32. package/src/lib/axes/label/axis-label.ts +0 -18
  33. package/src/lib/axes/label/axis-labels.cy.ts +0 -303
  34. package/src/lib/axes/ordinal/ordinal-axis-config.ts +0 -31
  35. package/src/lib/axes/ordinal/ordinal-axis.spec.ts +0 -30
  36. package/src/lib/axes/ordinal/ordinal-axis.ts +0 -26
  37. package/src/lib/axes/quantitative/quantitative-axis-config.ts +0 -39
  38. package/src/lib/axes/quantitative/quantitative-axis-ticks.cy.ts +0 -748
  39. package/src/lib/axes/quantitative/quantitative-axis.spec.ts +0 -537
  40. package/src/lib/axes/quantitative/quantitative-axis.ts +0 -191
  41. package/src/lib/axes/ticks/tick-wrap/tick-wrap-builder.ts +0 -141
  42. package/src/lib/axes/ticks/tick-wrap/tick-wrap-options.ts +0 -11
  43. package/src/lib/axes/ticks/tick-wrap/tick-wrap.cy.ts +0 -360
  44. package/src/lib/axes/ticks/tick-wrap/tick-wrap.ts +0 -21
  45. package/src/lib/axes/ticks/ticks-builder.ts +0 -370
  46. package/src/lib/axes/ticks/ticks-options.ts +0 -24
  47. package/src/lib/axes/ticks/ticks.ts +0 -33
  48. package/src/lib/axes/x/x-axis-config.ts +0 -48
  49. package/src/lib/axes/x/x-axis.spec.ts +0 -90
  50. package/src/lib/axes/x/x-axis.ts +0 -109
  51. package/src/lib/axes/x-ordinal/x-ordinal-axis-builder.ts +0 -75
  52. package/src/lib/axes/x-ordinal/x-ordinal-axis-config.ts +0 -27
  53. package/src/lib/axes/x-ordinal/x-ordinal-axis.component.ts +0 -33
  54. package/src/lib/axes/x-quantitative/x-quantitative-axis-builder.ts +0 -74
  55. package/src/lib/axes/x-quantitative/x-quantitative-axis-config.ts +0 -32
  56. package/src/lib/axes/x-quantitative/x-quantitative-axis.component.ts +0 -40
  57. package/src/lib/axes/xy-axis.module.ts +0 -20
  58. package/src/lib/axes/y/y-axis-config.ts +0 -47
  59. package/src/lib/axes/y/y-axis.spec.ts +0 -92
  60. package/src/lib/axes/y/y-axis.ts +0 -161
  61. package/src/lib/axes/y-ordinal/y-ordinal-axis-builder.ts +0 -76
  62. package/src/lib/axes/y-ordinal/y-ordinal-axis-config.ts +0 -29
  63. package/src/lib/axes/y-ordinal/y-ordinal-axis.component.ts +0 -33
  64. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-builder.ts +0 -74
  65. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-config.ts +0 -34
  66. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis.component.ts +0 -40
  67. package/src/lib/bars/bars.component.scss +0 -0
  68. package/src/lib/bars/bars.component.spec.ts +0 -1470
  69. package/src/lib/bars/bars.component.ts +0 -717
  70. package/src/lib/bars/bars.cy.ts +0 -829
  71. package/src/lib/bars/bars.module.ts +0 -9
  72. package/src/lib/bars/config/backgrounds/bars-backgrounds-builder.ts +0 -51
  73. package/src/lib/bars/config/backgrounds/bars-backgrounds-options.ts +0 -4
  74. package/src/lib/bars/config/backgrounds/bars-backgrounds.ts +0 -11
  75. package/src/lib/bars/config/bars-builder.ts +0 -340
  76. package/src/lib/bars/config/bars-config.spec.ts +0 -132
  77. package/src/lib/bars/config/bars-config.ts +0 -70
  78. package/src/lib/bars/config/bars-dimensions.ts +0 -29
  79. package/src/lib/bars/config/bars-options.ts +0 -20
  80. package/src/lib/bars/config/labels/bars-labels-builder.ts +0 -89
  81. package/src/lib/bars/config/labels/bars-labels-options.ts +0 -6
  82. package/src/lib/bars/config/labels/bars-labels.cy.ts +0 -781
  83. package/src/lib/bars/config/labels/bars-labels.ts +0 -13
  84. package/src/lib/bars/events/actions/bars-click-actions.ts +0 -23
  85. package/src/lib/bars/events/actions/bars-hover-actions.ts +0 -43
  86. package/src/lib/bars/events/actions/bars-hover-move-actions.ts +0 -21
  87. package/src/lib/bars/events/bars-events.directive.spec.ts +0 -186
  88. package/src/lib/bars/events/bars-events.directive.ts +0 -235
  89. package/src/lib/bars/events/bars-interaction-output.ts +0 -17
  90. package/src/lib/bars/events/bars-tooltip-positioner.ts +0 -24
  91. package/src/lib/bars/index.ts +0 -18
  92. package/src/lib/charts/chart/chart-scaling.cy.ts +0 -323
  93. package/src/lib/charts/chart/chart.component.html +0 -45
  94. package/src/lib/charts/chart/chart.component.scss +0 -37
  95. package/src/lib/charts/chart/chart.component.ts +0 -243
  96. package/src/lib/charts/chart/chart.token.ts +0 -4
  97. package/src/lib/charts/chart/chart.ts +0 -5
  98. package/src/lib/charts/chart/config/chart-builder.ts +0 -194
  99. package/src/lib/charts/chart/config/chart-config.ts +0 -21
  100. package/src/lib/charts/chart/config/chart-options.ts +0 -11
  101. package/src/lib/charts/chart.module.ts +0 -10
  102. package/src/lib/charts/index.ts +0 -9
  103. package/src/lib/charts/map-chart/map-chart.component.scss +0 -0
  104. package/src/lib/charts/map-chart/map-chart.component.spec.ts +0 -35
  105. package/src/lib/charts/map-chart/map-chart.component.ts +0 -61
  106. package/src/lib/charts/xy-chart/xy-chart.component.spec.ts +0 -34
  107. package/src/lib/charts/xy-chart/xy-chart.component.ts +0 -65
  108. package/src/lib/core/common-behaviors/constructor.ts +0 -7
  109. package/src/lib/core/index.ts +0 -11
  110. package/src/lib/core/pipes/resize-chart-height.pipe.spec.ts +0 -23
  111. package/src/lib/core/pipes/resize-chart-height.pipe.ts +0 -20
  112. package/src/lib/core/styles/_spacing.scss +0 -4
  113. package/src/lib/core/types/layout.ts +0 -28
  114. package/src/lib/core/types/scale.ts +0 -6
  115. package/src/lib/core/types/utility.ts +0 -11
  116. package/src/lib/core/types/values.ts +0 -10
  117. package/src/lib/core/utilities/colors.spec.ts +0 -57
  118. package/src/lib/core/utilities/colors.ts +0 -42
  119. package/src/lib/core/utilities/fill-utilities.spec.ts +0 -25
  120. package/src/lib/core/utilities/fill-utilities.ts +0 -21
  121. package/src/lib/core/utilities/type-guards.spec.ts +0 -55
  122. package/src/lib/core/utilities/type-guards.ts +0 -33
  123. package/src/lib/core/utilities/value-format.ts +0 -21
  124. package/src/lib/core/utilities/values.spec.ts +0 -954
  125. package/src/lib/core/utilities/values.ts +0 -189
  126. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-builder.ts +0 -105
  127. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-options.ts +0 -24
  128. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.spec.ts +0 -66
  129. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.ts +0 -72
  130. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/concrete-domain-padding.ts +0 -10
  131. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-padding.ts +0 -76
  132. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-test-utility.ts +0 -130
  133. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over-options.ts +0 -3
  134. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over.ts +0 -37
  135. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel-options.ts +0 -3
  136. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel.ts +0 -73
  137. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/quantitative-domain-padding.cy.ts +0 -978
  138. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval-options.ts +0 -3
  139. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval.ts +0 -27
  140. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig-options.ts +0 -3
  141. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig.ts +0 -30
  142. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder.ts +0 -183
  143. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-options.ts +0 -8
  144. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.spec.ts +0 -28
  145. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.ts +0 -62
  146. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension-options.ts +0 -15
  147. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.spec.ts +0 -155
  148. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.ts +0 -57
  149. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-builder.ts +0 -166
  150. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-options.ts +0 -10
  151. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.spec.ts +0 -34
  152. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.ts +0 -57
  153. package/src/lib/data-dimensions/dimension-builder.ts +0 -45
  154. package/src/lib/data-dimensions/dimension-options.ts +0 -12
  155. package/src/lib/data-dimensions/dimension.ts +0 -30
  156. package/src/lib/data-dimensions/index.ts +0 -31
  157. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder.ts +0 -122
  158. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-options.ts +0 -12
  159. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.spec.ts +0 -83
  160. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.ts +0 -101
  161. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder.ts +0 -108
  162. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-options.ts +0 -12
  163. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.cy.ts +0 -384
  164. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.spec.ts +0 -63
  165. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.ts +0 -79
  166. package/src/lib/data-export/data-export-config.ts +0 -98
  167. package/src/lib/data-export/data-export.spec.ts +0 -33
  168. package/src/lib/data-export/data-export.ts +0 -87
  169. package/src/lib/data-export/index.ts +0 -2
  170. package/src/lib/dots/config/dots-builder.ts +0 -442
  171. package/src/lib/dots/config/dots-config.spec.ts +0 -123
  172. package/src/lib/dots/config/dots-config.ts +0 -81
  173. package/src/lib/dots/config/dots-options.ts +0 -32
  174. package/src/lib/dots/dots.component.scss +0 -0
  175. package/src/lib/dots/dots.component.spec.ts +0 -143
  176. package/src/lib/dots/dots.component.ts +0 -291
  177. package/src/lib/dots/dots.cy.ts +0 -594
  178. package/src/lib/dots/dots.module.ts +0 -9
  179. package/src/lib/dots/events/actions/dots-hover-actions.ts +0 -19
  180. package/src/lib/dots/events/actions/dots-hover-move-actions.ts +0 -38
  181. package/src/lib/dots/events/dots-events.directive.ts +0 -214
  182. package/src/lib/dots/events/dots-interaction-output.ts +0 -15
  183. package/src/lib/dots/events/dots-tooltip-positioner.ts +0 -24
  184. package/src/lib/dots/index.ts +0 -10
  185. package/src/lib/events/events.directive.ts +0 -184
  186. package/src/lib/events/events.types.ts +0 -57
  187. package/src/lib/events/index.ts +0 -4
  188. package/src/lib/events/interaction-output.ts +0 -34
  189. package/src/lib/events/tooltip-positioner.ts +0 -15
  190. package/src/lib/fill-definitions/fill-definitions.ts +0 -4
  191. package/src/lib/fill-definitions/index.ts +0 -1
  192. package/src/lib/geographies/config/geographies-builder.ts +0 -224
  193. package/src/lib/geographies/config/geographies-config.spec.ts +0 -100
  194. package/src/lib/geographies/config/geographies-config.ts +0 -81
  195. package/src/lib/geographies/config/geographies-options.ts +0 -37
  196. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-builder.ts +0 -212
  197. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-options.ts +0 -26
  198. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.spec.ts +0 -119
  199. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.ts +0 -148
  200. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-builder.ts +0 -65
  201. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-options.ts +0 -15
  202. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension.ts +0 -32
  203. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-enums.ts +0 -10
  204. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-types.ts +0 -15
  205. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-builder.ts +0 -18
  206. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-options.ts +0 -8
  207. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.spec.ts +0 -60
  208. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.ts +0 -34
  209. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-builder.ts +0 -46
  210. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-options.ts +0 -8
  211. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.cy.ts +0 -437
  212. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.spec.ts +0 -105
  213. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.ts +0 -54
  214. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-builder.ts +0 -65
  215. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-options.ts +0 -9
  216. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.spec.ts +0 -82
  217. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.ts +0 -81
  218. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks.cy.ts +0 -378
  219. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-builder.ts +0 -50
  220. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-options.ts +0 -8
  221. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.cy.ts +0 -362
  222. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.spec.ts +0 -72
  223. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.ts +0 -56
  224. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-builder.ts +0 -60
  225. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-options.ts +0 -9
  226. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.cy.ts +0 -307
  227. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.spec.ts +0 -104
  228. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.ts +0 -89
  229. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-builder.ts +0 -62
  230. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-options.ts +0 -8
  231. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.cy.ts +0 -265
  232. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.spec.ts +0 -42
  233. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.ts +0 -42
  234. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-builder.ts +0 -116
  235. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-options.ts +0 -20
  236. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer.ts +0 -104
  237. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-builder.ts +0 -111
  238. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-options.ts +0 -19
  239. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.spec.ts +0 -41
  240. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.ts +0 -67
  241. package/src/lib/geographies/config/layers/labels/geographies-labels-builder.ts +0 -269
  242. package/src/lib/geographies/config/layers/labels/geographies-labels-options.ts +0 -45
  243. package/src/lib/geographies/config/layers/labels/geographies-labels.ts +0 -38
  244. package/src/lib/geographies/events/actions/geographies-click-actions.ts +0 -21
  245. package/src/lib/geographies/events/actions/geographies-hover-actions.ts +0 -17
  246. package/src/lib/geographies/events/actions/geographies-hover-move-actions.ts +0 -19
  247. package/src/lib/geographies/events/geographies-events.directive.spec.ts +0 -225
  248. package/src/lib/geographies/events/geographies-events.directive.ts +0 -235
  249. package/src/lib/geographies/events/geographies-interaction-output.ts +0 -17
  250. package/src/lib/geographies/events/geographies-tooltip-positioner.ts +0 -23
  251. package/src/lib/geographies/geographies-feature.ts +0 -16
  252. package/src/lib/geographies/geographies.component.html +0 -1
  253. package/src/lib/geographies/geographies.component.scss +0 -0
  254. package/src/lib/geographies/geographies.component.spec.ts +0 -148
  255. package/src/lib/geographies/geographies.component.ts +0 -318
  256. package/src/lib/geographies/geographies.cy.ts +0 -640
  257. package/src/lib/geographies/geographies.module.ts +0 -9
  258. package/src/lib/geographies/index.ts +0 -32
  259. package/src/lib/grouped-bars/config/grouped-bars-builder.ts +0 -66
  260. package/src/lib/grouped-bars/config/grouped-bars-config.ts +0 -41
  261. package/src/lib/grouped-bars/config/grouped-bars-options.ts +0 -9
  262. package/src/lib/grouped-bars/events/grouped-bars-events.directive.ts +0 -221
  263. package/src/lib/grouped-bars/grouped-bars.component.scss +0 -0
  264. package/src/lib/grouped-bars/grouped-bars.component.spec.ts +0 -25
  265. package/src/lib/grouped-bars/grouped-bars.component.ts +0 -94
  266. package/src/lib/grouped-bars/grouped-bars.module.ts +0 -9
  267. package/src/lib/grouped-bars/index.ts +0 -10
  268. package/src/lib/image-download/image-download-config.ts +0 -57
  269. package/src/lib/image-download/image-download-enums.ts +0 -7
  270. package/src/lib/image-download/image-download-options.ts +0 -14
  271. package/src/lib/image-download/image-download.service.ts +0 -70
  272. package/src/lib/image-download/index.ts +0 -4
  273. package/src/lib/lines/config/area-fills/area-fills-builder.ts +0 -87
  274. package/src/lib/lines/config/area-fills/area-fills-options.ts +0 -8
  275. package/src/lib/lines/config/area-fills/area-fills.ts +0 -14
  276. package/src/lib/lines/config/lines-builder.ts +0 -242
  277. package/src/lib/lines/config/lines-config.spec.ts +0 -52
  278. package/src/lib/lines/config/lines-config.ts +0 -96
  279. package/src/lib/lines/config/lines-options.ts +0 -19
  280. package/src/lib/lines/config/stroke/lines-stroke-builder.ts +0 -135
  281. package/src/lib/lines/config/stroke/lines-stroke-options.ts +0 -6
  282. package/src/lib/lines/config/stroke/lines-stroke.ts +0 -15
  283. package/src/lib/lines/events/actions/lines-click-actions.ts +0 -17
  284. package/src/lib/lines/events/actions/lines-hover-move-actions.ts +0 -113
  285. package/src/lib/lines/events/actions/lines-marker-click-actions.ts +0 -29
  286. package/src/lib/lines/events/lines-events.directive.spec.ts +0 -152
  287. package/src/lib/lines/events/lines-events.directive.ts +0 -310
  288. package/src/lib/lines/events/lines-interaction-output.ts +0 -17
  289. package/src/lib/lines/events/lines-tooltip-positioner.ts +0 -24
  290. package/src/lib/lines/index.ts +0 -17
  291. package/src/lib/lines/lines.component.scss +0 -0
  292. package/src/lib/lines/lines.component.spec.ts +0 -95
  293. package/src/lib/lines/lines.component.ts +0 -425
  294. package/src/lib/lines/lines.cy.ts +0 -738
  295. package/src/lib/lines/lines.module.ts +0 -9
  296. package/src/lib/map-legend/continuous-legend/continuous-legend.component.html +0 -28
  297. package/src/lib/map-legend/continuous-legend/continuous-legend.component.scss +0 -76
  298. package/src/lib/map-legend/continuous-legend/continuous-legend.component.spec.ts +0 -61
  299. package/src/lib/map-legend/continuous-legend/continuous-legend.component.ts +0 -82
  300. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.html +0 -40
  301. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.scss +0 -141
  302. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.spec.ts +0 -75
  303. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.ts +0 -57
  304. package/src/lib/map-legend/index.ts +0 -2
  305. package/src/lib/map-legend/map-legend-base.spec.ts +0 -190
  306. package/src/lib/map-legend/map-legend-base.ts +0 -99
  307. package/src/lib/map-legend/map-legend.component.html +0 -24
  308. package/src/lib/map-legend/map-legend.component.scss +0 -0
  309. package/src/lib/map-legend/map-legend.component.spec.ts +0 -125
  310. package/src/lib/map-legend/map-legend.component.ts +0 -80
  311. package/src/lib/map-legend/map-legend.module.ts +0 -8
  312. package/src/lib/marks/aux-marks/aux-marks.ts +0 -18
  313. package/src/lib/marks/aux-marks/config/aux-marks-builder.ts +0 -25
  314. package/src/lib/marks/aux-marks/config/aux-marks-config.ts +0 -6
  315. package/src/lib/marks/config/marks-config.ts +0 -14
  316. package/src/lib/marks/config/marks-options.ts +0 -9
  317. package/src/lib/marks/index.ts +0 -15
  318. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.spec.ts +0 -74
  319. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.ts +0 -40
  320. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.spec.ts +0 -79
  321. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.ts +0 -63
  322. package/src/lib/marks/marks.ts +0 -39
  323. package/src/lib/marks/primary-marks/config/primary-marks-builder.ts +0 -75
  324. package/src/lib/marks/primary-marks/config/primary-marks-config.ts +0 -9
  325. package/src/lib/marks/primary-marks/primary-marks-base.spec.ts +0 -58
  326. package/src/lib/marks/primary-marks/primary-marks.ts +0 -43
  327. package/src/lib/marks/xy-marks/xy-aux-marks/xy-aux-marks.ts +0 -40
  328. package/src/lib/marks/xy-marks/xy-marks-config.ts +0 -5
  329. package/src/lib/marks/xy-marks/xy-marks.ts +0 -10
  330. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks-config.ts +0 -7
  331. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.spec.ts +0 -186
  332. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.ts +0 -72
  333. package/src/lib/point-markers/index.ts +0 -3
  334. package/src/lib/point-markers/point-markers-builder.ts +0 -93
  335. package/src/lib/point-markers/point-markers-options.ts +0 -6
  336. package/src/lib/point-markers/point-markers.ts +0 -13
  337. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-builder.ts +0 -162
  338. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-options.ts +0 -17
  339. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels.ts +0 -26
  340. package/src/lib/quantitative-rules/config/quantitative-rules-builder.ts +0 -134
  341. package/src/lib/quantitative-rules/config/quantitative-rules-config.ts +0 -21
  342. package/src/lib/quantitative-rules/config/quantitative-rules-dimensions.ts +0 -20
  343. package/src/lib/quantitative-rules/config/quantitative-rules-options.ts +0 -13
  344. package/src/lib/quantitative-rules/index.ts +0 -6
  345. package/src/lib/quantitative-rules/quantitative-rules.component.scss +0 -3
  346. package/src/lib/quantitative-rules/quantitative-rules.component.spec.ts +0 -50
  347. package/src/lib/quantitative-rules/quantitative-rules.component.ts +0 -224
  348. package/src/lib/quantitative-rules/quantitative-rules.cy.ts +0 -549
  349. package/src/lib/quantitative-rules/quantitative-rules.module.ts +0 -8
  350. package/src/lib/stacked-area/config/stacked-area-builder.ts +0 -264
  351. package/src/lib/stacked-area/config/stacked-area-config.spec.ts +0 -107
  352. package/src/lib/stacked-area/config/stacked-area-config.ts +0 -109
  353. package/src/lib/stacked-area/config/stacked-area-options.ts +0 -28
  354. package/src/lib/stacked-area/events/actions/stacked-area-hover-move-actions.ts +0 -17
  355. package/src/lib/stacked-area/events/stacked-area-events.directive.spec.ts +0 -168
  356. package/src/lib/stacked-area/events/stacked-area-events.directive.ts +0 -272
  357. package/src/lib/stacked-area/events/stacked-area-interaction-output.ts +0 -33
  358. package/src/lib/stacked-area/events/stacked-area-tooltip-positioner.ts +0 -37
  359. package/src/lib/stacked-area/index.ts +0 -7
  360. package/src/lib/stacked-area/stacked-area.component.scss +0 -0
  361. package/src/lib/stacked-area/stacked-area.component.spec.ts +0 -41
  362. package/src/lib/stacked-area/stacked-area.component.ts +0 -241
  363. package/src/lib/stacked-area/stacked-area.module.ts +0 -9
  364. package/src/lib/stacked-bars/config/stacked-bars-builder.ts +0 -109
  365. package/src/lib/stacked-bars/config/stacked-bars-config.spec.ts +0 -122
  366. package/src/lib/stacked-bars/config/stacked-bars-config.ts +0 -79
  367. package/src/lib/stacked-bars/config/stacked-bars-options.ts +0 -16
  368. package/src/lib/stacked-bars/events/actions/stacked-bars-click-actions.ts +0 -23
  369. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-actions.ts +0 -22
  370. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-move-actions.ts +0 -21
  371. package/src/lib/stacked-bars/events/stacked-bars-events.directive.spec.ts +0 -266
  372. package/src/lib/stacked-bars/events/stacked-bars-events.directive.ts +0 -240
  373. package/src/lib/stacked-bars/index.ts +0 -10
  374. package/src/lib/stacked-bars/stacked-bars.component.scss +0 -0
  375. package/src/lib/stacked-bars/stacked-bars.component.spec.ts +0 -25
  376. package/src/lib/stacked-bars/stacked-bars.component.ts +0 -158
  377. package/src/lib/stacked-bars/stacked-bars.module.ts +0 -9
  378. package/src/lib/stroke/base/stroke-base-options.ts +0 -7
  379. package/src/lib/stroke/base/stroke-base.ts +0 -9
  380. package/src/lib/stroke/index.ts +0 -5
  381. package/src/lib/stroke/stroke-builder.ts +0 -103
  382. package/src/lib/stroke/stroke-options.ts +0 -5
  383. package/src/lib/stroke/stroke.ts +0 -12
  384. package/src/lib/svg-text-wrap/index.ts +0 -3
  385. package/src/lib/svg-text-wrap/svg-text-wrap-builder.ts +0 -105
  386. package/src/lib/svg-text-wrap/svg-text-wrap-options.ts +0 -8
  387. package/src/lib/svg-text-wrap/svg-text-wrap.ts +0 -137
  388. package/src/lib/testing/data/continent-population-year-data.ts +0 -126
  389. package/src/lib/testing/data/country-area-continent.ts +0 -59
  390. package/src/lib/testing/data/state-population-income-year-data.ts +0 -123
  391. package/src/lib/testing/stubs/bars.component.stub.ts +0 -12
  392. package/src/lib/testing/stubs/chart.component.stub.ts +0 -6
  393. package/src/lib/testing/stubs/click.directive.stub.ts +0 -15
  394. package/src/lib/testing/stubs/core/destroy-ref.stub.ts +0 -9
  395. package/src/lib/testing/stubs/core/overlay-ref.stub.ts +0 -13
  396. package/src/lib/testing/stubs/core/overlay.stub.ts +0 -8
  397. package/src/lib/testing/stubs/event.directive.stub.ts +0 -10
  398. package/src/lib/testing/stubs/hover-move.directive.stub.ts +0 -17
  399. package/src/lib/testing/stubs/hover.directive.stub.ts +0 -14
  400. package/src/lib/testing/stubs/input-event.directive.stub.ts +0 -9
  401. package/src/lib/testing/stubs/lines.component.stub.ts +0 -13
  402. package/src/lib/testing/stubs/map-aux-marks.stub.ts +0 -10
  403. package/src/lib/testing/stubs/map-chart.component.stub.ts +0 -3
  404. package/src/lib/testing/stubs/map-legend-content.stub.ts +0 -16
  405. package/src/lib/testing/stubs/map-legend.component.stub.ts +0 -10
  406. package/src/lib/testing/stubs/map-primary-marks.stub.ts +0 -16
  407. package/src/lib/testing/stubs/ordinal-axis.stub.ts +0 -18
  408. package/src/lib/testing/stubs/primary-marks.stub.ts +0 -18
  409. package/src/lib/testing/stubs/quantitative-axis.stub.ts +0 -18
  410. package/src/lib/testing/stubs/services/main.service.stub.ts +0 -5
  411. package/src/lib/testing/stubs/services/utilities.service.stub.ts +0 -7
  412. package/src/lib/testing/stubs/stacked-area.component.stub.ts +0 -13
  413. package/src/lib/testing/stubs/x-axis.stub.ts +0 -10
  414. package/src/lib/testing/stubs/xy-axis.class.stub.ts +0 -20
  415. package/src/lib/testing/stubs/xy-axis.stub.ts +0 -44
  416. package/src/lib/testing/stubs/xy-chart.component.stub.ts +0 -5
  417. package/src/lib/testing/stubs/xy-data-marks.stub.ts +0 -15
  418. package/src/lib/testing/stubs/y-axis.stub.ts +0 -15
  419. package/src/lib/tooltips/config/tooltip.ts +0 -11
  420. package/src/lib/tooltips/html-tooltip/config/html-tooltip-builder.ts +0 -134
  421. package/src/lib/tooltips/html-tooltip/config/html-tooltip-config.ts +0 -21
  422. package/src/lib/tooltips/html-tooltip/config/html-tooltip-options.ts +0 -12
  423. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position-builder.ts +0 -191
  424. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position.ts +0 -42
  425. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-builder.ts +0 -75
  426. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-options.ts +0 -8
  427. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size.ts +0 -15
  428. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.spec.ts +0 -537
  429. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.ts +0 -210
  430. package/src/lib/tooltips/html-tooltip/html-tooltip.module.ts +0 -16
  431. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.html +0 -41
  432. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.scss +0 -63
  433. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.ts +0 -19
  434. package/src/lib/tooltips/index.ts +0 -11
  435. package/src/lib/tooltips/svg-tooltip/config/svg-tooltip.ts +0 -5
  436. package/src/lib/xy-background/index.ts +0 -2
  437. package/src/lib/xy-background/xy-background.component.html +0 -10
  438. package/src/lib/xy-background/xy-background.component.scss +0 -0
  439. package/src/lib/xy-background/xy-background.component.spec.ts +0 -24
  440. package/src/lib/xy-background/xy-background.component.ts +0 -19
  441. package/src/lib/xy-background/xy-background.module.ts +0 -8
  442. package/src/public-api.ts +0 -26
  443. package/src/test.ts +0 -15
  444. package/tsconfig.doc.json +0 -4
  445. package/tsconfig.json +0 -20
  446. package/tsconfig.lib.json +0 -23
  447. package/tsconfig.lib.prod.json +0 -10
  448. 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
- });