@krazyphish/earth-react 1.0.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.
package/HISTORY.md ADDED
@@ -0,0 +1,46 @@
1
+ ## @krazyphish/earth-react
2
+
3
+ ### 版本更新历史记录
4
+
5
+ #### Version 0.1.3
6
+
7
+ 1. 修复一些示例描述错误和变量规范使用问题
8
+
9
+ #### Version 0.1.2
10
+
11
+ 1. 为所有非单例模式组件新增合适的清除函数
12
+
13
+ #### Version 0.1.1
14
+
15
+ 1. 删除所有钩子的清除函数
16
+ 2. 更改 `useEarth` 钩子实例化对象的持久性, 以防止反复渲染和挂载
17
+ 3. 删除 `useEarth` 钩子的第二个参数 `id`
18
+
19
+ #### Version 0.1.0
20
+
21
+ 1. 新增 `useAnimationManager` 以钩子形式创建动画管理器
22
+ 2. 新增 `useBillboardLayer` 以钩子形式创建广告牌图层
23
+ 3. 新增 `useCloudLayer` 以钩子形式创建云朵图层
24
+ 4. 新增 `useCluster` 以钩子形式创建聚合图层
25
+ 5. 新增 `useContextMenu` 以钩子形式创建上下文菜单
26
+ 6. 新增 `useCovering` 以钩子形式创建覆盖物图层
27
+ 7. 新增 `useDiffusePointLayer` 以钩子形式创建扩散点图层
28
+ 8. 新增 `useDrawTool` 以钩子形式创建绘制工具
29
+ 9. 新增 `useEarth` 以钩子形式创建地球实例
30
+ 10. 新增 `useEllipseLayer` 以钩子形式创建椭圆图层
31
+ 11. 新增 `useEllipsoidLayer` 以钩子形式创建椭球图层
32
+ 12. 新增 `useGlobalEvent` 以钩子形式创建全局事件
33
+ 13. 新增 `useHeatmap` 以钩子形式创建热力图
34
+ 14. 新增 `useLabelLayer` 以钩子形式创建标签图层
35
+ 15. 新增 `useMeasure` 以钩子形式创建测量工具
36
+ 16. 新增 `useModelLayer` 以钩子形式创建模型图层
37
+ 17. 新增 `useParticleLayer` 以钩子形式创建粒子系统
38
+ 18. 新增 `usePointLayer` 以钩子形式创建点图层
39
+ 19. 新增 `usePolygonLayer` 以钩子形式创建多边形图层
40
+ 20. 新增 `usePolylineLayer` 以钩子形式创建折线图层
41
+ 21. 新增 `useRadar` 以钩子形式创建雷达图层
42
+ 22. 新增 `useRectangleLayer` 以钩子形式创建矩形图层
43
+ 23. 新增 `useSensor` 以钩子形式创建传感器图层
44
+ 24. 新增 `useWallLayer` 以钩子形式创建墙体图层
45
+ 25. 新增 `useWeather` 以钩子形式创建天气系统
46
+ 26. 新增 `useWindField` 以钩子形式创建风场、洋流
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2025] [KrazyPhish]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,42 @@
1
+ ## @krazyphish/earth-react
2
+
3
+ React hooks for module [@krazyphish/earth](https://www.npmjs.com/package/@krazyphish/earth).
4
+
5
+ ### Before start
6
+
7
+ Before start using this module, install packages blow manually: [cesium](https://www.npmjs.com/package/cesium), [react](https://www.npmjs.com/package/react), [@krazyphish/earth](https://www.npmjs.com/package/@krazyphish/earth).
8
+
9
+ Then install this module:
10
+
11
+ ```shell
12
+ npm install @krazyphish/earth-react
13
+ ```
14
+
15
+ ### Get started
16
+
17
+ ```tsx
18
+ // in your map module, when initializing the cesium viewer
19
+ import { useEffect, useRef, type FC, type RefObject } from "react"
20
+ import { type Earth } from "@krazyphish/earth"
21
+ import { useEarth } from "@krazyphish/earth-react"
22
+
23
+ export default (): FC => {
24
+ const containerRef = useRef<HTMLDivElement | null>(null)
25
+ const earthRef: RefObject<Earth | null> = useEarth(containerRef)
26
+
27
+ useEffect(() => {
28
+ if (!earthRef.current) return
29
+ //doing some job
30
+ return () => {
31
+ //do not try to recycle the earth or destroy any other components
32
+ //useEarth hook or other components hooks will do it for you
33
+ }
34
+ }, [])
35
+
36
+ return (
37
+ <>
38
+ <div ref={containerRef}></div>
39
+ </>
40
+ )
41
+ }
42
+ ```
@@ -0,0 +1 @@
1
+ "use strict";const e=require("@krazyphish/earth"),r=require("react");exports.useAnimationManager=u=>{const n=r.useRef(null);return r.useEffect(()=>{u.current&&(n.current=new e.AnimationManager(u.current))},[]),n},exports.useBillboardLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.BillboardLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useCloudLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.CloudLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useCluster=(u,n)=>{const t=r.useRef(null);return r.useEffect(()=>{if(u.current)return t.current=new e.Cluster(u.current,n),()=>{var e;null===(e=t.current)||void 0===e||e.destroy(),t.current=null}},[]),t},exports.useContextMenu=u=>{const n=r.useRef(null);return r.useEffect(()=>{u.current&&(n.current=new e.ContextMenu(u.current))},[]),n},exports.useCovering=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.Covering(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useDiffusePointLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.DiffusePointLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useDrawTool=u=>{const n=r.useRef(null);return r.useEffect(()=>{u.current&&(n.current=new e.Draw(u.current))},[]),n},exports.useEarth=(u,n,t)=>{const c=r.useRef(null),s=r.useRef(e.Utils.uuid());return r.useEffect(()=>{u.current&&(c.current=e.createEarth(s.current,u.current,n,t))},[]),c},exports.useEllipseLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.EllipseLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useEllipsoidLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.EllipsoidLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useGlobalEvent=(u,n)=>{const t=r.useRef(null);return r.useEffect(()=>{u.current&&(t.current=new e.GlobalEvent(u.current,n))},[]),t},exports.useHeatmap=(u,n)=>{const t=r.useRef(null);return r.useEffect(()=>{u.current&&(t.current=new e.Heatmap(u.current,n))},[]),t},exports.useLabelLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.LabelLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useMeasure=u=>{const n=r.useRef(null);return r.useEffect(()=>{u.current&&(n.current=new e.Measure(u.current))},[]),n},exports.useModelLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.ModelLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useParticleLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.ParticleLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.usePointLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.PointLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.usePolygonLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.PolygonLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.usePolylineLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.PolylineLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useRadar=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.Radar(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useRectangleLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.RectangleLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useSensor=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.Sensor(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useWallLayer=u=>{const n=r.useRef(null);return r.useEffect(()=>{if(u.current)return n.current=new e.WallLayer(u.current),()=>{var e;null===(e=n.current)||void 0===e||e.destroy(),n.current=null}},[]),n},exports.useWeather=u=>{const n=r.useRef(null);return r.useEffect(()=>{u.current&&(n.current=new e.Weather(u.current))},[]),n},exports.useWindField=(u,n)=>{const t=r.useRef(null);return r.useEffect(()=>{u.current&&(t.current=new e.WindField(u.current,n))},[]),t};
@@ -0,0 +1,208 @@
1
+ import type {
2
+ AnimationManager,
3
+ BillboardLayer,
4
+ CloudLayer,
5
+ Cluster,
6
+ ContextMenu,
7
+ Covering,
8
+ DiffusePointLayer,
9
+ Draw,
10
+ Earth,
11
+ EllipseLayer,
12
+ EllipsoidLayer,
13
+ GlobalEvent,
14
+ Heatmap,
15
+ LabelLayer,
16
+ Measure,
17
+ ModelLayer,
18
+ ParticleLayer,
19
+ PointLayer,
20
+ PolygonLayer,
21
+ PolylineLayer,
22
+ Radar,
23
+ RectangleLayer,
24
+ Sensor,
25
+ WallLayer,
26
+ Weather,
27
+ WindField,
28
+ } from "@krazyphish/earth"
29
+ import type { Viewer } from "cesium"
30
+ import type { RefObject } from "react"
31
+
32
+ declare module "@krazyphish/earth-react" {
33
+ /**
34
+ * @description 动画管理器钩子
35
+ * @param earthRef 地球实例Ref
36
+ * @returns 动画管理器Ref
37
+ */
38
+ export const useAnimationManager: (earthRef: RefObject<Earth | null>) => RefObject<AnimationManager | null>
39
+ /**
40
+ * @description 广告牌图层钩子
41
+ * @param earthRef 地球实例Ref
42
+ * @returns 广告牌图层Ref
43
+ */
44
+ export const useBillboardLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<BillboardLayer<T> | null>
45
+ /**
46
+ * @description 云朵图层钩子
47
+ * @param earthRef 地球实例Ref
48
+ * @returns 云朵图层Ref
49
+ */
50
+ export const useCloudLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<CloudLayer<T> | null>
51
+ /**
52
+ * @description 聚合图层钩子
53
+ * @param earthRef 地球实例Ref
54
+ * @param [options] {@link Cluster.ConstructorOptions} 聚合图层构造参数
55
+ * @returns 聚合图层Ref
56
+ */
57
+ export const useCluster: (
58
+ earthRef: RefObject<Earth | null>,
59
+ options?: Cluster.ConstructorOptions
60
+ ) => RefObject<Cluster | null>
61
+ /**
62
+ * @description 上下文菜单钩子
63
+ * @param earthRef 地球实例Ref
64
+ * @returns 上下文菜单Ref
65
+ */
66
+ export const useContextMenu: (earthRef: RefObject<Earth | null>) => RefObject<ContextMenu | null>
67
+ /**
68
+ * @description 覆盖物钩子
69
+ * @param earthRef 地球实例Ref
70
+ * @returns 覆盖物Ref
71
+ */
72
+ export const useCovering: <T>(earthRef: RefObject<Earth | null>) => RefObject<Covering<T> | null>
73
+ /**
74
+ * @description 扩散点图层钩子
75
+ * @param earthRef 地球实例Ref
76
+ * @returns 扩散点图层Ref
77
+ */
78
+ export const useDiffusePointLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<DiffusePointLayer<T> | null>
79
+ /**
80
+ * @description 绘制工具钩子
81
+ * @param earthRef 地球实例Ref
82
+ * @returns 绘制工具Ref
83
+ */
84
+ export const useDrawTool: (earthRef: RefObject<Earth | null>) => RefObject<Draw | null>
85
+ /**
86
+ * @description 地球创建钩子
87
+ * @param containerRef 容器Ref
88
+ * @param [cesiumOptions] {@link Viewer.ConstructorOptions} `cesium` 构造参数
89
+ * @param [options] {@link Earth.ConstructorOptions} 地球实例构造参数
90
+ * @returns 地球实例Ref
91
+ */
92
+ export const useEarth: (
93
+ containerRef: RefObject<HTMLDivElement | null>,
94
+ cesiumOptions?: Viewer.ConstructorOptions,
95
+ options?: Earth.ConstructorOptions
96
+ ) => RefObject<Earth | null>
97
+ /**
98
+ * @description 椭圆图层钩子
99
+ * @param earthRef 地球实例Ref
100
+ * @returns 椭圆图层Ref
101
+ */
102
+ export const useEllipseLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<EllipseLayer<T> | null>
103
+ /**
104
+ * @description 椭球图层钩子
105
+ * @param earthRef 地球实例Ref
106
+ * @returns 椭球图层Ref
107
+ */
108
+ export const useEllipsoidLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<EllipsoidLayer<T> | null>
109
+ /**
110
+ * @description 全局事件钩子
111
+ * @param earthRef 地球实例Ref
112
+ * @param [delay] 事件节流的时延
113
+ * @returns 全局事件Ref
114
+ */
115
+ export const useGlobalEvent: (earthRef: RefObject<Earth | null>, delay?: number) => RefObject<GlobalEvent | null>
116
+ /**
117
+ * @description 热力图钩子
118
+ * @param earthRef 地球实例Ref
119
+ * @param [options] {@link Heatmap.ConstructorOptions} 热力图构造参数
120
+ * @returns 热力图Ref
121
+ */
122
+ export const useHeatmap: (
123
+ earthRef: RefObject<Earth | null>,
124
+ options?: Heatmap.ConstructorOptions
125
+ ) => RefObject<Heatmap | null>
126
+ /**
127
+ * @description 标签图层钩子
128
+ * @param earthRef 地球实例Ref
129
+ * @returns 标签图层Ref
130
+ */
131
+ export const useLabelLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<LabelLayer<T> | null>
132
+ /**
133
+ * @description 测量工具钩子
134
+ * @param earthRef 地球实例Ref
135
+ * @returns 测量工具Ref
136
+ */
137
+ export const useMeasure: (earthRef: RefObject<Earth | null>) => RefObject<Measure | null>
138
+ /**
139
+ * @description 模型图层钩子
140
+ * @param earthRef 地球实例Ref
141
+ * @returns 模型图层Ref
142
+ */
143
+ export const useModelLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<ModelLayer<T> | null>
144
+ /**
145
+ * @description 粒子系统图层钩子
146
+ * @param earthRef 地球实例Ref
147
+ * @returns 粒子系统图层Ref
148
+ */
149
+ export const useParticleLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<ParticleLayer<T> | null>
150
+ /**
151
+ * @description 点图层钩子
152
+ * @param earthRef 地球实例Ref
153
+ * @returns 点图层Ref
154
+ */
155
+ export const usePointLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<PointLayer<T> | null>
156
+ /**
157
+ * @description 多边形图层钩子
158
+ * @param earthRef 地球实例Ref
159
+ * @returns 多边形图层Ref
160
+ */
161
+ export const usePolygonLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<PolygonLayer<T> | null>
162
+ /**
163
+ * @description 折线图层钩子
164
+ * @param earthRef 地球实例Ref
165
+ * @returns 折线图层Ref
166
+ */
167
+ export const usePolylineLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<PolylineLayer<T> | null>
168
+ /**
169
+ * @description 雷达图层钩子
170
+ * @param earthRef 地球实例Ref
171
+ * @returns 雷达图层Ref
172
+ */
173
+ export const useRadar: <T>(earthRef: RefObject<Earth | null>) => RefObject<Radar<T> | null>
174
+ /**
175
+ * @description 矩形图层钩子
176
+ * @param earthRef 地球实例Ref
177
+ * @returns 矩形图层Ref
178
+ */
179
+ export const useRectangleLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<RectangleLayer<T> | null>
180
+ /**
181
+ * @description 传感器图层钩子
182
+ * @param earthRef 地球实例Ref
183
+ * @returns 传感器图层Ref
184
+ */
185
+ export const useSensor: <T>(earthRef: RefObject<Earth | null>) => RefObject<Sensor<T> | null>
186
+ /**
187
+ * @description 墙体图层钩子
188
+ * @param earthRef 地球实例Ref
189
+ * @returns 墙体图层Ref
190
+ */
191
+ export const useWallLayer: <T>(earthRef: RefObject<Earth | null>) => RefObject<WallLayer<T> | null>
192
+ /**
193
+ * @description 天气系统钩子
194
+ * @param earthRef 地球实例Ref
195
+ * @returns 天气系统Ref
196
+ */
197
+ export const useWeather: <T>(earthRef: RefObject<Earth | null>) => RefObject<Weather<T> | null>
198
+ /**
199
+ * @description 风场、洋流钩子
200
+ * @param earthRef 地球实例Ref
201
+ * @param options {@link WindField.ConstructorOptions} 风场、洋流构造参数
202
+ * @returns 风场、洋流Ref
203
+ */
204
+ export const useWindField: (
205
+ earthRef: RefObject<Earth | null>,
206
+ options: WindField.ConstructorOptions
207
+ ) => RefObject<WindField | null>
208
+ }
@@ -0,0 +1 @@
1
+ import{AnimationManager as r,BillboardLayer as n,CloudLayer as u,Cluster as t,ContextMenu as e,Covering as c,DiffusePointLayer as l,Draw as o,Utils as s,createEarth as i,EllipseLayer as d,EllipsoidLayer as v,GlobalEvent as w,Heatmap as a,LabelLayer as f,Measure as y,ModelLayer as m,ParticleLayer as p,PointLayer as h,PolygonLayer as k,PolylineLayer as x,Radar as z,RectangleLayer as b,Sensor as g,WallLayer as j,Weather as q,WindField as A}from"@krazyphish/earth";import{useRef as B,useEffect as C}from"react";const useAnimationManager=n=>{const u=B(null);return C(()=>{n.current&&(u.current=new r(n.current))},[]),u},useBillboardLayer=r=>{const u=B(null);return C(()=>{if(r.current)return u.current=new n(r.current),()=>{var r;null===(r=u.current)||void 0===r||r.destroy(),u.current=null}},[]),u},useCloudLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new u(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useCluster=(r,n)=>{const u=B(null);return C(()=>{if(r.current)return u.current=new t(r.current,n),()=>{var r;null===(r=u.current)||void 0===r||r.destroy(),u.current=null}},[]),u},useContextMenu=r=>{const n=B(null);return C(()=>{r.current&&(n.current=new e(r.current))},[]),n},useCovering=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new c(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useDiffusePointLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new l(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useDrawTool=r=>{const n=B(null);return C(()=>{r.current&&(n.current=new o(r.current))},[]),n},useEarth=(r,n,u)=>{const t=B(null),e=B(s.uuid());return C(()=>{r.current&&(t.current=i(e.current,r.current,n,u))},[]),t},useEllipseLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new d(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useEllipsoidLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new v(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useGlobalEvent=(r,n)=>{const u=B(null);return C(()=>{r.current&&(u.current=new w(r.current,n))},[]),u},useHeatmap=(r,n)=>{const u=B(null);return C(()=>{r.current&&(u.current=new a(r.current,n))},[]),u},useLabelLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new f(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useMeasure=r=>{const n=B(null);return C(()=>{r.current&&(n.current=new y(r.current))},[]),n},useModelLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new m(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useParticleLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new p(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},usePointLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new h(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},usePolygonLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new k(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},usePolylineLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new x(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useRadar=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new z(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useRectangleLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new b(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useSensor=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new g(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useWallLayer=r=>{const n=B(null);return C(()=>{if(r.current)return n.current=new j(r.current),()=>{var r;null===(r=n.current)||void 0===r||r.destroy(),n.current=null}},[]),n},useWeather=r=>{const n=B(null);return C(()=>{r.current&&(n.current=new q(r.current))},[]),n},useWindField=(r,n)=>{const u=B(null);return C(()=>{r.current&&(u.current=new A(r.current,n))},[]),u};export{useAnimationManager,useBillboardLayer,useCloudLayer,useCluster,useContextMenu,useCovering,useDiffusePointLayer,useDrawTool,useEarth,useEllipseLayer,useEllipsoidLayer,useGlobalEvent,useHeatmap,useLabelLayer,useMeasure,useModelLayer,useParticleLayer,usePointLayer,usePolygonLayer,usePolylineLayer,useRadar,useRectangleLayer,useSensor,useWallLayer,useWeather,useWindField};
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@krazyphish/earth-react",
3
+ "author": "KrazyPhish",
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs.js",
7
+ "module": "./dist/index.es.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.es.js",
13
+ "require": "./dist/index.cjs.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "HISTORY.md",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "sideEffects": false,
23
+ "license": "MIT",
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "peerDependencies": {
28
+ "react": "^19.1.0",
29
+ "@krazyphish/earth": "1.0.0 *"
30
+ },
31
+ "devDependencies": {
32
+ "@rollup/plugin-commonjs": "^28.0.2",
33
+ "@rollup/plugin-node-resolve": "^15.3.1",
34
+ "@rollup/plugin-terser": "^0.4.4",
35
+ "@rollup/plugin-typescript": "^11.1.6",
36
+ "@tsconfig/node20": "^20.1.4",
37
+ "@types/node": "^20.14.15",
38
+ "@types/react": "^19.1.8",
39
+ "cesium": "^1.130.1",
40
+ "react": "^19.1.0",
41
+ "rimraf": "^6.0.1",
42
+ "rollup": "^4.44.1",
43
+ "ts-loader": "^9.5.1",
44
+ "ts-node": "^10.9.2",
45
+ "typescript": "^5.8.3",
46
+ "@krazyphish/earth": "1.0.0",
47
+ "build-utils": "1.0.0"
48
+ },
49
+ "scripts": {
50
+ "build": "pnpm release && pnpm type",
51
+ "clean": "rimraf -rf dist/",
52
+ "release": "pnpm clean && rollup -c rollup.config.ts --bundleConfigAsCjs",
53
+ "type": "ts-node ./scripts/build.ts"
54
+ }
55
+ }