vue-openlayers-plugin 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.
Files changed (123) hide show
  1. package/LICENSE +21 -0
  2. package/lib/gifler-c6887506.mjs +415 -0
  3. package/lib/icons.svg +15 -0
  4. package/lib/index-d4f09269.mjs +71705 -0
  5. package/lib/index.es-7486bf92.mjs +5776 -0
  6. package/lib/index.esm.js +51 -0
  7. package/lib/index.umd.js +784 -0
  8. package/lib/purify.es-35a15df8.mjs +480 -0
  9. package/lib/style.css +1 -0
  10. package/package.json +103 -0
  11. package/readme.md +234 -0
  12. package/types/index.d.ts +1 -0
  13. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts +188 -0
  14. package/types/src/components/CustomDialog/CustomDialog.vue.d.ts.map +1 -0
  15. package/types/src/components/CustomDialog/dialogCache.d.ts +87 -0
  16. package/types/src/components/CustomDialog/dialogCache.d.ts.map +1 -0
  17. package/types/src/components/CustomDialog/index.d.ts +4 -0
  18. package/types/src/components/CustomDialog/index.d.ts.map +1 -0
  19. package/types/src/components/CustomOpenlayer/assets/index.d.ts +48 -0
  20. package/types/src/components/CustomOpenlayer/assets/index.d.ts.map +1 -0
  21. package/types/src/components/CustomOpenlayer/components/LegendPanel.vue.d.ts +53 -0
  22. package/types/src/components/CustomOpenlayer/components/LegendPanel.vue.d.ts.map +1 -0
  23. package/types/src/components/CustomOpenlayer/components/MapContainer.vue.d.ts +147 -0
  24. package/types/src/components/CustomOpenlayer/components/MapContainer.vue.d.ts.map +1 -0
  25. package/types/src/components/CustomOpenlayer/components/MapControls/index.vue.d.ts +59 -0
  26. package/types/src/components/CustomOpenlayer/components/MapControls/index.vue.d.ts.map +1 -0
  27. package/types/src/components/CustomOpenlayer/components/MapSearch/MapSearch.vue.d.ts +184 -0
  28. package/types/src/components/CustomOpenlayer/components/MapSearch/MapSearch.vue.d.ts.map +1 -0
  29. package/types/src/components/CustomOpenlayer/components/MapToolbar.vue.d.ts +39 -0
  30. package/types/src/components/CustomOpenlayer/components/MapToolbar.vue.d.ts.map +1 -0
  31. package/types/src/components/CustomOpenlayer/components/MapTooltip/index.vue.d.ts +76 -0
  32. package/types/src/components/CustomOpenlayer/components/MapTooltip/index.vue.d.ts.map +1 -0
  33. package/types/src/components/CustomOpenlayer/components/MapTooltip/types.d.ts +55 -0
  34. package/types/src/components/CustomOpenlayer/components/MapTooltip/types.d.ts.map +1 -0
  35. package/types/src/components/CustomOpenlayer/components/dialogs/BasemapPanel.vue.d.ts +20 -0
  36. package/types/src/components/CustomOpenlayer/components/dialogs/BasemapPanel.vue.d.ts.map +1 -0
  37. package/types/src/components/CustomOpenlayer/components/dialogs/CoordinateLocationDialog.vue.d.ts +21 -0
  38. package/types/src/components/CustomOpenlayer/components/dialogs/CoordinateLocationDialog.vue.d.ts.map +1 -0
  39. package/types/src/components/CustomOpenlayer/components/dialogs/LayerPanel.vue.d.ts +46 -0
  40. package/types/src/components/CustomOpenlayer/components/dialogs/LayerPanel.vue.d.ts.map +1 -0
  41. package/types/src/components/CustomOpenlayer/components/dialogs/MapPrintDialog.vue.d.ts +24 -0
  42. package/types/src/components/CustomOpenlayer/components/dialogs/MapPrintDialog.vue.d.ts.map +1 -0
  43. package/types/src/components/CustomOpenlayer/components/dialogs/MeasurementDialog.vue.d.ts +41 -0
  44. package/types/src/components/CustomOpenlayer/components/dialogs/MeasurementDialog.vue.d.ts.map +1 -0
  45. package/types/src/components/CustomOpenlayer/components/dialogs/MyMarkersDialog.vue.d.ts +21 -0
  46. package/types/src/components/CustomOpenlayer/components/dialogs/MyMarkersDialog.vue.d.ts.map +1 -0
  47. package/types/src/components/CustomOpenlayer/components/dialogs/RegionNavigationDialog.vue.d.ts +25 -0
  48. package/types/src/components/CustomOpenlayer/components/dialogs/RegionNavigationDialog.vue.d.ts.map +1 -0
  49. package/types/src/components/CustomOpenlayer/components/dialogs/ViewBookmarksDialog.vue.d.ts +21 -0
  50. package/types/src/components/CustomOpenlayer/components/dialogs/ViewBookmarksDialog.vue.d.ts.map +1 -0
  51. package/types/src/components/CustomOpenlayer/data/testLayers.d.ts +84 -0
  52. package/types/src/components/CustomOpenlayer/data/testLayers.d.ts.map +1 -0
  53. package/types/src/components/CustomOpenlayer/index.d.ts +7 -0
  54. package/types/src/components/CustomOpenlayer/index.d.ts.map +1 -0
  55. package/types/src/components/CustomOpenlayer/index.vue.d.ts +155 -0
  56. package/types/src/components/CustomOpenlayer/index.vue.d.ts.map +1 -0
  57. package/types/src/components/CustomOpenlayer/services/searchService.d.ts +88 -0
  58. package/types/src/components/CustomOpenlayer/services/searchService.d.ts.map +1 -0
  59. package/types/src/components/CustomOpenlayer/utils/DiffusionAnimationHelper.d.ts +60 -0
  60. package/types/src/components/CustomOpenlayer/utils/DiffusionAnimationHelper.d.ts.map +1 -0
  61. package/types/src/components/CustomOpenlayer/utils/GifAnimationHelper.d.ts +31 -0
  62. package/types/src/components/CustomOpenlayer/utils/GifAnimationHelper.d.ts.map +1 -0
  63. package/types/src/components/CustomOpenlayer/utils/TooltipHelper.d.ts +134 -0
  64. package/types/src/components/CustomOpenlayer/utils/TooltipHelper.d.ts.map +1 -0
  65. package/types/src/components/CustomOpenlayer/utils/amapSearchApi.d.ts +57 -0
  66. package/types/src/components/CustomOpenlayer/utils/amapSearchApi.d.ts.map +1 -0
  67. package/types/src/components/CustomOpenlayer/utils/basemapManager.d.ts +62 -0
  68. package/types/src/components/CustomOpenlayer/utils/basemapManager.d.ts.map +1 -0
  69. package/types/src/components/CustomOpenlayer/utils/configLoader.d.ts +159 -0
  70. package/types/src/components/CustomOpenlayer/utils/configLoader.d.ts.map +1 -0
  71. package/types/src/components/CustomOpenlayer/utils/drawing/BaseDrawing.d.ts +237 -0
  72. package/types/src/components/CustomOpenlayer/utils/drawing/BaseDrawing.d.ts.map +1 -0
  73. package/types/src/components/CustomOpenlayer/utils/drawing/DrawingManager.d.ts +271 -0
  74. package/types/src/components/CustomOpenlayer/utils/drawing/DrawingManager.d.ts.map +1 -0
  75. package/types/src/components/CustomOpenlayer/utils/drawing/IconDrawing.d.ts +187 -0
  76. package/types/src/components/CustomOpenlayer/utils/drawing/IconDrawing.d.ts.map +1 -0
  77. package/types/src/components/CustomOpenlayer/utils/drawing/ImageDrawing.d.ts +193 -0
  78. package/types/src/components/CustomOpenlayer/utils/drawing/ImageDrawing.d.ts.map +1 -0
  79. package/types/src/components/CustomOpenlayer/utils/drawing/LineDrawing.d.ts +193 -0
  80. package/types/src/components/CustomOpenlayer/utils/drawing/LineDrawing.d.ts.map +1 -0
  81. package/types/src/components/CustomOpenlayer/utils/drawing/MilitaryDrawing.d.ts +175 -0
  82. package/types/src/components/CustomOpenlayer/utils/drawing/MilitaryDrawing.d.ts.map +1 -0
  83. package/types/src/components/CustomOpenlayer/utils/drawing/PointDrawing.d.ts +175 -0
  84. package/types/src/components/CustomOpenlayer/utils/drawing/PointDrawing.d.ts.map +1 -0
  85. package/types/src/components/CustomOpenlayer/utils/drawing/PointWithTextDrawing.d.ts +179 -0
  86. package/types/src/components/CustomOpenlayer/utils/drawing/PointWithTextDrawing.d.ts.map +1 -0
  87. package/types/src/components/CustomOpenlayer/utils/drawing/PolygonDrawing.d.ts +236 -0
  88. package/types/src/components/CustomOpenlayer/utils/drawing/PolygonDrawing.d.ts.map +1 -0
  89. package/types/src/components/CustomOpenlayer/utils/drawing/TextDrawing.d.ts +164 -0
  90. package/types/src/components/CustomOpenlayer/utils/drawing/TextDrawing.d.ts.map +1 -0
  91. package/types/src/components/CustomOpenlayer/utils/eventBus.d.ts +34 -0
  92. package/types/src/components/CustomOpenlayer/utils/eventBus.d.ts.map +1 -0
  93. package/types/src/components/CustomOpenlayer/utils/eventManager.d.ts +153 -0
  94. package/types/src/components/CustomOpenlayer/utils/eventManager.d.ts.map +1 -0
  95. package/types/src/components/CustomOpenlayer/utils/index.d.ts +10 -0
  96. package/types/src/components/CustomOpenlayer/utils/index.d.ts.map +1 -0
  97. package/types/src/components/CustomOpenlayer/utils/layerManager.d.ts +173 -0
  98. package/types/src/components/CustomOpenlayer/utils/layerManager.d.ts.map +1 -0
  99. package/types/src/components/CustomOpenlayer/utils/mapOperationTool.d.ts +116 -0
  100. package/types/src/components/CustomOpenlayer/utils/mapOperationTool.d.ts.map +1 -0
  101. package/types/src/components/CustomOpenlayer/utils/measurementTool.d.ts +134 -0
  102. package/types/src/components/CustomOpenlayer/utils/measurementTool.d.ts.map +1 -0
  103. package/types/src/components/CustomOpenlayer/utils/myMarkerManager.d.ts +82 -0
  104. package/types/src/components/CustomOpenlayer/utils/myMarkerManager.d.ts.map +1 -0
  105. package/types/src/components/CustomOpenlayer/utils/overviewMapUtil.d.ts +62 -0
  106. package/types/src/components/CustomOpenlayer/utils/overviewMapUtil.d.ts.map +1 -0
  107. package/types/src/components/CustomOpenlayer/utils/searchMarkerManager.d.ts +96 -0
  108. package/types/src/components/CustomOpenlayer/utils/searchMarkerManager.d.ts.map +1 -0
  109. package/types/src/components/CustomOpenlayer/utils/storage.d.ts +56 -0
  110. package/types/src/components/CustomOpenlayer/utils/storage.d.ts.map +1 -0
  111. package/types/src/components/CustomOpenlayer/utils/tiandituSearchApi.d.ts +45 -0
  112. package/types/src/components/CustomOpenlayer/utils/tiandituSearchApi.d.ts.map +1 -0
  113. package/types/src/components/CustomOpenlayer/utils/unitConverter.d.ts +36 -0
  114. package/types/src/components/CustomOpenlayer/utils/unitConverter.d.ts.map +1 -0
  115. package/types/src/components/SvgIcon/index.vue.d.ts +30 -0
  116. package/types/src/components/SvgIcon/index.vue.d.ts.map +1 -0
  117. package/types/src/types/index.d.ts +12 -0
  118. package/types/src/types/index.d.ts.map +1 -0
  119. package/types/src/utils/html2pdf.d.ts +13 -0
  120. package/types/src/utils/html2pdf.d.ts.map +1 -0
  121. package/types/src/utils/index.d.ts +12 -0
  122. package/types/src/utils/index.d.ts.map +1 -0
  123. package/types/tsconfig.tsbuildinfo +1 -0
