@mathstack/viz 2.0.3 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/fesm2022/mathstack-viz.mjs +11024 -0
  2. package/fesm2022/mathstack-viz.mjs.map +1 -0
  3. package/package.json +14 -5
  4. package/types/mathstack-viz.d.ts +5830 -0
  5. package/CHANGELOG.md +0 -0
  6. package/cypress/fixtures/example.json +0 -5
  7. package/cypress/fixtures/usMap.json +0 -13511
  8. package/cypress/support/commands.ts +0 -104
  9. package/cypress/support/component-index.html +0 -12
  10. package/cypress/support/component.ts +0 -33
  11. package/cypress.config.ts +0 -9
  12. package/karma.conf.js +0 -62
  13. package/ng-package.json +0 -8
  14. package/project.json +0 -97
  15. package/src/.eslintrc.json +0 -35
  16. package/src/.prettierrc +0 -31
  17. package/src/lib/axes/base/config/xy-axis-builder.ts +0 -68
  18. package/src/lib/axes/base/config/xy-axis-config.ts +0 -35
  19. package/src/lib/axes/base/config/xy-axis-options.ts +0 -11
  20. package/src/lib/axes/base/xy-axis-base.spec.ts +0 -114
  21. package/src/lib/axes/base/xy-axis-base.ts +0 -300
  22. package/src/lib/axes/base/xy-axis-domain-lines.cy.ts +0 -511
  23. package/src/lib/axes/baseline/axis-baseline-builder.ts +0 -77
  24. package/src/lib/axes/baseline/axis-baseline-options.ts +0 -4
  25. package/src/lib/axes/baseline/axis-baseline.ts +0 -11
  26. package/src/lib/axes/grid/grid-builder.ts +0 -74
  27. package/src/lib/axes/grid/grid-config.ts +0 -13
  28. package/src/lib/axes/grid/grid-options.ts +0 -7
  29. package/src/lib/axes/index.ts +0 -40
  30. package/src/lib/axes/label/axis-label-builder.ts +0 -140
  31. package/src/lib/axes/label/axis-label-options.ts +0 -12
  32. package/src/lib/axes/label/axis-label.ts +0 -18
  33. package/src/lib/axes/label/axis-labels.cy.ts +0 -303
  34. package/src/lib/axes/ordinal/ordinal-axis-config.ts +0 -31
  35. package/src/lib/axes/ordinal/ordinal-axis.spec.ts +0 -30
  36. package/src/lib/axes/ordinal/ordinal-axis.ts +0 -26
  37. package/src/lib/axes/quantitative/quantitative-axis-config.ts +0 -39
  38. package/src/lib/axes/quantitative/quantitative-axis-ticks.cy.ts +0 -748
  39. package/src/lib/axes/quantitative/quantitative-axis.spec.ts +0 -537
  40. package/src/lib/axes/quantitative/quantitative-axis.ts +0 -191
  41. package/src/lib/axes/ticks/tick-wrap/tick-wrap-builder.ts +0 -141
  42. package/src/lib/axes/ticks/tick-wrap/tick-wrap-options.ts +0 -11
  43. package/src/lib/axes/ticks/tick-wrap/tick-wrap.cy.ts +0 -360
  44. package/src/lib/axes/ticks/tick-wrap/tick-wrap.ts +0 -21
  45. package/src/lib/axes/ticks/ticks-builder.ts +0 -370
  46. package/src/lib/axes/ticks/ticks-options.ts +0 -24
  47. package/src/lib/axes/ticks/ticks.ts +0 -33
  48. package/src/lib/axes/x/x-axis-config.ts +0 -48
  49. package/src/lib/axes/x/x-axis.spec.ts +0 -90
  50. package/src/lib/axes/x/x-axis.ts +0 -109
  51. package/src/lib/axes/x-ordinal/x-ordinal-axis-builder.ts +0 -75
  52. package/src/lib/axes/x-ordinal/x-ordinal-axis-config.ts +0 -27
  53. package/src/lib/axes/x-ordinal/x-ordinal-axis.component.ts +0 -33
  54. package/src/lib/axes/x-quantitative/x-quantitative-axis-builder.ts +0 -74
  55. package/src/lib/axes/x-quantitative/x-quantitative-axis-config.ts +0 -32
  56. package/src/lib/axes/x-quantitative/x-quantitative-axis.component.ts +0 -40
  57. package/src/lib/axes/xy-axis.module.ts +0 -20
  58. package/src/lib/axes/y/y-axis-config.ts +0 -47
  59. package/src/lib/axes/y/y-axis.spec.ts +0 -92
  60. package/src/lib/axes/y/y-axis.ts +0 -161
  61. package/src/lib/axes/y-ordinal/y-ordinal-axis-builder.ts +0 -76
  62. package/src/lib/axes/y-ordinal/y-ordinal-axis-config.ts +0 -29
  63. package/src/lib/axes/y-ordinal/y-ordinal-axis.component.ts +0 -33
  64. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-builder.ts +0 -74
  65. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-config.ts +0 -34
  66. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis.component.ts +0 -40
  67. package/src/lib/bars/bars.component.scss +0 -0
  68. package/src/lib/bars/bars.component.spec.ts +0 -1470
  69. package/src/lib/bars/bars.component.ts +0 -717
  70. package/src/lib/bars/bars.cy.ts +0 -829
  71. package/src/lib/bars/bars.module.ts +0 -9
  72. package/src/lib/bars/config/backgrounds/bars-backgrounds-builder.ts +0 -51
  73. package/src/lib/bars/config/backgrounds/bars-backgrounds-options.ts +0 -4
  74. package/src/lib/bars/config/backgrounds/bars-backgrounds.ts +0 -11
  75. package/src/lib/bars/config/bars-builder.ts +0 -340
  76. package/src/lib/bars/config/bars-config.spec.ts +0 -132
  77. package/src/lib/bars/config/bars-config.ts +0 -70
  78. package/src/lib/bars/config/bars-dimensions.ts +0 -29
  79. package/src/lib/bars/config/bars-options.ts +0 -20
  80. package/src/lib/bars/config/labels/bars-labels-builder.ts +0 -89
  81. package/src/lib/bars/config/labels/bars-labels-options.ts +0 -6
  82. package/src/lib/bars/config/labels/bars-labels.cy.ts +0 -781
  83. package/src/lib/bars/config/labels/bars-labels.ts +0 -13
  84. package/src/lib/bars/events/actions/bars-click-actions.ts +0 -23
  85. package/src/lib/bars/events/actions/bars-hover-actions.ts +0 -43
  86. package/src/lib/bars/events/actions/bars-hover-move-actions.ts +0 -21
  87. package/src/lib/bars/events/bars-events.directive.spec.ts +0 -186
  88. package/src/lib/bars/events/bars-events.directive.ts +0 -235
  89. package/src/lib/bars/events/bars-interaction-output.ts +0 -17
  90. package/src/lib/bars/events/bars-tooltip-positioner.ts +0 -24
  91. package/src/lib/bars/index.ts +0 -18
  92. package/src/lib/charts/chart/chart-scaling.cy.ts +0 -323
  93. package/src/lib/charts/chart/chart.component.html +0 -45
  94. package/src/lib/charts/chart/chart.component.scss +0 -37
  95. package/src/lib/charts/chart/chart.component.ts +0 -243
  96. package/src/lib/charts/chart/chart.token.ts +0 -4
  97. package/src/lib/charts/chart/chart.ts +0 -5
  98. package/src/lib/charts/chart/config/chart-builder.ts +0 -194
  99. package/src/lib/charts/chart/config/chart-config.ts +0 -21
  100. package/src/lib/charts/chart/config/chart-options.ts +0 -11
  101. package/src/lib/charts/chart.module.ts +0 -10
  102. package/src/lib/charts/index.ts +0 -9
  103. package/src/lib/charts/map-chart/map-chart.component.scss +0 -0
  104. package/src/lib/charts/map-chart/map-chart.component.spec.ts +0 -35
  105. package/src/lib/charts/map-chart/map-chart.component.ts +0 -61
  106. package/src/lib/charts/xy-chart/xy-chart.component.spec.ts +0 -34
  107. package/src/lib/charts/xy-chart/xy-chart.component.ts +0 -65
  108. package/src/lib/core/common-behaviors/constructor.ts +0 -7
  109. package/src/lib/core/index.ts +0 -11
  110. package/src/lib/core/pipes/resize-chart-height.pipe.spec.ts +0 -23
  111. package/src/lib/core/pipes/resize-chart-height.pipe.ts +0 -20
  112. package/src/lib/core/styles/_spacing.scss +0 -4
  113. package/src/lib/core/types/layout.ts +0 -28
  114. package/src/lib/core/types/scale.ts +0 -6
  115. package/src/lib/core/types/utility.ts +0 -11
  116. package/src/lib/core/types/values.ts +0 -10
  117. package/src/lib/core/utilities/colors.spec.ts +0 -57
  118. package/src/lib/core/utilities/colors.ts +0 -42
  119. package/src/lib/core/utilities/fill-utilities.spec.ts +0 -25
  120. package/src/lib/core/utilities/fill-utilities.ts +0 -21
  121. package/src/lib/core/utilities/type-guards.spec.ts +0 -55
  122. package/src/lib/core/utilities/type-guards.ts +0 -33
  123. package/src/lib/core/utilities/value-format.ts +0 -21
  124. package/src/lib/core/utilities/values.spec.ts +0 -954
  125. package/src/lib/core/utilities/values.ts +0 -189
  126. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-builder.ts +0 -105
  127. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-options.ts +0 -24
  128. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.spec.ts +0 -66
  129. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.ts +0 -72
  130. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/concrete-domain-padding.ts +0 -10
  131. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-padding.ts +0 -76
  132. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-test-utility.ts +0 -130
  133. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over-options.ts +0 -3
  134. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over.ts +0 -37
  135. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel-options.ts +0 -3
  136. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel.ts +0 -73
  137. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/quantitative-domain-padding.cy.ts +0 -978
  138. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval-options.ts +0 -3
  139. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval.ts +0 -27
  140. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig-options.ts +0 -3
  141. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig.ts +0 -30
  142. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder.ts +0 -183
  143. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-options.ts +0 -8
  144. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.spec.ts +0 -28
  145. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.ts +0 -62
  146. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension-options.ts +0 -15
  147. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.spec.ts +0 -155
  148. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.ts +0 -57
  149. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-builder.ts +0 -166
  150. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-options.ts +0 -10
  151. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.spec.ts +0 -34
  152. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.ts +0 -57
  153. package/src/lib/data-dimensions/dimension-builder.ts +0 -45
  154. package/src/lib/data-dimensions/dimension-options.ts +0 -12
  155. package/src/lib/data-dimensions/dimension.ts +0 -30
  156. package/src/lib/data-dimensions/index.ts +0 -31
  157. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder.ts +0 -122
  158. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-options.ts +0 -12
  159. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.spec.ts +0 -83
  160. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.ts +0 -101
  161. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder.ts +0 -108
  162. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-options.ts +0 -12
  163. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.cy.ts +0 -384
  164. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.spec.ts +0 -63
  165. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.ts +0 -79
  166. package/src/lib/data-export/data-export-config.ts +0 -98
  167. package/src/lib/data-export/data-export.spec.ts +0 -33
  168. package/src/lib/data-export/data-export.ts +0 -87
  169. package/src/lib/data-export/index.ts +0 -2
  170. package/src/lib/dots/config/dots-builder.ts +0 -442
  171. package/src/lib/dots/config/dots-config.spec.ts +0 -123
  172. package/src/lib/dots/config/dots-config.ts +0 -81
  173. package/src/lib/dots/config/dots-options.ts +0 -32
  174. package/src/lib/dots/dots.component.scss +0 -0
  175. package/src/lib/dots/dots.component.spec.ts +0 -143
  176. package/src/lib/dots/dots.component.ts +0 -291
  177. package/src/lib/dots/dots.cy.ts +0 -594
  178. package/src/lib/dots/dots.module.ts +0 -9
  179. package/src/lib/dots/events/actions/dots-hover-actions.ts +0 -19
  180. package/src/lib/dots/events/actions/dots-hover-move-actions.ts +0 -38
  181. package/src/lib/dots/events/dots-events.directive.ts +0 -214
  182. package/src/lib/dots/events/dots-interaction-output.ts +0 -15
  183. package/src/lib/dots/events/dots-tooltip-positioner.ts +0 -24
  184. package/src/lib/dots/index.ts +0 -10
  185. package/src/lib/events/events.directive.ts +0 -184
  186. package/src/lib/events/events.types.ts +0 -57
  187. package/src/lib/events/index.ts +0 -4
  188. package/src/lib/events/interaction-output.ts +0 -34
  189. package/src/lib/events/tooltip-positioner.ts +0 -15
  190. package/src/lib/fill-definitions/fill-definitions.ts +0 -4
  191. package/src/lib/fill-definitions/index.ts +0 -1
  192. package/src/lib/geographies/config/geographies-builder.ts +0 -224
  193. package/src/lib/geographies/config/geographies-config.spec.ts +0 -100
  194. package/src/lib/geographies/config/geographies-config.ts +0 -81
  195. package/src/lib/geographies/config/geographies-options.ts +0 -37
  196. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-builder.ts +0 -212
  197. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-options.ts +0 -26
  198. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.spec.ts +0 -119
  199. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.ts +0 -148
  200. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-builder.ts +0 -65
  201. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-options.ts +0 -15
  202. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension.ts +0 -32
  203. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-enums.ts +0 -10
  204. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-types.ts +0 -15
  205. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-builder.ts +0 -18
  206. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-options.ts +0 -8
  207. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.spec.ts +0 -60
  208. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.ts +0 -34
  209. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-builder.ts +0 -46
  210. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-options.ts +0 -8
  211. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.cy.ts +0 -437
  212. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.spec.ts +0 -105
  213. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.ts +0 -54
  214. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-builder.ts +0 -65
  215. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-options.ts +0 -9
  216. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.spec.ts +0 -82
  217. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.ts +0 -81
  218. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks.cy.ts +0 -378
  219. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-builder.ts +0 -50
  220. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-options.ts +0 -8
  221. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.cy.ts +0 -362
  222. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.spec.ts +0 -72
  223. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.ts +0 -56
  224. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-builder.ts +0 -60
  225. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-options.ts +0 -9
  226. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.cy.ts +0 -307
  227. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.spec.ts +0 -104
  228. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.ts +0 -89
  229. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-builder.ts +0 -62
  230. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-options.ts +0 -8
  231. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.cy.ts +0 -265
  232. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.spec.ts +0 -42
  233. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.ts +0 -42
  234. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-builder.ts +0 -116
  235. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-options.ts +0 -20
  236. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer.ts +0 -104
  237. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-builder.ts +0 -111
  238. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-options.ts +0 -19
  239. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.spec.ts +0 -41
  240. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.ts +0 -67
  241. package/src/lib/geographies/config/layers/labels/geographies-labels-builder.ts +0 -269
  242. package/src/lib/geographies/config/layers/labels/geographies-labels-options.ts +0 -45
  243. package/src/lib/geographies/config/layers/labels/geographies-labels.ts +0 -38
  244. package/src/lib/geographies/events/actions/geographies-click-actions.ts +0 -21
  245. package/src/lib/geographies/events/actions/geographies-hover-actions.ts +0 -17
  246. package/src/lib/geographies/events/actions/geographies-hover-move-actions.ts +0 -19
  247. package/src/lib/geographies/events/geographies-events.directive.spec.ts +0 -225
  248. package/src/lib/geographies/events/geographies-events.directive.ts +0 -235
  249. package/src/lib/geographies/events/geographies-interaction-output.ts +0 -17
  250. package/src/lib/geographies/events/geographies-tooltip-positioner.ts +0 -23
  251. package/src/lib/geographies/geographies-feature.ts +0 -16
  252. package/src/lib/geographies/geographies.component.html +0 -1
  253. package/src/lib/geographies/geographies.component.scss +0 -0
  254. package/src/lib/geographies/geographies.component.spec.ts +0 -148
  255. package/src/lib/geographies/geographies.component.ts +0 -318
  256. package/src/lib/geographies/geographies.cy.ts +0 -640
  257. package/src/lib/geographies/geographies.module.ts +0 -9
  258. package/src/lib/geographies/index.ts +0 -32
  259. package/src/lib/grouped-bars/config/grouped-bars-builder.ts +0 -66
  260. package/src/lib/grouped-bars/config/grouped-bars-config.ts +0 -41
  261. package/src/lib/grouped-bars/config/grouped-bars-options.ts +0 -9
  262. package/src/lib/grouped-bars/events/grouped-bars-events.directive.ts +0 -221
  263. package/src/lib/grouped-bars/grouped-bars.component.scss +0 -0
  264. package/src/lib/grouped-bars/grouped-bars.component.spec.ts +0 -25
  265. package/src/lib/grouped-bars/grouped-bars.component.ts +0 -94
  266. package/src/lib/grouped-bars/grouped-bars.module.ts +0 -9
  267. package/src/lib/grouped-bars/index.ts +0 -10
  268. package/src/lib/image-download/image-download-config.ts +0 -57
  269. package/src/lib/image-download/image-download-enums.ts +0 -7
  270. package/src/lib/image-download/image-download-options.ts +0 -14
  271. package/src/lib/image-download/image-download.service.ts +0 -70
  272. package/src/lib/image-download/index.ts +0 -4
  273. package/src/lib/lines/config/area-fills/area-fills-builder.ts +0 -87
  274. package/src/lib/lines/config/area-fills/area-fills-options.ts +0 -8
  275. package/src/lib/lines/config/area-fills/area-fills.ts +0 -14
  276. package/src/lib/lines/config/lines-builder.ts +0 -242
  277. package/src/lib/lines/config/lines-config.spec.ts +0 -52
  278. package/src/lib/lines/config/lines-config.ts +0 -96
  279. package/src/lib/lines/config/lines-options.ts +0 -19
  280. package/src/lib/lines/config/stroke/lines-stroke-builder.ts +0 -135
  281. package/src/lib/lines/config/stroke/lines-stroke-options.ts +0 -6
  282. package/src/lib/lines/config/stroke/lines-stroke.ts +0 -15
  283. package/src/lib/lines/events/actions/lines-click-actions.ts +0 -17
  284. package/src/lib/lines/events/actions/lines-hover-move-actions.ts +0 -113
  285. package/src/lib/lines/events/actions/lines-marker-click-actions.ts +0 -29
  286. package/src/lib/lines/events/lines-events.directive.spec.ts +0 -152
  287. package/src/lib/lines/events/lines-events.directive.ts +0 -310
  288. package/src/lib/lines/events/lines-interaction-output.ts +0 -17
  289. package/src/lib/lines/events/lines-tooltip-positioner.ts +0 -24
  290. package/src/lib/lines/index.ts +0 -17
  291. package/src/lib/lines/lines.component.scss +0 -0
  292. package/src/lib/lines/lines.component.spec.ts +0 -95
  293. package/src/lib/lines/lines.component.ts +0 -425
  294. package/src/lib/lines/lines.cy.ts +0 -738
  295. package/src/lib/lines/lines.module.ts +0 -9
  296. package/src/lib/map-legend/continuous-legend/continuous-legend.component.html +0 -28
  297. package/src/lib/map-legend/continuous-legend/continuous-legend.component.scss +0 -76
  298. package/src/lib/map-legend/continuous-legend/continuous-legend.component.spec.ts +0 -61
  299. package/src/lib/map-legend/continuous-legend/continuous-legend.component.ts +0 -82
  300. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.html +0 -40
  301. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.scss +0 -141
  302. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.spec.ts +0 -75
  303. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.ts +0 -57
  304. package/src/lib/map-legend/index.ts +0 -2
  305. package/src/lib/map-legend/map-legend-base.spec.ts +0 -190
  306. package/src/lib/map-legend/map-legend-base.ts +0 -99
  307. package/src/lib/map-legend/map-legend.component.html +0 -24
  308. package/src/lib/map-legend/map-legend.component.scss +0 -0
  309. package/src/lib/map-legend/map-legend.component.spec.ts +0 -125
  310. package/src/lib/map-legend/map-legend.component.ts +0 -80
  311. package/src/lib/map-legend/map-legend.module.ts +0 -8
  312. package/src/lib/marks/aux-marks/aux-marks.ts +0 -18
  313. package/src/lib/marks/aux-marks/config/aux-marks-builder.ts +0 -25
  314. package/src/lib/marks/aux-marks/config/aux-marks-config.ts +0 -6
  315. package/src/lib/marks/config/marks-config.ts +0 -14
  316. package/src/lib/marks/config/marks-options.ts +0 -9
  317. package/src/lib/marks/index.ts +0 -15
  318. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.spec.ts +0 -74
  319. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.ts +0 -40
  320. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.spec.ts +0 -79
  321. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.ts +0 -63
  322. package/src/lib/marks/marks.ts +0 -39
  323. package/src/lib/marks/primary-marks/config/primary-marks-builder.ts +0 -75
  324. package/src/lib/marks/primary-marks/config/primary-marks-config.ts +0 -9
  325. package/src/lib/marks/primary-marks/primary-marks-base.spec.ts +0 -58
  326. package/src/lib/marks/primary-marks/primary-marks.ts +0 -43
  327. package/src/lib/marks/xy-marks/xy-aux-marks/xy-aux-marks.ts +0 -40
  328. package/src/lib/marks/xy-marks/xy-marks-config.ts +0 -5
  329. package/src/lib/marks/xy-marks/xy-marks.ts +0 -10
  330. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks-config.ts +0 -7
  331. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.spec.ts +0 -186
  332. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.ts +0 -72
  333. package/src/lib/point-markers/index.ts +0 -3
  334. package/src/lib/point-markers/point-markers-builder.ts +0 -93
  335. package/src/lib/point-markers/point-markers-options.ts +0 -6
  336. package/src/lib/point-markers/point-markers.ts +0 -13
  337. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-builder.ts +0 -162
  338. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-options.ts +0 -17
  339. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels.ts +0 -26
  340. package/src/lib/quantitative-rules/config/quantitative-rules-builder.ts +0 -134
  341. package/src/lib/quantitative-rules/config/quantitative-rules-config.ts +0 -21
  342. package/src/lib/quantitative-rules/config/quantitative-rules-dimensions.ts +0 -20
  343. package/src/lib/quantitative-rules/config/quantitative-rules-options.ts +0 -13
  344. package/src/lib/quantitative-rules/index.ts +0 -6
  345. package/src/lib/quantitative-rules/quantitative-rules.component.scss +0 -3
  346. package/src/lib/quantitative-rules/quantitative-rules.component.spec.ts +0 -50
  347. package/src/lib/quantitative-rules/quantitative-rules.component.ts +0 -224
  348. package/src/lib/quantitative-rules/quantitative-rules.cy.ts +0 -549
  349. package/src/lib/quantitative-rules/quantitative-rules.module.ts +0 -8
  350. package/src/lib/stacked-area/config/stacked-area-builder.ts +0 -264
  351. package/src/lib/stacked-area/config/stacked-area-config.spec.ts +0 -107
  352. package/src/lib/stacked-area/config/stacked-area-config.ts +0 -109
  353. package/src/lib/stacked-area/config/stacked-area-options.ts +0 -28
  354. package/src/lib/stacked-area/events/actions/stacked-area-hover-move-actions.ts +0 -17
  355. package/src/lib/stacked-area/events/stacked-area-events.directive.spec.ts +0 -168
  356. package/src/lib/stacked-area/events/stacked-area-events.directive.ts +0 -272
  357. package/src/lib/stacked-area/events/stacked-area-interaction-output.ts +0 -33
  358. package/src/lib/stacked-area/events/stacked-area-tooltip-positioner.ts +0 -37
  359. package/src/lib/stacked-area/index.ts +0 -7
  360. package/src/lib/stacked-area/stacked-area.component.scss +0 -0
  361. package/src/lib/stacked-area/stacked-area.component.spec.ts +0 -41
  362. package/src/lib/stacked-area/stacked-area.component.ts +0 -241
  363. package/src/lib/stacked-area/stacked-area.module.ts +0 -9
  364. package/src/lib/stacked-bars/config/stacked-bars-builder.ts +0 -109
  365. package/src/lib/stacked-bars/config/stacked-bars-config.spec.ts +0 -122
  366. package/src/lib/stacked-bars/config/stacked-bars-config.ts +0 -79
  367. package/src/lib/stacked-bars/config/stacked-bars-options.ts +0 -16
  368. package/src/lib/stacked-bars/events/actions/stacked-bars-click-actions.ts +0 -23
  369. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-actions.ts +0 -22
  370. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-move-actions.ts +0 -21
  371. package/src/lib/stacked-bars/events/stacked-bars-events.directive.spec.ts +0 -266
  372. package/src/lib/stacked-bars/events/stacked-bars-events.directive.ts +0 -240
  373. package/src/lib/stacked-bars/index.ts +0 -10
  374. package/src/lib/stacked-bars/stacked-bars.component.scss +0 -0
  375. package/src/lib/stacked-bars/stacked-bars.component.spec.ts +0 -25
  376. package/src/lib/stacked-bars/stacked-bars.component.ts +0 -158
  377. package/src/lib/stacked-bars/stacked-bars.module.ts +0 -9
  378. package/src/lib/stroke/base/stroke-base-options.ts +0 -7
  379. package/src/lib/stroke/base/stroke-base.ts +0 -9
  380. package/src/lib/stroke/index.ts +0 -5
  381. package/src/lib/stroke/stroke-builder.ts +0 -103
  382. package/src/lib/stroke/stroke-options.ts +0 -5
  383. package/src/lib/stroke/stroke.ts +0 -12
  384. package/src/lib/svg-text-wrap/index.ts +0 -3
  385. package/src/lib/svg-text-wrap/svg-text-wrap-builder.ts +0 -105
  386. package/src/lib/svg-text-wrap/svg-text-wrap-options.ts +0 -8
  387. package/src/lib/svg-text-wrap/svg-text-wrap.ts +0 -137
  388. package/src/lib/testing/data/continent-population-year-data.ts +0 -126
  389. package/src/lib/testing/data/country-area-continent.ts +0 -59
  390. package/src/lib/testing/data/state-population-income-year-data.ts +0 -123
  391. package/src/lib/testing/stubs/bars.component.stub.ts +0 -12
  392. package/src/lib/testing/stubs/chart.component.stub.ts +0 -6
  393. package/src/lib/testing/stubs/click.directive.stub.ts +0 -15
  394. package/src/lib/testing/stubs/core/destroy-ref.stub.ts +0 -9
  395. package/src/lib/testing/stubs/core/overlay-ref.stub.ts +0 -13
  396. package/src/lib/testing/stubs/core/overlay.stub.ts +0 -8
  397. package/src/lib/testing/stubs/event.directive.stub.ts +0 -10
  398. package/src/lib/testing/stubs/hover-move.directive.stub.ts +0 -17
  399. package/src/lib/testing/stubs/hover.directive.stub.ts +0 -14
  400. package/src/lib/testing/stubs/input-event.directive.stub.ts +0 -9
  401. package/src/lib/testing/stubs/lines.component.stub.ts +0 -13
  402. package/src/lib/testing/stubs/map-aux-marks.stub.ts +0 -10
  403. package/src/lib/testing/stubs/map-chart.component.stub.ts +0 -3
  404. package/src/lib/testing/stubs/map-legend-content.stub.ts +0 -16
  405. package/src/lib/testing/stubs/map-legend.component.stub.ts +0 -10
  406. package/src/lib/testing/stubs/map-primary-marks.stub.ts +0 -16
  407. package/src/lib/testing/stubs/ordinal-axis.stub.ts +0 -18
  408. package/src/lib/testing/stubs/primary-marks.stub.ts +0 -18
  409. package/src/lib/testing/stubs/quantitative-axis.stub.ts +0 -18
  410. package/src/lib/testing/stubs/services/main.service.stub.ts +0 -5
  411. package/src/lib/testing/stubs/services/utilities.service.stub.ts +0 -7
  412. package/src/lib/testing/stubs/stacked-area.component.stub.ts +0 -13
  413. package/src/lib/testing/stubs/x-axis.stub.ts +0 -10
  414. package/src/lib/testing/stubs/xy-axis.class.stub.ts +0 -20
  415. package/src/lib/testing/stubs/xy-axis.stub.ts +0 -44
  416. package/src/lib/testing/stubs/xy-chart.component.stub.ts +0 -5
  417. package/src/lib/testing/stubs/xy-data-marks.stub.ts +0 -15
  418. package/src/lib/testing/stubs/y-axis.stub.ts +0 -15
  419. package/src/lib/tooltips/config/tooltip.ts +0 -11
  420. package/src/lib/tooltips/html-tooltip/config/html-tooltip-builder.ts +0 -134
  421. package/src/lib/tooltips/html-tooltip/config/html-tooltip-config.ts +0 -21
  422. package/src/lib/tooltips/html-tooltip/config/html-tooltip-options.ts +0 -12
  423. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position-builder.ts +0 -191
  424. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position.ts +0 -42
  425. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-builder.ts +0 -75
  426. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-options.ts +0 -8
  427. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size.ts +0 -15
  428. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.spec.ts +0 -537
  429. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.ts +0 -210
  430. package/src/lib/tooltips/html-tooltip/html-tooltip.module.ts +0 -16
  431. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.html +0 -41
  432. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.scss +0 -63
  433. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.ts +0 -19
  434. package/src/lib/tooltips/index.ts +0 -11
  435. package/src/lib/tooltips/svg-tooltip/config/svg-tooltip.ts +0 -5
  436. package/src/lib/xy-background/index.ts +0 -2
  437. package/src/lib/xy-background/xy-background.component.html +0 -10
  438. package/src/lib/xy-background/xy-background.component.scss +0 -0
  439. package/src/lib/xy-background/xy-background.component.spec.ts +0 -24
  440. package/src/lib/xy-background/xy-background.component.ts +0 -19
  441. package/src/lib/xy-background/xy-background.module.ts +0 -8
  442. package/src/public-api.ts +0 -26
  443. package/src/test.ts +0 -15
  444. package/tsconfig.doc.json +0 -4
  445. package/tsconfig.json +0 -20
  446. package/tsconfig.lib.json +0 -23
  447. package/tsconfig.lib.prod.json +0 -10
  448. package/tsconfig.spec.json +0 -10
