@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,111 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { Geometry, MultiPolygon, Polygon } from 'geojson';
3
- import { OrdinalVisualValueDimensionBuilder } from '../../../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value-builder';
4
- import { FillDefinition } from '../../../../fill-definitions/fill-definitions';
5
- import { GeographiesFeature } from '../../../geographies-feature';
6
- import { GeographiesLayerBuilder } from '../geographies-layer/geographies-layer-builder';
7
- import { GeographiesGeojsonPropertiesLayer } from './geojson-properties-layer';
8
-
9
- const DEFAULT = {
10
- _class: () => '',
11
- _enableEventActions: false,
12
- };
13
-
14
- export class GeographiesGeojsonPropertiesLayerBuilder<
15
- TProperties,
16
- TGeometry extends Geometry = MultiPolygon | Polygon,
17
- > extends GeographiesLayerBuilder<TProperties, TGeometry> {
18
- private fillBuilder: OrdinalVisualValueDimensionBuilder<
19
- GeographiesFeature<TProperties, TGeometry>,
20
- string,
21
- string
22
- >;
23
- private _customFills: FillDefinition<
24
- GeographiesFeature<TProperties, TGeometry>
25
- >[];
26
-
27
- constructor() {
28
- super();
29
- safeAssign(this, DEFAULT);
30
- }
31
-
32
- /**
33
- * OPTIONAL: Set a fill color or function that yields a color for all geographies in the layer.
34
- *
35
- * If a string is provided, all geographies will be filled with that color.
36
- *
37
- * Otherwise, you can use this method to specify how each geography should be filled based on the properties of the geojson feature.
38
- */
39
- fill(fill: null): this;
40
- fill(fill: string): this;
41
- fill(
42
- fill: (
43
- fill: OrdinalVisualValueDimensionBuilder<
44
- GeographiesFeature<TProperties, TGeometry>,
45
- string,
46
- string
47
- >
48
- ) => void
49
- ): this;
50
- fill(
51
- fill:
52
- | string
53
- | null
54
- | ((
55
- fill: OrdinalVisualValueDimensionBuilder<
56
- GeographiesFeature<TProperties, TGeometry>,
57
- string,
58
- string
59
- >
60
- ) => void)
61
- ): this {
62
- this.initFillBuilder();
63
-
64
- if (fill === null) {
65
- this.fillBuilder.valueAccessor(() => null).range(['None']);
66
- return this;
67
- }
68
-
69
- if (typeof fill === 'string') {
70
- this.fillBuilder.valueAccessor(() => null).range([fill]);
71
- } else {
72
- fill(this.fillBuilder);
73
- }
74
- return this;
75
- }
76
-
77
- customFills(
78
- customFills: FillDefinition<GeographiesFeature<TProperties, TGeometry>>[]
79
- ): this {
80
- this._customFills = customFills;
81
- return this;
82
- }
83
-
84
- private initFillBuilder(): void {
85
- this.fillBuilder = new OrdinalVisualValueDimensionBuilder();
86
- }
87
-
88
- _build(): GeographiesGeojsonPropertiesLayer<TProperties, TGeometry> {
89
- this.validateBuilder();
90
- return new GeographiesGeojsonPropertiesLayer({
91
- marksClass: 'vic-geographies-geojson-properties-layer',
92
- customFills: this._customFills,
93
- featureClass: this._class,
94
- enableEventActions: this._enableEventActions,
95
- fill: this.fillBuilder._build('Fill'),
96
- geographies: this._geographies,
97
- labels: this.labelsBuilder?._build(),
98
- mixBlendMode: this._mixBlendMode,
99
- stroke: this.strokeBuilder?._build(),
100
- });
101
- }
102
-
103
- validateBuilder(): void {
104
- if (!this.fillBuilder) {
105
- this.initFillBuilder();
106
- }
107
- if (!this.strokeBuilder) {
108
- this.initStrokeBuilder();
109
- }
110
- }
111
- }
@@ -1,19 +0,0 @@
1
- import { Geometry, MultiPolygon, Polygon } from 'geojson';
2
- import { OrdinalVisualValueDimension } from '../../../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
3
- import { FillDefinition } from '../../../../fill-definitions/fill-definitions';
4
- import { GeographiesFeature } from '../../../geographies-feature';
5
- import { GeographiesLayerOptions } from '../geographies-layer/geographies-layer-options';
6
-
7
- export interface GeographiesGeojsonPropertiesLayerOptions<
8
- TProperties,
9
- TGeometry extends Geometry = MultiPolygon | Polygon,
10
- > extends GeographiesLayerOptions<TProperties, TGeometry> {
11
- customFills: FillDefinition<GeographiesFeature<TProperties, TGeometry>>[];
12
- fill: OrdinalVisualValueDimension<
13
- GeographiesFeature<TProperties, TGeometry>,
14
- string,
15
- string
16
- >;
17
- marksClass: string;
18
- mixBlendMode: string;
19
- }
@@ -1,41 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { OrdinalVisualValueDimension } from '../../../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
3
- import { GeographiesGeojsonPropertiesLayer } from './geojson-properties-layer';
4
- import { GeographiesGeojsonPropertiesLayerBuilder } from './geojson-properties-layer-builder';
5
-
6
- type FeatureProperties = { name: string };
7
- const features = [
8
- { name: 'Alabama' },
9
- { name: 'Alaska' },
10
- { name: 'Arizona' },
11
- { name: 'California' },
12
- { name: 'Colorado' },
13
- ];
14
- function createLayer(): GeographiesGeojsonPropertiesLayer<
15
- { name: string },
16
- any
17
- > {
18
- return new GeographiesGeojsonPropertiesLayerBuilder<FeatureProperties>()
19
- .geographies(features as any)
20
- .fill((dimension) => dimension.range(['lime']))
21
- ._build();
22
- }
23
-
24
- describe('GeographiesGeojsonPropertiesLayer', () => {
25
- let layer: GeographiesGeojsonPropertiesLayer<{ name: string }, any>;
26
-
27
- describe('initPropertiesFromGeographies()', () => {
28
- beforeEach(() => {
29
- spyOn(
30
- OrdinalVisualValueDimension.prototype as any,
31
- 'setPropertiesFromData'
32
- );
33
- layer = createLayer();
34
- });
35
- it('calls setPropertiesFromData once if fill dimension exists', () => {
36
- expect(
37
- (layer as any).fill.setPropertiesFromData
38
- ).toHaveBeenCalledOnceWith(features);
39
- });
40
- });
41
- });
@@ -1,67 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import { select } from 'd3';
3
- import { Geometry, MultiPolygon, Polygon } from 'geojson';
4
- import { FillUtilities } from '../../../../core/utilities/fill-utilities';
5
- import { OrdinalVisualValueDimension } from '../../../../data-dimensions/ordinal/ordinal-visual-value/ordinal-visual-value';
6
- import { FillDefinition } from '../../../../fill-definitions/fill-definitions';
7
- import { GeographiesFeature } from '../../../geographies-feature';
8
- import {
9
- GeographiesLayer,
10
- GeographiesTooltipDatum,
11
- } from '../geographies-layer/geographies-layer';
12
- import { GeographiesGeojsonPropertiesLayerOptions } from './geojson-properties-layer-options';
13
-
14
- export class GeographiesGeojsonPropertiesLayer<
15
- TProperties,
16
- TGeometry extends Geometry = MultiPolygon | Polygon,
17
- >
18
- extends GeographiesLayer<string, TProperties, TGeometry>
19
- implements GeographiesGeojsonPropertiesLayerOptions<TProperties, TGeometry>
20
- {
21
- readonly customFills: FillDefinition<
22
- GeographiesFeature<TProperties, TGeometry>
23
- >[];
24
- readonly fill: OrdinalVisualValueDimension<
25
- GeographiesFeature<TProperties, TGeometry>,
26
- string,
27
- string
28
- >;
29
- readonly marksClass: string;
30
- readonly mixBlendMode: string;
31
-
32
- constructor(
33
- options: GeographiesGeojsonPropertiesLayerOptions<TProperties, TGeometry>
34
- ) {
35
- super();
36
- safeAssign(this, options);
37
- this.initPropertiesFromGeographies();
38
- }
39
-
40
- private initPropertiesFromGeographies(): void {
41
- this.fill.setPropertiesFromData(this.geographies);
42
- }
43
-
44
- getFill(feature: GeographiesFeature<TProperties, TGeometry>): string {
45
- const featureIndex = this.featureIndexAccessor(feature);
46
- const defaultFill = this.fill.getScale()(featureIndex);
47
- return this.customFills
48
- ? FillUtilities.getFill(feature, defaultFill, this.customFills)
49
- : defaultFill;
50
- }
51
-
52
- getTooltipData(path: SVGPathElement): GeographiesTooltipDatum<undefined> {
53
- const feature = select(path).datum() as GeographiesFeature<
54
- TProperties,
55
- TGeometry
56
- >;
57
- const featureIndex = this.featureIndexAccessor(feature);
58
- const tooltipData: GeographiesTooltipDatum<undefined> = {
59
- attributeValue: undefined,
60
- datum: undefined,
61
- color: this.getFill(feature),
62
- geography: featureIndex,
63
- };
64
-
65
- return tooltipData;
66
- }
67
- }
@@ -1,269 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import type * as CSSType from 'csstype';
3
- import {
4
- GeoPath,
5
- GeoProjection,
6
- maxIndex,
7
- polygonArea,
8
- scaleLinear,
9
- ScaleLinear,
10
- } from 'd3';
11
- import { Geometry, MultiPolygon, Polygon } from 'geojson';
12
- import polylabel from 'polylabel';
13
- import { Position } from '../../../../core/types/layout';
14
- import { GeographiesFeature } from '../../../geographies-feature';
15
- import { GeographiesLabels } from './geographies-labels';
16
- import {
17
- GeographiesLabelsColorOptions,
18
- GeographiesLabelsFontWeightOptions,
19
- } from './geographies-labels-options';
20
-
21
- const DEFAULT = {
22
- _alignmentBaseline: 'middle',
23
- _color: '#000',
24
- _cursor: 'default',
25
- _display: () => true,
26
- _dominantBaseline: 'middle',
27
- _fontScale: scaleLinear().domain([0, 800]).range([0, 17]),
28
- _fontWeight: 400,
29
- _textAnchor: 'middle',
30
- _pointerEvents: 'none',
31
- _valueAccessor: (feature) => feature,
32
- };
33
-
34
- export class GeographiesLabelsBuilder<
35
- TProperties,
36
- TGeometry extends Geometry = MultiPolygon | Polygon,
37
- > {
38
- private _alignmentBaseline: CSSType.Property.AlignmentBaseline;
39
- private _color: GeographiesLabelsColorOptions | CSSType.Property.Fill;
40
- private _cursor: CSSType.Property.Cursor;
41
- private _display: (featureIndex: string) => boolean;
42
- private _dominantBaseline: CSSType.Property.DominantBaseline;
43
- private _fontWeight:
44
- | GeographiesLabelsFontWeightOptions
45
- | CSSType.Property.FontWeight;
46
- private _fontScale: ScaleLinear<number, number, never>;
47
- private _pointerEvents: CSSType.Property.PointerEvents;
48
- private _position: (
49
- d: GeographiesFeature<TProperties, TGeometry>,
50
- path: GeoPath,
51
- projection?: GeoProjection
52
- ) => Position;
53
- private _textAnchor: CSSType.Property.TextAnchor;
54
- private _valueAccessor: (
55
- featureIndex: GeographiesFeature<TProperties, TGeometry>
56
- ) => string;
57
-
58
- constructor() {
59
- safeAssign(this, DEFAULT);
60
- this._position = (d, path) =>
61
- this.positionAtCentroid<TProperties, TGeometry>(d, path);
62
- }
63
-
64
- /**
65
- * OPTIONAL. The alignment of the baseline of the text relative to the text's font.
66
- *
67
- * @default 'middle'
68
- */
69
- alignmentBaseline(
70
- alignmentBaseline: CSSType.Property.AlignmentBaseline
71
- ): this {
72
- this._alignmentBaseline = alignmentBaseline;
73
- return this;
74
- }
75
-
76
- /**
77
- * OPTIONAL. The color of the text. If a string value is provided, that value will be used for all geographies on the layer.
78
- *
79
- * If an object is provided, the color between default and contrastAlternative that has the highest contrast ratio with the geography's background color will be used.
80
- *
81
- * If a value for `pattern` is provided, that value will be used for geographies with a fill pattern. If it is not provided, the default option will be used for geographies with a fill pattern.
82
- *
83
- * @default '#000'
84
- */
85
- color(color: GeographiesLabelsColorOptions | CSSType.Property.Fill): this {
86
- this._color = color;
87
- return this;
88
- }
89
-
90
- /**
91
- * OPTIONAL. The cursor to display when hovering over the text
92
- *
93
- * @default 'default'
94
- */
95
- cursor(cursor: CSSType.Property.Cursor): this {
96
- this._cursor = cursor;
97
- return this;
98
- }
99
-
100
- /**
101
- * OPTIONAL, A function that determines whether to display the label for a given feature.
102
- *
103
- * @default () => true
104
- */
105
- display(display: boolean): this;
106
- display(display: (featureIndex: string) => boolean): this;
107
- display(display: boolean | ((featureIndex: string) => boolean)): this {
108
- this._display = typeof display === 'boolean' ? () => display : display;
109
- return this;
110
- }
111
-
112
- /**
113
- * OPTIONAL. The dominant baseline of the text.
114
- *
115
- * @default 'middle'
116
- */
117
- dominantBaseline(dominantBaseline: CSSType.Property.DominantBaseline): this {
118
- this._dominantBaseline = dominantBaseline;
119
- return this;
120
- }
121
-
122
- /**
123
- * OPTIONAL. The font weight of the text.
124
- *
125
- * If an object is provided, the font weight for each property on the object will be used when the corresponding color is used.
126
- *
127
- * @default 400
128
- */
129
- fontWeight(
130
- fontWeight: GeographiesLabelsFontWeightOptions | CSSType.Property.FontWeight
131
- ): this {
132
- this._fontWeight = fontWeight;
133
- return this;
134
- }
135
-
136
- /**
137
- * The scale used to determine the font size of the label.
138
- */
139
- fontScale(fontScale: ScaleLinear<number, number, never>): this {
140
- this._fontScale = fontScale;
141
- return this;
142
- }
143
-
144
- /**
145
- * The pointer events of the text.
146
- */
147
- pointerEvents(pointerEvents: CSSType.Property.PointerEvents): this {
148
- this._pointerEvents = pointerEvents;
149
- return this;
150
- }
151
-
152
- /**
153
- * The position of the label relative to the feature
154
- */
155
- position(
156
- position: (
157
- d: GeographiesFeature<TProperties, TGeometry>,
158
- path: GeoPath,
159
- projection: GeoProjection
160
- ) => Position
161
- ): this {
162
- this._position = position;
163
- return this;
164
- }
165
-
166
- /**
167
- * The text anchor of the text.
168
- */
169
- textAnchor(textAnchor: CSSType.Property.TextAnchor): this {
170
- this._textAnchor = textAnchor;
171
- return this;
172
- }
173
-
174
- /**
175
- * A function that determines the value of the label for a given feature
176
- */
177
- valueAccessor(
178
- valueAccessor: (
179
- featureIndex: GeographiesFeature<TProperties, TGeometry>
180
- ) => string
181
- ): this {
182
- this._valueAccessor = valueAccessor;
183
- return this;
184
- }
185
-
186
- _build(): GeographiesLabels<TProperties, TGeometry> {
187
- return new GeographiesLabels<TProperties, TGeometry>({
188
- alignmentBaseline: this._alignmentBaseline,
189
- color: this._color,
190
- cursor: this._cursor,
191
- display: this._display,
192
- dominantBaseline: this._dominantBaseline,
193
- fontScale: this._fontScale,
194
- fontWeight: this._fontWeight,
195
- pointerEvents: this._pointerEvents,
196
- position: this._position,
197
- textAnchor: this._textAnchor,
198
- valueAccessor: this._valueAccessor,
199
- });
200
- }
201
-
202
- /**
203
- * A function to position something at the centroid of a feature.
204
- */
205
- positionAtCentroid<TProperties, TGeometry extends Geometry>(
206
- feature: GeographiesFeature<TProperties, TGeometry>,
207
- path: GeoPath
208
- ): Position {
209
- const c = path.centroid(feature);
210
- return { x: c[0], y: c[1] };
211
- }
212
-
213
- /**
214
- * A function to position a label for Hawaii on a GeoAlbersUsa projection.
215
- */
216
- positionHawaiiOnGeoAlbersUsa<TProperties>(
217
- feature: GeographiesFeature<TProperties, MultiPolygon>,
218
- projection: GeoProjection
219
- ): Position {
220
- const startPolygon =
221
- // we need to cast because Position can return two or three numbers but GeoProjection
222
- // can only handle [number, number]
223
- (feature.geometry.coordinates[0][0] as [number, number][]).map(
224
- projection
225
- );
226
- const endPolygon = (
227
- feature.geometry.coordinates[
228
- feature.geometry.coordinates.length - 1
229
- ][0] as [number, number][]
230
- ).map(projection);
231
-
232
- const approxStartCoords = startPolygon[0];
233
- const approxEndCoords = endPolygon[0];
234
- return {
235
- x: approxStartCoords[0] + (approxEndCoords[0] - approxStartCoords[0]) / 2,
236
- y: approxStartCoords[1],
237
- };
238
- }
239
-
240
- /**
241
- * A function to position a label with Polylabel lib
242
- */
243
- positionWithPolylabel<
244
- TProperties,
245
- TGeometry extends MultiPolygon | Polygon = MultiPolygon | Polygon,
246
- >(
247
- feature: GeographiesFeature<TProperties, TGeometry>,
248
- projection: GeoProjection
249
- ): Position {
250
- const isMultiPolygon = feature.geometry.coordinates.length > 1;
251
- let largestIndex = 0;
252
- let largestPolygon: [number, number][];
253
- if (isMultiPolygon) {
254
- const coords = feature.geometry.coordinates as [number, number][][][];
255
- largestIndex = maxIndex(
256
- coords.map((polygon) => {
257
- return polygonArea(polygon[0]);
258
- })
259
- );
260
- largestPolygon = coords[largestIndex][0];
261
- } else {
262
- const coords = feature.geometry.coordinates as [number, number][][];
263
- largestPolygon = coords[0];
264
- }
265
- const projectedPoints = largestPolygon.map(projection);
266
- const adjustedPosition = polylabel([projectedPoints]);
267
- return { x: adjustedPosition[0], y: adjustedPosition[1] };
268
- }
269
- }
@@ -1,45 +0,0 @@
1
- import type * as CSSType from 'csstype';
2
- import { GeoPath, GeoProjection, ScaleLinear } from 'd3';
3
- import { Geometry, MultiPolygon, Polygon } from 'geojson';
4
- import { Position } from '../../../../core/types/layout';
5
- import { GeographiesFeature } from '../../../geographies-feature';
6
-
7
- /**
8
- * Configuration object for displaying labels on map.
9
- *
10
- * The generic parameters are the same as those in VicGeographiesConfig.
11
- */
12
- export interface GeographiesLabelsOptions<
13
- TProperties,
14
- TGeometry extends Geometry = MultiPolygon | Polygon,
15
- > {
16
- alignmentBaseline: CSSType.Property.AlignmentBaseline;
17
- color: GeographiesLabelsColorOptions | CSSType.Property.Fill;
18
- cursor: CSSType.Property.Cursor;
19
- display: (featureIndex: string) => boolean;
20
- dominantBaseline: CSSType.Property.DominantBaseline;
21
- fontScale: ScaleLinear<number, number, never>;
22
- fontWeight: GeographiesLabelsFontWeightOptions | CSSType.Property.FontWeight;
23
- pointerEvents: CSSType.Property.PointerEvents;
24
- position: (
25
- d: GeographiesFeature<TProperties, TGeometry>,
26
- path: GeoPath,
27
- projection: GeoProjection
28
- ) => Position;
29
- textAnchor: CSSType.Property.TextAnchor;
30
- valueAccessor: (
31
- feature: GeographiesFeature<TProperties, TGeometry>
32
- ) => string;
33
- }
34
-
35
- export interface GeographiesLabelsColorOptions {
36
- default: CSSType.Property.Fill;
37
- contrastAlternative: CSSType.Property.Fill;
38
- pattern?: CSSType.Property.Fill;
39
- }
40
-
41
- export interface GeographiesLabelsFontWeightOptions {
42
- default: CSSType.Property.FontWeight;
43
- contrastAlternative: CSSType.Property.FontWeight;
44
- pattern?: CSSType.Property.FontWeight;
45
- }
@@ -1,38 +0,0 @@
1
- import { safeAssign } from '@mathstack/app-kit';
2
- import type * as CSSType from 'csstype';
3
- import { GeoPath, GeoProjection, ScaleLinear } from 'd3';
4
- import { Geometry, MultiPolygon, Polygon } from 'geojson';
5
- import { Position } from '../../../../core/types/layout';
6
- import { GeographiesFeature } from '../../../geographies-feature';
7
- import {
8
- GeographiesLabelsColorOptions,
9
- GeographiesLabelsFontWeightOptions,
10
- GeographiesLabelsOptions,
11
- } from './geographies-labels-options';
12
-
13
- export class GeographiesLabels<
14
- TProperties,
15
- TGeometry extends Geometry = MultiPolygon | Polygon,
16
- > implements GeographiesLabelsOptions<TProperties, TGeometry> {
17
- alignmentBaseline: CSSType.Property.AlignmentBaseline;
18
- color: GeographiesLabelsColorOptions | CSSType.Property.Fill;
19
- cursor: CSSType.Property.Cursor;
20
- display: (featureIndex: string) => boolean;
21
- dominantBaseline: CSSType.Property.DominantBaseline;
22
- fontScale: ScaleLinear<number, number, never>;
23
- fontWeight: GeographiesLabelsFontWeightOptions | CSSType.Property.FontWeight;
24
- pointerEvents: CSSType.Property.PointerEvents;
25
- position: (
26
- d: GeographiesFeature<TProperties, TGeometry>,
27
- path: GeoPath,
28
- projection?: GeoProjection
29
- ) => Position;
30
- textAnchor: CSSType.Property.TextAnchor;
31
- valueAccessor: (
32
- feature: GeographiesFeature<TProperties, TGeometry>
33
- ) => string;
34
-
35
- constructor(options: GeographiesLabelsOptions<TProperties, TGeometry>) {
36
- safeAssign(this, options);
37
- }
38
- }
@@ -1,21 +0,0 @@
1
- import { EventAction, EventType } from '../../../events';
2
- import { GeographiesHost } from '../geographies-events.directive';
3
- import { GeographiesInteractionOutput } from '../geographies-interaction-output';
4
-
5
- export class GeographiesClickEmitTooltipDataPauseOtherActions<
6
- Datum,
7
- > implements EventAction<
8
- GeographiesHost<Datum>,
9
- GeographiesInteractionOutput<Datum>
10
- > {
11
- onStart(host: GeographiesHost<Datum>): void {
12
- const output = host.getInteractionOutput(EventType.Click);
13
- host.disableOtherActions(EventType.Click);
14
- host.emitInteractionOutput(output);
15
- }
16
-
17
- onEnd(host: GeographiesHost<Datum>): void {
18
- host.resumeOtherActions(EventType.Click);
19
- host.emitInteractionOutput(null);
20
- }
21
- }
@@ -1,17 +0,0 @@
1
- import { EventAction, EventType } from '../../../events';
2
- import { GeographiesHost } from '../geographies-events.directive';
3
- import { GeographiesInteractionOutput } from '../geographies-interaction-output';
4
-
5
- export class GeographiesHoverEmitTooltipData<Datum> implements EventAction<
6
- GeographiesHost<Datum>,
7
- GeographiesInteractionOutput<Datum>
8
- > {
9
- onStart(host: GeographiesHost<Datum>): void {
10
- const outputData = host.getInteractionOutput(EventType.Hover);
11
- host.emitInteractionOutput(outputData);
12
- }
13
-
14
- onEnd(host: GeographiesHost<Datum>): void {
15
- host.emitInteractionOutput(null);
16
- }
17
- }
@@ -1,19 +0,0 @@
1
- import { EventType, HoverMoveAction } from '../../../events';
2
- import { GeographiesHost } from '../geographies-events.directive';
3
- import { GeographiesInteractionOutput } from '../geographies-interaction-output';
4
-
5
- export class GeographiesHoverMoveEmitTooltipData<
6
- Datum,
7
- > implements HoverMoveAction<
8
- GeographiesHost<Datum>,
9
- GeographiesInteractionOutput<Datum>
10
- > {
11
- onStart(host: GeographiesHost<Datum>): void {
12
- const outputData = host.getInteractionOutput(EventType.HoverMove);
13
- host.emitInteractionOutput(outputData);
14
- }
15
-
16
- onEnd(host: GeographiesHost<Datum>): void {
17
- host.emitInteractionOutput(null);
18
- }
19
- }