layerchart 2.0.0-next.1 → 2.0.0-next.2

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 (266) hide show
  1. package/dist/actions/movable.d.ts +28 -0
  2. package/dist/actions/movable.js +91 -0
  3. package/dist/components/AnnotationLine.svelte +155 -0
  4. package/dist/components/AnnotationLine.svelte.d.ts +28 -0
  5. package/dist/components/AnnotationPoint.svelte +121 -0
  6. package/dist/components/AnnotationPoint.svelte.d.ts +32 -0
  7. package/dist/components/AnnotationRange.svelte +147 -0
  8. package/dist/components/AnnotationRange.svelte.d.ts +40 -0
  9. package/dist/components/Arc.svelte +344 -151
  10. package/dist/components/Arc.svelte.d.ts +138 -0
  11. package/dist/components/Area.svelte +165 -149
  12. package/dist/components/Area.svelte.d.ts +45 -0
  13. package/dist/components/Axis.svelte +287 -174
  14. package/dist/components/Axis.svelte.d.ts +116 -0
  15. package/dist/components/Bar.svelte +163 -107
  16. package/dist/components/Bar.svelte.d.ts +48 -0
  17. package/dist/components/Bars.svelte +54 -68
  18. package/dist/components/Bars.svelte.d.ts +27 -0
  19. package/dist/components/Blur.svelte +31 -7
  20. package/dist/components/Blur.svelte.d.ts +23 -21
  21. package/dist/components/Bounds.svelte +49 -19
  22. package/dist/components/Bounds.svelte.d.ts +24 -50
  23. package/dist/components/BrushContext.svelte +296 -168
  24. package/dist/components/BrushContext.svelte.d.ts +97 -65
  25. package/dist/components/Calendar.svelte +116 -59
  26. package/dist/components/Calendar.svelte.d.ts +50 -31
  27. package/dist/components/Chart.svelte +1289 -398
  28. package/dist/components/Chart.svelte.d.ts +535 -410
  29. package/dist/components/ChartClipPath.svelte +37 -15
  30. package/dist/components/ChartClipPath.svelte.d.ts +21 -19
  31. package/dist/components/Circle.svelte +124 -85
  32. package/dist/components/Circle.svelte.d.ts +52 -0
  33. package/dist/components/CircleClipPath.svelte +76 -16
  34. package/dist/components/CircleClipPath.svelte.d.ts +46 -0
  35. package/dist/components/ClipPath.svelte +60 -15
  36. package/dist/components/ClipPath.svelte.d.ts +40 -27
  37. package/dist/components/ColorRamp.svelte +75 -9
  38. package/dist/components/ColorRamp.svelte.d.ts +37 -19
  39. package/dist/components/ComputedStyles.svelte +17 -5
  40. package/dist/components/ComputedStyles.svelte.d.ts +11 -19
  41. package/dist/components/Connector.svelte +149 -0
  42. package/dist/components/Connector.svelte.d.ts +51 -0
  43. package/dist/components/Dagre.svelte +211 -122
  44. package/dist/components/Dagre.svelte.d.ts +119 -56
  45. package/dist/components/ForceSimulation.svelte +215 -90
  46. package/dist/components/ForceSimulation.svelte.d.ts +82 -35
  47. package/dist/components/Frame.svelte +33 -13
  48. package/dist/components/Frame.svelte.d.ts +13 -17
  49. package/dist/components/GeoCircle.svelte +29 -16
  50. package/dist/components/GeoCircle.svelte.d.ts +22 -24
  51. package/dist/components/GeoContext.svelte +113 -72
  52. package/dist/components/GeoContext.svelte.d.ts +49 -41
  53. package/dist/components/GeoEdgeFade.svelte +47 -12
  54. package/dist/components/GeoEdgeFade.svelte.d.ts +17 -19
  55. package/dist/components/GeoPath.svelte +157 -127
  56. package/dist/components/GeoPath.svelte.d.ts +48 -36
  57. package/dist/components/GeoPoint.svelte +52 -20
  58. package/dist/components/GeoPoint.svelte.d.ts +25 -22
  59. package/dist/components/GeoSpline.svelte +75 -26
  60. package/dist/components/GeoSpline.svelte.d.ts +29 -20
  61. package/dist/components/GeoTile.svelte +100 -49
  62. package/dist/components/GeoTile.svelte.d.ts +38 -23
  63. package/dist/components/GeoVisible.svelte +17 -9
  64. package/dist/components/GeoVisible.svelte.d.ts +10 -18
  65. package/dist/components/Graticule.svelte +28 -13
  66. package/dist/components/Graticule.svelte.d.ts +11 -52
  67. package/dist/components/Grid.svelte +226 -114
  68. package/dist/components/Grid.svelte.d.ts +70 -0
  69. package/dist/components/Group.svelte +132 -105
  70. package/dist/components/Group.svelte.d.ts +53 -0
  71. package/dist/components/Highlight.svelte +409 -307
  72. package/dist/components/Highlight.svelte.d.ts +107 -0
  73. package/dist/components/Hull.svelte +96 -45
  74. package/dist/components/Hull.svelte.d.ts +40 -30
  75. package/dist/components/Labels.svelte +125 -46
  76. package/dist/components/Labels.svelte.d.ts +70 -27
  77. package/dist/components/Legend.svelte +374 -190
  78. package/dist/components/Legend.svelte.d.ts +95 -44
  79. package/dist/components/Line.svelte +163 -125
  80. package/dist/components/Line.svelte.d.ts +75 -0
  81. package/dist/components/LinearGradient.svelte +153 -78
  82. package/dist/components/LinearGradient.svelte.d.ts +66 -31
  83. package/dist/components/Link.svelte +160 -104
  84. package/dist/components/Link.svelte.d.ts +54 -0
  85. package/dist/components/Marker.svelte +100 -39
  86. package/dist/components/Marker.svelte.d.ts +59 -27
  87. package/dist/components/MarkerWrapper.svelte +35 -0
  88. package/dist/components/MarkerWrapper.svelte.d.ts +18 -0
  89. package/dist/components/MonthPath.svelte +65 -20
  90. package/dist/components/MonthPath.svelte.d.ts +23 -17
  91. package/dist/components/MotionPath.svelte +80 -24
  92. package/dist/components/MotionPath.svelte.d.ts +46 -27
  93. package/dist/components/Pack.svelte +53 -17
  94. package/dist/components/Pack.svelte.d.ts +42 -21
  95. package/dist/components/Partition.svelte +64 -22
  96. package/dist/components/Partition.svelte.d.ts +49 -26
  97. package/dist/components/Pattern.svelte +297 -11
  98. package/dist/components/Pattern.svelte.d.ts +103 -19
  99. package/dist/components/Pie.svelte +122 -76
  100. package/dist/components/Pie.svelte.d.ts +65 -51
  101. package/dist/components/Point.svelte +20 -9
  102. package/dist/components/Point.svelte.d.ts +16 -20
  103. package/dist/components/Points.svelte +148 -137
  104. package/dist/components/Points.svelte.d.ts +45 -34
  105. package/dist/components/RadialGradient.svelte +143 -70
  106. package/dist/components/RadialGradient.svelte.d.ts +69 -31
  107. package/dist/components/Rect.svelte +121 -102
  108. package/dist/components/Rect.svelte.d.ts +36 -0
  109. package/dist/components/RectClipPath.svelte +82 -18
  110. package/dist/components/RectClipPath.svelte.d.ts +55 -0
  111. package/dist/components/Rule.svelte +105 -62
  112. package/dist/components/Rule.svelte.d.ts +40 -19
  113. package/dist/components/Sankey.svelte +132 -55
  114. package/dist/components/Sankey.svelte.d.ts +61 -31
  115. package/dist/components/Spline.svelte +281 -218
  116. package/dist/components/Spline.svelte.d.ts +95 -0
  117. package/dist/components/Text.svelte +437 -176
  118. package/dist/components/Text.svelte.d.ts +130 -0
  119. package/dist/components/Threshold.svelte +48 -16
  120. package/dist/components/Threshold.svelte.d.ts +29 -31
  121. package/dist/components/TileImage.svelte +103 -30
  122. package/dist/components/TileImage.svelte.d.ts +48 -23
  123. package/dist/components/TransformContext.svelte +365 -171
  124. package/dist/components/TransformControls.svelte +50 -26
  125. package/dist/components/TransformControls.svelte.d.ts +27 -19
  126. package/dist/components/Tree.svelte +74 -33
  127. package/dist/components/Tree.svelte.d.ts +42 -30
  128. package/dist/components/Treemap.svelte +119 -42
  129. package/dist/components/Treemap.svelte.d.ts +75 -27
  130. package/dist/components/Voronoi.svelte +106 -75
  131. package/dist/components/Voronoi.svelte.d.ts +40 -41
  132. package/dist/components/charts/ArcChart.svelte +464 -0
  133. package/dist/components/charts/ArcChart.svelte.d.ts +90 -0
  134. package/dist/components/charts/AreaChart.svelte +450 -393
  135. package/dist/components/charts/AreaChart.svelte.d.ts +61 -0
  136. package/dist/components/charts/BarChart.svelte +454 -389
  137. package/dist/components/charts/BarChart.svelte.d.ts +76 -0
  138. package/dist/components/charts/ChartAnnotations.svelte +37 -0
  139. package/dist/components/charts/ChartAnnotations.svelte.d.ts +10 -0
  140. package/dist/components/charts/DefaultTooltip.svelte +60 -0
  141. package/dist/components/charts/DefaultTooltip.svelte.d.ts +10 -0
  142. package/dist/components/charts/LineChart.svelte +369 -314
  143. package/dist/components/charts/LineChart.svelte.d.ts +53 -0
  144. package/dist/components/charts/PieChart.svelte +458 -316
  145. package/dist/components/charts/PieChart.svelte.d.ts +137 -353
  146. package/dist/components/charts/ScatterChart.svelte +334 -296
  147. package/dist/components/charts/ScatterChart.svelte.d.ts +39 -0
  148. package/dist/components/charts/index.d.ts +8 -0
  149. package/dist/components/charts/index.js +7 -0
  150. package/dist/components/charts/types.d.ts +253 -0
  151. package/dist/components/charts/utils.svelte.d.ts +30 -0
  152. package/dist/components/charts/utils.svelte.js +55 -0
  153. package/dist/components/index.d.ts +76 -4
  154. package/dist/components/index.js +76 -5
  155. package/dist/components/layout/Canvas.svelte +321 -155
  156. package/dist/components/layout/Canvas.svelte.d.ts +104 -55
  157. package/dist/components/layout/Html.svelte +82 -42
  158. package/dist/components/layout/Html.svelte.d.ts +39 -28
  159. package/dist/components/layout/Layer.svelte +39 -0
  160. package/dist/components/layout/Layer.svelte.d.ts +17 -0
  161. package/dist/components/layout/Svg.svelte +122 -70
  162. package/dist/components/layout/Svg.svelte.d.ts +53 -34
  163. package/dist/components/layout/WebGL.svelte +135 -0
  164. package/dist/components/layout/WebGL.svelte.d.ts +50 -0
  165. package/dist/components/tooltip/Tooltip.svelte +246 -78
  166. package/dist/components/tooltip/Tooltip.svelte.d.ts +149 -31
  167. package/dist/components/tooltip/TooltipContext.svelte +409 -271
  168. package/dist/components/tooltip/TooltipContext.svelte.d.ts +86 -55
  169. package/dist/components/tooltip/TooltipHeader.svelte +100 -11
  170. package/dist/components/tooltip/TooltipHeader.svelte.d.ts +43 -23
  171. package/dist/components/tooltip/TooltipItem.svelte +167 -27
  172. package/dist/components/tooltip/TooltipItem.svelte.d.ts +63 -31
  173. package/dist/components/tooltip/TooltipList.svelte +22 -3
  174. package/dist/components/tooltip/TooltipList.svelte.d.ts +6 -17
  175. package/dist/components/tooltip/TooltipSeparator.svelte +27 -1
  176. package/dist/components/tooltip/TooltipSeparator.svelte.d.ts +6 -15
  177. package/dist/components/tooltip/index.d.ts +6 -0
  178. package/dist/components/tooltip/index.js +6 -0
  179. package/dist/components/tooltip/tooltipMetaContext.d.ts +79 -0
  180. package/dist/components/tooltip/tooltipMetaContext.js +139 -0
  181. package/dist/components/types.d.ts +1 -0
  182. package/dist/components/types.js +1 -0
  183. package/dist/docs/Blockquote.svelte.d.ts +18 -14
  184. package/dist/docs/Code.svelte.d.ts +26 -22
  185. package/dist/docs/ConnectorSweepMenuField.svelte +17 -0
  186. package/dist/docs/ConnectorSweepMenuField.svelte.d.ts +7 -0
  187. package/dist/docs/ConnectorTypeMenuField.svelte +17 -0
  188. package/dist/docs/ConnectorTypeMenuField.svelte.d.ts +7 -0
  189. package/dist/docs/CurveMenuField.svelte +14 -3
  190. package/dist/docs/CurveMenuField.svelte.d.ts +9 -18
  191. package/dist/docs/GeoDebug.svelte +47 -42
  192. package/dist/docs/GeoDebug.svelte.d.ts +4 -16
  193. package/dist/docs/Header1.svelte.d.ts +27 -16
  194. package/dist/docs/Json.svelte.d.ts +20 -16
  195. package/dist/docs/Layout.svelte.d.ts +18 -13
  196. package/dist/docs/Link.svelte.d.ts +33 -21
  197. package/dist/docs/PathDataMenuField.svelte +14 -10
  198. package/dist/docs/PathDataMenuField.svelte.d.ts +8 -18
  199. package/dist/docs/Preview.svelte +20 -7
  200. package/dist/docs/Preview.svelte.d.ts +12 -22
  201. package/dist/docs/TilesetField.svelte.d.ts +21 -17
  202. package/dist/docs/TransformDebug.svelte +5 -6
  203. package/dist/docs/TransformDebug.svelte.d.ts +18 -14
  204. package/dist/docs/ViewSourceButton.svelte.d.ts +21 -17
  205. package/dist/types/d3-shape-extentions.d.ts +7 -0
  206. package/dist/utils/afterTick.d.ts +5 -0
  207. package/dist/utils/afterTick.js +8 -0
  208. package/dist/utils/arcText.svelte.d.ts +57 -0
  209. package/dist/utils/arcText.svelte.js +262 -0
  210. package/dist/utils/array.d.ts +9 -1
  211. package/dist/utils/array.js +13 -0
  212. package/dist/utils/attributes.d.ts +29 -0
  213. package/dist/utils/attributes.js +40 -0
  214. package/dist/utils/canvas.js +47 -10
  215. package/dist/utils/chart.d.ts +78 -0
  216. package/dist/utils/chart.js +512 -0
  217. package/dist/utils/color.d.ts +1 -0
  218. package/dist/utils/color.js +8 -0
  219. package/dist/utils/common.d.ts +3 -5
  220. package/dist/utils/common.js +3 -2
  221. package/dist/utils/connectorUtils.d.ts +21 -0
  222. package/dist/utils/connectorUtils.js +111 -0
  223. package/dist/utils/createId.d.ts +7 -0
  224. package/dist/utils/createId.js +9 -0
  225. package/dist/utils/debug.d.ts +1 -0
  226. package/dist/utils/debug.js +84 -0
  227. package/dist/utils/filterObject.d.ts +9 -0
  228. package/dist/utils/filterObject.js +12 -0
  229. package/dist/utils/graph/dagre.d.ts +34 -0
  230. package/dist/utils/graph/dagre.js +78 -0
  231. package/dist/utils/graph/dagre.test.d.ts +1 -0
  232. package/dist/utils/{graph.test.js → graph/dagre.test.js} +19 -33
  233. package/dist/utils/graph/sankey.d.ts +28 -0
  234. package/dist/utils/{graph.js → graph/sankey.js} +13 -41
  235. package/dist/utils/index.d.ts +3 -1
  236. package/dist/utils/index.js +3 -1
  237. package/dist/utils/key.svelte.d.ts +3 -0
  238. package/dist/utils/key.svelte.js +11 -0
  239. package/dist/utils/legendPayload.d.ts +7 -0
  240. package/dist/utils/legendPayload.js +8 -0
  241. package/dist/utils/motion.svelte.d.ts +140 -0
  242. package/dist/utils/motion.svelte.js +180 -0
  243. package/dist/utils/motion.test.d.ts +1 -0
  244. package/dist/utils/motion.test.js +213 -0
  245. package/dist/utils/{rect.d.ts → rect.svelte.d.ts} +7 -4
  246. package/dist/utils/rect.svelte.js +105 -0
  247. package/dist/utils/scales.svelte.d.ts +90 -0
  248. package/dist/utils/{scales.js → scales.svelte.js} +100 -39
  249. package/dist/utils/stack.d.ts +2 -3
  250. package/dist/utils/stack.js +1 -1
  251. package/dist/utils/string.js +87 -0
  252. package/dist/utils/ticks.d.ts +8 -2
  253. package/dist/utils/ticks.js +28 -0
  254. package/dist/utils/ticks.test.d.ts +1 -0
  255. package/dist/utils/ticks.test.js +67 -0
  256. package/dist/utils/types.d.ts +81 -0
  257. package/package.json +21 -19
  258. package/dist/components/ChartContext.svelte +0 -295
  259. package/dist/components/ChartContext.svelte.d.ts +0 -139
  260. package/dist/components/TransformContext.svelte.d.ts +0 -158
  261. package/dist/stores/motionStore.d.ts +0 -30
  262. package/dist/stores/motionStore.js +0 -62
  263. package/dist/utils/graph.d.ts +0 -37
  264. package/dist/utils/rect.js +0 -107
  265. package/dist/utils/scales.d.ts +0 -66
  266. /package/dist/{utils/graph.test.d.ts → components/charts/types.js} +0 -0
