@mathstack/viz 2.1.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +11 -11
  3. package/fesm2022/mathstack-viz.mjs +11024 -0
  4. package/fesm2022/mathstack-viz.mjs.map +1 -0
  5. package/package.json +18 -6
  6. package/types/mathstack-viz.d.ts +5830 -0
  7. package/CHANGELOG.md +0 -0
  8. package/cypress/fixtures/example.json +0 -5
  9. package/cypress/fixtures/usMap.json +0 -13511
  10. package/cypress/support/commands.ts +0 -104
  11. package/cypress/support/component-index.html +0 -12
  12. package/cypress/support/component.ts +0 -33
  13. package/cypress.config.ts +0 -9
  14. package/karma.conf.js +0 -62
  15. package/ng-package.json +0 -8
  16. package/project.json +0 -97
  17. package/src/.eslintrc.json +0 -35
  18. package/src/.prettierrc +0 -31
  19. package/src/lib/axes/base/config/xy-axis-builder.ts +0 -68
  20. package/src/lib/axes/base/config/xy-axis-config.ts +0 -35
  21. package/src/lib/axes/base/config/xy-axis-options.ts +0 -11
  22. package/src/lib/axes/base/xy-axis-base.spec.ts +0 -114
  23. package/src/lib/axes/base/xy-axis-base.ts +0 -305
  24. package/src/lib/axes/base/xy-axis-domain-lines.cy.ts +0 -511
  25. package/src/lib/axes/baseline/axis-baseline-builder.ts +0 -77
  26. package/src/lib/axes/baseline/axis-baseline-options.ts +0 -4
  27. package/src/lib/axes/baseline/axis-baseline.ts +0 -11
  28. package/src/lib/axes/grid/grid-builder.ts +0 -74
  29. package/src/lib/axes/grid/grid-config.ts +0 -13
  30. package/src/lib/axes/grid/grid-options.ts +0 -7
  31. package/src/lib/axes/index.ts +0 -40
  32. package/src/lib/axes/label/axis-label-builder.ts +0 -140
  33. package/src/lib/axes/label/axis-label-options.ts +0 -12
  34. package/src/lib/axes/label/axis-label.ts +0 -18
  35. package/src/lib/axes/label/axis-labels.cy.ts +0 -303
  36. package/src/lib/axes/ordinal/ordinal-axis-config.ts +0 -31
  37. package/src/lib/axes/ordinal/ordinal-axis.spec.ts +0 -30
  38. package/src/lib/axes/ordinal/ordinal-axis.ts +0 -26
  39. package/src/lib/axes/quantitative/quantitative-axis-config.ts +0 -39
  40. package/src/lib/axes/quantitative/quantitative-axis-ticks.cy.ts +0 -748
  41. package/src/lib/axes/quantitative/quantitative-axis.spec.ts +0 -537
  42. package/src/lib/axes/quantitative/quantitative-axis.ts +0 -191
  43. package/src/lib/axes/ticks/tick-wrap/tick-wrap-builder.ts +0 -141
  44. package/src/lib/axes/ticks/tick-wrap/tick-wrap-options.ts +0 -11
  45. package/src/lib/axes/ticks/tick-wrap/tick-wrap.cy.ts +0 -360
  46. package/src/lib/axes/ticks/tick-wrap/tick-wrap.ts +0 -21
  47. package/src/lib/axes/ticks/ticks-builder.ts +0 -370
  48. package/src/lib/axes/ticks/ticks-options.ts +0 -24
  49. package/src/lib/axes/ticks/ticks.ts +0 -33
  50. package/src/lib/axes/x/x-axis-config.ts +0 -48
  51. package/src/lib/axes/x/x-axis.spec.ts +0 -90
  52. package/src/lib/axes/x/x-axis.ts +0 -109
  53. package/src/lib/axes/x-ordinal/x-ordinal-axis-builder.ts +0 -75
  54. package/src/lib/axes/x-ordinal/x-ordinal-axis-config.ts +0 -27
  55. package/src/lib/axes/x-ordinal/x-ordinal-axis.component.ts +0 -33
  56. package/src/lib/axes/x-quantitative/x-quantitative-axis-builder.ts +0 -74
  57. package/src/lib/axes/x-quantitative/x-quantitative-axis-config.ts +0 -32
  58. package/src/lib/axes/x-quantitative/x-quantitative-axis.component.ts +0 -40
  59. package/src/lib/axes/xy-axis.module.ts +0 -20
  60. package/src/lib/axes/y/y-axis-config.ts +0 -47
  61. package/src/lib/axes/y/y-axis.spec.ts +0 -92
  62. package/src/lib/axes/y/y-axis.ts +0 -161
  63. package/src/lib/axes/y-ordinal/y-ordinal-axis-builder.ts +0 -76
  64. package/src/lib/axes/y-ordinal/y-ordinal-axis-config.ts +0 -29
  65. package/src/lib/axes/y-ordinal/y-ordinal-axis.component.ts +0 -33
  66. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-builder.ts +0 -74
  67. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-config.ts +0 -34
  68. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis.component.ts +0 -40
  69. package/src/lib/bars/bars.component.scss +0 -0
  70. package/src/lib/bars/bars.component.spec.ts +0 -1470
  71. package/src/lib/bars/bars.component.ts +0 -717
  72. package/src/lib/bars/bars.cy.ts +0 -829
  73. package/src/lib/bars/bars.module.ts +0 -9
  74. package/src/lib/bars/config/backgrounds/bars-backgrounds-builder.ts +0 -51
  75. package/src/lib/bars/config/backgrounds/bars-backgrounds-options.ts +0 -4
  76. package/src/lib/bars/config/backgrounds/bars-backgrounds.ts +0 -11
  77. package/src/lib/bars/config/bars-builder.ts +0 -340
  78. package/src/lib/bars/config/bars-config.spec.ts +0 -132
  79. package/src/lib/bars/config/bars-config.ts +0 -70
  80. package/src/lib/bars/config/bars-dimensions.ts +0 -29
  81. package/src/lib/bars/config/bars-options.ts +0 -20
  82. package/src/lib/bars/config/labels/bars-labels-builder.ts +0 -89
  83. package/src/lib/bars/config/labels/bars-labels-options.ts +0 -6
  84. package/src/lib/bars/config/labels/bars-labels.cy.ts +0 -781
  85. package/src/lib/bars/config/labels/bars-labels.ts +0 -13
  86. package/src/lib/bars/events/actions/bars-click-actions.ts +0 -23
  87. package/src/lib/bars/events/actions/bars-hover-actions.ts +0 -43
  88. package/src/lib/bars/events/actions/bars-hover-move-actions.ts +0 -21
  89. package/src/lib/bars/events/bars-events.directive.spec.ts +0 -186
  90. package/src/lib/bars/events/bars-events.directive.ts +0 -235
  91. package/src/lib/bars/events/bars-interaction-output.ts +0 -17
  92. package/src/lib/bars/events/bars-tooltip-positioner.ts +0 -24
  93. package/src/lib/bars/index.ts +0 -18
  94. package/src/lib/charts/chart/chart-scaling.cy.ts +0 -323
  95. package/src/lib/charts/chart/chart.component.html +0 -45
  96. package/src/lib/charts/chart/chart.component.scss +0 -37
  97. package/src/lib/charts/chart/chart.component.ts +0 -243
  98. package/src/lib/charts/chart/chart.token.ts +0 -4
  99. package/src/lib/charts/chart/chart.ts +0 -5
  100. package/src/lib/charts/chart/config/chart-builder.ts +0 -194
  101. package/src/lib/charts/chart/config/chart-config.ts +0 -21
  102. package/src/lib/charts/chart/config/chart-options.ts +0 -11
  103. package/src/lib/charts/chart.module.ts +0 -10
  104. package/src/lib/charts/index.ts +0 -9
  105. package/src/lib/charts/map-chart/map-chart.component.scss +0 -0
  106. package/src/lib/charts/map-chart/map-chart.component.spec.ts +0 -35
  107. package/src/lib/charts/map-chart/map-chart.component.ts +0 -61
  108. package/src/lib/charts/xy-chart/xy-chart.component.spec.ts +0 -34
  109. package/src/lib/charts/xy-chart/xy-chart.component.ts +0 -65
  110. package/src/lib/core/common-behaviors/constructor.ts +0 -7
  111. package/src/lib/core/index.ts +0 -11
  112. package/src/lib/core/pipes/resize-chart-height.pipe.spec.ts +0 -23
  113. package/src/lib/core/pipes/resize-chart-height.pipe.ts +0 -20
  114. package/src/lib/core/styles/_spacing.scss +0 -4
  115. package/src/lib/core/types/layout.ts +0 -28
  116. package/src/lib/core/types/scale.ts +0 -6
  117. package/src/lib/core/types/utility.ts +0 -11
  118. package/src/lib/core/types/values.ts +0 -10
  119. package/src/lib/core/utilities/colors.spec.ts +0 -57
  120. package/src/lib/core/utilities/colors.ts +0 -42
  121. package/src/lib/core/utilities/fill-utilities.spec.ts +0 -25
  122. package/src/lib/core/utilities/fill-utilities.ts +0 -21
  123. package/src/lib/core/utilities/type-guards.spec.ts +0 -55
  124. package/src/lib/core/utilities/type-guards.ts +0 -33
  125. package/src/lib/core/utilities/value-format.ts +0 -21
  126. package/src/lib/core/utilities/values.spec.ts +0 -954
  127. package/src/lib/core/utilities/values.ts +0 -189
  128. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-builder.ts +0 -105
  129. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-options.ts +0 -24
  130. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.spec.ts +0 -66
  131. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.ts +0 -72
  132. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/concrete-domain-padding.ts +0 -10
  133. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-padding.ts +0 -76
  134. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-test-utility.ts +0 -130
  135. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over-options.ts +0 -3
  136. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over.ts +0 -37
  137. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel-options.ts +0 -3
  138. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel.ts +0 -73
  139. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/quantitative-domain-padding.cy.ts +0 -978
  140. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval-options.ts +0 -3
  141. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval.ts +0 -27
  142. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig-options.ts +0 -3
  143. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig.ts +0 -30
  144. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder.ts +0 -183
  145. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-options.ts +0 -8
  146. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.spec.ts +0 -28
  147. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.ts +0 -62
  148. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension-options.ts +0 -15
  149. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.spec.ts +0 -155
  150. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.ts +0 -57
  151. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-builder.ts +0 -166
  152. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-options.ts +0 -10
  153. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.spec.ts +0 -34
  154. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.ts +0 -57
  155. package/src/lib/data-dimensions/dimension-builder.ts +0 -45
  156. package/src/lib/data-dimensions/dimension-options.ts +0 -12
  157. package/src/lib/data-dimensions/dimension.ts +0 -30
  158. package/src/lib/data-dimensions/index.ts +0 -31
  159. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder.ts +0 -122
  160. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-options.ts +0 -12
  161. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.spec.ts +0 -83
  162. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.ts +0 -101
  163. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder.ts +0 -108
  164. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-options.ts +0 -12
  165. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.cy.ts +0 -384
  166. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.spec.ts +0 -63
  167. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.ts +0 -79
  168. package/src/lib/data-export/data-export-config.ts +0 -98
  169. package/src/lib/data-export/data-export.spec.ts +0 -33
  170. package/src/lib/data-export/data-export.ts +0 -87
  171. package/src/lib/data-export/index.ts +0 -2
  172. package/src/lib/dots/config/dots-builder.ts +0 -442
  173. package/src/lib/dots/config/dots-config.spec.ts +0 -123
  174. package/src/lib/dots/config/dots-config.ts +0 -81
  175. package/src/lib/dots/config/dots-options.ts +0 -32
  176. package/src/lib/dots/dots.component.scss +0 -0
  177. package/src/lib/dots/dots.component.spec.ts +0 -143
  178. package/src/lib/dots/dots.component.ts +0 -291
  179. package/src/lib/dots/dots.cy.ts +0 -594
  180. package/src/lib/dots/dots.module.ts +0 -9
  181. package/src/lib/dots/events/actions/dots-hover-actions.ts +0 -19
  182. package/src/lib/dots/events/actions/dots-hover-move-actions.ts +0 -38
  183. package/src/lib/dots/events/dots-events.directive.ts +0 -214
  184. package/src/lib/dots/events/dots-interaction-output.ts +0 -15
  185. package/src/lib/dots/events/dots-tooltip-positioner.ts +0 -24
  186. package/src/lib/dots/index.ts +0 -10
  187. package/src/lib/events/events.directive.ts +0 -184
  188. package/src/lib/events/events.types.ts +0 -57
  189. package/src/lib/events/index.ts +0 -4
  190. package/src/lib/events/interaction-output.ts +0 -34
  191. package/src/lib/events/tooltip-positioner.ts +0 -15
  192. package/src/lib/fill-definitions/fill-definitions.ts +0 -4
  193. package/src/lib/fill-definitions/index.ts +0 -1
  194. package/src/lib/geographies/config/geographies-builder.ts +0 -224
  195. package/src/lib/geographies/config/geographies-config.spec.ts +0 -100
  196. package/src/lib/geographies/config/geographies-config.ts +0 -81
  197. package/src/lib/geographies/config/geographies-options.ts +0 -37
  198. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-builder.ts +0 -212
  199. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-options.ts +0 -26
  200. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.spec.ts +0 -119
  201. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.ts +0 -148
  202. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-builder.ts +0 -65
  203. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-options.ts +0 -15
  204. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension.ts +0 -32
  205. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-enums.ts +0 -10
  206. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-types.ts +0 -15
  207. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-builder.ts +0 -18
  208. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-options.ts +0 -8
  209. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.spec.ts +0 -60
  210. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.ts +0 -34
  211. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-builder.ts +0 -46
  212. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-options.ts +0 -8
  213. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.cy.ts +0 -437
  214. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.spec.ts +0 -105
  215. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.ts +0 -54
  216. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-builder.ts +0 -65
  217. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-options.ts +0 -9
  218. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.spec.ts +0 -82
  219. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.ts +0 -81
  220. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks.cy.ts +0 -378
  221. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-builder.ts +0 -50
  222. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-options.ts +0 -8
  223. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.cy.ts +0 -362
  224. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.spec.ts +0 -72
  225. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.ts +0 -56
  226. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-builder.ts +0 -60
  227. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-options.ts +0 -9
  228. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.cy.ts +0 -307
  229. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.spec.ts +0 -104
  230. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.ts +0 -89
  231. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-builder.ts +0 -62
  232. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-options.ts +0 -8
  233. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.cy.ts +0 -265
  234. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.spec.ts +0 -42
  235. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.ts +0 -42
  236. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-builder.ts +0 -116
  237. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-options.ts +0 -20
  238. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer.ts +0 -104
  239. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-builder.ts +0 -111
  240. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-options.ts +0 -19
  241. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.spec.ts +0 -41
  242. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.ts +0 -67
  243. package/src/lib/geographies/config/layers/labels/geographies-labels-builder.ts +0 -269
  244. package/src/lib/geographies/config/layers/labels/geographies-labels-options.ts +0 -45
  245. package/src/lib/geographies/config/layers/labels/geographies-labels.ts +0 -38
  246. package/src/lib/geographies/events/actions/geographies-click-actions.ts +0 -21
  247. package/src/lib/geographies/events/actions/geographies-hover-actions.ts +0 -17
  248. package/src/lib/geographies/events/actions/geographies-hover-move-actions.ts +0 -19
  249. package/src/lib/geographies/events/geographies-events.directive.spec.ts +0 -225
  250. package/src/lib/geographies/events/geographies-events.directive.ts +0 -235
  251. package/src/lib/geographies/events/geographies-interaction-output.ts +0 -17
  252. package/src/lib/geographies/events/geographies-tooltip-positioner.ts +0 -23
  253. package/src/lib/geographies/geographies-feature.ts +0 -16
  254. package/src/lib/geographies/geographies.component.html +0 -1
  255. package/src/lib/geographies/geographies.component.scss +0 -0
  256. package/src/lib/geographies/geographies.component.spec.ts +0 -148
  257. package/src/lib/geographies/geographies.component.ts +0 -318
  258. package/src/lib/geographies/geographies.cy.ts +0 -640
  259. package/src/lib/geographies/geographies.module.ts +0 -9
  260. package/src/lib/geographies/index.ts +0 -32
  261. package/src/lib/grouped-bars/config/grouped-bars-builder.ts +0 -66
  262. package/src/lib/grouped-bars/config/grouped-bars-config.ts +0 -41
  263. package/src/lib/grouped-bars/config/grouped-bars-options.ts +0 -9
  264. package/src/lib/grouped-bars/events/grouped-bars-events.directive.ts +0 -221
  265. package/src/lib/grouped-bars/grouped-bars.component.scss +0 -0
  266. package/src/lib/grouped-bars/grouped-bars.component.spec.ts +0 -25
  267. package/src/lib/grouped-bars/grouped-bars.component.ts +0 -94
  268. package/src/lib/grouped-bars/grouped-bars.module.ts +0 -9
  269. package/src/lib/grouped-bars/index.ts +0 -10
  270. package/src/lib/image-download/image-download-config.ts +0 -57
  271. package/src/lib/image-download/image-download-enums.ts +0 -7
  272. package/src/lib/image-download/image-download-options.ts +0 -14
  273. package/src/lib/image-download/image-download.service.ts +0 -70
  274. package/src/lib/image-download/index.ts +0 -4
  275. package/src/lib/lines/config/area-fills/area-fills-builder.ts +0 -87
  276. package/src/lib/lines/config/area-fills/area-fills-options.ts +0 -8
  277. package/src/lib/lines/config/area-fills/area-fills.ts +0 -14
  278. package/src/lib/lines/config/lines-builder.ts +0 -242
  279. package/src/lib/lines/config/lines-config.spec.ts +0 -52
  280. package/src/lib/lines/config/lines-config.ts +0 -96
  281. package/src/lib/lines/config/lines-options.ts +0 -19
  282. package/src/lib/lines/config/stroke/lines-stroke-builder.ts +0 -135
  283. package/src/lib/lines/config/stroke/lines-stroke-options.ts +0 -6
  284. package/src/lib/lines/config/stroke/lines-stroke.ts +0 -15
  285. package/src/lib/lines/events/actions/lines-click-actions.ts +0 -17
  286. package/src/lib/lines/events/actions/lines-hover-move-actions.ts +0 -113
  287. package/src/lib/lines/events/actions/lines-marker-click-actions.ts +0 -29
  288. package/src/lib/lines/events/lines-events.directive.spec.ts +0 -152
  289. package/src/lib/lines/events/lines-events.directive.ts +0 -310
  290. package/src/lib/lines/events/lines-interaction-output.ts +0 -17
  291. package/src/lib/lines/events/lines-tooltip-positioner.ts +0 -24
  292. package/src/lib/lines/index.ts +0 -17
  293. package/src/lib/lines/lines.component.scss +0 -0
  294. package/src/lib/lines/lines.component.spec.ts +0 -95
  295. package/src/lib/lines/lines.component.ts +0 -425
  296. package/src/lib/lines/lines.cy.ts +0 -738
  297. package/src/lib/lines/lines.module.ts +0 -9
  298. package/src/lib/map-legend/continuous-legend/continuous-legend.component.html +0 -28
  299. package/src/lib/map-legend/continuous-legend/continuous-legend.component.scss +0 -76
  300. package/src/lib/map-legend/continuous-legend/continuous-legend.component.spec.ts +0 -61
  301. package/src/lib/map-legend/continuous-legend/continuous-legend.component.ts +0 -82
  302. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.html +0 -40
  303. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.scss +0 -141
  304. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.spec.ts +0 -75
  305. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.ts +0 -57
  306. package/src/lib/map-legend/index.ts +0 -2
  307. package/src/lib/map-legend/map-legend-base.spec.ts +0 -190
  308. package/src/lib/map-legend/map-legend-base.ts +0 -99
  309. package/src/lib/map-legend/map-legend.component.html +0 -24
  310. package/src/lib/map-legend/map-legend.component.scss +0 -0
  311. package/src/lib/map-legend/map-legend.component.spec.ts +0 -125
  312. package/src/lib/map-legend/map-legend.component.ts +0 -80
  313. package/src/lib/map-legend/map-legend.module.ts +0 -8
  314. package/src/lib/marks/aux-marks/aux-marks.ts +0 -18
  315. package/src/lib/marks/aux-marks/config/aux-marks-builder.ts +0 -25
  316. package/src/lib/marks/aux-marks/config/aux-marks-config.ts +0 -6
  317. package/src/lib/marks/config/marks-config.ts +0 -14
  318. package/src/lib/marks/config/marks-options.ts +0 -9
  319. package/src/lib/marks/index.ts +0 -15
  320. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.spec.ts +0 -74
  321. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.ts +0 -40
  322. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.spec.ts +0 -79
  323. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.ts +0 -63
  324. package/src/lib/marks/marks.ts +0 -39
  325. package/src/lib/marks/primary-marks/config/primary-marks-builder.ts +0 -75
  326. package/src/lib/marks/primary-marks/config/primary-marks-config.ts +0 -9
  327. package/src/lib/marks/primary-marks/primary-marks-base.spec.ts +0 -58
  328. package/src/lib/marks/primary-marks/primary-marks.ts +0 -43
  329. package/src/lib/marks/xy-marks/xy-aux-marks/xy-aux-marks.ts +0 -40
  330. package/src/lib/marks/xy-marks/xy-marks-config.ts +0 -5
  331. package/src/lib/marks/xy-marks/xy-marks.ts +0 -10
  332. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks-config.ts +0 -7
  333. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.spec.ts +0 -186
  334. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.ts +0 -72
  335. package/src/lib/point-markers/index.ts +0 -3
  336. package/src/lib/point-markers/point-markers-builder.ts +0 -93
  337. package/src/lib/point-markers/point-markers-options.ts +0 -6
  338. package/src/lib/point-markers/point-markers.ts +0 -13
  339. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-builder.ts +0 -162
  340. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-options.ts +0 -17
  341. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels.ts +0 -26
  342. package/src/lib/quantitative-rules/config/quantitative-rules-builder.ts +0 -134
  343. package/src/lib/quantitative-rules/config/quantitative-rules-config.ts +0 -21
  344. package/src/lib/quantitative-rules/config/quantitative-rules-dimensions.ts +0 -20
  345. package/src/lib/quantitative-rules/config/quantitative-rules-options.ts +0 -13
  346. package/src/lib/quantitative-rules/index.ts +0 -6
  347. package/src/lib/quantitative-rules/quantitative-rules.component.scss +0 -3
  348. package/src/lib/quantitative-rules/quantitative-rules.component.spec.ts +0 -50
  349. package/src/lib/quantitative-rules/quantitative-rules.component.ts +0 -224
  350. package/src/lib/quantitative-rules/quantitative-rules.cy.ts +0 -549
  351. package/src/lib/quantitative-rules/quantitative-rules.module.ts +0 -8
  352. package/src/lib/stacked-area/config/stacked-area-builder.ts +0 -264
  353. package/src/lib/stacked-area/config/stacked-area-config.spec.ts +0 -107
  354. package/src/lib/stacked-area/config/stacked-area-config.ts +0 -109
  355. package/src/lib/stacked-area/config/stacked-area-options.ts +0 -28
  356. package/src/lib/stacked-area/events/actions/stacked-area-hover-move-actions.ts +0 -17
  357. package/src/lib/stacked-area/events/stacked-area-events.directive.spec.ts +0 -168
  358. package/src/lib/stacked-area/events/stacked-area-events.directive.ts +0 -272
  359. package/src/lib/stacked-area/events/stacked-area-interaction-output.ts +0 -33
  360. package/src/lib/stacked-area/events/stacked-area-tooltip-positioner.ts +0 -37
  361. package/src/lib/stacked-area/index.ts +0 -7
  362. package/src/lib/stacked-area/stacked-area.component.scss +0 -0
  363. package/src/lib/stacked-area/stacked-area.component.spec.ts +0 -41
  364. package/src/lib/stacked-area/stacked-area.component.ts +0 -241
  365. package/src/lib/stacked-area/stacked-area.module.ts +0 -9
  366. package/src/lib/stacked-bars/config/stacked-bars-builder.ts +0 -109
  367. package/src/lib/stacked-bars/config/stacked-bars-config.spec.ts +0 -122
  368. package/src/lib/stacked-bars/config/stacked-bars-config.ts +0 -79
  369. package/src/lib/stacked-bars/config/stacked-bars-options.ts +0 -16
  370. package/src/lib/stacked-bars/events/actions/stacked-bars-click-actions.ts +0 -23
  371. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-actions.ts +0 -22
  372. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-move-actions.ts +0 -21
  373. package/src/lib/stacked-bars/events/stacked-bars-events.directive.spec.ts +0 -266
  374. package/src/lib/stacked-bars/events/stacked-bars-events.directive.ts +0 -240
  375. package/src/lib/stacked-bars/index.ts +0 -10
  376. package/src/lib/stacked-bars/stacked-bars.component.scss +0 -0
  377. package/src/lib/stacked-bars/stacked-bars.component.spec.ts +0 -25
  378. package/src/lib/stacked-bars/stacked-bars.component.ts +0 -158
  379. package/src/lib/stacked-bars/stacked-bars.module.ts +0 -9
  380. package/src/lib/stroke/base/stroke-base-options.ts +0 -7
  381. package/src/lib/stroke/base/stroke-base.ts +0 -9
  382. package/src/lib/stroke/index.ts +0 -5
  383. package/src/lib/stroke/stroke-builder.ts +0 -103
  384. package/src/lib/stroke/stroke-options.ts +0 -5
  385. package/src/lib/stroke/stroke.ts +0 -12
  386. package/src/lib/svg-text-wrap/index.ts +0 -3
  387. package/src/lib/svg-text-wrap/svg-text-wrap-builder.ts +0 -105
  388. package/src/lib/svg-text-wrap/svg-text-wrap-options.ts +0 -8
  389. package/src/lib/svg-text-wrap/svg-text-wrap.ts +0 -137
  390. package/src/lib/testing/data/continent-population-year-data.ts +0 -126
  391. package/src/lib/testing/data/country-area-continent.ts +0 -59
  392. package/src/lib/testing/data/state-population-income-year-data.ts +0 -123
  393. package/src/lib/testing/stubs/bars.component.stub.ts +0 -12
  394. package/src/lib/testing/stubs/chart.component.stub.ts +0 -6
  395. package/src/lib/testing/stubs/click.directive.stub.ts +0 -15
  396. package/src/lib/testing/stubs/core/destroy-ref.stub.ts +0 -9
  397. package/src/lib/testing/stubs/core/overlay-ref.stub.ts +0 -13
  398. package/src/lib/testing/stubs/core/overlay.stub.ts +0 -8
  399. package/src/lib/testing/stubs/event.directive.stub.ts +0 -10
  400. package/src/lib/testing/stubs/hover-move.directive.stub.ts +0 -17
  401. package/src/lib/testing/stubs/hover.directive.stub.ts +0 -14
  402. package/src/lib/testing/stubs/input-event.directive.stub.ts +0 -9
  403. package/src/lib/testing/stubs/lines.component.stub.ts +0 -13
  404. package/src/lib/testing/stubs/map-aux-marks.stub.ts +0 -10
  405. package/src/lib/testing/stubs/map-chart.component.stub.ts +0 -3
  406. package/src/lib/testing/stubs/map-legend-content.stub.ts +0 -16
  407. package/src/lib/testing/stubs/map-legend.component.stub.ts +0 -10
  408. package/src/lib/testing/stubs/map-primary-marks.stub.ts +0 -16
  409. package/src/lib/testing/stubs/ordinal-axis.stub.ts +0 -18
  410. package/src/lib/testing/stubs/primary-marks.stub.ts +0 -18
  411. package/src/lib/testing/stubs/quantitative-axis.stub.ts +0 -18
  412. package/src/lib/testing/stubs/services/main.service.stub.ts +0 -5
  413. package/src/lib/testing/stubs/services/utilities.service.stub.ts +0 -7
  414. package/src/lib/testing/stubs/stacked-area.component.stub.ts +0 -13
  415. package/src/lib/testing/stubs/x-axis.stub.ts +0 -10
  416. package/src/lib/testing/stubs/xy-axis.class.stub.ts +0 -20
  417. package/src/lib/testing/stubs/xy-axis.stub.ts +0 -44
  418. package/src/lib/testing/stubs/xy-chart.component.stub.ts +0 -5
  419. package/src/lib/testing/stubs/xy-data-marks.stub.ts +0 -15
  420. package/src/lib/testing/stubs/y-axis.stub.ts +0 -15
  421. package/src/lib/tooltips/config/tooltip.ts +0 -11
  422. package/src/lib/tooltips/html-tooltip/config/html-tooltip-builder.ts +0 -134
  423. package/src/lib/tooltips/html-tooltip/config/html-tooltip-config.ts +0 -21
  424. package/src/lib/tooltips/html-tooltip/config/html-tooltip-options.ts +0 -12
  425. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position-builder.ts +0 -191
  426. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position.ts +0 -42
  427. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-builder.ts +0 -75
  428. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-options.ts +0 -8
  429. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size.ts +0 -15
  430. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.spec.ts +0 -537
  431. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.ts +0 -210
  432. package/src/lib/tooltips/html-tooltip/html-tooltip.module.ts +0 -16
  433. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.html +0 -41
  434. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.scss +0 -63
  435. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.ts +0 -19
  436. package/src/lib/tooltips/index.ts +0 -11
  437. package/src/lib/tooltips/svg-tooltip/config/svg-tooltip.ts +0 -5
  438. package/src/lib/xy-background/index.ts +0 -2
  439. package/src/lib/xy-background/xy-background.component.html +0 -10
  440. package/src/lib/xy-background/xy-background.component.scss +0 -0
  441. package/src/lib/xy-background/xy-background.component.spec.ts +0 -24
  442. package/src/lib/xy-background/xy-background.component.ts +0 -19
  443. package/src/lib/xy-background/xy-background.module.ts +0 -8
  444. package/src/public-api.ts +0 -26
  445. package/src/test.ts +0 -15
  446. package/tsconfig.doc.json +0 -4
  447. package/tsconfig.json +0 -20
  448. package/tsconfig.lib.json +0 -23
  449. package/tsconfig.lib.prod.json +0 -10
  450. package/tsconfig.spec.json +0 -10
@@ -1,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