@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,442 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { safeAssign } from '@mathstack/app-kit';
3
- import { schemeTableau10 } from 'd3';
4
- import { DataValue } from '../../core';
5
- import { DateChartPositionDimensionBuilder } from '../../data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-builder';
6
- import { NumberChartPositionDimensionBuilder } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder';
7
- import { NumberVisualValueDimensionBuilder } from '../../data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-builder';
8
- import { OrdinalChartPositionDimensionBuilder } from '../../data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder';
9
- import { OrdinalVisualValueDimensionBuilder } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder';
10
- import { PrimaryMarksBuilder } from '../../marks/primary-marks/config/primary-marks-builder';
11
- import { StrokeBuilder } from '../../stroke/stroke-builder';
12
- import { DotsConfig } from './dots-config';
13
-
14
- const DEFAULT = {
15
- _pointerDetectionRadius: 12,
16
- _fill: 'lightgray',
17
- _opacity: 1,
18
- _radius: 2,
19
- };
20
-
21
- @Injectable()
22
- export class VicDotsConfigBuilder<
23
- Datum,
24
- XOrdinalDomain extends DataValue = string,
25
- YOrdinalDomain extends DataValue = string,
26
- > extends PrimaryMarksBuilder<Datum> {
27
- private _opacity: number;
28
- private _pointerDetectionRadius: number;
29
- private fillBuilderCategorical: OrdinalVisualValueDimensionBuilder<
30
- Datum,
31
- string,
32
- string
33
- >;
34
- private fillBuilderNumber: NumberVisualValueDimensionBuilder<Datum, string>;
35
- private fillBuilderConst: OrdinalVisualValueDimensionBuilder<
36
- Datum,
37
- string,
38
- string
39
- >;
40
- private radiusBuilderCategorical: OrdinalVisualValueDimensionBuilder<
41
- Datum,
42
- string,
43
- number
44
- >;
45
- private radiusBuilderNumber: NumberVisualValueDimensionBuilder<Datum, number>;
46
- private radiusBuilderConst: OrdinalVisualValueDimensionBuilder<
47
- Datum,
48
- string,
49
- number
50
- >;
51
- private strokeBuilder: StrokeBuilder;
52
- private xBuilderNumeric: NumberChartPositionDimensionBuilder<Datum>;
53
- private xBuilderDate: DateChartPositionDimensionBuilder<Datum>;
54
- private xBuilderOrdinal: OrdinalChartPositionDimensionBuilder<
55
- Datum,
56
- XOrdinalDomain
57
- >;
58
- private yBuilderNumeric: NumberChartPositionDimensionBuilder<Datum>;
59
- private yBuilderDate: DateChartPositionDimensionBuilder<Datum>;
60
- private yBuilderOrdinal: OrdinalChartPositionDimensionBuilder<
61
- Datum,
62
- YOrdinalDomain
63
- >;
64
-
65
- constructor() {
66
- super();
67
- safeAssign(this, DEFAULT);
68
- }
69
-
70
- /**
71
- * OPTIONAL. Sets the appearance of the fill for the dots using a color string.
72
- *
73
- * If a string is passed, it will be used as the color for all dots.
74
- *
75
- * @default 'schemeTableau10[0]'
76
- */
77
- fill(fill: null): this;
78
- fill(fill: string): this;
79
- fill(fill: string | null): this {
80
- if (fill === null) {
81
- this.fillBuilderConst = undefined;
82
- return this;
83
- }
84
- this.fillBuilderConst = new OrdinalVisualValueDimensionBuilder();
85
- this.fillBuilderConst.valueAccessor(() => '').range([fill]);
86
- return this;
87
- }
88
-
89
- /**
90
- * OPTIONAL. Sets the appearance of the fill for the dots using a categorical dimension.
91
- *
92
- */
93
- fillCategorical(fill: null): this;
94
- fillCategorical(
95
- fill: (
96
- fill: OrdinalVisualValueDimensionBuilder<Datum, string, string>
97
- ) => void
98
- ): this;
99
- fillCategorical(
100
- fill:
101
- | ((
102
- fill: OrdinalVisualValueDimensionBuilder<Datum, string, string>
103
- ) => void)
104
- | null
105
- ): this {
106
- if (fill === null) {
107
- this.fillBuilderCategorical = undefined;
108
- return this;
109
- }
110
- this.fillBuilderCategorical = new OrdinalVisualValueDimensionBuilder();
111
- fill(this.fillBuilderCategorical);
112
- return this;
113
- }
114
-
115
- fillNumeric(fill: null): this;
116
- fillNumeric(
117
- fill: (fill: NumberVisualValueDimensionBuilder<Datum, string>) => void
118
- ): this;
119
- fillNumeric(
120
- fill:
121
- | ((fill: NumberVisualValueDimensionBuilder<Datum, string>) => void)
122
- | null
123
- ): this {
124
- if (fill === null) {
125
- this.fillBuilderNumber = undefined;
126
- return this;
127
- }
128
- this.initFillBuilderNumber();
129
- fill(this.fillBuilderNumber);
130
- return this;
131
- }
132
-
133
- private initFillBuilderNumber(): void {
134
- this.fillBuilderNumber = new NumberVisualValueDimensionBuilder();
135
- }
136
-
137
- /**
138
- * OPTIONAL. Sets the opacity of the dots.
139
- *
140
- * @default 1
141
- */
142
- opacity(opacity: number): this {
143
- this._opacity = opacity;
144
- return this;
145
- }
146
-
147
- /**
148
- * OPTIONAL. The size of the radius of the dots
149
- *
150
- * This is temporarily a constant.
151
- *
152
- * @default 2
153
- */
154
- radius(radius: null): this;
155
- radius(radius: number): this;
156
- radius(radius: number | null): this {
157
- if (radius === null) {
158
- this.radiusBuilderConst = undefined;
159
- return this;
160
- }
161
- this.radiusBuilderConst = new OrdinalVisualValueDimensionBuilder();
162
- this.radiusBuilderConst.range([radius]);
163
- return this;
164
- }
165
-
166
- radiusCategorical(radius: null): this;
167
- radiusCategorical(
168
- radius: (
169
- radius: OrdinalVisualValueDimensionBuilder<Datum, string, number>
170
- ) => void
171
- ): this;
172
- radiusCategorical(
173
- radius:
174
- | ((
175
- radius: OrdinalVisualValueDimensionBuilder<Datum, string, number>
176
- ) => void)
177
- | null
178
- ): this {
179
- if (radius === null) {
180
- this.radiusBuilderCategorical = undefined;
181
- return this;
182
- }
183
- this.radiusBuilderCategorical = new OrdinalVisualValueDimensionBuilder();
184
- radius(this.radiusBuilderCategorical);
185
- return this;
186
- }
187
-
188
- radiusNumeric(radius: null): this;
189
- radiusNumeric(
190
- radius: (radius: NumberVisualValueDimensionBuilder<Datum, number>) => void
191
- ): this;
192
- radiusNumeric(
193
- radius: (
194
- radius: NumberVisualValueDimensionBuilder<Datum, number>
195
- ) => void | null
196
- ): this {
197
- if (radius === null) {
198
- this.radiusBuilderNumber = undefined;
199
- return this;
200
- }
201
- this.radiusBuilderNumber = new NumberVisualValueDimensionBuilder();
202
- radius(this.radiusBuilderNumber);
203
- return this;
204
- }
205
-
206
- /**
207
- * OPTIONAL. Sets the appearance of the stroke for the dots.
208
- */
209
- stroke(stroke: null): this;
210
- stroke(stroke: (stroke: StrokeBuilder) => void): this;
211
- stroke(stroke: ((stroke: StrokeBuilder) => void) | null): this {
212
- if (stroke === null) {
213
- this.strokeBuilder = undefined;
214
- return this;
215
- }
216
- this.initStrokeBuilder();
217
- stroke(this.strokeBuilder);
218
- return this;
219
- }
220
-
221
- private initStrokeBuilder(): void {
222
- this.strokeBuilder = new StrokeBuilder();
223
- }
224
-
225
- /**
226
- * REQUIRED. A config for the behavior of the chart's x dimension when using numeric data.
227
- */
228
- xDate(x: null): this;
229
- xDate(x: (x: DateChartPositionDimensionBuilder<Datum>) => void): this;
230
- xDate(
231
- x: ((x: DateChartPositionDimensionBuilder<Datum>) => void) | null
232
- ): this {
233
- if (x === null) {
234
- this.xBuilderDate = undefined;
235
- return this;
236
- }
237
- this.xBuilderDate = new DateChartPositionDimensionBuilder<Datum>();
238
- x(this.xBuilderDate);
239
- return this;
240
- }
241
-
242
- /**
243
- * REQUIRED. A config for the behavior of the chart's x dimension when using numeric data.
244
- */
245
- xNumeric(x: null): this;
246
- xNumeric(x: (x: NumberChartPositionDimensionBuilder<Datum>) => void): this;
247
- xNumeric(
248
- x: ((x: NumberChartPositionDimensionBuilder<Datum>) => void) | null
249
- ): this {
250
- if (x === null) {
251
- this.xBuilderNumeric = undefined;
252
- return this;
253
- }
254
- this.xBuilderNumeric = new NumberChartPositionDimensionBuilder<Datum>();
255
- x(this.xBuilderNumeric);
256
- return this;
257
- }
258
-
259
- /**
260
- * REQUIRED. A config for the behavior of the chart's x dimension when using numeric data.
261
- */
262
- xOrdinal(x: null): this;
263
- xOrdinal(
264
- x: (x: OrdinalChartPositionDimensionBuilder<Datum, XOrdinalDomain>) => void
265
- ): this;
266
- xOrdinal(
267
- x:
268
- | ((
269
- x: OrdinalChartPositionDimensionBuilder<Datum, XOrdinalDomain>
270
- ) => void)
271
- | null
272
- ): this {
273
- if (x === null) {
274
- this.xBuilderDate = undefined;
275
- return this;
276
- }
277
- this.xBuilderOrdinal = new OrdinalChartPositionDimensionBuilder<
278
- Datum,
279
- XOrdinalDomain
280
- >();
281
- x(this.xBuilderOrdinal);
282
- return this;
283
- }
284
-
285
- /**
286
- * REQUIRED. A config for the behavior of the chart's x dimension when using numeric data.
287
- */
288
- yDate(y: null): this;
289
- yDate(y: (y: DateChartPositionDimensionBuilder<Datum>) => void): this;
290
- yDate(
291
- y: ((y: DateChartPositionDimensionBuilder<Datum>) => void) | null
292
- ): this {
293
- if (y === null) {
294
- this.yBuilderDate = undefined;
295
- return this;
296
- }
297
- this.yBuilderDate = new DateChartPositionDimensionBuilder<Datum>();
298
- y(this.yBuilderDate);
299
- return this;
300
- }
301
-
302
- /**
303
- * REQUIRED. A config for the behavior of the chart's x dimension when using numeric data.
304
- */
305
- yNumeric(y: null): this;
306
- yNumeric(y: (y: NumberChartPositionDimensionBuilder<Datum>) => void): this;
307
- yNumeric(
308
- y: ((y: NumberChartPositionDimensionBuilder<Datum>) => void) | null
309
- ): this {
310
- if (y === null) {
311
- this.yBuilderNumeric = undefined;
312
- return this;
313
- }
314
- this.yBuilderNumeric = new NumberChartPositionDimensionBuilder<Datum>();
315
- y(this.yBuilderNumeric);
316
- return this;
317
- }
318
-
319
- /**
320
- * REQUIRED. A config for the behavior of the chart's x dimension when using numeric data.
321
- */
322
- yOrdinal(y: null): this;
323
- yOrdinal(
324
- y: (y: OrdinalChartPositionDimensionBuilder<Datum, YOrdinalDomain>) => void
325
- ): this;
326
- yOrdinal(
327
- y:
328
- | ((
329
- y: OrdinalChartPositionDimensionBuilder<Datum, YOrdinalDomain>
330
- ) => void)
331
- | null
332
- ): this {
333
- if (y === null) {
334
- this.yBuilderOrdinal = undefined;
335
- return this;
336
- }
337
- this.yBuilderOrdinal = new OrdinalChartPositionDimensionBuilder<
338
- Datum,
339
- YOrdinalDomain
340
- >();
341
- y(this.yBuilderOrdinal);
342
- return this;
343
- }
344
-
345
- /**
346
- * REQUIRED. Validates and builds the configuration object for the bars that can be passed to BarsComponent.
347
- *
348
- * The user must call this at the end of the chain of methods to build the configuration object.
349
- */
350
- getConfig(): DotsConfig<Datum, XOrdinalDomain, YOrdinalDomain> {
351
- this.validateBuilder();
352
- const fillName = 'Dots Fill';
353
- const radiusName = 'Dots Radius';
354
- const xName = 'Dots X';
355
- const yName = 'Dots Y';
356
- const fillBuilder = this.fillBuilderCategorical
357
- ? this.fillBuilderCategorical
358
- : this.fillBuilderNumber || this.fillBuilderConst;
359
- const radiusBuilder = this.radiusBuilderCategorical
360
- ? this.radiusBuilderCategorical
361
- : this.radiusBuilderNumber || this.radiusBuilderConst;
362
- return new DotsConfig<Datum, XOrdinalDomain, YOrdinalDomain>({
363
- marksClass: 'vic-dots',
364
- data: this._data,
365
- datumClass: this._datumClass,
366
- fill: fillBuilder._build(fillName),
367
- mixBlendMode: this._mixBlendMode,
368
- opacity: this._opacity,
369
- pointerDetectionRadius: this._pointerDetectionRadius,
370
- radius: radiusBuilder._build(radiusName),
371
- stroke: this.strokeBuilder?._build(),
372
- x: this.xBuilderDate
373
- ? this.xBuilderDate._build(xName)
374
- : this.xBuilderNumeric
375
- ? this.xBuilderNumeric._build(xName)
376
- : this.xBuilderOrdinal._build('point', xName),
377
- y: this.xBuilderDate
378
- ? this.yBuilderDate._build(yName)
379
- : this.yBuilderNumeric
380
- ? this.yBuilderNumeric._build(yName)
381
- : this.yBuilderOrdinal._build('point', yName),
382
- });
383
- }
384
-
385
- protected override validateBuilder(): void {
386
- super.validateBuilder('Lines');
387
- const fillBuilders = [
388
- this.fillBuilderCategorical,
389
- this.fillBuilderNumber,
390
- this.fillBuilderConst,
391
- ];
392
- const numFillBuilders = fillBuilders.filter(
393
- (builder) => builder !== undefined
394
- ).length;
395
- if (numFillBuilders === 0) {
396
- this.fillBuilderCategorical = new OrdinalVisualValueDimensionBuilder();
397
- this.fillBuilderCategorical.range([schemeTableau10[0]]);
398
- }
399
- if (numFillBuilders > 1) {
400
- throw new Error(
401
- `Dots Builder: Only one fill method can be called with a truthy value. Curently ${numFillBuilders} are called.`
402
- );
403
- }
404
- const radiusBuilders = [
405
- this.radiusBuilderCategorical,
406
- this.radiusBuilderNumber,
407
- this.radiusBuilderConst,
408
- ];
409
- const numRadiusBuilders = radiusBuilders.filter(
410
- (builder) => builder !== undefined
411
- ).length;
412
- if (numRadiusBuilders === 0) {
413
- this.radiusBuilderCategorical = new OrdinalVisualValueDimensionBuilder();
414
- this.radiusBuilderCategorical.range([2]);
415
- }
416
- if (numRadiusBuilders > 1) {
417
- throw new Error(
418
- `Dots Builder: Only one radius method can be called with a truthy value. Curently ${numRadiusBuilders} are called.`
419
- );
420
- }
421
- if (
422
- +!!this.xBuilderNumeric +
423
- +!!this.xBuilderDate +
424
- +!!this.xBuilderOrdinal !==
425
- 1
426
- ) {
427
- throw new Error(
428
- 'Dots Builder: Exactly one X dimension is required. Please use one of `xDate`, `xNumeric`, or `xOrdinal` to set it.'
429
- );
430
- }
431
- if (
432
- +!!this.yBuilderNumeric +
433
- +!!this.yBuilderDate +
434
- +!!this.yBuilderOrdinal !==
435
- 1
436
- ) {
437
- throw new Error(
438
- 'Dots Builder: Exactly one Y dimension is required. Please use one of `yDate`, `yNumeric`, or `yOrdinal` to set it.'
439
- );
440
- }
441
- }
442
- }
@@ -1,123 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { NumberChartPositionDimension } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position';
3
- import { NumberVisualValueDimension } from '../../data-dimensions/continuous-quantitative/number-visual-value/number-visual-value';
4
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
5
- import { VicDotsConfigBuilder } from './dots-builder';
6
- import { DotsConfig } from './dots-config';
7
-
8
- type Datum = { rain: number; snow: number; state: string; year: number };
9
- const testData = [
10
- { rain: 50, snow: 2, state: 'AL', year: 2020 },
11
- { rain: 54, snow: 1, state: 'AL', year: 2021 },
12
- { rain: 66, snow: 82, state: 'AK', year: 2020 },
13
- { rain: 45, snow: 53, state: 'AK', year: 2021 },
14
- { rain: 24, snow: 18, state: 'AZ', year: 2020 },
15
- { rain: 17, snow: 25, state: 'AZ', year: 2021 },
16
- { rain: 58, snow: 36, state: 'CA', year: 2020 },
17
- { rain: 66, snow: 50, state: 'CA', year: 2021 },
18
- { rain: 37, snow: 42, state: 'CO', year: 2020 },
19
- { rain: 49, snow: 63, state: 'CO', year: 2021 },
20
- ];
21
-
22
- function getNewConfig(data: Datum[]): DotsConfig<Datum> {
23
- return new VicDotsConfigBuilder<Datum>()
24
- .data(data)
25
- .xNumeric((x) => x.valueAccessor((d) => d.year))
26
- .yNumeric((y) => y.valueAccessor((d) => d.rain))
27
- .radiusNumeric((radius) =>
28
- radius.valueAccessor((d) => d.snow).range([1, 12])
29
- )
30
- .fillCategorical((fill) =>
31
- fill
32
- .valueAccessor((d) => d.state)
33
- .range(['red', 'blue', 'green', 'yellow', 'purple'])
34
- )
35
- .getConfig();
36
- }
37
-
38
- describe('DotsConfig', () => {
39
- let config: DotsConfig<Datum>;
40
-
41
- describe('init()', () => {
42
- beforeEach(() => {
43
- spyOn(DotsConfig.prototype as any, 'setDimensionPropertiesFromData');
44
- spyOn(DotsConfig.prototype as any, 'setValueIndices');
45
- config = getNewConfig(testData);
46
- });
47
- it('calls setDimensionPropertiesFromData once', () => {
48
- expect(
49
- (config as any).setDimensionPropertiesFromData
50
- ).toHaveBeenCalledTimes(1);
51
- });
52
- it('calls setValueIndices once', () => {
53
- expect((config as any).setValueIndices).toHaveBeenCalledTimes(1);
54
- });
55
- });
56
-
57
- describe('setDimensionPropertiesFromData()', () => {
58
- let numChartPositionSpy: jasmine.Spy;
59
- beforeEach(() => {
60
- spyOn(DotsConfig.prototype as any, 'initPropertiesFromData');
61
- numChartPositionSpy = spyOn(
62
- NumberChartPositionDimension.prototype as any,
63
- 'setPropertiesFromData'
64
- );
65
- spyOn(
66
- NumberVisualValueDimension.prototype as any,
67
- 'setPropertiesFromData'
68
- );
69
- spyOn(
70
- OrdinalVisualValueDimension.prototype as any,
71
- 'setPropertiesFromData'
72
- );
73
- config = getNewConfig(testData);
74
- (config as any).setDimensionPropertiesFromData();
75
- });
76
- it('calls x.setPropertiesFromData and y.setPropertiesFromData once each', () => {
77
- expect(numChartPositionSpy.calls.allArgs()).toEqual([
78
- [testData],
79
- [testData, false],
80
- ]);
81
- });
82
- it('calls fill.setPropertiesFromData once', () => {
83
- expect(config.fill.setPropertiesFromData).toHaveBeenCalledOnceWith(
84
- testData
85
- );
86
- });
87
- it('calls radius.setPropertiesFromData once', () => {
88
- expect(config.radius.setPropertiesFromData).toHaveBeenCalledOnceWith(
89
- testData
90
- );
91
- });
92
- });
93
-
94
- describe('setValueIndices()', () => {
95
- beforeEach(() => {
96
- spyOn(DotsConfig.prototype as any, 'initPropertiesFromData');
97
- });
98
- it('returns the value indices of datums with unique ordinal values', () => {
99
- config = getNewConfig(testData);
100
- (config as any).setDimensionPropertiesFromData();
101
- (config as any).setValueIndices();
102
- expect(config.valueIndices).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
103
- });
104
- it('sets valueIndices to the correct array when some values are not valid', () => {
105
- const problemData = [
106
- { rain: 50, snow: 2, state: 'AL', year: 2020 },
107
- { rain: 54, snow: 1, state: 'AL', year: 2021 },
108
- { rain: 66, snow: 82, state: 'AK', year: null },
109
- { rain: 'im a string' as any, snow: 53, state: 'AK', year: 2021 },
110
- { rain: 24, snow: 18, state: 'AZ', year: 2020 },
111
- { rain: 17, snow: 25, state: 'AZ', year: 2021 },
112
- { rain: 58, snow: 36, state: 'CA', year: 2020 },
113
- { rain: 66, snow: 50, state: 'CA', year: 2021 },
114
- { rain: 37, snow: 42, state: 'CO', year: 2020 },
115
- { rain: 49, snow: 63, state: 'CO', year: 2021 },
116
- ] as Datum[];
117
- config = getNewConfig(problemData);
118
- (config as any).setDimensionPropertiesFromData();
119
- (config as any).setValueIndices();
120
- expect(config.valueIndices).toEqual([0, 1, 4, 5, 6, 7, 8, 9]);
121
- });
122
- });
123
- });
@@ -1,81 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { range } from 'd3';
3
- import { DataValue } from '../../core';
4
- import { DateChartPositionDimension } from '../../data-dimensions/continuous-quantitative/date-chart-position/date-chart-position';
5
- import { NumberChartPositionDimension } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position';
6
- import { NumberDimension } from '../../data-dimensions/continuous-quantitative/number-dimension/number-dimension';
7
- import { NumberVisualValueDimension } from '../../data-dimensions/continuous-quantitative/number-visual-value/number-visual-value';
8
- import { DataDimension } from '../../data-dimensions/dimension';
9
- import { OrdinalChartPositionDimension } from '../../data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position';
10
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
11
- import { XyPrimaryMarksConfig } from '../../marks/xy-marks/xy-primary-marks/xy-primary-marks-config';
12
- import { Stroke } from '../../stroke/stroke';
13
- import { DotsOptions } from './dots-options';
14
-
15
- export class DotsConfig<
16
- Datum,
17
- XOrdinalDomain extends DataValue = string,
18
- YOrdinalDomain extends DataValue = string,
19
- >
20
- extends XyPrimaryMarksConfig<Datum>
21
- implements DotsOptions<Datum, XOrdinalDomain, YOrdinalDomain>
22
- {
23
- fill:
24
- | OrdinalVisualValueDimension<Datum, string, string>
25
- | NumberVisualValueDimension<Datum, string>;
26
- opacity: number;
27
- pointerDetectionRadius: number;
28
- radius:
29
- | OrdinalVisualValueDimension<Datum, string, number>
30
- | NumberVisualValueDimension<Datum, number>;
31
- stroke: Stroke;
32
- x:
33
- | NumberChartPositionDimension<Datum>
34
- | DateChartPositionDimension<Datum>
35
- | OrdinalChartPositionDimension<Datum, XOrdinalDomain>;
36
- y:
37
- | NumberChartPositionDimension<Datum>
38
- | DateChartPositionDimension<Datum>
39
- | OrdinalChartPositionDimension<Datum, YOrdinalDomain>;
40
-
41
- constructor(options: DotsOptions<Datum, XOrdinalDomain, YOrdinalDomain>) {
42
- super();
43
- safeAssign(this, options);
44
- this.initPropertiesFromData();
45
- }
46
-
47
- protected initPropertiesFromData(): void {
48
- this.setDimensionPropertiesFromData();
49
- this.setValueIndices();
50
- }
51
-
52
- protected setDimensionPropertiesFromData(): void {
53
- this.x.setPropertiesFromData(this.data);
54
- this.y.setPropertiesFromData(this.data, this.y.dimensionType === 'ordinal');
55
- this.fill.setPropertiesFromData(this.data);
56
- this.radius.setPropertiesFromData(this.data);
57
- }
58
-
59
- protected setValueIndices(): void {
60
- this.valueIndices = range(this.data.length).filter(
61
- (i) => this.isValidValue('x', i) && this.isValidValue('y', i)
62
- );
63
- }
64
-
65
- private isValidValue(dimension: 'x' | 'y', i: number): boolean {
66
- const config = this[dimension];
67
- if (this.isContinuousQuantitativeDimension(config)) {
68
- return config.isValidValue(config.values[i]);
69
- } else {
70
- return true;
71
- }
72
- }
73
-
74
- isContinuousQuantitativeDimension(
75
- dimension: DataDimension<Datum, DataValue>
76
- ): dimension is NumberDimension<Datum> {
77
- return (
78
- dimension.dimensionType === 'number' || dimension.dimensionType === 'date'
79
- );
80
- }
81
- }
@@ -1,32 +0,0 @@
1
- import { DataValue } from '../../core';
2
- import { DateChartPositionDimension } from '../../data-dimensions/continuous-quantitative/date-chart-position/date-chart-position';
3
- import { NumberChartPositionDimension } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position';
4
- import { NumberVisualValueDimension } from '../../data-dimensions/continuous-quantitative/number-visual-value/number-visual-value';
5
- import { OrdinalChartPositionDimension } from '../../data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position';
6
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
7
- import { DataMarksOptions } from '../../marks/config/marks-options';
8
- import { Stroke } from '../../stroke/stroke';
9
-
10
- export interface DotsOptions<
11
- Datum,
12
- XOrdinalDomain extends DataValue = string,
13
- YOrdinalDomain extends DataValue = string,
14
- > extends DataMarksOptions<Datum> {
15
- fill:
16
- | OrdinalVisualValueDimension<Datum, string, string>
17
- | NumberVisualValueDimension<Datum, string>;
18
- opacity: number;
19
- pointerDetectionRadius: number;
20
- radius:
21
- | OrdinalVisualValueDimension<Datum, string, number>
22
- | NumberVisualValueDimension<Datum, number>;
23
- stroke: Stroke;
24
- x:
25
- | NumberChartPositionDimension<Datum>
26
- | DateChartPositionDimension<Datum>
27
- | OrdinalChartPositionDimension<Datum, XOrdinalDomain>;
28
- y:
29
- | NumberChartPositionDimension<Datum>
30
- | DateChartPositionDimension<Datum>
31
- | OrdinalChartPositionDimension<Datum, YOrdinalDomain>;
32
- }
File without changes