@@ -1,307 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable @angular-eslint/prefer-standalone */
3
- import { Component, Input } from '@angular/core';
4
- import {
5
- ChartConfig,
6
- GeographiesConfig,
7
- VicChartConfigBuilder,
8
- VicChartModule,
9
- VicGeographiesConfigBuilder,
10
- VicGeographiesModule,
11
- } from '@mathstack/viz';
12
- import { color } from 'd3';
13
- import {
14
- FeatureCollection,
15
- GeoJsonProperties,
16
- MultiPolygon,
17
- Polygon,
18
- } from 'geojson';
19
- import { beforeEach, cy, describe, expect, it } from 'local-cypress';
20
- import * as topojson from 'topojson-client';
21
- import { GeometryCollection, Objects, Topology } from 'topojson-specification';
22
- import {
23
- StateIncomePopulationYearDatum,
24
- stateIncomePopulationYearData,
25
- } from '../../../../../../testing/data/state-population-income-year-data';
26
-
27
- const margin = { top: 36, right: 36, bottom: 36, left: 36 };
28
- const chartHeight = 400;
29
- const chartWidth = 600;
30
- const attributeData = stateIncomePopulationYearData
31
- .filter((x) => x.year === 2020)
32
- .filter((x) => x.state !== 'Puerto Rico');
33
-
34
- interface TestMapGeometryProperties extends GeoJsonProperties {
35
- name: string;
36
- id: string;
37
- }
38
-
39
- interface TestMapObjects extends Objects {
40
- country: GeometryCollection<TestMapGeometryProperties>;
41
- states: GeometryCollection<TestMapGeometryProperties>;
42
- }
43
-
44
- type TestUsMapTopology = Topology<TestMapObjects>;
45
-
46
- // ***********************************************************
47
- // Geographies component set up
48
- // ***********************************************************
49
- @Component({
50
- // eslint-disable-next-line @angular-eslint/component-selector
51
- selector: 'app-test-geographies',
52
- template: `
53
- <vic-map-chart [config]="chartConfig">
54
- <svg:g
55
- vic-primary-marks-geographies
56
- svg-elements
57
- [config]="geographiesConfig"
58
- [vicGeographiesHoverActions]="hoverActions"
59
- (vicGeographiesHoverOutput)="updateTooltipForNewOutput($event)"
60
- ></svg:g>
61
- </vic-map-chart>
62
- `,
63
- styles: [],
64
- imports: [VicChartModule, VicGeographiesModule],
65
- })
66
- class TestGeographiesComponent {
67
- @Input() geographiesConfig: GeographiesConfig<
68
- StateIncomePopulationYearDatum,
69
- TestMapGeometryProperties
70
- >;
71
- chartConfig: ChartConfig = new VicChartConfigBuilder()
72
- .margin(margin)
73
- .maxWidth(chartWidth)
74
- .maxHeight(chartHeight)
75
- .scalingStrategy('responsive-width')
76
- .getConfig();
77
- }
78
-
79
- const mountGeographiesComponent = (
80
- geographiesConfig: GeographiesConfig<
81
- StateIncomePopulationYearDatum,
82
- TestMapGeometryProperties
83
- >
84
- ): void => {
85
- cy.mount(TestGeographiesComponent, {
86
- componentProperties: {
87
- geographiesConfig: geographiesConfig,
88
- },
89
- });
90
- };
91
-
92
- // ***********************************************************
93
- // Test dimension
94
- // ***********************************************************
95
- describe('the Equal Value Ranges Bins Attribute Data dimension', () => {
96
- let geographiesConfig: GeographiesConfig<
97
- StateIncomePopulationYearDatum,
98
- TestMapGeometryProperties
99
- >;
100
- beforeEach(() => {
101
- geographiesConfig = undefined;
102
- });
103
- it('Uses dimension defaults and creates bins in the data and colors values accordingly with default colors', () => {
104
- cy.fixture('usMap.json').then((response) => {
105
- const usMap: TestUsMapTopology = response;
106
- const usBoundary = topojson.feature(
107
- usMap,
108
- usMap.objects.country
109
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
110
- const states = topojson.feature(
111
- usMap,
112
- usMap.objects.states
113
- ) as FeatureCollection<MultiPolygon | Polygon, TestMapGeometryProperties>;
114
- geographiesConfig = new VicGeographiesConfigBuilder<
115
- StateIncomePopulationYearDatum,
116
- TestMapGeometryProperties
117
- >()
118
- .boundary(usBoundary)
119
- .featureIndexAccessor((d) => d.properties.name)
120
- .attributeDataLayer((dimension) =>
121
- dimension
122
- .data(attributeData)
123
- .class((d) => d.name.split(' ').join('-'))
124
- .geographies(states.features)
125
- .geographyIndexAccessor((d) => d.state)
126
- .equalValueRangesBins((bins) => bins.valueAccessor((d) => d.income))
127
- )
128
- .getConfig();
129
- mountGeographiesComponent(geographiesConfig);
130
- const scale =
131
- geographiesConfig.attributeDataLayer.attributeDimension.getScale();
132
- const ranges = {
133
- white: scale.invertExtent('white'),
134
- pink: scale.invertExtent('pink'),
135
- red: scale.invertExtent('red'),
136
- };
137
- const whiteRange = ranges.white[1] - ranges.white[0];
138
- const pinkRange = ranges.pink[1] - ranges.pink[0];
139
- const redRange = ranges.red[1] - ranges.red[0];
140
- expect(whiteRange).to.be.closeTo(pinkRange, 1);
141
- expect(pinkRange).to.be.closeTo(redRange, 1);
142
- cy.get('.vic-geographies-group path').then((states) => {
143
- states.each((_, state) => {
144
- const fill = state.getAttribute('fill');
145
- const datum = attributeData.find(
146
- (d) => d.state === state.classList[0].split('-').join(' ')
147
- );
148
- if (datum) {
149
- if (datum.income < ranges.white[1]) {
150
- expect(fill).to.equal('white');
151
- } else if (datum.income < ranges.pink[1]) {
152
- expect(fill).to.equal('pink');
153
- } else {
154
- expect(fill).to.equal('red');
155
- }
156
- }
157
- });
158
- });
159
- });
160
- });
161
-
162
- it('colors values lower than user-provided domain with first bin color and values higher than user-provided domain with last bin color', () => {
163
- cy.fixture('usMap.json').then((response) => {
164
- const usMap: TestUsMapTopology = response;
165
- const usBoundary = topojson.feature(
166
- usMap,
167
- usMap.objects.country
168
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
169
- const states = topojson.feature(
170
- usMap,
171
- usMap.objects.states
172
- ) as FeatureCollection<MultiPolygon | Polygon, TestMapGeometryProperties>;
173
- geographiesConfig = new VicGeographiesConfigBuilder<
174
- StateIncomePopulationYearDatum,
175
- TestMapGeometryProperties
176
- >()
177
- .boundary(usBoundary)
178
- .featureIndexAccessor((d) => d.properties.name)
179
- .attributeDataLayer((dimension) =>
180
- dimension
181
- .data(attributeData)
182
- .class((d) => d.name.split(' ').join('-'))
183
- .geographies(states.features)
184
- .geographyIndexAccessor((d) => d.state)
185
- .equalValueRangesBins((bins) =>
186
- bins.valueAccessor((d) => d.income).domain([50000, 80000])
187
- )
188
- )
189
- .getConfig();
190
- mountGeographiesComponent(geographiesConfig);
191
- cy.get('.vic-geographies-group path').then((states) => {
192
- states.each((_, state) => {
193
- const fill = state.getAttribute('fill');
194
- const datum = attributeData.find(
195
- (d) => d.state === state.classList[0].split('-').join(' ')
196
- );
197
- if (datum) {
198
- if (datum.income < 50000) {
199
- expect(fill).to.equal('white');
200
- }
201
- if (datum.income > 80000) {
202
- expect(fill).to.equal('red');
203
- }
204
- }
205
- });
206
- });
207
- });
208
- });
209
-
210
- it('colors the map with the number of bins specified in numBins for features with attribute data and a null color for features without attribute data even if the range provides fewer colors', () => {
211
- cy.fixture('usMap.json').then((response) => {
212
- const numBins = 6;
213
- const nullColor = 'navajowhite';
214
- const usMap: TestUsMapTopology = response;
215
- const usBoundary = topojson.feature(
216
- usMap,
217
- usMap.objects.country
218
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
219
- const states = topojson.feature(
220
- usMap,
221
- usMap.objects.states
222
- ) as FeatureCollection<MultiPolygon | Polygon, TestMapGeometryProperties>;
223
- geographiesConfig = new VicGeographiesConfigBuilder<
224
- StateIncomePopulationYearDatum,
225
- TestMapGeometryProperties
226
- >()
227
- .boundary(usBoundary)
228
- .featureIndexAccessor((d) => d.properties.name)
229
- .attributeDataLayer((dimension) =>
230
- dimension
231
- .data(attributeData)
232
- .class((d) => d.name.split(' ').join('-'))
233
- .geographies(states.features)
234
- .geographyIndexAccessor((d) => d.state)
235
- .equalValueRangesBins((bins) =>
236
- bins
237
- .valueAccessor((d) => d.income)
238
- .numBins(numBins)
239
- .nullColor(nullColor)
240
- )
241
- )
242
- .getConfig();
243
- mountGeographiesComponent(geographiesConfig);
244
- const colors = [];
245
- cy.get('.vic-geographies-group path').then((states) => {
246
- states.each((_, state) => {
247
- const fill = state.getAttribute('fill');
248
- if (!colors.includes(fill)) {
249
- colors.push(fill);
250
- }
251
- });
252
- expect(colors.length).to.equal(numBins + 1);
253
- expect(colors).to.include(nullColor);
254
- });
255
- });
256
- });
257
-
258
- it('colors the map with the first numBins colors in the range for features with attribute data and the nullColor for features without attribute data if numBins is a smaller number than the length of the range', () => {
259
- cy.fixture('usMap.json').then((response) => {
260
- const numBins = 2;
261
- const nullColor = 'navajowhite';
262
- const usMap: TestUsMapTopology = response;
263
- const usBoundary = topojson.feature(
264
- usMap,
265
- usMap.objects.country
266
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
267
- const states = topojson.feature(
268
- usMap,
269
- usMap.objects.states
270
- ) as FeatureCollection<MultiPolygon | Polygon, TestMapGeometryProperties>;
271
- geographiesConfig = new VicGeographiesConfigBuilder<
272
- StateIncomePopulationYearDatum,
273
- TestMapGeometryProperties
274
- >()
275
- .boundary(usBoundary)
276
- .featureIndexAccessor((d) => d.properties.name)
277
- .attributeDataLayer((dimension) =>
278
- dimension
279
- .data(attributeData)
280
- .class((d) => d.name.split(' ').join('-'))
281
- .geographies(states.features)
282
- .geographyIndexAccessor((d) => d.state)
283
- .equalValueRangesBins((bins) =>
284
- bins
285
- .valueAccessor((d) => d.income)
286
- .numBins(numBins)
287
- .nullColor(nullColor)
288
- )
289
- )
290
- .getConfig();
291
- mountGeographiesComponent(geographiesConfig);
292
- const colors = [];
293
- cy.get('.vic-geographies-group path').then((states) => {
294
- states.each((_, state) => {
295
- const fill = state.getAttribute('fill');
296
- if (!colors.includes(fill)) {
297
- colors.push(fill);
298
- }
299
- });
300
- expect(colors.length).to.equal(numBins + 1);
301
- expect(colors).to.include(nullColor);
302
- expect(colors).to.include(color('white').formatRgb());
303
- expect(colors).to.include(color('pink').formatRgb());
304
- });
305
- });
306
- });
307
- });
@@ -1,104 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { EqualValueRangesAttributeDataDimension } from './equal-value-ranges-bins';
3
- import { EqualValueRangesBinsBuilder } from './equal-value-ranges-bins-builder';
4
-
5
- describe('VicEqualValuesAttributeDataDimension', () => {
6
- let dimension: EqualValueRangesAttributeDataDimension<any>;
7
- beforeEach(() => {
8
- dimension = new EqualValueRangesBinsBuilder<any>()
9
- .numBins(3)
10
- .formatSpecifier('.1f')
11
- .range(['red', 'blue', 'yellow', 'green'])
12
- .domain([0, 20])
13
- .valueAccessor((d) => d)
14
- ._build();
15
- });
16
-
17
- describe('setPropertiesFromData', () => {
18
- beforeEach(() => {
19
- spyOn(dimension as any, 'setDomain');
20
- spyOn(dimension as any, 'setValidatedDomainAndNumBins');
21
- spyOn(dimension as any, 'setRange');
22
- });
23
- it('calls setDomain once', () => {
24
- dimension.setPropertiesFromData([1, 2, 3, 4, 5, 6, 7, 8, 9]);
25
- expect((dimension as any).setDomain).toHaveBeenCalledOnceWith([
26
- 1, 2, 3, 4, 5, 6, 7, 8, 9,
27
- ]);
28
- });
29
- it('calls setValidatedDomainAndNumBins once', () => {
30
- dimension.setPropertiesFromData([1, 2, 3, 4, 5, 6, 7, 8, 9]);
31
- expect(
32
- (dimension as any).setValidatedDomainAndNumBins
33
- ).toHaveBeenCalledTimes(1);
34
- });
35
- it('calls setRange once', () => {
36
- dimension.setPropertiesFromData([1, 2, 3, 4, 5, 6, 7, 8, 9]);
37
- expect((dimension as any).setRange).toHaveBeenCalledTimes(1);
38
- });
39
- });
40
-
41
- describe('integration: setDomain/setValidatedDomainAndNumBins', () => {
42
- it('sets the domain to the users value if it exists', () => {
43
- (dimension as any).setDomain([1, 2, 3, 4, 5, 6, 7, 8, 9]);
44
- (dimension as any).setValidatedDomainAndNumBins();
45
- expect((dimension as any).calculatedDomain).toEqual([0, 20]);
46
- });
47
- it('sets the domain to values if there is no user provided domain', () => {
48
- dimension = new EqualValueRangesBinsBuilder<any>()
49
- .numBins(3)
50
- .formatSpecifier('.1f')
51
- .range(['red', 'blue', 'yellow', 'green'])
52
- .valueAccessor((d) => d)
53
- ._build();
54
- (dimension as any).setDomain([1, 2, 3, 4, 5, 6, 7, 8, 9]);
55
- expect((dimension as any).calculatedDomain).toEqual([1, 9]);
56
- });
57
- });
58
-
59
- describe('getValidatedNumBinsAndDomainForIntegerValues', () => {
60
- it('returns a numBins that reflects possible values in domain and a domain of [min, max + 1] when numBins is greater than the length of the data', () => {
61
- expect(
62
- (dimension as any).getValidatedNumBinsAndDomainForIntegerValues(
63
- 5,
64
- [-1, 1]
65
- )
66
- ).toEqual({ numBins: 3, domain: [-1, 2] });
67
- });
68
- it('returns the correct values when numBins is less than the length of the data', () => {
69
- expect(
70
- (dimension as any).getValidatedNumBinsAndDomainForIntegerValues(
71
- 2,
72
- [-1, 33]
73
- )
74
- ).toEqual({ numBins: 2, domain: [-1, 33] });
75
- });
76
- });
77
-
78
- describe('integration: getScale', () => {
79
- let scale: any;
80
- beforeEach(() => {
81
- dimension = new EqualValueRangesBinsBuilder<any>()
82
- .numBins(4)
83
- .formatSpecifier('.1f')
84
- .range(['red', 'blue', 'yellow', 'green'])
85
- .valueAccessor((d) => d)
86
- .nullColor('black')
87
- ._build();
88
- dimension.setPropertiesFromData([0, 2, 4, 6, 8]);
89
- scale = dimension.getScale();
90
- });
91
- it('correctly sets the domain', () => {
92
- expect(scale.domain()).toEqual([0, 8]);
93
- });
94
- it('correctly sets the range', () => {
95
- expect(scale.range()).toEqual(['red', 'blue', 'yellow', 'green']);
96
- });
97
- it('correctly scales a value in the domain', () => {
98
- expect(scale(2)).toEqual('blue');
99
- });
100
- it('correctly scales a value out of the domain', () => {
101
- expect(scale(null)).toEqual('black');
102
- });
103
- });
104
- });
@@ -1,89 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { extent } from 'd3';
3
- import { BinStrategy } from '../attribute-data-bin-enums';
4
- import { CalculatedBinsAttributeDataDimension } from '../calculated-bins/calculated-bins';
5
- import { EqualValueRangesAttributeDataDimensionOptions } from './equal-value-ranges-bins-options';
6
-
7
- /**
8
- * Configuration object for attribute data that is quantitative and will be binned into equal value ranges. For example, if the data is [0, 1, 2, 4, 60, 100] and numBins is 2, the bin ranges will be [0, 49] and [50, 100].
9
- *
10
- * The generic parameter is the type of the attribute data.
11
- */
12
- export class EqualValueRangesAttributeDataDimension<
13
- Datum,
14
- RangeValue extends string | number = string,
15
- >
16
- extends CalculatedBinsAttributeDataDimension<Datum, RangeValue>
17
- implements EqualValueRangesAttributeDataDimensionOptions<Datum, RangeValue>
18
- {
19
- override readonly binType: BinStrategy.equalValueRanges;
20
- private calculatedDomain: [number, number];
21
- readonly domain: [number, number];
22
- readonly numBins: number;
23
-
24
- constructor(
25
- options: EqualValueRangesAttributeDataDimensionOptions<Datum, RangeValue>
26
- ) {
27
- super('number');
28
- this.binType = BinStrategy.equalValueRanges;
29
- safeAssign(this, options);
30
- if (!this.valueAccessor) {
31
- console.error(
32
- 'Value accessor is required for EqualValuesAttributeDataDimension'
33
- );
34
- }
35
- }
36
-
37
- setPropertiesFromData(data: Datum[]): void {
38
- const values = data.map(this.valueAccessor);
39
- this.setDomain(values);
40
- this.setValidatedDomainAndNumBins();
41
- this.setRange();
42
- }
43
-
44
- protected setDomain(values: number[]): void {
45
- const domainValues = this.domain ?? values;
46
- this.calculatedDomain = extent(domainValues);
47
- }
48
-
49
- private setValidatedDomainAndNumBins(): void {
50
- if (this.valueFormatIsInteger()) {
51
- const validated = this.getValidatedNumBinsAndDomainForIntegerValues(
52
- this.numBins,
53
- this.calculatedDomain
54
- );
55
- this.calculatedNumBins = validated.numBins;
56
- this.calculatedDomain = validated.domain;
57
- } else {
58
- this.calculatedNumBins = this.numBins;
59
- }
60
- }
61
-
62
- protected valueFormatIsInteger(): boolean {
63
- return this.formatSpecifier && this.formatSpecifier.includes('0f');
64
- }
65
-
66
- protected getValidatedNumBinsAndDomainForIntegerValues(
67
- numBins: number,
68
- domain: [number, number]
69
- ): {
70
- numBins: number;
71
- domain: [number, number];
72
- } {
73
- const validated = { numBins, domain };
74
- const dataRange = domain.map((x) => Math.round(x));
75
- const numDiscreteValues = Math.abs(dataRange[1] - dataRange[0]) + 1;
76
- if (numDiscreteValues < numBins) {
77
- validated.numBins = numDiscreteValues;
78
- validated.domain = [dataRange[0], dataRange[1] + 1];
79
- }
80
- return validated;
81
- }
82
-
83
- getScale() {
84
- return this.scale()
85
- .domain(this.calculatedDomain)
86
- .range(this.range)
87
- .unknown(this.nullColor);
88
- }
89
- }
@@ -1,62 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { interpolateLab, scaleLinear } from 'd3';
3
- import { AttributeDataDimensionBuilder } from '../attribute-data/attribute-data-dimension-builder';
4
- import { NoBinsAttributeDataDimension } from './no-bins';
5
-
6
- const DEFAULT = {
7
- _interpolator: interpolateLab,
8
- _nullColor: 'whitesmoke',
9
- _range: ['white', 'slategray'],
10
- _scale: scaleLinear,
11
- };
12
-
13
- /**
14
- * Configuration object for attribute data that is quantitative and does not have bins.
15
- *
16
- * The generic parameter is the type of the attribute data.
17
- */
18
- export class NoBinsAttributeDataDimensionBuilder<
19
- Datum,
20
- > extends AttributeDataDimensionBuilder<Datum, number> {
21
- private _domain: [number, number];
22
- private _formatSpecifier: string;
23
-
24
- constructor() {
25
- super();
26
- safeAssign(this, DEFAULT);
27
- }
28
-
29
- /**
30
- * OPTIONAL. The domain of the scale. If not set, the domain will be inferred from the data.
31
- */
32
- domain(domain: [number, number]): this {
33
- this._domain = domain;
34
- return this;
35
- }
36
-
37
- /**
38
- * OPTIONAL. Sets a format specifier that will be applied to the value of this dimension using D3 format for display purposes.
39
- *
40
- * For example, this will format data values shown in a tooltip
41
- */
42
- formatSpecifier(formatSpecifier: string): this {
43
- this._formatSpecifier = formatSpecifier;
44
- return this;
45
- }
46
-
47
- /**
48
- * @internal This method is not intended to be used by consumers of this library.
49
- */
50
- _build(): NoBinsAttributeDataDimension<Datum> {
51
- return new NoBinsAttributeDataDimension({
52
- domain: this._domain,
53
- formatFunction: this._formatFunction,
54
- formatSpecifier: this._formatSpecifier,
55
- interpolator: this._interpolator,
56
- nullColor: this._nullColor,
57
- range: this._range,
58
- scale: this._scale,
59
- valueAccessor: this._valueAccessor,
60
- });
61
- }
62
- }
@@ -1,8 +0,0 @@
1
- import { AttributeDataDimensionOptions } from '../attribute-data/attribute-data-dimension-options';
2
-
3
- export interface NoBinsAttributeDataDimensionOptions<
4
- Datum,
5
- > extends AttributeDataDimensionOptions<Datum, number> {
6
- domain: [number, number];
7
- formatSpecifier: string;
8
- }