@mathstack/viz 2.0.3 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/fesm2022/mathstack-viz.mjs +11024 -0
  2. package/fesm2022/mathstack-viz.mjs.map +1 -0
  3. package/package.json +14 -5
  4. package/types/mathstack-viz.d.ts +5830 -0
  5. package/CHANGELOG.md +0 -0
  6. package/cypress/fixtures/example.json +0 -5
  7. package/cypress/fixtures/usMap.json +0 -13511
  8. package/cypress/support/commands.ts +0 -104
  9. package/cypress/support/component-index.html +0 -12
  10. package/cypress/support/component.ts +0 -33
  11. package/cypress.config.ts +0 -9
  12. package/karma.conf.js +0 -62
  13. package/ng-package.json +0 -8
  14. package/project.json +0 -97
  15. package/src/.eslintrc.json +0 -35
  16. package/src/.prettierrc +0 -31
  17. package/src/lib/axes/base/config/xy-axis-builder.ts +0 -68
  18. package/src/lib/axes/base/config/xy-axis-config.ts +0 -35
  19. package/src/lib/axes/base/config/xy-axis-options.ts +0 -11
  20. package/src/lib/axes/base/xy-axis-base.spec.ts +0 -114
  21. package/src/lib/axes/base/xy-axis-base.ts +0 -300
  22. package/src/lib/axes/base/xy-axis-domain-lines.cy.ts +0 -511
  23. package/src/lib/axes/baseline/axis-baseline-builder.ts +0 -77
  24. package/src/lib/axes/baseline/axis-baseline-options.ts +0 -4
  25. package/src/lib/axes/baseline/axis-baseline.ts +0 -11
  26. package/src/lib/axes/grid/grid-builder.ts +0 -74
  27. package/src/lib/axes/grid/grid-config.ts +0 -13
  28. package/src/lib/axes/grid/grid-options.ts +0 -7
  29. package/src/lib/axes/index.ts +0 -40
  30. package/src/lib/axes/label/axis-label-builder.ts +0 -140
  31. package/src/lib/axes/label/axis-label-options.ts +0 -12
  32. package/src/lib/axes/label/axis-label.ts +0 -18
  33. package/src/lib/axes/label/axis-labels.cy.ts +0 -303
  34. package/src/lib/axes/ordinal/ordinal-axis-config.ts +0 -31
  35. package/src/lib/axes/ordinal/ordinal-axis.spec.ts +0 -30
  36. package/src/lib/axes/ordinal/ordinal-axis.ts +0 -26
  37. package/src/lib/axes/quantitative/quantitative-axis-config.ts +0 -39
  38. package/src/lib/axes/quantitative/quantitative-axis-ticks.cy.ts +0 -748
  39. package/src/lib/axes/quantitative/quantitative-axis.spec.ts +0 -537
  40. package/src/lib/axes/quantitative/quantitative-axis.ts +0 -191
  41. package/src/lib/axes/ticks/tick-wrap/tick-wrap-builder.ts +0 -141
  42. package/src/lib/axes/ticks/tick-wrap/tick-wrap-options.ts +0 -11
  43. package/src/lib/axes/ticks/tick-wrap/tick-wrap.cy.ts +0 -360
  44. package/src/lib/axes/ticks/tick-wrap/tick-wrap.ts +0 -21
  45. package/src/lib/axes/ticks/ticks-builder.ts +0 -370
  46. package/src/lib/axes/ticks/ticks-options.ts +0 -24
  47. package/src/lib/axes/ticks/ticks.ts +0 -33
  48. package/src/lib/axes/x/x-axis-config.ts +0 -48
  49. package/src/lib/axes/x/x-axis.spec.ts +0 -90
  50. package/src/lib/axes/x/x-axis.ts +0 -109
  51. package/src/lib/axes/x-ordinal/x-ordinal-axis-builder.ts +0 -75
  52. package/src/lib/axes/x-ordinal/x-ordinal-axis-config.ts +0 -27
  53. package/src/lib/axes/x-ordinal/x-ordinal-axis.component.ts +0 -33
  54. package/src/lib/axes/x-quantitative/x-quantitative-axis-builder.ts +0 -74
  55. package/src/lib/axes/x-quantitative/x-quantitative-axis-config.ts +0 -32
  56. package/src/lib/axes/x-quantitative/x-quantitative-axis.component.ts +0 -40
  57. package/src/lib/axes/xy-axis.module.ts +0 -20
  58. package/src/lib/axes/y/y-axis-config.ts +0 -47
  59. package/src/lib/axes/y/y-axis.spec.ts +0 -92
  60. package/src/lib/axes/y/y-axis.ts +0 -161
  61. package/src/lib/axes/y-ordinal/y-ordinal-axis-builder.ts +0 -76
  62. package/src/lib/axes/y-ordinal/y-ordinal-axis-config.ts +0 -29
  63. package/src/lib/axes/y-ordinal/y-ordinal-axis.component.ts +0 -33
  64. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-builder.ts +0 -74
  65. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis-config.ts +0 -34
  66. package/src/lib/axes/y-quantitative-axis/y-quantitative-axis.component.ts +0 -40
  67. package/src/lib/bars/bars.component.scss +0 -0
  68. package/src/lib/bars/bars.component.spec.ts +0 -1470
  69. package/src/lib/bars/bars.component.ts +0 -717
  70. package/src/lib/bars/bars.cy.ts +0 -829
  71. package/src/lib/bars/bars.module.ts +0 -9
  72. package/src/lib/bars/config/backgrounds/bars-backgrounds-builder.ts +0 -51
  73. package/src/lib/bars/config/backgrounds/bars-backgrounds-options.ts +0 -4
  74. package/src/lib/bars/config/backgrounds/bars-backgrounds.ts +0 -11
  75. package/src/lib/bars/config/bars-builder.ts +0 -340
  76. package/src/lib/bars/config/bars-config.spec.ts +0 -132
  77. package/src/lib/bars/config/bars-config.ts +0 -70
  78. package/src/lib/bars/config/bars-dimensions.ts +0 -29
  79. package/src/lib/bars/config/bars-options.ts +0 -20
  80. package/src/lib/bars/config/labels/bars-labels-builder.ts +0 -89
  81. package/src/lib/bars/config/labels/bars-labels-options.ts +0 -6
  82. package/src/lib/bars/config/labels/bars-labels.cy.ts +0 -781
  83. package/src/lib/bars/config/labels/bars-labels.ts +0 -13
  84. package/src/lib/bars/events/actions/bars-click-actions.ts +0 -23
  85. package/src/lib/bars/events/actions/bars-hover-actions.ts +0 -43
  86. package/src/lib/bars/events/actions/bars-hover-move-actions.ts +0 -21
  87. package/src/lib/bars/events/bars-events.directive.spec.ts +0 -186
  88. package/src/lib/bars/events/bars-events.directive.ts +0 -235
  89. package/src/lib/bars/events/bars-interaction-output.ts +0 -17
  90. package/src/lib/bars/events/bars-tooltip-positioner.ts +0 -24
  91. package/src/lib/bars/index.ts +0 -18
  92. package/src/lib/charts/chart/chart-scaling.cy.ts +0 -323
  93. package/src/lib/charts/chart/chart.component.html +0 -45
  94. package/src/lib/charts/chart/chart.component.scss +0 -37
  95. package/src/lib/charts/chart/chart.component.ts +0 -243
  96. package/src/lib/charts/chart/chart.token.ts +0 -4
  97. package/src/lib/charts/chart/chart.ts +0 -5
  98. package/src/lib/charts/chart/config/chart-builder.ts +0 -194
  99. package/src/lib/charts/chart/config/chart-config.ts +0 -21
  100. package/src/lib/charts/chart/config/chart-options.ts +0 -11
  101. package/src/lib/charts/chart.module.ts +0 -10
  102. package/src/lib/charts/index.ts +0 -9
  103. package/src/lib/charts/map-chart/map-chart.component.scss +0 -0
  104. package/src/lib/charts/map-chart/map-chart.component.spec.ts +0 -35
  105. package/src/lib/charts/map-chart/map-chart.component.ts +0 -61
  106. package/src/lib/charts/xy-chart/xy-chart.component.spec.ts +0 -34
  107. package/src/lib/charts/xy-chart/xy-chart.component.ts +0 -65
  108. package/src/lib/core/common-behaviors/constructor.ts +0 -7
  109. package/src/lib/core/index.ts +0 -11
  110. package/src/lib/core/pipes/resize-chart-height.pipe.spec.ts +0 -23
  111. package/src/lib/core/pipes/resize-chart-height.pipe.ts +0 -20
  112. package/src/lib/core/styles/_spacing.scss +0 -4
  113. package/src/lib/core/types/layout.ts +0 -28
  114. package/src/lib/core/types/scale.ts +0 -6
  115. package/src/lib/core/types/utility.ts +0 -11
  116. package/src/lib/core/types/values.ts +0 -10
  117. package/src/lib/core/utilities/colors.spec.ts +0 -57
  118. package/src/lib/core/utilities/colors.ts +0 -42
  119. package/src/lib/core/utilities/fill-utilities.spec.ts +0 -25
  120. package/src/lib/core/utilities/fill-utilities.ts +0 -21
  121. package/src/lib/core/utilities/type-guards.spec.ts +0 -55
  122. package/src/lib/core/utilities/type-guards.ts +0 -33
  123. package/src/lib/core/utilities/value-format.ts +0 -21
  124. package/src/lib/core/utilities/values.spec.ts +0 -954
  125. package/src/lib/core/utilities/values.ts +0 -189
  126. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-builder.ts +0 -105
  127. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position-options.ts +0 -24
  128. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.spec.ts +0 -66
  129. package/src/lib/data-dimensions/continuous-quantitative/date-chart-position/date-chart-position.ts +0 -72
  130. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/concrete-domain-padding.ts +0 -10
  131. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-padding.ts +0 -76
  132. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/domain-test-utility.ts +0 -130
  133. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over-options.ts +0 -3
  134. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/percent-over/percent-over.ts +0 -37
  135. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel-options.ts +0 -3
  136. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/pixel/pixel.ts +0 -73
  137. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/quantitative-domain-padding.cy.ts +0 -978
  138. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval-options.ts +0 -3
  139. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-interval/round-to-interval.ts +0 -27
  140. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig-options.ts +0 -3
  141. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/domain-padding/round-to-sig-fig/round-to-sig-fig.ts +0 -30
  142. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-builder.ts +0 -183
  143. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position-options.ts +0 -8
  144. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.spec.ts +0 -28
  145. package/src/lib/data-dimensions/continuous-quantitative/number-chart-position/number-chart-position.ts +0 -62
  146. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension-options.ts +0 -15
  147. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.spec.ts +0 -155
  148. package/src/lib/data-dimensions/continuous-quantitative/number-dimension/number-dimension.ts +0 -57
  149. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-builder.ts +0 -166
  150. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value-options.ts +0 -10
  151. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.spec.ts +0 -34
  152. package/src/lib/data-dimensions/continuous-quantitative/number-visual-value/number-visual-value.ts +0 -57
  153. package/src/lib/data-dimensions/dimension-builder.ts +0 -45
  154. package/src/lib/data-dimensions/dimension-options.ts +0 -12
  155. package/src/lib/data-dimensions/dimension.ts +0 -30
  156. package/src/lib/data-dimensions/index.ts +0 -31
  157. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-builder.ts +0 -122
  158. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position-options.ts +0 -12
  159. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.spec.ts +0 -83
  160. package/src/lib/data-dimensions/ordinal/ordinal-chart-position/ordinal-chart-position.ts +0 -101
  161. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder.ts +0 -108
  162. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-options.ts +0 -12
  163. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.cy.ts +0 -384
  164. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.spec.ts +0 -63
  165. package/src/lib/data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value.ts +0 -79
  166. package/src/lib/data-export/data-export-config.ts +0 -98
  167. package/src/lib/data-export/data-export.spec.ts +0 -33
  168. package/src/lib/data-export/data-export.ts +0 -87
  169. package/src/lib/data-export/index.ts +0 -2
  170. package/src/lib/dots/config/dots-builder.ts +0 -442
  171. package/src/lib/dots/config/dots-config.spec.ts +0 -123
  172. package/src/lib/dots/config/dots-config.ts +0 -81
  173. package/src/lib/dots/config/dots-options.ts +0 -32
  174. package/src/lib/dots/dots.component.scss +0 -0
  175. package/src/lib/dots/dots.component.spec.ts +0 -143
  176. package/src/lib/dots/dots.component.ts +0 -291
  177. package/src/lib/dots/dots.cy.ts +0 -594
  178. package/src/lib/dots/dots.module.ts +0 -9
  179. package/src/lib/dots/events/actions/dots-hover-actions.ts +0 -19
  180. package/src/lib/dots/events/actions/dots-hover-move-actions.ts +0 -38
  181. package/src/lib/dots/events/dots-events.directive.ts +0 -214
  182. package/src/lib/dots/events/dots-interaction-output.ts +0 -15
  183. package/src/lib/dots/events/dots-tooltip-positioner.ts +0 -24
  184. package/src/lib/dots/index.ts +0 -10
  185. package/src/lib/events/events.directive.ts +0 -184
  186. package/src/lib/events/events.types.ts +0 -57
  187. package/src/lib/events/index.ts +0 -4
  188. package/src/lib/events/interaction-output.ts +0 -34
  189. package/src/lib/events/tooltip-positioner.ts +0 -15
  190. package/src/lib/fill-definitions/fill-definitions.ts +0 -4
  191. package/src/lib/fill-definitions/index.ts +0 -1
  192. package/src/lib/geographies/config/geographies-builder.ts +0 -224
  193. package/src/lib/geographies/config/geographies-config.spec.ts +0 -100
  194. package/src/lib/geographies/config/geographies-config.ts +0 -81
  195. package/src/lib/geographies/config/geographies-options.ts +0 -37
  196. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-builder.ts +0 -212
  197. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer-options.ts +0 -26
  198. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.spec.ts +0 -119
  199. package/src/lib/geographies/config/layers/attribute-data-layer/attribute-data-layer.ts +0 -148
  200. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-builder.ts +0 -65
  201. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension-options.ts +0 -15
  202. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data/attribute-data-dimension.ts +0 -32
  203. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-enums.ts +0 -10
  204. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/attribute-data-bin-types.ts +0 -15
  205. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-builder.ts +0 -18
  206. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins-options.ts +0 -8
  207. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.spec.ts +0 -60
  208. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/calculated-bins/calculated-bins.ts +0 -34
  209. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-builder.ts +0 -46
  210. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-options.ts +0 -8
  211. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.cy.ts +0 -437
  212. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.spec.ts +0 -105
  213. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins.ts +0 -54
  214. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-builder.ts +0 -65
  215. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-options.ts +0 -9
  216. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.spec.ts +0 -82
  217. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins.ts +0 -81
  218. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks.cy.ts +0 -378
  219. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-builder.ts +0 -50
  220. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-options.ts +0 -8
  221. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.cy.ts +0 -362
  222. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.spec.ts +0 -72
  223. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins.ts +0 -56
  224. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-builder.ts +0 -60
  225. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-options.ts +0 -9
  226. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.cy.ts +0 -307
  227. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.spec.ts +0 -104
  228. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins.ts +0 -89
  229. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-builder.ts +0 -62
  230. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins-options.ts +0 -8
  231. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.cy.ts +0 -265
  232. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.spec.ts +0 -42
  233. package/src/lib/geographies/config/layers/attribute-data-layer/dimensions/no-bins/no-bins.ts +0 -42
  234. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-builder.ts +0 -116
  235. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer-options.ts +0 -20
  236. package/src/lib/geographies/config/layers/geographies-layer/geographies-layer.ts +0 -104
  237. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-builder.ts +0 -111
  238. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer-options.ts +0 -19
  239. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.spec.ts +0 -41
  240. package/src/lib/geographies/config/layers/geojson-properties-layer/geojson-properties-layer.ts +0 -67
  241. package/src/lib/geographies/config/layers/labels/geographies-labels-builder.ts +0 -269
  242. package/src/lib/geographies/config/layers/labels/geographies-labels-options.ts +0 -45
  243. package/src/lib/geographies/config/layers/labels/geographies-labels.ts +0 -38
  244. package/src/lib/geographies/events/actions/geographies-click-actions.ts +0 -21
  245. package/src/lib/geographies/events/actions/geographies-hover-actions.ts +0 -17
  246. package/src/lib/geographies/events/actions/geographies-hover-move-actions.ts +0 -19
  247. package/src/lib/geographies/events/geographies-events.directive.spec.ts +0 -225
  248. package/src/lib/geographies/events/geographies-events.directive.ts +0 -235
  249. package/src/lib/geographies/events/geographies-interaction-output.ts +0 -17
  250. package/src/lib/geographies/events/geographies-tooltip-positioner.ts +0 -23
  251. package/src/lib/geographies/geographies-feature.ts +0 -16
  252. package/src/lib/geographies/geographies.component.html +0 -1
  253. package/src/lib/geographies/geographies.component.scss +0 -0
  254. package/src/lib/geographies/geographies.component.spec.ts +0 -148
  255. package/src/lib/geographies/geographies.component.ts +0 -318
  256. package/src/lib/geographies/geographies.cy.ts +0 -640
  257. package/src/lib/geographies/geographies.module.ts +0 -9
  258. package/src/lib/geographies/index.ts +0 -32
  259. package/src/lib/grouped-bars/config/grouped-bars-builder.ts +0 -66
  260. package/src/lib/grouped-bars/config/grouped-bars-config.ts +0 -41
  261. package/src/lib/grouped-bars/config/grouped-bars-options.ts +0 -9
  262. package/src/lib/grouped-bars/events/grouped-bars-events.directive.ts +0 -221
  263. package/src/lib/grouped-bars/grouped-bars.component.scss +0 -0
  264. package/src/lib/grouped-bars/grouped-bars.component.spec.ts +0 -25
  265. package/src/lib/grouped-bars/grouped-bars.component.ts +0 -94
  266. package/src/lib/grouped-bars/grouped-bars.module.ts +0 -9
  267. package/src/lib/grouped-bars/index.ts +0 -10
  268. package/src/lib/image-download/image-download-config.ts +0 -57
  269. package/src/lib/image-download/image-download-enums.ts +0 -7
  270. package/src/lib/image-download/image-download-options.ts +0 -14
  271. package/src/lib/image-download/image-download.service.ts +0 -70
  272. package/src/lib/image-download/index.ts +0 -4
  273. package/src/lib/lines/config/area-fills/area-fills-builder.ts +0 -87
  274. package/src/lib/lines/config/area-fills/area-fills-options.ts +0 -8
  275. package/src/lib/lines/config/area-fills/area-fills.ts +0 -14
  276. package/src/lib/lines/config/lines-builder.ts +0 -242
  277. package/src/lib/lines/config/lines-config.spec.ts +0 -52
  278. package/src/lib/lines/config/lines-config.ts +0 -96
  279. package/src/lib/lines/config/lines-options.ts +0 -19
  280. package/src/lib/lines/config/stroke/lines-stroke-builder.ts +0 -135
  281. package/src/lib/lines/config/stroke/lines-stroke-options.ts +0 -6
  282. package/src/lib/lines/config/stroke/lines-stroke.ts +0 -15
  283. package/src/lib/lines/events/actions/lines-click-actions.ts +0 -17
  284. package/src/lib/lines/events/actions/lines-hover-move-actions.ts +0 -113
  285. package/src/lib/lines/events/actions/lines-marker-click-actions.ts +0 -29
  286. package/src/lib/lines/events/lines-events.directive.spec.ts +0 -152
  287. package/src/lib/lines/events/lines-events.directive.ts +0 -310
  288. package/src/lib/lines/events/lines-interaction-output.ts +0 -17
  289. package/src/lib/lines/events/lines-tooltip-positioner.ts +0 -24
  290. package/src/lib/lines/index.ts +0 -17
  291. package/src/lib/lines/lines.component.scss +0 -0
  292. package/src/lib/lines/lines.component.spec.ts +0 -95
  293. package/src/lib/lines/lines.component.ts +0 -425
  294. package/src/lib/lines/lines.cy.ts +0 -738
  295. package/src/lib/lines/lines.module.ts +0 -9
  296. package/src/lib/map-legend/continuous-legend/continuous-legend.component.html +0 -28
  297. package/src/lib/map-legend/continuous-legend/continuous-legend.component.scss +0 -76
  298. package/src/lib/map-legend/continuous-legend/continuous-legend.component.spec.ts +0 -61
  299. package/src/lib/map-legend/continuous-legend/continuous-legend.component.ts +0 -82
  300. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.html +0 -40
  301. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.scss +0 -141
  302. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.spec.ts +0 -75
  303. package/src/lib/map-legend/discontinuous-legend/discontinuous-legend.component.ts +0 -57
  304. package/src/lib/map-legend/index.ts +0 -2
  305. package/src/lib/map-legend/map-legend-base.spec.ts +0 -190
  306. package/src/lib/map-legend/map-legend-base.ts +0 -99
  307. package/src/lib/map-legend/map-legend.component.html +0 -24
  308. package/src/lib/map-legend/map-legend.component.scss +0 -0
  309. package/src/lib/map-legend/map-legend.component.spec.ts +0 -125
  310. package/src/lib/map-legend/map-legend.component.ts +0 -80
  311. package/src/lib/map-legend/map-legend.module.ts +0 -8
  312. package/src/lib/marks/aux-marks/aux-marks.ts +0 -18
  313. package/src/lib/marks/aux-marks/config/aux-marks-builder.ts +0 -25
  314. package/src/lib/marks/aux-marks/config/aux-marks-config.ts +0 -6
  315. package/src/lib/marks/config/marks-config.ts +0 -14
  316. package/src/lib/marks/config/marks-options.ts +0 -9
  317. package/src/lib/marks/index.ts +0 -15
  318. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.spec.ts +0 -74
  319. package/src/lib/marks/map-marks/map-aux-marks/map-aux-marks.ts +0 -40
  320. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.spec.ts +0 -79
  321. package/src/lib/marks/map-marks/map-primary-marks/map-primary-marks.ts +0 -63
  322. package/src/lib/marks/marks.ts +0 -39
  323. package/src/lib/marks/primary-marks/config/primary-marks-builder.ts +0 -75
  324. package/src/lib/marks/primary-marks/config/primary-marks-config.ts +0 -9
  325. package/src/lib/marks/primary-marks/primary-marks-base.spec.ts +0 -58
  326. package/src/lib/marks/primary-marks/primary-marks.ts +0 -43
  327. package/src/lib/marks/xy-marks/xy-aux-marks/xy-aux-marks.ts +0 -40
  328. package/src/lib/marks/xy-marks/xy-marks-config.ts +0 -5
  329. package/src/lib/marks/xy-marks/xy-marks.ts +0 -10
  330. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks-config.ts +0 -7
  331. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.spec.ts +0 -186
  332. package/src/lib/marks/xy-marks/xy-primary-marks/xy-primary-marks.ts +0 -72
  333. package/src/lib/point-markers/index.ts +0 -3
  334. package/src/lib/point-markers/point-markers-builder.ts +0 -93
  335. package/src/lib/point-markers/point-markers-options.ts +0 -6
  336. package/src/lib/point-markers/point-markers.ts +0 -13
  337. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-builder.ts +0 -162
  338. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels-options.ts +0 -17
  339. package/src/lib/quantitative-rules/config/labels/quantitative-rules-labels.ts +0 -26
  340. package/src/lib/quantitative-rules/config/quantitative-rules-builder.ts +0 -134
  341. package/src/lib/quantitative-rules/config/quantitative-rules-config.ts +0 -21
  342. package/src/lib/quantitative-rules/config/quantitative-rules-dimensions.ts +0 -20
  343. package/src/lib/quantitative-rules/config/quantitative-rules-options.ts +0 -13
  344. package/src/lib/quantitative-rules/index.ts +0 -6
  345. package/src/lib/quantitative-rules/quantitative-rules.component.scss +0 -3
  346. package/src/lib/quantitative-rules/quantitative-rules.component.spec.ts +0 -50
  347. package/src/lib/quantitative-rules/quantitative-rules.component.ts +0 -224
  348. package/src/lib/quantitative-rules/quantitative-rules.cy.ts +0 -549
  349. package/src/lib/quantitative-rules/quantitative-rules.module.ts +0 -8
  350. package/src/lib/stacked-area/config/stacked-area-builder.ts +0 -264
  351. package/src/lib/stacked-area/config/stacked-area-config.spec.ts +0 -107
  352. package/src/lib/stacked-area/config/stacked-area-config.ts +0 -109
  353. package/src/lib/stacked-area/config/stacked-area-options.ts +0 -28
  354. package/src/lib/stacked-area/events/actions/stacked-area-hover-move-actions.ts +0 -17
  355. package/src/lib/stacked-area/events/stacked-area-events.directive.spec.ts +0 -168
  356. package/src/lib/stacked-area/events/stacked-area-events.directive.ts +0 -272
  357. package/src/lib/stacked-area/events/stacked-area-interaction-output.ts +0 -33
  358. package/src/lib/stacked-area/events/stacked-area-tooltip-positioner.ts +0 -37
  359. package/src/lib/stacked-area/index.ts +0 -7
  360. package/src/lib/stacked-area/stacked-area.component.scss +0 -0
  361. package/src/lib/stacked-area/stacked-area.component.spec.ts +0 -41
  362. package/src/lib/stacked-area/stacked-area.component.ts +0 -241
  363. package/src/lib/stacked-area/stacked-area.module.ts +0 -9
  364. package/src/lib/stacked-bars/config/stacked-bars-builder.ts +0 -109
  365. package/src/lib/stacked-bars/config/stacked-bars-config.spec.ts +0 -122
  366. package/src/lib/stacked-bars/config/stacked-bars-config.ts +0 -79
  367. package/src/lib/stacked-bars/config/stacked-bars-options.ts +0 -16
  368. package/src/lib/stacked-bars/events/actions/stacked-bars-click-actions.ts +0 -23
  369. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-actions.ts +0 -22
  370. package/src/lib/stacked-bars/events/actions/stacked-bars-hover-move-actions.ts +0 -21
  371. package/src/lib/stacked-bars/events/stacked-bars-events.directive.spec.ts +0 -266
  372. package/src/lib/stacked-bars/events/stacked-bars-events.directive.ts +0 -240
  373. package/src/lib/stacked-bars/index.ts +0 -10
  374. package/src/lib/stacked-bars/stacked-bars.component.scss +0 -0
  375. package/src/lib/stacked-bars/stacked-bars.component.spec.ts +0 -25
  376. package/src/lib/stacked-bars/stacked-bars.component.ts +0 -158
  377. package/src/lib/stacked-bars/stacked-bars.module.ts +0 -9
  378. package/src/lib/stroke/base/stroke-base-options.ts +0 -7
  379. package/src/lib/stroke/base/stroke-base.ts +0 -9
  380. package/src/lib/stroke/index.ts +0 -5
  381. package/src/lib/stroke/stroke-builder.ts +0 -103
  382. package/src/lib/stroke/stroke-options.ts +0 -5
  383. package/src/lib/stroke/stroke.ts +0 -12
  384. package/src/lib/svg-text-wrap/index.ts +0 -3
  385. package/src/lib/svg-text-wrap/svg-text-wrap-builder.ts +0 -105
  386. package/src/lib/svg-text-wrap/svg-text-wrap-options.ts +0 -8
  387. package/src/lib/svg-text-wrap/svg-text-wrap.ts +0 -137
  388. package/src/lib/testing/data/continent-population-year-data.ts +0 -126
  389. package/src/lib/testing/data/country-area-continent.ts +0 -59
  390. package/src/lib/testing/data/state-population-income-year-data.ts +0 -123
  391. package/src/lib/testing/stubs/bars.component.stub.ts +0 -12
  392. package/src/lib/testing/stubs/chart.component.stub.ts +0 -6
  393. package/src/lib/testing/stubs/click.directive.stub.ts +0 -15
  394. package/src/lib/testing/stubs/core/destroy-ref.stub.ts +0 -9
  395. package/src/lib/testing/stubs/core/overlay-ref.stub.ts +0 -13
  396. package/src/lib/testing/stubs/core/overlay.stub.ts +0 -8
  397. package/src/lib/testing/stubs/event.directive.stub.ts +0 -10
  398. package/src/lib/testing/stubs/hover-move.directive.stub.ts +0 -17
  399. package/src/lib/testing/stubs/hover.directive.stub.ts +0 -14
  400. package/src/lib/testing/stubs/input-event.directive.stub.ts +0 -9
  401. package/src/lib/testing/stubs/lines.component.stub.ts +0 -13
  402. package/src/lib/testing/stubs/map-aux-marks.stub.ts +0 -10
  403. package/src/lib/testing/stubs/map-chart.component.stub.ts +0 -3
  404. package/src/lib/testing/stubs/map-legend-content.stub.ts +0 -16
  405. package/src/lib/testing/stubs/map-legend.component.stub.ts +0 -10
  406. package/src/lib/testing/stubs/map-primary-marks.stub.ts +0 -16
  407. package/src/lib/testing/stubs/ordinal-axis.stub.ts +0 -18
  408. package/src/lib/testing/stubs/primary-marks.stub.ts +0 -18
  409. package/src/lib/testing/stubs/quantitative-axis.stub.ts +0 -18
  410. package/src/lib/testing/stubs/services/main.service.stub.ts +0 -5
  411. package/src/lib/testing/stubs/services/utilities.service.stub.ts +0 -7
  412. package/src/lib/testing/stubs/stacked-area.component.stub.ts +0 -13
  413. package/src/lib/testing/stubs/x-axis.stub.ts +0 -10
  414. package/src/lib/testing/stubs/xy-axis.class.stub.ts +0 -20
  415. package/src/lib/testing/stubs/xy-axis.stub.ts +0 -44
  416. package/src/lib/testing/stubs/xy-chart.component.stub.ts +0 -5
  417. package/src/lib/testing/stubs/xy-data-marks.stub.ts +0 -15
  418. package/src/lib/testing/stubs/y-axis.stub.ts +0 -15
  419. package/src/lib/tooltips/config/tooltip.ts +0 -11
  420. package/src/lib/tooltips/html-tooltip/config/html-tooltip-builder.ts +0 -134
  421. package/src/lib/tooltips/html-tooltip/config/html-tooltip-config.ts +0 -21
  422. package/src/lib/tooltips/html-tooltip/config/html-tooltip-options.ts +0 -12
  423. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position-builder.ts +0 -191
  424. package/src/lib/tooltips/html-tooltip/config/position/tooltip-position.ts +0 -42
  425. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-builder.ts +0 -75
  426. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size-options.ts +0 -8
  427. package/src/lib/tooltips/html-tooltip/config/size/tooltip-size.ts +0 -15
  428. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.spec.ts +0 -537
  429. package/src/lib/tooltips/html-tooltip/html-tooltip.directive.ts +0 -210
  430. package/src/lib/tooltips/html-tooltip/html-tooltip.module.ts +0 -16
  431. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.html +0 -41
  432. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.scss +0 -63
  433. package/src/lib/tooltips/html-tooltip/tooltip-triangle/tooltip-triangle.component.ts +0 -19
  434. package/src/lib/tooltips/index.ts +0 -11
  435. package/src/lib/tooltips/svg-tooltip/config/svg-tooltip.ts +0 -5
  436. package/src/lib/xy-background/index.ts +0 -2
  437. package/src/lib/xy-background/xy-background.component.html +0 -10
  438. package/src/lib/xy-background/xy-background.component.scss +0 -0
  439. package/src/lib/xy-background/xy-background.component.spec.ts +0 -24
  440. package/src/lib/xy-background/xy-background.component.ts +0 -19
  441. package/src/lib/xy-background/xy-background.module.ts +0 -8
  442. package/src/public-api.ts +0 -26
  443. package/src/test.ts +0 -15
  444. package/tsconfig.doc.json +0 -4
  445. package/tsconfig.json +0 -20
  446. package/tsconfig.lib.json +0 -23
  447. package/tsconfig.lib.prod.json +0 -10
  448. package/tsconfig.spec.json +0 -10
