@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,748 +0,0 @@
1
- /* eslint-disable @angular-eslint/prefer-standalone */
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- import { Component, inject, Input, OnInit } from '@angular/core';
4
- import {
5
- BarsOptions,
6
- ChartConfig,
7
- VicBarsConfigBuilder,
8
- VicBarsModule,
9
- VicChartConfigBuilder,
10
- VicChartModule,
11
- VicXQuantitativeAxisConfig,
12
- VicXQuantitativeAxisConfigBuilder,
13
- VicXyAxisModule,
14
- VicXyBackgroundModule,
15
- } from '@mathstack/viz';
16
- import { extent } from 'd3';
17
- import { beforeEach, cy, describe, expect, it } from 'local-cypress';
18
-
19
- // Cypress will get the tick elements before d3 has set the text value of the elements,
20
- // because d3 creates the elements and sets the text value in a transition).
21
- // This wait time is necessary to ensure that the text value of the tick elements has been set by d3.
22
- const axisTickTextWaitTime = 1000;
23
- const tickTextSelector = '.vic-axis-x-quantitative .tick text';
24
-
25
- @Component({
26
- selector: 'vic-test-x-quantitative-axis',
27
- template: `
28
- <vic-xy-chart [config]="chartConfig">
29
- <ng-container svg-elements>
30
- <svg:g vic-xy-background></svg:g>
31
- <svg:g
32
- vic-x-quantitative-axis
33
- [config]="xQuantitativeAxisConfig"
34
- ></svg:g>
35
- <svg:g vic-primary-marks-bars [config]="barsConfig"></svg:g>
36
- </ng-container>
37
- </vic-xy-chart>
38
- `,
39
- styles: [],
40
- providers: [VicChartConfigBuilder],
41
- imports: [
42
- VicChartModule,
43
- VicBarsModule,
44
- VicXyAxisModule,
45
- VicXyBackgroundModule,
46
- ],
47
- })
48
- class TestXQuantitativeAxisComponent implements OnInit {
49
- @Input() barsConfig: BarsOptions<{ state: string; value: number }, string>;
50
- @Input() xQuantitativeAxisConfig: VicXQuantitativeAxisConfig<number>;
51
- chartConfig: ChartConfig;
52
-
53
- chart = inject(VicChartConfigBuilder);
54
-
55
- ngOnInit(): void {
56
- this.chartConfig = this.chart
57
- .maxHeight(800)
58
- .margin({ top: 20, right: 20, bottom: 20, left: 20 })
59
- .scalingStrategy('responsive-width')
60
- .getConfig();
61
- }
62
- }
63
-
64
- describe('it correctly sets ticks', () => {
65
- let barsConfig: BarsOptions<{ state: string; value: number }, string>;
66
- let axisConfig: VicXQuantitativeAxisConfig<number>;
67
- beforeEach(() => {
68
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
69
- .ticks((ticks) => ticks.format('.0f'))
70
- .getConfig();
71
- barsConfig = new VicBarsConfigBuilder<
72
- { state: string; value: number },
73
- string
74
- >()
75
- .data([
76
- { state: 'Alabama', value: 1.1 },
77
- { state: 'Alaska', value: 2.2 },
78
- { state: 'Arizona', value: 30.3 },
79
- ])
80
- .horizontal((bars) =>
81
- bars
82
- .x((dimension) => dimension.valueAccessor((d) => d.value))
83
- .y((dimension) => dimension.valueAccessor((d) => d.state))
84
- )
85
- .labels((labels) => labels.display(true))
86
- .getConfig();
87
- });
88
- describe('only tickFormat is specified by the user', () => {
89
- beforeEach(() => {
90
- cy.mount(TestXQuantitativeAxisComponent, {
91
- componentProperties: {
92
- barsConfig: barsConfig,
93
- xQuantitativeAxisConfig: axisConfig,
94
- },
95
- });
96
- cy.wait(axisTickTextWaitTime);
97
- });
98
- it('has a last tick whose value is less than or equal to the max value', () => {
99
- cy.get(tickTextSelector).then((ticks) => {
100
- const lastTick = ticks[ticks.length - 1];
101
- expect(Number(lastTick.textContent)).to.be.at.most(
102
- barsConfig.data.map((d) => d.value).reduce((a, b) => Math.max(a, b))
103
- );
104
- });
105
- });
106
- });
107
- describe('tick values are specified by user', () => {
108
- beforeEach(() => {
109
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
110
- .ticks((ticks) => ticks.format('.0f').values([1, 2, 7, 21]))
111
- .getConfig();
112
- cy.mount(TestXQuantitativeAxisComponent, {
113
- componentProperties: {
114
- barsConfig: barsConfig,
115
- xQuantitativeAxisConfig: axisConfig,
116
- },
117
- });
118
- cy.wait(axisTickTextWaitTime);
119
- });
120
- it('has the specified tick values', () => {
121
- cy.get(tickTextSelector).then((ticks) => {
122
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
123
- expect(tickValues).to.deep.equal(axisConfig.ticks.values.map(String));
124
- });
125
- });
126
- });
127
- describe('tick values are specified by user - tick values are outside of data range', () => {
128
- beforeEach(() => {
129
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
130
- .ticks((ticks) => ticks.format('.0f').values([-1, 1, 2, 7, 21, 100]))
131
- .getConfig();
132
- cy.mount(TestXQuantitativeAxisComponent, {
133
- componentProperties: {
134
- barsConfig: barsConfig,
135
- xQuantitativeAxisConfig: axisConfig,
136
- },
137
- });
138
- cy.wait(axisTickTextWaitTime);
139
- });
140
- it('has the specified tick values, excluding those that are outside of the data range', () => {
141
- cy.get(tickTextSelector).then((ticks) => {
142
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
143
- expect(tickValues).to.deep.equal(['1', '2', '7', '21']);
144
- });
145
- });
146
- });
147
- });
148
-
149
- describe('integer formatted ticks', () => {
150
- let validFormatRegex: RegExp;
151
- let barsConfig: BarsOptions<{ state: string; value: number }, string>;
152
- let axisConfig: VicXQuantitativeAxisConfig<number>;
153
- beforeEach(() => {
154
- barsConfig = new VicBarsConfigBuilder<
155
- { state: string; value: number },
156
- string
157
- >()
158
- .data([
159
- { state: 'Alabama', value: 1.1 },
160
- { state: 'Alaska', value: 2.2 },
161
- { state: 'Arizona', value: 30.3 },
162
- ])
163
- .horizontal((bars) =>
164
- bars
165
- .x((dimension) => dimension.valueAccessor((d) => d.value))
166
- .y((dimension) => dimension.valueAccessor((d) => d.state))
167
- )
168
- .labels((labels) => labels.display(true))
169
- .getConfig();
170
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
171
- .ticks((ticks) => ticks.format('.0f').count(2))
172
- .getConfig();
173
- validFormatRegex = /^\d+$/;
174
- });
175
- describe('only tickFormat is specified by the user', () => {
176
- it('has ticks that are formatted as specified -- case .0f', () => {
177
- cy.mount(TestXQuantitativeAxisComponent, {
178
- componentProperties: {
179
- barsConfig: barsConfig,
180
- xQuantitativeAxisConfig: axisConfig,
181
- },
182
- });
183
- cy.wait(axisTickTextWaitTime);
184
- cy.get(tickTextSelector).then((ticks) => {
185
- ticks.each((i, tick) => {
186
- expect(tick.textContent).to.match(validFormatRegex);
187
- });
188
- });
189
- });
190
-
191
- it('has no duplicate tick values', () => {
192
- barsConfig = new VicBarsConfigBuilder<
193
- { state: string; value: number },
194
- string
195
- >()
196
- .data([
197
- { state: 'Alabama', value: 0.3 },
198
- { state: 'Alaska', value: 1.2 },
199
- { state: 'Arizona', value: 0.7 },
200
- ])
201
- .horizontal((bars) =>
202
- bars
203
- .x((dimension) => dimension.valueAccessor((d) => d.value))
204
- .y((dimension) => dimension.valueAccessor((d) => d.state))
205
- )
206
- .labels((labels) => labels.display(true))
207
- .getConfig();
208
- cy.mount(TestXQuantitativeAxisComponent, {
209
- componentProperties: {
210
- barsConfig: barsConfig,
211
- xQuantitativeAxisConfig: axisConfig,
212
- },
213
- });
214
- cy.wait(axisTickTextWaitTime);
215
- cy.get(tickTextSelector).then((ticks) => {
216
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
217
- expect(tickValues).to.deep.equal(['0', '1']);
218
- });
219
- barsConfig = new VicBarsConfigBuilder<
220
- { state: string; value: number },
221
- string
222
- >()
223
- .data([
224
- { state: 'Alabama', value: 0.3 },
225
- { state: 'Alaska', value: 1.9 },
226
- { state: 'Arizona', value: 0.7 },
227
- ])
228
- .horizontal((bars) =>
229
- bars
230
- .x((dimension) => dimension.valueAccessor((d) => d.value))
231
- .y((dimension) => dimension.valueAccessor((d) => d.state))
232
- )
233
- .labels((labels) => labels.display(true))
234
- .getConfig();
235
- cy.mount(TestXQuantitativeAxisComponent, {
236
- componentProperties: {
237
- barsConfig: barsConfig,
238
- xQuantitativeAxisConfig: axisConfig,
239
- },
240
- });
241
- cy.wait(axisTickTextWaitTime);
242
- cy.get(tickTextSelector).then((ticks) => {
243
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
244
- expect(tickValues).to.deep.equal(['0', '1']);
245
- });
246
- });
247
- });
248
- describe('tick values are specified by user - specified values are not integers', () => {
249
- beforeEach(() => {
250
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
251
- .ticks((ticks) => ticks.format('.0f').values([1.1, 2.2, 7.7, 21.21]))
252
- .getConfig();
253
- cy.mount(TestXQuantitativeAxisComponent, {
254
- componentProperties: {
255
- barsConfig: barsConfig,
256
- xQuantitativeAxisConfig: axisConfig,
257
- },
258
- });
259
- cy.wait(axisTickTextWaitTime);
260
- });
261
- it('has the specified tick values, rounded to the nearest integer', () => {
262
- cy.get(tickTextSelector).then((ticks) => {
263
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
264
- expect(tickValues).to.deep.equal(['1', '2', '8', '21']);
265
- });
266
- });
267
- });
268
- describe('user specifies numTicks and data range has fewer integer values than numTicks', () => {
269
- beforeEach(() => {
270
- barsConfig = new VicBarsConfigBuilder<
271
- { state: string; value: number },
272
- string
273
- >()
274
- .data([
275
- { state: 'Alabama', value: 1.1 },
276
- { state: 'Alaska', value: 2.2 },
277
- { state: 'Arizona', value: 3.3 },
278
- ])
279
- .horizontal((bars) =>
280
- bars
281
- .x((dimension) => dimension.valueAccessor((d) => d.value))
282
- .y((dimension) => dimension.valueAccessor((d) => d.state))
283
- )
284
- .labels((labels) => labels.display(true))
285
- .getConfig();
286
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
287
- .ticks((ticks) => ticks.format('.0f').count(100))
288
- .getConfig();
289
- cy.mount(TestXQuantitativeAxisComponent, {
290
- componentProperties: {
291
- barsConfig: barsConfig,
292
- xQuantitativeAxisConfig: axisConfig,
293
- },
294
- });
295
- cy.wait(axisTickTextWaitTime);
296
- });
297
- it('has ticks that are formatted as integers', () => {
298
- cy.get(tickTextSelector).then((ticks) => {
299
- ticks.each((i, tick) => {
300
- expect(tick.textContent).to.match(validFormatRegex);
301
- });
302
- });
303
- });
304
- it('has only one tick per integer in the domain / does not have duplicate tick values', () => {
305
- cy.get(tickTextSelector).then((ticks) => {
306
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
307
- expect(tickValues).to.deep.equal(['0', '1', '2', '3']);
308
- });
309
- });
310
- });
311
- describe('user specifies numTicks and data max is less than 1 (first possible value given formatter)', () => {
312
- beforeEach(() => {
313
- barsConfig = new VicBarsConfigBuilder<
314
- { state: string; value: number },
315
- string
316
- >()
317
- .data([
318
- { state: 'Alabama', value: 0.1 },
319
- { state: 'Alaska', value: 0.4 },
320
- { state: 'Arizona', value: 0.8 },
321
- ])
322
- .horizontal((bars) =>
323
- bars
324
- .x((dimension) => dimension.valueAccessor((d) => d.value))
325
- .y((dimension) => dimension.valueAccessor((d) => d.state))
326
- )
327
- .labels((labels) => labels.display(true))
328
- .getConfig();
329
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
330
- .ticks((ticks) => ticks.format('.0f').count(10))
331
- .getConfig();
332
- cy.mount(TestXQuantitativeAxisComponent, {
333
- componentProperties: {
334
- barsConfig: barsConfig,
335
- xQuantitativeAxisConfig: axisConfig,
336
- },
337
- });
338
- cy.wait(axisTickTextWaitTime);
339
- });
340
- it('has ticks that are formatted as integers', () => {
341
- cy.get(tickTextSelector).then((ticks) => {
342
- ticks.each((i, tick) => {
343
- expect(tick.textContent).to.match(validFormatRegex);
344
- });
345
- });
346
- });
347
- it('has only one tick and that tick is at zero', () => {
348
- cy.get(tickTextSelector).then((ticks) => {
349
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
350
- expect(tickValues).to.deep.equal(['0']);
351
- });
352
- });
353
- });
354
- });
355
-
356
- describe('float formatted ticks', () => {
357
- let validFormatRegex: RegExp;
358
- let barsConfig: BarsOptions<{ state: string; value: number }, string>;
359
- let axisConfig: VicXQuantitativeAxisConfig<number>;
360
- beforeEach(() => {
361
- barsConfig = new VicBarsConfigBuilder<
362
- { state: string; value: number },
363
- string
364
- >()
365
- .data([
366
- { state: 'Alabama', value: 1.1 },
367
- { state: 'Alaska', value: 2.2 },
368
- { state: 'Arizona', value: 30.3 },
369
- ])
370
- .horizontal((bars) =>
371
- bars
372
- .x((dimension) => dimension.valueAccessor((d) => d.value))
373
- .y((dimension) => dimension.valueAccessor((d) => d.state))
374
- )
375
- .labels((labels) => labels.display(true))
376
- .getConfig();
377
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
378
- .ticks((ticks) => ticks.format('.1f'))
379
- .getConfig();
380
- validFormatRegex = /^(\d|[1-9]\d+)\.\d$/;
381
- });
382
- describe('only tickFormat is specified by the user', () => {
383
- beforeEach(() => {
384
- cy.mount(TestXQuantitativeAxisComponent, {
385
- componentProperties: {
386
- barsConfig: barsConfig,
387
- xQuantitativeAxisConfig: axisConfig,
388
- },
389
- });
390
- cy.wait(axisTickTextWaitTime);
391
- });
392
- it('has ticks that are formatted as floats with the correct number of decimal places - case .1f', () => {
393
- cy.get(tickTextSelector).then((ticks) => {
394
- ticks.each((i, tick) => {
395
- expect(tick.textContent).to.match(validFormatRegex);
396
- });
397
- });
398
- });
399
- });
400
- describe('tick values are specified by user - specified values are not the correct format', () => {
401
- beforeEach(() => {
402
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
403
- .ticks((ticks) => ticks.format('.1f').values([1, 2.27, 7.0, 21.21]))
404
- .getConfig();
405
- cy.mount(TestXQuantitativeAxisComponent, {
406
- componentProperties: {
407
- barsConfig: barsConfig,
408
- xQuantitativeAxisConfig: axisConfig,
409
- },
410
- });
411
- cy.wait(axisTickTextWaitTime);
412
- });
413
- it('has the specified tick values, rounded to the nearest tenth', () => {
414
- cy.get(tickTextSelector).then((ticks) => {
415
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
416
- expect(tickValues).to.deep.equal(['1.0', '2.3', '7.0', '21.2']);
417
- });
418
- });
419
- });
420
- describe('user specifies numTicks and data range has fewer possible formatted values than numTicks', () => {
421
- let possibleValues: number;
422
- beforeEach(() => {
423
- barsConfig = new VicBarsConfigBuilder<
424
- { state: string; value: number },
425
- string
426
- >()
427
- .data([
428
- { state: 'Alabama', value: 1.1 },
429
- { state: 'Alaska', value: 2.2 },
430
- { state: 'Arizona', value: 3.3 },
431
- ])
432
- .horizontal((bars) =>
433
- bars
434
- .x((dimension) => dimension.valueAccessor((d) => d.value))
435
- .y((dimension) => dimension.valueAccessor((d) => d.state))
436
- )
437
- .labels((labels) => labels.display(true))
438
- .getConfig();
439
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
440
- .ticks((ticks) => ticks.format('.1f').count(100))
441
- .getConfig();
442
- const numDecimalPlaces = 1;
443
- possibleValues =
444
- extent(barsConfig.data.map((d) => d.value))[1] *
445
- Math.pow(10, numDecimalPlaces) +
446
- 1;
447
- cy.mount(TestXQuantitativeAxisComponent, {
448
- componentProperties: {
449
- barsConfig: barsConfig,
450
- xQuantitativeAxisConfig: axisConfig,
451
- },
452
- });
453
- cy.wait(axisTickTextWaitTime);
454
- });
455
- it('has ticks that are correctly formatted', () => {
456
- cy.get(tickTextSelector).then((ticks) => {
457
- ticks.each((i, tick) => {
458
- expect(tick.textContent).to.match(validFormatRegex);
459
- });
460
- });
461
- });
462
- it('does not have duplicate tick values', () => {
463
- cy.get(tickTextSelector).then((ticks) => {
464
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
465
- const uniqueTickValues = [...new Set(tickValues)];
466
- expect(tickValues.length).to.deep.equal(uniqueTickValues.length);
467
- });
468
- });
469
- it('does not have more than the possible number of tick values given formatter', () => {
470
- cy.get(tickTextSelector).then((ticks) => {
471
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
472
- expect(tickValues.length).to.be.at.most(possibleValues);
473
- });
474
- });
475
- });
476
- describe('user specifies numTicks and data max is less than first possible value given formatter', () => {
477
- beforeEach(() => {
478
- barsConfig = new VicBarsConfigBuilder<
479
- { state: string; value: number },
480
- string
481
- >()
482
- .data([
483
- { state: 'Alabama', value: 0.01 },
484
- { state: 'Alaska', value: 0.04 },
485
- { state: 'Arizona', value: 0.08 },
486
- ])
487
- .horizontal((bars) =>
488
- bars
489
- .x((dimension) => dimension.valueAccessor((d) => d.value))
490
- .y((dimension) => dimension.valueAccessor((d) => d.state))
491
- )
492
- .labels((labels) => labels.display(true))
493
- .getConfig();
494
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
495
- .ticks((ticks) => ticks.format('.1f').count(10))
496
- .getConfig();
497
- cy.mount(TestXQuantitativeAxisComponent, {
498
- componentProperties: {
499
- barsConfig: barsConfig,
500
- xQuantitativeAxisConfig: axisConfig,
501
- },
502
- });
503
- cy.wait(axisTickTextWaitTime);
504
- });
505
- it('has ticks that are formatted as floats with the correct number of decimal places - case .1f', () => {
506
- cy.get(tickTextSelector).then((ticks) => {
507
- ticks.each((i, tick) => {
508
- expect(tick.textContent).to.match(validFormatRegex);
509
- });
510
- });
511
- });
512
- it('has only one tick and that tick is at zero and correctly formatted', () => {
513
- cy.get(tickTextSelector).then((ticks) => {
514
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
515
- expect(tickValues).to.deep.equal(['0.0']);
516
- });
517
- });
518
- });
519
- });
520
-
521
- describe('percent formatted ticks', () => {
522
- let validFormatRegex: RegExp;
523
- let barsConfig: BarsOptions<{ state: string; value: number }, string>;
524
- let axisConfig: VicXQuantitativeAxisConfig<number>;
525
- beforeEach(() => {
526
- barsConfig = new VicBarsConfigBuilder<
527
- { state: string; value: number },
528
- string
529
- >()
530
- .data([
531
- { state: 'Alabama', value: 0.011 },
532
- { state: 'Alaska', value: 0.022 },
533
- { state: 'Arizona', value: 0.303 },
534
- ])
535
- .horizontal((bars) =>
536
- bars
537
- .x((dimension) => dimension.valueAccessor((d) => d.value))
538
- .y((dimension) => dimension.valueAccessor((d) => d.state))
539
- )
540
- .labels((labels) => labels.display(true))
541
- .getConfig();
542
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
543
- .ticks((ticks) => ticks.format('.0%'))
544
- .getConfig();
545
- validFormatRegex = /^(\d|[1-9]\d+)%$/;
546
- });
547
- describe('only tickFormat is specified by the user', () => {
548
- beforeEach(() => {
549
- cy.mount(TestXQuantitativeAxisComponent, {
550
- componentProperties: {
551
- barsConfig: barsConfig,
552
- xQuantitativeAxisConfig: axisConfig,
553
- },
554
- });
555
- cy.wait(axisTickTextWaitTime);
556
- });
557
- it('has ticks that are formatted as percentages with the correct number of decimal places - case .0%', () => {
558
- cy.get(tickTextSelector).then((ticks) => {
559
- ticks.each((i, tick) => {
560
- expect(tick.textContent).to.match(validFormatRegex);
561
- });
562
- });
563
- });
564
- });
565
- describe('tick values are specified by user - specified values are not the correct format', () => {
566
- beforeEach(() => {
567
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
568
- .ticks((ticks) =>
569
- ticks.format('.0%').values([0.01, 0.027, 0.07, 0.2121])
570
- )
571
- .getConfig();
572
- cy.mount(TestXQuantitativeAxisComponent, {
573
- componentProperties: {
574
- barsConfig: barsConfig,
575
- xQuantitativeAxisConfig: axisConfig,
576
- },
577
- });
578
- cy.wait(axisTickTextWaitTime);
579
- });
580
- it('has the specified tick values, rounded to the nearest integer', () => {
581
- cy.get(tickTextSelector).then((ticks) => {
582
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
583
- expect(tickValues).to.deep.equal(['1%', '3%', '7%', '21%']);
584
- });
585
- });
586
- });
587
- describe('user specifies numTicks and data range has fewer possible formatted values than numTicks', () => {
588
- let possibleValues: number;
589
- beforeEach(() => {
590
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
591
- .ticks((ticks) => ticks.format('.0%').count(100))
592
- .getConfig();
593
- const numDecimalPlaces = 2;
594
- possibleValues =
595
- extent(barsConfig.data.map((d) => d.value))[1] *
596
- Math.pow(10, numDecimalPlaces) +
597
- 1;
598
- cy.mount(TestXQuantitativeAxisComponent, {
599
- componentProperties: {
600
- barsConfig: barsConfig,
601
- xQuantitativeAxisConfig: axisConfig,
602
- },
603
- });
604
- cy.wait(axisTickTextWaitTime);
605
- });
606
- it('has ticks that are correctly formatted', () => {
607
- cy.get(tickTextSelector).then((ticks) => {
608
- ticks.each((i, tick) => {
609
- expect(tick.textContent).to.match(validFormatRegex);
610
- });
611
- });
612
- });
613
- it('does not have duplicate tick values', () => {
614
- cy.get(tickTextSelector).then((ticks) => {
615
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
616
- const uniqueTickValues = [...new Set(tickValues)];
617
- expect(tickValues.length).to.deep.equal(uniqueTickValues.length);
618
- });
619
- });
620
- it('does not have more than the possible number of tick values given formatter', () => {
621
- cy.get(tickTextSelector).then((ticks) => {
622
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
623
- expect(tickValues.length).to.be.at.most(possibleValues);
624
- });
625
- });
626
- });
627
- describe('user specifies numTicks and data max is less than first possible value given formatter', () => {
628
- beforeEach(() => {
629
- barsConfig = new VicBarsConfigBuilder<
630
- { state: string; value: number },
631
- string
632
- >()
633
- .data([
634
- { state: 'Alabama', value: 0.001 },
635
- { state: 'Alaska', value: 0.004 },
636
- { state: 'Arizona', value: 0.008 },
637
- ])
638
- .horizontal((bars) =>
639
- bars
640
- .x((dimension) => dimension.valueAccessor((d) => d.value))
641
- .y((dimension) => dimension.valueAccessor((d) => d.state))
642
- )
643
- .labels((labels) => labels.display(true))
644
- .getConfig();
645
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
646
- .ticks((ticks) => ticks.format('.0%').count(10))
647
- .getConfig();
648
- cy.mount(TestXQuantitativeAxisComponent, {
649
- componentProperties: {
650
- barsConfig: barsConfig,
651
- xQuantitativeAxisConfig: axisConfig,
652
- },
653
- });
654
- cy.wait(axisTickTextWaitTime);
655
- });
656
- it('has ticks that are correctly formatted', () => {
657
- cy.get(tickTextSelector).then((ticks) => {
658
- ticks.each((i, tick) => {
659
- expect(tick.textContent).to.match(validFormatRegex);
660
- });
661
- });
662
- });
663
- it('has only one tick and that tick is at zero and correctly formatted', () => {
664
- cy.get(tickTextSelector).then((ticks) => {
665
- const tickValues = ticks.toArray().map((tick) => tick.textContent);
666
- expect(tickValues).to.deep.equal(['0%']);
667
- });
668
- });
669
- });
670
- });
671
-
672
- describe('grid lines', () => {
673
- let barsConfig: BarsOptions<{ state: string; value: number }, string>;
674
- let axisConfig: VicXQuantitativeAxisConfig<number>;
675
- beforeEach(() => {
676
- barsConfig = new VicBarsConfigBuilder<
677
- { state: string; value: number },
678
- string
679
- >()
680
- .data([
681
- { state: 'Alabama', value: 1.1 },
682
- { state: 'Alaska', value: 2.2 },
683
- { state: 'Arizona', value: 30.3 },
684
- ])
685
- .horizontal((bars) =>
686
- bars
687
- .x((dimension) => dimension.valueAccessor((d) => d.value))
688
- .y((dimension) => dimension.valueAccessor((d) => d.state))
689
- )
690
- .getConfig();
691
- });
692
- it('height matches chart area', () => {
693
- axisConfig = new VicXQuantitativeAxisConfigBuilder().grid().getConfig();
694
- cy.mount(TestXQuantitativeAxisComponent, {
695
- componentProperties: {
696
- barsConfig: barsConfig,
697
- xQuantitativeAxisConfig: axisConfig,
698
- },
699
- });
700
- cy.wait(axisTickTextWaitTime);
701
- cy.get('.vic-xy-background')
702
- .invoke('height')
703
- .then((backgroundHeight) => {
704
- cy.get('.vic-grid-line line').each(($line) => {
705
- cy.wrap($line)
706
- .invoke('attr', 'y2')
707
- .then((tickLineHeight) => {
708
- const absTickLineHeight = Math.abs(parseFloat(tickLineHeight));
709
- expect(absTickLineHeight).to.equal(backgroundHeight);
710
- });
711
- });
712
- });
713
- });
714
- it('number of lines matches number of ticks if no filter is specified', () => {
715
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
716
- .ticks((ticks) => ticks.count(4))
717
- .grid()
718
- .getConfig();
719
- cy.mount(TestXQuantitativeAxisComponent, {
720
- componentProperties: {
721
- barsConfig: barsConfig,
722
- xQuantitativeAxisConfig: axisConfig,
723
- },
724
- });
725
- cy.wait(axisTickTextWaitTime);
726
- cy.get('.vic-grid-line').should('have.length', 4);
727
- });
728
- it('lines are visible for every other tick given a filter (excluding line overlapping axis)', () => {
729
- axisConfig = new VicXQuantitativeAxisConfigBuilder()
730
- .ticks((ticks) => ticks.count(4))
731
- .grid((grid) => grid.filter((i) => i % 2 === 0))
732
- .getConfig();
733
- cy.mount(TestXQuantitativeAxisComponent, {
734
- componentProperties: {
735
- barsConfig: barsConfig,
736
- xQuantitativeAxisConfig: axisConfig,
737
- },
738
- });
739
- cy.wait(axisTickTextWaitTime);
740
- cy.get('.vic-grid-line').each(($line, i) => {
741
- if (i % 2 === 0) {
742
- cy.wrap($line).should('not.have.css', 'display', 'none');
743
- } else {
744
- cy.wrap($line).should('have.css', 'display', 'none');
745
- }
746
- });
747
- });
748
- });