@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,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
- });