@@ -1,640 +0,0 @@
1
- /* eslint-disable @angular-eslint/prefer-standalone */
2
- import { CommonModule } from '@angular/common';
3
- import { Component, Input } from '@angular/core';
4
- import {
5
- ChartConfig,
6
- DEFAULT_TOOLTIP_Y_OFFSET,
7
- EventAction,
8
- GeographiesConfig,
9
- GeographiesHost,
10
- GeographiesHoverEmitTooltipData,
11
- GeographiesInteractionOutput,
12
- HtmlTooltipConfig,
13
- VicChartConfigBuilder,
14
- VicChartModule,
15
- VicGeographiesConfigBuilder,
16
- VicGeographiesModule,
17
- VicHtmlTooltipConfigBuilder,
18
- VicHtmlTooltipModule,
19
- } from '@mathstack/viz';
20
- import 'cypress-real-events';
21
- import { ascending, extent, mean, scaleLinear } from 'd3';
22
- import {
23
- FeatureCollection,
24
- GeoJsonProperties,
25
- MultiPolygon,
26
- Polygon,
27
- } from 'geojson';
28
- import { beforeEach, cy, describe, expect, it } from 'local-cypress';
29
- import { BehaviorSubject } from 'rxjs';
30
- import * as topojson from 'topojson-client';
31
- import { GeometryCollection, Objects, Topology } from 'topojson-specification';
32
- import {
33
- StateIncomePopulationYearDatum,
34
- stateIncomePopulationYearData,
35
- } from '../testing/data/state-population-income-year-data';
36
- interface StateIncomeDatum {
37
- state: string;
38
- population: number;
39
- income: number;
40
- year: number;
41
- }
42
-
43
- const margin = { top: 40, right: 40, bottom: 0, left: 40 };
44
- const chartHeight = 400;
45
- const chartWidth = 600;
46
- const attributeData = stateIncomePopulationYearData
47
- .filter((x) => x.year === 2020)
48
- .filter((x) => x.state !== 'Puerto Rico');
49
- const tooltipYOffset = DEFAULT_TOOLTIP_Y_OFFSET;
50
-
51
- interface TestMapGeometryProperties extends GeoJsonProperties {
52
- name: string;
53
- id: string;
54
- }
55
-
56
- interface TestMapObjects extends Objects {
57
- country: GeometryCollection<TestMapGeometryProperties>;
58
- states: GeometryCollection<TestMapGeometryProperties>;
59
- }
60
-
61
- type TestUsMapTopology = Topology<TestMapObjects>;
62
-
63
- // ***********************************************************
64
- // Geogrpahies component set up
65
- // ***********************************************************
66
- @Component({
67
- // eslint-disable-next-line @angular-eslint/component-selector
68
- selector: 'app-test-geographies',
69
- template: `
70
- <vic-map-chart [config]="chartConfig">
71
- <svg:g
72
- vic-primary-marks-geographies
73
- svg-elements
74
- [config]="geographiesConfig"
75
- vicGeographiesEvents
76
- [hoverActions]="hoverActions"
77
- (interactionOutput)="updateTooltipForNewOutput($event)"
78
- >
79
- <vic-html-tooltip
80
- [config]="tooltipConfig$ | async"
81
- [template]="htmlTooltip"
82
- ></vic-html-tooltip>
83
- </svg:g>
84
- </vic-map-chart>
85
- <ng-template #htmlTooltip>
86
- @if (tooltipData$ | async; as tooltipData) {
87
- <div [style.--color]="tooltipData.color" class="tooltip-container">
88
- <p class="tooltip-label geography">
89
- {{ tooltipData.geography }}
90
- </p>
91
- <div class="values-container">
92
- <p class="tooltip-label x">
93
- <span class="value-label">Income</span>
94
- {{ tooltipData.attributeValue }}
95
- </p>
96
- </div>
97
- </div>
98
- }
99
- </ng-template>
100
- `,
101
- styles: ['.tooltip-container { font-size: 12px; }'],
102
- imports: [
103
- VicChartModule,
104
- VicGeographiesModule,
105
- VicHtmlTooltipModule,
106
- CommonModule,
107
- ],
108
- })
109
- class TestGeographiesComponent {
110
- @Input() geographiesConfig: GeographiesConfig<
111
- StateIncomePopulationYearDatum,
112
- TestMapGeometryProperties
113
- >;
114
- tooltipConfig: BehaviorSubject<HtmlTooltipConfig> =
115
- new BehaviorSubject<HtmlTooltipConfig>(null);
116
- tooltipConfig$ = this.tooltipConfig.asObservable();
117
- tooltipData: BehaviorSubject<GeographiesInteractionOutput<StateIncomeDatum>> =
118
- new BehaviorSubject<GeographiesInteractionOutput<StateIncomeDatum>>(null);
119
- tooltipData$ = this.tooltipData.asObservable();
120
- hoverActions: EventAction<GeographiesHost<StateIncomeDatum>>[] = [
121
- new GeographiesHoverEmitTooltipData<StateIncomeDatum>(),
122
- ];
123
- chartConfig: ChartConfig = new VicChartConfigBuilder()
124
- .margin(margin)
125
- .maxWidth(chartWidth)
126
- .maxHeight(chartHeight)
127
- .scalingStrategy('responsive-width')
128
- .getConfig();
129
-
130
- updateTooltipForNewOutput(
131
- data: GeographiesInteractionOutput<StateIncomeDatum>
132
- ): void {
133
- this.updateTooltipData(data);
134
- this.updateTooltipConfig(data);
135
- }
136
-
137
- updateTooltipData(
138
- data: GeographiesInteractionOutput<StateIncomeDatum>
139
- ): void {
140
- this.tooltipData.next(data);
141
- }
142
-
143
- updateTooltipConfig(
144
- data: GeographiesInteractionOutput<StateIncomeDatum>
145
- ): void {
146
- const config = new VicHtmlTooltipConfigBuilder()
147
- .size((size) => size.minWidth(80))
148
- .positionFromOutput(data)
149
- .show(!!data)
150
- .getConfig();
151
- this.tooltipConfig.next(config);
152
- }
153
- }
154
-
155
- const mountGeographiesComponent = (
156
- geographiesConfig: GeographiesConfig<
157
- StateIncomePopulationYearDatum,
158
- TestMapGeometryProperties
159
- >
160
- ): void => {
161
- cy.mount(TestGeographiesComponent, {
162
- componentProperties: {
163
- geographiesConfig: geographiesConfig,
164
- },
165
- });
166
- };
167
-
168
- // ***********************************************************
169
- // Drawing the map
170
- // ***********************************************************
171
- describe('drawing the geography paths for various layers', () => {
172
- let geographiesConfig: GeographiesConfig<
173
- StateIncomePopulationYearDatum,
174
- TestMapGeometryProperties
175
- >;
176
- beforeEach(() => {
177
- geographiesConfig = undefined;
178
- });
179
- describe('layers: attributeDataLayer: true, geojsonPropertiesLayers: 0', () => {
180
- it('it draws a map with one geography per geography in geojson', () => {
181
- cy.fixture('usMap.json').then((response) => {
182
- const usMap: TestUsMapTopology = response;
183
- const usBoundary = topojson.feature(
184
- usMap,
185
- usMap.objects.country
186
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
187
- const states = topojson.feature(
188
- usMap,
189
- usMap.objects.states
190
- ) as FeatureCollection<
191
- MultiPolygon | Polygon,
192
- TestMapGeometryProperties
193
- >;
194
- geographiesConfig = new VicGeographiesConfigBuilder<
195
- StateIncomePopulationYearDatum,
196
- TestMapGeometryProperties
197
- >()
198
- .boundary(usBoundary)
199
- .featureIndexAccessor((d) => d.properties.name)
200
- .attributeDataLayer((layer) =>
201
- layer
202
- .data(attributeData)
203
- .class((d) => d.name.split(' ').join('-'))
204
- .geographies(states.features)
205
- .geographyIndexAccessor((d) => d.state)
206
- .noBins((dimension) =>
207
- dimension
208
- .valueAccessor((d) => d.income)
209
- .range(['white', 'orangered'])
210
- )
211
- .stroke((stroke) => stroke.color('black').width(1))
212
- )
213
- .getConfig();
214
- mountGeographiesComponent(geographiesConfig);
215
- cy.get('.vic-geographies-group path').then((paths) => {
216
- expect(paths).to.have.length(states.features.length);
217
- cy.wrap(paths).each((path) => {
218
- expect(path.attr('stroke')).to.eq('black');
219
- expect(path.attr('stroke-width')).to.eq('1');
220
- expect(path.attr('fill')).to.not.eq('none');
221
- });
222
- });
223
- });
224
- });
225
- });
226
-
227
- describe('layers: attributeDataLayer: false, geojsonPropertiesLayers: 2', () => {
228
- it('it draws a map with one geography per geography in geojson', () => {
229
- cy.fixture('usMap.json').then((response) => {
230
- const usMap: TestUsMapTopology = response;
231
- const usBoundary = topojson.feature(
232
- usMap,
233
- usMap.objects.country
234
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
235
- const states = topojson.feature(
236
- usMap,
237
- usMap.objects.states
238
- ) as FeatureCollection<
239
- MultiPolygon | Polygon,
240
- TestMapGeometryProperties
241
- >;
242
- geographiesConfig = new VicGeographiesConfigBuilder<
243
- StateIncomePopulationYearDatum,
244
- TestMapGeometryProperties
245
- >()
246
- .boundary(usBoundary)
247
- .featureIndexAccessor((d) => d.properties.name)
248
- .geojsonPropertiesLayer((layer) =>
249
- layer
250
- .geographies(states.features)
251
- .class((d) => d.name.split(' ').join('-'))
252
- .stroke((stroke) => stroke.color('black').width(1))
253
- )
254
- .geojsonPropertiesLayer((layer) =>
255
- layer
256
- .geographies(usBoundary.features)
257
- .class((d) => d.name.split(' ').join('-'))
258
- .stroke((stroke) => stroke.color('red').width(1))
259
- )
260
- .getConfig();
261
- mountGeographiesComponent(geographiesConfig);
262
- cy.get('.vic-geographies-group path').should(
263
- 'have.length',
264
- states.features.length + usBoundary.features.length
265
- );
266
- cy.get('.vic-geographies-layer-0 path').then((paths) => {
267
- expect(paths).to.have.length(states.features.length);
268
- cy.wrap(paths).each((path) => {
269
- expect(path.attr('stroke')).to.eq('black');
270
- expect(path.attr('stroke-width')).to.eq('1');
271
- });
272
- });
273
- cy.get('.vic-geographies-layer-1 path').then((paths) => {
274
- expect(paths).to.have.length(usBoundary.features.length);
275
- cy.wrap(paths).each((path) => {
276
- expect(path.attr('stroke')).to.eq('red');
277
- expect(path.attr('stroke-width')).to.eq('1');
278
- });
279
- });
280
- });
281
- });
282
- });
283
-
284
- describe('layers: attributeDataLayer: true, geojsonPropertiesLayers: 1', () => {
285
- it('it draws a map with one geography per geography in geojson', () => {
286
- cy.fixture('usMap.json').then((response) => {
287
- const usMap: TestUsMapTopology = response;
288
- const usBoundary = topojson.feature(
289
- usMap,
290
- usMap.objects.country
291
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
292
- const states = topojson.feature(
293
- usMap,
294
- usMap.objects.states
295
- ) as FeatureCollection<
296
- MultiPolygon | Polygon,
297
- TestMapGeometryProperties
298
- >;
299
- geographiesConfig = new VicGeographiesConfigBuilder<
300
- StateIncomePopulationYearDatum,
301
- TestMapGeometryProperties
302
- >()
303
- .boundary(usBoundary)
304
- .featureIndexAccessor((d) => d.properties.name)
305
- .attributeDataLayer((layer) =>
306
- layer
307
- .data(attributeData)
308
- .class((d) => d.name.split(' ').join('-'))
309
- .geographies(states.features)
310
- .geographyIndexAccessor((d) => d.state)
311
- .noBins((dimension) =>
312
- dimension
313
- .valueAccessor((d) => d.income)
314
- .range(['white', 'orangered'])
315
- )
316
- .stroke((stroke) => stroke.color('black').width(1))
317
- )
318
- .geojsonPropertiesLayer((layer) =>
319
- layer
320
- .geographies(usBoundary.features)
321
- .stroke((stroke) => stroke.color('red').width(1))
322
- )
323
- .getConfig();
324
- mountGeographiesComponent(geographiesConfig);
325
- cy.get(
326
- '.vic-geographies-layer.vic-geographies-attribute-data-layer path'
327
- ).then((paths) => {
328
- expect(paths).to.have.length(states.features.length);
329
- cy.wrap(paths).each((path) => {
330
- expect(path.attr('stroke')).to.eq('black');
331
- expect(path.attr('stroke-width')).to.eq('1');
332
- expect(path.attr('fill')).to.not.eq('none');
333
- });
334
- });
335
- cy.get('.vic-geographies-layer-1 path').then((paths) => {
336
- expect(paths).to.have.length(usBoundary.features.length);
337
- cy.wrap(paths).each((path) => {
338
- expect(path.attr('stroke')).to.eq('red');
339
- expect(path.attr('stroke-width')).to.eq('1');
340
- });
341
- });
342
- });
343
- });
344
- });
345
- });
346
-
347
- // ***********************************************************
348
- // Tests of coloring by attribute data values are in individual attribute dimension tests
349
- // ***********************************************************
350
-
351
- // ***********************************************************
352
- // Tests of coloring geojsonProperties with categorical dimension
353
- // ***********************************************************
354
- // ***********************************************************
355
- // Drawing the map
356
- // ***********************************************************
357
- describe('drawing the geography paths for various layers', () => {
358
- let geographiesConfig: GeographiesConfig<
359
- StateIncomePopulationYearDatum,
360
- TestMapGeometryProperties
361
- >;
362
- beforeEach(() => {
363
- geographiesConfig = undefined;
364
- });
365
- describe('layers: attributeDataLayer: false, geojsonPropertiesLayers: 2', () => {
366
- it('it colors geographies in a geoJsonProperties layer by value returned from valueAccessor', () => {
367
- cy.fixture('usMap.json').then((response) => {
368
- const usMap: TestUsMapTopology = response;
369
- const usBoundary = topojson.feature(
370
- usMap,
371
- usMap.objects.country
372
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
373
- const states = topojson.feature(
374
- usMap,
375
- usMap.objects.states
376
- ) as FeatureCollection<
377
- MultiPolygon | Polygon,
378
- TestMapGeometryProperties
379
- >;
380
- // Colors state by the length of the name
381
- const stateNames = states.features
382
- .map((x) => x.properties.name)
383
- .filter(
384
- (x) =>
385
- !x.includes('District') &&
386
- !x.includes('Islands') &&
387
- !x.includes('Samoa')
388
- )
389
- .sort((a, b) => ascending(a.length, b.length));
390
- const stateNamesScale = scaleLinear<string>()
391
- .domain(extent(stateNames.map((x) => x.length)))
392
- .range(['white', 'magenta']);
393
- geographiesConfig = new VicGeographiesConfigBuilder<
394
- StateIncomePopulationYearDatum,
395
- TestMapGeometryProperties
396
- >()
397
- .boundary(usBoundary)
398
- .featureIndexAccessor((d) => d.properties.name)
399
- .geojsonPropertiesLayer((layer) =>
400
- layer
401
- .geographies(states.features)
402
- .class((d) => d.name.split(' ').join('-'))
403
- .stroke((stroke) => stroke.color('black').width(1))
404
- .fill((dimension) =>
405
- dimension
406
- .scale((stateNameLength) =>
407
- stateNamesScale(+stateNameLength.length)
408
- )
409
- .valueAccessor((d) => d.properties.name.length.toString())
410
- )
411
- )
412
- .geojsonPropertiesLayer((layer) =>
413
- layer
414
- .geographies(usBoundary.features)
415
- .class((d) => d.name.split(' ').join('-'))
416
- .stroke((stroke) => stroke.color('blue').width(1))
417
- )
418
- .getConfig();
419
- mountGeographiesComponent(geographiesConfig);
420
- cy.get('.vic-geographies-group path').should(
421
- 'have.length',
422
- states.features.length + usBoundary.features.length
423
- );
424
- cy.get('.vic-geographies-layer-0 path').then((paths) => {
425
- expect(paths).to.have.length(states.features.length);
426
- cy.wrap(paths).each((path) => {
427
- expect(path.attr('stroke')).to.eq('black');
428
- expect(path.attr('stroke-width')).to.eq('1');
429
- });
430
- });
431
- cy.get('.vic-geographies-layer-1 path').then((paths) => {
432
- expect(paths).to.have.length(usBoundary.features.length);
433
- cy.wrap(paths).each((path) => {
434
- expect(path.attr('stroke')).to.eq('blue');
435
- expect(path.attr('stroke-width')).to.eq('1');
436
- });
437
- });
438
- const colors = [255];
439
- stateNames.forEach((d, i) => {
440
- const state = d.replace(/\s/g, '-');
441
- cy.get(`.vic-geographies-group.${state} path`).then((path) => {
442
- const color = parseInt(
443
- path.attr('fill').split('(')[1].split(',')[1]
444
- );
445
- expect(color).to.be.lte(colors[i]);
446
- colors.push(color);
447
- });
448
- });
449
- });
450
- });
451
- });
452
- });
453
-
454
- // ***********************************************************
455
- // Test geography labels
456
- // ***********************************************************
457
- describe('drawing the geography labels various layers', () => {
458
- let geographiesConfig: GeographiesConfig<
459
- StateIncomePopulationYearDatum,
460
- TestMapGeometryProperties
461
- >;
462
- beforeEach(() => {
463
- geographiesConfig = undefined;
464
- });
465
- describe('layers: attributeDataLayer: true, geojsonPropertiesLayers: 1', () => {
466
- it('it draws a map with labels on both data and non-data layers', () => {
467
- cy.fixture('usMap.json').then((response) => {
468
- const usMap: TestUsMapTopology = response;
469
- const usBoundary = topojson.feature(
470
- usMap,
471
- usMap.objects.country
472
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
473
- const states = topojson.feature(
474
- usMap,
475
- usMap.objects.states
476
- ) as FeatureCollection<
477
- MultiPolygon | Polygon,
478
- TestMapGeometryProperties
479
- >;
480
- geographiesConfig = new VicGeographiesConfigBuilder<
481
- StateIncomePopulationYearDatum,
482
- TestMapGeometryProperties
483
- >()
484
- .boundary(usBoundary)
485
- .featureIndexAccessor((d) => d.properties.name)
486
- .attributeDataLayer((layer) =>
487
- layer
488
- .data(attributeData)
489
- .class((d) => d.name.split(' ').join('-'))
490
- .geographies(
491
- states.features.filter(
492
- (x) => x.properties.name[x.properties.name.length - 1] !== 'a'
493
- )
494
- )
495
- .geographyIndexAccessor((d) => d.state)
496
- .noBins((dimension) =>
497
- dimension
498
- .valueAccessor((d) => d.income)
499
- .range(['white', 'orangered'])
500
- )
501
- .stroke((stroke) => stroke.color('black').width(1))
502
- .labels((labels) =>
503
- labels.valueAccessor((d) => d.properties.id).color('black')
504
- )
505
- )
506
- .geojsonPropertiesLayer((layer) =>
507
- layer
508
- .geographies(
509
- states.features.filter(
510
- (x) => x.properties.name[x.properties.name.length - 1] === 'a'
511
- )
512
- )
513
- .class((d) => d.name.split(' ').join('-'))
514
- .fill((dimension) => dimension.range(['darkblue']))
515
- .stroke((stroke) => stroke.width(1))
516
- .labels((labels) =>
517
- labels
518
- .valueAccessor((d) => `${d.properties.id}*`)
519
- .color('chartreuse')
520
- )
521
- )
522
- .getConfig();
523
- mountGeographiesComponent(geographiesConfig);
524
- cy.get('.vic-geographies-group').then((groups) => {
525
- expect(groups).to.have.length(states.features.length);
526
- cy.wrap(groups)
527
- .find('text')
528
- .then((labels) => {
529
- expect(labels).to.have.length(states.features.length);
530
- });
531
- });
532
- cy.get(
533
- '.vic-geographies-attribute-data-layer .vic-geographies-group'
534
- ).then((groups) => {
535
- cy.wrap(groups).each((group) => {
536
- const label = group.find('text');
537
- expect(label.text().length).to.equal(2);
538
- expect(label.attr('fill')).to.eq('black');
539
- });
540
- });
541
- cy.get(
542
- '.vic-geographies-geojson-properties-layer .vic-geographies-group'
543
- ).then((groups) => {
544
- cy.wrap(groups).each((group) => {
545
- const label = group.find('text');
546
- expect(label.text().length).to.equal(3);
547
- expect(label.text()[2]).to.equal('*');
548
- expect(label.attr('fill')).to.eq('chartreuse');
549
- });
550
- });
551
- });
552
- });
553
- });
554
- });
555
-
556
- // ***********************************************************
557
- // Tests of tooltips
558
- // ***********************************************************
559
- const mountGeographiesForTooltipTests = (json: TestUsMapTopology) => {
560
- const usMap: TestUsMapTopology = json;
561
- const usBoundary = topojson.feature(
562
- usMap,
563
- usMap.objects.country
564
- ) as FeatureCollection<MultiPolygon, TestMapGeometryProperties>;
565
- const states = topojson.feature(
566
- usMap,
567
- usMap.objects.states
568
- ) as FeatureCollection<MultiPolygon | Polygon, TestMapGeometryProperties>;
569
- const geographiesConfig = new VicGeographiesConfigBuilder<
570
- StateIncomePopulationYearDatum,
571
- TestMapGeometryProperties
572
- >()
573
- .boundary(usBoundary)
574
- .featureIndexAccessor((d) => d.properties.name)
575
- .attributeDataLayer((layer) =>
576
- layer
577
- .data(attributeData)
578
- .class((d) => d.name.split(' ').join('-'))
579
- .geographies(states.features)
580
- .geographyIndexAccessor((d) => d.state)
581
- .noBins((dimension) =>
582
- dimension.valueAccessor((d) => d.income).range(['white', 'orangered'])
583
- )
584
- .stroke((stroke) => stroke.color('black').width(1))
585
- )
586
- .getConfig();
587
- mountGeographiesComponent(geographiesConfig);
588
- };
589
- describe('displays tooltips for correct data per hover position', () => {
590
- // The "center" of some selected state elements that gets hovered is technically not within the state
591
- // Excluding these exceptions from the test
592
- const statesWithCenterOutsideOfPath = [
593
- 'District of Columbia',
594
- 'Florida',
595
- 'Hawaii',
596
- 'Maryland',
597
- 'Michigan',
598
- 'New Jersey',
599
- ];
600
- beforeEach(() => {
601
- cy.fixture('usMap.json').then((response) => {
602
- mountGeographiesForTooltipTests(response);
603
- cy.wait(1000); // Allow previous test's injector to fully destroy
604
- });
605
- });
606
- attributeData
607
- .filter((d) => !statesWithCenterOutsideOfPath.includes(d.state))
608
- .forEach((stateDatum) => {
609
- it(`State: ${stateDatum.state}`, () => {
610
- cy.get(
611
- `.vic-geographies-group.${stateDatum.state.split(' ').join('-')}`
612
- ).realHoverAndWait();
613
- cy.get('.vic-html-tooltip-overlay').should('exist');
614
- cy.get('.vic-html-tooltip-overlay p')
615
- .eq(0)
616
- .should('contain.text', stateDatum.state);
617
- cy.get('.vic-html-tooltip-overlay p')
618
- .eq(1)
619
- .should('contain.text', `Income ${stateDatum.income}`);
620
- cy.get('.vic-html-tooltip-overlay').then(($el) => {
621
- const tooltipBox = $el[0].getBoundingClientRect();
622
- cy.get(
623
- `.vic-geographies-group.${stateDatum.state.split(' ').join('-')}`
624
- ).then(($stateEl) => {
625
- const stateBox = $stateEl[0].getBoundingClientRect();
626
- expect(mean([tooltipBox.left, tooltipBox.right])).to.be.closeTo(
627
- mean([stateBox.left, stateBox.right]),
628
- 4
629
- );
630
- expect(tooltipBox.bottom + tooltipYOffset).to.be.closeTo(
631
- mean([stateBox.top, stateBox.bottom]),
632
- 20
633
- );
634
- });
635
- });
636
- cy.get('body').focus().type('{esc}');
637
- cy.get('.vic-html-tooltip-overlay').should('not.exist');
638
- });
639
- });
640
- });
@@ -1,9 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { GeographiesEventsDirective } from './events/geographies-events.directive';
3
- import { GeographiesComponent } from './geographies.component';
4
-
5
- @NgModule({
6
- imports: [GeographiesComponent, GeographiesEventsDirective],
7
- exports: [GeographiesComponent, GeographiesEventsDirective],
8
- })
9
- export class VicGeographiesModule {}
@@ -1,32 +0,0 @@
1
- export * from './config/geographies-builder';
2
- export * from './config/geographies-config';
3
- export * from './config/geographies-options';
4
- export * from './config/layers/attribute-data-layer/attribute-data-layer';
5
- export * from './config/layers/attribute-data-layer/attribute-data-layer-builder';
6
- export * from './config/layers/attribute-data-layer/attribute-data-layer-options';
7
- export * from './config/layers/attribute-data-layer/dimensions/attribute-data-bin-enums';
8
- export * from './config/layers/attribute-data-layer/dimensions/attribute-data-bin-types';
9
- export * from './config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins';
10
- export * from './config/layers/attribute-data-layer/dimensions/categorical-bins/categorical-bins-options';
11
- export * from './config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins';
12
- export * from './config/layers/attribute-data-layer/dimensions/custom-breaks/custom-breaks-bins-options';
13
- export * from './config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins';
14
- export * from './config/layers/attribute-data-layer/dimensions/equal-frequencies-bins/equal-frequencies-bins-options';
15
- export * from './config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins';
16
- export * from './config/layers/attribute-data-layer/dimensions/equal-value-ranges-bins/equal-value-ranges-bins-options';
17
- export * from './config/layers/attribute-data-layer/dimensions/no-bins/no-bins';
18
- export * from './config/layers/attribute-data-layer/dimensions/no-bins/no-bins-options';
19
- export * from './config/layers/geojson-properties-layer/geojson-properties-layer';
20
- export * from './config/layers/geojson-properties-layer/geojson-properties-layer-builder';
21
- export * from './config/layers/geojson-properties-layer/geojson-properties-layer-options';
22
- export * from './config/layers/labels/geographies-labels';
23
- export * from './config/layers/labels/geographies-labels-builder';
24
- export * from './config/layers/labels/geographies-labels-options';
25
- export * from './events/actions/geographies-click-actions';
26
- export * from './events/actions/geographies-hover-actions';
27
- export * from './events/actions/geographies-hover-move-actions';
28
- export * from './events/geographies-events.directive';
29
- export * from './events/geographies-interaction-output';
30
- export * from './geographies-feature';
31
- export * from './geographies.component';
32
- export * from './geographies.module';