@idmwx/idmui-gl3 0.0.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 (40) hide show
  1. package/README.md +27 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +5620 -0
  4. package/dist/index.umd.cjs +204 -0
  5. package/dist/mapbox/index.d.ts +6 -0
  6. package/dist/mapbox/src/components/layer.vue.d.ts +82 -0
  7. package/dist/mapbox/src/components/other/alertZone.vue.d.ts +38 -0
  8. package/dist/mapbox/src/components/other/ecaZone.vue.d.ts +32 -0
  9. package/dist/mapbox/src/components/other/enc.vue.d.ts +54 -0
  10. package/dist/mapbox/src/components/other/gmdssArea.vue.d.ts +32 -0
  11. package/dist/mapbox/src/components/other/latLng.vue.d.ts +73 -0
  12. package/dist/mapbox/src/components/other/loadLines.vue.d.ts +32 -0
  13. package/dist/mapbox/src/components/other/measure.vue.d.ts +52 -0
  14. package/dist/mapbox/src/components/other/point.vue.d.ts +49 -0
  15. package/dist/mapbox/src/components/other/port.vue.d.ts +41 -0
  16. package/dist/mapbox/src/components/other/specialArea.vue.d.ts +32 -0
  17. package/dist/mapbox/src/components/other/terminator.vue.d.ts +27 -0
  18. package/dist/mapbox/src/components/other/timezone.vue.d.ts +32 -0
  19. package/dist/mapbox/src/components/other/vra.vue.d.ts +32 -0
  20. package/dist/mapbox/src/components/other/warZone.vue.d.ts +32 -0
  21. package/dist/mapbox/src/components/weather/arctic.vue.d.ts +50 -0
  22. package/dist/mapbox/src/components/weather/current.vue.d.ts +77 -0
  23. package/dist/mapbox/src/components/weather/currentParticle.vue.d.ts +68 -0
  24. package/dist/mapbox/src/components/weather/iceberg.vue.d.ts +33 -0
  25. package/dist/mapbox/src/components/weather/precip3h.vue.d.ts +50 -0
  26. package/dist/mapbox/src/components/weather/prmsl.vue.d.ts +35 -0
  27. package/dist/mapbox/src/components/weather/sigWave.vue.d.ts +34 -0
  28. package/dist/mapbox/src/components/weather/swell.vue.d.ts +35 -0
  29. package/dist/mapbox/src/components/weather/temp.vue.d.ts +50 -0
  30. package/dist/mapbox/src/components/weather/tropical.vue.d.ts +66 -0
  31. package/dist/mapbox/src/components/weather/visibility.vue.d.ts +49 -0
  32. package/dist/mapbox/src/components/weather/waterTemp.vue.d.ts +50 -0
  33. package/dist/mapbox/src/components/weather/wind.vue.d.ts +78 -0
  34. package/dist/mapbox/src/components/weather/windParticle.vue.d.ts +68 -0
  35. package/dist/mapbox/src/helper.d.ts +161 -0
  36. package/dist/mapbox/src/index.vue.d.ts +94 -0
  37. package/dist/pi.svg +48 -0
  38. package/dist/style.css +1 -0
  39. package/dist/vite.svg +1 -0
  40. package/package.json +70 -0
