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