@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,101 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { InternSet, ScaleBand, scaleBand, scalePoint, ScalePoint } from 'd3';
3
- import { DataValue } from '../../../core/types/values';
4
- import { DataDimension } from '../../dimension';
5
- import { OrdinalChartPositionDimensionOptions } from './ordinal-chart-position-options';
6
-
7
- /**
8
- * A dimension that transforms string / number / Date values into a position on a chart.
9
- *
10
- * This dimension is used for the positional dimensions of a chart, such as x and y. The underlying scale will always be a [D3 band scale](https://d3js.org/d3-scale/band). The range of the scale will be a dimension from the chart.
11
- *
12
- * The first generic is the type of the data that will be passed to the dimension. The second generic is the type of the value that will be used to position the data on the chart.
13
- *
14
- * TESTABLE FUNCTIONALITY
15
- *
16
- * - It extracts values for the dimension from data.
17
- * - tested in: bars.cy.ts, dots.cy.ts, stacked-bars.cy.ts
18
- * - It sets the domain of the dimension.
19
- * - tested in: bars.cy.ts, dots.cy.ts
20
- * - It checks if a value is in the domain.
21
- * - tested in: bars.cy.ts
22
- * - It creates a scale from a range.
23
- * - tested in: bars.cy.ts, dots.cy.ts
24
- * - The domain will be unique values from the user-provided domain if the user provides a domain.
25
- * - tested in: ordinal-chart-position.spec.ts
26
- * - The domain will be unique values from the data if no custom domain is given by the user.
27
- * - tested in: ordinal-chart-position.spec.ts
28
- * - The domain can be set in reverse order.
29
- * - tested in: ordinal-chart-position.spec.ts
30
- */
31
-
32
- export class OrdinalChartPositionDimension<Datum, Domain extends DataValue>
33
- extends DataDimension<Datum, Domain>
34
- implements OrdinalChartPositionDimensionOptions<Datum, Domain>
35
- {
36
- readonly align: number;
37
- private _calculatedDomain: Domain[];
38
- readonly domain: Domain[];
39
- private internSetDomain: InternSet<Domain>;
40
- readonly paddingInner: number;
41
- readonly paddingOuter: number;
42
- private scaleFn: (
43
- domain?: Iterable<Domain>,
44
- range?: Iterable<number>
45
- ) => ScaleBand<Domain> | ScalePoint<Domain>;
46
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
- override readonly valueAccessor: (d: Datum, ...args: any) => Domain;
48
-
49
- constructor(
50
- scaleType: 'band' | 'point' = 'band',
51
- options: OrdinalChartPositionDimensionOptions<Datum, Domain>
52
- ) {
53
- super('ordinal');
54
- this.scaleFn = scaleType === 'band' ? scaleBand : scalePoint;
55
- safeAssign(this, options);
56
- }
57
-
58
- get calculatedDomain(): Domain[] {
59
- return this._calculatedDomain;
60
- }
61
-
62
- setPropertiesFromData(data: Datum[], reverseDomain: boolean = false): void {
63
- this.setValues(data);
64
- this.setDomain(reverseDomain);
65
- }
66
-
67
- protected setDomain(reverseDomain: boolean): void {
68
- let domain = this.domain;
69
- if (domain === undefined) {
70
- domain = this.values;
71
- }
72
- this.internSetDomain = new InternSet(domain);
73
- const uniqueValues = [...this.internSetDomain.values()];
74
- this._calculatedDomain = reverseDomain
75
- ? uniqueValues.reverse()
76
- : uniqueValues;
77
- }
78
-
79
- domainIncludes(value: Domain): boolean {
80
- return this.internSetDomain.has(value);
81
- }
82
-
83
- getScaleFromRange(
84
- range: [number, number]
85
- ): ScaleBand<Domain> | ScalePoint<Domain> {
86
- if (this.scaleFn === scalePoint) {
87
- return (this.scaleFn() as ScalePoint<Domain>)
88
- .domain(this._calculatedDomain)
89
- .range(range)
90
- .padding(this.paddingOuter)
91
- .align(this.align);
92
- } else {
93
- return (this.scaleFn() as ScaleBand<Domain>)
94
- .domain(this._calculatedDomain)
95
- .range(range)
96
- .paddingInner(this.paddingInner)
97
- .paddingOuter(this.paddingOuter)
98
- .align(this.align);
99
- }
100
- }
101
- }
@@ -1,108 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { schemeTableau10 } from 'd3';
3
- import { DataValue, VisualValue } from '../../../core/types/values';
4
- import { DataDimensionBuilder } from '../../dimension-builder';
5
- import { OrdinalVisualValueDimension } from './ordinal-visual-value';
6
-
7
- const DEFAULT = {
8
- _range: schemeTableau10,
9
- _valueAccessor: () => '',
10
- };
11
-
12
- export class OrdinalVisualValueDimensionBuilder<
13
- Datum,
14
- Domain extends DataValue,
15
- Range extends VisualValue,
16
- > extends DataDimensionBuilder<Datum, Domain> {
17
- private _domain: Domain[];
18
- private _range: Range[];
19
- private _scale: (category: Domain) => Range;
20
-
21
- constructor() {
22
- super();
23
- safeAssign(this, DEFAULT);
24
- }
25
-
26
- /**
27
- * OPTIONAL. Sets an array of categorical values that will be used to define the domain of the scale.
28
- *
29
- * If not provided, the domain will be determined by the data.
30
- */
31
- domain(domain: null): this;
32
- domain(domain: Domain[]): this;
33
- domain(domain: Domain[]): this {
34
- if (domain === null) {
35
- this._domain = undefined;
36
- return this;
37
- }
38
- this._domain = domain;
39
- return this;
40
- }
41
-
42
- /**
43
- * OPTIONAL. Sets an array of visual values that will be the output from D3 scale ordinal.
44
- *
45
- * For example, this could be an array of colors or sizes.
46
- *
47
- * To have all marks use the same visual value, use an array with a single element.
48
- *
49
- * Will not be used if `scale` is set by the user.
50
- *
51
- * @default d3.schemeTableau10
52
- */
53
- range(range: null): this;
54
- range(range: Range[]): this;
55
- range(range: Range[]): this {
56
- if (range === null) {
57
- this._range = DEFAULT._range as Range[];
58
- return this;
59
- }
60
- this._range = range;
61
- return this;
62
- }
63
-
64
- /**
65
- * OPTIONAL. Sets a user-defined function that transforms a categorical value into a visual value.
66
- *
67
- * User must also provide their own implementation of `valueAccessor`.
68
- *
69
- * If a custom valueAccessor function is not provided, this function will not be used even if provided (due to default value of `valueAccessor`).
70
- */
71
- scale(scale: null): this;
72
- scale(scale: (category: Domain) => Range): this;
73
- scale(scale: (category: Domain) => Range): this {
74
- if (scale === null) {
75
- this._scale = undefined;
76
- return this;
77
- }
78
- this._scale = scale;
79
- return this;
80
- }
81
-
82
- /**
83
- * @internal This method is not intended to be used by consumers of this library.
84
- *
85
- * @param dimensionName A user-intelligible name for the dimension being built. Used for error messages. Should be title cased.
86
- */
87
- _build(
88
- dimensionName: string
89
- ): OrdinalVisualValueDimension<Datum, Domain, Range> {
90
- this.validateDimension(dimensionName);
91
- return new OrdinalVisualValueDimension({
92
- domain: this._domain,
93
- formatFunction: this._formatFunction,
94
- range: this._range,
95
- scale: this._scale,
96
- valueAccessor: this._valueAccessor,
97
- });
98
- }
99
-
100
- private validateDimension(dimensionName: string): void {
101
- this.validateValueAccessor(dimensionName);
102
- if (!this._range && !this._scale) {
103
- throw new Error(
104
- `${dimensionName} Dimension: Either a range or a scale must be provided.`
105
- );
106
- }
107
- }
108
- }
@@ -1,12 +0,0 @@
1
- import { DataValue, VisualValue } from '../../../core/types/values';
2
- import { DataDimensionOptions } from '../../dimension-options';
3
-
4
- export interface OrdinalVisualValueDimensionOptions<
5
- Datum,
6
- Domain extends DataValue,
7
- Range extends VisualValue,
8
- > extends DataDimensionOptions<Datum, Domain> {
9
- domain: Domain[];
10
- range: Range[];
11
- scale: (category: Domain) => Range;
12
- }
@@ -1,384 +0,0 @@
1
- /* eslint-disable @angular-eslint/prefer-standalone */
2
- import { Component, Input } from '@angular/core';
3
- import {
4
- BarsConfig,
5
- ChartConfig,
6
- VicBarsConfigBuilder,
7
- VicBarsModule,
8
- VicChartConfigBuilder,
9
- VicChartModule,
10
- VicXQuantitativeAxisConfig,
11
- VicXQuantitativeAxisConfigBuilder,
12
- VicXyAxisModule,
13
- VicYOrdinalAxisConfig,
14
- VicYOrdinalAxisConfigBuilder,
15
- } from '@mathstack/viz';
16
- import { schemeTableau10 } from 'd3';
17
- import { beforeEach, cy, describe, expect, it } from 'local-cypress';
18
- import {
19
- countryFactsData,
20
- CountryFactsDatum,
21
- } from '../../../testing/data/country-area-continent';
22
-
23
- const dotsPatternMagenta = 'dotsMagenta';
24
- const dotsPatternTeal = 'dotsTeal';
25
- const horizontalMargin = { top: 36, right: 20, bottom: 4, left: 80 };
26
- const chartHeight = 400;
27
- const chartWidth = 600;
28
- const customCategoricalScale = (d: string) => {
29
- switch (d) {
30
- case 'Asia':
31
- return 'red';
32
- case 'Europe':
33
- return 'blue';
34
- case 'Africa':
35
- return 'green';
36
- case 'North America':
37
- return 'yellow';
38
- case 'South America':
39
- return 'purple';
40
- default:
41
- return 'chartreuse';
42
- }
43
- };
44
-
45
- const barSelector = '.vic-bars-bar';
46
-
47
- // ***********************************************************
48
- // Horizontal bar chart component set up
49
- // ***********************************************************
50
- @Component({
51
- // eslint-disable-next-line @angular-eslint/component-selector
52
- selector: 'app-test-horizontal-bar',
53
- template: `
54
- <vic-xy-chart [config]="chartConfig">
55
- <ng-container svg-defs>
56
- <svg:pattern
57
- [id]="dotsPatternMagenta"
58
- x="2"
59
- y="2"
60
- width="5"
61
- height="5"
62
- patternUnits="userSpaceOnUse"
63
- >
64
- <rect x="3" y="3" width="2" height="2" fill="magenta" />
65
- </svg:pattern>
66
- <svg:pattern
67
- [id]="dotsPatternTeal"
68
- x="2"
69
- y="2"
70
- width="5"
71
- height="5"
72
- patternUnits="userSpaceOnUse"
73
- >
74
- <rect x="3" y="3" width="2" height="2" fill="teal" />
75
- </svg:pattern>
76
- </ng-container>
77
- <ng-container svg-elements>
78
- <svg:g
79
- vic-x-quantitative-axis
80
- [config]="xQuantitativeAxisConfig"
81
- ></svg:g>
82
- <svg:g vic-y-ordinal-axis [config]="yOrdinalAxisConfig"></svg:g>
83
- <svg:g vic-primary-marks-bars [config]="barsConfig"></svg:g>
84
- </ng-container>
85
- </vic-xy-chart>
86
- `,
87
- styles: [],
88
- imports: [VicChartModule, VicBarsModule, VicXyAxisModule],
89
- })
90
- class TestHorizontalBarsComponent {
91
- @Input() barsConfig: BarsConfig<CountryFactsDatum, string>;
92
- @Input() yOrdinalAxisConfig: VicYOrdinalAxisConfig<string>;
93
- @Input() xQuantitativeAxisConfig: VicXQuantitativeAxisConfig<number>;
94
- dotsPatternMagenta = dotsPatternMagenta;
95
- dotsPatternTeal = dotsPatternTeal;
96
- chartConfig: ChartConfig = new VicChartConfigBuilder()
97
- .maxHeight(chartHeight)
98
- .maxWidth(chartWidth)
99
- .margin(horizontalMargin)
100
- .scalingStrategy('responsive-width')
101
- .getConfig();
102
- }
103
-
104
- const mountHorizontalBarsComponent = (
105
- barsConfig: BarsConfig<CountryFactsDatum, string>
106
- ): void => {
107
- const xAxisConfig = new VicXQuantitativeAxisConfigBuilder()
108
- .ticks((ticks) => ticks.format('.0f'))
109
- .getConfig();
110
- const yAxisConfig = new VicYOrdinalAxisConfigBuilder().getConfig();
111
-
112
- cy.mount(TestHorizontalBarsComponent, {
113
- componentProperties: {
114
- barsConfig: barsConfig,
115
- xQuantitativeAxisConfig: xAxisConfig,
116
- yOrdinalAxisConfig: yAxisConfig,
117
- },
118
- });
119
- };
120
-
121
- // ***********************************************************
122
- // Marks fill/stroke is correct
123
- // ***********************************************************
124
- describe('marks have expected fill', () => {
125
- let barsConfig: BarsConfig<CountryFactsDatum, string>;
126
- beforeEach(() => {
127
- barsConfig = undefined;
128
- });
129
- describe('user does not specify a categorical valueAccessor or a custom scale', () => {
130
- it('colors every mark by first color in user-provided range if user provides range of length >= 1', () => {
131
- const color = 'chartreuse';
132
- barsConfig = new VicBarsConfigBuilder<CountryFactsDatum, string>()
133
- .data(countryFactsData)
134
- .horizontal((bars) =>
135
- bars
136
- .x((dimension) => dimension.valueAccessor((d) => d.area))
137
- .y((dimension) => dimension.valueAccessor((d) => d.country))
138
- )
139
- .color((dimension) => dimension.range([color, 'red', 'yellow']))
140
- .labels((labels) => labels.display(true))
141
- .getConfig();
142
- mountHorizontalBarsComponent(barsConfig);
143
- cy.get(barSelector).each(($bar) => {
144
- expect($bar.attr('fill')).to.equal(color);
145
- });
146
- });
147
- it('colors every mark by first color in the default range if user provides no range and no custom scale', () => {
148
- const color = schemeTableau10[0];
149
- barsConfig = new VicBarsConfigBuilder<CountryFactsDatum, string>()
150
- .data(countryFactsData)
151
- .horizontal((bars) =>
152
- bars
153
- .x((dimension) =>
154
- dimension.valueAccessor((d) => d.area).domainPaddingPixels()
155
- )
156
- .y((dimension) => dimension.valueAccessor((d) => d.country))
157
- )
158
- .labels((labels) => labels.display(true))
159
- .getConfig();
160
- mountHorizontalBarsComponent(barsConfig);
161
- cy.get(barSelector).each(($bar) => {
162
- expect($bar.attr('fill')).to.equal(color);
163
- });
164
- });
165
- });
166
- describe('user provides a valueAccessor for the categorical dimension', () => {
167
- it('colors every mark according to the valueAccessor using default color array', () => {
168
- const color = schemeTableau10;
169
- barsConfig = new VicBarsConfigBuilder<CountryFactsDatum, string>()
170
- .data(countryFactsData)
171
- .horizontal((bars) =>
172
- bars
173
- .x((dimension) =>
174
- dimension.valueAccessor((d) => d.area).domainPaddingPixels()
175
- )
176
- .y((dimension) => dimension.valueAccessor((d) => d.country))
177
- )
178
- .color((dimension) => dimension.valueAccessor((d) => d.continent))
179
- .labels((labels) => labels.display(true))
180
- .getConfig();
181
- mountHorizontalBarsComponent(barsConfig);
182
- cy.get(barSelector).each(($bar, i) => {
183
- switch (countryFactsData[i].continent) {
184
- case 'Asia':
185
- expect($bar.attr('fill')).to.equal(color[0]);
186
- break;
187
- case 'Europe':
188
- expect($bar.attr('fill')).to.equal(color[1]);
189
- break;
190
- case 'Africa':
191
- expect($bar.attr('fill')).to.equal(color[2]);
192
- break;
193
- case 'North America':
194
- expect($bar.attr('fill')).to.equal(color[3]);
195
- break;
196
- case 'South America':
197
- expect($bar.attr('fill')).to.equal(color[4]);
198
- break;
199
- default:
200
- expect($bar.attr('fill')).to.equal(color[5]);
201
- }
202
- });
203
- });
204
- });
205
- describe('user provides a custom scale for the categorical dimension', () => {
206
- it('colors every mark according to the custom scale when user also provides a value accessor', () => {
207
- barsConfig = new VicBarsConfigBuilder<CountryFactsDatum, string>()
208
- .data(countryFactsData)
209
- .horizontal((bars) =>
210
- bars
211
- .x((dimension) =>
212
- dimension.valueAccessor((d) => d.area).domainPaddingPixels()
213
- )
214
- .y((dimension) => dimension.valueAccessor((d) => d.country))
215
- )
216
- .color((dimension) =>
217
- dimension
218
- .valueAccessor((d) => d.continent)
219
- .scale(customCategoricalScale)
220
- )
221
- .labels((labels) => labels.display(true))
222
- .getConfig();
223
- mountHorizontalBarsComponent(barsConfig);
224
- cy.get(barSelector).each(($bar, i) => {
225
- switch (countryFactsData[i].continent) {
226
- case 'Asia':
227
- expect($bar.attr('fill')).to.equal('red');
228
- break;
229
- case 'Europe':
230
- expect($bar.attr('fill')).to.equal('blue');
231
- break;
232
- case 'Africa':
233
- expect($bar.attr('fill')).to.equal('green');
234
- break;
235
- case 'North America':
236
- expect($bar.attr('fill')).to.equal('yellow');
237
- break;
238
- case 'South America':
239
- expect($bar.attr('fill')).to.equal('purple');
240
- break;
241
- default:
242
- expect($bar.attr('fill')).to.equal('chartreuse');
243
- }
244
- });
245
- });
246
- it('colors every mark according to the custom scales behavior with empty string arg when user does not provide a value accessor', () => {
247
- barsConfig = new VicBarsConfigBuilder<CountryFactsDatum, string>()
248
- .data(countryFactsData)
249
- .horizontal((bars) =>
250
- bars
251
- .x((dimension) =>
252
- dimension.valueAccessor((d) => d.area).domainPaddingPixels()
253
- )
254
- .y((dimension) => dimension.valueAccessor((d) => d.country))
255
- )
256
- .color((dimension) => dimension.scale(customCategoricalScale))
257
- .labels((labels) => labels.display(true))
258
- .getConfig();
259
- mountHorizontalBarsComponent(barsConfig);
260
- cy.get(barSelector).each(($bar) => {
261
- expect($bar.attr('fill')).to.equal('chartreuse');
262
- });
263
- });
264
- });
265
- });
266
-
267
- // ***********************************************************
268
- // Marks fill/stroke is correct - testing Fill Pattern
269
- // ***********************************************************
270
- describe('user provides a fill pattern', () => {
271
- let barsConfig: BarsConfig<CountryFactsDatum, string>;
272
- beforeEach(() => {
273
- barsConfig = undefined;
274
- });
275
- it('sets bar fill with either the pattern name or the regular fill according to shouldApply function', () => {
276
- barsConfig = new VicBarsConfigBuilder<CountryFactsDatum, string>()
277
- .data(countryFactsData)
278
- .horizontal((bars) =>
279
- bars
280
- .x((dimension) =>
281
- dimension.valueAccessor((d) => d.area).domainPaddingPixels()
282
- )
283
- .y((dimension) => dimension.valueAccessor((d) => d.country))
284
- )
285
- .customFills([
286
- {
287
- defId: dotsPatternMagenta,
288
- shouldApply: (d) => d.continent === 'Africa' && d.area > 500000,
289
- },
290
- ])
291
- .labels((labels) => labels.display(true))
292
- .getConfig();
293
- mountHorizontalBarsComponent(barsConfig);
294
- cy.get(barSelector).each(($bar, i) => {
295
- if (i === 2) {
296
- expect($bar.attr('fill')).to.equal(`url(#${dotsPatternMagenta})`);
297
- } else {
298
- expect($bar.attr('fill')).to.equal(schemeTableau10[0]);
299
- }
300
- });
301
- });
302
- it('sets bar fill with either the pattern name or the regular fill according to shouldApply function when user provides a scale and valueAccessor', () => {
303
- barsConfig = new VicBarsConfigBuilder<CountryFactsDatum, string>()
304
- .data(countryFactsData)
305
- .horizontal((bars) =>
306
- bars
307
- .x((dimension) =>
308
- dimension.valueAccessor((d) => d.area).domainPaddingPixels()
309
- )
310
- .y((dimension) => dimension.valueAccessor((d) => d.country))
311
- )
312
- .color((dimension) =>
313
- dimension
314
- .valueAccessor((d) => d.continent)
315
- .scale(customCategoricalScale)
316
- )
317
- .customFills([
318
- {
319
- defId: dotsPatternMagenta,
320
- shouldApply: (d) => d.continent === 'Africa' && d.area > 500000,
321
- },
322
- ])
323
- .labels((labels) => labels.display(true))
324
- .getConfig();
325
- mountHorizontalBarsComponent(barsConfig);
326
- cy.get(barSelector).each(($bar, i) => {
327
- if (i === 2) {
328
- expect($bar.attr('fill')).to.equal(`url(#${dotsPatternMagenta})`);
329
- } else {
330
- switch (countryFactsData[i].continent) {
331
- case 'Asia':
332
- expect($bar.attr('fill')).to.equal('red');
333
- break;
334
- case 'Europe':
335
- expect($bar.attr('fill')).to.equal('blue');
336
- break;
337
- case 'Africa':
338
- expect($bar.attr('fill')).to.equal('green');
339
- break;
340
- case 'North America':
341
- expect($bar.attr('fill')).to.equal('yellow');
342
- break;
343
- case 'South America':
344
- expect($bar.attr('fill')).to.equal('purple');
345
- break;
346
- default:
347
- expect($bar.attr('fill')).to.equal('chartreuse');
348
- }
349
- }
350
- });
351
- });
352
- it('sets bar fill with the last matching pattern in customFills array if two patterns match', () => {
353
- barsConfig = new VicBarsConfigBuilder<CountryFactsDatum, string>()
354
- .data(countryFactsData)
355
- .horizontal((bars) =>
356
- bars
357
- .x((dimension) =>
358
- dimension.valueAccessor((d) => d.area).domainPaddingPixels()
359
- )
360
- .y((dimension) => dimension.valueAccessor((d) => d.country))
361
- )
362
- .color((dimension) => dimension.range(['lightcoral']))
363
- .customFills([
364
- {
365
- defId: dotsPatternMagenta,
366
- shouldApply: (d) => d.continent === 'Africa' && d.area > 500000,
367
- },
368
- {
369
- defId: dotsPatternTeal,
370
- shouldApply: (d) => d.continent === 'Africa' && d.area > 700000,
371
- },
372
- ])
373
- .labels((labels) => labels.display(true))
374
- .getConfig();
375
- mountHorizontalBarsComponent(barsConfig);
376
- cy.get(barSelector).each(($bar, i) => {
377
- if (i === 2) {
378
- expect($bar.attr('fill')).to.equal(`url(#${dotsPatternTeal})`);
379
- } else {
380
- expect($bar.attr('fill')).to.equal('lightcoral');
381
- }
382
- });
383
- });
384
- });
@@ -1,63 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- import { OrdinalVisualValueDimension } from './ordinal-visual-value';
4
- import { OrdinalVisualValueDimensionBuilder } from './ordinal-visual-value-builder';
5
-
6
- describe('OrdinalVisualValueDimension', () => {
7
- let dimension: OrdinalVisualValueDimension<string, string, string>;
8
- beforeEach(() => {
9
- dimension = new OrdinalVisualValueDimensionBuilder<string, string, string>()
10
- .valueAccessor((d) => d)
11
- ._build('Test');
12
- });
13
- describe('setPropertiesFromData', () => {
14
- beforeEach(() => {
15
- spyOn(dimension as any, 'setValues');
16
- spyOn(dimension as any, 'setDomain');
17
- spyOn(dimension as any, 'setScale');
18
- });
19
- it('calls setValues once', () => {
20
- dimension.setPropertiesFromData(['a', 'b', 'c', 'a', 'b']);
21
- expect((dimension as any).setValues).toHaveBeenCalledOnceWith([
22
- 'a',
23
- 'b',
24
- 'c',
25
- 'a',
26
- 'b',
27
- ]);
28
- });
29
- it('calls initDomain once', () => {
30
- dimension.setPropertiesFromData(['a', 'b', 'c', 'a', 'b']);
31
- expect((dimension as any).setDomain).toHaveBeenCalledTimes(1);
32
- });
33
- it('calls initScale once', () => {
34
- dimension.setPropertiesFromData(['a', 'b', 'c', 'a', 'b']);
35
- expect((dimension as any).setScale).toHaveBeenCalledTimes(1);
36
- });
37
- });
38
-
39
- describe('setDomain()', () => {
40
- it('sets the domain to the correct value, user did not specify domain', () => {
41
- dimension.setPropertiesFromData(['a', 'b', 'c', 'a', 'b']);
42
- expect((dimension as any).calculatedDomain).toEqual(['a', 'b', 'c']);
43
- });
44
- it('sets the domain to the correct value, user specified domain', () => {
45
- (dimension as any).domain = ['e', 'f', 'g', 'e'];
46
- dimension.setPropertiesFromData(['a', 'b', 'c', 'a', 'b']);
47
- expect((dimension as any).calculatedDomain).toEqual(['e', 'f', 'g']);
48
- });
49
- });
50
-
51
- describe('integration: domainIncludes', () => {
52
- it('correctly sets internSetDomain and domainIncludes returns correct value', () => {
53
- (dimension as any).domain = ['c', 'd', 'b', 'a', 'd'];
54
- dimension.setPropertiesFromData(['a', 'b', 'c', 'a', 'b']);
55
- expect(dimension.domainIncludes('a')).toEqual(true);
56
- });
57
- it('correctly sets internSetDomain and domainIncludes returns correct value - scenario 2', () => {
58
- (dimension as any).domain = ['c', 'd', 'b', 'a', 'd'];
59
- dimension.setPropertiesFromData(['a', 'b', 'c', 'a', 'b']);
60
- expect(dimension.domainIncludes('z')).toEqual(false);
61
- });
62
- });
63
- });