@robot-admin/naive-ui-components 0.11.4 → 0.11.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.
Files changed (104) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +35 -0
  3. package/README_EN.md +34 -0
  4. package/SECURITY.md +2 -0
  5. package/dist/C_Map.cjs +1 -1
  6. package/dist/C_Map.css +8 -8
  7. package/dist/C_Map.d.cts +2 -2
  8. package/dist/C_Map.d.ts +2 -2
  9. package/dist/C_Map.js +1 -1
  10. package/dist/C_Map2.cjs +1 -1
  11. package/dist/C_Map2.js +1 -1
  12. package/dist/C_Table.d.ts +1 -0
  13. package/dist/constants2.d.cts +1 -1
  14. package/dist/constants2.d.ts +1 -1
  15. package/dist/constants3.d.cts +3 -3
  16. package/dist/constants3.d.ts +3 -3
  17. package/dist/constants4.d.cts +4 -4
  18. package/dist/constants4.d.ts +4 -4
  19. package/dist/constants5.d.cts +2 -2
  20. package/dist/constants5.d.ts +2 -2
  21. package/dist/images/layers-2x.png +0 -0
  22. package/dist/images/layers.png +0 -0
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.d.cts +2 -2
  25. package/dist/index.d.ts +3 -2
  26. package/dist/index.js +1 -1
  27. package/dist/index.vue.d.cts +1 -1
  28. package/dist/index.vue.d.ts +1 -1
  29. package/dist/index10.vue.d.cts +2 -2
  30. package/dist/index10.vue.d.ts +1 -1
  31. package/dist/index11.vue.d.cts +1 -1
  32. package/dist/index12.vue.d.ts +1 -1
  33. package/dist/index13.vue.d.cts +1 -1
  34. package/dist/index13.vue.d.ts +1 -1
  35. package/dist/index14.vue.d.cts +1 -1
  36. package/dist/index14.vue.d.ts +5 -5
  37. package/dist/index15.vue.d.cts +5 -5
  38. package/dist/index15.vue.d.ts +1 -1
  39. package/dist/index16.vue.d.cts +1 -1
  40. package/dist/index17.vue.d.ts +1 -1
  41. package/dist/index18.vue.d.cts +1 -1
  42. package/dist/index18.vue.d.ts +2 -2
  43. package/dist/index2.vue.d.cts +5 -5
  44. package/dist/index2.vue.d.ts +5 -5
  45. package/dist/index20.vue.d.cts +1 -1
  46. package/dist/index20.vue.d.ts +1 -1
  47. package/dist/index21.vue.d.cts +2 -2
  48. package/dist/index21.vue.d.ts +2 -2
  49. package/dist/index22.vue.d.cts +1 -1
  50. package/dist/index22.vue.d.ts +1 -1
  51. package/dist/index24.vue.d.cts +3 -3
  52. package/dist/index24.vue.d.ts +3 -3
  53. package/dist/index26.vue.d.cts +4 -4
  54. package/dist/index26.vue.d.ts +4 -4
  55. package/dist/index27.vue.d.cts +2 -2
  56. package/dist/index27.vue.d.ts +2 -2
  57. package/dist/index3.vue.d.cts +2 -2
  58. package/dist/index3.vue.d.ts +2 -2
  59. package/dist/index4.vue.d.cts +2 -2
  60. package/dist/index4.vue.d.ts +2 -2
  61. package/dist/index5.vue.d.cts +2 -2
  62. package/dist/index9.vue.d.ts +2 -2
  63. package/dist/mapUtils.d.cts +144 -0
  64. package/dist/mapUtils.d.ts +144 -0
  65. package/dist/style.css +8 -8
  66. package/dist/useCalendarEvents.d.cts +2 -2
  67. package/dist/useCalendarEvents.d.ts +2 -2
  68. package/dist/useCollapsePanel.d.cts +2 -2
  69. package/dist/useCollapsePanel.d.ts +2 -2
  70. package/dist/useCropperCore.d.cts +6 -6
  71. package/dist/useCropperCore.d.ts +6 -6
  72. package/dist/useDraggableLayout.d.cts +5 -5
  73. package/dist/useDraggableLayout.d.ts +5 -5
  74. package/dist/useDynamicFormState.d.cts +3 -3
  75. package/dist/useDynamicFormState.d.ts +3 -3
  76. package/dist/useEdgeInteraction.d.cts +1 -1
  77. package/dist/useEdgeInteraction.d.ts +1 -1
  78. package/dist/useFullscreen.d.cts +2 -2
  79. package/dist/useFullscreen.d.ts +2 -2
  80. package/dist/useGlobalSearch.d.cts +1 -1
  81. package/dist/useGlobalSearch.d.ts +1 -1
  82. package/dist/useInfiniteScroll.d.cts +1 -1
  83. package/dist/useInfiniteScroll.d.ts +1 -1
  84. package/dist/useQRCode.d.cts +4 -4
  85. package/dist/useQRCode.d.ts +4 -4
  86. package/dist/useSearchState.d.cts +21 -21
  87. package/dist/useSearchState.d.ts +21 -21
  88. package/dist/useSignatureHistory.d.cts +1 -1
  89. package/dist/useSignatureHistory.d.ts +1 -1
  90. package/dist/useSplitResize.d.cts +7 -7
  91. package/dist/useSplitResize.d.ts +7 -7
  92. package/dist/useTableQuery.d.cts +1 -1
  93. package/dist/useTableQuery.d.ts +1 -1
  94. package/dist/useTimeSelection.d.cts +2 -2
  95. package/dist/useTimeSelection.d.ts +2 -2
  96. package/dist/useTreeOperations.d.cts +6 -6
  97. package/dist/useTreeOperations.d.ts +6 -6
  98. package/dist/useWorkflowValidation.d.cts +5 -5
  99. package/dist/useWorkflowValidation.d.ts +5 -5
  100. package/dist/verification.d.cts +5 -5
  101. package/dist/verification.d.ts +5 -5
  102. package/package.json +2 -1
  103. package/dist/data.d.cts +0 -67
  104. package/dist/data.d.ts +0 -67
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @robot-admin/naive-ui-components
2
2
 
3
+ ## 0.11.6
4
+
5
+ ### Patch Changes
6
+
7
+ - ba569c2: 为 C_Map 增加高德 JS API 2.0 安全密钥/服务端代理配置,并阻止同页混用不同 Key 或安全配置,兼容 2021-12-02 后签发的高德 Key。
8
+
9
+ ## 0.11.5
10
+
11
+ ### Patch Changes
12
+
13
+ - b5d6611: 修复 C_Map 的 Leaflet 图层图片发布、AMap 坐标顺序、标记点击和 SDK 重试问题;隔离组件自有标记清理,补齐强类型配置、瓦片自定义及 `getMap`、`refresh`、`fitToMarkers` 实例能力。
14
+
3
15
  ## 0.11.4
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -212,6 +212,40 @@ import '@robot-admin/naive-ui-components/C_Table/base.css'
212
212
  </template>
213
213
  ```
214
214
 
215
+ ### C_Map 推荐用法
216
+
217
+ `C_Map` 统一以 `[纬度, 经度]` 接收中心点和标记坐标;切换高德地图时会在组件内部转换为其要求的 `[经度, 纬度]`,使用侧无需维护两套数据。非法标记会被隔离,组件只清理自己创建的 Marker,不会误删通过 `ready` 事件添加的业务图层。
218
+
219
+ ```vue
220
+ <script setup lang="ts">
221
+ import { ref } from 'vue'
222
+ import {
223
+ C_Map,
224
+ type MapExpose,
225
+ type MapMarker,
226
+ } from '@robot-admin/naive-ui-components/C_Map'
227
+ import '@robot-admin/naive-ui-components/C_Map/style.css'
228
+
229
+ const mapRef = ref<MapExpose>()
230
+ const markers: MapMarker[] = [
231
+ { id: 'beijing', lat: 39.9042, lng: 116.4074, popup: '北京' },
232
+ ]
233
+ </script>
234
+
235
+ <template>
236
+ <C_Map
237
+ ref="mapRef"
238
+ :markers="markers"
239
+ fit-markers-on-init
240
+ :tile-config="{ maxZoom: 18 }"
241
+ @error="reportError"
242
+ />
243
+ <button @click="mapRef?.fitToMarkers({ maxZoom: 14 })">定位全部标记</button>
244
+ </template>
245
+ ```
246
+
247
+ 组件实例提供 `getMap()`、`refresh()` 和 `fitToMarkers()`,适合标签页显示、容器尺寸变化和业务图层扩展。使用 `map-type="amap"` 时必须提供 `amap-key`;2021-12-02 之后申请的 Key 还必须按[高德官方安全密钥说明](https://lbs.amap.com/api/javascript-api-v2/guide/abc/jscode)配置 `:amap-security-config="{ serviceHost: '/_AMapService' }"`(生产推荐,由服务端代理保管安全密钥),或仅在开发环境传 `{ securityJsCode: '...' }`。安全配置会在 SDK 脚本加载前写入,并拒绝同页混用不同 Key。宿主应用还需在 CSP 的 `script-src` 中允许 `https://webapi.amap.com`,同时在高德控制台配置域名白名单和配额限制。
248
+
215
249
  `C_Date`、`C_Time`、`C_Menu`、`C_FormSearch` 均支持标准 `v-model`。组件可直接放在没有 `NMessageProvider` / `NDialogProvider` 的页面;如需统一提示、确认和文案,可在安装时传入 `feedback`、`locale`、`form` 与 `table.defaults`。
216
250
 
217
251
  ### C_Captcha 服务端校验
@@ -371,6 +405,7 @@ dist/
371
405
  ├── C_Form.base.css / C_Form.full.css # 基础/完整样式层级
372
406
  ├── C_Table.base.css / C_Table.full.css # 基础/完整样式层级
373
407
  ├── style.css # 合并后的全量样式
408
+ ├── images/ # Leaflet Marker/图层控件资源
374
409
  └── [chunk].js # 共享代码块
375
410
  ```
376
411
 
package/README_EN.md CHANGED
@@ -153,6 +153,40 @@ const { bindings } = useTableQuery<UserRow, { keyword: string }>({
153
153
  })
154
154
  ```
155
155
 
