@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,9 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { BarsComponent } from './bars.component';
3
- import { BarsEventsDirective } from './events/bars-events.directive';
4
-
5
- @NgModule({
6
- imports: [BarsComponent, BarsEventsDirective],
7
- exports: [BarsComponent, BarsEventsDirective],
8
- })
9
- export class VicBarsModule {}
@@ -1,51 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { BarsBackgrounds } from './bars-backgrounds';
3
-
4
- const DEFAULT = {
5
- _color: 'whitesmoke',
6
- _events: false,
7
- };
8
-
9
- export class BarsBackgroundsBuilder {
10
- private _color: string;
11
- private _events: boolean;
12
-
13
- constructor() {
14
- safeAssign(this, DEFAULT);
15
- }
16
-
17
- /**
18
- * OPTIONAL. Determines the color of the background.
19
- *
20
- * @param value - The color of the background.
21
- *
22
- * If not called, the default color is 'whitesmoke'.
23
- */
24
- color(value: string): this {
25
- this._color = value;
26
- return this;
27
- }
28
-
29
- /**
30
- * Determines whether the background is interactive or not.
31
- *
32
- * @param value - If `true`, the background is interactive and will respond to Viz Components events. If `false`, the background is not interactive.
33
- *
34
- * If not called, the default value is `false`.
35
- */
36
- events(value: boolean): this {
37
- this._events = value;
38
- return this;
39
- }
40
-
41
- /**
42
- * @internal
43
- * This function is for internal use only and should never be called by the user.
44
- */
45
- _build(): BarsBackgrounds {
46
- return new BarsBackgrounds({
47
- color: this._color,
48
- events: this._events,
49
- });
50
- }
51
- }
@@ -1,4 +0,0 @@
1
- export interface BarsBackgroundsOptions {
2
- color: string;
3
- events: boolean;
4
- }
@@ -1,11 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { BarsBackgroundsOptions } from './bars-backgrounds-options';
3
-
4
- export class BarsBackgrounds {
5
- readonly color: string;
6
- readonly events: boolean;
7
-
8
- constructor(options: BarsBackgroundsOptions) {
9
- safeAssign(this, options);
10
- }
11
- }
@@ -1,340 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { DataValue } from '../../core/types/values';
3
- import { FillDefinition } from '../../data-dimensions';
4
- import { NumberChartPositionDimensionBuilder } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder';
5
- import { OrdinalChartPositionDimensionBuilder } from '../../data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder';
6
- import { OrdinalVisualValueDimensionBuilder } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder';
7
- import { PrimaryMarksBuilder } from '../../marks/primary-marks/config/primary-marks-builder';
8
- import { BarsBackgroundsBuilder } from './backgrounds/bars-backgrounds-builder';
9
- import { BarsConfig } from './bars-config';
10
- import {
11
- BarsDimensions,
12
- HORIZONTAL_BARS_DIMENSIONS,
13
- VERTICAL_BARS_DIMENSIONS,
14
- } from './bars-dimensions';
15
- import { BarsLabelsBuilder } from './labels/bars-labels-builder';
16
-
17
- abstract class BaseDimensionsBuilder<Datum, TOrdinalValue extends DataValue> {
18
- protected _ordinalDimensionBuilder: OrdinalChartPositionDimensionBuilder<
19
- Datum,
20
- TOrdinalValue
21
- >;
22
- protected _quantitativeDimensionBuilder: NumberChartPositionDimensionBuilder<Datum>;
23
-
24
- // Getter methods for VicBarsConfigBuilder to access the builders
25
- get ordinalDimensionBuilder() {
26
- return this._ordinalDimensionBuilder;
27
- }
28
-
29
- get quantitativeDimensionBuilder() {
30
- return this._quantitativeDimensionBuilder;
31
- }
32
-
33
- protected initOrdinalDimensionBuilder() {
34
- this._ordinalDimensionBuilder = new OrdinalChartPositionDimensionBuilder();
35
- }
36
-
37
- protected initQuantitativeDimensionBuilder() {
38
- this._quantitativeDimensionBuilder =
39
- new NumberChartPositionDimensionBuilder();
40
- }
41
- }
42
-
43
- export class HorizontalBarsDimensionsBuilder<
44
- Datum,
45
- TOrdinalValue extends DataValue,
46
- > extends BaseDimensionsBuilder<Datum, TOrdinalValue> {
47
- /**
48
- * REQUIRED. Specifies how values derived from `Datum` (of type `number`) set the x domain of the chart, and how those values are displayed.
49
- *
50
- * @param x - A function that specifies how the quantitative values that are mapped to the x dimension will be used in the chart.
51
- */
52
- x(x: (x: NumberChartPositionDimensionBuilder<Datum>) => void): this {
53
- this.initQuantitativeDimensionBuilder();
54
- x(this._quantitativeDimensionBuilder);
55
- return this;
56
- }
57
-
58
- /**
59
- * REQUIRED. Specifies how values derived from `Datum` (may be type `string`, `number`, or `Date`, though typically `string`) set the y domain of the chart, and how those values are displayed.
60
- *
61
- * @param y - A function that specifies how ordinal/categorical values that are mapped to the y dimension will be used in the chart.
62
- */
63
- y(
64
- y: (y: OrdinalChartPositionDimensionBuilder<Datum, TOrdinalValue>) => void
65
- ): this {
66
- this.initOrdinalDimensionBuilder();
67
- y(this._ordinalDimensionBuilder);
68
- return this;
69
- }
70
- }
71
-
72
- export class VerticalBarsDimensionsBuilder<
73
- Datum,
74
- TOrdinalValue extends DataValue,
75
- > extends BaseDimensionsBuilder<Datum, TOrdinalValue> {
76
- /**
77
- * REQUIRED. Specifies how values derived from `Datum` (may be type `string`, `number`, or `Date`, though typically `string`) set the x domain of the chart, and how those values are displayed.
78
- *
79
- * @param x - A function that specifies how ordinal/categorical values that are mapped to the x dimension will be used in the chart.
80
- */
81
- x(
82
- x: (x: OrdinalChartPositionDimensionBuilder<Datum, TOrdinalValue>) => void
83
- ): this {
84
- this.initOrdinalDimensionBuilder();
85
- x(this._ordinalDimensionBuilder);
86
- return this;
87
- }
88
-
89
- /**
90
- * REQUIRED. Specifies how values derived from `Datum` (of type `number`) set the y domain of the chart, and how those values are displayed.
91
- *
92
- * @param y - A function that specifies how the quantitative values that are mapped to the y dimension will be used in the chart.
93
- */
94
- y(y: (y: NumberChartPositionDimensionBuilder<Datum>) => void): this {
95
- this.initQuantitativeDimensionBuilder();
96
- y(this._quantitativeDimensionBuilder);
97
- return this;
98
- }
99
- }
100
-
101
- /**
102
- * Builds a configuration object for a BarsComponent.
103
- *
104
- * Must be added to a providers array in or above the component that consumes it if it is injected via the constructor. (e.g. `providers: [VicBarsConfigBuilder]` in the component decorator)
105
- *
106
- * The first generic parameter, Datum, is the type of the data that will be used to create the bars.
107
- *
108
- * The second generic parameter, TOrdinalValue, is the type of the ordinal data that will be used to position the bars.
109
- */
110
- @Injectable()
111
- export class VicBarsConfigBuilder<
112
- Datum,
113
- OrdinalDomain extends DataValue,
114
- > extends PrimaryMarksBuilder<Datum> {
115
- protected _customFills: FillDefinition<Datum>[];
116
- protected dimensions: BarsDimensions;
117
- protected _orientation: 'horizontal' | 'vertical';
118
- protected backgroundsBuilder: BarsBackgroundsBuilder;
119
- protected colorDimensionBuilder: OrdinalVisualValueDimensionBuilder<
120
- Datum,
121
- string,
122
- string
123
- >;
124
- protected labelsBuilder: BarsLabelsBuilder<Datum>;
125
- protected ordinalDimensionBuilder: OrdinalChartPositionDimensionBuilder<
126
- Datum,
127
- OrdinalDomain
128
- >;
129
- protected quantitativeDimensionBuilder: NumberChartPositionDimensionBuilder<Datum>;
130
-
131
- constructor() {
132
- super();
133
- }
134
-
135
- /**
136
- * OPTIONAL. Specifies properties of bars to be drawn behind the bars that represent data values. The background bars span the full width of the chart.
137
- *
138
- * @param backgrounds - A function that specifies the color of background bars and whether they respond to events, or `null` to unset the backgrounds function.
139
- *
140
- * If called with no arguments, the default background will be `whitesmoke` and events will be `false`.
141
- *
142
- * If not called, no background bars will be created.
143
- */
144
- backgrounds(backgrounds: (backgrounds: BarsBackgroundsBuilder) => void): this;
145
- backgrounds(): this;
146
- backgrounds(backgrounds: null): this;
147
- backgrounds(
148
- backgrounds: ((backgrounds: BarsBackgroundsBuilder) => void) | null | void
149
- ): this {
150
- if (backgrounds === null) {
151
- this.backgroundsBuilder = undefined;
152
- return this;
153
- }
154
- this.backgroundsBuilder = new BarsBackgroundsBuilder();
155
- if (backgrounds) {
156
- backgrounds?.(this.backgroundsBuilder);
157
- }
158
- return this;
159
- }
160
-
161
- /**
162
- * OPTIONAL. Specifies how values derived from `Datum` (of type `string`) set the color of the bars, and how those values are displayed.
163
- *
164
- * @param color - A function that specifies how values derived from `Datum` will be used to set the color of the bars, or null to unset the color., or null to unset the color function.
165
- *
166
- * If not called, all bars will be colored with the first color in `d3.schemeTableau10`, the default `range` color scale.
167
- */
168
- color(
169
- color: (
170
- color: OrdinalVisualValueDimensionBuilder<Datum, string, string>
171
- ) => void
172
- ): this;
173
- color(color: null): this;
174
- color(
175
- color:
176
- | ((
177
- color: OrdinalVisualValueDimensionBuilder<Datum, string, string>
178
- ) => void)
179
- | null
180
- ): this {
181
- if (color === null) {
182
- this.colorDimensionBuilder = undefined;
183
- return this;
184
- }
185
- this.initColorDimensionBuilder();
186
- color?.(this.colorDimensionBuilder);
187
- return this;
188
- }
189
-
190
- private initColorDimensionBuilder() {
191
- this.colorDimensionBuilder = new OrdinalVisualValueDimensionBuilder();
192
- }
193
-
194
- /**
195
- * OPTIONAL. Determines custom fills for specified bars. Intended to be used with a user-provided fill in <defs> (provided in html) whose `id` is referenced here. The `shouldApply` function is used to determine whether the fill should be applied to a given datum.
196
- *
197
- * @param values - An array of custom fills ({ defId: string; shouldApply: (d: Datum) => boolean;}[]), or `null` to unset the custom fills.
198
- *
199
- * This will override any fill set by the `color` dimension.
200
- */
201
- customFills(values: FillDefinition<Datum>[] | null): this {
202
- if (values === null) {
203
- this._customFills = undefined;
204
- return this;
205
- }
206
- this._customFills = values;
207
- return this;
208
- }
209
-
210
- /**
211
- * REQUIRED FOR HORIZONTAL BAR CHART.
212
- *
213
- * @param bars - A function that specifies properties for the horizontal bars, or `null` to not set the horizontal orientation.
214
- */
215
- horizontal(
216
- bars: (bars: HorizontalBarsDimensionsBuilder<Datum, OrdinalDomain>) => void
217
- ): this;
218
- horizontal(bars: null): this;
219
- horizontal(
220
- bars:
221
- | ((bars: HorizontalBarsDimensionsBuilder<Datum, OrdinalDomain>) => void)
222
- | null
223
- ): this {
224
- // Do not reset anything if null is passed, as vertical will set properties if no horizontal is provided.
225
- // allow for
226
- // .horizontal(bars => condition ? bars.stuff() : null)
227
- // .vertical(bars => !condition ? bars.stuff() : null)
228
- if (bars === null) return this;
229
- this._orientation = 'horizontal';
230
- this.dimensions = HORIZONTAL_BARS_DIMENSIONS;
231
- const builder = new HorizontalBarsDimensionsBuilder<Datum, OrdinalDomain>();
232
- bars(builder);
233
- this.ordinalDimensionBuilder = builder.ordinalDimensionBuilder;
234
- this.quantitativeDimensionBuilder = builder.quantitativeDimensionBuilder;
235
- return this;
236
- }
237
-
238
- /**
239
- * OPTIONAL. Specifies properties of labels to be rendered at the end of bars, typically used to show bar values.
240
- *
241
- * @param labels - A function that specifies properties for the labels, or `null` to unset the labels.
242
- *
243
- * If not called, no labels will be created.
244
- */
245
- labels(labels: (labels: BarsLabelsBuilder<Datum>) => void): this;
246
- labels(labels: null): this;
247
- labels(labels: ((labels: BarsLabelsBuilder<Datum>) => void) | null): this {
248
- if (labels === null) {
249
- this.labelsBuilder = undefined;
250
- return this;
251
- }
252
- this.labelsBuilder = new BarsLabelsBuilder<Datum>();
253
- labels?.(this.labelsBuilder);
254
- return this;
255
- }
256
-
257
- /**
258
- * REQUIRED FOR VERTICAL BAR CHART.
259
- *
260
- * @param bars - A function that specifies properties for the vertical bars, or `null` to not set the vertical orientation.
261
- */
262
- vertical(
263
- bars: (bars: VerticalBarsDimensionsBuilder<Datum, OrdinalDomain>) => void
264
- ): this;
265
- vertical(bars: null): this;
266
- vertical(
267
- bars:
268
- | ((bars: VerticalBarsDimensionsBuilder<Datum, OrdinalDomain>) => void)
269
- | null
270
- ): this {
271
- if (bars === null) return this;
272
- this._orientation = 'vertical';
273
- this.dimensions = VERTICAL_BARS_DIMENSIONS;
274
- const builder = new VerticalBarsDimensionsBuilder<Datum, OrdinalDomain>();
275
- bars(builder);
276
- this.ordinalDimensionBuilder = builder.ordinalDimensionBuilder;
277
- this.quantitativeDimensionBuilder = builder.quantitativeDimensionBuilder;
278
- return this;
279
- }
280
-
281
- /**
282
- * REQUIRED. Validates and builds the configuration object for the bars that can be passed to BarsComponent.
283
- *
284
- * The user must call this at the end of the chain of methods to build the configuration object.
285
- */
286
- getConfig(): BarsConfig<Datum, OrdinalDomain> {
287
- this.validateBuilder('Bars');
288
- return new BarsConfig(this.dimensions, {
289
- marksClass: 'vic-bars',
290
- backgrounds: this.backgroundsBuilder?._build(),
291
- color: this.colorDimensionBuilder._build('Color'),
292
- customFills: this._customFills,
293
- data: this._data,
294
- datumClass: this._datumClass,
295
- labels: this.labelsBuilder?._build(),
296
- mixBlendMode: this._mixBlendMode,
297
- ordinal: this.ordinalDimensionBuilder._build(
298
- 'band',
299
- this.getOrdinalDimensionName()
300
- ),
301
- quantitative: this.quantitativeDimensionBuilder._build(
302
- this.getQuantitativeDimensionName()
303
- ),
304
- });
305
- }
306
-
307
- protected override validateBuilder(componentName: string): void {
308
- super.validateBuilder(componentName);
309
- if (!this.colorDimensionBuilder) {
310
- this.initColorDimensionBuilder();
311
- }
312
- if (!this._orientation) {
313
- // Technically we could make horizontal the default, but we want to make sure users are thinking about this.
314
- throw new Error(
315
- `${componentName} Builder: Orientation is required. Please use method 'horizontal' or 'vertical' to set orientation.`
316
- );
317
- }
318
- if (!this.ordinalDimensionBuilder) {
319
- // Note that the chart will still build if there is not ordinal dimension provided but it will not be full featured/anything we imagine users wanting, so we make this required.
320
- const dimension = this.getOrdinalDimensionName();
321
- throw new Error(
322
- `${componentName} Builder: ${dimension} dimension is required. Please use ${dimension.toLowerCase()} method to create dimension.`
323
- );
324
- }
325
- if (!this.quantitativeDimensionBuilder) {
326
- const dimension = this.getQuantitativeDimensionName();
327
- throw new Error(
328
- `${componentName} Builder: ${dimension} dimension is required. Please use ${dimension.toLowerCase()} method to create dimension.`
329
- );
330
- }
331
- }
332
-
333
- protected getOrdinalDimensionName(): string {
334
- return this._orientation === 'horizontal' ? 'Y' : 'X';
335
- }
336
-
337
- protected getQuantitativeDimensionName(): string {
338
- return this._orientation === 'horizontal' ? 'X' : 'Y';
339
- }
340
- }
@@ -1,132 +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 { OrdinalChartPositionDimension } from '../../data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position';
4
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
5
- import { VicBarsConfigBuilder } from './bars-builder';
6
- import { BarsConfig } from './bars-config';
7
-
8
- type Datum = { value: number; state: string };
9
- const data = [
10
- { value: 1, state: 'AL' },
11
- { value: 2, state: 'AK' },
12
- { value: 3, state: 'AZ' },
13
- { value: 4, state: 'CA' },
14
- { value: 5, state: 'CO' },
15
- { value: 6, state: 'CO' },
16
- ];
17
- function getNewConfig(): BarsConfig<Datum, string> {
18
- return new VicBarsConfigBuilder<Datum, string>()
19
- .data(data)
20
- .horizontal((bars) =>
21
- bars
22
- .x((dimension) => dimension.valueAccessor((d) => d.value))
23
- .y((dimension) => dimension.valueAccessor((d) => d.state))
24
- )
25
- .getConfig();
26
- }
27
-
28
- describe('BarsConfig', () => {
29
- let config: BarsConfig<Datum, string>;
30
-
31
- describe('init()', () => {
32
- beforeEach(() => {
33
- spyOn(BarsConfig.prototype as any, 'setDimensionPropertiesFromData');
34
- spyOn(BarsConfig.prototype as any, 'setValueIndices');
35
- spyOn(BarsConfig.prototype as any, 'setHasNegativeValues');
36
- spyOn(BarsConfig.prototype as any, 'setBarsKeyFunction');
37
- config = getNewConfig();
38
- });
39
- it('calls setDimensionPropertiesFromData once', () => {
40
- expect(
41
- (config as any).setDimensionPropertiesFromData
42
- ).toHaveBeenCalledTimes(1);
43
- });
44
- it('calls setValueIndices once', () => {
45
- expect((config as any).setValueIndices).toHaveBeenCalledTimes(1);
46
- });
47
- it('calls setHasNegativeValues once', () => {
48
- expect((config as any).setHasNegativeValues).toHaveBeenCalledTimes(1);
49
- });
50
- it('calls setBarsKeyFunction once', () => {
51
- expect((config as any).setBarsKeyFunction).toHaveBeenCalledTimes(1);
52
- });
53
- });
54
-
55
- describe('setDimensionPropertiesFromData()', () => {
56
- beforeEach(() => {
57
- spyOn(BarsConfig.prototype as any, 'initPropertiesFromData');
58
- spyOn(
59
- NumberChartPositionDimension.prototype as any,
60
- 'setPropertiesFromData'
61
- );
62
- spyOn(
63
- OrdinalChartPositionDimension.prototype as any,
64
- 'setPropertiesFromData'
65
- );
66
- spyOn(
67
- OrdinalVisualValueDimension.prototype as any,
68
- 'setPropertiesFromData'
69
- );
70
- config = getNewConfig();
71
- (config as any).setDimensionPropertiesFromData();
72
- });
73
- it('calls quantitative.setPropertiesFromData once', () => {
74
- expect(
75
- config.quantitative.setPropertiesFromData
76
- ).toHaveBeenCalledOnceWith(data);
77
- });
78
- it('calls ordinal.setPropertiesFromData once', () => {
79
- expect(config.ordinal.setPropertiesFromData).toHaveBeenCalledOnceWith(
80
- data,
81
- true
82
- );
83
- });
84
- it('calls categorical.setPropertiesFromData once', () => {
85
- expect(config.color.setPropertiesFromData).toHaveBeenCalledOnceWith(data);
86
- });
87
- });
88
-
89
- describe('setValueIndices()', () => {
90
- beforeEach(() => {
91
- spyOn(BarsConfig.prototype as any, 'initPropertiesFromData');
92
- });
93
- it('returns the value indices of datums with unique ordinal values', () => {
94
- config = getNewConfig();
95
- (config as any).setDimensionPropertiesFromData();
96
- (config as any).setValueIndices();
97
- expect(config.valueIndices).toEqual([0, 1, 2, 3, 4]);
98
- });
99
- it('sets valueIndices to the correct array when ordinal domain is limited by user', () => {
100
- config = new VicBarsConfigBuilder<Datum, string>()
101
- .data(data)
102
- .horizontal((bars) =>
103
- bars
104
- .x((dimension) => dimension.valueAccessor((d) => d.value))
105
- .y((dimension) =>
106
- dimension.valueAccessor((d) => d.state).domain(['AL', 'AZ', 'CA'])
107
- )
108
- )
109
- .getConfig();
110
- (config as any).setDimensionPropertiesFromData();
111
- (config as any).setValueIndices();
112
- expect(config.valueIndices).toEqual([0, 2, 3]);
113
- });
114
- });
115
-
116
- describe('setHasNegativeValues()', () => {
117
- beforeEach(() => {
118
- spyOn(BarsConfig.prototype as any, 'initPropertiesFromData');
119
- config = getNewConfig();
120
- });
121
- it('returns false if all values are positive', () => {
122
- config.quantitative.values = [1, 2, 3, 4, 5];
123
- (config as any).setHasNegativeValues();
124
- expect(config.hasNegativeValues).toBeFalse();
125
- });
126
- it('returns true if any values are negative', () => {
127
- config.quantitative.values = [1, 2, -3, 4, 5];
128
- (config as any).setHasNegativeValues();
129
- expect(config.hasNegativeValues).toBeTrue();
130
- });
131
- });
132
- });
@@ -1,70 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { min, range } from 'd3';
3
- import { DataValue } from '../../core/types/values';
4
- import { FillDefinition } from '../../data-dimensions';
5
- import { NumberChartPositionDimension } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position';
6
- import { OrdinalChartPositionDimension } from '../../data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position';
7
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
8
- import { XyPrimaryMarksConfig } from '../../marks/xy-marks/xy-primary-marks/xy-primary-marks-config';
9
- import { BarsBackgrounds } from './backgrounds/bars-backgrounds';
10
- import { BarsDimensions } from './bars-dimensions';
11
- import { BarsOptions } from './bars-options';
12
- import { BarsLabels } from './labels/bars-labels';
13
-
14
- export class BarsConfig<Datum, OrdinalDomain extends DataValue>
15
- extends XyPrimaryMarksConfig<Datum>
16
- implements BarsOptions<Datum, OrdinalDomain>
17
- {
18
- barsKeyFunction: (i: number) => string;
19
- readonly backgrounds: BarsBackgrounds;
20
- readonly color: OrdinalVisualValueDimension<Datum, string, string>;
21
- readonly customFills: FillDefinition<Datum>[];
22
- readonly dimensions: BarsDimensions;
23
- hasNegativeValues: boolean;
24
- readonly labels: BarsLabels<Datum>;
25
- readonly ordinal: OrdinalChartPositionDimension<Datum, OrdinalDomain>;
26
- readonly quantitative: NumberChartPositionDimension<Datum>;
27
-
28
- constructor(
29
- dimensions: BarsDimensions,
30
- options: BarsOptions<Datum, OrdinalDomain>
31
- ) {
32
- super();
33
- safeAssign(this, options);
34
- this.dimensions = dimensions;
35
- this.initPropertiesFromData();
36
- }
37
-
38
- protected initPropertiesFromData(): void {
39
- this.setDimensionPropertiesFromData();
40
- this.setValueIndices();
41
- this.setHasNegativeValues();
42
- this.setBarsKeyFunction();
43
- }
44
-
45
- protected setDimensionPropertiesFromData(): void {
46
- this.quantitative.setPropertiesFromData(this.data);
47
- this.ordinal.setPropertiesFromData(this.data, this.dimensions.isHorizontal);
48
- this.color.setPropertiesFromData(this.data);
49
- }
50
-
51
- protected setValueIndices(): void {
52
- this.valueIndices = range(this.data.length).filter((i) => {
53
- if (!this.ordinal.domainIncludes(this.ordinal.values[i])) {
54
- return false;
55
- } else {
56
- const ordinalValue = this.ordinal.values[i];
57
- const firstIndex = this.ordinal.values.indexOf(ordinalValue);
58
- return i === firstIndex;
59
- }
60
- });
61
- }
62
-
63
- protected setHasNegativeValues(): void {
64
- this.hasNegativeValues = min(this.quantitative.values) < 0;
65
- }
66
-
67
- protected setBarsKeyFunction(): void {
68
- this.barsKeyFunction = (i: number): string => `${this.ordinal.values[i]}`;
69
- }
70
- }
@@ -1,29 +0,0 @@
1
- export interface BarsDimensions {
2
- x: 'ordinal' | 'quantitative';
3
- y: 'ordinal' | 'quantitative';
4
- ordinal: 'x' | 'y';
5
- quantitative: 'x' | 'y';
6
- quantitativeDimension: 'width' | 'height';
7
- isHorizontal: boolean;
8
- isVertical: boolean;
9
- }
10
-
11
- export const HORIZONTAL_BARS_DIMENSIONS: BarsDimensions = {
12
- x: 'quantitative',
13
- y: 'ordinal',
14
- ordinal: 'y',
15
- quantitative: 'x',
16
- quantitativeDimension: 'width',
17
- isHorizontal: true,
18
- isVertical: false,
19
- };
20
-
21
- export const VERTICAL_BARS_DIMENSIONS: BarsDimensions = {
22
- x: 'ordinal',
23
- y: 'quantitative',
24
- ordinal: 'x',
25
- quantitative: 'y',
26
- quantitativeDimension: 'height',
27
- isHorizontal: false,
28
- isVertical: true,
29
- };
@@ -1,20 +0,0 @@
1
- import { DataValue } from '../../core/types/values';
2
- import { FillDefinition } from '../../data-dimensions';
3
- import { NumberChartPositionDimension } from '../../data-dimensions/continuous-quantitative/number-chart-position/number-chart-position';
4
- import { OrdinalChartPositionDimension } from '../../data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position';
5
- import { OrdinalVisualValueDimension } from '../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
6
- import { DataMarksOptions } from '../../marks/config/marks-options';
7
- import { BarsBackgrounds } from './backgrounds/bars-backgrounds';
8
- import { BarsLabels } from './labels/bars-labels';
9
-
10
- export interface BarsOptions<
11
- Datum,
12
- OrdinalDomain extends DataValue,
13
- > extends DataMarksOptions<Datum> {
14
- backgrounds: BarsBackgrounds;
15
- color: OrdinalVisualValueDimension<Datum, string, string>;
16
- customFills: FillDefinition<Datum>[];
17
- ordinal: OrdinalChartPositionDimension<Datum, OrdinalDomain>;
18
- quantitative: NumberChartPositionDimension<Datum>;
19
- labels: BarsLabels<Datum>;
20
- }