@@ -1,23 +1,32 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { type SplineProps } from './Spline.svelte';
2
2
  import { type CurveFactory, type CurveFactoryLineOnly } from 'd3-shape';
3
- declare const __propDef: {
4
- props: {
5
- [x: string]: any;
6
- link: {
7
- source: [number, number];
8
- target: [number, number];
9
- };
10
- loft?: number | undefined;
11
- curve?: CurveFactory | CurveFactoryLineOnly | undefined;
3
+ import type { Without } from '../utils/types.js';
4
+ export type GeoSplinePropsWithoutHTML = {
5
+ /**
6
+ * Link between two points on the globe.
7
+ */
8
+ link: {
9
+ source: [number, number];
10
+ target: [number, number];
12
11
  };
13
- events: {
14
- [evt: string]: CustomEvent<any>;
15
- };
16
- slots: {};
12
+ /**
13
+ * The amount of loft to apply to the middle of the curve.
14
+ *
15
+ * @default 1.0
16
+ */
17
+ loft?: number;
18
+ /**
19
+ * Curve of spline drawn. Imported via d3-shape.
20
+ *
21
+ * @example
22
+ * import { curveNatural } from 'd3-shape';
23
+ * <GeoSpline curve={curveNatural} />
24
+ *
25
+ * @default curveNatural
26
+ */
27
+ curve?: CurveFactory | CurveFactoryLineOnly;
17
28
  };
18
- export type GeoSplineProps = typeof __propDef.props;
19
- export type GeoSplineEvents = typeof __propDef.events;
20
- export type GeoSplineSlots = typeof __propDef.slots;
21
- export default class GeoSpline extends SvelteComponentTyped<GeoSplineProps, GeoSplineEvents, GeoSplineSlots> {
22
- }
23
- export {};
29
+ export type GeoSplineProps = GeoSplinePropsWithoutHTML & Without<SplineProps, GeoSplinePropsWithoutHTML>;
30
+ declare const GeoSpline: import("svelte").Component<GeoSplineProps, {}, "splineRef">;
31
+ type GeoSpline = ReturnType<typeof GeoSpline>;
32
+ export default GeoSpline;
@@ -1,75 +1,126 @@
1
+ <script lang="ts" module>
2
+ import type { ComponentProps, Snippet } from 'svelte';
3
+
4
+ export type GeoTilePropsWithoutHTML = {
5
+ url: (x: number, y: number, z: number) => string;
6
+ /**
7
+ * The zoom delta for the tile.
8
+ *
9
+ * @default 0
10
+ */
11
+ zoomDelta?: number;
12
+
13
+ /**
14
+ * The tile size for the tile.
15
+ *
16
+ * @default 256
17
+ */
18
+ tileSize?: number;
19
+
20
+ /**
21
+ * Whether to disable the cache for the tile.
22
+ *
23
+ * @default false
24
+ */
25
+ disableCache?: boolean;
26
+
27
+ /**
28
+ * Additional props to apply to the `Group` component.
29
+ */
30
+ group?: Partial<ComponentProps<typeof Group>>;
31
+
32
+ /**
33
+ * Whether to enable debug mode for the tile.
34
+ *
35
+ * @default false
36
+ */
37
+ debug?: boolean;
38
+
39
+ children?: Snippet<[{ tiles: any[] }]>;
40
+ };
41
+ </script>
42
+
1
43
  <script lang="ts">
2
- import { onDestroy } from 'svelte';
3
44
  // @ts-expect-error
4
45
  import { tile as d3Tile } from 'd3-tile';
5
46
 
6
- import { getRenderContext } from './Chart.svelte';
7
- import { chartContext } from './ChartContext.svelte';
8
- import { getCanvasContext } from './layout/Canvas.svelte';
9
- import { geoContext } from './GeoContext.svelte';
47
+ import { getRenderContext, getChartContext } from './Chart.svelte';
48
+ import { registerCanvasComponent } from './layout/Canvas.svelte';
10
49
  import Group from './Group.svelte';
11
50
  import TileImage from './TileImage.svelte';
51
+ import { getGeoContext } from './GeoContext.svelte';
52
+ import { extractLayerProps } from '../utils/attributes.js';
12
53
 
13
- export let url: (x: number, y: number, z: number) => string;
14
- export let zoomDelta = 0;
15
- export let tileSize = 256;
16
- export let disableCache = false;
17
- export let debug = false;
54
+ let {
55
+ url,
56
+ zoomDelta = 0,
57
+ tileSize = 256,
58
+ disableCache = false,
59
+ debug = false,
60
+ group,
61
+ children,
62
+ }: GeoTilePropsWithoutHTML = $props();
18
63
 
19
- const { containerWidth, containerHeight, padding } = chartContext();
20
- const geo = geoContext();
64
+ const ctx = getChartContext();
65
+ const geoCtx = getGeoContext();
66
+ const renderCtx = getRenderContext();
21
67
 
22
- $: center = $geo([0, 0]) ?? [0, 0];
68
+ const center = $derived(geoCtx.projection?.([0, 0]) ?? [0, 0]);
23
69
 
24
- $: tile = d3Tile()
25
- .size([$containerWidth, $containerHeight])
26
- .translate([center[0] + $padding.left, center[1] + $padding.top])
27
- .scale($geo.scale() * 2 * Math.PI)
28
- .tileSize(tileSize)
29
- .zoomDelta(zoomDelta);
70
+ const tiles = $derived(
71
+ d3Tile()
72
+ .size([ctx.containerWidth, ctx.containerHeight])
73
+ .translate([center[0] + ctx.padding.left, center[1] + ctx.padding.top])
74
+ // TODO: is this fine to add the 0 as a default?
75
+ .scale(geoCtx.projection ? geoCtx.projection.scale() * 2 * Math.PI : undefined)
76
+ .tileSize(tileSize)
77
+ .zoomDelta(zoomDelta)()
78
+ );
30
79
 
31
- $: tiles = tile();
32
- $: ({
33
- translate: [tx, ty],
34
- scale,
35
- } = tiles);
36
-
37
- const renderContext = getRenderContext();
38
- const canvasContext = getCanvasContext();
80
+ const translate = $derived(tiles.translate);
81
+ const scale = $derived(tiles.scale);
39
82
 
40
83
  function render(ctx: CanvasRenderingContext2D) {
41
- tiles.forEach(([x, y, z]: number[]) => {
84
+ for (const [x, y, z] of tiles) {
42
85
  const image = new Image();
43
86
  image.onload = () => {
44
- ctx.drawImage(image, (x + tx) * scale, (y + ty) * scale, scale, scale);
87
+ ctx.drawImage(image, (x + translate[0]) * scale, (y + translate[1]) * scale, scale, scale);
45
88
  };
46
89
  image.src = url(x, y, z);
47
- });
48
- }
49
-
50
- $: if (renderContext === 'canvas') {
51
- tile;
52
- canvasContext.invalidate();
90
+ }
53
91
  }
54
92
 
55
- let canvasUnregister: ReturnType<typeof canvasContext.register>;
56
- $: if (renderContext === 'canvas') {
57
- canvasUnregister = canvasContext.register({ name: 'GeoTile', render });
93
+ if (renderCtx === 'canvas') {
94
+ registerCanvasComponent({
95
+ name: 'GeoTile',
96
+ render,
97
+ deps: () => [tiles],
98
+ });
58
99
  }
59
-
60
- onDestroy(() => {
61
- if (renderContext === 'canvas') {
62
- canvasUnregister();
63
- }
64
- });
65
100
  </script>
66
101
 
67
- {#if renderContext === 'svg' && url}
68
- <slot {tiles}>
69
- <Group x={-$padding.left} y={-$padding.top}>
102
+ {#if renderCtx === 'svg' && url}
103
+ {#if children}
104
+ {@render children({ tiles })}
105
+ {:else}
106
+ <Group
107
+ x={-ctx.padding.left}
108
+ y={-ctx.padding.top}
109
+ {...extractLayerProps(group, 'geo-tile-group')}
110
+ >
70
111
  {#each tiles as [x, y, z] (url(x, y, z))}
71
- <TileImage {url} {x} {y} {z} {tx} {ty} {scale} {disableCache} {debug} />
112
+ <TileImage
113
+ {url}
114
+ {x}
115
+ {y}
116
+ {z}
117
+ tx={translate[0]}
118
+ ty={translate[1]}
119
+ {scale}
120
+ {disableCache}
121
+ {debug}
122
+ />
72
123
  {/each}
73
124
  </Group>
74
- </slot>
125
+ {/if}
75
126
  {/if}
@@ -1,24 +1,39 @@
1
- import { SvelteComponentTyped } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- url: (x: number, y: number, z: number) => string;
5
- zoomDelta?: number;
6
- tileSize?: number;
7
- disableCache?: boolean;
8
- debug?: boolean;
9
- };
10
- events: {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {
14
- default: {
15
- tiles: any;
16
- };
17
- };
1
+ import type { ComponentProps, Snippet } from 'svelte';
2
+ export type GeoTilePropsWithoutHTML = {
3
+ url: (x: number, y: number, z: number) => string;
4
+ /**
5
+ * The zoom delta for the tile.
6
+ *
7
+ * @default 0
8
+ */
9
+ zoomDelta?: number;
10
+ /**
11
+ * The tile size for the tile.
12
+ *
13
+ * @default 256
14
+ */
15
+ tileSize?: number;
16
+ /**
17
+ * Whether to disable the cache for the tile.
18
+ *
19
+ * @default false
20
+ */
21
+ disableCache?: boolean;
22
+ /**
23
+ * Additional props to apply to the `Group` component.
24
+ */
25
+ group?: Partial<ComponentProps<typeof Group>>;
26
+ /**
27
+ * Whether to enable debug mode for the tile.
28
+ *
29
+ * @default false
30
+ */
31
+ debug?: boolean;
32
+ children?: Snippet<[{
33
+ tiles: any[];
34
+ }]>;
18
35
  };
19
- export type GeoTileProps = typeof __propDef.props;
20
- export type GeoTileEvents = typeof __propDef.events;
21
- export type GeoTileSlots = typeof __propDef.slots;
22
- export default class GeoTile extends SvelteComponentTyped<GeoTileProps, GeoTileEvents, GeoTileSlots> {
23
- }
24
- export {};
36
+ import Group from './Group.svelte';
37
+ declare const GeoTile: import("svelte").Component<GeoTilePropsWithoutHTML, {}, "">;
38
+ type GeoTile = ReturnType<typeof GeoTile>;
39
+ export default GeoTile;
@@ -1,15 +1,23 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from 'svelte';
3
+
4
+ export type GeoVisibleProps = {
5
+ /** Latitude */
6
+ lat: number;
7
+ /** Longitude */
8
+ long: number;
9
+ children?: Snippet;
10
+ };
11
+ </script>
12
+
1
13
  <script lang="ts">
2
- import { geoContext } from './GeoContext.svelte';
3
14
  import { isVisible } from '../utils/geo.js';
15
+ import { getGeoContext } from './GeoContext.svelte';
4
16
 
5
- /** Latitude */
6
- export let lat: number;
7
- /** Longitude */
8
- export let long: number;
9
-
10
- const geo = geoContext();
17
+ let { lat, long, children }: GeoVisibleProps = $props();
18
+ const geoCtx = getGeoContext();
11
19
  </script>
12
20
 
13
- {#if isVisible($geo)([long, lat])}
14
- <slot />
21
+ {#if geoCtx.projection && isVisible(geoCtx.projection)([long, lat])}
22
+ {@render children?.()}
15
23
  {/if}
@@ -1,19 +1,11 @@
1
- import { SvelteComponentTyped } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- /** Latitude */ lat: number;
5
- /** Longitude */ long: number;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {
11
- default: {};
12
- };
1
+ import type { Snippet } from 'svelte';
2
+ export type GeoVisibleProps = {
3
+ /** Latitude */
4
+ lat: number;
5
+ /** Longitude */
6
+ long: number;
7
+ children?: Snippet;
13
8
  };
14
- export type GeoVisibleProps = typeof __propDef.props;
15
- export type GeoVisibleEvents = typeof __propDef.events;
16
- export type GeoVisibleSlots = typeof __propDef.slots;
17
- export default class GeoVisible extends SvelteComponentTyped<GeoVisibleProps, GeoVisibleEvents, GeoVisibleSlots> {
18
- }
19
- export {};
9
+ declare const GeoVisible: import("svelte").Component<GeoVisibleProps, {}, "">;
10
+ type GeoVisible = ReturnType<typeof GeoVisible>;
11
+ export default GeoVisible;
@@ -1,32 +1,47 @@
1
- <script lang="ts">
2
- import { geoGraticule } from 'd3-geo';
1
+ <script lang="ts" module>
2
+ import type { Without } from '../utils/types.js';
3
3
  import type { ComponentProps } from 'svelte';
4
+ import GeoPath, { type GeoPathProps } from './GeoPath.svelte';
4
5
 
5
- import GeoPath from './GeoPath.svelte';
6
+ export type GraticulePropsWithoutHTML = {
7
+ lines?: Partial<ComponentProps<typeof GeoPath>> | boolean | undefined;
8
+ outline?: Partial<ComponentProps<typeof GeoPath>> | boolean | undefined;
9
+ step?: [number, number];
10
+ };
11
+
12
+ export type GraticuleProps = GraticulePropsWithoutHTML &
13
+ Without<GeoPathProps, Omit<GraticulePropsWithoutHTML, 'ref'>>;
14
+ </script>
15
+
16
+ <script lang="ts">
17
+ import { geoGraticule } from 'd3-geo';
18
+ import { extractLayerProps, layerClass } from '../utils/attributes.js';
6
19
 
7
- // TODO: Support full api (stepMinor/Major, extent[Minor/Major], etc
8
- export let lines: Partial<ComponentProps<GeoPath>> | boolean | undefined = undefined;
9
- export let outline: Partial<ComponentProps<GeoPath>> | boolean | undefined = undefined;
10
- export let step: [number, number] = [10, 10];
20
+ let { lines, outline, step = [10, 10], ...restProps }: GraticuleProps = $props();
11
21
 
12
- $: graticule = geoGraticule();
22
+ const graticule = geoGraticule();
13
23
 
14
- $: graticule.step(step);
24
+ $effect(() => {
25
+ graticule.step(step);
26
+ });
15
27
  </script>
16
28
 
17
- <g class="graticule">
29
+ <g class={layerClass('graticule-g')}>
18
30
  <!-- TODO: Any reason to still render the single `MultiLineString` path if using `lines` and/or `outline` -->
19
31
  {#if !lines && !outline}
20
- <GeoPath geojson={graticule()} {...$$restProps} />
32
+ <GeoPath geojson={graticule()} {...extractLayerProps(restProps, 'graticule-geo-path')} />
21
33
  {/if}
22
34
 
23
35
  {#if lines}
24
36
  {#each graticule.lines() as line}
25
- <GeoPath geojson={line} {...typeof lines === 'object' ? lines : null} />
37
+ <GeoPath geojson={line} {...extractLayerProps(lines, 'graticule-geo-line')} />
26
38
  {/each}
27
39
  {/if}
28
40
 
29
41
  {#if outline}
30
- <GeoPath geojson={graticule.outline()} {...typeof outline === 'object' ? outline : null} />
42
+ <GeoPath
43
+ geojson={graticule.outline()}
44
+ {...extractLayerProps(outline, 'graticule-geo-outline')}
45
+ />
31
46
  {/if}
32
47
  </g>
@@ -1,53 +1,12 @@
1
- import { SvelteComponentTyped } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- [x: string]: any;
5
- lines?: boolean | Partial<{
6
- [x: string]: any;
7
- geojson?: import("d3-geo").GeoPermissibleObjects | null | undefined;
8
- fill?: string | undefined | undefined;
9
- stroke?: string | undefined | undefined;
10
- strokeWidth?: number | undefined | undefined;
11
- opacity?: number | undefined | undefined;
12
- tooltip?: import("./tooltip/TooltipContext.svelte").TooltipContextValue | undefined;
13
- onclick?: ((e: MouseEvent, geoPath: ReturnType<typeof import("..").geoCurvePath>) => void) | undefined | undefined;
14
- onpointerenter?: ((e: PointerEvent) => void) | undefined | undefined;
15
- onpointermove?: ((e: PointerEvent) => void) | undefined | undefined;
16
- onpointerleave?: ((e: PointerEvent) => void) | undefined | undefined;
17
- onpointerdown?: ((e: PointerEvent) => void) | undefined | undefined;
18
- ontouchmove?: ((e: TouchEvent) => void) | undefined | undefined;
19
- curve?: (import("d3-shape").CurveFactory | import("d3-shape").CurveFactoryLineOnly) | undefined;
20
- class?: string | undefined | undefined;
21
- geoTransform?: ((projection: import("d3-geo").GeoProjection | import("d3-geo").GeoIdentityTransform) => import("d3-geo").GeoTransformPrototype) | undefined | undefined;
22
- }> | undefined;
23
- outline?: boolean | Partial<{
24
- [x: string]: any;
25
- geojson?: import("d3-geo").GeoPermissibleObjects | null | undefined;
26
- fill?: string | undefined | undefined;
27
- stroke?: string | undefined | undefined;
28
- strokeWidth?: number | undefined | undefined;
29
- opacity?: number | undefined | undefined;
30
- tooltip?: import("./tooltip/TooltipContext.svelte").TooltipContextValue | undefined;
31
- onclick?: ((e: MouseEvent, geoPath: ReturnType<typeof import("..").geoCurvePath>) => void) | undefined | undefined;
32
- onpointerenter?: ((e: PointerEvent) => void) | undefined | undefined;
33
- onpointermove?: ((e: PointerEvent) => void) | undefined | undefined;
34
- onpointerleave?: ((e: PointerEvent) => void) | undefined | undefined;
35
- onpointerdown?: ((e: PointerEvent) => void) | undefined | undefined;
36
- ontouchmove?: ((e: TouchEvent) => void) | undefined | undefined;
37
- curve?: (import("d3-shape").CurveFactory | import("d3-shape").CurveFactoryLineOnly) | undefined;
38
- class?: string | undefined | undefined;
39
- geoTransform?: ((projection: import("d3-geo").GeoProjection | import("d3-geo").GeoIdentityTransform) => import("d3-geo").GeoTransformPrototype) | undefined | undefined;
40
- }> | undefined;
41
- step?: [number, number] | undefined;
42
- };
43
- events: {
44
- [evt: string]: CustomEvent<any>;
45
- };
46
- slots: {};
1
+ import type { Without } from '../utils/types.js';
2
+ import type { ComponentProps } from 'svelte';
3
+ import GeoPath, { type GeoPathProps } from './GeoPath.svelte';
4
+ export type GraticulePropsWithoutHTML = {
5
+ lines?: Partial<ComponentProps<typeof GeoPath>> | boolean | undefined;
6
+ outline?: Partial<ComponentProps<typeof GeoPath>> | boolean | undefined;
7
+ step?: [number, number];
47
8
  };
48
- export type GraticuleProps = typeof __propDef.props;
49
- export type GraticuleEvents = typeof __propDef.events;
50
- export type GraticuleSlots = typeof __propDef.slots;
51
- export default class Graticule extends SvelteComponentTyped<GraticuleProps, GraticuleEvents, GraticuleSlots> {
52
- }
53
- export {};
9
+ export type GraticuleProps = GraticulePropsWithoutHTML & Without<GeoPathProps, Omit<GraticulePropsWithoutHTML, 'ref'>>;
10
+ declare const Graticule: import("svelte").Component<GraticuleProps, {}, "">;
11
+ type Graticule = ReturnType<typeof Graticule>;
12
+ export default Graticule;