156
+ ### Recommended C_Map setup
157
+
158
+ `C_Map` consistently accepts `[latitude, longitude]` for centers and markers. It converts coordinates to AMap's `[longitude, latitude]` order internally, filters invalid markers, and only removes markers owned by the component.
159
+
160
+ ```vue
161
+ <script setup lang="ts">
162
+ import { ref } from 'vue'
163
+ import {
164
+ C_Map,
165
+ type MapExpose,
166
+ type MapMarker,
167
+ } from '@robot-admin/naive-ui-components/C_Map'
168
+ import '@robot-admin/naive-ui-components/C_Map/style.css'
169
+
170
+ const mapRef = ref<MapExpose>()
171
+ const markers: MapMarker[] = [
172
+ { id: 'beijing', lat: 39.9042, lng: 116.4074, popup: 'Beijing' },
173
+ ]
174
+ </script>
175
+
176
+ <template>
177
+ <C_Map
178
+ ref="mapRef"
179
+ :markers="markers"
180
+ fit-markers-on-init
181
+ :tile-config="{ maxZoom: 18 }"
182
+ @error="reportError"
183
+ />
184
+ <button @click="mapRef?.fitToMarkers({ maxZoom: 14 })">Fit markers</button>
185
+ </template>
186
+ ```
187
+
188
+ The exposed instance provides `getMap()`, `refresh()`, and `fitToMarkers()` for tab visibility changes, container resizes, and custom business layers. `map-type="amap"` requires `amap-key`; keys created after 2021-12-02 also require `:amap-security-config="{ serviceHost: '/_AMapService' }"` (recommended in production so the server proxy retains the security secret), or `{ securityJsCode: '...' }` for development only, as described by the [official AMap security guidance](https://lbs.amap.com/api/javascript-api-v2/guide/abc/jscode). The config is installed before the SDK script and conflicting keys on one page are rejected. The host CSP must also allow `https://webapi.amap.com` in `script-src`, with domain allowlists and quotas enforced in the AMap console.
189
+
156
190
  `C_Date`, `C_Time`, `C_Menu`, and `C_FormSearch` support standard `v-model`. Message/dialog providers are optional; application-wide feedback, locale, form defaults, and `table.defaults` can be supplied through plugin options.
157
191
 
158
192
  ### C_Captcha Server Verification
package/SECURITY.md CHANGED
@@ -15,6 +15,8 @@ Please use GitHub's private security-advisory flow for the repository. Include t
15
15
  - Formula evaluation uses a bounded parser and does not execute arbitrary JavaScript. Do not replace it with `eval` or `Function` for untrusted input.
16
16
  - Upload type, size, hashing, and chunk checks improve UX and integrity but do not replace server-side content validation, malware scanning, quotas, or access control.
17
17
  - Spreadsheet, document, image, audio, video, and map sources remain untrusted external content. Apply suitable origin, CSP, download, and privacy policies in the host application.
18
+ - `C_Map` loads AMap only when explicitly selected. AMap consumers must allow `https://webapi.amap.com` in `script-src`, configure domain allowlists and quotas at the provider, and treat the browser API key as public metadata rather than a server secret. OSM tile URLs and custom tile sources should be restricted by the host application's `img-src` and privacy policy.
19
+ - AMap keys issued after 2021-12-02 require a security credential. Production deployments should use `amapSecurityConfig.serviceHost` with a same-origin `/_AMapService` proxy so the credential remains server-side; plaintext `securityJsCode` is intended for local development only.
18
20
 
19
21
  ## Dependency and release controls
20
22
 
package/dist/C_Map.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Map2.cjs`);exports.C_Map=e.t,exports.DEFAULT_MAP_CONFIG=e.n,exports.MAP_TYPES=e.r,exports.OSM_TILE_CONFIG=e.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_Map2.cjs`);exports.C_Map=e.t,exports.DEFAULT_MAP_CONFIG=e.s,exports.MAP_TYPES=e.c,exports.OSM_TILE_CONFIG=e.l,exports.getValidMapMarkers=e.n,exports.isValidMapCoordinate=e.r,exports.normalizeMapZoom=e.i,exports.resolveTileConfig=e.a,exports.toAMapPosition=e.o;
package/dist/C_Map.css CHANGED
@@ -660,21 +660,21 @@ svg.leaflet-image-layer.leaflet-interactive path {
660
660
  }
661
661
  }
662
662
 
