@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,3 +0,0 @@
1
- export interface RoundUpToIntervalDomainPaddingOptions {
2
- interval: (maxValue: number) => number;
3
- }
@@ -1,27 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { ValueUtilities } from '../../../../../core/utilities/values';
3
- import {
4
- DomainPadding,
5
- DomainPaddingType,
6
- PaddedDomainArguments,
7
- } from '../domain-padding';
8
- import { RoundUpToIntervalDomainPaddingOptions } from './round-to-interval-options';
9
-
10
- export class RoundUpToIntervalDomainPadding extends DomainPadding {
11
- readonly type: DomainPaddingType.roundInterval;
12
- readonly interval: (maxValue: number) => number;
13
-
14
- constructor(options: RoundUpToIntervalDomainPaddingOptions) {
15
- super();
16
- safeAssign(this, options);
17
- this.type = DomainPaddingType.roundInterval;
18
- }
19
-
20
- getPaddedValue(args: PaddedDomainArguments): number {
21
- return ValueUtilities.getValueRoundedToInterval(
22
- args.value,
23
- this.interval(args.value),
24
- args.valueType
25
- );
26
- }
27
- }
@@ -1,3 +0,0 @@
1
- export interface RoundUpToSigFigDomainPaddingOptions {
2
- sigFigures: (d: number) => number;
3
- }
@@ -1,30 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { ValueUtilities } from '../../../../../core/utilities/values';
3
- import {
4
- DomainPadding,
5
- DomainPaddingType,
6
- PaddedDomainArguments,
7
- } from '../domain-padding';
8
- import { RoundUpToSigFigDomainPaddingOptions } from './round-to-sig-fig-options';
9
-
10
- export class RoundUpToSigFigDomainPadding
11
- extends DomainPadding
12
- implements RoundUpToSigFigDomainPaddingOptions
13
- {
14
- readonly sigFigures: (d: number) => number;
15
- readonly type: DomainPaddingType.roundUp;
16
-
17
- constructor(options: RoundUpToSigFigDomainPaddingOptions) {
18
- super();
19
- safeAssign(this, options);
20
- this.type = DomainPaddingType.roundUp;
21
- }
22
-
23
- getPaddedValue(args: PaddedDomainArguments): number {
24
- return ValueUtilities.getValueRoundedToNSignificantFigures(
25
- args.value,
26
- this.sigFigures(args.value),
27
- args.valueType
28
- );
29
- }
30
- }
@@ -1,183 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { ScaleContinuousNumeric, scaleLinear } from 'd3';
3
- import { DataDimensionBuilder } from '../../dimension-builder';
4
- import { ConcreteDomainPadding } from './domain-padding/concrete-domain-padding';
5
- import { PercentOverDomainPadding } from './domain-padding/percent-over/percent-over';
6
- import { PixelDomainPadding } from './domain-padding/pixel/pixel';
7
- import { RoundUpToIntervalDomainPadding } from './domain-padding/round-to-interval/round-to-interval';
8
- import { RoundUpToSigFigDomainPadding } from './domain-padding/round-to-sig-fig/round-to-sig-fig';
9
- import { NumberChartPositionDimension } from './number-chart-position';
10
-
11
- const DEFAULT = {
12
- _includeZeroInDomain: true,
13
- _scaleFn: scaleLinear,
14
- };
15
-
16
- const DEFAULT_PADDING = {
17
- pixels: 40,
18
- percentOver: 0.1,
19
- roundInterval: () => 1,
20
- roundUp: () => 1,
21
- };
22
-
23
- export class NumberChartPositionDimensionBuilder<
24
- Datum,
25
- > extends DataDimensionBuilder<Datum, number> {
26
- private _domain: [number, number];
27
- private _formatSpecifier: string;
28
- private _includeZeroInDomain: boolean;
29
- private _domainPadding: ConcreteDomainPadding;
30
- private _scaleFn: (
31
- domain?: Iterable<number>,
32
- range?: Iterable<number>
33
- ) => ScaleContinuousNumeric<number, number>;
34
-
35
- constructor() {
36
- super();
37
- safeAssign(this, DEFAULT);
38
- }
39
-
40
- /**
41
- * OPTIONAL. Sets the domain of the scale.
42
- *
43
- * Should be in the form of [min, max].
44
- *
45
- * If not provided, the domain will be determined by the data.
46
- */
47
- domain(domain: [number, number]): this;
48
- domain(domain: null): this;
49
- domain(domain: [number, number] | null): this {
50
- if (domain === null) {
51
- this._domain = undefined;
52
- return this;
53
- }
54
- this._domain = domain;
55
- return this;
56
- }
57
-
58
- /**
59
- * OPTIONAL. Sets a format specifier that will be applied to the value of this dimension for display purposes.
60
- */
61
- formatSpecifier(formatSpecifier: string): this;
62
- formatSpecifier(formatSpecifier: null): this;
63
- formatSpecifier(formatSpecifier: string | null): this {
64
- if (formatSpecifier === null) {
65
- this._formatSpecifier = undefined;
66
- return this;
67
- }
68
- this._formatSpecifier = formatSpecifier;
69
- return this;
70
- }
71
-
72
- /**
73
- * OPTIONAL. Sets a boolean that indicates whether the domain of the dimension's scale should include zero.
74
- *
75
- * @default true
76
- */
77
- includeZeroInDomain(includeZeroInDomain: boolean): this {
78
- this._includeZeroInDomain = includeZeroInDomain;
79
- return this;
80
- }
81
-
82
- /**
83
- * OPTIONAL. Adds additional space between data values and the edge of a chart by increasing the max value of the quantitative domain.
84
- *
85
- * For example, if the domain is [0, 100] and the percent is 0.1, the new domain will be [0, 110].
86
- *
87
- * @default 0.1
88
- */
89
- domainPaddingPercentOver(
90
- percentOver: number = DEFAULT_PADDING.percentOver
91
- ): this {
92
- this._domainPadding = new PercentOverDomainPadding({
93
- percentOver,
94
- });
95
- return this;
96
- }
97
-
98
- /**
99
- * OPTIONAL. Adds additional space between data values and the edge of a chart by increasing the max value of the quantitative domain so that it exceeds its original value by the specified number of pixels.
100
- *
101
- * @default 40
102
- */
103
- domainPaddingPixels(numPixels: number = DEFAULT_PADDING.pixels): this {
104
- this._domainPadding = new PixelDomainPadding({ numPixels });
105
- return this;
106
- }
107
-
108
- /**
109
- * OPTIONAL. Adds additional space between data values and the edge of a chart by increasing the max value to a number that is rounded up to the specified interval.
110
- *
111
- * @default () => 1
112
- */
113
- domainPaddingRoundUpToInterval(
114
- interval: (d: number) => number = DEFAULT_PADDING.roundInterval
115
- ): this {
116
- this._domainPadding = new RoundUpToIntervalDomainPadding({
117
- interval,
118
- });
119
- return this;
120
- }
121
-
122
- /**
123
- * OPTIONAL. Adds additional space between data values and the edge of a chart by increasing the max value to a number that is rounded up to the specified number of significant figures.
124
- *
125
- * @default () => 1
126
- */
127
- domainPaddingRoundUpToSigFig(
128
- sigFigures: (d: number) => number = DEFAULT_PADDING.roundUp
129
- ): this {
130
- this._domainPadding = new RoundUpToSigFigDomainPadding({
131
- sigFigures,
132
- });
133
- return this;
134
- }
135
-
136
- /**
137
- * OPTIONAL. This is a D3 scale function that maps values from the dimension's domain to the dimension's range.
138
- *
139
- * @default d3.scaleLinear
140
- */
141
- scaleFn(scaleFn: null): this;
142
- scaleFn(
143
- scaleFn: (
144
- domain?: Iterable<number>,
145
- range?: Iterable<number>
146
- ) => ScaleContinuousNumeric<number, number>
147
- ): this;
148
- scaleFn(
149
- scaleFn: (
150
- domain?: Iterable<number>,
151
- range?: Iterable<number>
152
- ) => ScaleContinuousNumeric<number, number>
153
- ): this {
154
- if (scaleFn === null) {
155
- this._scaleFn = undefined;
156
- return this;
157
- }
158
- this._scaleFn = scaleFn;
159
- return this;
160
- }
161
-
162
- /**
163
- * @internal This method is not intended to be used by consumers of this library.
164
- *
165
- * @param dimensionName A user-intelligible name for the dimension being built. Used for error messages. Should be title cased.
166
- */
167
- _build(dimensionName: string): NumberChartPositionDimension<Datum> {
168
- this.validateBuilder(dimensionName);
169
- return new NumberChartPositionDimension({
170
- domain: this._domain,
171
- formatFunction: this._formatFunction,
172
- formatSpecifier: this._formatSpecifier,
173
- includeZeroInDomain: this._includeZeroInDomain,
174
- domainPadding: this._domainPadding,
175
- scaleFn: this._scaleFn,
176
- valueAccessor: this._valueAccessor,
177
- });
178
- }
179
-
180
- private validateBuilder(dimensionName: string): void {
181
- this.validateValueAccessor(dimensionName);
182
- }
183
- }
@@ -1,8 +0,0 @@
1
- import { NumberDimensionOptions } from '../number-dimension/number-dimension-options';
2
- import { ConcreteDomainPadding } from './domain-padding/concrete-domain-padding';
3
-
4
- export interface NumberChartPositionDimensionOptions<
5
- Datum,
6
- > extends NumberDimensionOptions<Datum, number> {
7
- domainPadding?: ConcreteDomainPadding;
8
- }
@@ -1,28 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { NumberChartPositionDimension } from './number-chart-position';
3
- import { NumberChartPositionDimensionBuilder } from './number-chart-position-builder';
4
-
5
- describe('NumberChartPositionDimension', () => {
6
- let dimension: NumberChartPositionDimension<number>;
7
- beforeEach(() => {
8
- dimension = new NumberChartPositionDimensionBuilder<number>()
9
- .valueAccessor((d) => d)
10
- ._build('Test');
11
- });
12
- describe('setPropertiesFromData', () => {
13
- beforeEach(() => {
14
- spyOn(dimension as any, 'setValues');
15
- spyOn(dimension as any, 'setDomain');
16
- });
17
- it('calls setValues once', () => {
18
- dimension.setPropertiesFromData([1, 2, 3, 4, 5]);
19
- expect((dimension as any).setValues).toHaveBeenCalledOnceWith([
20
- 1, 2, 3, 4, 5,
21
- ]);
22
- });
23
- it('calls setDomain once', () => {
24
- dimension.setPropertiesFromData([1, 2, 3, 4, 5]);
25
- expect((dimension as any).setDomain).toHaveBeenCalledTimes(1);
26
- });
27
- });
28
- });
@@ -1,62 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { ScaleContinuousNumeric } from 'd3';
3
- import { NumberDimension } from '../number-dimension/number-dimension';
4
- import { ConcreteDomainPadding } from './domain-padding/concrete-domain-padding';
5
- import { NumberChartPositionDimensionOptions } from './number-chart-position-options';
6
-
7
- /**
8
- * A dimension that transforms number values into a position on a chart.
9
- *
10
- * This dimension is used for the positional dimensions of a chart, such as x and y. The resultant scale will confirm to the ScaleContinuousNumeric interface from @types/d3. The range of the scale will be a dimension from the chart.
11
- *
12
- * The generic is the type of the data that will be passed to the dimension.
13
- *
14
- * TESTABLE FUNCTIONALITY
15
- *
16
- * - It extracts values for the dimension from data.
17
- * - tested in: bars.cy.ts, dots.cy.ts, lines.cy.ts, stacked-bars.cy.ts
18
- * - It sets the domain of the dimension.
19
- * - tested in: bars.cy.ts, dots.cy.ts, lines.cy.ts, stacked-bars.cy.ts
20
- * - It creates and returns a scale from a range and the a padded domain if domain padding is provided.
21
- * - tested in: quantitative-domain-padding.cy.ts
22
- * - It creates and returns a scale from a range and the regular domain if domain padding is not provided.
23
- * - tested in: bars.cy.ts, dots.cy.ts, lines.cy.ts, stacked-bars.cy.ts
24
- */
25
-
26
- export class NumberChartPositionDimension<Datum>
27
- extends NumberDimension<Datum>
28
- implements NumberChartPositionDimensionOptions<Datum>
29
- {
30
- readonly domainPadding?: ConcreteDomainPadding;
31
- readonly scaleFn: (
32
- domain?: Iterable<number>,
33
- range?: Iterable<number>
34
- ) => ScaleContinuousNumeric<number, number>;
35
-
36
- constructor(options: NumberChartPositionDimensionOptions<Datum>) {
37
- super('number');
38
- safeAssign(this, options);
39
- }
40
-
41
- setPropertiesFromData(data: Datum[]): void {
42
- this.setValues(data);
43
- this.setDomain();
44
- }
45
-
46
- getScaleFromRange(range: [number, number]) {
47
- const domain = this.domainPadding
48
- ? this.getPaddedQuantitativeDomain(range)
49
- : this.calculatedDomain;
50
- return this.scaleFn().domain(domain).range(range);
51
- }
52
-
53
- private getPaddedQuantitativeDomain(
54
- range: [number, number]
55
- ): [number, number] {
56
- return this.domainPadding.getPaddedDomain(
57
- this.calculatedDomain,
58
- this.scaleFn,
59
- range
60
- );
61
- }
62
- }
@@ -1,15 +0,0 @@
1
- import { ScaleContinuousNumeric } from 'd3';
2
- import { DataDimensionOptions } from '../../dimension-options';
3
-
4
- export interface NumberDimensionOptions<
5
- Datum,
6
- Range,
7
- > extends DataDimensionOptions<Datum, number> {
8
- domain: [number, number];
9
- formatSpecifier: string;
10
- includeZeroInDomain: boolean;
11
- scaleFn: (
12
- domain?: Iterable<number>,
13
- range?: Iterable<Range>
14
- ) => ScaleContinuousNumeric<Range, Range>;
15
- }
@@ -1,155 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- import { NumberDimension } from './number-dimension';
4
-
5
- class ConcreteNumberDimension<Datum> extends NumberDimension<Datum> {
6
- setPropertiesFromData(data: Datum[], ...args: any): void {
7
- return;
8
- }
9
- }
10
-
11
- describe('NumberDimension', () => {
12
- let dimension: ConcreteNumberDimension<number>;
13
- beforeEach(() => {
14
- dimension = new ConcreteNumberDimension<number>('number');
15
- });
16
-
17
- describe('setDomain', () => {
18
- let calcSpy: jasmine.Spy;
19
- beforeEach(() => {
20
- calcSpy = spyOn(dimension as any, 'getCalculatedDomain').and.returnValue([
21
- 10, 50,
22
- ]);
23
- spyOn(dimension as any, 'setDomainIncludesZero');
24
- });
25
- describe('user did not specify domain', () => {
26
- beforeEach(() => {
27
- dimension.values = [1, 2, 3, 4, 5];
28
- });
29
- describe('valuesOverride is defined', () => {
30
- beforeEach(() => {
31
- dimension.setDomain([20, 80]);
32
- });
33
- it('calls getCalculatedDomain once with correct value', () => {
34
- expect(
35
- (dimension as any).getCalculatedDomain
36
- ).toHaveBeenCalledOnceWith([20, 80]);
37
- });
38
- it('sets calculatedDomain to the return value of getCalculatedDomain', () => {
39
- expect((dimension as any).calculatedDomain).toEqual([10, 50]);
40
- });
41
- it('calls setDomainIncludesZero once', () => {
42
- expect(
43
- (dimension as any).setDomainIncludesZero
44
- ).toHaveBeenCalledTimes(1);
45
- });
46
- });
47
- describe('valuesOverride is not defined', () => {
48
- beforeEach(() => {
49
- dimension.setDomain();
50
- });
51
- it('calls getCalculatedDomain once with correct value', () => {
52
- expect(
53
- (dimension as any).getCalculatedDomain
54
- ).toHaveBeenCalledOnceWith([1, 5]);
55
- });
56
- it('sets calculatedDomain to the return value of getCalculatedDomain', () => {
57
- expect((dimension as any).calculatedDomain).toEqual([10, 50]);
58
- });
59
- it('calls setDomainIncludesZero once', () => {
60
- expect(
61
- (dimension as any).setDomainIncludesZero
62
- ).toHaveBeenCalledTimes(1);
63
- });
64
- });
65
- });
66
- describe('user specified domain', () => {
67
- describe('valuesOverride is defined', () => {
68
- beforeEach(() => {
69
- (dimension as any).domain = [5, 1];
70
- dimension.setDomain([20, 80]);
71
- });
72
- it('calls getCalculatedDomain once with correct value', () => {
73
- expect(
74
- (dimension as any).getCalculatedDomain
75
- ).toHaveBeenCalledOnceWith([5, 1]);
76
- });
77
- it('sets calculatedDomain to the return value of getCalculatedDomain', () => {
78
- expect((dimension as any).calculatedDomain).toEqual([10, 50]);
79
- });
80
- it('calls setDomainIncludesZero once', () => {
81
- expect(
82
- (dimension as any).setDomainIncludesZero
83
- ).toHaveBeenCalledTimes(1);
84
- });
85
- });
86
- describe('valuesOverride is not defined', () => {
87
- beforeEach(() => {
88
- (dimension as any).domain = [5, 1];
89
- dimension.setDomain();
90
- });
91
- it('calls getCalculatedDomain once with correct value', () => {
92
- expect(
93
- (dimension as any).getCalculatedDomain
94
- ).toHaveBeenCalledOnceWith([5, 1]);
95
- });
96
- it('sets calculatedDomain to the return value of getCalculatedDomain', () => {
97
- expect((dimension as any).calculatedDomain).toEqual([10, 50]);
98
- });
99
- it('calls setDomainIncludesZero once', () => {
100
- expect(
101
- (dimension as any).setDomainIncludesZero
102
- ).toHaveBeenCalledTimes(1);
103
- });
104
- });
105
- });
106
- });
107
-
108
- describe('getCalculatedDomain', () => {
109
- describe('includeZeroInDomain is true', () => {
110
- beforeEach(() => {
111
- (dimension as any).includeZeroInDomain = true;
112
- });
113
- it('returns a domain that includes zero, case: both values are positive', () => {
114
- const result = (dimension as any).getCalculatedDomain([1, 5]);
115
- expect(result).toEqual([0, 5]);
116
- });
117
- it('returns a domain that includes zero, case: both values are negative', () => {
118
- const result = (dimension as any).getCalculatedDomain([-5, -1]);
119
- expect(result).toEqual([-5, 0]);
120
- });
121
- it('returns a domain that includes zero, case: one value is negative and one is positive', () => {
122
- const result = (dimension as any).getCalculatedDomain([-5, 5]);
123
- expect(result).toEqual([-5, 5]);
124
- });
125
- });
126
- it('returns the input domain if includeZeroInDomain is false', () => {
127
- (dimension as any).includeZeroInDomain = false;
128
- const result = (dimension as any).getCalculatedDomain([20, 80]);
129
- expect(result).toEqual([20, 80]);
130
- });
131
- });
132
-
133
- describe('setDomainIncludesZero', () => {
134
- it('sets domainIncludesZero to true if zero is in the domain', () => {
135
- (dimension as any).calculatedDomain = [0, 5];
136
- (dimension as any).setDomainIncludesZero();
137
- expect((dimension as any).domainIncludesZero).toBeTrue();
138
- });
139
- it('sets domainIncludesZero to true if zero is in the domain', () => {
140
- (dimension as any).calculatedDomain = [-5, 5];
141
- (dimension as any).setDomainIncludesZero();
142
- expect((dimension as any).domainIncludesZero).toBeTrue();
143
- });
144
- it('sets domainIncludesZero to true if zero is in the domain', () => {
145
- (dimension as any).calculatedDomain = [-5, 0];
146
- (dimension as any).setDomainIncludesZero();
147
- expect((dimension as any).domainIncludesZero).toBeTrue();
148
- });
149
- it('sets domainIncludesZero to false if zero is not in the domain', () => {
150
- (dimension as any).calculatedDomain = [-5, -1];
151
- (dimension as any).setDomainIncludesZero();
152
- expect((dimension as any).domainIncludesZero).toBeFalse();
153
- });
154
- });
155
- });
@@ -1,57 +0,0 @@
1
- import { max, min } from 'd3';
2
- import { isNumber } from '../../../core/utilities/type-guards';
3
- import { DataDimension } from '../../dimension';
4
-
5
- /**
6
- * An abstract dimension that for dimensions whose input values are numbers. It assumes that the domain is two numbers.
7
- *
8
- * The generic is the type of the data that will be passed to the dimension.
9
- *
10
- * TESTABLE FUNCTIONALITY
11
- *
12
- * - The domain will be the user=provided domain if the user provides a domain.
13
- * - tested in: number-dimension.spec.ts
14
- * - The domain will be [min, max] of values if the user does not provide a domain.
15
- * - tested in: number-dimension.spec.ts
16
- * - The domain will include 0 if includeZeroInDomain is true.
17
- * - tested in: number-dimension.spec.ts
18
- * - domainIncludesZero will be true if 0 is in the domain.
19
- * - tested in: number-dimension.spec.ts
20
- */
21
- export abstract class NumberDimension<Datum> extends DataDimension<
22
- Datum,
23
- number
24
- > {
25
- protected calculatedDomain: [number, number];
26
- readonly domain: [number, number];
27
- domainIncludesZero: boolean;
28
- readonly formatSpecifier: string;
29
- readonly includeZeroInDomain: boolean;
30
-
31
- setDomain(valuesOverride?: [number, number]) {
32
- const extents: [number, number] =
33
- this.domain === undefined
34
- ? valuesOverride || [min(this.values), max(this.values)]
35
- : this.domain;
36
- this.calculatedDomain = this.getCalculatedDomain(extents);
37
- this.setDomainIncludesZero();
38
- }
39
-
40
- protected getCalculatedDomain(domain: [number, number]): [number, number] {
41
- return this.includeZeroInDomain
42
- ? [min([domain[0], 0]), max([domain[1], 0])]
43
- : domain;
44
- }
45
-
46
- protected setDomainIncludesZero() {
47
- this.domainIncludesZero =
48
- this.calculatedDomain[0] <= 0 && 0 <= this.calculatedDomain[1];
49
- }
50
-
51
- // returns false if data is undefined or null or not a number
52
- // for some charts this may be fine
53
- // original intended use case: d3Line can only handle defined values
54
- isValidValue(x: unknown): boolean {
55
- return isNumber(x);
56
- }
57
- }