@yimou6/common-ui 1.14.4 → 1.14.6
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/cdn/index.cdn.js +20 -20
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +21 -21
- package/cdn/index.cdn.mjs.map +1 -1
- package/es/components/geoMark/index.d.ts +3 -77
- package/es/components/geoMark/src/geoMark.d.ts +1 -8
- package/es/components/geoMark/src/geoMark.mjs.map +1 -1
- package/es/components/geoMark/src/geoMark.vue.d.ts +4 -78
- package/es/components/geoMark/src/geoMark.vue2.mjs +694 -689
- package/es/components/geoMark/src/geoMark.vue2.mjs.map +1 -1
- package/es/components/geoMark/src/openMap.vue2.mjs +2 -1
- package/es/components/geoMark/src/openMap.vue2.mjs.map +1 -1
- package/es/components/map/src/map.vue2.mjs +7 -5
- package/es/components/map/src/map.vue2.mjs.map +1 -1
- package/es/components/tzj-player/index.d.ts +0 -297
- package/es/components/tzj-player/src/ctyun-player.vue.d.ts +0 -6
- package/es/components/tzj-player/src/ctyun-player.vue2.mjs +0 -22
- package/es/components/tzj-player/src/ctyun-player.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs +0 -2
- package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
- package/es/components/tzj-player/src/tzj-player.vue.d.ts +0 -297
- package/lib/components/geoMark/index.d.ts +3 -77
- package/lib/components/geoMark/src/geoMark.d.ts +1 -8
- package/lib/components/geoMark/src/geoMark.js.map +1 -1
- package/lib/components/geoMark/src/geoMark.vue.d.ts +4 -78
- package/lib/components/geoMark/src/geoMark.vue2.js +693 -688
- package/lib/components/geoMark/src/geoMark.vue2.js.map +1 -1
- package/lib/components/geoMark/src/openMap.vue2.js +1 -0
- package/lib/components/geoMark/src/openMap.vue2.js.map +1 -1
- package/lib/components/map/src/map.vue2.js +7 -5
- package/lib/components/map/src/map.vue2.js.map +1 -1
- package/lib/components/tzj-player/index.d.ts +0 -297
- package/lib/components/tzj-player/src/ctyun-player.vue.d.ts +0 -6
- package/lib/components/tzj-player/src/ctyun-player.vue2.js +0 -22
- package/lib/components/tzj-player/src/ctyun-player.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/easyPlayer.vue2.js +0 -2
- package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
- package/lib/components/tzj-player/src/tzj-player.vue.d.ts +0 -297
- package/package.json +1 -1
- package/es/components/geoMark/src/DragIcon.vue.d.ts +0 -77
- package/es/components/geoMark/src/DragIcon.vue.mjs +0 -6
- package/es/components/geoMark/src/DragIcon.vue.mjs.map +0 -1
- package/es/components/geoMark/src/DragIcon.vue2.mjs +0 -67
- package/es/components/geoMark/src/DragIcon.vue2.mjs.map +0 -1
- package/lib/components/geoMark/src/DragIcon.vue.d.ts +0 -77
- package/lib/components/geoMark/src/DragIcon.vue.js +0 -10
- package/lib/components/geoMark/src/DragIcon.vue.js.map +0 -1
- package/lib/components/geoMark/src/DragIcon.vue2.js +0 -71
- package/lib/components/geoMark/src/DragIcon.vue2.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openMap.vue2.mjs","sources":["../../../../../../../packages/components/geoMark/src/openMap.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport DragPan from \"ol/interaction/DragPan\";\nimport Projection from \"ol/proj/Projection\";\nimport { Icon, Style } from \"ol/style\";\n// @ts-nocheck\nimport { nextTick, onMounted, ref, toRef, watch } from \"vue\";\nimport {\n Interactions as _Interactions,\n Layers as _Layers,\n Map as _Map,\n MapControls as _MapControls,\n Sources as _Sources,\n Styles as _Styles,\n} from \"vue3-openlayers\";\nimport type { Extent } from \"ol/extent\";\nimport \"ol/ol.css\";\n\n/**\n * openMap —— 重新实现的楼层图组件(替代丢失源码的 gkestor-battlefield-cesium-plus)\n *\n * 通过 vue3-openlayers 渲染一张静态楼层影像,并在其上叠加矢量图层,\n * 支持绘制(区域/逃生路线)、编辑、吸附、变换等交互。\n *\n * 关键点:\n * 1. 地图坐标系使用「像素」单位,坐标与图片像素一一对应,\n * 因此内部始终使用自建的像素投影(xkcd-image / pixels),\n * 忽略外部传入的 projection(如 EPSG:3857),否则楼层图坐标会错乱。\n * 2. center / zoom / size / extent / imgUrl 均与父组件双向联动,\n * 图片切换时会自动重设视图。\n */\nconst props = defineProps({\n apiKey: { type: String, default: \"\" },\n // 外部传入的中心点。图片切换后组件会以图片中心重置视图;外部显式修改 center 时立即生效\n center: { type: Array, default: () => [0, 0] },\n // 外部传入的缩放级别。首次加载/切换图片时组件会按图片 extent 自动适配(fit),\n // 之后外部显式修改 zoom 时立即生效并覆盖自动适配结果\n zoom: { type: Number, default: 1 },\n // 外部传入的投影(保留接口兼容,实际不使用,改用内部像素投影)\n projection: { type: [String, Object], default: undefined },\n imgUrl: { type: String, default: \"\" },\n // 图片的像素尺寸 [width, height],与 extent(图片的坐标范围)配套使用。\n // 原生 ol/source/ImageStatic 用它定义图片渲染分辨率;当 extent 宽高比与图片实际\n // 像素宽高比不一致时,该值可作图片真实像素尺寸用于拉伸矫正。\n // 注意:vue3-openlayers 的 ol-source-image-static 未暴露 imageSize 属性,\n // 实际渲染范围由 extent 决定,size 主要作为元数据保留(与父组件同步维护)\n size: { type: Array, default: () => [1024, 968] },\n extent: { type: Array, default: () => [0, 0, 1024, 968] },\n configMenuItems: { type: Array, default: () => [] },\n activatedBottomBar: { type: String, default: \"\" },\n waring: { type: [String, Number, null] as any, default: null },\n activatedPositionOverlayWaring: { type: Array, default: () => [] },\n activatedPositionOverlay: { type: Array, default: () => [] },\n activatedPropertiesOverlay: { type: Object, default: () => ({}) },\n listTitle: { type: String, default: \"\" },\n alarmType: { type: String, default: \"\" },\n svgOverlay: { type: String, default: \"\" },\n waringIcon: { type: String, default: \"\" },\n fnUpdateDrawFeature: { type: Function, default: undefined },\n fnUpdateDrawFeature2: { type: Function, default: undefined },\n fnOverrideStyle: { type: Function, default: undefined },\n});\nconst emit = defineEmits([\n \"ready\",\n \"featuresChanged\",\n \"customPointerMove\",\n \"customContextMenu\",\n \"customPostCompose\",\n]);\n// 组件擦除为 any:避免具体 ol 组件类型进入 _sfc_main 返回类型触发 TS2742/TS7056\nconst OlMap: any = _Map.OlMap;\nconst OlOverlay: any = _Map.OlOverlay;\nconst OlView: any = _Map.OlView;\nconst OlImageLayer: any = _Layers.OlImageLayer;\nconst OlVectorLayer: any = _Layers.OlVectorLayer;\nconst OlSourceImageStatic: any = _Sources.OlSourceImageStatic;\nconst OlSourceVector: any = _Sources.OlSourceVector;\nconst OlContextMenuControl: any = _MapControls.OlContextMenuControl;\nconst OlZoomControl: any = _MapControls.OlZoomControl;\nconst OlDrawInteraction: any = _Interactions.OlDrawInteraction;\nconst OlModifyInteraction: any = _Interactions.OlModifyInteraction;\nconst OlSnapInteraction: any = _Interactions.OlSnapInteraction;\nconst OlTransformInteraction: any = _Interactions.OlTransformInteraction;\nconst OlStyle: any = _Styles.OlStyle;\n\nconst mapRef = ref<any>(null);\nconst viewRef = ref<any>(null);\nconst vectorSourceRef = ref<any>(null);\nconst currentImageUrl = toRef(props, \"imgUrl\");\n\n// 内部像素投影:使地图坐标与图片像素一一对应\nconst pixelProjection: any = new Projection({\n code: \"xkcd-image\",\n units: \"pixels\",\n extent: props.extent as unknown as Extent,\n});\n\n// 图片尺寸变化时,同步投影的 extent\nwatch(\n () => props.extent,\n (extent) => {\n if (extent && pixelProjection) {\n pixelProjection.setExtent(extent as unknown as Extent);\n }\n // 图片范围更新后重新适配视图,确保图片按新尺寸正确显示(无需二次操作)\n nextTick(() => {\n // eslint-disable-next-line no-use-before-define\n calculateAutoZoom();\n });\n },\n);\n\n// 外部传入的 zoom 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.zoom,\n (val) => {\n const view = viewRef.value?.view;\n if (view && typeof val === \"number\" && !Number.isNaN(val)) {\n view.setZoom(val);\n }\n },\n);\n\n// 外部传入的 center 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.center,\n (val) => {\n const view = viewRef.value?.view;\n if (view && Array.isArray(val) && val.length === 2) {\n view.setCenter(val);\n }\n },\n);\n\nconst getVectorSource = () => vectorSourceRef.value?.source;\nconst getMap = () => mapRef.value?.map;\nconst getView = () => viewRef.value?.view;\n\n// 状态图标处理缓存:key = `${src}#${mode}`,value = 处理后图片的 dataURL。\n// 同一张图片的同一状态只处理一次,后续 createIcon 直接读缓存,避免重复做像素级转换。\n// 仅放内存、不写 localStorage:图标源有限且体积小(几十 KB/张),会话级缓存完全无压力;\n// localStorage 有 5MB 配额、base64 膨胀约 37%、且同步 I/O 阻塞主线程,没有必要持久化。\nconst iconColorCache = new Map<string, string>();\n// 正在处理的缓存 key,防止同一 src+状态被并发重复触发\nconst iconColorPending = new Set<string>();\n\n// 设备图标基准高度(px)。最终高度 = ICON_SIZE * scale,宽度按原图宽高比自动计算(不变形)。\n// scale 作为「高度倍率」保留(告警/编辑=1、普通=0.8),故标点高度会随 scale 变化,见 createIcon。\nconst ICON_SIZE = 40;\n\n// 着色目标色:0 故障=橙、1 报警=红\nconst STATE_COLORS: Record<string, { r: number; g: number; b: number }> = {\n orange: { r: 255, g: 140, b: 0 },\n red: { r: 230, g: 30, b: 30 },\n};\n// 设备状态 → 处理模式:0 故障=orange、1 报警=red、4 离线=gray;\n// 2(正常)及其它(-1 未启用/缺失)返回 null,直接使用原图,不产生新图与缓存。\nconst getIconMode = (state: unknown): string | null => {\n const s = Number(state);\n if (s === 0) return \"orange\";\n if (s === 1) return \"red\";\n if (s === 4) return \"gray\";\n return null;\n};\n\n// 同步创建设备图标样式(style 函数必须同步 return):\n// 1) 状态为 0/1/4:优先使用按状态处理后的缓存图;缓存未就绪时先用原图占位,\n// 同时异步处理,完成后写缓存并刷新当前图层要素使图标更新;\n// 2) 状态为 2(正常)及其它:直接使用原图 src,不做任何处理。\nconst createIcon = (src: string, scale: number, state?: unknown): any => {\n const mode = getIconMode(state);\n let effectiveSrc = src;\n if (mode) {\n const key = `${src}#${mode}`;\n effectiveSrc = iconColorCache.get(key) || src;\n if (!iconColorCache.has(key) && !iconColorPending.has(key)) {\n iconColorPending.add(key);\n processIcon(key, src, mode, (result: string) => {\n iconColorCache.set(key, result);\n iconColorPending.delete(key);\n // eslint-disable-next-line no-use-before-define\n refreshFeaturesUsingIcon();\n });\n }\n }\n return new Style({\n image: new Icon({\n src: effectiveSrc,\n anchor: [0.5, 1],\n anchorXUnits: \"fraction\",\n anchorYUnits: \"fraction\",\n // 高度 = ICON_SIZE * scale,宽度按原图宽高比自动计算(不变形)。\n // 注意:Icon 的 height 与 scale 选项不能同时使用,因此把 scale 折进 height(标量 → 直接乘高度)。\n height: ICON_SIZE * scale,\n }),\n });\n};\n\n// 某张按状态处理后的图片就绪后,重设当前图层所有设备要素的样式,\n// 使仍使用原图占位的图标切换到处理后的状态图。\n// 依赖 index.vue 传入的 fnOverrideStyle(其内部会再次调用 createIcon 读取缓存)。\nconst refreshFeaturesUsingIcon = (): void => {\n const source = vectorSourceRef.value?.source;\n const fn = props.fnOverrideStyle;\n if (!source || typeof fn !== \"function\") return;\n source.getFeatures().forEach((feature: any) => {\n if (feature.get(\"code\")) {\n fn(feature);\n }\n });\n};\n\n// 将图片异步处理为 dataURL:mode=gray 灰度化;mode=orange/red 按目标色着色。\n// 着色保留原图亮度层次(亮部更接近目标色、暗部更暗),透明区域保持不变。\n// 失败(如跨域导致 canvas 被污染)时仅移除 pending,回退继续使用原图。\nfunction processIcon(\n key: string,\n imageSrc: string,\n mode: string,\n callback: (dataUrl: string) => void,\n): void {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onload = () => {\n try {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n // 1. 绘制原图\n ctx.drawImage(img, 0, 0);\n // 2. 获取像素数据,按状态处理(透明度通道保持不变)\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n const tint = STATE_COLORS[mode];\n for (let i = 0; i < data.length; i += 4) {\n const lum = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n if (tint) {\n // 着色:用亮度调制目标色,保留图标明暗层次\n const factor = 0.4 + 0.6 * (lum / 255);\n data[i] = tint.r * factor;\n data[i + 1] = tint.g * factor;\n data[i + 2] = tint.b * factor;\n } else {\n // 离线:标准灰度\n data[i] = lum;\n data[i + 1] = lum;\n data[i + 2] = lum;\n }\n }\n // 3. 写回 canvas 并导出 dataURL\n ctx.putImageData(imageData, 0, 0);\n callback(canvas.toDataURL(\"image/png\"));\n } catch (error) {\n iconColorPending.delete(key);\n }\n };\n img.onerror = () => {\n iconColorPending.delete(key);\n };\n img.src = imageSrc;\n}\n\nconst clearSource = () => vectorSourceRef.value?.source?.clear();\nconst addFeature = (feature: any) =>\n vectorSourceRef.value?.source?.addFeature(feature);\nconst addFeatures = (features: any[]) =>\n vectorSourceRef.value?.source?.addFeatures(features);\nconst removeFeature = (feature: any) =>\n vectorSourceRef.value?.source?.removeFeature(feature);\nconst getFeatures = () =>\n vectorSourceRef.value?.source\n ? vectorSourceRef.value.source.getFeatures()\n : [];\nconst getZoom = () => mapRef.value?.map?.getView()?.getZoom();\nconst setZoom = (zoom: number) => mapRef.value?.map?.getView()?.setZoom(zoom);\n\nconst calculateAutoZoom = () => {\n const view = viewRef.value?.view;\n if (!view || typeof view.fit !== \"function\") return;\n // 屏幕显示大小必须取 size(底图像素尺寸),而不是容器 DOM 尺寸。\n // 这样 fit 后 resolution≈1,1 地图单位 = 1 CSS 像素,图片按 size 里的大小显示(如 800×600),\n // 不会因为用了容器尺寸而被撑满整个视口,也保证点位坐标与图片像素一一对应。\n const [width, height] = props.size as number[];\n if (!width || !height) return;\n view.fit(props.extent as unknown as Extent, {\n size: [width, height],\n padding: [10, 10, 10, 10],\n constrainResolution: false,\n nearest: false,\n });\n};\n\n// 绘制模式下,地图拖拽平移(DragPan)会与绘制交互冲突,\n// 导致按住鼠标拖动放置顶点时底图跟着平移,因此绘制期间禁用 DragPan。\nconst isDrawingMode = (): boolean =>\n props.activatedBottomBar === \"区域绘制\" ||\n props.activatedBottomBar === \"逃生路线\";\n\nconst setDragPanActive = (active: boolean): void => {\n const map = mapRef.value?.map;\n if (!map) return;\n map\n .getInteractions()\n .getArray()\n .forEach((interaction: any) => {\n if (interaction instanceof DragPan) {\n interaction.setActive(active);\n }\n });\n};\n\n// 切换底部栏按钮时,同步 DragPan 的启用/禁用状态\nwatch(\n () => props.activatedBottomBar,\n () => {\n setDragPanActive(!isDrawingMode());\n },\n);\n\ndefineExpose({\n getVectorSource,\n getMap,\n getView,\n createIcon,\n clearSource,\n addFeature,\n addFeatures,\n removeFeature,\n getFeatures,\n getZoom,\n setZoom,\n calculateAutoZoom,\n});\n\nonMounted(() => {\n nextTick(() => {\n emit(\"ready\");\n const map = mapRef.value?.map;\n if (map) {\n map.on(\"postcompose\", (e: any) => emit(\"customPostCompose\", e));\n map.on(\"pointermove\", (e: any) => emit(\"customPointerMove\", e));\n map.on(\"contextmenu\", (e: any) => emit(\"customContextMenu\", e));\n setDragPanActive(!isDrawingMode());\n }\n });\n});\n</script>\n\n<template>\n <OlMap ref=\"mapRef\" class=\"w-full\" style=\"height: 100%\">\n <OlView\n ref=\"viewRef\"\n :center=\"center\"\n :zoom=\"zoom\"\n :projection=\"pixelProjection\"\n />\n\n <OlZoomControl />\n\n <OlContextMenuControl :items=\"configMenuItems\" />\n\n <!-- 底图静态影像层:key 绑定 imgUrl+extent,二者任一变化即整体销毁重建影像层。\n 因为 OL ImageStatic 的 imageExtent 在构造后不可变,vue3-openlayers 只能靠重建 source\n 来应用新 extent;若不加 key,重建/图片异步加载期间会短暂以旧 imageExtent 渲染,\n 导致首帧图标与底图错位(再次点击楼层后才对齐) -->\n <OlImageLayer\n id=\"xkcd\"\n :key=\"`${currentImageUrl}|${extent.join(',')}`\"\n :z-index=\"-1\"\n >\n <OlSourceImageStatic\n :url=\"currentImageUrl\"\n :image-extent=\"extent\"\n :projection=\"pixelProjection\"\n />\n </OlImageLayer>\n\n <!-- 矢量图层 -->\n <OlVectorLayer :z-index=\"1\">\n <OlSourceVector ref=\"vectorSourceRef\">\n <!-- 区域设置 -->\n <OlModifyInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n <!-- 区域绘制 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '区域绘制'\"\n type=\"Polygon\"\n :stop-click=\"true\"\n @drawend=\"fnUpdateDrawFeature\"\n />\n <!-- 逃生路线 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '逃生路线'\"\n ref=\"drawRef\"\n type=\"LineString\"\n :stop-click=\"true\"\n @drawend=\"fnUpdateDrawFeature2\"\n />\n <!-- 区域设置吸附 -->\n <OlSnapInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n </OlSourceVector>\n\n <OlStyle :override-style-function=\"fnOverrideStyle\" />\n </OlVectorLayer>\n\n <!-- 编辑 / 区域模板 -->\n <OlTransformInteraction\n v-if=\"activatedBottomBar === '编辑' || activatedBottomBar === '区域模板'\"\n />\n\n <!-- 警告气泡:activatedPositionOverlayWaring 为告警设备坐标 -->\n <OlOverlay\n v-if=\"\n waring &&\n activatedPositionOverlayWaring &&\n activatedPositionOverlayWaring.length > 0\n \"\n :position=\"activatedPositionOverlayWaring\"\n :auto-pan=\"true\"\n :anchor=\"[0.5, 1]\"\n :offset=\"[-50, -30]\"\n >\n <div\n class=\"waring-bubble flex flex-col justify-start text-white flex-nowrap\"\n >\n <img :src=\"waringIcon\" alt=\"\" class=\"absolute w-full h-full\" />\n </div>\n </OlOverlay>\n\n <!-- 位置气泡(插槽) -->\n <OlOverlay\n v-if=\"activatedPositionOverlay.length > 0\"\n :position=\"activatedPositionOverlay\"\n :offset=\"[-175, -255]\"\n :auto-pan=\"true\"\n >\n <slot name=\"overlay\" />\n </OlOverlay>\n </OlMap>\n</template>\n"],"names":["_Map","_Layers","_Sources","_MapControls","_Interactions","_Styles","_createBlock","_unref","_createVNode","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openMap.vue2.mjs","sources":["../../../../../../../packages/components/geoMark/src/openMap.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport DragPan from \"ol/interaction/DragPan\";\nimport Projection from \"ol/proj/Projection\";\nimport { Icon, Style } from \"ol/style\";\n// @ts-nocheck\nimport { inject, nextTick, onMounted, provide, ref, toRef, watch } from \"vue\";\nimport {\n Interactions as _Interactions,\n Layers as _Layers,\n Map as _Map,\n MapControls as _MapControls,\n Sources as _Sources,\n Styles as _Styles,\n} from \"vue3-openlayers\";\nimport type { Extent } from \"ol/extent\";\nimport \"ol/ol.css\";\n\n/**\n * openMap —— 重新实现的楼层图组件(替代丢失源码的 gkestor-battlefield-cesium-plus)\n *\n * 通过 vue3-openlayers 渲染一张静态楼层影像,并在其上叠加矢量图层,\n * 支持绘制(区域/逃生路线)、编辑、吸附、变换等交互。\n *\n * 关键点:\n * 1. 地图坐标系使用「像素」单位,坐标与图片像素一一对应,\n * 因此内部始终使用自建的像素投影(xkcd-image / pixels),\n * 忽略外部传入的 projection(如 EPSG:3857),否则楼层图坐标会错乱。\n * 2. center / zoom / size / extent / imgUrl 均与父组件双向联动,\n * 图片切换时会自动重设视图。\n */\nconst props = defineProps({\n apiKey: { type: String, default: \"\" },\n // 外部传入的中心点。图片切换后组件会以图片中心重置视图;外部显式修改 center 时立即生效\n center: { type: Array, default: () => [0, 0] },\n // 外部传入的缩放级别。首次加载/切换图片时组件会按图片 extent 自动适配(fit),\n // 之后外部显式修改 zoom 时立即生效并覆盖自动适配结果\n zoom: { type: Number, default: 1 },\n // 外部传入的投影(保留接口兼容,实际不使用,改用内部像素投影)\n projection: { type: [String, Object], default: undefined },\n imgUrl: { type: String, default: \"\" },\n // 图片的像素尺寸 [width, height],与 extent(图片的坐标范围)配套使用。\n // 原生 ol/source/ImageStatic 用它定义图片渲染分辨率;当 extent 宽高比与图片实际\n // 像素宽高比不一致时,该值可作图片真实像素尺寸用于拉伸矫正。\n // 注意:vue3-openlayers 的 ol-source-image-static 未暴露 imageSize 属性,\n // 实际渲染范围由 extent 决定,size 主要作为元数据保留(与父组件同步维护)\n size: { type: Array, default: () => [1024, 968] },\n extent: { type: Array, default: () => [0, 0, 1024, 968] },\n configMenuItems: { type: Array, default: () => [] },\n activatedBottomBar: { type: String, default: \"\" },\n waring: { type: [String, Number, null] as any, default: null },\n activatedPositionOverlayWaring: { type: Array, default: () => [] },\n activatedPositionOverlay: { type: Array, default: () => [] },\n activatedPropertiesOverlay: { type: Object, default: () => ({}) },\n listTitle: { type: String, default: \"\" },\n alarmType: { type: String, default: \"\" },\n svgOverlay: { type: String, default: \"\" },\n waringIcon: { type: String, default: \"\" },\n fnUpdateDrawFeature: { type: Function, default: undefined },\n fnUpdateDrawFeature2: { type: Function, default: undefined },\n fnOverrideStyle: { type: Function, default: undefined },\n});\nconst emit = defineEmits([\n \"ready\",\n \"featuresChanged\",\n \"customPointerMove\",\n \"customContextMenu\",\n \"customPostCompose\",\n]);\n// 组件擦除为 any:避免具体 ol 组件类型进入 _sfc_main 返回类型触发 TS2742/TS7056\nconst OlMap: any = _Map.OlMap;\nconst OlOverlay: any = _Map.OlOverlay;\nconst OlView: any = _Map.OlView;\nconst OlImageLayer: any = _Layers.OlImageLayer;\nconst OlVectorLayer: any = _Layers.OlVectorLayer;\nconst OlSourceImageStatic: any = _Sources.OlSourceImageStatic;\nconst OlSourceVector: any = _Sources.OlSourceVector;\nconst OlContextMenuControl: any = _MapControls.OlContextMenuControl;\nconst OlZoomControl: any = _MapControls.OlZoomControl;\nconst OlDrawInteraction: any = _Interactions.OlDrawInteraction;\nconst OlModifyInteraction: any = _Interactions.OlModifyInteraction;\nconst OlSnapInteraction: any = _Interactions.OlSnapInteraction;\nconst OlTransformInteraction: any = _Interactions.OlTransformInteraction;\nconst OlStyle: any = _Styles.OlStyle;\n\nconst mapRef = ref<any>(null);\nconst viewRef = ref<any>(null);\nconst vectorSourceRef = ref<any>(null);\nconst currentImageUrl = toRef(props, \"imgUrl\");\n\n// vue3-openlayers 的 ol-options 只在插件 app.use() 时通过 app.provide 注入。本组件是按需\n// import 使用(不依赖全局注册),因此下游每个 ol 组件 inject 都会打印\n// `injection \"ol-options\" not found`。这里兜底 provide 消除该告警:\n// 该配置的唯一用途是 globalOptions.debug(调试日志开关),缺失不影响任何功能;\n// inject 带默认值本身不触发告警,且使用方若已安装插件,仍会沿用其 debug 配置。\nprovide(\"ol-options\", inject(\"ol-options\", {}));\n\n// 内部像素投影:使地图坐标与图片像素一一对应\nconst pixelProjection: any = new Projection({\n code: \"xkcd-image\",\n units: \"pixels\",\n extent: props.extent as unknown as Extent,\n});\n\n// 图片尺寸变化时,同步投影的 extent\nwatch(\n () => props.extent,\n (extent) => {\n if (extent && pixelProjection) {\n pixelProjection.setExtent(extent as unknown as Extent);\n }\n // 图片范围更新后重新适配视图,确保图片按新尺寸正确显示(无需二次操作)\n nextTick(() => {\n // eslint-disable-next-line no-use-before-define\n calculateAutoZoom();\n });\n },\n);\n\n// 外部传入的 zoom 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.zoom,\n (val) => {\n const view = viewRef.value?.view;\n if (view && typeof val === \"number\" && !Number.isNaN(val)) {\n view.setZoom(val);\n }\n },\n);\n\n// 外部传入的 center 变化时直接同步到视图,保证外部控制立即生效\nwatch(\n () => props.center,\n (val) => {\n const view = viewRef.value?.view;\n if (view && Array.isArray(val) && val.length === 2) {\n view.setCenter(val);\n }\n },\n);\n\nconst getVectorSource = () => vectorSourceRef.value?.source;\nconst getMap = () => mapRef.value?.map;\nconst getView = () => viewRef.value?.view;\n\n// 状态图标处理缓存:key = `${src}#${mode}`,value = 处理后图片的 dataURL。\n// 同一张图片的同一状态只处理一次,后续 createIcon 直接读缓存,避免重复做像素级转换。\n// 仅放内存、不写 localStorage:图标源有限且体积小(几十 KB/张),会话级缓存完全无压力;\n// localStorage 有 5MB 配额、base64 膨胀约 37%、且同步 I/O 阻塞主线程,没有必要持久化。\nconst iconColorCache = new Map<string, string>();\n// 正在处理的缓存 key,防止同一 src+状态被并发重复触发\nconst iconColorPending = new Set<string>();\n\n// 设备图标基准高度(px)。最终高度 = ICON_SIZE * scale,宽度按原图宽高比自动计算(不变形)。\n// scale 作为「高度倍率」保留(告警/编辑=1、普通=0.8),故标点高度会随 scale 变化,见 createIcon。\nconst ICON_SIZE = 40;\n\n// 着色目标色:0 故障=橙、1 报警=红\nconst STATE_COLORS: Record<string, { r: number; g: number; b: number }> = {\n orange: { r: 255, g: 140, b: 0 },\n red: { r: 230, g: 30, b: 30 },\n};\n// 设备状态 → 处理模式:0 故障=orange、1 报警=red、4 离线=gray;\n// 2(正常)及其它(-1 未启用/缺失)返回 null,直接使用原图,不产生新图与缓存。\nconst getIconMode = (state: unknown): string | null => {\n const s = Number(state);\n if (s === 0) return \"orange\";\n if (s === 1) return \"red\";\n if (s === 4) return \"gray\";\n return null;\n};\n\n// 同步创建设备图标样式(style 函数必须同步 return):\n// 1) 状态为 0/1/4:优先使用按状态处理后的缓存图;缓存未就绪时先用原图占位,\n// 同时异步处理,完成后写缓存并刷新当前图层要素使图标更新;\n// 2) 状态为 2(正常)及其它:直接使用原图 src,不做任何处理。\nconst createIcon = (src: string, scale: number, state?: unknown): any => {\n const mode = getIconMode(state);\n let effectiveSrc = src;\n if (mode) {\n const key = `${src}#${mode}`;\n effectiveSrc = iconColorCache.get(key) || src;\n if (!iconColorCache.has(key) && !iconColorPending.has(key)) {\n iconColorPending.add(key);\n processIcon(key, src, mode, (result: string) => {\n iconColorCache.set(key, result);\n iconColorPending.delete(key);\n // eslint-disable-next-line no-use-before-define\n refreshFeaturesUsingIcon();\n });\n }\n }\n return new Style({\n image: new Icon({\n src: effectiveSrc,\n anchor: [0.5, 1],\n anchorXUnits: \"fraction\",\n anchorYUnits: \"fraction\",\n // 高度 = ICON_SIZE * scale,宽度按原图宽高比自动计算(不变形)。\n // 注意:Icon 的 height 与 scale 选项不能同时使用,因此把 scale 折进 height(标量 → 直接乘高度)。\n height: ICON_SIZE * scale,\n }),\n });\n};\n\n// 某张按状态处理后的图片就绪后,重设当前图层所有设备要素的样式,\n// 使仍使用原图占位的图标切换到处理后的状态图。\n// 依赖 index.vue 传入的 fnOverrideStyle(其内部会再次调用 createIcon 读取缓存)。\nconst refreshFeaturesUsingIcon = (): void => {\n const source = vectorSourceRef.value?.source;\n const fn = props.fnOverrideStyle;\n if (!source || typeof fn !== \"function\") return;\n source.getFeatures().forEach((feature: any) => {\n if (feature.get(\"code\")) {\n fn(feature);\n }\n });\n};\n\n// 将图片异步处理为 dataURL:mode=gray 灰度化;mode=orange/red 按目标色着色。\n// 着色保留原图亮度层次(亮部更接近目标色、暗部更暗),透明区域保持不变。\n// 失败(如跨域导致 canvas 被污染)时仅移除 pending,回退继续使用原图。\nfunction processIcon(\n key: string,\n imageSrc: string,\n mode: string,\n callback: (dataUrl: string) => void,\n): void {\n const img = new Image();\n img.crossOrigin = \"anonymous\";\n img.onload = () => {\n try {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n // 1. 绘制原图\n ctx.drawImage(img, 0, 0);\n // 2. 获取像素数据,按状态处理(透明度通道保持不变)\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n const tint = STATE_COLORS[mode];\n for (let i = 0; i < data.length; i += 4) {\n const lum = 0.299 * data[i] + 0.587 * data[i + 1] + 0.114 * data[i + 2];\n if (tint) {\n // 着色:用亮度调制目标色,保留图标明暗层次\n const factor = 0.4 + 0.6 * (lum / 255);\n data[i] = tint.r * factor;\n data[i + 1] = tint.g * factor;\n data[i + 2] = tint.b * factor;\n } else {\n // 离线:标准灰度\n data[i] = lum;\n data[i + 1] = lum;\n data[i + 2] = lum;\n }\n }\n // 3. 写回 canvas 并导出 dataURL\n ctx.putImageData(imageData, 0, 0);\n callback(canvas.toDataURL(\"image/png\"));\n } catch (error) {\n iconColorPending.delete(key);\n }\n };\n img.onerror = () => {\n iconColorPending.delete(key);\n };\n img.src = imageSrc;\n}\n\nconst clearSource = () => vectorSourceRef.value?.source?.clear();\nconst addFeature = (feature: any) =>\n vectorSourceRef.value?.source?.addFeature(feature);\nconst addFeatures = (features: any[]) =>\n vectorSourceRef.value?.source?.addFeatures(features);\nconst removeFeature = (feature: any) =>\n vectorSourceRef.value?.source?.removeFeature(feature);\nconst getFeatures = () =>\n vectorSourceRef.value?.source\n ? vectorSourceRef.value.source.getFeatures()\n : [];\nconst getZoom = () => mapRef.value?.map?.getView()?.getZoom();\nconst setZoom = (zoom: number) => mapRef.value?.map?.getView()?.setZoom(zoom);\n\nconst calculateAutoZoom = () => {\n const view = viewRef.value?.view;\n if (!view || typeof view.fit !== \"function\") return;\n // 屏幕显示大小必须取 size(底图像素尺寸),而不是容器 DOM 尺寸。\n // 这样 fit 后 resolution≈1,1 地图单位 = 1 CSS 像素,图片按 size 里的大小显示(如 1024×968),\n // 不会因为用了容器尺寸而被撑满整个视口,也保证点位坐标与图片像素一一对应。\n const [width, height] = props.size as number[];\n if (!width || !height) return;\n view.fit(props.extent as unknown as Extent, {\n size: [width, height],\n padding: [10, 10, 10, 10],\n constrainResolution: false,\n nearest: false,\n });\n};\n\n// 绘制模式下,地图拖拽平移(DragPan)会与绘制交互冲突,\n// 导致按住鼠标拖动放置顶点时底图跟着平移,因此绘制期间禁用 DragPan。\nconst isDrawingMode = (): boolean =>\n props.activatedBottomBar === \"区域绘制\" ||\n props.activatedBottomBar === \"逃生路线\";\n\nconst setDragPanActive = (active: boolean): void => {\n const map = mapRef.value?.map;\n if (!map) return;\n map\n .getInteractions()\n .getArray()\n .forEach((interaction: any) => {\n if (interaction instanceof DragPan) {\n interaction.setActive(active);\n }\n });\n};\n\n// 切换底部栏按钮时,同步 DragPan 的启用/禁用状态\nwatch(\n () => props.activatedBottomBar,\n () => {\n setDragPanActive(!isDrawingMode());\n },\n);\n\ndefineExpose({\n getVectorSource,\n getMap,\n getView,\n createIcon,\n clearSource,\n addFeature,\n addFeatures,\n removeFeature,\n getFeatures,\n getZoom,\n setZoom,\n calculateAutoZoom,\n});\n\nonMounted(() => {\n nextTick(() => {\n emit(\"ready\");\n const map = mapRef.value?.map;\n if (map) {\n map.on(\"postcompose\", (e: any) => emit(\"customPostCompose\", e));\n map.on(\"pointermove\", (e: any) => emit(\"customPointerMove\", e));\n map.on(\"contextmenu\", (e: any) => emit(\"customContextMenu\", e));\n setDragPanActive(!isDrawingMode());\n }\n });\n});\n</script>\n\n<template>\n <OlMap ref=\"mapRef\" class=\"w-full\" style=\"height: 100%\">\n <OlView\n ref=\"viewRef\"\n :center=\"center\"\n :zoom=\"zoom\"\n :projection=\"pixelProjection\"\n />\n\n <OlZoomControl />\n\n <OlContextMenuControl :items=\"configMenuItems\" />\n\n <!-- 底图静态影像层:key 绑定 imgUrl+extent,二者任一变化即整体销毁重建影像层。\n 因为 OL ImageStatic 的 imageExtent 在构造后不可变,vue3-openlayers 只能靠重建 source\n 来应用新 extent;若不加 key,重建/图片异步加载期间会短暂以旧 imageExtent 渲染,\n 导致首帧图标与底图错位(再次点击楼层后才对齐) -->\n <OlImageLayer\n id=\"xkcd\"\n :key=\"`${currentImageUrl}|${extent.join(',')}`\"\n :z-index=\"-1\"\n >\n <OlSourceImageStatic\n :url=\"currentImageUrl\"\n :image-extent=\"extent\"\n :projection=\"pixelProjection\"\n />\n </OlImageLayer>\n\n <!-- 矢量图层 -->\n <OlVectorLayer :z-index=\"1\">\n <OlSourceVector ref=\"vectorSourceRef\">\n <!-- 区域设置 -->\n <OlModifyInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n <!-- 区域绘制 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '区域绘制'\"\n type=\"Polygon\"\n :stop-click=\"true\"\n @drawend=\"fnUpdateDrawFeature\"\n />\n <!-- 逃生路线 -->\n <OlDrawInteraction\n v-if=\"activatedBottomBar === '逃生路线'\"\n ref=\"drawRef\"\n type=\"LineString\"\n :stop-click=\"true\"\n @drawend=\"fnUpdateDrawFeature2\"\n />\n <!-- 区域设置吸附 -->\n <OlSnapInteraction v-if=\"activatedBottomBar === '区域设置'\" />\n </OlSourceVector>\n\n <OlStyle :override-style-function=\"fnOverrideStyle\" />\n </OlVectorLayer>\n\n <!-- 编辑 / 区域模板 -->\n <OlTransformInteraction\n v-if=\"activatedBottomBar === '编辑' || activatedBottomBar === '区域模板'\"\n />\n\n <!-- 警告气泡:activatedPositionOverlayWaring 为告警设备坐标 -->\n <OlOverlay\n v-if=\"\n waring &&\n activatedPositionOverlayWaring &&\n activatedPositionOverlayWaring.length > 0\n \"\n :position=\"activatedPositionOverlayWaring\"\n :auto-pan=\"true\"\n :anchor=\"[0.5, 1]\"\n :offset=\"[-50, -30]\"\n >\n <div\n class=\"waring-bubble flex flex-col justify-start text-white flex-nowrap\"\n >\n <img :src=\"waringIcon\" alt=\"\" class=\"absolute w-full h-full\" />\n </div>\n </OlOverlay>\n\n <!-- 位置气泡(插槽) -->\n <OlOverlay\n v-if=\"activatedPositionOverlay.length > 0\"\n :position=\"activatedPositionOverlay\"\n :offset=\"[-175, -255]\"\n :auto-pan=\"true\"\n >\n <slot name=\"overlay\" />\n </OlOverlay>\n </OlMap>\n</template>\n"],"names":["_Map","_Layers","_Sources","_MapControls","_Interactions","_Styles","_createBlock","_unref","_createVNode","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
|
|
@@ -171,11 +171,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
171
171
|
zoom: mapZoom
|
|
172
172
|
});
|
|
173
173
|
map.addControl(new T.Control.Zoom());
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
174
|
+
if (props.type !== "view") {
|
|
175
|
+
map.addEventListener("click", (e) => {
|
|
176
|
+
const lnglat = e.lnglat;
|
|
177
|
+
if (!lnglat) return;
|
|
178
|
+
addMarker([lnglat.getLng(), lnglat.getLat()]);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
179
181
|
if (hasInitPos) {
|
|
180
182
|
await nextTick();
|
|
181
183
|
addMarker([model.value[0], model.value[1]], model.value[2]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.vue2.mjs","sources":["../../../../../../../packages/components/map/src/map.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { CircleClose } from \"@element-plus/icons-vue\";\nimport { ElMessage } from \"element-plus\";\nimport { nextTick, onMounted, onUnmounted, ref, toRefs, watch } from \"vue\";\nimport { MapProps, TiandituGlobal } from \"./map\";\nimport markerIcon from \"./marker.png\";\n\ndefineOptions({\n name: \"IMap\",\n});\n\n// ==================== Props & Emits ====================\nconst props = defineProps(MapProps);\n\nconst emits = defineEmits([\n \"update:modelValue\",\n \"change\",\n \"update:addressCode\",\n \"update:address\",\n]);\n\nconst { modelValue, disabled, options } = toRefs(props);\n\n// ==================== 天地图 Token ====================\nconst TIANDITU_TOKEN = \"ab0296cad21f656152228912c15abdfb\";\n\n// ==================== 模块级:加载天地图 JS API ====================\nconst _win = window as unknown as TiandituGlobal;\n\nfunction loadTiandituScript(): Promise<void> {\n if (_win.__tdt_loaded) return Promise.resolve();\n if (_win.__tdt_loading) return _win.__tdt_loading;\n\n _win.__tdt_loading = new Promise<void>((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = `https://api.tianditu.gov.cn/api?v=4.0&tk=${TIANDITU_TOKEN}`;\n script.onload = () => {\n _win.__tdt_loaded = true;\n _win.__tdt_loading = null;\n resolve();\n };\n script.onerror = () => {\n _win.__tdt_loading = null;\n reject(new Error(\"天地图 API 加载失败\"));\n };\n document.head.appendChild(script);\n });\n return _win.__tdt_loading;\n}\n\nfunction getT(): any {\n return _win.T;\n}\n\n// ==================== 天地图 REST API 封装 ====================\nasync function tdtSearch(keyword: string): Promise<any[]> {\n const postStr = JSON.stringify({\n keyWord: keyword,\n level: 12,\n mapBound: \"73.66,3.86,135.05,53.55\",\n queryType: 7,\n start: 0,\n count: 20,\n });\n const url = `https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(postStr)}&type=query&tk=${TIANDITU_TOKEN}`;\n try {\n const resp = await fetch(url);\n if (!resp.ok) return [];\n const data = await resp.json();\n if (data && data.pois) {\n return data.pois.map((poi: any) => ({\n value: poi.name,\n name: poi.name,\n district: poi.address || \"\",\n location: poi.lonlat\n ? {\n lng: Number(poi.lonlat.split(\" \")[0]),\n lat: Number(poi.lonlat.split(\" \")[1]),\n }\n : null,\n adcode: poi.admincode || \"\",\n _raw: poi,\n }));\n }\n return [];\n } catch {\n return [];\n }\n}\n\nasync function tdtReverseGeocode(lng: number, lat: number): Promise<string> {\n const postStr = JSON.stringify({ lon: lng, lat, ver: 1 });\n const url = `https://api.tianditu.gov.cn/geocoder?postStr=${encodeURIComponent(postStr)}&type=geocode&tk=${TIANDITU_TOKEN}`;\n const resp = await fetch(url);\n const data = await resp.json();\n if (data && data.result) {\n return data.result.formatted_address || data.result.address || \"\";\n }\n return \"\";\n}\n\n// ==================== 响应式状态 ====================\nlet map: any = null;\nlet marker: any = null;\nlet infoWindow: any = null;\n\nconst dialogVisible = ref(false);\nconst keyword = ref(\"\");\nconst model = ref<any>([]);\n\nconst refMap = ref<HTMLDivElement | null>(null);\nconst center = ref<[number, number]>([116.397428, 39.90923]);\nconst zoom = ref(10);\n\n// ==================== 标记管理 ====================\nfunction clearMarker() {\n if (marker) {\n map?.removeOverLay(marker);\n marker = null;\n }\n}\n\nasync function addMarker(lnglat: [number, number], name?: string) {\n const T = getT();\n if (!T || !map) return;\n\n clearMarker();\n\n const icon = new T.Icon({\n iconUrl: markerIcon,\n iconSize: new T.Point(19, 33),\n iconAnchor: new T.Point(10, 33),\n });\n\n marker = new T.Marker(new T.LngLat(lnglat[0], lnglat[1]), { icon });\n map.addOverLay(marker);\n\n if (name) {\n keyword.value = name;\n model.value = [lnglat[0], lnglat[1], name];\n return;\n }\n\n try {\n const address = await tdtReverseGeocode(lnglat[0], lnglat[1]);\n keyword.value =\n address || `${lnglat[0].toFixed(6)}, ${lnglat[1].toFixed(6)}`;\n model.value = [lnglat[0], lnglat[1], keyword.value];\n } catch {\n model.value = [\n lnglat[0],\n lnglat[1],\n `${lnglat[0].toFixed(6)}, ${lnglat[1].toFixed(6)}`,\n ];\n }\n}\n\n// ==================== 地图初始化 ====================\nasync function initMap() {\n await loadTiandituScript();\n const T = getT();\n if (!T) return;\n\n const container = refMap.value;\n if (!container) return;\n\n if (map) {\n try {\n map.destroy();\n } catch {\n /* ignore */\n }\n map = null;\n marker = null;\n }\n\n const hasInitPos = model.value?.[0] != null && model.value?.[1] != null;\n const mapCenter = hasInitPos\n ? new T.LngLat(model.value[0], model.value[1])\n : new T.LngLat(center.value[0], center.value[1]);\n const mapZoom = hasInitPos ? options.value?.zoom || 15 : zoom.value;\n\n map = new T.Map(container, {\n center: mapCenter,\n zoom: mapZoom,\n });\n\n map.addControl(new T.Control.Zoom());\n\n // 地图点击 → 选点\n map.addEventListener(\"click\", (e: any) => {\n const lnglat = e.lnglat;\n if (!lnglat) return;\n addMarker([lnglat.getLng(), lnglat.getLat()]);\n });\n\n if (hasInitPos) {\n await nextTick();\n addMarker([model.value[0], model.value[1]], model.value[2]);\n }\n}\n\nfunction destroyMap() {\n clearMarker();\n if (infoWindow) {\n try {\n infoWindow.closeInfoWindow();\n } catch {\n /* ignore */\n }\n infoWindow = null;\n }\n if (map) {\n try {\n map.destroy();\n } catch {\n /* ignore */\n }\n map = null;\n }\n}\n\n// ==================== 打开选择器 ====================\nconst handleOpenDialog = async () => {\n if (disabled.value) return;\n dialogVisible.value = true;\n await nextTick();\n model.value = JSON.parse(JSON.stringify(modelValue.value));\n setTimeout(() => initMap(), 200);\n};\n\n// ==================== 自动补全搜索 ====================\nconst LAST_SEARCH_RESULTS = ref<any[]>([]);\n\nconst querySearch = async (queryString: string, cb: any) => {\n if (!queryString) return cb([]);\n try {\n const results = await tdtSearch(queryString);\n LAST_SEARCH_RESULTS.value = results;\n cb(results);\n } catch {\n ElMessage.error(\"搜索失败,请稍后重试\");\n cb([]);\n }\n};\n\nconst inputChange = () => {\n model.value = [];\n clearMarker();\n};\n\n// ==================== 选中搜索结果 ====================\n/**\n * 从 item 中提取坐标(优先 item.location,其次 item._raw.lonlat)\n */\nfunction extractCoords(item: any): [number, number] | null {\n if (item.location && !isNaN(item.location.lng) && !isNaN(item.location.lat)) {\n return [item.location.lng, item.location.lat];\n }\n if (item._raw?.lonlat) {\n const [lng, lat] = item._raw.lonlat.split(\",\").map(Number);\n if (!isNaN(lng) && !isNaN(lat)) return [lng, lat];\n }\n return null;\n}\n\n/**\n * 定位到指定坐标并添加标记\n */\nfunction locateTo(lngLat: [number, number], name: string) {\n addMarker(lngLat, name);\n map?.panTo(new (getT().LngLat)(lngLat[0], lngLat[1]));\n}\n\nconst handleSelect = async (item: any) => {\n console.log(\"🚀 ~ item:\", item);\n keyword.value = item.name;\n\n // 1) item 本身有坐标 → 直接定位打点\n const coords = extractCoords(item);\n console.log(\"🚀 ~ coords:\", coords);\n if (coords) {\n locateTo(coords, item.name);\n return;\n }\n\n // 2) 无坐标 → 远程搜索后定位\n try {\n const results = await tdtSearch(item.name);\n const first = results[0];\n if (first) {\n const firstCoords = extractCoords(first);\n if (firstCoords) {\n locateTo(firstCoords, first.name);\n return;\n }\n }\n ElMessage.warning(\"未找到匹配的地点\");\n } catch {\n ElMessage.warning(\"搜索失败,请稍后重试\");\n }\n};\n\n// ==================== Enter 键搜索 ====================\nconst handleEnterKey = () => {\n if (!keyword.value) return;\n if (LAST_SEARCH_RESULTS.value.length > 0) {\n handleSelect(LAST_SEARCH_RESULTS.value[0]);\n } else {\n handleSelect({ value: keyword.value, name: keyword.value });\n }\n};\n\n// ==================== 确认 / 清除 ====================\nconst handleConfirm = () => {\n emits(\"update:modelValue\", model.value);\n emits(\"change\", model.value);\n emits(\"update:addressCode\", [model.value[0], model.value[1]]);\n emits(\"update:address\", model.value[2]);\n dialogVisible.value = false;\n setTimeout(() => destroyMap(), 300);\n};\n\nconst clearValue = () => {\n emits(\"update:modelValue\", []);\n emits(\"change\", []);\n};\n\n// ==================== 地图中心更新 ====================\nfunction updateMapCenter(val: any[], retry = 0) {\n const T = getT();\n if (!map || !T) {\n if (retry < 10) {\n setTimeout(() => updateMapCenter(val, retry + 1), 300);\n }\n return;\n }\n addMarker([val[0], val[1]], val[2]);\n map.panTo(new T.LngLat(val[0], val[1]), options.value?.zoom || 12);\n}\n\n// ==================== View 模式:挂载时初始化 ====================\nonMounted(() => {\n if (props.type === \"view\") {\n nextTick(async () => {\n model.value = JSON.parse(JSON.stringify(modelValue.value));\n await new Promise((r) => requestAnimationFrame(r));\n try {\n await initMap();\n } catch (e) {\n console.error(\"[ViewMap] initMap error:\", e);\n }\n });\n }\n});\n\nonUnmounted(() => {\n destroyMap();\n});\n\n// ==================== 监听 modelValue 外部变化 ====================\nwatch(\n () => props.modelValue,\n (val) => {\n if (!val || val[0] == null || val[1] == null) return;\n model.value = JSON.parse(JSON.stringify(val));\n updateMapCenter(val);\n },\n { deep: true },\n);\n\ndefineExpose({\n handleOpenDialog,\n});\n</script>\n\n<template>\n <!-- type=\"view\":只读地图 -->\n <div\n v-if=\"type === 'view'\"\n class=\"i-map w-full h-full i-map__container-inner\"\n >\n <div ref=\"refMap\" class=\"i-map__tdt i-map__tdt--view\" />\n </div>\n\n <!-- type=\"edit\" / \"edit2\":输入框 + 抽屉 / 纯抽屉 -->\n <div v-else class=\"i-map\">\n <!-- edit 模式:输入框触发器 -->\n <el-input\n v-if=\"type === 'edit'\"\n v-model=\"modelValue[2]\"\n class=\"i-map__input\"\n :placeholder=\"placeholder\"\n readonly\n :size=\"size\"\n :disabled=\"disabled\"\n @click=\"handleOpenDialog\"\n >\n <template v-if=\"!disabled\" #suffix>\n <el-icon\n v-if=\"modelValue[2]\"\n class=\"i-map__input-close\"\n @click.stop=\"clearValue\"\n >\n <CircleClose />\n </el-icon>\n </template>\n </el-input>\n\n <!-- 共享抽屉 -->\n <el-drawer\n v-model=\"dialogVisible\"\n title=\"请选择地点\"\n :show-close=\"true\"\n size=\"100%\"\n @closed=\"destroyMap\"\n >\n <div\n v-if=\"dialogVisible\"\n class=\"h-full w-full overflow-hidden i-map__container\"\n >\n <el-autocomplete\n v-model=\"keyword\"\n :disabled=\"disabled\"\n placeholder=\"请输入关键字选择地点\"\n class=\"i-map__search\"\n :debounce=\"700\"\n style=\"margin-bottom: 15px; width: 100%\"\n clearable\n :fetch-suggestions=\"querySearch\"\n :validate-event=\"false\"\n @input=\"inputChange\"\n @select=\"handleSelect\"\n @keyup.enter=\"handleEnterKey\"\n >\n <template #default=\"{ item }\">\n {{ item.name }}\n <span class=\"i-map__district\">{{ item.district }}</span>\n </template>\n </el-autocomplete>\n <div class=\"i-map__container-inner\">\n <div ref=\"refMap\" class=\"i-map__tdt\" />\n </div>\n </div>\n <template #footer>\n <el-button type=\"primary\" :disabled=\"disabled\" @click=\"handleConfirm\">\n 确定\n </el-button>\n </template>\n </el-drawer>\n </div>\n</template>\n"],"names":["keyword","markerIcon","_createCommentVNode","type","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_createBlock","_unref","placeholder","size","_createVNode","CircleClose","_withCtx","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map.vue2.mjs","sources":["../../../../../../../packages/components/map/src/map.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { CircleClose } from \"@element-plus/icons-vue\";\nimport { ElMessage } from \"element-plus\";\nimport { nextTick, onMounted, onUnmounted, ref, toRefs, watch } from \"vue\";\nimport { MapProps, TiandituGlobal } from \"./map\";\nimport markerIcon from \"./marker.png\";\n\ndefineOptions({\n name: \"IMap\",\n});\n\n// ==================== Props & Emits ====================\nconst props = defineProps(MapProps);\n\nconst emits = defineEmits([\n \"update:modelValue\",\n \"change\",\n \"update:addressCode\",\n \"update:address\",\n]);\n\nconst { modelValue, disabled, options } = toRefs(props);\n\n// ==================== 天地图 Token ====================\nconst TIANDITU_TOKEN = \"ab0296cad21f656152228912c15abdfb\";\n\n// ==================== 模块级:加载天地图 JS API ====================\nconst _win = window as unknown as TiandituGlobal;\n\nfunction loadTiandituScript(): Promise<void> {\n if (_win.__tdt_loaded) return Promise.resolve();\n if (_win.__tdt_loading) return _win.__tdt_loading;\n\n _win.__tdt_loading = new Promise<void>((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = `https://api.tianditu.gov.cn/api?v=4.0&tk=${TIANDITU_TOKEN}`;\n script.onload = () => {\n _win.__tdt_loaded = true;\n _win.__tdt_loading = null;\n resolve();\n };\n script.onerror = () => {\n _win.__tdt_loading = null;\n reject(new Error(\"天地图 API 加载失败\"));\n };\n document.head.appendChild(script);\n });\n return _win.__tdt_loading;\n}\n\nfunction getT(): any {\n return _win.T;\n}\n\n// ==================== 天地图 REST API 封装 ====================\nasync function tdtSearch(keyword: string): Promise<any[]> {\n const postStr = JSON.stringify({\n keyWord: keyword,\n level: 12,\n mapBound: \"73.66,3.86,135.05,53.55\",\n queryType: 7,\n start: 0,\n count: 20,\n });\n const url = `https://api.tianditu.gov.cn/v2/search?postStr=${encodeURIComponent(postStr)}&type=query&tk=${TIANDITU_TOKEN}`;\n try {\n const resp = await fetch(url);\n if (!resp.ok) return [];\n const data = await resp.json();\n if (data && data.pois) {\n return data.pois.map((poi: any) => ({\n value: poi.name,\n name: poi.name,\n district: poi.address || \"\",\n location: poi.lonlat\n ? {\n lng: Number(poi.lonlat.split(\" \")[0]),\n lat: Number(poi.lonlat.split(\" \")[1]),\n }\n : null,\n adcode: poi.admincode || \"\",\n _raw: poi,\n }));\n }\n return [];\n } catch {\n return [];\n }\n}\n\nasync function tdtReverseGeocode(lng: number, lat: number): Promise<string> {\n const postStr = JSON.stringify({ lon: lng, lat, ver: 1 });\n const url = `https://api.tianditu.gov.cn/geocoder?postStr=${encodeURIComponent(postStr)}&type=geocode&tk=${TIANDITU_TOKEN}`;\n const resp = await fetch(url);\n const data = await resp.json();\n if (data && data.result) {\n return data.result.formatted_address || data.result.address || \"\";\n }\n return \"\";\n}\n\n// ==================== 响应式状态 ====================\nlet map: any = null;\nlet marker: any = null;\nlet infoWindow: any = null;\n\nconst dialogVisible = ref(false);\nconst keyword = ref(\"\");\nconst model = ref<any>([]);\n\nconst refMap = ref<HTMLDivElement | null>(null);\nconst center = ref<[number, number]>([116.397428, 39.90923]);\nconst zoom = ref(10);\n\n// ==================== 标记管理 ====================\nfunction clearMarker() {\n if (marker) {\n map?.removeOverLay(marker);\n marker = null;\n }\n}\n\nasync function addMarker(lnglat: [number, number], name?: string) {\n const T = getT();\n if (!T || !map) return;\n\n clearMarker();\n\n const icon = new T.Icon({\n iconUrl: markerIcon,\n iconSize: new T.Point(19, 33),\n iconAnchor: new T.Point(10, 33),\n });\n\n marker = new T.Marker(new T.LngLat(lnglat[0], lnglat[1]), { icon });\n map.addOverLay(marker);\n\n if (name) {\n keyword.value = name;\n model.value = [lnglat[0], lnglat[1], name];\n return;\n }\n\n try {\n const address = await tdtReverseGeocode(lnglat[0], lnglat[1]);\n keyword.value =\n address || `${lnglat[0].toFixed(6)}, ${lnglat[1].toFixed(6)}`;\n model.value = [lnglat[0], lnglat[1], keyword.value];\n } catch {\n model.value = [\n lnglat[0],\n lnglat[1],\n `${lnglat[0].toFixed(6)}, ${lnglat[1].toFixed(6)}`,\n ];\n }\n}\n\n// ==================== 地图初始化 ====================\nasync function initMap() {\n await loadTiandituScript();\n const T = getT();\n if (!T) return;\n\n const container = refMap.value;\n if (!container) return;\n\n if (map) {\n try {\n map.destroy();\n } catch {\n /* ignore */\n }\n map = null;\n marker = null;\n }\n\n const hasInitPos = model.value?.[0] != null && model.value?.[1] != null;\n const mapCenter = hasInitPos\n ? new T.LngLat(model.value[0], model.value[1])\n : new T.LngLat(center.value[0], center.value[1]);\n const mapZoom = hasInitPos ? options.value?.zoom || 15 : zoom.value;\n\n map = new T.Map(container, {\n center: mapCenter,\n zoom: mapZoom,\n });\n\n map.addControl(new T.Control.Zoom());\n\n // 地图点击 → 选点(仅编辑态)\n // view 模式是只读展示,点击地图不得改动标点位置(addMarker 会先 clearMarker 再重新打点,\n // 还会触发逆地理编码请求),因此这里不绑定该监听。\n if (props.type !== \"view\") {\n map.addEventListener(\"click\", (e: any) => {\n const lnglat = e.lnglat;\n if (!lnglat) return;\n addMarker([lnglat.getLng(), lnglat.getLat()]);\n });\n }\n\n if (hasInitPos) {\n await nextTick();\n addMarker([model.value[0], model.value[1]], model.value[2]);\n }\n}\n\nfunction destroyMap() {\n clearMarker();\n if (infoWindow) {\n try {\n infoWindow.closeInfoWindow();\n } catch {\n /* ignore */\n }\n infoWindow = null;\n }\n if (map) {\n try {\n map.destroy();\n } catch {\n /* ignore */\n }\n map = null;\n }\n}\n\n// ==================== 打开选择器 ====================\nconst handleOpenDialog = async () => {\n if (disabled.value) return;\n dialogVisible.value = true;\n await nextTick();\n model.value = JSON.parse(JSON.stringify(modelValue.value));\n setTimeout(() => initMap(), 200);\n};\n\n// ==================== 自动补全搜索 ====================\nconst LAST_SEARCH_RESULTS = ref<any[]>([]);\n\nconst querySearch = async (queryString: string, cb: any) => {\n if (!queryString) return cb([]);\n try {\n const results = await tdtSearch(queryString);\n LAST_SEARCH_RESULTS.value = results;\n cb(results);\n } catch {\n ElMessage.error(\"搜索失败,请稍后重试\");\n cb([]);\n }\n};\n\nconst inputChange = () => {\n model.value = [];\n clearMarker();\n};\n\n// ==================== 选中搜索结果 ====================\n/**\n * 从 item 中提取坐标(优先 item.location,其次 item._raw.lonlat)\n */\nfunction extractCoords(item: any): [number, number] | null {\n if (item.location && !isNaN(item.location.lng) && !isNaN(item.location.lat)) {\n return [item.location.lng, item.location.lat];\n }\n if (item._raw?.lonlat) {\n const [lng, lat] = item._raw.lonlat.split(\",\").map(Number);\n if (!isNaN(lng) && !isNaN(lat)) return [lng, lat];\n }\n return null;\n}\n\n/**\n * 定位到指定坐标并添加标记\n */\nfunction locateTo(lngLat: [number, number], name: string) {\n addMarker(lngLat, name);\n map?.panTo(new (getT().LngLat)(lngLat[0], lngLat[1]));\n}\n\nconst handleSelect = async (item: any) => {\n console.log(\"🚀 ~ item:\", item);\n keyword.value = item.name;\n\n // 1) item 本身有坐标 → 直接定位打点\n const coords = extractCoords(item);\n console.log(\"🚀 ~ coords:\", coords);\n if (coords) {\n locateTo(coords, item.name);\n return;\n }\n\n // 2) 无坐标 → 远程搜索后定位\n try {\n const results = await tdtSearch(item.name);\n const first = results[0];\n if (first) {\n const firstCoords = extractCoords(first);\n if (firstCoords) {\n locateTo(firstCoords, first.name);\n return;\n }\n }\n ElMessage.warning(\"未找到匹配的地点\");\n } catch {\n ElMessage.warning(\"搜索失败,请稍后重试\");\n }\n};\n\n// ==================== Enter 键搜索 ====================\nconst handleEnterKey = () => {\n if (!keyword.value) return;\n if (LAST_SEARCH_RESULTS.value.length > 0) {\n handleSelect(LAST_SEARCH_RESULTS.value[0]);\n } else {\n handleSelect({ value: keyword.value, name: keyword.value });\n }\n};\n\n// ==================== 确认 / 清除 ====================\nconst handleConfirm = () => {\n emits(\"update:modelValue\", model.value);\n emits(\"change\", model.value);\n emits(\"update:addressCode\", [model.value[0], model.value[1]]);\n emits(\"update:address\", model.value[2]);\n dialogVisible.value = false;\n setTimeout(() => destroyMap(), 300);\n};\n\nconst clearValue = () => {\n emits(\"update:modelValue\", []);\n emits(\"change\", []);\n};\n\n// ==================== 地图中心更新 ====================\nfunction updateMapCenter(val: any[], retry = 0) {\n const T = getT();\n if (!map || !T) {\n if (retry < 10) {\n setTimeout(() => updateMapCenter(val, retry + 1), 300);\n }\n return;\n }\n addMarker([val[0], val[1]], val[2]);\n map.panTo(new T.LngLat(val[0], val[1]), options.value?.zoom || 12);\n}\n\n// ==================== View 模式:挂载时初始化 ====================\nonMounted(() => {\n if (props.type === \"view\") {\n nextTick(async () => {\n model.value = JSON.parse(JSON.stringify(modelValue.value));\n await new Promise((r) => requestAnimationFrame(r));\n try {\n await initMap();\n } catch (e) {\n console.error(\"[ViewMap] initMap error:\", e);\n }\n });\n }\n});\n\nonUnmounted(() => {\n destroyMap();\n});\n\n// ==================== 监听 modelValue 外部变化 ====================\nwatch(\n () => props.modelValue,\n (val) => {\n if (!val || val[0] == null || val[1] == null) return;\n model.value = JSON.parse(JSON.stringify(val));\n updateMapCenter(val);\n },\n { deep: true },\n);\n\ndefineExpose({\n handleOpenDialog,\n});\n</script>\n\n<template>\n <!-- type=\"view\":只读地图 -->\n <div\n v-if=\"type === 'view'\"\n class=\"i-map w-full h-full i-map__container-inner\"\n >\n <div ref=\"refMap\" class=\"i-map__tdt i-map__tdt--view\" />\n </div>\n\n <!-- type=\"edit\" / \"edit2\":输入框 + 抽屉 / 纯抽屉 -->\n <div v-else class=\"i-map\">\n <!-- edit 模式:输入框触发器 -->\n <el-input\n v-if=\"type === 'edit'\"\n v-model=\"modelValue[2]\"\n class=\"i-map__input\"\n :placeholder=\"placeholder\"\n readonly\n :size=\"size\"\n :disabled=\"disabled\"\n @click=\"handleOpenDialog\"\n >\n <template v-if=\"!disabled\" #suffix>\n <el-icon\n v-if=\"modelValue[2]\"\n class=\"i-map__input-close\"\n @click.stop=\"clearValue\"\n >\n <CircleClose />\n </el-icon>\n </template>\n </el-input>\n\n <!-- 共享抽屉 -->\n <el-drawer\n v-model=\"dialogVisible\"\n title=\"请选择地点\"\n :show-close=\"true\"\n size=\"100%\"\n @closed=\"destroyMap\"\n >\n <div\n v-if=\"dialogVisible\"\n class=\"h-full w-full overflow-hidden i-map__container\"\n >\n <el-autocomplete\n v-model=\"keyword\"\n :disabled=\"disabled\"\n placeholder=\"请输入关键字选择地点\"\n class=\"i-map__search\"\n :debounce=\"700\"\n style=\"margin-bottom: 15px; width: 100%\"\n clearable\n :fetch-suggestions=\"querySearch\"\n :validate-event=\"false\"\n @input=\"inputChange\"\n @select=\"handleSelect\"\n @keyup.enter=\"handleEnterKey\"\n >\n <template #default=\"{ item }\">\n {{ item.name }}\n <span class=\"i-map__district\">{{ item.district }}</span>\n </template>\n </el-autocomplete>\n <div class=\"i-map__container-inner\">\n <div ref=\"refMap\" class=\"i-map__tdt\" />\n </div>\n </div>\n <template #footer>\n <el-button type=\"primary\" :disabled=\"disabled\" @click=\"handleConfirm\">\n 确定\n </el-button>\n </template>\n </el-drawer>\n </div>\n</template>\n"],"names":["keyword","markerIcon","_createCommentVNode","type","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_createBlock","_unref","placeholder","size","_createVNode","CircleClose","_withCtx","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,MAAM,cAAiB,GAAA,kCAAA;;;;;;;;;;;;;;AAZvB,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAOd,IAAA,MAAM,EAAE,UAAY,EAAA,QAAA,EAAU,OAAQ,EAAA,GAAI,OAAO,KAAK,CAAA;AAMtD,IAAA,MAAM,IAAO,GAAA,MAAA;AAEb,IAAA,SAAS,kBAAoC,GAAA;AAC3C,MAAA,IAAI,IAAK,CAAA,YAAA,EAAqB,OAAA,OAAA,CAAQ,OAAQ,EAAA;AAC9C,MAAI,IAAA,IAAA,CAAK,aAAe,EAAA,OAAO,IAAK,CAAA,aAAA;AAEpC,MAAA,IAAA,CAAK,aAAgB,GAAA,IAAI,OAAc,CAAA,CAAC,SAAS,MAAW,KAAA;AAC1D,QAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,QAAQ,CAAA;AAC9C,QAAO,MAAA,CAAA,GAAA,GAAM,4CAA4C,cAAc,CAAA,CAAA;AACvE,QAAA,MAAA,CAAO,SAAS,MAAM;AACpB,UAAA,IAAA,CAAK,YAAe,GAAA,IAAA;AACpB,UAAA,IAAA,CAAK,aAAgB,GAAA,IAAA;AACrB,UAAQ,OAAA,EAAA;AAAA,SACV;AACA,QAAA,MAAA,CAAO,UAAU,MAAM;AACrB,UAAA,IAAA,CAAK,aAAgB,GAAA,IAAA;AACrB,UAAO,MAAA,CAAA,IAAI,KAAM,CAAA,iDAAc,CAAC,CAAA;AAAA,SAClC;AACA,QAAS,QAAA,CAAA,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,OACjC,CAAA;AACD,MAAA,OAAO,IAAK,CAAA,aAAA;AAAA;AAlBL,IAAA,MAAA,CAAA,kBAAA,EAAA,oBAAA,CAAA;AAqBT,IAAA,SAAS,IAAY,GAAA;AACnB,MAAA,OAAO,IAAK,CAAA,CAAA;AAAA;AADL,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAKT,IAAA,eAAe,UAAUA,QAAiC,EAAA;AACxD,MAAM,MAAA,OAAA,GAAU,KAAK,SAAU,CAAA;AAAA,QAC7B,OAASA,EAAAA,QAAAA;AAAA,QACT,KAAO,EAAA,EAAA;AAAA,QACP,QAAU,EAAA,yBAAA;AAAA,QACV,SAAW,EAAA,CAAA;AAAA,QACX,KAAO,EAAA,CAAA;AAAA,QACP,KAAO,EAAA;AAAA,OACR,CAAA;AACD,MAAA,MAAM,MAAM,CAAiD,8CAAA,EAAA,kBAAA,CAAmB,OAAO,CAAC,kBAAkB,cAAc,CAAA,CAAA;AACxH,MAAI,IAAA;AACF,QAAM,MAAA,IAAA,GAAO,MAAM,KAAA,CAAM,GAAG,CAAA;AAC5B,QAAA,IAAI,CAAC,IAAA,CAAK,EAAI,EAAA,OAAO,EAAC;AACtB,QAAM,MAAA,IAAA,GAAO,MAAM,IAAA,CAAK,IAAK,EAAA;AAC7B,QAAI,IAAA,IAAA,IAAQ,KAAK,IAAM,EAAA;AACrB,UAAA,OAAO,IAAK,CAAA,IAAA,CAAK,GAAI,CAAA,CAAC,GAAc,MAAA;AAAA,YAClC,OAAO,GAAI,CAAA,IAAA;AAAA,YACX,MAAM,GAAI,CAAA,IAAA;AAAA,YACV,QAAA,EAAU,IAAI,OAAW,IAAA,EAAA;AAAA,YACzB,QAAA,EAAU,IAAI,MACV,GAAA;AAAA,cACE,GAAA,EAAK,OAAO,GAAI,CAAA,MAAA,CAAO,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAA;AAAA,cACpC,GAAA,EAAK,OAAO,GAAI,CAAA,MAAA,CAAO,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC;AAAA,aAEtC,GAAA,IAAA;AAAA,YACJ,MAAA,EAAQ,IAAI,SAAa,IAAA,EAAA;AAAA,YACzB,IAAM,EAAA;AAAA,WACN,CAAA,CAAA;AAAA;AAEJ,QAAA,OAAO,EAAC;AAAA,OACF,CAAA,MAAA;AACN,QAAA,OAAO,EAAC;AAAA;AACV;AAhCa,IAAA,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAmCf,IAAe,eAAA,iBAAA,CAAkB,KAAa,GAA8B,EAAA;AAC1E,MAAM,MAAA,OAAA,GAAU,KAAK,SAAU,CAAA,EAAE,KAAK,GAAK,EAAA,GAAA,EAAK,GAAK,EAAA,CAAA,EAAG,CAAA;AACxD,MAAA,MAAM,MAAM,CAAgD,6CAAA,EAAA,kBAAA,CAAmB,OAAO,CAAC,oBAAoB,cAAc,CAAA,CAAA;AACzH,MAAM,MAAA,IAAA,GAAO,MAAM,KAAA,CAAM,GAAG,CAAA;AAC5B,MAAM,MAAA,IAAA,GAAO,MAAM,IAAA,CAAK,IAAK,EAAA;AAC7B,MAAI,IAAA,IAAA,IAAQ,KAAK,MAAQ,EAAA;AACvB,QAAA,OAAO,IAAK,CAAA,MAAA,CAAO,iBAAqB,IAAA,IAAA,CAAK,OAAO,OAAW,IAAA,EAAA;AAAA;AAEjE,MAAO,OAAA,EAAA;AAAA;AARM,IAAA,MAAA,CAAA,iBAAA,EAAA,mBAAA,CAAA;AAYf,IAAA,IAAI,GAAW,GAAA,IAAA;AACf,IAAA,IAAI,MAAc,GAAA,IAAA;AAClB,IAAA,IAAI,UAAkB,GAAA,IAAA;AAEtB,IAAM,MAAA,aAAA,GAAgB,IAAI,KAAK,CAAA;AAC/B,IAAM,MAAA,OAAA,GAAU,IAAI,EAAE,CAAA;AACtB,IAAM,MAAA,KAAA,GAAQ,GAAS,CAAA,EAAE,CAAA;AAEzB,IAAM,MAAA,MAAA,GAAS,IAA2B,IAAI,CAAA;AAC9C,IAAA,MAAM,MAAS,GAAA,GAAA,CAAsB,CAAC,UAAA,EAAY,QAAQ,CAAC,CAAA;AAC3D,IAAM,MAAA,IAAA,GAAO,IAAI,EAAE,CAAA;AAGnB,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,IAAI,MAAQ,EAAA;AACV,QAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAK,aAAc,CAAA,MAAA,CAAA;AACnB,QAAS,MAAA,GAAA,IAAA;AAAA;AACX;AAJO,IAAA,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AAOT,IAAe,eAAA,SAAA,CAAU,QAA0B,IAAe,EAAA;AAChE,MAAA,MAAM,IAAI,IAAK,EAAA;AACf,MAAI,IAAA,CAAC,CAAK,IAAA,CAAC,GAAK,EAAA;AAEhB,MAAY,WAAA,EAAA;AAEZ,MAAM,MAAA,IAAA,GAAO,IAAI,CAAA,CAAE,IAAK,CAAA;AAAA,QACtB,OAAS,EAAAC,GAAA;AAAA,QACT,QAAU,EAAA,IAAI,CAAE,CAAA,KAAA,CAAM,IAAI,EAAE,CAAA;AAAA,QAC5B,UAAY,EAAA,IAAI,CAAE,CAAA,KAAA,CAAM,IAAI,EAAE;AAAA,OAC/B,CAAA;AAED,MAAA,MAAA,GAAS,IAAI,CAAA,CAAE,MAAO,CAAA,IAAI,EAAE,MAAO,CAAA,MAAA,CAAO,CAAC,CAAA,EAAG,OAAO,CAAC,CAAC,CAAG,EAAA,EAAE,MAAM,CAAA;AAClE,MAAA,GAAA,CAAI,WAAW,MAAM,CAAA;AAErB,MAAA,IAAI,IAAM,EAAA;AACR,QAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA;AAChB,QAAM,KAAA,CAAA,KAAA,GAAQ,CAAC,MAAO,CAAA,CAAC,GAAG,MAAO,CAAA,CAAC,GAAG,IAAI,CAAA;AACzC,QAAA;AAAA;AAGF,MAAI,IAAA;AACF,QAAM,MAAA,OAAA,GAAU,MAAM,iBAAkB,CAAA,MAAA,CAAO,CAAC,CAAG,EAAA,MAAA,CAAO,CAAC,CAAC,CAAA;AAC5D,QAAA,OAAA,CAAQ,KACN,GAAA,OAAA,IAAW,CAAG,EAAA,MAAA,CAAO,CAAC,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,KAAK,MAAO,CAAA,CAAC,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAC7D,QAAM,KAAA,CAAA,KAAA,GAAQ,CAAC,MAAO,CAAA,CAAC,GAAG,MAAO,CAAA,CAAC,CAAG,EAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,OAC5C,CAAA,MAAA;AACN,QAAA,KAAA,CAAM,KAAQ,GAAA;AAAA,UACZ,OAAO,CAAC,CAAA;AAAA,UACR,OAAO,CAAC,CAAA;AAAA,UACR,CAAG,EAAA,MAAA,CAAO,CAAC,CAAA,CAAE,OAAQ,CAAA,CAAC,CAAC,CAAA,EAAA,EAAK,MAAO,CAAA,CAAC,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,SAClD;AAAA;AACF;AAhCa,IAAA,MAAA,CAAA,SAAA,EAAA,WAAA,CAAA;AAoCf,IAAA,eAAe,OAAU,GAAA;;AACvB,MAAA,MAAM,kBAAmB,EAAA;AACzB,MAAA,MAAM,IAAI,IAAK,EAAA;AACf,MAAA,IAAI,CAAC,CAAG,EAAA;AAER,MAAA,MAAM,YAAY,MAAO,CAAA,KAAA;AACzB,MAAA,IAAI,CAAC,SAAW,EAAA;AAEhB,MAAA,IAAI,GAAK,EAAA;AACP,QAAI,IAAA;AACF,UAAA,GAAA,CAAI,OAAQ,EAAA;AAAA,SACN,CAAA,MAAA;AAAA;AAGR,QAAM,GAAA,GAAA,IAAA;AACN,QAAS,MAAA,GAAA,IAAA;AAAA;AAGX,MAAM,MAAA,UAAA,GAAA,CAAA,CAAa,WAAM,KAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,OAAM,IAAQ,IAAA,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,KAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,CAAM,CAAA,KAAA,IAAA;AACnE,MAAM,MAAA,SAAA,GAAY,UACd,GAAA,IAAI,CAAE,CAAA,MAAA,CAAO,MAAM,KAAM,CAAA,CAAC,CAAG,EAAA,KAAA,CAAM,KAAM,CAAA,CAAC,CAAC,CAC3C,GAAA,IAAI,CAAE,CAAA,MAAA,CAAO,MAAO,CAAA,KAAA,CAAM,CAAC,CAAG,EAAA,MAAA,CAAO,KAAM,CAAA,CAAC,CAAC,CAAA;AACjD,MAAA,MAAM,UAAU,UAAa,GAAA,CAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,KAAQ,KAAK,IAAK,CAAA,KAAA;AAE9D,MAAM,GAAA,GAAA,IAAI,CAAE,CAAA,GAAA,CAAI,SAAW,EAAA;AAAA,QACzB,MAAQ,EAAA,SAAA;AAAA,QACR,IAAM,EAAA;AAAA,OACP,CAAA;AAED,MAAA,GAAA,CAAI,UAAW,CAAA,IAAI,CAAE,CAAA,OAAA,CAAQ,MAAM,CAAA;AAKnC,MAAI,IAAA,KAAA,CAAM,SAAS,MAAQ,EAAA;AACzB,QAAI,GAAA,CAAA,gBAAA,CAAiB,OAAS,EAAA,CAAC,CAAW,KAAA;AACxC,UAAA,MAAM,SAAS,CAAE,CAAA,MAAA;AACjB,UAAA,IAAI,CAAC,MAAQ,EAAA;AACb,UAAA,SAAA,CAAU,CAAC,MAAO,CAAA,MAAA,IAAU,MAAO,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,SAC7C,CAAA;AAAA;AAGH,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,MAAM,QAAS,EAAA;AACf,QAAA,SAAA,CAAU,CAAC,KAAA,CAAM,KAAM,CAAA,CAAC,CAAG,EAAA,KAAA,CAAM,KAAM,CAAA,CAAC,CAAC,CAAA,EAAG,KAAM,CAAA,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA;AAC5D;AA7Ca,IAAA,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA;AAgDf,IAAA,SAAS,UAAa,GAAA;AACpB,MAAY,WAAA,EAAA;AACZ,MAAA,IAAI,UAAY,EAAA;AACd,QAAI,IAAA;AACF,UAAA,UAAA,CAAW,eAAgB,EAAA;AAAA,SACrB,CAAA,MAAA;AAAA;AAGR,QAAa,UAAA,GAAA,IAAA;AAAA;AAEf,MAAA,IAAI,GAAK,EAAA;AACP,QAAI,IAAA;AACF,UAAA,GAAA,CAAI,OAAQ,EAAA;AAAA,SACN,CAAA,MAAA;AAAA;AAGR,QAAM,GAAA,GAAA,IAAA;AAAA;AACR;AAjBO,IAAA,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA;AAqBT,IAAA,MAAM,mCAA+B,MAAA,CAAA,YAAA;AACnC,MAAA,IAAI,SAAS,KAAO,EAAA;AACpB,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA;AACtB,MAAA,MAAM,QAAS,EAAA;AACf,MAAA,KAAA,CAAM,QAAQ,IAAK,CAAA,KAAA,CAAM,KAAK,SAAU,CAAA,UAAA,CAAW,KAAK,CAAC,CAAA;AACzD,MAAW,UAAA,CAAA,MAAM,OAAQ,EAAA,EAAG,GAAG,CAAA;AAAA,KALR,EAAA,kBAAA,CAAA;AASzB,IAAM,MAAA,mBAAA,GAAsB,GAAW,CAAA,EAAE,CAAA;AAEzC,IAAM,MAAA,WAAA,mBAAqB,MAAA,CAAA,OAAA,WAAA,EAAqB,EAAY,KAAA;AAC1D,MAAA,IAAI,CAAC,WAAA,EAAoB,OAAA,EAAA,CAAG,EAAE,CAAA;AAC9B,MAAI,IAAA;AACF,QAAM,MAAA,OAAA,GAAU,MAAM,SAAA,CAAU,WAAW,CAAA;AAC3C,QAAA,mBAAA,CAAoB,KAAQ,GAAA,OAAA;AAC5B,QAAA,EAAA,CAAG,OAAO,CAAA;AAAA,OACJ,CAAA,MAAA;AACN,QAAA,SAAA,CAAU,MAAM,8DAAY,CAAA;AAC5B,QAAA,EAAA,CAAG,EAAE,CAAA;AAAA;AACP,KATkB,EAAA,aAAA,CAAA;AAYpB,IAAA,MAAM,8BAAoB,MAAA,CAAA,MAAA;AACxB,MAAA,KAAA,CAAM,QAAQ,EAAC;AACf,MAAY,WAAA,EAAA;AAAA,KAFM,EAAA,aAAA,CAAA;AASpB,IAAA,SAAS,cAAc,IAAoC,EAAA;;AACzD,MAAA,IAAI,IAAK,CAAA,QAAA,IAAY,CAAC,KAAA,CAAM,IAAK,CAAA,QAAA,CAAS,GAAG,CAAA,IAAK,CAAC,KAAA,CAAM,IAAK,CAAA,QAAA,CAAS,GAAG,CAAG,EAAA;AAC3E,QAAA,OAAO,CAAC,IAAK,CAAA,QAAA,CAAS,GAAK,EAAA,IAAA,CAAK,SAAS,GAAG,CAAA;AAAA;AAE9C,MAAI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,IAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAW,MAAQ,EAAA;AACrB,QAAM,MAAA,CAAC,GAAK,EAAA,GAAG,CAAI,GAAA,IAAA,CAAK,IAAK,CAAA,MAAA,CAAO,KAAM,CAAA,GAAG,CAAE,CAAA,GAAA,CAAI,MAAM,CAAA;AACzD,QAAI,IAAA,CAAC,KAAM,CAAA,GAAG,CAAK,IAAA,CAAC,KAAM,CAAA,GAAG,CAAG,EAAA,OAAO,CAAC,GAAA,EAAK,GAAG,CAAA;AAAA;AAElD,MAAO,OAAA,IAAA;AAAA;AARA,IAAA,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAcT,IAAS,SAAA,QAAA,CAAS,QAA0B,IAAc,EAAA;AACxD,MAAA,SAAA,CAAU,QAAQ,IAAI,CAAA;AACtB,MAAK,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,KAAA,CAAM,IAAK,CAAA,IAAA,EAAO,EAAA,MAAA,CAAQ,OAAO,CAAC,CAAA,EAAG,MAAO,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA;AAF5C,IAAA,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA;AAKT,IAAM,MAAA,YAAA,iCAAsB,IAAc,KAAA;AACxC,MAAQ,OAAA,CAAA,GAAA,CAAI,qBAAc,IAAI,CAAA;AAC9B,MAAA,OAAA,CAAQ,QAAQ,IAAK,CAAA,IAAA;AAGrB,MAAM,MAAA,MAAA,GAAS,cAAc,IAAI,CAAA;AACjC,MAAQ,OAAA,CAAA,GAAA,CAAI,uBAAgB,MAAM,CAAA;AAClC,MAAA,IAAI,MAAQ,EAAA;AACV,QAAS,QAAA,CAAA,MAAA,EAAQ,KAAK,IAAI,CAAA;AAC1B,QAAA;AAAA;AAIF,MAAI,IAAA;AACF,QAAA,MAAM,OAAU,GAAA,MAAM,SAAU,CAAA,IAAA,CAAK,IAAI,CAAA;AACzC,QAAM,MAAA,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAA,IAAI,KAAO,EAAA;AACT,UAAM,MAAA,WAAA,GAAc,cAAc,KAAK,CAAA;AACvC,UAAA,IAAI,WAAa,EAAA;AACf,YAAS,QAAA,CAAA,WAAA,EAAa,MAAM,IAAI,CAAA;AAChC,YAAA;AAAA;AACF;AAEF,QAAA,SAAA,CAAU,QAAQ,kDAAU,CAAA;AAAA,OACtB,CAAA,MAAA;AACN,QAAA,SAAA,CAAU,QAAQ,8DAAY,CAAA;AAAA;AAChC,KA1BmB,EAAA,cAAA,CAAA;AA8BrB,IAAA,MAAM,iCAAuB,MAAA,CAAA,MAAA;AAC3B,MAAI,IAAA,CAAC,QAAQ,KAAO,EAAA;AACpB,MAAI,IAAA,mBAAA,CAAoB,KAAM,CAAA,MAAA,GAAS,CAAG,EAAA;AACxC,QAAa,YAAA,CAAA,mBAAA,CAAoB,KAAM,CAAA,CAAC,CAAC,CAAA;AAAA,OACpC,MAAA;AACL,QAAA,YAAA,CAAa,EAAE,KAAO,EAAA,OAAA,CAAQ,OAAO,IAAM,EAAA,OAAA,CAAQ,OAAO,CAAA;AAAA;AAC5D,KANqB,EAAA,gBAAA,CAAA;AAUvB,IAAA,MAAM,gCAAsB,MAAA,CAAA,MAAA;AAC1B,MAAM,KAAA,CAAA,mBAAA,EAAqB,MAAM,KAAK,CAAA;AACtC,MAAM,KAAA,CAAA,QAAA,EAAU,MAAM,KAAK,CAAA;AAC3B,MAAM,KAAA,CAAA,oBAAA,EAAsB,CAAC,KAAA,CAAM,KAAM,CAAA,CAAC,GAAG,KAAM,CAAA,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA;AAC5D,MAAA,KAAA,CAAM,gBAAkB,EAAA,KAAA,CAAM,KAAM,CAAA,CAAC,CAAC,CAAA;AACtC,MAAA,aAAA,CAAc,KAAQ,GAAA,KAAA;AACtB,MAAW,UAAA,CAAA,MAAM,UAAW,EAAA,EAAG,GAAG,CAAA;AAAA,KANd,EAAA,eAAA,CAAA;AAStB,IAAA,MAAM,6BAAmB,MAAA,CAAA,MAAA;AACvB,MAAM,KAAA,CAAA,mBAAA,EAAqB,EAAE,CAAA;AAC7B,MAAM,KAAA,CAAA,QAAA,EAAU,EAAE,CAAA;AAAA,KAFD,EAAA,YAAA,CAAA;AAMnB,IAAS,SAAA,eAAA,CAAgB,GAAY,EAAA,KAAA,GAAQ,CAAG,EAAA;;AAC9C,MAAA,MAAM,IAAI,IAAK,EAAA;AACf,MAAI,IAAA,CAAC,GAAO,IAAA,CAAC,CAAG,EAAA;AACd,QAAA,IAAI,QAAQ,EAAI,EAAA;AACd,UAAA,UAAA,CAAW,MAAM,eAAgB,CAAA,GAAA,EAAK,KAAQ,GAAA,CAAC,GAAG,GAAG,CAAA;AAAA;AAEvD,QAAA;AAAA;AAEF,MAAU,SAAA,CAAA,CAAC,GAAI,CAAA,CAAC,CAAG,EAAA,GAAA,CAAI,CAAC,CAAC,CAAA,EAAG,GAAI,CAAA,CAAC,CAAC,CAAA;AAClC,MAAA,GAAA,CAAI,KAAM,CAAA,IAAI,CAAE,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA,EAAG,GAAI,CAAA,CAAC,CAAC,CAAG,EAAA,CAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,KAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,SAAQ,EAAE,CAAA;AAAA;AAT1D,IAAA,MAAA,CAAA,eAAA,EAAA,iBAAA,CAAA;AAaT,IAAA,SAAA,CAAU,MAAM;AACd,MAAI,IAAA,KAAA,CAAM,SAAS,MAAQ,EAAA;AACzB,QAAA,QAAA,CAAS,YAAY;AACnB,UAAA,KAAA,CAAM,QAAQ,IAAK,CAAA,KAAA,CAAM,KAAK,SAAU,CAAA,UAAA,CAAW,KAAK,CAAC,CAAA;AACzD,UAAA,MAAM,IAAI,OAAQ,CAAA,CAAC,CAAM,KAAA,qBAAA,CAAsB,CAAC,CAAC,CAAA;AACjD,UAAI,IAAA;AACF,YAAA,MAAM,OAAQ,EAAA;AAAA,mBACP,CAAG,EAAA;AACV,YAAQ,OAAA,CAAA,KAAA,CAAM,4BAA4B,CAAC,CAAA;AAAA;AAC7C,SACD,CAAA;AAAA;AACH,KACD,CAAA;AAED,IAAA,WAAA,CAAY,MAAM;AAChB,MAAW,UAAA,EAAA;AAAA,KACZ,CAAA;AAGD,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAC,GAAQ,KAAA;AACP,QAAI,IAAA,CAAC,OAAO,GAAI,CAAA,CAAC,KAAK,IAAQ,IAAA,GAAA,CAAI,CAAC,CAAA,IAAK,IAAM,EAAA;AAC9C,QAAA,KAAA,CAAM,QAAQ,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,SAAA,CAAU,GAAG,CAAC,CAAA;AAC5C,QAAA,eAAA,CAAgB,GAAG,CAAA;AAAA,OACrB;AAAA,MACA,EAAE,MAAM,IAAK;AAAA,KACf;AAEA,IAAa,QAAA,CAAA;AAAA,MACX;AAAA,KACD,CAAA;;;;;;;;;;;UAICC,mBAAyB,6CAAA,CAAA;AAAA,UAEjBC,KAAI,IAAA,KAAA,MAAA,IADZC,WAAA,EAAAC,kBAAA,CAKM,OALN,UAKM,EAAA;AAAA,YADJC,kBAAA;AAAA,cAAwD,KAAA;AAAA,cAAA;AAAA,uBAA/C,EAAA,QAAA;AAAA,gBAAJ,GAAI,EAAA,MAAA;AAAA,gBAAS,KAAM,EAAA;AAAA;;;;;4BAI1B,EAAAD,kBAAA;AAAA,YAgEME,QAAA;AAAA,YAAA,EAAA,KAAA,CAAA,EAAA;AAAA,YAAA;AAAA,cAjENL,mBAA6C,qFAAA,CAAA;AAAA,cAC7CI,kBAAA,CAgEM,OAhEN,UAgEM,EAAA;AAAA,gBA/DJJ,mBAAuB,+DAAA,CAAA;AAAA,gBAEfC,KAAI,IAAA,KAAA,MAAA,iBADZK,YAmBW,mBAAA,EAAA;AAAA;4BAjBA,EAAAC,KAAA,CAAU,UAAA,CAAA,CAAA,CAAA,CAAA;AAAA,0EAAV,KAAAA,KAAA,CAAU,UAAA,CAAA,CAAA,CAAA,CAAA,GAAA,MAAA,CAAA;AAAA,kBACnB,KAAM,EAAA,cAAA;AAAA,kBACL,aAAaC,IAAW,CAAA,WAAA;AAAA,kBACzB,QAAA,EAAA,EAAA;AAAA,kBACC,MAAMC,IAAI,CAAA,IAAA;AAAA,kBACV,QAAA,EAAUF,MAAQ,QAAA,CAAA;AAAA,kBAClB,OAAO,EAAA;AAAA;;;;mBAESA,KAAQ,CAAA,QAAA;wBAAG,EAAA,QAAA;AAAA,gCAC1B,MAMU;AAAA,sBALFA,KAAA,CAAU,UAAA,CAAA,CAAA,CAAA,kBADlBD,YAMU,kBAAA,EAAA;AAAA;wBAJR,KAAM,EAAA,oBAAA;AAAA,wBACL,uBAAY,UAAU,EAAA,CAAA,MAAA,CAAA;AAAA;yCAEvB,MAAe;AAAA,0BAAfI,WAAA,CAAeH,KAAA,CAAAI,oBAAA,CAAA;AAAA;;;;;;;;gBAKrBX,mBAAa,4BAAA,CAAA;AAAA,gBACbU,YAuCY,oBAAA,EAAA;AAAA,8BAtCD,aAAa,CAAA,KAAA;AAAA,0EAAb,KAAA,aAAA,CAAa,KAAA,GAAA,MAAA,CAAA;AAAA,kBACtB,KAAM,EAAA,gCAAA;AAAA,kBACL,YAAY,EAAA,IAAA;AAAA,kBACb,IAAK,EAAA,MAAA;AAAA,kBACJ,QAAQ,EAAA;AAAA;kBA6BE,MAAA,UACT,MAEY;AAAA,oBAFZA,YAEY,oBAAA,EAAA;AAAA,sBAFD,IAAK,EAAA,SAAA;AAAA,sBAAW,QAAA,EAAUH,MAAQ,QAAA,CAAA;AAAA,sBAAG,OAAO,EAAA;AAAA;uCAAe,MAEtE,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA;AAAA;0BAFsE,gBAAA;AAAA,0BAEtE,CAAA;AAAA;AAAA;AAAA;;;;;mCA9BF,MA0BM;AAAA,oBAzBE,cAAa,KADrB,IAAAL,SAAA,EAAA,EAAAC,kBAAA,CA0BM,OA1BN,UA0BM,EAAA;AAAA,sBAtBJO,YAkBkB,0BAAA,EAAA;AAAA,oCAjBP,OAAO,CAAA,KAAA;AAAA,gFAAP,KAAA,OAAA,CAAO,KAAA,GAAA,MAAA,CAAA;AAAA,wBACf,QAAA,EAAUH,MAAQ,QAAA,CAAA;AAAA,wBACnB,WAAY,EAAA,8DAAA;AAAA,wBACZ,KAAM,EAAA,eAAA;AAAA,wBACL,QAAU,EAAA,GAAA;AAAA,wBACX,KAAA,EAAA,EAAwC,eAAA,EAAA,MAAA,EAAA,SAAA,MAAA,EAAA;AAAA,wBACxC,SAAA,EAAA,EAAA;AAAA,wBACC,mBAAmB,EAAA,WAAA;AAAA,wBACnB,gBAAgB,EAAA,KAAA;AAAA,wBAChB,OAAO,EAAA,WAAA;AAAA,wBACP,QAAQ,EAAA,YAAA;AAAA,wBACR,kBAAa,cAAc,EAAA,CAAA,OAAA,CAAA;AAAA;wBAEjB,OAAO,EAAAK,OAAA,CAChB,CAAe,EADK,MAAI,KAAA;AAAA;4CACrB,IAAK,CAAA,IAAI,CAAG,GAAA,GAAA;AAAA,4BACf;AAAA;AAAA,2BAAA;AAAA,0BAAAR,kBAAA;AAAA,4BAAwD,MAAA;AAAA,4BAAxD,UAAA;AAAA,4BAAiCS,eAAA,CAAA,KAAK,QAAQ,CAAA;AAAA,4BAAA;AAAA;AAAA;AAAA;;;;sBAGlDT,kBAAA,CAEM,OAFN,UAEM,EAAA;AAAA,wBADJA,kBAAA;AAAA,0BAAuC,KAAA;AAAA,0BAAA;AAAA,mCAA9B,EAAA,QAAA;AAAA,4BAAJ,GAAI,EAAA,MAAA;AAAA,4BAAS,KAAM,EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -527,7 +527,6 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
|
|
|
527
527
|
errorMsg: import("vue").Ref<string, string>;
|
|
528
528
|
playerRef: import("vue").ShallowRef<any, any>;
|
|
529
529
|
isPlaying: import("vue").Ref<boolean, boolean>;
|
|
530
|
-
isFullscreen: import("vue").Ref<boolean, boolean>;
|
|
531
530
|
isVolumeMuted: import("vue").Ref<boolean, boolean>;
|
|
532
531
|
audioMsg: import("vue").Ref<{
|
|
533
532
|
type: string;
|
|
@@ -540,13 +539,8 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
|
|
|
540
539
|
msg: string;
|
|
541
540
|
}>;
|
|
542
541
|
initPlayer: () => Promise<void>;
|
|
543
|
-
playerPlay: () => void;
|
|
544
|
-
playerPause: () => void;
|
|
545
|
-
playerScreenShot: () => void;
|
|
546
|
-
playerFullscreen: (fullscreen: boolean) => void;
|
|
547
542
|
handleVideoInfo: () => void;
|
|
548
543
|
handleMute: (mute: boolean) => void;
|
|
549
|
-
handleSetMute: (volume: number) => void;
|
|
550
544
|
EasyPlayer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
551
545
|
url: {
|
|
552
546
|
type: StringConstructor;
|
|
@@ -874,291 +868,6 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
|
|
|
874
868
|
areaName: string;
|
|
875
869
|
platformTypeName: string;
|
|
876
870
|
pauseMode: number;
|
|
877
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any> | import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
878
|
-
url: {
|
|
879
|
-
type: StringConstructor;
|
|
880
|
-
default: string;
|
|
881
|
-
};
|
|
882
|
-
accessToken: {
|
|
883
|
-
type: StringConstructor;
|
|
884
|
-
default: string;
|
|
885
|
-
};
|
|
886
|
-
areaName: {
|
|
887
|
-
type: StringConstructor;
|
|
888
|
-
default: string;
|
|
889
|
-
};
|
|
890
|
-
deviceSerial: {
|
|
891
|
-
type: StringConstructor;
|
|
892
|
-
default: string;
|
|
893
|
-
};
|
|
894
|
-
platformTypeName: {
|
|
895
|
-
type: StringConstructor;
|
|
896
|
-
default: string;
|
|
897
|
-
};
|
|
898
|
-
debug: {
|
|
899
|
-
type: BooleanConstructor;
|
|
900
|
-
default: boolean;
|
|
901
|
-
};
|
|
902
|
-
pauseMode: {
|
|
903
|
-
type: NumberConstructor;
|
|
904
|
-
default: number;
|
|
905
|
-
validator: (value: number) => boolean;
|
|
906
|
-
};
|
|
907
|
-
}>, {
|
|
908
|
-
props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
909
|
-
url: {
|
|
910
|
-
type: StringConstructor;
|
|
911
|
-
default: string;
|
|
912
|
-
};
|
|
913
|
-
accessToken: {
|
|
914
|
-
type: StringConstructor;
|
|
915
|
-
default: string;
|
|
916
|
-
};
|
|
917
|
-
areaName: {
|
|
918
|
-
type: StringConstructor;
|
|
919
|
-
default: string;
|
|
920
|
-
};
|
|
921
|
-
deviceSerial: {
|
|
922
|
-
type: StringConstructor;
|
|
923
|
-
default: string;
|
|
924
|
-
};
|
|
925
|
-
platformTypeName: {
|
|
926
|
-
type: StringConstructor;
|
|
927
|
-
default: string;
|
|
928
|
-
};
|
|
929
|
-
debug: {
|
|
930
|
-
type: BooleanConstructor;
|
|
931
|
-
default: boolean;
|
|
932
|
-
};
|
|
933
|
-
pauseMode: {
|
|
934
|
-
type: NumberConstructor;
|
|
935
|
-
default: number;
|
|
936
|
-
validator: (value: number) => boolean;
|
|
937
|
-
};
|
|
938
|
-
}>> & Readonly<{}> & {}>;
|
|
939
|
-
videoUrl: import("vue").Ref<string, string>;
|
|
940
|
-
errorMsg: import("vue").Ref<string, string>;
|
|
941
|
-
showBottomBar: import("vue").Ref<boolean, boolean>;
|
|
942
|
-
playerRef: import("vue").ShallowRef<any, any>;
|
|
943
|
-
isPlaying: import("vue").Ref<boolean, boolean>;
|
|
944
|
-
isVolumeMuted: import("vue").Ref<boolean, boolean>;
|
|
945
|
-
audioMsg: import("vue").Ref<{
|
|
946
|
-
type: string;
|
|
947
|
-
msg: string;
|
|
948
|
-
}, {
|
|
949
|
-
type: string;
|
|
950
|
-
msg: string;
|
|
951
|
-
} | {
|
|
952
|
-
type: string;
|
|
953
|
-
msg: string;
|
|
954
|
-
}>;
|
|
955
|
-
initPlayer: () => Promise<void>;
|
|
956
|
-
handleVideoInfo: () => void;
|
|
957
|
-
handleMute: (mute: boolean) => void;
|
|
958
|
-
EasyPlayer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
959
|
-
url: {
|
|
960
|
-
type: StringConstructor;
|
|
961
|
-
default: string;
|
|
962
|
-
};
|
|
963
|
-
accessToken: {
|
|
964
|
-
type: StringConstructor;
|
|
965
|
-
default: string;
|
|
966
|
-
};
|
|
967
|
-
areaName: {
|
|
968
|
-
type: StringConstructor;
|
|
969
|
-
default: string;
|
|
970
|
-
};
|
|
971
|
-
deviceSerial: {
|
|
972
|
-
type: StringConstructor;
|
|
973
|
-
default: string;
|
|
974
|
-
};
|
|
975
|
-
platformTypeName: {
|
|
976
|
-
type: StringConstructor;
|
|
977
|
-
default: string;
|
|
978
|
-
};
|
|
979
|
-
debug: {
|
|
980
|
-
type: BooleanConstructor;
|
|
981
|
-
default: boolean;
|
|
982
|
-
};
|
|
983
|
-
pauseMode: {
|
|
984
|
-
type: NumberConstructor;
|
|
985
|
-
default: number;
|
|
986
|
-
validator: (value: number) => boolean;
|
|
987
|
-
};
|
|
988
|
-
}>, {
|
|
989
|
-
props: import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
|
|
990
|
-
url: {
|
|
991
|
-
type: StringConstructor;
|
|
992
|
-
default: string;
|
|
993
|
-
};
|
|
994
|
-
accessToken: {
|
|
995
|
-
type: StringConstructor;
|
|
996
|
-
default: string;
|
|
997
|
-
};
|
|
998
|
-
areaName: {
|
|
999
|
-
type: StringConstructor;
|
|
1000
|
-
default: string;
|
|
1001
|
-
};
|
|
1002
|
-
deviceSerial: {
|
|
1003
|
-
type: StringConstructor;
|
|
1004
|
-
default: string;
|
|
1005
|
-
};
|
|
1006
|
-
platformTypeName: {
|
|
1007
|
-
type: StringConstructor;
|
|
1008
|
-
default: string;
|
|
1009
|
-
};
|
|
1010
|
-
debug: {
|
|
1011
|
-
type: BooleanConstructor;
|
|
1012
|
-
default: boolean;
|
|
1013
|
-
};
|
|
1014
|
-
pauseMode: {
|
|
1015
|
-
type: NumberConstructor;
|
|
1016
|
-
default: number;
|
|
1017
|
-
validator: (value: number) => boolean;
|
|
1018
|
-
};
|
|
1019
|
-
}>> & Readonly<{
|
|
1020
|
-
onPlay?: ((...args: any[]) => any) | undefined;
|
|
1021
|
-
onPause?: ((...args: any[]) => any) | undefined;
|
|
1022
|
-
onError?: ((...args: any[]) => any) | undefined;
|
|
1023
|
-
onVideoInfo?: ((...args: any[]) => any) | undefined;
|
|
1024
|
-
onTimeout?: ((...args: any[]) => any) | undefined;
|
|
1025
|
-
onMute?: ((...args: any[]) => any) | undefined;
|
|
1026
|
-
}> & {}>;
|
|
1027
|
-
emits: (event: "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute", ...args: any[]) => void;
|
|
1028
|
-
slots: Readonly<{
|
|
1029
|
-
[name: string]: import("vue").Slot<any> | undefined;
|
|
1030
|
-
}>;
|
|
1031
|
-
customBar: import("vue").ComputedRef<import("vue").Slot<any> | undefined>;
|
|
1032
|
-
player: any;
|
|
1033
|
-
id: string;
|
|
1034
|
-
playerRef: import("vue").ShallowRef<HTMLDivElement | undefined, HTMLDivElement | undefined>;
|
|
1035
|
-
playSuccess: import("vue").Ref<boolean, boolean>;
|
|
1036
|
-
playUrl: import("vue").Ref<string, string>;
|
|
1037
|
-
videoInfo: import("vue").Ref<any, any>;
|
|
1038
|
-
eventHandlers: import("vue").Ref<Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>, Map<string, Function> | (Map<string, Function> & Omit<Map<string, Function>, keyof Map<any, any>>)>;
|
|
1039
|
-
waitTimer: number | null;
|
|
1040
|
-
restartTimer: import("vue").Ref<number | null, number | null>;
|
|
1041
|
-
pauseCycleTimer: import("vue").Ref<number | null, number | null>;
|
|
1042
|
-
resizeObserver: ResizeObserver | null;
|
|
1043
|
-
createRetryCount: number;
|
|
1044
|
-
MAX_CREATE_RETRY: number;
|
|
1045
|
-
isUnmounted: boolean;
|
|
1046
|
-
play: (url?: string) => void;
|
|
1047
|
-
playerPause: () => void;
|
|
1048
|
-
playerScreenShot: () => void;
|
|
1049
|
-
formatUrl: (url: string) => string;
|
|
1050
|
-
initPlayer: (url: string) => Promise<void>;
|
|
1051
|
-
removePlayerDom: () => void;
|
|
1052
|
-
createPlayerDom: () => Promise<HTMLDivElement>;
|
|
1053
|
-
createPlayer: () => Promise<void>;
|
|
1054
|
-
startPlayer: () => Promise<void>;
|
|
1055
|
-
destroy: (flag?: boolean) => void;
|
|
1056
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("error" | "play" | "pause" | "videoInfo" | "timeout" | "mute")[], "error" | "play" | "pause" | "videoInfo" | "timeout" | "mute", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
1057
|
-
url: {
|
|
1058
|
-
type: StringConstructor;
|
|
1059
|
-
default: string;
|
|
1060
|
-
};
|
|
1061
|
-
accessToken: {
|
|
1062
|
-
type: StringConstructor;
|
|
1063
|
-
default: string;
|
|
1064
|
-
};
|
|
1065
|
-
areaName: {
|
|
1066
|
-
type: StringConstructor;
|
|
1067
|
-
default: string;
|
|
1068
|
-
};
|
|
1069
|
-
deviceSerial: {
|
|
1070
|
-
type: StringConstructor;
|
|
1071
|
-
default: string;
|
|
1072
|
-
};
|
|
1073
|
-
platformTypeName: {
|
|
1074
|
-
type: StringConstructor;
|
|
1075
|
-
default: string;
|
|
1076
|
-
};
|
|
1077
|
-
debug: {
|
|
1078
|
-
type: BooleanConstructor;
|
|
1079
|
-
default: boolean;
|
|
1080
|
-
};
|
|
1081
|
-
pauseMode: {
|
|
1082
|
-
type: NumberConstructor;
|
|
1083
|
-
default: number;
|
|
1084
|
-
validator: (value: number) => boolean;
|
|
1085
|
-
};
|
|
1086
|
-
}>> & Readonly<{
|
|
1087
|
-
onPlay?: ((...args: any[]) => any) | undefined;
|
|
1088
|
-
onPause?: ((...args: any[]) => any) | undefined;
|
|
1089
|
-
onError?: ((...args: any[]) => any) | undefined;
|
|
1090
|
-
onVideoInfo?: ((...args: any[]) => any) | undefined;
|
|
1091
|
-
onTimeout?: ((...args: any[]) => any) | undefined;
|
|
1092
|
-
onMute?: ((...args: any[]) => any) | undefined;
|
|
1093
|
-
}>, {
|
|
1094
|
-
url: string;
|
|
1095
|
-
accessToken: string;
|
|
1096
|
-
debug: boolean;
|
|
1097
|
-
deviceSerial: string;
|
|
1098
|
-
areaName: string;
|
|
1099
|
-
platformTypeName: string;
|
|
1100
|
-
pauseMode: number;
|
|
1101
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
1102
|
-
ErrorPage: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
1103
|
-
videoName: {
|
|
1104
|
-
type: StringConstructor;
|
|
1105
|
-
default: string;
|
|
1106
|
-
};
|
|
1107
|
-
message: {
|
|
1108
|
-
type: StringConstructor;
|
|
1109
|
-
default: string;
|
|
1110
|
-
};
|
|
1111
|
-
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
1112
|
-
videoName: {
|
|
1113
|
-
type: StringConstructor;
|
|
1114
|
-
default: string;
|
|
1115
|
-
};
|
|
1116
|
-
message: {
|
|
1117
|
-
type: StringConstructor;
|
|
1118
|
-
default: string;
|
|
1119
|
-
};
|
|
1120
|
-
}>> & Readonly<{}>, {
|
|
1121
|
-
message: string;
|
|
1122
|
-
videoName: string;
|
|
1123
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
1124
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
1125
|
-
url: {
|
|
1126
|
-
type: StringConstructor;
|
|
1127
|
-
default: string;
|
|
1128
|
-
};
|
|
1129
|
-
accessToken: {
|
|
1130
|
-
type: StringConstructor;
|
|
1131
|
-
default: string;
|
|
1132
|
-
};
|
|
1133
|
-
areaName: {
|
|
1134
|
-
type: StringConstructor;
|
|
1135
|
-
default: string;
|
|
1136
|
-
};
|
|
1137
|
-
deviceSerial: {
|
|
1138
|
-
type: StringConstructor;
|
|
1139
|
-
default: string;
|
|
1140
|
-
};
|
|
1141
|
-
platformTypeName: {
|
|
1142
|
-
type: StringConstructor;
|
|
1143
|
-
default: string;
|
|
1144
|
-
};
|
|
1145
|
-
debug: {
|
|
1146
|
-
type: BooleanConstructor;
|
|
1147
|
-
default: boolean;
|
|
1148
|
-
};
|
|
1149
|
-
pauseMode: {
|
|
1150
|
-
type: NumberConstructor;
|
|
1151
|
-
default: number;
|
|
1152
|
-
validator: (value: number) => boolean;
|
|
1153
|
-
};
|
|
1154
|
-
}>> & Readonly<{}>, {
|
|
1155
|
-
url: string;
|
|
1156
|
-
accessToken: string;
|
|
1157
|
-
debug: boolean;
|
|
1158
|
-
deviceSerial: string;
|
|
1159
|
-
areaName: string;
|
|
1160
|
-
platformTypeName: string;
|
|
1161
|
-
pauseMode: number;
|
|
1162
871
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any> | import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
1163
872
|
url: {
|
|
1164
873
|
type: StringConstructor;
|
|
@@ -1332,7 +1041,6 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
|
|
|
1332
1041
|
errorMsg: import("vue").Ref<string, string>;
|
|
1333
1042
|
playerRef: import("vue").ShallowRef<any, any>;
|
|
1334
1043
|
isPlaying: import("vue").Ref<boolean, boolean>;
|
|
1335
|
-
isFullscreen: import("vue").Ref<boolean, boolean>;
|
|
1336
1044
|
isVolumeMuted: import("vue").Ref<boolean, boolean>;
|
|
1337
1045
|
audioMsg: import("vue").Ref<{
|
|
1338
1046
|
type: string;
|
|
@@ -1345,13 +1053,8 @@ export declare const ITzjPlayer: import("../../types").SFCWithInstall<import("vu
|
|
|
1345
1053
|
msg: string;
|
|
1346
1054
|
}>;
|
|
1347
1055
|
initPlayer: () => Promise<void>;
|
|
1348
|
-
playerPlay: () => void;
|
|
1349
|
-
playerPause: () => void;
|
|
1350
|
-
playerScreenShot: () => void;
|
|
1351
|
-
playerFullscreen: (fullscreen: boolean) => void;
|
|
1352
1056
|
handleVideoInfo: () => void;
|
|
1353
1057
|
handleMute: (mute: boolean) => void;
|
|
1354
|
-
handleSetMute: (volume: number) => void;
|
|
1355
1058
|
EasyPlayer: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
1356
1059
|
url: {
|
|
1357
1060
|
type: StringConstructor;
|