@@ -0,0 +1,68 @@
1
+ export default _sfc_main;
2
+ declare namespace _sfc_main {
3
+ const name: string;
4
+ namespace props {
5
+ namespace factor {
6
+ const type: ObjectConstructor;
7
+ }
8
+ namespace viewport {
9
+ export { Viewport as type };
10
+ }
11
+ namespace bottom {
12
+ const type_1: StringConstructor;
13
+ export { type_1 as type };
14
+ const _default: string;
15
+ export { _default as default };
16
+ }
17
+ namespace toggleVersion {
18
+ const type_2: NumberConstructor;
19
+ export { type_2 as type };
20
+ }
21
+ }
22
+ function data(): {
23
+ program: undefined;
24
+ context: undefined;
25
+ texture: undefined;
26
+ rampColor: undefined;
27
+ aPositionBuffer: undefined;
28
+ webgl: WebGL;
29
+ etime: undefined;
30
+ wrapper: undefined;
31
+ animation: undefined;
32
+ particleContext: undefined;
33
+ particleTexture: undefined;
34
+ particleOptions: {
35
+ fadeOpacity: number;
36
+ speedFactor: number;
37
+ dropRate: number;
38
+ dropRateBump: number;
39
+ uvRange: number[];
40
+ sRange: number[];
41
+ };
42
+ paused: boolean;
43
+ initial: boolean;
44
+ right: number;
45
+ };
46
+ const watch: {
47
+ 'factor.version': {
48
+ handler(): void;
49
+ deep: boolean;
50
+ };
51
+ toggleVersion: {
52
+ handler(): void;
53
+ immediate: boolean;
54
+ };
55
+ };
56
+ namespace methods {
57
+ function handleRender(): void;
58
+ function handleClear(): void;
59
+ function handleSetup(): void;
60
+ function handleParticleSetup(): void;
61
+ function handleDraw(): Promise<void>;
62
+ function handleResize(): void;
63
+ function handlePause(): void;
64
+ function handlePlay(): void;
65
+ }
66
+ }
67
+ import { Viewport } from '../../helper.ts';
68
+ import { WebGL } from '../../helper.ts';
@@ -0,0 +1,161 @@
1
+ import mapboxgl from 'mapbox-gl';
2
+ export interface ParticleOptions {
3
+ fadeOpacity: number;
4
+ speedFactor: number;
5
+ dropRate: number;
6
+ dropRateBump: number;
7
+ uvRange: number[];
8
+ sRange: number[];
9
+ }
10
+ export declare class Viewport {
11
+ private map;
12
+ private mercator;
13
+ rampColorLayer: string;
14
+ rampColorSource: string;
15
+ particleLayer: string;
16
+ particleSource: string;
17
+ rampColorCanvas: HTMLCanvasElement;
18
+ particleCanvas: HTMLCanvasElement;
19
+ ratio: number;
20
+ constructor(map: mapboxgl.Map);
21
+ /**
22
+ * 转换为[-180, 180]的经度,且包含转换次数
23
+ * @param lng
24
+ * @param n
25
+ */
26
+ private convertNLng;
27
+ /**
28
+ * [4326坐标]
29
+ * 返回视窗边界经纬度(从西北方向逆时针返回四个角的经纬度)
30
+ * 依次为: NW, NE, SE, SW
31
+ * @param map
32
+ * @return [[lng, lat], [lng, lat], [lng, lat], [lng, lat]]
33
+ */
34
+ getBoundLngLat(): number[][];
35
+ /**
36
+ * [视窗像素坐标]
37
+ * @see https://github.com/mapbox/sphericalmercator
38
+ * 返回视窗边界像素
39
+ * 依次为: 左下角(lf = left bottom)、右上角(rt = right top)
40
+ * @param [lb.x, lb.y, rt.x, rt.y]
41
+ */
42
+ getBoundPixel(): any[];
43
+ /**
44
+ * [视窗边界像素宽度]
45
+ */
46
+ getBoundRange(): any[];
47
+ /**
48
+ * 获取视窗世界(多世界复本)
49
+ * @param pixels
50
+ * @param zoom
51
+ */
52
+ getWorldCopy(pixels: number[], zoom: number): number[][];
53
+ resize(): void;
54
+ toggle(visible: boolean): void;
55
+ toggleParticle(visible: boolean): void;
56
+ }
57
+ export declare class WebGL {
58
+ /**
59
+ * 创建着色器
60
+ * @see https://webglfundamentals.org/webgl/lessons/zh_cn/webgl-shaders-and-glsl.html
61
+ * @param gl
62
+ * @param type [VERTEX_SHADER, FRAGMENT_SHADER]
63
+ * @param schema 着色器渲染代码[GLSL]
64
+ */
65
+ createShader(gl: WebGLRenderingContext, type: GLenum, schema: any): WebGLShader | null;
66
+ /**
67
+ * 创建纹理
68
+ * @see https://blog.csdn.net/qq_37987033/article/details/128745577
69
+ * @param gl
70
+ * @param minFilter
71
+ * @param magFilter
72
+ * @param wrapFilter
73
+ * @param data
74
+ * @param width??
75
+ * @param height??
76
+ */
77
+ createTexture(gl: WebGLRenderingContext, minFilter: GLint, magFilter: GLint, wrapFilter: GLint, data: Uint8Array | HTMLCanvasElement | HTMLImageElement | undefined, width?: number | undefined, height?: number | undefined): WebGLTexture | null;
78
+ /**
79
+ * 创建数据资源
80
+ * @param type [array, element]
81
+ * array: ARRAY_BUFFER
82
+ * element: ELEMENT_ARRAY_BUFFER
83
+ * @param resource 顶点数据
84
+ */
85
+ createDataBuffer(gl: WebGLRenderingContext, type: string, resource: BufferSource | undefined): WebGLBuffer | null;
86
+ /**
87
+ * 创建程序
88
+ * @param gl
89
+ * @param vertexSchema
90
+ * @param fragmentSchema
91
+ */
92
+ createProgram(gl: WebGLRenderingContext, vertexSchema: string, fragmentSchema: string): WebGLProgram | null;
93
+ /**
94
+ * 创建程序并提取attrib & uniform参数
95
+ * @param gl
96
+ * @param vertexSchema
97
+ * @param fragmentSchema
98
+ */
99
+ private createProgramWrapper;
100
+ /**
101
+ * 初始化渐变色纹理
102
+ * @param colors
103
+ */
104
+ setup(context: WebGLRenderingContext | null, colors: Array<[number, string]>, int8?: boolean, width?: number, height?: number): {
105
+ canvas: HTMLCanvasElement;
106
+ texture: WebGLTexture | null;
107
+ } | undefined;
108
+ setupParticle(context: WebGLRenderingContext, num?: number): {
109
+ resolution: number;
110
+ total: number;
111
+ texture0: WebGLTexture | null;
112
+ texture1: WebGLTexture | null;
113
+ indexBuffer: WebGLBuffer | null;
114
+ };
115
+ bind(context: WebGLRenderingContext | null, vertexSchema: string, fragmentSchema: string): {
116
+ program: WebGLProgram;
117
+ aPositionBuffer: WebGLBuffer | null;
118
+ } | {
119
+ program?: undefined;
120
+ aPositionBuffer?: undefined;
121
+ };
122
+ bindParticle(gl: WebGLRenderingContext, drawVert: string, drawFrag: string, quadVert: string, screenFrag: string, updateFrag: string): {
123
+ particle: {
124
+ program: WebGLProgram;
125
+ } | undefined;
126
+ screen: {
127
+ program: WebGLProgram;
128
+ } | undefined;
129
+ update: {
130
+ program: WebGLProgram;
131
+ } | undefined;
132
+ quadBuffer: WebGLBuffer | null;
133
+ frameBuffer: WebGLFramebuffer | null;
134
+ };
135
+ draw(viewport: Viewport, context: WebGLRenderingContext | null, program: WebGLProgram | null, texture: WebGLTexture | null, colorTexture: WebGLTexture | null, aPositionBuffer: WebGLBuffer | null, options?: ParticleOptions): void;
136
+ drawParticle(viewport: Viewport, gl: WebGLRenderingContext, factorTexture: WebGLTexture, wrapper: any, options: ParticleOptions): void;
137
+ private renderScreen;
138
+ private renderScreenTexture;
139
+ renderParticles(viewport: Viewport, gl: WebGLRenderingContext, wrapper: any, options: ParticleOptions): void;
140
+ updateParticles(viewport: Viewport, gl: WebGLRenderingContext, wrapper: any, options: ParticleOptions): void;
141
+ resize(viewport: Viewport, gl: WebGLRenderingContext): {
142
+ screenTexture: WebGLTexture | null;
143
+ backgroundTexture: WebGLTexture | null;
144
+ };
145
+ loadImg(data: any): Promise<HTMLImageElement>;
146
+ }
147
+ /**
148
+ * WebGL (GLSL)渲染语法
149
+ */
150
+ export declare class WebGLSchema {
151
+ static vertexSchema: string;
152
+ static uvFragmentSchema: string;
153
+ static fragmentSchema: string;
154
+ }
155
+ export declare class ParticleSchema {
156
+ static vertexSchema: string;
157
+ static fragmentSchema: string;
158
+ static quadVertSchema: string;
159
+ static screenFragmentSchema: string;
160
+ static updateFragmentSchema: string;
161
+ }
@@ -0,0 +1,94 @@
1
+ export default _sfc_main;
2
+ declare namespace _sfc_main {
3
+ const name: string;
4
+ const components: undefined;
5
+ namespace props {
6
+ namespace map {
7
+ const type: ObjectConstructor;
8
+ }
9
+ namespace token {
10
+ const type_1: StringConstructor;
11
+ export { type_1 as type };
12
+ }
13
+ namespace ts {
14
+ const type_2: StringConstructor;
15
+ export { type_2 as type };
16
+ }
17
+ namespace beforeLayer {
18
+ const type_3: StringConstructor;
19
+ export { type_3 as type };
20
+ const _default: string;
21
+ export { _default as default };
22
+ }
23
+ }
24
+ function data(): {
25
+ weatherLayers: {};
26
+ activeWeatherLayers: never[];
27
+ weatherWeight: number;
28
+ otherLayers: {};
29
+ otherWeight: number;
30
+ showCoord: boolean;
31
+ showMeasure: boolean;
32
+ showPoint: boolean;
33
+ show3d: boolean;
34
+ meteo: undefined;
35
+ source: string;
36
+ gateway: string;
37
+ zoom: number;
38
+ viewport: undefined;
39
+ particleFactor: undefined;
40
+ showRampColor: boolean;
41
+ activeWindLayer: boolean;
42
+ showWindParticle: boolean;
43
+ showCurrentParticle: boolean;
44
+ toggleVersion: number;
45
+ enc: string;
46
+ defaultMeteoToken: string;
47
+ };
48
+ const watch: {
49
+ ts: {
50
+ handler(newV: any, oldV: any): void;
51
+ immediate: boolean;
52
+ };
53
+ map: {
54
+ handler(): void;
55
+ immediate: boolean;
56
+ };
57
+ activeWeatherLayers: {
58
+ handler(): false | undefined;
59
+ immediate: boolean;
60
+ };
61
+ 'particleFactor.particle': {
62
+ handler(): void;
63
+ immediate: boolean;
64
+ };
65
+ enc: {
66
+ handler(newV: any, oldV: any): void;
67
+ };
68
+ };
69
+ namespace methods {
70
+ function fetchWeatherLayers(options?: {
71
+ tropicals: boolean;
72
+ }): Promise<void>;
73
+ function fetchOtherLayers(options?: {
74
+ all: boolean;
75
+ dayNight: boolean;
76
+ enc: boolean;
77
+ }): Promise<void>;
78
+ function handleRampColorState(): void;
79
+ function handleRampColorInitial(): void;
80
+ function handleDragEndWithZoom4Json(): void;
81
+ function handleDragEndWithZoom4Image(): void;
82
+ function handleBboxClip(fc: any, bounds: any): any[];
83
+ function handleWeatherLayerToggle(): void;
84
+ function handleBeforeLayerToggle(): void;
85
+ function handleDateChange(options?: {
86
+ tropicals: boolean;
87
+ }): void;
88
+ function handleWeatherLayerChange(layers: any, activeLayers: any, source: any): void;
89
+ function handleOtherLayerChange(layers: any): void;
90
+ function handlePointChange(point: any): Promise<void>;
91
+ function handle3dToggle(show3d: any): void;
92
+ function handleParticle(row: any): void;
93
+ }
94
+ }
package/dist/pi.svg ADDED
@@ -0,0 +1,48 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg"
2
+ width="300" height="300" viewBox="0 0 1280.000000 1280.000000"
3
+ preserveAspectRatio="xMidYMid meet">
4
+ <g transform="translate(0.000000,1280.000000) scale(0.100000,-0.100000)"
5
+ fill="#000000" stroke="none">
6
+ <path d="M4225 11533 c-100 -6 -311 -23 -335 -27 -14 -3 -59 -10 -100 -16
7
+ -408 -60 -813 -229 -1110 -465 -98 -77 -307 -287 -393 -395 -37 -47 -74 -93
8
+ -82 -102 -7 -9 -22 -29 -32 -45 -9 -15 -20 -30 -23 -33 -16 -13 -139 -202
9
+ -225 -345 -94 -157 -256 -467 -330 -635 -21 -47 -48 -108 -60 -136 -71 -158
10
+ -234 -584 -250 -654 -2 -8 -8 -37 -14 -63 -27 -117 -16 -290 23 -366 40 -76
11
+ 162 -100 372 -73 118 16 204 44 274 92 61 41 136 119 179 185 14 22 28 42 31
12
+ 45 3 3 19 25 35 50 17 25 34 50 38 55 4 6 34 46 65 90 101 143 233 300 336
13
+ 398 289 278 518 397 871 452 58 10 122 14 328 25 184 10 214 9 256 -5 106 -35
14
+ 121 -98 96 -410 -3 -38 -7 -104 -10 -145 -17 -256 -42 -587 -50 -670 -20 -206
15
+ -26 -262 -39 -400 -19 -190 -34 -332 -41 -385 -3 -22 -10 -76 -15 -120 -6 -44
16
+ -17 -132 -25 -195 -8 -63 -19 -142 -24 -175 -5 -33 -14 -94 -20 -135 -15 -102
17
+ -38 -247 -57 -355 -9 -49 -18 -101 -20 -115 -5 -26 -42 -220 -50 -255 -8 -40
18
+ -24 -120 -28 -140 -24 -118 -69 -303 -131 -535 -146 -551 -395 -1063 -780
19
+ -1610 -25 -36 -53 -76 -63 -90 -9 -14 -19 -27 -22 -30 -17 -17 -182 -264 -250
20
+ -375 -152 -247 -219 -413 -276 -680 -27 -127 -26 -365 2 -505 64 -314 256
21
+ -557 538 -685 244 -110 548 -108 857 5 74 26 235 110 272 140 152 125 200 168
22
+ 241 219 27 33 52 61 55 61 4 0 15 13 24 30 10 16 23 35 30 42 7 7 26 33 43 58
23
+ 184 265 381 726 493 1154 89 340 192 880 255 1346 70 507 116 894 162 1355 2
24
+ 28 6 66 9 85 5 43 11 101 30 310 8 91 17 188 20 215 5 52 21 236 30 340 3 33
25
+ 10 112 15 175 9 106 63 792 75 955 3 39 7 99 10 135 7 94 14 192 20 295 3 50
26
+ 8 119 10 155 3 36 10 135 15 220 37 580 40 602 75 657 9 14 38 35 63 46 47 22
27
+ 49 22 963 25 862 2 919 2 965 -15 33 -13 56 -30 72 -53 23 -33 24 -41 18 -140
28
+ -3 -58 -8 -121 -11 -140 -2 -19 -9 -82 -15 -140 -5 -58 -14 -150 -20 -205 -24
29
+ -227 -44 -430 -55 -550 -3 -27 -7 -72 -10 -100 -14 -139 -14 -137 -45 -465
30
+ -30 -318 -48 -523 -55 -615 -2 -33 -7 -85 -10 -115 -2 -30 -7 -86 -10 -125 -3
31
+ -38 -7 -92 -10 -120 -3 -27 -7 -84 -10 -125 -20 -286 -26 -373 -35 -512 -5
32
+ -86 -11 -190 -14 -230 -3 -40 -8 -127 -11 -193 -3 -66 -10 -219 -16 -340 -20
33
+ -390 6 -1130 52 -1530 6 -49 12 -107 15 -127 2 -21 9 -68 15 -105 6 -38 12
34
+ -79 14 -93 3 -31 32 -192 44 -245 111 -505 245 -828 465 -1115 27 -36 56 -72
35
+ 65 -81 9 -8 32 -34 51 -58 61 -75 230 -220 345 -297 333 -222 693 -309 1115
36
+ -270 217 21 480 98 697 206 120 59 284 160 348 212 229 190 372 331 457 451
37
+ 12 18 30 41 40 51 10 11 18 23 18 27 0 4 6 14 13 21 62 66 217 356 300 563
38
+ 157 394 304 1011 333 1401 20 271 -119 446 -361 453 -165 5 -295 -61 -373
39
+ -191 -17 -30 -52 -107 -77 -171 -109 -290 -191 -439 -303 -553 -85 -88 -95
40
+ -96 -167 -140 -229 -138 -516 -160 -774 -57 -70 28 -167 83 -216 123 -47 39
41
+ -148 142 -175 178 -14 18 -33 43 -43 54 -33 40 -126 243 -156 343 -59 191 -96
42
+ 423 -109 670 -18 350 -2 1241 33 1805 15 249 36 562 40 615 3 33 7 85 10 115
43
+ 39 461 86 924 130 1275 71 571 75 585 180 632 37 17 101 18 915 23 771 4 883
44
+ 7 940 22 36 9 107 24 158 33 52 9 118 27 148 40 101 45 175 134 211 254 14 49
45
+ 17 128 20 596 3 360 1 568 -7 625 -20 157 -96 273 -216 330 -132 64 90 60
46
+ -3744 58 -1917 -1 -3507 -3 -3535 -5z"/>
47
+ </g>
48
+ </svg>
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ @charset "UTF-8";:root{--idm-white: rgba(255, 255, 255, 1);--idm-white-9: rgba(255, 255, 255, .9);--idm-white-8: rgba(255, 255, 255, .8);--idm-white-7: rgba(255, 255, 255, .7);--idm-white-6: rgba(255, 255, 255, .6);--idm-white-5: rgba(255, 255, 255, .5);--idm-white-4: rgba(255, 255, 255, .4);--idm-white-3: rgba(255, 255, 255, .3);--idm-white-2: rgba(255, 255, 255, .2);--idm-white-1: rgba(255, 255, 255, .1);--idm-black: rgba(0, 0, 0, 1);--idm-black-9: rgba(0, 0, 0, .9);--idm-black-8: rgba(0, 0, 0, .8);--idm-black-7: rgba(0, 0, 0, .7);--idm-black-6: rgba(0, 0, 0, .6);--idm-black-5: rgba(0, 0, 0, .5);--idm-black-4: rgba(0, 0, 0, .4);--idm-black-3: rgba(0, 0, 0, .3);--idm-black-2: rgba(0, 0, 0, .2);--idm-black-1: rgba(0, 0, 0, .1);--idm-gray-light: rgba(239, 239, 239, 1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-light: #6c8ad9;--idm-primary-color-light2: #a7c4ff;--idm-primary-color-dark: #053a7e;--idm-primary-color-dark2: #002e6b;--idm-primary-color-9: rgba(42, 87, 183, .9);--idm-primary-color-8: rgba(42, 87, 183, .8);--idm-primary-color-7: rgba(42, 87, 183, .7);--idm-primary-color-6: rgba(42, 87, 183, .6);--idm-primary-color-5: rgba(42, 87, 183, .5);--idm-primary-color-4: rgba(42, 87, 183, .4);--idm-primary-color-3: rgba(42, 87, 183, .3);--idm-primary-color-2: rgba(42, 87, 183, .2);--idm-primary-color-1: rgba(42, 87, 183, .1);--idm-success-color: #0ddd9f;--idm-success-color-light: #92f7d9;--idm-success-color-dark: #06a074;--idm-success-color-dark2: #06694c;--idm-warning-color: #ff9500;--idm-warning-color-light: #ffcc00;--idm-warning-color-dark: #c77402;--idm-danger-color: #f44336;--idm-danger-color-light: #fb796e;--idm-danger-color-dark: #ad251b;--idm-info-color: #6e6e6e;--idm-info-color-light: #969696;--idm-info-color-light2: #c0c0c0;--idm-info-color-light3: #e2e2e2;--idm-info-color-dark: #494949;--idm-dangerous: #f44336;--idm-severe: #ff9500;--idm-heavy: #ffff00;--idm-vessel-cargo-color: lightgreen;--idm-vessel-tanker-color: red;--idm-vessel-passenger-color: blue;--idm-vessel-other-color: lightgrey;--idm-perf-cii-a: var(--idm-success-color);--idm-perf-cii-b: var(--idm-success-color-light);--idm-perf-cii-c: var(--idm-warning-color);--idm-perf-cii-d: var(--idm-danger-color-light);--idm-perf-cii-e: var(--idm-danger-color);--idm-text-shadow: 0px 0px 4px rgba(0, 0, 0, 1);--idm-dashed-border: 1px dashed var(--idm-white-5);--idm-solid-border: 1px solid var(--idm-white-4);--idm-background-color: var(--idm-primary-color-9);--idm-background-color-dark: var(--idm-primary-color-dark);--idm-background-color-light: var(--idm-primary-color-light);--idm-background-color-light2: #f3f5f8;--idm-active-background-light: linear-gradient(130deg, rgba(142, 163, 255, .93) 20%, rgb(90 67 193 / 93%) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(41, 32, 165) 0%, rgba(44, 93, 184) 80%, rgba(32, 90, 165) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-blink-animation: blink .8s ease-out infinite alternate}:root[colorTheme=black]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(0, 0, 0, .8) 0%, rgba(0, 0, 0, .8) 80%, rgb(0, 0, 0, .8) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-right: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-background-linear-gradient-left: linear-gradient(to top, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, .7) 70%, rgb(0, 0, 0, .7) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(117, 117, 117, .93) 30%, rgba(200, 200, 200, .93) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(253, 253, 253), 0 0 21px rgb(226, 226, 226), 0 0 30px rgba(185, 185, 185, .4), 0 0 12px rgba(67, 67, 67, .6), 0 0 22px rgba(27, 27, 27, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(0, 0, 0, .7);--idm-primary-color-light: #757575;--idm-primary-color-light2: #a5a5a5;--idm-primary-color-dark: rgba(0, 0, 0, .8);--idm-primary-color-dark2: rgba(0, 0, 0, 1);--idm-primary-color-9: rgba(0, 0, 0, .9);--idm-primary-color-7: rgba(0, 0, 0, .7);--idm-primary-color-5: rgba(0, 0, 0, .5);--idm-primary-color-3: rgba(0, 0, 0, .3);--idm-primary-color-1: rgba(0, 0, 0, .1)}:root[colorTheme=blue]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(41, 32, 165) 0%, rgba(44, 93, 184) 80%, rgba(32, 90, 165) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(19, 23, 152, .85) 0%, rgba(44, 93, 184, .85) 80%, rgba(64, 110, 196, .85) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(142, 163, 255, .93) 20%, rgb(90 67 193 / 93%) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-light: #6c8ad9;--idm-primary-color-light2: #a7c4ff;--idm-primary-color-dark: #053a7e;--idm-primary-color-dark2: #002e6b;--idm-primary-color-9: rgba(42, 87, 183, .9);--idm-primary-color-8: rgba(42, 87, 183, .8);--idm-primary-color-7: rgba(42, 87, 183, .7);--idm-primary-color-6: rgba(42, 87, 183, .6);--idm-primary-color-5: rgba(42, 87, 183, .5);--idm-primary-color-4: rgba(42, 87, 183, .4);--idm-primary-color-3: rgba(42, 87, 183, .3);--idm-primary-color-2: rgba(42, 87, 183, .2);--idm-primary-color-1: rgba(42, 87, 183, .1)}:root[colorTheme=dark-blue]{--idm-background-opaque-linear-gradient-top: linear-gradient(to top, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-top: linear-gradient(to top, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-bottom: linear-gradient(to bottom, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-right: linear-gradient(to right, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-background-linear-gradient-left: linear-gradient(to left, rgba(16, 22, 79, .85) 0%, rgba(15, 41, 89, .85) 80%, rgba(19, 47, 108, .85) 100%);--idm-active-background-light: linear-gradient(130deg, rgba(104, 104, 226, .93) 20%, rgba(22, 49, 182, .93) 100%);--idm-active-text-shadow-light: 0 0 7px rgb(194, 255, 247), 0 0 21px rgb(194, 255, 247), 0 0 30px rgba(182, 211, 207, .4), 0 0 12px rgba(15, 115, 223, .6), 0 0 22px rgba(15, 115, 223, .8), 0 0 38px rgba(15, 115, 223, .9), 0 0 60px rgba(15, 115, 223, 1);--idm-primary-color: rgba(42, 87, 183, 1);--idm-primary-color-light: #6266e0;--idm-primary-color-light2: #89b0ff;--idm-primary-color-dark: #00224e;--idm-primary-color-dark2: #021a39;--idm-primary-color-9: rgba(19, 47, 108, .9);--idm-primary-color-7: rgba(19, 47, 108, .7);--idm-primary-color-5: rgba(19, 47, 108, .5);--idm-primary-color-3: rgba(19, 47, 108, .3);--idm-primary-color-1: rgba(19, 47, 108, .1)}@font-face{font-family:iconfont;src:url(https://iconfont.idmwx.com/iconfont.woff2) format("woff2"),url(https://iconfont.idmwx.com/iconfont.woff) format("woff"),url(https://iconfont.idmwx.com/iconfont.ttf) format("truetype"),url(https://iconfont.idmwx.com/iconfont.svg?#iconfont) format("svg")}.iconfont{font-family:iconfont!important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex-start{display:flex;align-items:center;justify-content:flex-start}.flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-center{display:flex;align-items:center;justify-content:center}.flex-space{display:flex;align-items:center;justify-content:space-between}.flex-around{display:flex;align-items:center;justify-content:space-around}.flex-evenly{display:flex;align-items:center;justify-content:space-evenly}.flex{flex:1}.dropdown{position:relative;display:inline-block!important}.dropdown .dropdown-content{display:none;position:absolute;z-index:1}.dropdown:hover .dropdown-content{display:block}.loading{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--idm-black-5);z-index:1000;display:flex;justify-content:center;align-items:center;flex-direction:column}.loading i{font-size:30px;color:var(--idm-white);margin-bottom:16px;animation:rotate 2s linear infinite}.loading div{color:var(--idm-white);font-size:16px}@keyframes blink{0%{box-shadow:0 0 20px var(--idm-warning-color-dark) inset}to{box-shadow:0 0 20px var(--idm-success-color) inset}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.idm-gl-layer .fade-enter-active[data-v-66a5718f],.idm-gl-layer .fade-leave-active[data-v-66a5718f]{transition:opacity .4s}.idm-gl-layer .fade-enter[data-v-66a5718f],.idm-gl-layer .fade-leave-to[data-v-66a5718f]{opacity:0}.idm-gl-layer .menu-bar-box[data-v-66a5718f]{position:absolute;overflow-y:hidden;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;transition:all .4s ease-in-out;z-index:2}.idm-gl-layer .menu-bar-box .bar-item[data-v-66a5718f]{position:relative;margin-bottom:15px;border-radius:5px;background:var(--idm-white);cursor:pointer;box-shadow:0 2px 12px #0003}.idm-gl-layer .menu-bar-box .bar-item .menu-icon[data-v-66a5718f]{padding:8px;display:flex}.idm-gl-layer .menu-bar-box .bar-item .menu-icon[data-v-66a5718f]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.idm-gl-layer .menu-bar-box .bar-item .menu-icon[data-v-66a5718f]:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.idm-gl-layer .menu-bar-box .bar-item .menu-icon span[data-v-66a5718f]{font-size:20px;font-weight:600;color:var(--idm-black-8)}.idm-gl-layer .menu-bar-box .bar-item .menu-icon.active[data-v-66a5718f]{background:var(--idm-primary-color)}.idm-gl-layer .menu-bar-box .bar-item .menu-icon.active span[data-v-66a5718f]{color:var(--idm-white)}.idm-gl-layer .layer[data-v-66a5718f]{cursor:pointer;display:inline-flex;align-items:center;padding:5px 0}.idm-gl-layer .layer.disabled[data-v-66a5718f]{cursor:not-allowed}.idm-gl-layer .layer.disabled span[data-v-66a5718f]{color:var(--idm-black-6)}.idm-gl-layer .layer.active .checkbox[data-v-66a5718f]{border:var(--idm-primary-color);background:var(--idm-primary-color)}.idm-gl-layer .layer.active .checkbox[data-v-66a5718f]:after{content:"✔";color:var(--idm-white);font-size:12px;display:flex;align-items:center;justify-content:center}.idm-gl-layer .layer.active span[data-v-66a5718f]{color:var(--idm-primary-color)}.idm-gl-layer .layer .checkbox[data-v-66a5718f]{width:16px;height:16px;margin-right:4px;border:1px solid var(--idm-black-8)}.idm-gl-layer .layer span[data-v-66a5718f]{color:var(--idm-black-8);font-size:14px;width:max-content}.idm-gl-layer .other-bars[data-v-66a5718f]{position:absolute;top:36px;border-radius:5px;background:var(--idm-background-linear-gradient-top);box-shadow:0 2px 12px #0003}.idm-gl-layer .active-layers[data-v-66a5718f]{position:absolute;max-width:250px;min-width:200px;display:flex;flex-wrap:wrap;align-items:center;background:var(--idm-white);border-radius:5px;box-shadow:0 2px 12px #0003;transition:all .4s ease-in-out}.idm-gl-layer .active-layers .layer[data-v-66a5718f]{width:auto;padding:5px}.idm-gl-layer .available-layers[data-v-66a5718f]{position:absolute;height:calc(100vh - 120px);box-sizing:border-box;transition:all .4s ease-in-out}.idm-gl-layer .available-layers .side-bar[data-v-66a5718f]{margin-right:10px;box-sizing:border-box}.idm-gl-layer .available-layers .side-bar i[data-v-66a5718f]{padding:15px 1px;background:var(--idm-white-7);border-radius:5px;cursor:pointer;font-size:18px;font-weight:600;color:var(--idm-black)}.idm-gl-layer .available-layers .list-box[data-v-66a5718f]{height:inherit;width:200px;padding:10px 0;overflow-y:auto;color:var(--idm-black-8);background:var(--idm-white);display:flex;flex-direction:column;box-shadow:0 2px 12px #0003;z-index:1}.idm-gl-layer .available-layers .list-box .layers-title[data-v-66a5718f]{font-size:16px;font-weight:600;padding:0 10px 10px;color:var(--idm-black-8);border-bottom:var(--idm-dashed-border)}.idm-gl-layer .available-layers .list-box .layers-body[data-v-66a5718f]{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;padding:0 10px;font-size:14px}.idm-gl-layer .available-layers .list-box .layers-body .layer[data-v-66a5718f]{width:140px}.idm-gl-layer .available-layers .list-box .model-box[data-v-66a5718f]{display:flex;align-items:center;justify-content:flex-start;margin:10px 0;cursor:pointer}.idm-gl-layer .available-layers .list-box .model-box span[data-v-66a5718f]{padding:3px 10px;border:1px solid #cecece}.idm-gl-layer .available-layers .list-box .model-box span.active[data-v-66a5718f]{color:var(--idm-white);border:1px solid var(--idm-primary-color);background:var(--idm-primary-color)}.idm-gl-layer .available-layers .list-box .model-box span[data-v-66a5718f]:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.idm-gl-layer .available-layers .list-box .model-box span[data-v-66a5718f]:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px;border-left:none}.tool-bars[data-v-59d56055]{transition:all .4s ease-in-out}.tool-bars i[data-v-59d56055]{cursor:pointer;font-size:30px;color:var(--idm-white-8);text-shadow:var(--idm-text-shadow)}.tool-bars i.active[data-v-59d56055]{color:var(--idm-white)}.tool-bars span[data-v-59d56055]{cursor:pointer;font-size:12px;color:var(--idm-black-8);margin-left:4px;background:var(--idm-white-8);padding:2px 4px;border-radius:5px;box-shadow:0 2px 12px #0003}.tool-bars span.active[data-v-59d56055]{color:var(--idm-white);background:var(--idm-primary-color)}.legend-bars[data-v-b7e5940e]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(98,113,184),rgb(98,113,184),rgb(98,113,184),rgb(98,113,184),rgb(61,110,163),rgb(74,148,170),rgb(74,146,148),rgb(77,142,124),rgb(76,164,76),rgb(103,164,54),rgb(162,135,64),rgb(162,109,92),rgb(141,63,92),rgb(151,75,145),rgb(95,100,160),rgb(91,136,161),rgb(91,136,161));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-b7e5940e]{font-size:12px;text-align:center;color:var(--idm-white-8);width:32px}.tool-bars[data-v-ce5e09b8]{transition:all .4s ease-in-out}.tool-bars i[data-v-ce5e09b8]{cursor:pointer;font-size:30px;color:var(--idm-white-8);text-shadow:var(--idm-text-shadow)}.tool-bars i.active[data-v-ce5e09b8]{color:var(--idm-white)}.tool-bars span[data-v-ce5e09b8]{cursor:pointer;font-size:12px;color:var(--idm-black-8);margin-left:4px;background:var(--idm-white-8);padding:2px 4px;border-radius:5px;box-shadow:0 2px 12px #0003}.tool-bars span.active[data-v-ce5e09b8]{color:var(--idm-white);background:var(--idm-primary-color)}.legend-bars[data-v-911e159b]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(84,170,230),rgb(84,170,230),rgb(84,170,230),rgb(84,170,230),rgb(64,127,115),rgb(58,164,58),rgb(191,182,67),rgb(197,154,68),rgb(160,70,94),rgb(138,84,166),rgb(82,113,165),rgb(84,142,152),rgb(150,181,184),rgb(195,194,194),rgb(195,194,194));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-911e159b]{font-size:12px;text-align:center;color:var(--idm-white);width:36px}.active-tropical[data-v-dfdfd5f2]{bottom:unset;background:var(--idm-white-9);padding:10px;border-radius:5px;z-index:5}.active-tropical .header-box[data-v-dfdfd5f2]{min-width:360px;margin-bottom:10px;box-sizing:border-box;color:var(--idm-black-8)}.active-tropical .header-box .close-btn[data-v-dfdfd5f2]{position:relative;height:0px;text-align:right;font-size:22px;color:var(--idm-primary-color)}.active-tropical .header-box .main[data-v-dfdfd5f2]{font-size:16px}.active-tropical .header-box .sub[data-v-dfdfd5f2]{margin:3px 0;font-size:12px;color:var(--idm-info-color)}.active-tropical .main-box[data-v-dfdfd5f2]{min-width:360px;color:var(--idm-black-8);overflow-y:auto;box-sizing:border-box;font-size:12px;z-index:4}.active-tropical .main-box .content[data-v-dfdfd5f2]{padding:5px 0;border-radius:5px;background:var(--idm-gray-light)}.active-tropical .main-box .row[data-v-dfdfd5f2]{width:100%;padding:4px 10px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between}.active-tropical .main-box .row .col[data-v-dfdfd5f2]{display:flex;align-items:center;justify-content:space-between}.active-tropical .main-box .row .col label[data-v-dfdfd5f2]{width:82px;margin-right:4px;color:var(--idm-info-color)}.active-tropical .main-box .row .col.col-24[data-v-dfdfd5f2]{width:100%}.active-tropical .main-box .row .col.col-left[data-v-dfdfd5f2]{width:55%}.active-tropical .main-box .row .col.col-right[data-v-dfdfd5f2]{width:40%}.forecast-models[data-v-dfdfd5f2]{display:flex;justify-content:flex-end;flex:1;margin-left:5px;flex-wrap:wrap}.forecast-models .model[data-v-dfdfd5f2]{font-size:12px;padding:0 6px 4px;display:flex;border:1px solid var(--idm-primary-color)}.forecast-models .model span[data-v-dfdfd5f2]{border-bottom:2px dashed var(--idm-white)}.forecast-models .model span.cma[data-v-dfdfd5f2]{border-color:#e2ea03cc}.forecast-models .model span.jma[data-v-dfdfd5f2]{border-color:#01d2b7cc}.forecast-models .model span.ecmwf[data-v-dfdfd5f2]{border-color:#f582f2cc}.forecast-models .model span.ukm[data-v-dfdfd5f2]{border-color:#4783f5cc}.forecast-models .model span.noaa-at[data-v-dfdfd5f2],.forecast-models .model span.noaa-ep[data-v-dfdfd5f2]{border-color:#9758fbcc}.forecast-models .model.active[data-v-dfdfd5f2]{border:1px solid var(--idm-primary-color);background-color:var(--idm-primary-color);color:var(--idm-white)}.forecast-models .model[data-v-dfdfd5f2]:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.forecast-models .model.center-child[data-v-dfdfd5f2]{border-left:1px solid var(--idm-primary-color);border-right:1px solid var(--idm-primary-color)}.forecast-models .model[data-v-dfdfd5f2]:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.legend[data-v-dfdfd5f2]{display:flex;align-items:center;color:var(--idm-info-color)}.legend .icon[data-v-dfdfd5f2]{height:14px;width:14px;border-radius:50%;border:3px solid #fff;margin-right:3px}.legend .icon.td[data-v-dfdfd5f2]{background-color:var(--idm-tropicals-td)}.legend .icon.ts[data-v-dfdfd5f2]{background-color:var(--idm-tropicals-ts)}.legend .icon.sts[data-v-dfdfd5f2]{background-color:var(--idm-tropicals-sts)}.legend .icon.ty[data-v-dfdfd5f2]{background-color:var(--idm-tropicals-ty)}.legend .icon.sty[data-v-dfdfd5f2]{background-color:var(--idm-tropicals-sty)}.legend .icon.supper-ty[data-v-dfdfd5f2]{background-color:var(--idm-tropicals-super-ty)}.legend .icon.r7[data-v-dfdfd5f2]{border:1.5px solid var(--idm-tropicals-r7)}.legend .icon.r10[data-v-dfdfd5f2]{border:1.5px solid var(--idm-tropicals-r10)}.legend .icon.history[data-v-dfdfd5f2]{border:none;border-radius:0;height:4px;background:var(--idm-black-5)}.legend .button[data-v-dfdfd5f2]{cursor:pointer;padding:0 4px;border-radius:4px;border:1px solid var(--idm-primary-color);color:var(--idm-primary-color)}.more[data-v-dfdfd5f2]{display:flex;align-items:center;justify-content:flex-end;color:var(--idm-primary-color);font-weight:700;margin-top:5px}.legend-bars[data-v-42b977ed]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgba(59,126,162,0),rgb(172,210,255),rgb(172,210,255),rgb(3,248,103),rgb(14,201,3),rgb(190,226,2),rgb(248,1,1),rgb(197,5,58),rgb(197,5,58));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-42b977ed]{font-size:12px;text-align:center;color:var(--idm-white);width:35px}.legend-bars[data-v-2a5fbadd]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(189,50,160),rgb(189,50,160),rgb(189,50,160),rgb(189,50,160),rgb(208,56,56),rgb(208,56,56),rgb(190,226,2),rgb(190,226,2),rgb(4,210,64),rgb(4,210,64),rgb(172,210,255),rgb(172,210,255));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-2a5fbadd]{font-size:12px;text-align:center;color:var(--idm-white);width:40px}.legend-bars[data-v-5b28deaf]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(95,143,197),rgb(95,143,197),rgb(95,143,197),rgb(95,143,197),rgb(80,140,62),rgb(121,146,28),rgb(171,161,14),rgb(223,177,6),rgb(243,150,6),rgb(236,95,21),rgb(190,65,18),rgb(138,43,10),rgb(138,43,10));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-5b28deaf]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-72cd9cf1]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(149,137,211),rgb(149,137,211),rgb(149,137,211),rgb(149,137,211),rgb(150,209,216),rgb(129,204,197),rgb(103,180,186),rgb(95,143,197),rgb(80,140,62),rgb(121,146,28),rgb(171,161,14),rgb(223,177,6),rgb(243,150,6),rgb(236,95,21),rgb(190,65,18),rgb(138,43,10),rgb(138,43,10));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-72cd9cf1]{font-size:12px;text-align:center;color:var(--idm-white);width:32px}.legend-bars[data-v-2092df03]{transition:all .4s ease-in-out;background:linear-gradient(to right,rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(76,165,228),rgb(103,180,186),rgb(129,204,197),rgb(150,209,216),rgb(180,209,216));padding:2px 0;border-radius:10px;box-shadow:var(--idm-gl-box-shadow)}.legend-bars span[data-v-2092df03]{font-size:12px;text-align:center;color:var(--idm-white);width:40px}.point-meteo[data-v-8b51d938]{bottom:unset}.point-meteo .meteo-box[data-v-8b51d938]{position:absolute;color:var(--idm-black-8);top:0;left:5px;padding:10px;background-color:var(--idm-white-9);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);width:260px;border-top-right-radius:5px;border-bottom-right-radius:5px}.point-meteo .meteo-box .header-box[data-v-8b51d938]{margin-bottom:10px;box-sizing:border-box;color:var(--idm-black-8)}.point-meteo .meteo-box .header-box .close[data-v-8b51d938]{position:relative;height:0px;text-align:right;font-size:22px;color:var(--idm-primary-color)}.point-meteo .meteo-box .header-box .main[data-v-8b51d938]{font-size:16px}.point-meteo .meteo-box .header-box .sub[data-v-8b51d938]{margin:3px 0;font-size:12px;color:var(--idm-info-color)}.point-meteo .meteo-box .main-box[data-v-8b51d938]{padding:0 5px;border-radius:5px;background:var(--idm-gray-light)}.point-meteo .meteo-box .main-box .flex-space[data-v-8b51d938]{padding:3px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--idm-white);box-sizing:border-box}.point-meteo .meteo-box .main-box .flex-space label[data-v-8b51d938]{color:var(--idm-black-8)}.point-meteo .meteo-box .main-box .flex-space label[data-v-8b51d938]:after{content:":"}.point-meteo .meteo-box .main-box .flex-space[data-v-8b51d938]:last-child{border-bottom:none}.point-meteo .meteo-box .more[data-v-8b51d938]{margin-top:5px;color:var(--idm-primary-color);font-weight:700;cursor:pointer}.point-meteo[data-v-8b51d938]:after{display:block;width:8px;height:8px;border-radius:50%;content:"";background-color:var(--idm-black-3);margin-bottom:360px}.point-meteo[data-v-8b51d938]:before{display:block;content:"";width:2px;height:360px;margin-left:3px;border-left:2px solid var(--idm-black-2)}#zone-info[data-v-d1cb4e6e]{position:absolute;background:var(--idm-white);color:var(--idm-black-8);z-index:10}#zone-info .rich-context[data-v-d1cb4e6e]{width:100vw;height:100vh;padding:10px;font-size:14px;font-weight:400;color:var(--idm-black-8)!important;overflow-y:auto}#zone-info .close[data-v-d1cb4e6e]{position:relative;color:var(--idm-info-color-light2);font-size:24px;height:0;text-align:right;margin:5px 5px 0 0}#port-info[data-v-6fdfee96]{position:absolute;background:var(--idm-white);color:var(--idm-black-8);padding:10px;border-radius:6px;cursor:default;z-index:1000;height:fit-content}#port-info .port-box[data-v-6fdfee96]{margin-top:10px;max-width:240px}#port-info .port-box .flex-start[data-v-6fdfee96]{line-height:2}#port-info .port-box .flex-start label[data-v-6fdfee96]{color:var(--idm-info-color);margin-right:10px;width:50px}#port-info .port-box .flex-start span[data-v-6fdfee96]{flex:1;flex-wrap:wrap;text-align:justify-all;color:var(--idm-black-8)}#port-info .port-box .flex-start span.link[data-v-6fdfee96]{cursor:pointer;text-decoration:underline}#port-info .port-box .flex-start span.link[data-v-6fdfee96]:hover{font-weight:600}#port-info .close[data-v-6fdfee96]{position:relative;text-align:right;height:0px;color:var(--idm-info-color-light2);font-size:24px}.lat-lng-tip[data-v-9f51b3f9]{position:absolute;padding:2px 10px;border-radius:5px;color:var(--idm-primary-color);font-size:12px;top:unset;background:var(--idm-white);box-shadow:0 2px 12px #0003;transition:all .4s ease-in-out}.menu-bar-box[data-v-2d85e33b]{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;transition:all .4s ease-in-out}.menu-bar-box .bar-item[data-v-2d85e33b]{position:relative;margin-bottom:15px;border-radius:5px;background:var(--idm-white);cursor:pointer;box-shadow:0 2px 12px #0003}.menu-bar-box .bar-item .menu-icon[data-v-2d85e33b]{padding:8px;display:flex}.menu-bar-box .bar-item .menu-icon[data-v-2d85e33b]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.menu-bar-box .bar-item .menu-icon[data-v-2d85e33b]:last-child{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.menu-bar-box .bar-item .menu-icon span[data-v-2d85e33b]{font-size:18px;font-weight:500;color:var(--idm-black-8)}.menu-bar-box .bar-item .menu-icon.active[data-v-2d85e33b]{background:var(--idm-primary-color)}.menu-bar-box .bar-item .menu-icon.active span[data-v-2d85e33b]{color:var(--idm-white)}:root{--idm-tropicals-td: #03f869;--idm-tropicals-ts: #f2f202;--idm-tropicals-sts: #ff9100;--idm-tropicals-ty: #f44336;--idm-tropicals-sty: #c604a4;--idm-tropicals-super-ty: #6b05bb;--idm-tropicals-r7: #ff9100;--idm-tropicals-r10: #f44336;--idm-gl-box-shadow-color: rgba(0, 0, 0, .5);--idm-gl-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);--idm-gl-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--idm-gl-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--idm-gl-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16)}.point-marker{pointer-events:none!important}.point-marker .marker-circle{pointer-events:inherit;width:12px;height:12px;border-radius:50%;border:2px solid var(--idm-white);background:var(--idm-danger-color)}.point-marker .marker-circle:hover{cursor:pointer}.point-marker.closed{pointer-events:auto!important}.point-summary-marker,.point-contextmenu-marker{color:var(--idm-white);font-size:12px;background:var(--idm-danger-color);border:1px solid var(--idm-white);padding:2px 5px;border-radius:5px;cursor:pointer}.point-summary-marker .marker-close,.point-contextmenu-marker .marker-close{pointer-events:auto;position:absolute;background:var(--idm-danger-color);border:1px dashed var(--idm-white);display:flex;align-items:center;justify-content:center;width:20px;height:20px;right:-17px;top:-17px;cursor:pointer;font-size:20px}.tip-marker{color:var(--idm-white);font-size:12px;text-shadow:var(--idm-text-shadow);background-color:var(--idm-black-6);padding:2px 5px;border-radius:5px;cursor:pointer}.tip-marker .marker-label{border-bottom:var(--idm-dashed-border)}.tip-marker .marker-label:last-child{border-bottom:none}.tip-marker .marker-label b{font-weight:600;color:var(--idm-danger-color)}.hurricane-hourly-marker .iconfont{font-size:34px!important;color:var(--idm-danger-color)}.hurricane-hourly-marker svg{height:34px;width:34px}.hurricane-hourly-marker .center{box-sizing:border-box;display:flex;align-items:center;justify-content:center}.hurricane-hourly-marker .center.north{animation:anticlockwise 2s linear infinite}.hurricane-hourly-marker .center.south{animation:clockwise 2s linear infinite}@keyframes clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes anticlockwise{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}
package/dist/vite.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "@idmwx/idmui-gl3",
3
+ "private": false,
4
+ "version": "0.0.2",
5
+ "description": "idm webgl3",
6
+ "type": "module",
7
+ "keywords": [
8
+ "idm",
9
+ "idmwx",
10
+ "webgl3"
11
+ ],
12
+ "author": "idm",
13
+ "contributors": [
14
+ "ChenHeng"
15
+ ],
16
+ "license": "GPL",
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "main": "./dist/index.umd.cjs",
21
+ "module": "./dist/index.js",
22
+ "types": "index.d.ts",
23
+ "scripts": {
24
+ "dev": "vite --host 0.0.0.0 --config ./build/base.config.ts",
25
+ "build": "vue-tsc --noEmit && vite build --config ./build/lib.config.ts",
26
+ "lint:fix": "eslint --fix --ext .js,.ts,.vue .",
27
+ "prettier": "yarn lint:fix && prettier --write '**/*.{js,ts,vue}'",
28
+ "release": "yarn build && yarn publish --access public"
29
+ },
30
+ "dependencies": {
31
+ "@idm-plugin/geo": "^1.0.4",
32
+ "@idmwx/idmwx-base": "^2.8.7",
33
+ "@mapbox/sphericalmercator": "^1.2.0",
34
+ "@turf/turf": "^6.5.0",
35
+ "axios": "^1.3.5",
36
+ "element-plus": "^2.3.5",
37
+ "js-md5": "^0.7.3",
38
+ "mapbox-gl": "3.0.0",
39
+ "moment": "^2.29.4",
40
+ "vue": "^3.2.36"
41
+ },
42
+ "devDependencies": {
43
+ "@types/mapbox-gl": "^3.1.0",
44
+ "@types/node": "^18.14.2",
45
+ "@typescript-eslint/eslint-plugin": "^5.53.0",
46
+ "@typescript-eslint/parser": "^5.53.0",
47
+ "@vitejs/plugin-vue": "^4.0.0",
48
+ "eslint": "^8.35.0",
49
+ "eslint-config-prettier": "^8.6.0",
50
+ "eslint-define-config": "^1.15.0",
51
+ "eslint-plugin-prettier": "^4.2.1",
52
+ "eslint-plugin-vue": "^9.9.0",
53
+ "lint-staged": "^13.1.2",
54
+ "prettier": "^2.8.4",
55
+ "sass": "^1.58.3",
56
+ "simple-git-hooks": "^2.8.1",
57
+ "stylelint": "^15.2.0",
58
+ "typescript": "^4.9.3",
59
+ "vite": "^4.1.0",
60
+ "vite-plugin-dts": "^2.0.2",
61
+ "vue-tsc": "^1.0.24"
62
+ },
63
+ "lint-staged": {
64
+ "*.{ts,tsx,js,vue}": "eslint --fix",
65
+ "*.{ts,tsx,js,vue,scss}": "prettier --write"
66
+ },
67
+ "simple-git-hooks": {
68
+ "pre-commit": "npx lint-staged"
69
+ }
70
+ }