@mathstack/viz 2.1.0 → 2.2.1

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