@mathstack/viz 2.1.0 → 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 -305
  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,537 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { ElementRef } from '@angular/core';
3
- import { TestBed } from '@angular/core/testing';
4
- import { XyChartComponent } from '@mathstack/viz';
5
- import { timeMonth } from 'd3';
6
- import { QuantitativeAxisStub } from '../../testing/stubs/quantitative-axis.stub';
7
- import { VicXQuantitativeAxisConfigBuilder } from '../x-quantitative/x-quantitative-axis-builder';
8
-
9
- describe('the QuantitativeAxis mixin', () => {
10
- let abstractClass: QuantitativeAxisStub<number>;
11
- const mockElementRef = {
12
- nativeElement: {
13
- querySelector: jasmine.createSpy('querySelector'),
14
- style: {},
15
- },
16
- };
17
-
18
- beforeEach(() => {
19
- TestBed.configureTestingModule({
20
- providers: [
21
- QuantitativeAxisStub,
22
- XyChartComponent,
23
- { provide: ElementRef, useValue: mockElementRef },
24
- ],
25
- });
26
- abstractClass = TestBed.inject(QuantitativeAxisStub);
27
- });
28
-
29
- describe('setTicks', () => {
30
- beforeEach(() => {
31
- spyOn(abstractClass as any, 'setSpecifiedTickValues');
32
- spyOn(abstractClass as any, 'setUnspecifiedTickValues');
33
- });
34
- describe('if tickValues exists on config', () => {
35
- it('calls setSpecifiedTickValues once with the correct value', () => {
36
- abstractClass.config = new VicXQuantitativeAxisConfigBuilder()
37
- .ticks((t) => t.values([1, 2, 3]))
38
- .getConfig();
39
- (abstractClass as any).setTicks('.0f');
40
- expect(
41
- (abstractClass as any).setSpecifiedTickValues
42
- ).toHaveBeenCalledOnceWith('.0f');
43
- });
44
- });
45
- describe('if tickValues does not exist on config', () => {
46
- it('calls setUnspecifiedTickValues once with the correct value', () => {
47
- abstractClass.config =
48
- new VicXQuantitativeAxisConfigBuilder().getConfig();
49
- (abstractClass as any).setTicks('.0f');
50
- expect(
51
- (abstractClass as any).setUnspecifiedTickValues
52
- ).toHaveBeenCalledOnceWith('.0f');
53
- });
54
- });
55
- });
56
-
57
- describe('setSpecifiedTickValues', () => {
58
- let tickValuesSpy: jasmine.Spy;
59
- let tickFormatSpy: jasmine.Spy;
60
- const tickFormat = '%Y';
61
- beforeEach(() => {
62
- spyOn(abstractClass as any, 'getValidTickValues').and.returnValue([
63
- 1, 2, 3,
64
- ]);
65
- tickValuesSpy = jasmine.createSpy('tickValues');
66
- tickFormatSpy = jasmine.createSpy('tickFormat');
67
- abstractClass.axis = {
68
- tickValues: tickValuesSpy,
69
- tickFormat: tickFormatSpy,
70
- };
71
- (abstractClass as any).setSpecifiedTickValues(tickFormat);
72
- });
73
- it('calls getValidTickValues once', () => {
74
- expect((abstractClass as any).getValidTickValues).toHaveBeenCalledTimes(
75
- 1
76
- );
77
- });
78
- it('calls tickValues on axis with the correct values', () => {
79
- expect(tickValuesSpy).toHaveBeenCalledOnceWith([1, 2, 3]);
80
- });
81
- it('calls tickFormat on axis with the correct values', () => {
82
- expect(tickFormatSpy).toHaveBeenCalledTimes(1);
83
- });
84
- });
85
-
86
- describe('getValidTickValues', () => {
87
- let domainSpy: jasmine.Spy;
88
- beforeEach(() => {
89
- domainSpy = jasmine.createSpy('domain');
90
- abstractClass.scale = {
91
- domain: domainSpy.and.returnValue([0, 5]),
92
- };
93
- });
94
- it('returns the original tickValues if all values are within the scale domain', () => {
95
- abstractClass.config = new VicXQuantitativeAxisConfigBuilder()
96
- .ticks((t) => t.values([0, 2, 4, 5]))
97
- .getConfig();
98
- expect((abstractClass as any).getValidTickValues()).toEqual([0, 2, 4, 5]);
99
- });
100
- it('returns only values that are within the scale domain', () => {
101
- abstractClass.config = new VicXQuantitativeAxisConfigBuilder()
102
- .ticks((t) => t.values([-1, 0, 1, 2, 3, 4, 5, 6]))
103
- .getConfig();
104
- expect((abstractClass as any).getValidTickValues()).toEqual([
105
- 0, 1, 2, 3, 4, 5,
106
- ]);
107
- });
108
- });
109
-
110
- describe('setUnspecifiedTickValues', () => {
111
- let ticksSpy: jasmine.Spy;
112
- let tickFormatSpy: jasmine.Spy;
113
- let domainSpy: jasmine.Spy;
114
- const tickFormat = '%Y';
115
- beforeEach(() => {
116
- spyOn(abstractClass as any, 'getSuggestedNumTicks').and.returnValue(10);
117
- ticksSpy = jasmine.createSpy('ticks');
118
- tickFormatSpy = jasmine.createSpy('tickFormat');
119
- domainSpy = jasmine.createSpy('domain');
120
- abstractClass.axis = {
121
- ticks: ticksSpy,
122
- tickFormat: tickFormatSpy,
123
- };
124
- abstractClass.scale = {
125
- domain: domainSpy,
126
- };
127
- domainSpy.and.returnValue([0, 5]);
128
- (abstractClass as any).setUnspecifiedTickValues(tickFormat);
129
- });
130
- it('calls getSuggestedNumTicks once', () => {
131
- expect(
132
- (abstractClass as any).getSuggestedNumTicks
133
- ).toHaveBeenCalledOnceWith(tickFormat);
134
- });
135
- it('calls ticks on axis with the correct values', () => {
136
- tickFormatSpy.calls.reset();
137
- expect(ticksSpy).toHaveBeenCalledOnceWith(10);
138
- });
139
- it('calls tickFormat on axis with the correct values', () => {
140
- ticksSpy.calls.reset();
141
- expect(tickFormatSpy).toHaveBeenCalledTimes(1);
142
- });
143
- });
144
-
145
- describe('getSuggestedNumTicks', () => {
146
- let tickFormat: string | ((value: number | Date) => string);
147
- let getNumTicksSpy: jasmine.Spy;
148
- let domainSpy: jasmine.Spy;
149
- let maxTicksFroDateFormatSpy: jasmine.Spy;
150
- beforeEach(() => {
151
- getNumTicksSpy = spyOn(
152
- abstractClass as any,
153
- 'getNumTicks'
154
- ).and.returnValue(8);
155
- maxTicksFroDateFormatSpy = spyOn(
156
- abstractClass as any,
157
- 'getMaxTicksForDateFormat'
158
- ).and.returnValue(null);
159
- spyOn(
160
- abstractClass as any,
161
- 'getValidNumTicksForNumberFormatString'
162
- ).and.returnValue(10);
163
- abstractClass.config = new VicXQuantitativeAxisConfigBuilder()
164
- .ticks((t) => t.count(1))
165
- .getConfig();
166
- domainSpy = jasmine.createSpy('domain');
167
- abstractClass.scale = {
168
- domain: domainSpy.and.returnValue([0, 10]),
169
- };
170
- });
171
- it('calls getNumTicks once', () => {
172
- tickFormat = ',.0f';
173
- (abstractClass as any).getSuggestedNumTicks(tickFormat);
174
- expect((abstractClass as any).getNumTicks).toHaveBeenCalledTimes(1);
175
- });
176
-
177
- describe('if tickFormat is a date format', () => {
178
- beforeEach(() => {
179
- tickFormat = '%Y';
180
- abstractClass.scale = {
181
- domain: domainSpy.and.returnValue([
182
- new Date(2020, 0, 1),
183
- new Date(2021, 11, 31),
184
- ]),
185
- };
186
- maxTicksFroDateFormatSpy.and.returnValue(5);
187
- });
188
- it('calls getMaxTicksForDateFormat once with the correct value', () => {
189
- (abstractClass as any).getSuggestedNumTicks(tickFormat);
190
- expect(
191
- (abstractClass as any).getMaxTicksForDateFormat
192
- ).toHaveBeenCalledOnceWith(tickFormat);
193
- });
194
- it('returns the result from getMaxTicksForDateFormat', () => {
195
- expect((abstractClass as any).getSuggestedNumTicks(tickFormat)).toEqual(
196
- 5
197
- );
198
- });
199
- it('returns the result from getMaxTicksForDateFormat if it is less than the result from getNumTicks', () => {
200
- getNumTicksSpy.and.returnValue(10);
201
- expect((abstractClass as any).getSuggestedNumTicks(tickFormat)).toEqual(
202
- 5
203
- );
204
- });
205
- it('returns the result from getNumTicks if getMaxTicksForDateFormat returns null', () => {
206
- (abstractClass as any).getMaxTicksForDateFormat.and.returnValue(null);
207
- expect((abstractClass as any).getSuggestedNumTicks(tickFormat)).toEqual(
208
- 8
209
- );
210
- });
211
- });
212
-
213
- describe('if tickFormat is a string but has no period in it', () => {
214
- beforeEach(() => {
215
- tickFormat = '0f';
216
- });
217
- it('returns the result from getNumTicks', () => {
218
- expect((abstractClass as any).getSuggestedNumTicks(tickFormat)).toEqual(
219
- 8
220
- );
221
- });
222
- it('does not call getValidNumTicksForNumberFormatString', () => {
223
- expect(
224
- (abstractClass as any).getValidNumTicksForNumberFormatString
225
- ).not.toHaveBeenCalled();
226
- });
227
- });
228
-
229
- describe('if tickFormat is a string with a period in it and return value from getNumTicks is a number', () => {
230
- beforeEach(() => {
231
- tickFormat = ',.0f';
232
- });
233
- it('calls getSuggestedNumTicksStringFormatter once with the correct values', () => {
234
- (abstractClass as any).getSuggestedNumTicks(tickFormat);
235
- expect(
236
- (abstractClass as any).getValidNumTicksForNumberFormatString
237
- ).toHaveBeenCalledOnceWith(8, tickFormat);
238
- });
239
- it('returns the result from getSuggestedNumTicksStringFormatter', () => {
240
- expect((abstractClass as any).getSuggestedNumTicks(tickFormat)).toEqual(
241
- 10
242
- );
243
- });
244
- });
245
-
246
- describe('if result from initNumTicks is not a number', () => {
247
- it('returns the result from initNumTicks', () => {
248
- getNumTicksSpy.and.returnValue(timeMonth);
249
- tickFormat = ',.0f';
250
- expect((abstractClass as any).getSuggestedNumTicks(tickFormat)).toEqual(
251
- timeMonth
252
- );
253
- });
254
- });
255
- });
256
-
257
- describe('getNumTicks', () => {
258
- beforeEach(() => {
259
- abstractClass.chart.config = {
260
- height: 50,
261
- width: 100,
262
- } as any;
263
- });
264
- it('returns the value from config.numTicks if it exists', () => {
265
- abstractClass.config = new VicXQuantitativeAxisConfigBuilder()
266
- .ticks((t) => t.count(17))
267
- .getConfig();
268
- expect((abstractClass as any).getNumTicks()).toEqual(17);
269
- });
270
- it('returns the result from getSuggestedNumTicksFromChartDimension if config.numTicks does not exist', () => {
271
- abstractClass.config =
272
- new VicXQuantitativeAxisConfigBuilder().getConfig();
273
- spyOn(abstractClass.config, 'getNumTicksBySpacing').and.returnValue(22);
274
- expect((abstractClass as any).getNumTicks()).toEqual(22);
275
- });
276
- });
277
-
278
- describe('getValidNumTicksForNumberFormatString', () => {
279
- let domainSpy: jasmine.Spy;
280
- beforeEach(() => {
281
- domainSpy = jasmine.createSpy('domain');
282
- });
283
- it('returns the numTicks argument if numTicks is valid', () => {
284
- abstractClass.scale = {
285
- domain: domainSpy.and.returnValue([0, 20]),
286
- };
287
- expect(
288
- (abstractClass as any).getValidNumTicksForNumberFormatString(10, ',.0f')
289
- ).toEqual(10);
290
- });
291
- it('returns 1 if the first possible tick is greater than the end of the domain', () => {
292
- abstractClass.scale = {
293
- domain: domainSpy.and.returnValue([0, 0.5]),
294
- };
295
- expect(
296
- (abstractClass as any).getValidNumTicksForNumberFormatString(10, ',.0f')
297
- ).toEqual(1);
298
- });
299
- it('returns the correct value if formatter is for ints and numTicks is too big given domain max', () => {
300
- abstractClass.scale = {
301
- domain: domainSpy.and.returnValue([0, 5]),
302
- };
303
- expect(
304
- (abstractClass as any).getValidNumTicksForNumberFormatString(10, ',.0f')
305
- ).toEqual(5);
306
- });
307
- it('returns the correct value if formatter makes decimals and numTicks is too big given domain max', () => {
308
- abstractClass.scale = {
309
- domain: domainSpy.and.returnValue([0, 5]),
310
- };
311
- expect(
312
- (abstractClass as any).getValidNumTicksForNumberFormatString(
313
- 100,
314
- ',.1f'
315
- )
316
- ).toEqual(50);
317
- });
318
- it('returns the correct value if formatter makes percents and numTicks is too big given domain max', () => {
319
- abstractClass.scale = {
320
- domain: domainSpy.and.returnValue([0, 5]),
321
- };
322
- expect(
323
- (abstractClass as any).getValidNumTicksForNumberFormatString(
324
- 1000,
325
- '.0%'
326
- )
327
- ).toEqual(500);
328
- });
329
- });
330
-
331
- describe('getMaxTicksForDateFormat', () => {
332
- let domainSpy: jasmine.Spy;
333
-
334
- beforeEach(() => {
335
- domainSpy = jasmine.createSpy('domain');
336
- abstractClass.scale = {
337
- domain: domainSpy.and.returnValue([
338
- new Date(Date.UTC(2020, 0, 1)),
339
- new Date(Date.UTC(2021, 11, 31)),
340
- ]),
341
- };
342
- });
343
-
344
- it('returns null if the tickFormat is not a date format', () => {
345
- expect(
346
- (abstractClass as any).getMaxTicksForDateFormat('%.0f')
347
- ).toBeNull();
348
- });
349
-
350
- it('returns null for unrecognized composite formats', () => {
351
- expect(
352
- (abstractClass as any).getMaxTicksForDateFormat('%Y-%m-%d %H:%M')
353
- ).toBeNull();
354
- });
355
-
356
- describe('Year formatters', () => {
357
- it('returns the correct value for %Y format', () => {
358
- expect((abstractClass as any).getMaxTicksForDateFormat('%Y')).toEqual(
359
- 2
360
- ); // 2020, 2021
361
- });
362
-
363
- it('returns the correct value for %y format', () => {
364
- expect((abstractClass as any).getMaxTicksForDateFormat('%y')).toEqual(
365
- 2
366
- ); // 20, 21
367
- });
368
- });
369
-
370
- describe('Quarter formatters', () => {
371
- it('returns the correct value for quarter format', () => {
372
- expect(
373
- (abstractClass as any).getMaxTicksForDateFormat('%Y Q%q')
374
- ).toEqual(8); // 2020 Q1-Q4, 2021 Q1-Q4
375
- });
376
-
377
- it('handles partial quarter ranges correctly', () => {
378
- // Test with a domain that starts mid-year
379
- domainSpy.and.returnValue([
380
- new Date(Date.UTC(2020, 6, 1)),
381
- new Date(Date.UTC(2021, 2, 31)),
382
- ]);
383
- expect(
384
- (abstractClass as any).getMaxTicksForDateFormat('%Y Q%q')
385
- ).toEqual(3); // 2020 Q3-Q4, 2021 Q1
386
- });
387
- });
388
-
389
- describe('Month formatters', () => {
390
- it('returns the correct value for %B format', () => {
391
- expect((abstractClass as any).getMaxTicksForDateFormat('%B')).toEqual(
392
- 24
393
- ); // Jan 2020 - Dec 2021 = 24 months
394
- });
395
-
396
- it('returns the correct value for %b format', () => {
397
- expect((abstractClass as any).getMaxTicksForDateFormat('%b')).toEqual(
398
- 24
399
- );
400
- });
401
-
402
- it('returns the correct value for %m format', () => {
403
- expect((abstractClass as any).getMaxTicksForDateFormat('%m')).toEqual(
404
- 24
405
- );
406
- });
407
-
408
- it('returns the correct value for %B %Y format', () => {
409
- expect(
410
- (abstractClass as any).getMaxTicksForDateFormat('%B %Y')
411
- ).toEqual(24);
412
- });
413
-
414
- it('returns the correct value for %b %Y format', () => {
415
- expect(
416
- (abstractClass as any).getMaxTicksForDateFormat('%b %Y')
417
- ).toEqual(24);
418
- });
419
- });
420
-
421
- describe('Day formatters', () => {
422
- it('returns the correct value for %d format', () => {
423
- // Jan 1, 2020 to Dec 31, 2021 = 731 days (2020 is leap year)
424
- expect((abstractClass as any).getMaxTicksForDateFormat('%d')).toEqual(
425
- 731
426
- );
427
- });
428
-
429
- it('returns the correct value for %e format', () => {
430
- expect((abstractClass as any).getMaxTicksForDateFormat('%e')).toEqual(
431
- 731
432
- );
433
- });
434
-
435
- it('returns the correct value for %j format', () => {
436
- expect((abstractClass as any).getMaxTicksForDateFormat('%j')).toEqual(
437
- 731
438
- );
439
- });
440
-
441
- it('returns the correct value for %B %d, %Y format', () => {
442
- expect(
443
- (abstractClass as any).getMaxTicksForDateFormat('%B %d, %Y')
444
- ).toEqual(731);
445
- });
446
-
447
- it('returns the correct value for %m/%d/%Y format', () => {
448
- expect(
449
- (abstractClass as any).getMaxTicksForDateFormat('%m/%d/%Y')
450
- ).toEqual(731);
451
- });
452
-
453
- it('returns the correct value for %Y-%m-%d format', () => {
454
- expect(
455
- (abstractClass as any).getMaxTicksForDateFormat('%Y-%m-%d')
456
- ).toEqual(731);
457
- });
458
- });
459
-
460
- describe('Week formatters', () => {
461
- it('returns the correct value for %U format', () => {
462
- // Approximately 104-105 weeks in 2 years
463
- const result = (abstractClass as any).getMaxTicksForDateFormat('%U');
464
- expect(result).toBeGreaterThanOrEqual(104);
465
- expect(result).toBeLessThanOrEqual(106);
466
- });
467
-
468
- it('returns the correct value for %W format', () => {
469
- const result = (abstractClass as any).getMaxTicksForDateFormat('%W');
470
- expect(result).toBeGreaterThanOrEqual(104);
471
- expect(result).toBeLessThanOrEqual(106);
472
- });
473
- });
474
-
475
- describe('Edge cases', () => {
476
- it('handles same start and end dates', () => {
477
- domainSpy.and.returnValue([
478
- new Date(Date.UTC(2020, 5, 15)),
479
- new Date(Date.UTC(2020, 5, 15)),
480
- ]);
481
-
482
- expect((abstractClass as any).getMaxTicksForDateFormat('%Y')).toEqual(
483
- 1
484
- );
485
- expect(
486
- (abstractClass as any).getMaxTicksForDateFormat('%B %Y')
487
- ).toEqual(1);
488
- expect((abstractClass as any).getMaxTicksForDateFormat('%d')).toEqual(
489
- 1
490
- );
491
- });
492
-
493
- it('handles single day difference', () => {
494
- domainSpy.and.returnValue([
495
- new Date(Date.UTC(2020, 5, 15)),
496
- new Date(Date.UTC(2020, 5, 16)),
497
- ]);
498
-
499
- expect((abstractClass as any).getMaxTicksForDateFormat('%Y')).toEqual(
500
- 1
501
- );
502
- expect(
503
- (abstractClass as any).getMaxTicksForDateFormat('%B %Y')
504
- ).toEqual(1);
505
- expect((abstractClass as any).getMaxTicksForDateFormat('%d')).toEqual(
506
- 2
507
- );
508
- });
509
-
510
- it('handles cross-month boundaries', () => {
511
- domainSpy.and.returnValue([
512
- new Date(Date.UTC(2020, 0, 31)),
513
- new Date(Date.UTC(2020, 1, 1)),
514
- ]);
515
-
516
- expect(
517
- (abstractClass as any).getMaxTicksForDateFormat('%B %Y')
518
- ).toEqual(2); // Jan, Feb
519
- expect((abstractClass as any).getMaxTicksForDateFormat('%d')).toEqual(
520
- 2
521
- ); // Jan 31, Feb 1
522
- });
523
-
524
- it('handles leap year correctly', () => {
525
- // Feb 28, 2020 to Mar 1, 2020 (leap year)
526
- domainSpy.and.returnValue([
527
- new Date(Date.UTC(2020, 1, 28)),
528
- new Date(Date.UTC(2020, 2, 1)),
529
- ]);
530
-
531
- expect((abstractClass as any).getMaxTicksForDateFormat('%d')).toEqual(
532
- 3
533
- ); // Feb 28, Feb 29, Mar 1
534
- });
535
- });
536
- });
537
- });