package/readme.md ADDED
@@ -0,0 +1,234 @@
1
+ # Vue OpenLayers Plugin
2
+
3
+ 一个基于 Vue 3 和 OpenLayers 的地图插件,提供丰富的地图功能和组件。
4
+
5
+ ## 特性
6
+
7
+ - 🗺️ **完整的地图功能** - 基于 OpenLayers 8.x 构建
8
+ - 🎨 **Vue 3 组件** - 完全支持 Composition API
9
+ - 📏 **测量工具** - 距离、面积、角度测量
10
+ - ✏️ **标绘功能** - 点、线、面、文字等标绘工具
11
+ - 🎛️ **图层管理** - 图层控制面板
12
+ - 📱 **响应式设计** - 适配各种屏幕尺寸
13
+ - 🔧 **TypeScript 支持** - 完整的类型定义
14
+ - 📦 **轻量级** - 按需引入,减小包体积
15
+
16
+ ## 安装
17
+
18
+ ```bash
19
+ npm install vue-openlayers-plugin
20
+ # 或
21
+ yarn add vue-openlayers-plugin
22
+ # 或
23
+ pnpm add vue-openlayers-plugin
24
+ ```
25
+
26
+ ## 快速开始
27
+
28
+ ### 全局注册
29
+
30
+ ```typescript
31
+ import { createApp } from 'vue'
32
+ import VueOpenLayersPlugin from 'vue-openlayers-plugin'
33
+ import 'vue-openlayers-plugin/style'
34
+
35
+ const app = createApp(App)
36
+ app.use(VueOpenLayersPlugin)
37
+ app.mount('#app')
38
+ ```
39
+
40
+ ### 按需引入
41
+
42
+ ```typescript
43
+ import { CustomOpenlayer, CustomDialog, SvgIcon } from 'vue-openlayers-plugin'
44
+ import 'vue-openlayers-plugin/style'
45
+
46
+ // 在组件中使用
47
+ export default {
48
+ components: {
49
+ CustomOpenlayer,
50
+ CustomDialog,
51
+ SvgIcon
52
+ }
53
+ }
54
+ ```
55
+
56
+ ### CDN 引入
57
+
58
+ ```html
59
+ <!-- 引入 Vue 3 -->
60
+ <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
61
+ <!-- 引入 OpenLayers -->
62
+ <script src="https://cdn.jsdelivr.net/npm/ol@8.2.0/dist/ol.js"></script>
63
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ol@8.2.0/ol.css">
64
+ <!-- 引入插件 -->
65
+ <script src="https://unpkg.com/vue-openlayers-plugin/lib/index.js"></script>
66
+ <link rel="stylesheet" href="https://unpkg.com/vue-openlayers-plugin/lib/style.css">
67
+ ```
68
+
69
+ ### 基础使用
70
+
71
+ ```vue
72
+ <template>
73
+ <div class="map-container">
74
+ <CustomOpenlayer
75
+ :center="[116.397428, 39.90923]"
76
+ :zoom="10"
77
+ :show-layer-panel="true"
78
+ :show-measurement-tools="true"
79
+ :show-drawing-tools="true"
80
+ style="width: 100%; height: 500px;"
81
+ @map-ready="onMapReady"
82
+ @feature-selected="onFeatureSelected"
83
+ />
84
+ </div>
85
+ </template>
86
+
87
+ <script setup lang="ts">
88
+ import { CustomOpenlayer } from 'vue-openlayers-plugin'
89
+ import type { Map } from 'ol'
90
+
91
+ const onMapReady = (map: Map) => {
92
+ console.log('地图已准备就绪', map)
93
+ }
94
+
95
+ const onFeatureSelected = (feature: any) => {
96
+ console.log('选中要素', feature)
97
+ }
98
+ </script>
99
+
100
+ <style scoped>
101
+ .map-container {
102
+ width: 100%;
103
+ height: 500px;
104
+ border: 1px solid #ddd;
105
+ border-radius: 4px;
106
+ }
107
+ </style>
108
+ ```
109
+
110
+ ## 组件
111
+
112
+ ### CustomOpenlayer
113
+
114
+ 主要的地图组件,提供完整的地图功能。
115
+
116
+ #### Props
117
+
118
+ | 属性 | 类型 | 默认值 | 描述 |
119
+ |------|------|--------|------|
120
+ | center | `[number, number]` | `[0, 0]` | 地图中心点坐标 |
121
+ | zoom | `number` | `2` | 地图缩放级别 |
122
+ | minZoom | `number` | `0` | 最小缩放级别 |
123
+ | maxZoom | `number` | `28` | 最大缩放级别 |
124
+ | showLayerPanel | `boolean` | `false` | 是否显示图层面板 |
125
+ | showMeasurementTools | `boolean` | `false` | 是否显示测量工具 |
126
+ | showDrawingTools | `boolean` | `false` | 是否显示标绘工具 |
127
+
128
+ ### CustomDialog
129
+
130
+ 可拖拽、可缩放的对话框组件。
131
+
132
+ #### Props
133
+
134
+ | 属性 | 类型 | 默认值 | 描述 |
135
+ |------|------|--------|------|
136
+ | modelValue | `boolean` | `false` | 对话框显示状态 |
137
+ | title | `string` | `''` | 对话框标题 |
138
+ | width | `string` | `'500px'` | 对话框宽度 |
139
+ | height | `string` | `'300px'` | 对话框高度 |
140
+ | draggable | `boolean` | `true` | 是否可拖拽 |
141
+ | resizable | `boolean` | `true` | 是否可缩放 |
142
+
143
+ ### SvgIcon
144
+
145
+ SVG 图标组件。
146
+
147
+ #### Props
148
+
149
+ | 属性 | 类型 | 默认值 | 描述 |
150
+ |------|------|--------|------|
151
+ | name | `string` | `''` | 图标名称 |
152
+ | size | `string \| number` | `'1em'` | 图标大小 |
153
+ | color | `string` | `'currentColor'` | 图标颜色 |
154
+
155
+ ## 工具函数
156
+
157
+ ### 测量工具
158
+
159
+ ```typescript
160
+ import { MeasurementTool } from 'vue-openlayers-plugin'
161
+
162
+ const measurementTool = new MeasurementTool(map)
163
+ measurementTool.startMeasurement('length') // 'length' | 'area' | 'angle'
164
+ ```
165
+
166
+ ### 图层管理
167
+
168
+ ```typescript
169
+ import { LayerManager } from 'vue-openlayers-plugin'
170
+
171
+ const layerManager = new LayerManager(map)
172
+ layerManager.addLayer({
173
+ id: 'osm',
174
+ name: 'OpenStreetMap',
175
+ type: 'tile',
176
+ url: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png'
177
+ })
178
+ ```
179
+
180
+ ### 标绘工具
181
+
182
+ ```typescript
183
+ import { DrawingManager } from 'vue-openlayers-plugin'
184
+
185
+ const drawingManager = new DrawingManager(map)
186
+ drawingManager.startDrawing('polygon')
187
+ ```
188
+
189
+ ## 开发
190
+
191
+ ```bash
192
+ # 克隆项目
193
+ git clone https://github.com/your-username/vue-openlayers-plugin.git
194
+ cd vue-openlayers-plugin
195
+
196
+ # 安装依赖
197
+ npm install
198
+
199
+ # 启动开发服务器
200
+ npm run dev
201
+
202
+ # 构建库
203
+ npm run build:lib
204
+
205
+ # 类型检查
206
+ npm run type-check
207
+ ```
208
+
209
+ ## 浏览器支持
210
+
211
+ - Chrome >= 87
212
+ - Firefox >= 78
213
+ - Safari >= 14
214
+ - Edge >= 88
215
+
216
+ ## 许可证
217
+
218
+ MIT License
219
+
220
+ ## 贡献
221
+
222
+ 欢迎提交 Issue 和 Pull Request!
223
+
224
+ ## 更新日志
225
+
226
+ ### 1.0.0
227
+
228
+ - 🎉 初始版本发布
229
+ - ✨ 支持基础地图功能
230
+ - ✨ 测量工具
231
+ - ✨ 标绘功能
232
+ - ✨ 图层管理
233
+ - ✨ 自定义对话框
234
+ - ✨ SVG 图标组件
@@ -0,0 +1 @@
1
+ export * from './src/index'
@@ -0,0 +1,188 @@
1
+ interface Position {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ interface Size {
6
+ width: number;
7
+ height: number;
8
+ }
9
+ interface Props {
10
+ modelValue: boolean;
11
+ title?: string;
12
+ width?: string | number;
13
+ height?: string | number;
14
+ top?: string | number;
15
+ modal?: boolean;
16
+ closeOnClickModal?: boolean;
17
+ closeOnPressEscape?: boolean;
18
+ showClose?: boolean;
19
+ showFullscreen?: boolean;
20
+ draggable?: boolean;
21
+ resizable?: boolean;
22
+ fullscreen?: boolean;
23
+ destroyOnClose?: boolean;
24
+ lockScroll?: boolean;
25
+ customClass?: string;
26
+ zIndex?: number;
27
+ minWidth?: number;
28
+ minHeight?: number;
29
+ maxWidth?: number;
30
+ maxHeight?: number;
31
+ cacheId?: string;
32
+ enableCache?: boolean;
33
+ autoSaveCache?: boolean;
34
+ cacheDebounceTime?: number;
35
+ toBody?: boolean;
36
+ showModal?: boolean;
37
+ position?: 'center' | 'right' | 'left' | 'top' | 'bottom';
38
+ beforeClose?: () => void | Promise<void>;
39
+ }
40
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
41
+ modelValue: boolean;
42
+ title: string;
43
+ width: string;
44
+ height: string;
45
+ top: string;
46
+ modal: boolean;
47
+ closeOnClickModal: boolean;
48
+ closeOnPressEscape: boolean;
49
+ showClose: boolean;
50
+ showFullscreen: boolean;
51
+ draggable: boolean;
52
+ resizable: boolean;
53
+ fullscreen: boolean;
54
+ destroyOnClose: boolean;
55
+ lockScroll: boolean;
56
+ customClass: string;
57
+ zIndex: number;
58
+ minWidth: number;
59
+ minHeight: number;
60
+ maxWidth: number;
61
+ maxHeight: number;
62
+ cacheId: string;
63
+ enableCache: boolean;
64
+ autoSaveCache: boolean;
65
+ position: string;
66
+ cacheDebounceTime: number;
67
+ toBody: boolean;
68
+ showModal: boolean;
69
+ }>>, {
70
+ saveCacheState: () => void;
71
+ clearCache: () => void;
72
+ getCacheStats: () => import('./dialogCache').CacheStats;
73
+ position: import('vue').Ref<{
74
+ x: number;
75
+ y: number;
76
+ }, Position | {
77
+ x: number;
78
+ y: number;
79
+ }>;
80
+ size: import('vue').Ref<{
81
+ width: number;
82
+ height: number;
83
+ }, Size | {
84
+ width: number;
85
+ height: number;
86
+ }>;
87
+ isFullscreen: import('vue').Ref<boolean, boolean>;
88
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
89
+ close: () => void;
90
+ "update:modelValue": (value: boolean) => void;
91
+ open: () => void;
92
+ opened: () => void;
93
+ closed: () => void;
94
+ drawingAction: (action: any) => void;
95
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
96
+ modelValue: boolean;
97
+ title: string;
98
+ width: string;
99
+ height: string;
100
+ top: string;
101
+ modal: boolean;
102
+ closeOnClickModal: boolean;
103
+ closeOnPressEscape: boolean;
104
+ showClose: boolean;
105
+ showFullscreen: boolean;
106
+ draggable: boolean;
107
+ resizable: boolean;
108
+ fullscreen: boolean;
109
+ destroyOnClose: boolean;
110
+ lockScroll: boolean;
111
+ customClass: string;
112
+ zIndex: number;
113
+ minWidth: number;
114
+ minHeight: number;
115
+ maxWidth: number;
116
+ maxHeight: number;
117
+ cacheId: string;
118
+ enableCache: boolean;
119
+ autoSaveCache: boolean;
120
+ position: string;
121
+ cacheDebounceTime: number;
122
+ toBody: boolean;
123
+ showModal: boolean;
124
+ }>>> & Readonly<{
125
+ onClose?: (() => any) | undefined;
126
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
127
+ onOpen?: (() => any) | undefined;
128
+ onOpened?: (() => any) | undefined;
129
+ onClosed?: (() => any) | undefined;
130
+ onDrawingAction?: ((action: any) => any) | undefined;
131
+ }>, {
132
+ title: string;
133
+ top: string | number;
134
+ modelValue: boolean;
135
+ width: string | number;
136
+ height: string | number;
137
+ modal: boolean;
138
+ closeOnClickModal: boolean;
139
+ closeOnPressEscape: boolean;
140
+ showClose: boolean;
141
+ showFullscreen: boolean;
142
+ draggable: boolean;
143
+ resizable: boolean;
144
+ fullscreen: boolean;
145
+ destroyOnClose: boolean;
146
+ lockScroll: boolean;
147
+ customClass: string;
148
+ zIndex: number;
149
+ minWidth: number;
150
+ minHeight: number;
151
+ maxWidth: number;
152
+ maxHeight: number;
153
+ cacheId: string;
154
+ enableCache: boolean;
155
+ autoSaveCache: boolean;
156
+ cacheDebounceTime: number;
157
+ toBody: boolean;
158
+ showModal: boolean;
159
+ position: "center" | "right" | "left" | "top" | "bottom";
160
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>, {
161
+ title?(_: {}): any;
162
+ default?(_: {}): any;
163
+ footer?(_: {}): any;
164
+ }>;
165
+ export default _default;
166
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
167
+ type __VLS_TypePropsToRuntimeProps<T> = {
168
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
169
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
170
+ } : {
171
+ type: import('vue').PropType<T[K]>;
172
+ required: true;
173
+ };
174
+ };
175
+ type __VLS_WithDefaults<P, D> = {
176
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
177
+ default: D[K];
178
+ }> : P[K];
179
+ };
180
+ type __VLS_Prettify<T> = {
181
+ [K in keyof T]: T[K];
182
+ } & {};
183
+ type __VLS_WithTemplateSlots<T, S> = T & {
184
+ new (): {
185
+ $slots: S;
186
+ };
187
+ };
188
+ //# sourceMappingURL=CustomDialog.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomDialog.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomDialog/CustomDialog.vue"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * 弹窗缓存管理工具
3
+ * 用于在浏览器中缓存弹窗的位置、大小等状态信息
4
+ */
5
+ /**
6
+ * 弹窗状态接口
7
+ */
8
+ interface DialogState {
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ height: number;
13
+ isFullscreen?: boolean;
14
+ version?: string;
15
+ timestamp?: number;
16
+ windowWidth?: number;
17
+ windowHeight?: number;
18
+ }
19
+ /**
20
+ * 缓存统计信息接口
21
+ */
22
+ interface CacheStats {
23
+ supported: boolean;
24
+ totalDialogs: number;
25
+ totalSize: number;
26
+ formattedSize?: string;
27
+ }
28
+ /**
29
+ * 弹窗缓存管理类
30
+ */
31
+ declare class DialogCacheManager {
32
+ private isSupported;
33
+ constructor();
34
+ /**
35
+ * 检查浏览器是否支持localStorage
36
+ * @returns {boolean}
37
+ */
38
+ private checkLocalStorageSupport;
39
+ /**
40
+ * 生成缓存键名
41
+ * @param {string} dialogId - 弹窗唯一标识
42
+ * @returns {string}
43
+ */
44
+ getCacheKey(dialogId: string): string;
45
+ /**
46
+ * 保存弹窗状态
47
+ * @param {string} dialogId - 弹窗唯一标识
48
+ * @param {DialogState} state - 弹窗状态
49
+ */
50
+ saveDialogState(dialogId: string, state: DialogState): void;
51
+ /**
52
+ * 获取弹窗状态
53
+ * @param {string} dialogId - 弹窗唯一标识
54
+ * @returns {DialogState|null}
55
+ */
56
+ getDialogState(dialogId: string): DialogState | null;
57
+ /**
58
+ * 删除弹窗状态
59
+ * @param {string} dialogId - 弹窗唯一标识
60
+ */
61
+ removeDialogState(dialogId: string): void;
62
+ /**
63
+ * 清除所有弹窗缓存
64
+ */
65
+ clearAllDialogStates(): void;
66
+ /**
67
+ * 获取所有缓存的弹窗ID
68
+ * @returns {string[]}
69
+ */
70
+ getAllDialogIds(): string[];
71
+ /**
72
+ * 获取缓存统计信息
73
+ * @returns {CacheStats}
74
+ */
75
+ getCacheStats(): CacheStats;
76
+ /**
77
+ * 格式化字节大小
78
+ * @param {number} bytes
79
+ * @returns {string}
80
+ */
81
+ private formatBytes;
82
+ }
83
+ declare const dialogCacheManager: DialogCacheManager;
84
+ export default dialogCacheManager;
85
+ export declare const saveDialogState: (dialogId: string, state: DialogState) => void, getDialogState: (dialogId: string) => DialogState | null, removeDialogState: (dialogId: string) => void, clearAllDialogStates: () => void, getAllDialogIds: () => string[], getCacheStats: () => CacheStats;
86
+ export type { DialogState, CacheStats };
87
+ //# sourceMappingURL=dialogCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogCache.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomDialog/dialogCache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,UAAU,WAAW;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,UAAU,UAAU;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,WAAW,CAAS;;IAM5B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAYhC;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrC;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI;IAkB3D;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IA0DpD;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUzC;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAe5B;;;OAGG;IACH,eAAe,IAAI,MAAM,EAAE;IAc3B;;;OAGG;IACH,aAAa,IAAI,UAAU;IAqC3B;;;;OAIG;IACH,OAAO,CAAC,WAAW;CASpB;AAGD,QAAA,MAAM,kBAAkB,oBAA2B,CAAA;AAEnD,eAAe,kBAAkB,CAAA;AAGjC,eAAO,MACL,eAAe,aAnMW,MAAM,SAAS,WAAW,KAAG,IAAI,EAoM3D,cAAc,aA7KW,MAAM,KAAG,WAAW,GAAG,IAAI,EA8KpD,iBAAiB,aAhHW,MAAM,KAAG,IAAI,EAiHzC,oBAAoB,QApGI,IAAI,EAqG5B,eAAe,QAlFI,MAAM,EAAE,EAmF3B,aAAa,QAjEI,UAkEG,CAAA;AAGtB,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { default as CustomDialog } from './CustomDialog.vue';
2
+ export { default as SimpleDialog } from './SimpleDialog.vue';
3
+ export { default } from './CustomDialog.vue';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomDialog/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAG5D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,48 @@
1
+ export declare const icons: {
2
+ pointMarker: string;
3
+ textMarker: string;
4
+ lineMarker: string;
5
+ polygonMarker: string;
6
+ circleMarker: string;
7
+ rectangleMarker: string;
8
+ measureMarker: string;
9
+ editMarker: string;
10
+ deleteMarker: string;
11
+ qqMarker: string;
12
+ typhoonMarker: string;
13
+ roadMarker: string;
14
+ distance: string;
15
+ area: string;
16
+ coordinate: string;
17
+ angle: string;
18
+ };
19
+ export declare const backgrounds: {
20
+ gridPattern: string;
21
+ dotPattern: string;
22
+ };
23
+ export declare const assets: {
24
+ icons: {
25
+ pointMarker: string;
26
+ textMarker: string;
27
+ lineMarker: string;
28
+ polygonMarker: string;
29
+ circleMarker: string;
30
+ rectangleMarker: string;
31
+ measureMarker: string;
32
+ editMarker: string;
33
+ deleteMarker: string;
34
+ qqMarker: string;
35
+ typhoonMarker: string;
36
+ roadMarker: string;
37
+ distance: string;
38
+ area: string;
39
+ coordinate: string;
40
+ angle: string;
41
+ };
42
+ backgrounds: {
43
+ gridPattern: string;
44
+ dotPattern: string;
45
+ };
46
+ };
47
+ export default assets;
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CustomOpenlayer/assets/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;CAkBjB,CAAA;AAGD,eAAO,MAAM,WAAW;;;CAGvB,CAAA;AAGD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAGlB,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,53 @@
1
+ interface Props {
2
+ position?: "left" | "right";
3
+ width?: number;
4
+ collapsible?: boolean;
5
+ defaultCollapsed?: boolean;
6
+ showOnlyVisible?: boolean;
7
+ visible?: boolean;
8
+ }
9
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
10
+ position: string;
11
+ width: number;
12
+ collapsible: boolean;
13
+ defaultCollapsed: boolean;
14
+ showOnlyVisible: boolean;
15
+ visible: boolean;
16
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
+ "update:visible": (value: boolean) => void;
18
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
19
+ position: string;
20
+ width: number;
21
+ collapsible: boolean;
22
+ defaultCollapsed: boolean;
23
+ showOnlyVisible: boolean;
24
+ visible: boolean;
25
+ }>>> & Readonly<{
26
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
27
+ }>, {
28
+ width: number;
29
+ position: "right" | "left";
30
+ visible: boolean;
31
+ collapsible: boolean;
32
+ defaultCollapsed: boolean;
33
+ showOnlyVisible: boolean;
34
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
35
+ export default _default;
36
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
37
+ type __VLS_TypePropsToRuntimeProps<T> = {
38
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
39
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
40
+ } : {
41
+ type: import('vue').PropType<T[K]>;
42
+ required: true;
43
+ };
44
+ };
45
+ type __VLS_WithDefaults<P, D> = {
46
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
47
+ default: D[K];
48
+ }> : P[K];
49
+ };
50
+ type __VLS_Prettify<T> = {
51
+ [K in keyof T]: T[K];
52
+ } & {};
53
+ //# sourceMappingURL=LegendPanel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegendPanel.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/CustomOpenlayer/components/LegendPanel.vue"],"names":[],"mappings":"AAiFA;AAuBA,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;AAupBD,wBAOG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}