663
- /* unplugin-vue-components disabled */.c-map[data-v-09a5ef45] {
663
+ /* unplugin-vue-components disabled */.c-map[data-v-536a68a9] {
664
664
  position: relative;
665
665
  width: 100%;
666
666
  min-height: 300px;
667
- background: #f5f5f5;
668
- border-radius: 4px;
667
+ background: var(--c-bg-surface, #fff);
668
+ border-radius: var(--c-radius-sm, 4px);
669
669
  overflow: hidden;
670
670
  }
671
- .c-map .map-container[data-v-09a5ef45] {
671
+ .c-map .map-container[data-v-536a68a9] {
672
672
  width: 100%;
673
673
  height: 100%;
674
- border-radius: 4px;
674
+ border-radius: inherit;
675
675
  overflow: hidden;
676
676
  }
677
- .c-map .map-loading[data-v-09a5ef45] {
677
+ .c-map .map-loading[data-v-536a68a9] {
678
678
  position: absolute;
679
679
  top: 0;
680
680
  left: 0;
@@ -683,7 +683,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
683
683
  display: flex;
684
684
  align-items: center;
685
685
  justify-content: center;
686
- background: rgba(255, 255, 255, 0.9);
687
- border-radius: 4px;
686
+ background: color-mix(in srgb, var(--c-bg-surface, #fff) 90%, transparent);
687
+ border-radius: inherit;
688
688
  z-index: 1000;
689
689
  }
package/dist/C_Map.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as MapType, i as MapMarker, n as MAP_TYPES, o as OSM_TILE_CONFIG, r as MapConfig, s as _default, t as DEFAULT_MAP_CONFIG } from "./data.cjs";
2
- export { _default as C_Map, DEFAULT_MAP_CONFIG, MAP_TYPES, type MapConfig, type MapMarker, type MapType, OSM_TILE_CONFIG };
1
+ import { C as MapTileConfig, S as MapProps, _ as MapExpose, a as toAMapPosition, b as MapMarker, c as OSM_TILE_CONFIG, d as AMapMapInstance, f as AMapMarkerEvent, g as MapCoordinate, h as MapConfig, i as resolveTileConfig, l as _default, m as AMapSecurityConfig, n as isValidMapCoordinate, o as DEFAULT_MAP_CONFIG, p as AMapPosition, r as normalizeMapZoom, s as MAP_TYPES, t as getValidMapMarkers, u as AMapApi, v as MapFitOptions, w as MapType, x as MapMarkerEvent, y as MapInstance } from "./mapUtils.cjs";
2
+ export { type AMapApi, type AMapMapInstance, type AMapMarkerEvent, type AMapPosition, type AMapSecurityConfig, _default as C_Map, DEFAULT_MAP_CONFIG, MAP_TYPES, type MapConfig, type MapCoordinate, type MapExpose, type MapFitOptions, type MapInstance, type MapMarker, type MapMarkerEvent, type MapProps, type MapTileConfig, type MapType, OSM_TILE_CONFIG, getValidMapMarkers, isValidMapCoordinate, normalizeMapZoom, resolveTileConfig, toAMapPosition };
package/dist/C_Map.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as MapType, i as MapMarker, n as MAP_TYPES, o as OSM_TILE_CONFIG, r as MapConfig, s as _default, t as DEFAULT_MAP_CONFIG } from "./data.js";
2
- export { _default as C_Map, DEFAULT_MAP_CONFIG, MAP_TYPES, type MapConfig, type MapMarker, type MapType, OSM_TILE_CONFIG };
1
+ import { C as MapTileConfig, S as MapProps, _ as MapExpose, a as toAMapPosition, b as MapMarker, c as OSM_TILE_CONFIG, d as AMapMapInstance, f as AMapMarkerEvent, g as MapCoordinate, h as MapConfig, i as resolveTileConfig, l as _default, m as AMapSecurityConfig, n as isValidMapCoordinate, o as DEFAULT_MAP_CONFIG, p as AMapPosition, r as normalizeMapZoom, s as MAP_TYPES, t as getValidMapMarkers, u as AMapApi, v as MapFitOptions, w as MapType, x as MapMarkerEvent, y as MapInstance } from "./mapUtils.js";
2
+ export { type AMapApi, type AMapMapInstance, type AMapMarkerEvent, type AMapPosition, type AMapSecurityConfig, _default as C_Map, DEFAULT_MAP_CONFIG, MAP_TYPES, type MapConfig, type MapCoordinate, type MapExpose, type MapFitOptions, type MapInstance, type MapMarker, type MapMarkerEvent, type MapProps, type MapTileConfig, type MapType, OSM_TILE_CONFIG, getValidMapMarkers, isValidMapCoordinate, normalizeMapZoom, resolveTileConfig, toAMapPosition };
package/dist/C_Map.js CHANGED
@@ -1 +1 @@
1
- import{i as e,n as t,r as n,t as r}from"./C_Map2.js";export{r as C_Map,t as DEFAULT_MAP_CONFIG,n as MAP_TYPES,e as OSM_TILE_CONFIG};
1
+ import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./C_Map2.js";export{c as C_Map,s as DEFAULT_MAP_CONFIG,t as MAP_TYPES,r as OSM_TILE_CONFIG,i as getValidMapMarkers,o as isValidMapCoordinate,n as normalizeMapZoom,e as resolveTileConfig,a as toAMapPosition};
package/dist/C_Map2.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r=[{label:`OpenStreetMap`,value:`osm`},{label:`高德地图`,value:`amap`}],i={height:`400px`,center:[39.9042,116.4074],zoom:10,mapType:`osm`},a={url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© OpenStreetMap contributors`,maxZoom:19,minZoom:1,tileSize:256,detectRetina:!0},o={apiUrl:`https://webapi.amap.com/maps?v=2.0&key=`,note:`高德地图需要API Key,如需使用请申请:https://lbs.amap.com/api/javascript-api/guide/create/`};let s=null;function c(e){let t=window;return t.AMap?Promise.resolve(t.AMap):s||(s=new Promise((n,r)=>{let i=document.createElement(`script`);i.async=!0,i.dataset.cMapAmap=`true`,i.src=`${o.apiUrl}${encodeURIComponent(e)}`,i.onload=()=>{t.AMap?n(t.AMap):r(Error(`高德地图 API 加载完成但未找到全局对象`))},i.onerror=()=>{i.remove(),s=null,r(Error(`高德地图 API 加载失败`))},document.head.appendChild(i)}),s)}const l={class:`c-map`},u={key:0,class:`map-loading`},d=(0,t.defineComponent)({name:`C_Map`,__name:`index`,props:{height:{default:`400px`},center:{default:()=>[39.9042,116.4074]},zoom:{default:10},markers:{default:()=>[]},mapType:{default:`osm`},amapKey:{default:``}},emits:[`ready`,`markerClick`,`error`],setup(e,{emit:r}){let i=e,o=r,s=(0,t.ref)(),d=(0,t.ref)(!0),f=null,p=null,m=[],h=0,g=!1,_=e=>e instanceof Error?e:Error(String(e)),v=()=>{h+=1,m.forEach(e=>e.setMap?.(null)),m=[],f&&=(typeof f.remove==`function`?f.remove():typeof f.destroy==`function`&&f.destroy(),null)},y=async()=>{if(!s.value)return;let e=++h;try{if(v(),h=e,s.value.replaceChildren(),p??=await import(`leaflet`),g||e!==h||!s.value)return;let n=p;if(f=n.map(s.value,{center:i.center,zoom:i.zoom,zoomControl:!0,preferCanvas:!0}),n.tileLayer(a.url,a).addTo(f),g||e!==h){v();return}if(x(),await(0,t.nextTick)(),requestAnimationFrame(()=>{e===h&&f?.invalidateSize({reset:!0,pan:!1})}),g||e!==h)return;d.value=!1,o(`ready`,f)}catch(t){e===h&&(v(),o(`error`,_(t)),d.value=!1)}},b=async()=>{if(!s.value||!i.amapKey){i.amapKey||o(`error`,Error(`使用高德地图时必须提供 amapKey`)),d.value=!1;return}let e=++h;try{v(),h=e,s.value.replaceChildren();let t=await c(i.amapKey);if(g||e!==h||!s.value)return;f=new t.Map(s.value,{zoom:i.zoom,center:i.center}),S(f),d.value=!1,o(`ready`,f)}catch(t){e===h&&(o(`error`,_(t)),d.value=!1)}},x=()=>{if(!f||!p||i.mapType!==`osm`||!i.markers)return;let e=p;f.eachLayer(t=>{t instanceof e.Marker&&f.removeLayer(t)}),i.markers.forEach(t=>{if(!Number.isFinite(t.lat)||!Number.isFinite(t.lng))return;let n=e.marker([t.lat,t.lng]);if(t.popup){let e=document.createElement(`span`);e.textContent=t.popup,n.bindPopup(e),n.on(`click`,e=>{o(`markerClick`,t,e)})}n.addTo(f)})},S=e=>{!e||i.mapType!==`amap`||!i.markers||(m.forEach(e=>e.setMap?.(null)),m=[],i.markers.forEach(t=>{if(!Number.isFinite(t.lat)||!Number.isFinite(t.lng))return;let n=new window.AMap.Marker({position:[t.lat,t.lng],title:t.popup||``});if(t.popup){let r=document.createElement(`span`);r.textContent=t.popup;let i=new window.AMap.InfoWindow({content:r,offset:new window.AMap.Pixel(0,-30)});n.on(`click`,()=>{i.open(e,n.getPosition()),o(`markerClick`,t,null)})}n.setMap(e),m.push(n)}))};return(0,t.watch)(()=>i.markers,()=>{f&&(i.mapType===`osm`?x():S(f))},{deep:!0}),(0,t.watch)(()=>i.mapType,async(e,n)=>{e!==n&&(v(),d.value=!0,await(0,t.nextTick)(),e===`amap`?await b():await y())}),(0,t.watch)([()=>i.center,()=>i.zoom],()=>{f&&(i.mapType===`osm`?f.setView(i.center,i.zoom):(f.setCenter?.(i.center),f.setZoom?.(i.zoom)))},{deep:!0}),(0,t.onMounted)(async()=>{await(0,t.nextTick)(),i.mapType===`amap`?await b():await y()}),(0,t.onUnmounted)(()=>{g=!0,v()}),(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,l,[(0,t.createElementVNode)(`div`,{ref_key:`mapContainer`,ref:s,class:`map-container`,style:(0,t.normalizeStyle)({height:e.height})},null,4),d.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,u,[(0,t.createVNode)((0,t.unref)(n.NSpin),{size:`large`})])):(0,t.createCommentVNode)(`v-if`,!0)]))}});var f=e.t(d,[[`__scopeId`,`data-v-09a5ef45`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r=[{label:`OpenStreetMap`,value:`osm`},{label:`高德地图`,value:`amap`}],i={height:`400px`,center:[39.9042,116.4074],zoom:10,mapType:`osm`},a={url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© OpenStreetMap contributors`,maxZoom:19,minZoom:1,tileSize:256,detectRetina:!0},o={apiUrl:`https://webapi.amap.com/maps?v=2.0&key=`,note:`高德地图需要API Key,如需使用请申请:https://lbs.amap.com/api/javascript-api/guide/create/`},s=15e3;let c=null,l=null;function u(e){if(!e)return;let t=e.serviceHost?.trim(),n=e.securityJsCode?.trim();if(t&&n)throw Error(`高德地图安全配置只能选择 serviceHost 或 securityJsCode`);if(t){if(!t.endsWith(`/_AMapService`))throw Error(`高德地图 serviceHost 必须以 /_AMapService 结尾`);return{serviceHost:t}}if(n)return{securityJsCode:n};throw Error(`高德地图安全配置不能为空`)}const d=e=>{if(e)return e;if(typeof window>`u`||typeof document>`u`)throw Error(`高德地图 API 只能在浏览器环境加载`);return{clearTimeout:window.clearTimeout.bind(window),document,host:window,setTimeout:window.setTimeout.bind(window)}},f=(e,t,n)=>{let r=e.trim();if(!r)throw Error(`高德地图 API Key 不能为空`);let i=u(t);return{identity:JSON.stringify([r,i]),normalizedKey:r,normalizedSecurityConfig:i,platform:d(n)}};function p(e,t=s,n,r){let i;try{i=f(e,n,r)}catch(e){return Promise.reject(e)}let{identity:a,normalizedKey:u,normalizedSecurityConfig:d}=i,{clearTimeout:p,document:m,host:h,setTimeout:g}=i.platform;return l&&l!==a?Promise.reject(Error(`同一页面不能使用不同的高德地图 Key 或安全配置`)):h.AMap?Promise.resolve(h.AMap):c||(l=a,d&&(h._AMapSecurityConfig={...d}),c=new Promise((e,n)=>{let r=m.querySelector(`script[data-c-map-amap="true"]`),i=r||m.createElement(`script`),a=!1,d=Number.isFinite(t)&&t>0?t:s,f=()=>{p(b),i.removeEventListener(`load`,v),i.removeEventListener(`error`,y)},_=e=>{a||(a=!0,f(),i.remove(),c=null,l=null,n(e))},v=()=>{if(!a){if(!h.AMap){_(Error(`高德地图 API 加载完成但未找到全局对象`));return}a=!0,f(),e(h.AMap)}},y=()=>_(Error(`高德地图 API 加载失败`)),b=g(()=>_(Error(`高德地图 API 加载超时(${d}ms)`)),d);i.addEventListener(`load`,v,{once:!0}),i.addEventListener(`error`,y,{once:!0}),!r&&(i.async=!0,i.dataset.cMapAmap=`true`,i.src=`${o.apiUrl}${encodeURIComponent(u)}`,m.head.appendChild(i))}),c)}function m(e){if(!e||e.length!==2)return!1;let[t,n]=e;return Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}function h(e){return[e[1],e[0]]}function g(e){return e.filter(e=>m([e.lat,e.lng]))}function _(e,t=a.minZoom,n=a.maxZoom){return Number.isFinite(e)?Math.min(Math.max(e,t),n):i.zoom}function v(e={}){let{url:t,...n}={...a,...e};return{url:t,options:n}}const y=[`aria-label`,`aria-busy`],b={key:0,class:`map-loading`,role:`status`,"aria-live":`polite`,"aria-label":`地图加载中`},x=(0,t.defineComponent)({name:`C_Map`,__name:`index`,props:{ariaLabel:{default:`地图`},height:{default:i.height},center:{default:()=>[...i.center]},zoom:{default:i.zoom},markers:{default:()=>[]},mapType:{default:i.mapType},amapKey:{default:``},amapSecurityConfig:{},amapLoadTimeout:{default:15e3},amapOptions:{default:()=>({})},tileConfig:{default:()=>({})},zoomControl:{type:Boolean,default:!0},preferCanvas:{type:Boolean,default:!0},fitMarkersOnInit:{type:Boolean,default:!1}},emits:[`ready`,`markerClick`,`error`],setup(e,{expose:r,emit:i}){let a=e,o=i,s=(0,t.ref)(),c=(0,t.ref)(!0),l=null,u=null,d=[],f=null,x=null,S=[],C=[],w=0,T=!1,E=e=>e instanceof Error?e:Error(String(e)),D=()=>{d.forEach(e=>e.remove()),d=[]},O=()=>{C.forEach(e=>e.close?.()),C=[],S.forEach(e=>e.setMap?.(null)),S=[]},k=()=>{D(),O(),u?.remove(),x?.destroy(),u=null,x=null,s.value?.replaceChildren()},A=()=>{let e=++w;return k(),c.value=!0,e},j=e=>!T&&e===w,M=()=>{if(m(a.center))return a.center;throw Error(`地图中心坐标无效,应使用 [纬度, 经度] 且处于合法范围`)},N=(e,t)=>{j(e)&&(k(),c.value=!1,o(`error`,E(t)))},P=()=>{let e=l,t=u;!t||!e||a.mapType!==`osm`||(D(),g(a.markers).forEach(n=>{let r=e.marker([n.lat,n.lng]);if(n.popup){let e=document.createElement(`span`);e.textContent=n.popup,r.bindPopup(e)}r.on(`click`,e=>{o(`markerClick`,n,e)}),r.addTo(t),d.push(r)}))},F=()=>{let e=f,t=x;!t||!e||a.mapType!==`amap`||(O(),g(a.markers).forEach(n=>{let r=new e.Marker({position:h([n.lat,n.lng]),title:n.title||n.popup||``});if(n.popup){let i=document.createElement(`span`);i.textContent=n.popup;let a=new e.InfoWindow({content:i,offset:new e.Pixel(0,-30)});C.push(a),r.on(`click`,e=>{a.open(t,r.getPosition()),o(`markerClick`,n,e)})}else r.on(`click`,e=>o(`markerClick`,n,e));r.setMap(t),S.push(r)}))},I=()=>u||x,L=()=>{u?.invalidateSize({reset:!0,pan:!1}),x?.resize?.()},R=(e={})=>{let t=g(a.markers);if(t.length===0)return!1;if(u){let n=t.map(e=>[e.lat,e.lng]);return u.fitBounds(n,{maxZoom:e.maxZoom,padding:e.padding}),!0}if(x&&S.length>0){let[t=0,n=0]=e.padding||[];return x.setFitView?.(S,!1,[n,t,n,t],e.maxZoom),!0}return!1},z=async()=>{if(!s.value)return;let e=A();try{let n=await import(`leaflet`);if(!j(e)||!s.value)return;l=n;let{url:r,options:i}=v(a.tileConfig),d=_(a.zoom,i.minZoom,i.maxZoom);if(u=n.map(s.value,{center:M(),zoom:d,zoomControl:a.zoomControl,preferCanvas:a.preferCanvas}),n.tileLayer(r,i).addTo(u),P(),a.fitMarkersOnInit&&R(),await(0,t.nextTick)(),requestAnimationFrame(()=>{j(e)&&L()}),!j(e)||!u)return;c.value=!1,o(`ready`,u)}catch(t){N(e,t)}},B=async()=>{if(!s.value)return;let e=A();try{let t=await p(a.amapKey,a.amapLoadTimeout,a.amapSecurityConfig);if(!j(e)||!s.value)return;f=t,x=new t.Map(s.value,{...a.amapOptions,zoom:_(a.zoom,1,20),center:h(M())}),F(),a.fitMarkersOnInit&&R(),c.value=!1,o(`ready`,x)}catch(t){N(e,t)}},V=async()=>{a.mapType===`amap`?await B():await z()};return(0,t.watch)(()=>a.markers,()=>{a.mapType===`osm`?P():F()},{deep:!0}),(0,t.watch)([()=>a.mapType,()=>a.amapKey,()=>a.amapSecurityConfig,()=>a.amapLoadTimeout,()=>a.amapOptions,()=>a.tileConfig,()=>a.zoomControl,()=>a.preferCanvas],()=>void V(),{deep:!0}),(0,t.watch)([()=>a.center,()=>a.zoom],()=>{if(!m(a.center)){o(`error`,Error(`地图中心坐标无效,应使用 [纬度, 经度]`));return}u?.setView(a.center,_(a.zoom)),x?.setCenter(h(a.center)),x?.setZoom(_(a.zoom,1,20))},{deep:!0}),(0,t.onMounted)(async()=>{await(0,t.nextTick)(),await V()}),(0,t.onUnmounted)(()=>{T=!0,w+=1,k()}),r({fitToMarkers:R,getMap:I,refresh:L}),(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`c-map`,role:`region`,"aria-label":e.ariaLabel,"aria-busy":c.value},[(0,t.createElementVNode)(`div`,{ref_key:`mapContainer`,ref:s,class:`map-container`,style:(0,t.normalizeStyle)({height:e.height})},null,4),c.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,b,[(0,t.createVNode)((0,t.unref)(n.NSpin),{size:`large`})])):(0,t.createCommentVNode)(`v-if`,!0)],8,y))}});var S=e.t(x,[[`__scopeId`,`data-v-536a68a9`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return S}});
package/dist/C_Map2.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./export-helper.js";import{createCommentVNode as t,createElementBlock as n,createElementVNode as r,createVNode as i,defineComponent as a,nextTick as o,normalizeStyle as s,onMounted as c,onUnmounted as l,openBlock as u,ref as d,unref as f,watch as p}from"vue";import{NSpin as m}from"naive-ui";const h=[{label:`OpenStreetMap`,value:`osm`},{label:`高德地图`,value:`amap`}],g={height:`400px`,center:[39.9042,116.4074],zoom:10,mapType:`osm`},_={url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© OpenStreetMap contributors`,maxZoom:19,minZoom:1,tileSize:256,detectRetina:!0},v={apiUrl:`https://webapi.amap.com/maps?v=2.0&key=`,note:`高德地图需要API Key,如需使用请申请:https://lbs.amap.com/api/javascript-api/guide/create/`};let y=null;function b(e){let t=window;return t.AMap?Promise.resolve(t.AMap):y||(y=new Promise((n,r)=>{let i=document.createElement(`script`);i.async=!0,i.dataset.cMapAmap=`true`,i.src=`${v.apiUrl}${encodeURIComponent(e)}`,i.onload=()=>{t.AMap?n(t.AMap):r(Error(`高德地图 API 加载完成但未找到全局对象`))},i.onerror=()=>{i.remove(),y=null,r(Error(`高德地图 API 加载失败`))},document.head.appendChild(i)}),y)}const x={class:`c-map`},S={key:0,class:`map-loading`};var C=e(a({name:`C_Map`,__name:`index`,props:{height:{default:`400px`},center:{default:()=>[39.9042,116.4074]},zoom:{default:10},markers:{default:()=>[]},mapType:{default:`osm`},amapKey:{default:``}},emits:[`ready`,`markerClick`,`error`],setup(e,{emit:a}){let h=e,g=a,v=d(),y=d(!0),C=null,w=null,T=[],E=0,D=!1,O=e=>e instanceof Error?e:Error(String(e)),k=()=>{E+=1,T.forEach(e=>e.setMap?.(null)),T=[],C&&=(typeof C.remove==`function`?C.remove():typeof C.destroy==`function`&&C.destroy(),null)},A=async()=>{if(!v.value)return;let e=++E;try{if(k(),E=e,v.value.replaceChildren(),w??=await import(`leaflet`),D||e!==E||!v.value)return;let t=w;if(C=t.map(v.value,{center:h.center,zoom:h.zoom,zoomControl:!0,preferCanvas:!0}),t.tileLayer(_.url,_).addTo(C),D||e!==E){k();return}if(M(),await o(),requestAnimationFrame(()=>{e===E&&C?.invalidateSize({reset:!0,pan:!1})}),D||e!==E)return;y.value=!1,g(`ready`,C)}catch(t){e===E&&(k(),g(`error`,O(t)),y.value=!1)}},j=async()=>{if(!v.value||!h.amapKey){h.amapKey||g(`error`,Error(`使用高德地图时必须提供 amapKey`)),y.value=!1;return}let e=++E;try{k(),E=e,v.value.replaceChildren();let t=await b(h.amapKey);if(D||e!==E||!v.value)return;C=new t.Map(v.value,{zoom:h.zoom,center:h.center}),N(C),y.value=!1,g(`ready`,C)}catch(t){e===E&&(g(`error`,O(t)),y.value=!1)}},M=()=>{if(!C||!w||h.mapType!==`osm`||!h.markers)return;let e=w;C.eachLayer(t=>{t instanceof e.Marker&&C.removeLayer(t)}),h.markers.forEach(t=>{if(!Number.isFinite(t.lat)||!Number.isFinite(t.lng))return;let n=e.marker([t.lat,t.lng]);if(t.popup){let e=document.createElement(`span`);e.textContent=t.popup,n.bindPopup(e),n.on(`click`,e=>{g(`markerClick`,t,e)})}n.addTo(C)})},N=e=>{!e||h.mapType!==`amap`||!h.markers||(T.forEach(e=>e.setMap?.(null)),T=[],h.markers.forEach(t=>{if(!Number.isFinite(t.lat)||!Number.isFinite(t.lng))return;let n=new window.AMap.Marker({position:[t.lat,t.lng],title:t.popup||``});if(t.popup){let r=document.createElement(`span`);r.textContent=t.popup;let i=new window.AMap.InfoWindow({content:r,offset:new window.AMap.Pixel(0,-30)});n.on(`click`,()=>{i.open(e,n.getPosition()),g(`markerClick`,t,null)})}n.setMap(e),T.push(n)}))};return p(()=>h.markers,()=>{C&&(h.mapType===`osm`?M():N(C))},{deep:!0}),p(()=>h.mapType,async(e,t)=>{e!==t&&(k(),y.value=!0,await o(),e===`amap`?await j():await A())}),p([()=>h.center,()=>h.zoom],()=>{C&&(h.mapType===`osm`?C.setView(h.center,h.zoom):(C.setCenter?.(h.center),C.setZoom?.(h.zoom)))},{deep:!0}),c(async()=>{await o(),h.mapType===`amap`?await j():await A()}),l(()=>{D=!0,k()}),(a,o)=>(u(),n(`div`,x,[r(`div`,{ref_key:`mapContainer`,ref:v,class:`map-container`,style:s({height:e.height})},null,4),y.value?(u(),n(`div`,S,[i(f(m),{size:`large`})])):t(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-09a5ef45`]]);export{_ as i,g as n,h as r,C as t};
1
+ import{t as e}from"./export-helper.js";import{createCommentVNode as t,createElementBlock as n,createElementVNode as r,createVNode as i,defineComponent as a,nextTick as o,normalizeStyle as s,onMounted as c,onUnmounted as l,openBlock as u,ref as d,unref as f,watch as p}from"vue";import{NSpin as m}from"naive-ui";const h=[{label:`OpenStreetMap`,value:`osm`},{label:`高德地图`,value:`amap`}],g={height:`400px`,center:[39.9042,116.4074],zoom:10,mapType:`osm`},_={url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© OpenStreetMap contributors`,maxZoom:19,minZoom:1,tileSize:256,detectRetina:!0},v={apiUrl:`https://webapi.amap.com/maps?v=2.0&key=`,note:`高德地图需要API Key,如需使用请申请:https://lbs.amap.com/api/javascript-api/guide/create/`},y=15e3;let b=null,x=null;function S(e){if(!e)return;let t=e.serviceHost?.trim(),n=e.securityJsCode?.trim();if(t&&n)throw Error(`高德地图安全配置只能选择 serviceHost 或 securityJsCode`);if(t){if(!t.endsWith(`/_AMapService`))throw Error(`高德地图 serviceHost 必须以 /_AMapService 结尾`);return{serviceHost:t}}if(n)return{securityJsCode:n};throw Error(`高德地图安全配置不能为空`)}const C=e=>{if(e)return e;if(typeof window>`u`||typeof document>`u`)throw Error(`高德地图 API 只能在浏览器环境加载`);return{clearTimeout:window.clearTimeout.bind(window),document,host:window,setTimeout:window.setTimeout.bind(window)}},w=(e,t,n)=>{let r=e.trim();if(!r)throw Error(`高德地图 API Key 不能为空`);let i=S(t);return{identity:JSON.stringify([r,i]),normalizedKey:r,normalizedSecurityConfig:i,platform:C(n)}};function T(e,t=y,n,r){let i;try{i=w(e,n,r)}catch(e){return Promise.reject(e)}let{identity:a,normalizedKey:o,normalizedSecurityConfig:s}=i,{clearTimeout:c,document:l,host:u,setTimeout:d}=i.platform;return x&&x!==a?Promise.reject(Error(`同一页面不能使用不同的高德地图 Key 或安全配置`)):u.AMap?Promise.resolve(u.AMap):b||(x=a,s&&(u._AMapSecurityConfig={...s}),b=new Promise((e,n)=>{let r=l.querySelector(`script[data-c-map-amap="true"]`),i=r||l.createElement(`script`),a=!1,s=Number.isFinite(t)&&t>0?t:y,f=()=>{c(g),i.removeEventListener(`load`,m),i.removeEventListener(`error`,h)},p=e=>{a||(a=!0,f(),i.remove(),b=null,x=null,n(e))},m=()=>{if(!a){if(!u.AMap){p(Error(`高德地图 API 加载完成但未找到全局对象`));return}a=!0,f(),e(u.AMap)}},h=()=>p(Error(`高德地图 API 加载失败`)),g=d(()=>p(Error(`高德地图 API 加载超时(${s}ms)`)),s);i.addEventListener(`load`,m,{once:!0}),i.addEventListener(`error`,h,{once:!0}),!r&&(i.async=!0,i.dataset.cMapAmap=`true`,i.src=`${v.apiUrl}${encodeURIComponent(o)}`,l.head.appendChild(i))}),b)}function E(e){if(!e||e.length!==2)return!1;let[t,n]=e;return Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}function D(e){return[e[1],e[0]]}function O(e){return e.filter(e=>E([e.lat,e.lng]))}function k(e,t=_.minZoom,n=_.maxZoom){return Number.isFinite(e)?Math.min(Math.max(e,t),n):g.zoom}function A(e={}){let{url:t,...n}={..._,...e};return{url:t,options:n}}const j=[`aria-label`,`aria-busy`],M={key:0,class:`map-loading`,role:`status`,"aria-live":`polite`,"aria-label":`地图加载中`};var N=e(a({name:`C_Map`,__name:`index`,props:{ariaLabel:{default:`地图`},height:{default:g.height},center:{default:()=>[...g.center]},zoom:{default:g.zoom},markers:{default:()=>[]},mapType:{default:g.mapType},amapKey:{default:``},amapSecurityConfig:{},amapLoadTimeout:{default:15e3},amapOptions:{default:()=>({})},tileConfig:{default:()=>({})},zoomControl:{type:Boolean,default:!0},preferCanvas:{type:Boolean,default:!0},fitMarkersOnInit:{type:Boolean,default:!1}},emits:[`ready`,`markerClick`,`error`],setup(e,{expose:a,emit:h}){let g=e,_=h,v=d(),y=d(!0),b=null,x=null,S=[],C=null,w=null,N=[],P=[],F=0,I=!1,L=e=>e instanceof Error?e:Error(String(e)),R=()=>{S.forEach(e=>e.remove()),S=[]},z=()=>{P.forEach(e=>e.close?.()),P=[],N.forEach(e=>e.setMap?.(null)),N=[]},B=()=>{R(),z(),x?.remove(),w?.destroy(),x=null,w=null,v.value?.replaceChildren()},V=()=>{let e=++F;return B(),y.value=!0,e},H=e=>!I&&e===F,U=()=>{if(E(g.center))return g.center;throw Error(`地图中心坐标无效,应使用 [纬度, 经度] 且处于合法范围`)},W=(e,t)=>{H(e)&&(B(),y.value=!1,_(`error`,L(t)))},G=()=>{let e=b,t=x;!t||!e||g.mapType!==`osm`||(R(),O(g.markers).forEach(n=>{let r=e.marker([n.lat,n.lng]);if(n.popup){let e=document.createElement(`span`);e.textContent=n.popup,r.bindPopup(e)}r.on(`click`,e=>{_(`markerClick`,n,e)}),r.addTo(t),S.push(r)}))},K=()=>{let e=C,t=w;!t||!e||g.mapType!==`amap`||(z(),O(g.markers).forEach(n=>{let r=new e.Marker({position:D([n.lat,n.lng]),title:n.title||n.popup||``});if(n.popup){let i=document.createElement(`span`);i.textContent=n.popup;let a=new e.InfoWindow({content:i,offset:new e.Pixel(0,-30)});P.push(a),r.on(`click`,e=>{a.open(t,r.getPosition()),_(`markerClick`,n,e)})}else r.on(`click`,e=>_(`markerClick`,n,e));r.setMap(t),N.push(r)}))},q=()=>x||w,J=()=>{x?.invalidateSize({reset:!0,pan:!1}),w?.resize?.()},Y=(e={})=>{let t=O(g.markers);if(t.length===0)return!1;if(x){let n=t.map(e=>[e.lat,e.lng]);return x.fitBounds(n,{maxZoom:e.maxZoom,padding:e.padding}),!0}if(w&&N.length>0){let[t=0,n=0]=e.padding||[];return w.setFitView?.(N,!1,[n,t,n,t],e.maxZoom),!0}return!1},X=async()=>{if(!v.value)return;let e=V();try{let t=await import(`leaflet`);if(!H(e)||!v.value)return;b=t;let{url:n,options:r}=A(g.tileConfig),i=k(g.zoom,r.minZoom,r.maxZoom);if(x=t.map(v.value,{center:U(),zoom:i,zoomControl:g.zoomControl,preferCanvas:g.preferCanvas}),t.tileLayer(n,r).addTo(x),G(),g.fitMarkersOnInit&&Y(),await o(),requestAnimationFrame(()=>{H(e)&&J()}),!H(e)||!x)return;y.value=!1,_(`ready`,x)}catch(t){W(e,t)}},Z=async()=>{if(!v.value)return;let e=V();try{let t=await T(g.amapKey,g.amapLoadTimeout,g.amapSecurityConfig);if(!H(e)||!v.value)return;C=t,w=new t.Map(v.value,{...g.amapOptions,zoom:k(g.zoom,1,20),center:D(U())}),K(),g.fitMarkersOnInit&&Y(),y.value=!1,_(`ready`,w)}catch(t){W(e,t)}},Q=async()=>{g.mapType===`amap`?await Z():await X()};return p(()=>g.markers,()=>{g.mapType===`osm`?G():K()},{deep:!0}),p([()=>g.mapType,()=>g.amapKey,()=>g.amapSecurityConfig,()=>g.amapLoadTimeout,()=>g.amapOptions,()=>g.tileConfig,()=>g.zoomControl,()=>g.preferCanvas],()=>void Q(),{deep:!0}),p([()=>g.center,()=>g.zoom],()=>{if(!E(g.center)){_(`error`,Error(`地图中心坐标无效,应使用 [纬度, 经度]`));return}x?.setView(g.center,k(g.zoom)),w?.setCenter(D(g.center)),w?.setZoom(k(g.zoom,1,20))},{deep:!0}),c(async()=>{await o(),await Q()}),l(()=>{I=!0,F+=1,B()}),a({fitToMarkers:Y,getMap:q,refresh:J}),(a,o)=>(u(),n(`div`,{class:`c-map`,role:`region`,"aria-label":e.ariaLabel,"aria-busy":y.value},[r(`div`,{ref_key:`mapContainer`,ref:v,class:`map-container`,style:s({height:e.height})},null,4),y.value?(u(),n(`div`,M,[i(f(m),{size:`large`})])):t(`v-if`,!0)],8,j))}}),[[`__scopeId`,`data-v-536a68a9`]]);export{A as a,h as c,k as i,_ as l,O as n,D as o,E as r,g as s,N as t};
package/dist/C_Table.d.ts CHANGED
@@ -4,6 +4,7 @@ import "./public.js";
4
4
  import "./index5.vue.js";
5
5
  import "./useSearchState.js";
6
6
  import "./useDynamicFormState.js";
7
+ import "./mapUtils.js";
7
8
  import "./index18.vue.js";
8
9
  import { $ as applyFormatter, A as EditMode, At as PrintWatermarkOptions, B as TableColumn, C as _default, Ct as RowDragConfig, D as ColumnWithKey, Dt as DynamicRowsOptions, E as ChildSelectionState, Et as useRowDrag, F as RenderFunction, G as TableRowKeyIssue, H as TableInstance, I as RowAction, J as ColumnFormatter, K as UseTableExpandOptions, L as SelectOption, M as NormalTableColumn, Mt as usePrintWatermark, N as PaginationConfig, O as CustomAction, Ot as DynamicRowsReturn, P as ParentChildLinkMode, Q as TableGlobalConfig, R as SimpleTableActions, S as validateTableRowKeys, St as useCrossPageSelection, T as BuiltInTableColumn, Tt as UseRowDragReturn, U as TableProps, V as TableEmits, W as TableRowKey, X as FormatterType, Y as FormatterConfig, Z as TABLE_GLOBAL_CONFIG_KEY, _ as useTableManager, _t as ExportConfig, at as DisplayConfig, b as defineTableColumns, bt as UseCrossPageSelectionOptions, ct as ExpandConfig, dt as TableConfig, et as mergeGlobalConfig, f as useModalEdit, ft as ToolbarConfig, g as useTableExpand, gt as resolveConfig, h as useTableActions, ht as createEditModeChecker, i as useTableQuery, it as CrudBinding, j as MaybeRefLike, jt as printPresets, k as DataRecord, kt as useDynamicRows, lt as SelectionConfig, m as usePagination, mt as VirtualScrollConfig, n as TableQueryResult, nt as BatchActionsConfig, ot as EditConfig, p as useCellEdit, pt as TreeConfig, q as UseTableExpandReturn, r as UseTableQueryOptions, rt as ColumnDragConfig, st as ErrorConfig, t as TableQueryContext, tt as useTableGlobalConfig, ut as SummaryConfig, v as useRowEdit, vt as exportTableData, w as ApiFunction, wt as UseRowDragOptions, x as defineTableConfig, xt as UseCrossPageSelectionReturn, y as useTableColumns, yt as CrossPageSelectionConfig, z as StrictTableColumn } from "./useTableQuery.js";
9
10
  import "./constants5.js";
@@ -124,10 +124,10 @@ declare const __VLS_export: vue.DefineComponent<FormulaEditorProps, FormulaEdito
124
124
  disabled: boolean;
125
125
  placeholder: string;
126
126
  height: string | number;
127
+ showPreview: boolean;
127
128
  variables: FormulaVariable[];
128
129
  functions: FormulaFunction[];
129
130
  sampleData: Record<string, number | string | boolean>;
130
- showPreview: boolean;
131
131
  showKeyboard: boolean;
132
132
  showVariablePanel: boolean;
133
133
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -124,10 +124,10 @@ declare const __VLS_export: vue.DefineComponent<FormulaEditorProps, FormulaEdito
124
124
  disabled: boolean;
125
125
  placeholder: string;
126
126
  height: string | number;
127
+ showPreview: boolean;
127
128
  variables: FormulaVariable[];
128
129
  functions: FormulaFunction[];
129
130
  sampleData: Record<string, number | string | boolean>;
130
- showPreview: boolean;
131
131
  showKeyboard: boolean;
132
132
  showVariablePanel: boolean;
133
133
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -155,8 +155,8 @@ interface NotificationCenterExpose {
155
155
  //#region src/components/C_NotificationCenter/index.vue.d.ts
156
156
  declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, NotificationCenterExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
157
157
  delete: (ids: string[]) => any;
158
- read: (ids: string[]) => any;
159
158
  itemClick: (message: NotificationMessage) => any;
159
+ read: (ids: string[]) => any;
160
160
  allRead: (category?: NotificationCategory | undefined) => any;
161
161
  unreadChange: (count: number) => any;
162
162
  wsStatusChange: (status: string) => any;
@@ -164,16 +164,16 @@ declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, Notific
164
164
  navigate: (url: string) => any;
165
165
  }, string, vue.PublicProps, Readonly<NotificationCenterProps> & Readonly<{
166
166
  onDelete?: ((ids: string[]) => any) | undefined;
167
- onRead?: ((ids: string[]) => any) | undefined;
168
167
  onItemClick?: ((message: NotificationMessage) => any) | undefined;
168
+ onRead?: ((ids: string[]) => any) | undefined;
169
169
  onAllRead?: ((category?: NotificationCategory | undefined) => any) | undefined;
170
170
  onUnreadChange?: ((count: number) => any) | undefined;
171
171
  onWsStatusChange?: ((status: string) => any) | undefined;
172
172
  onNewMessage?: ((message: NotificationMessage) => any) | undefined;
173
173
  onNavigate?: ((url: string) => any) | undefined;
174
174
  }>, {
175
- storageKey: string;
176
175
  pageSize: number;
176
+ storageKey: string;
177
177
  desktopNotification: boolean;
178
178
  maxBadgeCount: number;
179
179
  pollingInterval: number;
@@ -155,8 +155,8 @@ interface NotificationCenterExpose {
155
155
  //#region src/components/C_NotificationCenter/index.vue.d.ts
156
156
  declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, NotificationCenterExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
157
157
  delete: (ids: string[]) => any;
158
- read: (ids: string[]) => any;
159
158
  itemClick: (message: NotificationMessage) => any;
159
+ read: (ids: string[]) => any;
160
160
  allRead: (category?: NotificationCategory | undefined) => any;
161
161
  unreadChange: (count: number) => any;
162
162
  wsStatusChange: (status: string) => any;
@@ -164,16 +164,16 @@ declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, Notific
164
164
  navigate: (url: string) => any;
165
165
  }, string, vue.PublicProps, Readonly<NotificationCenterProps> & Readonly<{
166
166
  onDelete?: ((ids: string[]) => any) | undefined;
167
- onRead?: ((ids: string[]) => any) | undefined;
168
167
  onItemClick?: ((message: NotificationMessage) => any) | undefined;
168
+ onRead?: ((ids: string[]) => any) | undefined;
169
169
  onAllRead?: ((category?: NotificationCategory | undefined) => any) | undefined;
170
170
  onUnreadChange?: ((count: number) => any) | undefined;
171
171
  onWsStatusChange?: ((status: string) => any) | undefined;
172
172
  onNewMessage?: ((message: NotificationMessage) => any) | undefined;
173
173
  onNavigate?: ((url: string) => any) | undefined;
174
174
  }>, {
175
- storageKey: string;
176
175
  pageSize: number;
176
+ storageKey: string;
177
177
  desktopNotification: boolean;
178
178
  maxBadgeCount: number;
179
179
  pollingInterval: number;
@@ -196,27 +196,27 @@ type __VLS_Slots = {} & {
196
196
  area?: (props: typeof __VLS_11) => any;
197
197
  };
198
198
  declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
199
- success: (file: UploadFileItem, response: unknown) => any;
200
199
  change: (fileList: UploadFileItem[]) => any;
201
200
  error: (file: UploadFileItem, error: Error) => any;
202
201
  progress: (file: UploadFileItem, percent: number) => any;
202
+ success: (file: UploadFileItem, response: unknown) => any;
203
203
  remove: (file: UploadFileItem) => any;
204
204
  finish: (fileList: UploadFileItem[]) => any;
205
205
  exceed: (files: File[], fileList: UploadFileItem[]) => any;
206
206
  }, string, vue.PublicProps, Readonly<UploadProps> & Readonly<{
207
- onSuccess?: ((file: UploadFileItem, response: unknown) => any) | undefined;
208
207
  onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
209
208
  onError?: ((file: UploadFileItem, error: Error) => any) | undefined;
210
209
  onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
210
+ onSuccess?: ((file: UploadFileItem, response: unknown) => any) | undefined;
211
211
  onRemove?: ((file: UploadFileItem) => any) | undefined;
212
212
  onFinish?: ((fileList: UploadFileItem[]) => any) | undefined;
213
213
  onExceed?: ((files: File[], fileList: UploadFileItem[]) => any) | undefined;
214
214
  }>, {
215
215
  disabled: boolean;
216
- draggable: boolean;
217
- multiple: boolean;
218
216
  data: Record<string, unknown>;
217
+ multiple: boolean;
219
218
  maxSize: number;
219
+ draggable: boolean;
220
220
  action: string;
221
221
  headers: Record<string, string>;
222
222
  directory: boolean;
@@ -196,27 +196,27 @@ type __VLS_Slots = {} & {
196
196
  area?: (props: typeof __VLS_11) => any;
197
197
  };
198
198
  declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
199
- success: (file: UploadFileItem, response: unknown) => any;
200
199
  change: (fileList: UploadFileItem[]) => any;
201
200
  error: (file: UploadFileItem, error: Error) => any;
202
201
  progress: (file: UploadFileItem, percent: number) => any;
202
+ success: (file: UploadFileItem, response: unknown) => any;
203
203
  remove: (file: UploadFileItem) => any;
204
204
  finish: (fileList: UploadFileItem[]) => any;
205
205
  exceed: (files: File[], fileList: UploadFileItem[]) => any;
206
206
  }, string, vue.PublicProps, Readonly<UploadProps> & Readonly<{
207
- onSuccess?: ((file: UploadFileItem, response: unknown) => any) | undefined;
208
207
  onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
209
208
  onError?: ((file: UploadFileItem, error: Error) => any) | undefined;
210
209
  onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
210
+ onSuccess?: ((file: UploadFileItem, response: unknown) => any) | undefined;
211
211
  onRemove?: ((file: UploadFileItem) => any) | undefined;
212
212
  onFinish?: ((fileList: UploadFileItem[]) => any) | undefined;
213
213
  onExceed?: ((files: File[], fileList: UploadFileItem[]) => any) | undefined;
214
214
  }>, {
215
215
  disabled: boolean;
216
- draggable: boolean;
217
- multiple: boolean;
218
216
  data: Record<string, unknown>;
217
+ multiple: boolean;
219
218
  maxSize: number;
219
+ draggable: boolean;
220
220
  action: string;
221
221
  headers: Record<string, string>;
222
222
  directory: boolean;
@@ -258,9 +258,9 @@ type PlayerInstance = InstanceType<typeof xgplayer.default>;
258
258
  //#endregion
259
259
  //#region src/components/C_VideoPlayer/index.vue.d.ts
260
260
  declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
261
+ ended: () => any;
261
262
  error: (error: Error) => any;
262
263
  ready: () => any;
263
- ended: () => any;
264
264
  stateChange: (state: PlayerState) => any;
265
265
  timeUpdate: (currentTime: number, duration: number) => any;
266
266
  qualityChange: (quality: QualityLevel) => any;
@@ -271,9 +271,9 @@ declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExp
271
271
  chapterChange: (chapter: Chapter) => any;
272
272
  progressUpdate: (data: ProgressData) => any;
273
273
  }, string, vue.PublicProps, Readonly<VideoPlayerProps> & Readonly<{
274
+ onEnded?: (() => any) | undefined;
274
275
  onError?: ((error: Error) => any) | undefined;
275
276
  onReady?: (() => any) | undefined;
276
- onEnded?: (() => any) | undefined;
277
277
  onStateChange?: ((state: PlayerState) => any) | undefined;
278
278
  onTimeUpdate?: ((currentTime: number, duration: number) => any) | undefined;
279
279
  onQualityChange?: ((quality: QualityLevel) => any) | undefined;
@@ -258,9 +258,9 @@ type PlayerInstance = InstanceType<typeof xgplayer.default>;
258
258
  //#endregion
259
259
  //#region src/components/C_VideoPlayer/index.vue.d.ts
260
260
  declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
261
+ ended: () => any;
261
262
  error: (error: Error) => any;
262
263
  ready: () => any;
263
- ended: () => any;
264
264
  stateChange: (state: PlayerState) => any;
265
265
  timeUpdate: (currentTime: number, duration: number) => any;
266
266
  qualityChange: (quality: QualityLevel) => any;
@@ -271,9 +271,9 @@ declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExp
271
271
  chapterChange: (chapter: Chapter) => any;
272
272
  progressUpdate: (data: ProgressData) => any;
273
273
  }, string, vue.PublicProps, Readonly<VideoPlayerProps> & Readonly<{
274
+ onEnded?: (() => any) | undefined;
274
275
  onError?: ((error: Error) => any) | undefined;
275
276
  onReady?: (() => any) | undefined;
276
- onEnded?: (() => any) | undefined;
277
277
  onStateChange?: ((state: PlayerState) => any) | undefined;
278
278
  onTimeUpdate?: ((currentTime: number, duration: number) => any) | undefined;
279
279
  onQualityChange?: ((quality: QualityLevel) => any) | undefined;
Binary file
Binary file
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./chunk.cjs`),t=require(`./config.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./C_Code2.cjs`),i=require(`./C_Upload2.cjs`),a=require(`./C_Barcode2.cjs`),o=require(`./C_Captcha2.cjs`),ee=require(`./C_Cascade2.cjs`),te=require(`./C_Guide2.cjs`),ne=require(`./C_Progress2.cjs`),re=require(`./C_Steps2.cjs`),ie=require(`./C_ActionBar2.cjs`),ae=require(`./C_Theme2.cjs`),oe=require(`./C_Language2.cjs`),se=require(`./C_Date2.cjs`),ce=require(`./C_Editor2.cjs`),le=require(`./C_Markdown2.cjs`),s=require(`./C_Map2.cjs`),ue=require(`./C_City2.cjs`),c=require(`./C_VtableGantt2.cjs`),l=require(`./C_Signature2.cjs`),u=require(`./C_SplitPane2.cjs`),d=require(`./C_CollapsePanel2.cjs`),f=require(`./C_Time2.cjs`),p=require(`./storage.cjs`),m=require(`./C_FormSearch2.cjs`),h=require(`./C_Tree2.cjs`),g=require(`./C_QRCode2.cjs`),_=require(`./C_ImageCropper2.cjs`),v=require(`./C_Draggable2.cjs`),y=require(`./C_WaterFall2.cjs`),b=require(`./C_FullCalendar2.cjs`),x=require(`./C_NotificationCenter2.cjs`),S=require(`./C_Cron2.cjs`),C=require(`./C_FormulaEditor2.cjs`),w=require(`./C_AntV2.cjs`),T=require(`./C_VideoPlayer2.cjs`),E=require(`./C_FilePreview2.cjs`),D=require(`./C_WorkFlow2.cjs`),O=require(`./C_Form2.cjs`),k=require(`./helpers.cjs`),A=require(`./useTableQuery.cjs`),j=require(`./C_GlobalSearch2.cjs`),M=require(`./C_Menu2.cjs`),de=require(`./C_Breadcrumb2.cjs`),N=require(`./C_TagsView2.cjs`),P=require(`./C_AudioPlayer2.cjs`),F=require(`./C_AvatarGroup2.cjs`),I=require(`./C_Chat2.cjs`),L=require(`./C_ContextMenu2.cjs`),R=require(`./C_Login2.cjs`),z=require(`./C_Timeline2.cjs`),B=require(`./C_Transfer2.cjs`),fe=require(`./C_Skeleton2.cjs`),pe=require(`./C_OrgChart2.cjs`);let V=require(`highlight.js/lib/core`);V=e.t(V);let H=require(`highlight.js/lib/languages/javascript`);H=e.t(H);let U=require(`highlight.js/lib/languages/typescript`);U=e.t(U);let W=require(`highlight.js/lib/languages/json`);W=e.t(W);let G=require(`highlight.js/lib/languages/xml`);G=e.t(G);let K=require(`highlight.js/lib/languages/css`);K=e.t(K);let q=require(`highlight.js/lib/languages/bash`);q=e.t(q);let J=require(`highlight.js/lib/languages/yaml`);J=e.t(J);let Y=require(`highlight.js/lib/languages/markdown`);Y=e.t(Y);let X=require(`highlight.js/lib/languages/java`);X=e.t(X);let Z=require(`highlight.js/lib/languages/csharp`);Z=e.t(Z);let me=require(`highlight.js/lib/languages/go`);me=e.t(me);let he=require(`highlight.js/lib/languages/python`);he=e.t(he);const ge={cpp:()=>import(`highlight.js/lib/languages/cpp`),c:()=>import(`highlight.js/lib/languages/c`),php:()=>import(`highlight.js/lib/languages/php`),ruby:()=>import(`highlight.js/lib/languages/ruby`),rust:()=>import(`highlight.js/lib/languages/rust`),swift:()=>import(`highlight.js/lib/languages/swift`),kotlin:()=>import(`highlight.js/lib/languages/kotlin`),scss:()=>import(`highlight.js/lib/languages/scss`),less:()=>import(`highlight.js/lib/languages/less`),sql:()=>import(`highlight.js/lib/languages/sql`),dockerfile:()=>import(`highlight.js/lib/languages/dockerfile`),powershell:()=>import(`highlight.js/lib/languages/powershell`)},_e=new Set,Q=new Map,$=V.default;function ve(e,t){$.registerLanguage(e,t),_e.add(e)}function ye(e){[[`javascript`,H.default],[`typescript`,U.default],[`json`,W.default],[`html`,G.default],[`xml`,G.default],[`css`,K.default],[`bash`,q.default],[`shell`,q.default],[`yaml`,J.default],[`yml`,J.default],[`markdown`,Y.default],[`java`,X.default],[`csharp`,Z.default],[`go`,me.default],[`python`,he.default]].forEach(([e,t])=>{ve(e,t)}),$.configure({ignoreUnescapedHTML:!0,languages:e.autoDetect?void 0:[]}),e.extraLanguages?.length&&be(e.extraLanguages,e)}async function be(e,t={}){let n=e.map(e=>xe(e,t));return(await Promise.allSettled(n)).map((t,n)=>t.status===`fulfilled`&&t.value?e[n]:null).filter(Boolean)}async function xe(e,t={}){let n=e.toLowerCase();if(_e.has(n))return!0;let r=Q.get(n);if(r)return r;let i=ge[n];if(!i)return t.logger?.warn(`[HighlightPlugin] Language '${e}' not supported`),!1;let a=(async()=>{try{return ve(n,(await i()).default),t.debug&&t.logger?.info(`[HighlightPlugin] Language '${n}' loaded successfully`),!0}catch(e){return t.logger?.error(`[HighlightPlugin] Failed to load language '${n}'`,e),t.onError?.(e,{source:`language-loader`,language:n}),!1}finally{Q.delete(n)}})();return Q.set(n,a),a}const Se=(e={})=>({getHljs:()=>$,loadLanguage:t=>xe(t,e),loadLanguages:t=>be(t,e),getLoadedLanguages:()=>Array.from(_e)});function Ce(e,t={}){let n={autoDetect:!1,extraLanguages:[],...t};ye(n),typeof window<`u`&&(window.hljs=$);let r=Se(n);e.provide(`highlightManager`,r),e.config.globalProperties.$highlight=r,n.debug&&n.logger?.info(`[HighlightPlugin] highlight.js plugin installed`)}const we=[r.t,n.t,i.t,a.t,o.t,ee.t,te.t,ne.t,re.t,ie.t,ae.t,oe.t,se.t,ce.t,le.t,s.t,ue.t,c.t,l.t,u.t,d.t,f.t,m.t,h.t,g.t,_.t,v.t,y.t,b.t,x.t,S.t,C.t,w.t,T.t,E.t,D.t,O.t,A.n,j.t,M.t,de.t,N.t,P.t,F.t,I.t,L.t,R.t,z.t,B.t,fe.t,pe.t];var Te={install:(e,n={})=>{we.forEach(t=>{let n=t,r=n.__name||n.name||`UnknownComponent`;e.component(r,t)}),n.highlight!==void 0&&Ce(e,n.highlight),n.feedback&&e.provide(t.t,n.feedback),n.locale&&e.provide(t.n,n.locale),n.form&&e.provide(O.d,n.form),n.table&&e.provide(A.u,n.table)}};exports.ACTION_KEYS=C.i,exports.AVATAR_STATUS_COLOR_MAP=F.r,exports.BUTTON_TEXT=b.r,exports.CATEGORY_MAP=x.a,exports.CATEGORY_TABS=x.o,exports.COMPONENT_FEEDBACK_KEY=t.t,exports.COMPONENT_LOCALE_KEY=t.n,exports.CRON_FIELD_META=S.a,exports.CRON_TEMPLATES=S.o,exports.C_ActionBar=ie.t,exports.C_AntV=w.t,exports.C_AudioPlayer=P.t,exports.C_AvatarGroup=F.t,exports.C_Barcode=a.t,exports.C_Breadcrumb=de.t,exports.C_Captcha=o.t,exports.C_Cascade=ee.t,exports.C_Chat=I.t,exports.C_City=ue.t,exports.C_Code=r.t,exports.C_CollapsePanel=d.t,exports.C_ContextMenu=L.t,exports.C_Cron=S.t,exports.C_Date=se.t,exports.C_Draggable=v.t,exports.C_Editor=ce.t,exports.C_FilePreview=E.t,exports.C_Form=O.t,exports.C_FormSearch=m.t,exports.C_FormulaEditor=C.t,exports.C_FullCalendar=b.t,exports.C_GlobalSearch=j.t,exports.C_Guide=te.t,exports.C_Icon=n.t,exports.C_ImageCropper=_.t,exports.C_Language=oe.t,exports.C_Login=R.t,exports.C_Map=s.t,exports.C_Markdown=le.t,exports.C_Menu=M.t,exports.C_NotificationCenter=x.t,exports.C_OrgChart=pe.t,exports.C_Progress=ne.t,exports.C_QRCode=g.t,exports.C_Signature=l.t,exports.C_Skeleton=fe.t,exports.C_SplitPane=u.t,exports.C_Steps=re.t,exports.C_Table=A.n,exports.C_TagsView=N.t,exports.C_Theme=ae.t,exports.C_Time=f.t,exports.C_Timeline=z.t,exports.C_Transfer=B.t,exports.C_Tree=h.t,exports.C_Upload=i.t,exports.C_VideoPlayer=T.t,exports.C_VtableGantt=c.t,exports.C_WaterFall=y.t,exports.C_WorkFlow=D.t,exports.CaptchaVerificationError=o.n,exports.DEFAULT_ANIMATION_DURATION=y.a,exports.DEFAULT_AUDIO_PLAYER_PROPS=P.n,exports.DEFAULT_AVATAR_GROUP_PROPS=F.n,exports.DEFAULT_BREAKPOINTS=y.o,exports.DEFAULT_CHAT_PROPS=I.n,exports.DEFAULT_CONTEXT_MENU_PROPS=L.n,exports.DEFAULT_CRON_EXPRESSION=S.s,exports.DEFAULT_CRON_VALUE=S.c,exports.DEFAULT_EDIT_FORM=b.i,exports.DEFAULT_FEATURES=R.n,exports.DEFAULT_FIELD_VALUE=S.l,exports.DEFAULT_FUNCTIONS=C.a,exports.DEFAULT_GAP=y.s,exports.DEFAULT_HEARTBEAT_INTERVAL=T.c,exports.DEFAULT_MAP_CONFIG=s.n,exports.DEFAULT_MAX_BADGE_COUNT=x.s,exports.DEFAULT_PAGE_SIZE=x.c,exports.DEFAULT_PLAYBACK_RATE=T.l,exports.DEFAULT_PLAYBACK_RATES=T.u,exports.DEFAULT_POLLING_INTERVAL=x.l,exports.DEFAULT_SKELETON_COUNT=y.c,exports.DEFAULT_SOCIAL_PROVIDERS=R.r,exports.DEFAULT_STORAGE_KEY=x.u,exports.DEFAULT_TIMELINE_PROPS=z.n,exports.DEFAULT_TRANSFER_PROPS=B.n,exports.DEFAULT_VOLUME=T.d,exports.DEFAULT_WS_HEARTBEAT_INTERVAL=x.d,exports.DEFAULT_WS_HEARTBEAT_MESSAGE=x.f,exports.DEFAULT_WS_MAX_RECONNECT=x.p,exports.DEFAULT_WS_RECONNECT_INTERVAL=x.m,exports.DYNAMIC_FORM_STATE_KEY=O.n,exports.EVENT_COLORS=b.a,exports.FIELD_TYPE_OPTIONS=O.r,exports.FORM_DEFAULTS=O.u,exports.FORM_GLOBAL_CONFIG_KEY=O.d,exports.HEADER_TOOLBAR=b.o,exports.INFINITE_SCROLL_THRESHOLD=y.l,exports.KEYBOARD_SHORTCUTS=T.f,exports.LAYOUTS_WITH_OWN_CONTROLS=O.f,exports.MAP_TYPES=s.r,exports.MOCK_MESSAGES=x.h,exports.MODE_ICON_MAP=P.r,exports.MONTH_LABELS=S.u,exports.NUMBER_KEYS=C.o,exports.OPERATORS=C.s,exports.OPERATOR_KEYS=C.c,exports.OSM_TILE_CONFIG=s.i,exports.PRIORITY_MAP=x.g,exports.PROGRESS_THROTTLE_INTERVAL=T.p,exports.QUALITY_LABEL_MAP=T.m,exports.SEEK_STEP=T.h,exports.SKELETON_HEIGHT_RANGE=y.u,exports.SOURCE_TYPE_MAP=T.g,exports.SPACED_OPERATORS=C.l,exports.STORAGE_KEYS=T._,exports.STORAGE_PREFIX=T.v,exports.TABLE_GLOBAL_CONFIG_KEY=A.u,exports.TIMELINE_STATUS_COLOR_MAP=z.r,exports.VOLUME_STEP=T.y,exports.WATERMARK_DEFAULT_STYLE=T.b,exports.WEEK_LABELS=S.d,exports.XGPLAYER_EVENTS=T.x,exports.applyFormatter=A.d,exports.createCaptchaProof=o.r,exports.createEditModeChecker=A.w,exports.createMenuOptions=M.n,exports.default=Te,exports.defineFormConfig=k.t,exports.defineFormOptions=k.n,exports.defineTableColumns=A.r,exports.defineTableConfig=A.i,exports.exportTableData=A.o,exports.flattenRoutes=M.r,exports.formatFileSize=i.s,exports.formatTime=P.i,exports.ganttPresetConfigs=c.n,exports.getFileIcon=i.c,exports.getInitials=F.i,exports.getItem=p.t,exports.mergeFormConfig=O.p,exports.mergeGlobalConfig=A.f,exports.nameToColor=F.a,exports.printPresets=A.v,exports.registerRenderer=O.a,exports.removeAllItem=p.n,exports.removeItem=p.r,exports.resolveConfig=A.T,exports.resolveFormConfig=O.m,exports.setItem=p.i,exports.setupHighlight=Ce,exports.shouldShowActions=O.h,exports.treePresetConfigs=h.r,exports.unregisterRenderer=O.o,exports.useBookmarks=T.r,exports.useCForm=k.r,exports.useCalendarEvents=b.n,exports.useCellEdit=A.S,exports.useChapters=T.i,exports.useChunkUpload=i.a,exports.useCollapsePanel=d.n,exports.useComponentFeedback=t.r,exports.useComponentLocale=t.i,exports.useCronDescription=S.n,exports.useCronParser=S.i,exports.useCronPreview=S.r,exports.useCropperCore=_.n,exports.useCrossPageSelection=A.s,exports.useDragDrop=i.n,exports.useDraggableLayout=v.n,exports.useDynamicFormState=O.i,exports.useDynamicRows=A._,exports.useEdgeInteraction=w.n,exports.useFileHash=i.o,exports.useFilePreview=E.r,exports.useFormDirty=O.l,exports.useFormGlobalConfig=O.g,exports.useFormRenderer=O.s,exports.useFormState=O.c,exports.useFormulaEvaluator=C.n,exports.useFormulaParser=C.r,exports.useFullscreen=E.n,exports.useGlobalSearch=j.n,exports.useGraphBase=w.i,exports.useGraphExport=w.r,exports.useHighlight=Se,exports.useInfiniteScroll=y.n,exports.useModalEdit=A.x,exports.useNotificationCore=x.r,exports.useNotificationFormat=x.n,exports.useNotificationWS=x.i,exports.usePagination=A.h,exports.usePlaybackControl=T.o,exports.usePlayerCore=T.s,exports.usePrintWatermark=A.y,exports.useProgressTracker=T.a,exports.useQRCode=g.n,exports.useResponsiveColumns=y.i,exports.useRowDrag=A.c,exports.useRowEdit=A.C,exports.useSearchHistory=m.r,exports.useSearchState=m.n,exports.useSignatureCanvas=l.i,exports.useSignatureExport=l.n,exports.useSignatureHistory=l.r,exports.useSplitResize=u.n,exports.useSubtitle=T.n,exports.useTableActions=A.m,exports.useTableColumns=A.l,exports.useTableExpand=A.b,exports.useTableGlobalConfig=A.p,exports.useTableManager=A.g,exports.useTableQuery=A.t,exports.useTagsView=N.n,exports.useTimeSelection=f.n,exports.useTreeOperations=h.n,exports.useUploadCore=i.r,exports.useUploadQueue=i.i,exports.useWaterFallLayout=y.r,exports.useWorkflowNodes=D.i,exports.useWorkflowPreview=D.n,exports.useWorkflowValidation=D.r,exports.validateTableRowKeys=A.a,exports.verifyCaptchaProof=o.i;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./chunk.cjs`),t=require(`./config.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./C_Code2.cjs`),i=require(`./C_Upload2.cjs`),a=require(`./C_Barcode2.cjs`),o=require(`./C_Captcha2.cjs`),ee=require(`./C_Cascade2.cjs`),te=require(`./C_Guide2.cjs`),ne=require(`./C_Progress2.cjs`),re=require(`./C_Steps2.cjs`),ie=require(`./C_ActionBar2.cjs`),ae=require(`./C_Theme2.cjs`),oe=require(`./C_Language2.cjs`),se=require(`./C_Date2.cjs`),ce=require(`./C_Editor2.cjs`),le=require(`./C_Markdown2.cjs`),s=require(`./C_Map2.cjs`),ue=require(`./C_City2.cjs`),c=require(`./C_VtableGantt2.cjs`),l=require(`./C_Signature2.cjs`),u=require(`./C_SplitPane2.cjs`),d=require(`./C_CollapsePanel2.cjs`),f=require(`./C_Time2.cjs`),p=require(`./storage.cjs`),m=require(`./C_FormSearch2.cjs`),h=require(`./C_Tree2.cjs`),g=require(`./C_QRCode2.cjs`),_=require(`./C_ImageCropper2.cjs`),v=require(`./C_Draggable2.cjs`),y=require(`./C_WaterFall2.cjs`),b=require(`./C_FullCalendar2.cjs`),x=require(`./C_NotificationCenter2.cjs`),S=require(`./C_Cron2.cjs`),C=require(`./C_FormulaEditor2.cjs`),w=require(`./C_AntV2.cjs`),T=require(`./C_VideoPlayer2.cjs`),E=require(`./C_FilePreview2.cjs`),D=require(`./C_WorkFlow2.cjs`),O=require(`./C_Form2.cjs`),k=require(`./helpers.cjs`),A=require(`./useTableQuery.cjs`),j=require(`./C_GlobalSearch2.cjs`),M=require(`./C_Menu2.cjs`),de=require(`./C_Breadcrumb2.cjs`),N=require(`./C_TagsView2.cjs`),P=require(`./C_AudioPlayer2.cjs`),F=require(`./C_AvatarGroup2.cjs`),I=require(`./C_Chat2.cjs`),L=require(`./C_ContextMenu2.cjs`),R=require(`./C_Login2.cjs`),z=require(`./C_Timeline2.cjs`),B=require(`./C_Transfer2.cjs`),fe=require(`./C_Skeleton2.cjs`),pe=require(`./C_OrgChart2.cjs`);let V=require(`highlight.js/lib/core`);V=e.t(V);let H=require(`highlight.js/lib/languages/javascript`);H=e.t(H);let U=require(`highlight.js/lib/languages/typescript`);U=e.t(U);let W=require(`highlight.js/lib/languages/json`);W=e.t(W);let G=require(`highlight.js/lib/languages/xml`);G=e.t(G);let K=require(`highlight.js/lib/languages/css`);K=e.t(K);let q=require(`highlight.js/lib/languages/bash`);q=e.t(q);let J=require(`highlight.js/lib/languages/yaml`);J=e.t(J);let Y=require(`highlight.js/lib/languages/markdown`);Y=e.t(Y);let X=require(`highlight.js/lib/languages/java`);X=e.t(X);let Z=require(`highlight.js/lib/languages/csharp`);Z=e.t(Z);let me=require(`highlight.js/lib/languages/go`);me=e.t(me);let he=require(`highlight.js/lib/languages/python`);he=e.t(he);const ge={cpp:()=>import(`highlight.js/lib/languages/cpp`),c:()=>import(`highlight.js/lib/languages/c`),php:()=>import(`highlight.js/lib/languages/php`),ruby:()=>import(`highlight.js/lib/languages/ruby`),rust:()=>import(`highlight.js/lib/languages/rust`),swift:()=>import(`highlight.js/lib/languages/swift`),kotlin:()=>import(`highlight.js/lib/languages/kotlin`),scss:()=>import(`highlight.js/lib/languages/scss`),less:()=>import(`highlight.js/lib/languages/less`),sql:()=>import(`highlight.js/lib/languages/sql`),dockerfile:()=>import(`highlight.js/lib/languages/dockerfile`),powershell:()=>import(`highlight.js/lib/languages/powershell`)},_e=new Set,Q=new Map,$=V.default;function ve(e,t){$.registerLanguage(e,t),_e.add(e)}function ye(e){[[`javascript`,H.default],[`typescript`,U.default],[`json`,W.default],[`html`,G.default],[`xml`,G.default],[`css`,K.default],[`bash`,q.default],[`shell`,q.default],[`yaml`,J.default],[`yml`,J.default],[`markdown`,Y.default],[`java`,X.default],[`csharp`,Z.default],[`go`,me.default],[`python`,he.default]].forEach(([e,t])=>{ve(e,t)}),$.configure({ignoreUnescapedHTML:!0,languages:e.autoDetect?void 0:[]}),e.extraLanguages?.length&&be(e.extraLanguages,e)}async function be(e,t={}){let n=e.map(e=>xe(e,t));return(await Promise.allSettled(n)).map((t,n)=>t.status===`fulfilled`&&t.value?e[n]:null).filter(Boolean)}async function xe(e,t={}){let n=e.toLowerCase();if(_e.has(n))return!0;let r=Q.get(n);if(r)return r;let i=ge[n];if(!i)return t.logger?.warn(`[HighlightPlugin] Language '${e}' not supported`),!1;let a=(async()=>{try{return ve(n,(await i()).default),t.debug&&t.logger?.info(`[HighlightPlugin] Language '${n}' loaded successfully`),!0}catch(e){return t.logger?.error(`[HighlightPlugin] Failed to load language '${n}'`,e),t.onError?.(e,{source:`language-loader`,language:n}),!1}finally{Q.delete(n)}})();return Q.set(n,a),a}const Se=(e={})=>({getHljs:()=>$,loadLanguage:t=>xe(t,e),loadLanguages:t=>be(t,e),getLoadedLanguages:()=>Array.from(_e)});function Ce(e,t={}){let n={autoDetect:!1,extraLanguages:[],...t};ye(n),typeof window<`u`&&(window.hljs=$);let r=Se(n);e.provide(`highlightManager`,r),e.config.globalProperties.$highlight=r,n.debug&&n.logger?.info(`[HighlightPlugin] highlight.js plugin installed`)}const we=[r.t,n.t,i.t,a.t,o.t,ee.t,te.t,ne.t,re.t,ie.t,ae.t,oe.t,se.t,ce.t,le.t,s.t,ue.t,c.t,l.t,u.t,d.t,f.t,m.t,h.t,g.t,_.t,v.t,y.t,b.t,x.t,S.t,C.t,w.t,T.t,E.t,D.t,O.t,A.n,j.t,M.t,de.t,N.t,P.t,F.t,I.t,L.t,R.t,z.t,B.t,fe.t,pe.t];var Te={install:(e,n={})=>{we.forEach(t=>{let n=t,r=n.__name||n.name||`UnknownComponent`;e.component(r,t)}),n.highlight!==void 0&&Ce(e,n.highlight),n.feedback&&e.provide(t.t,n.feedback),n.locale&&e.provide(t.n,n.locale),n.form&&e.provide(O.d,n.form),n.table&&e.provide(A.u,n.table)}};exports.ACTION_KEYS=C.i,exports.AVATAR_STATUS_COLOR_MAP=F.r,exports.BUTTON_TEXT=b.r,exports.CATEGORY_MAP=x.a,exports.CATEGORY_TABS=x.o,exports.COMPONENT_FEEDBACK_KEY=t.t,exports.COMPONENT_LOCALE_KEY=t.n,exports.CRON_FIELD_META=S.a,exports.CRON_TEMPLATES=S.o,exports.C_ActionBar=ie.t,exports.C_AntV=w.t,exports.C_AudioPlayer=P.t,exports.C_AvatarGroup=F.t,exports.C_Barcode=a.t,exports.C_Breadcrumb=de.t,exports.C_Captcha=o.t,exports.C_Cascade=ee.t,exports.C_Chat=I.t,exports.C_City=ue.t,exports.C_Code=r.t,exports.C_CollapsePanel=d.t,exports.C_ContextMenu=L.t,exports.C_Cron=S.t,exports.C_Date=se.t,exports.C_Draggable=v.t,exports.C_Editor=ce.t,exports.C_FilePreview=E.t,exports.C_Form=O.t,exports.C_FormSearch=m.t,exports.C_FormulaEditor=C.t,exports.C_FullCalendar=b.t,exports.C_GlobalSearch=j.t,exports.C_Guide=te.t,exports.C_Icon=n.t,exports.C_ImageCropper=_.t,exports.C_Language=oe.t,exports.C_Login=R.t,exports.C_Map=s.t,exports.C_Markdown=le.t,exports.C_Menu=M.t,exports.C_NotificationCenter=x.t,exports.C_OrgChart=pe.t,exports.C_Progress=ne.t,exports.C_QRCode=g.t,exports.C_Signature=l.t,exports.C_Skeleton=fe.t,exports.C_SplitPane=u.t,exports.C_Steps=re.t,exports.C_Table=A.n,exports.C_TagsView=N.t,exports.C_Theme=ae.t,exports.C_Time=f.t,exports.C_Timeline=z.t,exports.C_Transfer=B.t,exports.C_Tree=h.t,exports.C_Upload=i.t,exports.C_VideoPlayer=T.t,exports.C_VtableGantt=c.t,exports.C_WaterFall=y.t,exports.C_WorkFlow=D.t,exports.CaptchaVerificationError=o.n,exports.DEFAULT_ANIMATION_DURATION=y.a,exports.DEFAULT_AUDIO_PLAYER_PROPS=P.n,exports.DEFAULT_AVATAR_GROUP_PROPS=F.n,exports.DEFAULT_BREAKPOINTS=y.o,exports.DEFAULT_CHAT_PROPS=I.n,exports.DEFAULT_CONTEXT_MENU_PROPS=L.n,exports.DEFAULT_CRON_EXPRESSION=S.s,exports.DEFAULT_CRON_VALUE=S.c,exports.DEFAULT_EDIT_FORM=b.i,exports.DEFAULT_FEATURES=R.n,exports.DEFAULT_FIELD_VALUE=S.l,exports.DEFAULT_FUNCTIONS=C.a,exports.DEFAULT_GAP=y.s,exports.DEFAULT_HEARTBEAT_INTERVAL=T.c,exports.DEFAULT_MAP_CONFIG=s.s,exports.DEFAULT_MAX_BADGE_COUNT=x.s,exports.DEFAULT_PAGE_SIZE=x.c,exports.DEFAULT_PLAYBACK_RATE=T.l,exports.DEFAULT_PLAYBACK_RATES=T.u,exports.DEFAULT_POLLING_INTERVAL=x.l,exports.DEFAULT_SKELETON_COUNT=y.c,exports.DEFAULT_SOCIAL_PROVIDERS=R.r,exports.DEFAULT_STORAGE_KEY=x.u,exports.DEFAULT_TIMELINE_PROPS=z.n,exports.DEFAULT_TRANSFER_PROPS=B.n,exports.DEFAULT_VOLUME=T.d,exports.DEFAULT_WS_HEARTBEAT_INTERVAL=x.d,exports.DEFAULT_WS_HEARTBEAT_MESSAGE=x.f,exports.DEFAULT_WS_MAX_RECONNECT=x.p,exports.DEFAULT_WS_RECONNECT_INTERVAL=x.m,exports.DYNAMIC_FORM_STATE_KEY=O.n,exports.EVENT_COLORS=b.a,exports.FIELD_TYPE_OPTIONS=O.r,exports.FORM_DEFAULTS=O.u,exports.FORM_GLOBAL_CONFIG_KEY=O.d,exports.HEADER_TOOLBAR=b.o,exports.INFINITE_SCROLL_THRESHOLD=y.l,exports.KEYBOARD_SHORTCUTS=T.f,exports.LAYOUTS_WITH_OWN_CONTROLS=O.f,exports.MAP_TYPES=s.c,exports.MOCK_MESSAGES=x.h,exports.MODE_ICON_MAP=P.r,exports.MONTH_LABELS=S.u,exports.NUMBER_KEYS=C.o,exports.OPERATORS=C.s,exports.OPERATOR_KEYS=C.c,exports.OSM_TILE_CONFIG=s.l,exports.PRIORITY_MAP=x.g,exports.PROGRESS_THROTTLE_INTERVAL=T.p,exports.QUALITY_LABEL_MAP=T.m,exports.SEEK_STEP=T.h,exports.SKELETON_HEIGHT_RANGE=y.u,exports.SOURCE_TYPE_MAP=T.g,exports.SPACED_OPERATORS=C.l,exports.STORAGE_KEYS=T._,exports.STORAGE_PREFIX=T.v,exports.TABLE_GLOBAL_CONFIG_KEY=A.u,exports.TIMELINE_STATUS_COLOR_MAP=z.r,exports.VOLUME_STEP=T.y,exports.WATERMARK_DEFAULT_STYLE=T.b,exports.WEEK_LABELS=S.d,exports.XGPLAYER_EVENTS=T.x,exports.applyFormatter=A.d,exports.createCaptchaProof=o.r,exports.createEditModeChecker=A.w,exports.createMenuOptions=M.n,exports.default=Te,exports.defineFormConfig=k.t,exports.defineFormOptions=k.n,exports.defineTableColumns=A.r,exports.defineTableConfig=A.i,exports.exportTableData=A.o,exports.flattenRoutes=M.r,exports.formatFileSize=i.s,exports.formatTime=P.i,exports.ganttPresetConfigs=c.n,exports.getFileIcon=i.c,exports.getInitials=F.i,exports.getItem=p.t,exports.getValidMapMarkers=s.n,exports.isValidMapCoordinate=s.r,exports.mergeFormConfig=O.p,exports.mergeGlobalConfig=A.f,exports.nameToColor=F.a,exports.normalizeMapZoom=s.i,exports.printPresets=A.v,exports.registerRenderer=O.a,exports.removeAllItem=p.n,exports.removeItem=p.r,exports.resolveConfig=A.T,exports.resolveFormConfig=O.m,exports.resolveTileConfig=s.a,exports.setItem=p.i,exports.setupHighlight=Ce,exports.shouldShowActions=O.h,exports.toAMapPosition=s.o,exports.treePresetConfigs=h.r,exports.unregisterRenderer=O.o,exports.useBookmarks=T.r,exports.useCForm=k.r,exports.useCalendarEvents=b.n,exports.useCellEdit=A.S,exports.useChapters=T.i,exports.useChunkUpload=i.a,exports.useCollapsePanel=d.n,exports.useComponentFeedback=t.r,exports.useComponentLocale=t.i,exports.useCronDescription=S.n,exports.useCronParser=S.i,exports.useCronPreview=S.r,exports.useCropperCore=_.n,exports.useCrossPageSelection=A.s,exports.useDragDrop=i.n,exports.useDraggableLayout=v.n,exports.useDynamicFormState=O.i,exports.useDynamicRows=A._,exports.useEdgeInteraction=w.n,exports.useFileHash=i.o,exports.useFilePreview=E.r,exports.useFormDirty=O.l,exports.useFormGlobalConfig=O.g,exports.useFormRenderer=O.s,exports.useFormState=O.c,exports.useFormulaEvaluator=C.n,exports.useFormulaParser=C.r,exports.useFullscreen=E.n,exports.useGlobalSearch=j.n,exports.useGraphBase=w.i,exports.useGraphExport=w.r,exports.useHighlight=Se,exports.useInfiniteScroll=y.n,exports.useModalEdit=A.x,exports.useNotificationCore=x.r,exports.useNotificationFormat=x.n,exports.useNotificationWS=x.i,exports.usePagination=A.h,exports.usePlaybackControl=T.o,exports.usePlayerCore=T.s,exports.usePrintWatermark=A.y,exports.useProgressTracker=T.a,exports.useQRCode=g.n,exports.useResponsiveColumns=y.i,exports.useRowDrag=A.c,exports.useRowEdit=A.C,exports.useSearchHistory=m.r,exports.useSearchState=m.n,exports.useSignatureCanvas=l.i,exports.useSignatureExport=l.n,exports.useSignatureHistory=l.r,exports.useSplitResize=u.n,exports.useSubtitle=T.n,exports.useTableActions=A.m,exports.useTableColumns=A.l,exports.useTableExpand=A.b,exports.useTableGlobalConfig=A.p,exports.useTableManager=A.g,exports.useTableQuery=A.t,exports.useTagsView=N.n,exports.useTimeSelection=f.n,exports.useTreeOperations=h.n,exports.useUploadCore=i.r,exports.useUploadQueue=i.i,exports.useWaterFallLayout=y.r,exports.useWorkflowNodes=D.i,exports.useWorkflowPreview=D.n,exports.useWorkflowValidation=D.r,exports.validateTableRowKeys=A.a,exports.verifyCaptchaProof=o.i;