my-openlayer 2.4.6 → 2.4.8
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/CHANGELOG.md +101 -0
- package/MyOl.js +1 -1
- package/core/Point.js +10 -2
- package/docs/.vitepress/cache/deps/@theme_index.js +275 -0
- package/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
- package/docs/.vitepress/cache/deps/_metadata.json +40 -0
- package/docs/.vitepress/cache/deps/chunk-LW4I4DCF.js +12542 -0
- package/docs/.vitepress/cache/deps/chunk-LW4I4DCF.js.map +7 -0
- package/docs/.vitepress/cache/deps/chunk-Z5QSWKN2.js +9719 -0
- package/docs/.vitepress/cache/deps/chunk-Z5QSWKN2.js.map +7 -0
- package/docs/.vitepress/cache/deps/package.json +3 -0
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4505 -0
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +583 -0
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/docs/.vitepress/cache/deps/vue.js +343 -0
- package/docs/.vitepress/cache/deps/vue.js.map +7 -0
- package/docs/.vitepress/config.mts +57 -0
- package/docs/ConfigManager.md +57 -26
- package/docs/ErrorHandler.md +88 -27
- package/docs/EventManager.md +120 -30
- package/docs/Line.md +153 -18
- package/docs/MapBaseLayers.md +171 -21
- package/docs/MapTools.md +139 -15
- package/docs/MeasureHandler.md +71 -31
- package/docs/MyOl.md +220 -35
- package/docs/Point.md +141 -34
- package/docs/Polygon.md +204 -28
- package/docs/RiverLayerManager.md +156 -28
- package/docs/SelectHandler.md +110 -89
- package/docs/ValidationUtils.md +65 -20
- package/docs/VueTemplatePoint.md +155 -26
- package/docs/index.md +78 -0
- package/package.json +7 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,106 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.4.8] - 2026-01-30
|
|
4
|
+
|
|
5
|
+
### ✨ Features
|
|
6
|
+
|
|
7
|
+
- **SelectHandler:** 重构选择交互以支持独立样式渲染和多选隔离
|
|
8
|
+
- 重构Polygon样式处理并添加示例组件
|
|
9
|
+
- **core:** 添加基于GeoJSON数据的地图定位功能
|
|
10
|
+
- **core:** 添加地图定位功能并重构点位相关方法
|
|
11
|
+
- **Point:** 添加闪烁点功能及示例
|
|
12
|
+
- **core:** 为Polygon添加layerName选项并调整图层添加逻辑
|
|
13
|
+
- **Point:** 添加setOneVisibleByProp方法控制点显示
|
|
14
|
+
- **Polygon:** 优化遮罩功能支持多几何图形处理
|
|
15
|
+
- **测量工具:** 添加测量距离和面积功能及工具栏样式
|
|
16
|
+
- **地图:** 添加自定义投影配置支持
|
|
17
|
+
- **日志管理:** 实现统一日志开关与级别控制
|
|
18
|
+
- **SelectHandler:** 新增要素选择处理器模块
|
|
19
|
+
- upgrade OpenLayers to v10.6.1 and update project to v2.0.0
|
|
20
|
+
- update MapBaseLayers to handle optional token and improve annotation layer management
|
|
21
|
+
- 重新添加已清理的App.vue文件,移除了所有敏感token信息
|
|
22
|
+
- 重构Vue模板点位功能并优化事件管理
|
|
23
|
+
- **Polygon:** 改进图像图层处理逻辑并添加更新功能
|
|
24
|
+
- 添加验证工具类并重构现有验证逻辑
|
|
25
|
+
- **地图工具:** 重构地图工具类并增强错误处理
|
|
26
|
+
- 重构类型系统并增强核心功能
|
|
27
|
+
|
|
28
|
+
### 🐛 Bug Fixes
|
|
29
|
+
|
|
30
|
+
- **core:** 改进Vue依赖检测逻辑并更新版本号
|
|
31
|
+
- **VueTemplatePoint:** 修复Vue3环境下pointData的类型定义
|
|
32
|
+
- **core:** 修正Line类中layerName属性设置错误
|
|
33
|
+
- resolve TypeScript build error in MapBaseLayers.ts
|
|
34
|
+
|
|
35
|
+
### ⚡ Performance
|
|
36
|
+
|
|
37
|
+
- **Polygon:** 优化GeoJSON解析性能,直接注入layerName
|
|
38
|
+
|
|
39
|
+
### ♻️ Refactor
|
|
40
|
+
|
|
41
|
+
- **MapBaseLayers:** 重构图层管理逻辑,优化代码结构和可维护性
|
|
42
|
+
- **ConfigManager:** 集中管理默认配置并移除无用接口
|
|
43
|
+
- **样式处理:** 统一处理自定义样式逻辑并修复代码格式
|
|
44
|
+
- 将nameKey重命名为textKey以提高语义清晰度
|
|
45
|
+
- 更新依赖项并优化类型导出结构
|
|
46
|
+
- **core:** 重构DomPoint和MapBaseLayers类,优化代码结构和功能
|
|
47
|
+
|
|
48
|
+
### 📝 Documentation
|
|
49
|
+
|
|
50
|
+
- add vitepress documentation and github actions workflow
|
|
51
|
+
- 添加详细模块文档并更新发布配置
|
|
52
|
+
- update README with branch strategy and add migration guide
|
|
53
|
+
|
|
54
|
+
## [2.4.7] - 2026-01-30
|
|
55
|
+
|
|
56
|
+
### ✨ Features
|
|
57
|
+
|
|
58
|
+
- **SelectHandler:** 重构选择交互以支持独立样式渲染和多选隔离
|
|
59
|
+
- 重构Polygon样式处理并添加示例组件
|
|
60
|
+
- **core:** 添加基于GeoJSON数据的地图定位功能
|
|
61
|
+
- **core:** 添加地图定位功能并重构点位相关方法
|
|
62
|
+
- **Point:** 添加闪烁点功能及示例
|
|
63
|
+
- **core:** 为Polygon添加layerName选项并调整图层添加逻辑
|
|
64
|
+
- **Point:** 添加setOneVisibleByProp方法控制点显示
|
|
65
|
+
- **Polygon:** 优化遮罩功能支持多几何图形处理
|
|
66
|
+
- **测量工具:** 添加测量距离和面积功能及工具栏样式
|
|
67
|
+
- **地图:** 添加自定义投影配置支持
|
|
68
|
+
- **日志管理:** 实现统一日志开关与级别控制
|
|
69
|
+
- **SelectHandler:** 新增要素选择处理器模块
|
|
70
|
+
- upgrade OpenLayers to v10.6.1 and update project to v2.0.0
|
|
71
|
+
- update MapBaseLayers to handle optional token and improve annotation layer management
|
|
72
|
+
- 重新添加已清理的App.vue文件,移除了所有敏感token信息
|
|
73
|
+
- 重构Vue模板点位功能并优化事件管理
|
|
74
|
+
- **Polygon:** 改进图像图层处理逻辑并添加更新功能
|
|
75
|
+
- 添加验证工具类并重构现有验证逻辑
|
|
76
|
+
- **地图工具:** 重构地图工具类并增强错误处理
|
|
77
|
+
- 重构类型系统并增强核心功能
|
|
78
|
+
|
|
79
|
+
### 🐛 Bug Fixes
|
|
80
|
+
|
|
81
|
+
- **core:** 改进Vue依赖检测逻辑并更新版本号
|
|
82
|
+
- **VueTemplatePoint:** 修复Vue3环境下pointData的类型定义
|
|
83
|
+
- **core:** 修正Line类中layerName属性设置错误
|
|
84
|
+
- resolve TypeScript build error in MapBaseLayers.ts
|
|
85
|
+
|
|
86
|
+
### ⚡ Performance
|
|
87
|
+
|
|
88
|
+
- **Polygon:** 优化GeoJSON解析性能,直接注入layerName
|
|
89
|
+
|
|
90
|
+
### ♻️ Refactor
|
|
91
|
+
|
|
92
|
+
- **MapBaseLayers:** 重构图层管理逻辑,优化代码结构和可维护性
|
|
93
|
+
- **ConfigManager:** 集中管理默认配置并移除无用接口
|
|
94
|
+
- **样式处理:** 统一处理自定义样式逻辑并修复代码格式
|
|
95
|
+
- 将nameKey重命名为textKey以提高语义清晰度
|
|
96
|
+
- 更新依赖项并优化类型导出结构
|
|
97
|
+
- **core:** 重构DomPoint和MapBaseLayers类,优化代码结构和功能
|
|
98
|
+
|
|
99
|
+
### 📝 Documentation
|
|
100
|
+
|
|
101
|
+
- 添加详细模块文档并更新发布配置
|
|
102
|
+
- update README with branch strategy and add migration guide
|
|
103
|
+
|
|
3
104
|
## [2.4.6] - 2026-01-30
|
|
4
105
|
|
|
5
106
|
### ✨ Features
|
package/MyOl.js
CHANGED
|
@@ -333,7 +333,7 @@ class MyOl {
|
|
|
333
333
|
if (latitude < -90 || latitude > 90) {
|
|
334
334
|
throw new Error('纬度值必须在 -90 到 90 之间');
|
|
335
335
|
}
|
|
336
|
-
this.
|
|
336
|
+
this.getTools().locationAction(longitude, latitude, zoom, duration);
|
|
337
337
|
// 记录定位操作
|
|
338
338
|
this.errorHandler.debug('地图定位完成', {
|
|
339
339
|
longitude,
|
package/core/Point.js
CHANGED
|
@@ -153,6 +153,7 @@ export default class Point {
|
|
|
153
153
|
return;
|
|
154
154
|
}
|
|
155
155
|
const pointFeature = new Feature({
|
|
156
|
+
type: options.layerName,
|
|
156
157
|
layerName: options.layerName,
|
|
157
158
|
geometry: new olPoint([item.lgtd, item.lttd]),
|
|
158
159
|
name: options.textKey ? item[options.textKey] : '',
|
|
@@ -172,7 +173,15 @@ export default class Point {
|
|
|
172
173
|
layerName: options.layerName,
|
|
173
174
|
source: clusterSource,
|
|
174
175
|
style: (feature) => {
|
|
175
|
-
|
|
176
|
+
if (options.style) {
|
|
177
|
+
if (typeof options.style === 'function') {
|
|
178
|
+
return options.style(feature);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
return options.style;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
const name = feature.get('features')[0].get('name');
|
|
176
185
|
return this.createClusterStyle(options, name);
|
|
177
186
|
},
|
|
178
187
|
zIndex: options.zIndex || ConfigManager.DEFAULT_CLUSTER_OPTIONS.zIndex,
|
|
@@ -278,7 +287,6 @@ export default class Point {
|
|
|
278
287
|
anchors,
|
|
279
288
|
remove: () => {
|
|
280
289
|
anchors.forEach(anchor => {
|
|
281
|
-
console.log('Removing overlay:', anchor);
|
|
282
290
|
const element = anchor.getElement();
|
|
283
291
|
if (element) {
|
|
284
292
|
element.remove();
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useMediaQuery
|
|
3
|
+
} from "./chunk-Z5QSWKN2.js";
|
|
4
|
+
import {
|
|
5
|
+
computed,
|
|
6
|
+
ref,
|
|
7
|
+
shallowRef,
|
|
8
|
+
watch
|
|
9
|
+
} from "./chunk-LW4I4DCF.js";
|
|
10
|
+
|
|
11
|
+
// node_modules/vitepress/dist/client/theme-default/index.js
|
|
12
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/fonts.css";
|
|
13
|
+
|
|
14
|
+
// node_modules/vitepress/dist/client/theme-default/without-fonts.js
|
|
15
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
|
|
16
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/base.css";
|
|
17
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/icons.css";
|
|
18
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
|
|
19
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
|
|
20
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
|
|
21
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
|
|
22
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
|
|
23
|
+
import "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
|
|
24
|
+
import VPBadge from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
|
|
25
|
+
import Layout from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/Layout.vue";
|
|
26
|
+
import { default as default2 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
|
|
27
|
+
import { default as default3 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPButton.vue";
|
|
28
|
+
import { default as default4 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
|
|
29
|
+
import { default as default5 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPFeatures.vue";
|
|
30
|
+
import { default as default6 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPHomeContent.vue";
|
|
31
|
+
import { default as default7 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
|
|
32
|
+
import { default as default8 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
|
|
33
|
+
import { default as default9 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
|
|
34
|
+
import { default as default10 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPImage.vue";
|
|
35
|
+
import { default as default11 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPLink.vue";
|
|
36
|
+
import { default as default12 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPNavBarSearch.vue";
|
|
37
|
+
import { default as default13 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPSocialLink.vue";
|
|
38
|
+
import { default as default14 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPSocialLinks.vue";
|
|
39
|
+
import { default as default15 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPSponsors.vue";
|
|
40
|
+
import { default as default16 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
|
|
41
|
+
import { default as default17 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
|
|
42
|
+
import { default as default18 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
|
|
43
|
+
import { default as default19 } from "E:/my_openlayers/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
|
|
44
|
+
|
|
45
|
+
// node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
|
|
46
|
+
import { onContentUpdated } from "vitepress";
|
|
47
|
+
|
|
48
|
+
// node_modules/vitepress/dist/client/theme-default/composables/outline.js
|
|
49
|
+
import { getScrollOffset } from "vitepress";
|
|
50
|
+
|
|
51
|
+
// node_modules/vitepress/dist/client/theme-default/support/utils.js
|
|
52
|
+
import { withBase } from "vitepress";
|
|
53
|
+
|
|
54
|
+
// node_modules/vitepress/dist/client/theme-default/composables/data.js
|
|
55
|
+
import { useData as useData$ } from "vitepress";
|
|
56
|
+
var useData = useData$;
|
|
57
|
+
|
|
58
|
+
// node_modules/vitepress/dist/client/theme-default/support/utils.js
|
|
59
|
+
function ensureStartingSlash(path) {
|
|
60
|
+
return path.startsWith("/") ? path : `/${path}`;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// node_modules/vitepress/dist/client/theme-default/support/sidebar.js
|
|
64
|
+
function getSidebar(_sidebar, path) {
|
|
65
|
+
if (Array.isArray(_sidebar))
|
|
66
|
+
return addBase(_sidebar);
|
|
67
|
+
if (_sidebar == null)
|
|
68
|
+
return [];
|
|
69
|
+
path = ensureStartingSlash(path);
|
|
70
|
+
const dir = Object.keys(_sidebar).sort((a, b) => {
|
|
71
|
+
return b.split("/").length - a.split("/").length;
|
|
72
|
+
}).find((dir2) => {
|
|
73
|
+
return path.startsWith(ensureStartingSlash(dir2));
|
|
74
|
+
});
|
|
75
|
+
const sidebar = dir ? _sidebar[dir] : [];
|
|
76
|
+
return Array.isArray(sidebar) ? addBase(sidebar) : addBase(sidebar.items, sidebar.base);
|
|
77
|
+
}
|
|
78
|
+
function getSidebarGroups(sidebar) {
|
|
79
|
+
const groups = [];
|
|
80
|
+
let lastGroupIndex = 0;
|
|
81
|
+
for (const index in sidebar) {
|
|
82
|
+
const item = sidebar[index];
|
|
83
|
+
if (item.items) {
|
|
84
|
+
lastGroupIndex = groups.push(item);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (!groups[lastGroupIndex]) {
|
|
88
|
+
groups.push({ items: [] });
|
|
89
|
+
}
|
|
90
|
+
groups[lastGroupIndex].items.push(item);
|
|
91
|
+
}
|
|
92
|
+
return groups;
|
|
93
|
+
}
|
|
94
|
+
function addBase(items, _base) {
|
|
95
|
+
return [...items].map((_item) => {
|
|
96
|
+
const item = { ..._item };
|
|
97
|
+
const base = item.base || _base;
|
|
98
|
+
if (base && item.link)
|
|
99
|
+
item.link = base + item.link;
|
|
100
|
+
if (item.items)
|
|
101
|
+
item.items = addBase(item.items, base);
|
|
102
|
+
return item;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// node_modules/vitepress/dist/client/theme-default/composables/sidebar.js
|
|
107
|
+
function useSidebar() {
|
|
108
|
+
const { frontmatter, page, theme: theme2 } = useData();
|
|
109
|
+
const is960 = useMediaQuery("(min-width: 960px)");
|
|
110
|
+
const isOpen = ref(false);
|
|
111
|
+
const _sidebar = computed(() => {
|
|
112
|
+
const sidebarConfig = theme2.value.sidebar;
|
|
113
|
+
const relativePath = page.value.relativePath;
|
|
114
|
+
return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];
|
|
115
|
+
});
|
|
116
|
+
const sidebar = ref(_sidebar.value);
|
|
117
|
+
watch(_sidebar, (next, prev) => {
|
|
118
|
+
if (JSON.stringify(next) !== JSON.stringify(prev))
|
|
119
|
+
sidebar.value = _sidebar.value;
|
|
120
|
+
});
|
|
121
|
+
const hasSidebar = computed(() => {
|
|
122
|
+
return frontmatter.value.sidebar !== false && sidebar.value.length > 0 && frontmatter.value.layout !== "home";
|
|
123
|
+
});
|
|
124
|
+
const leftAside = computed(() => {
|
|
125
|
+
if (hasAside)
|
|
126
|
+
return frontmatter.value.aside == null ? theme2.value.aside === "left" : frontmatter.value.aside === "left";
|
|
127
|
+
return false;
|
|
128
|
+
});
|
|
129
|
+
const hasAside = computed(() => {
|
|
130
|
+
if (frontmatter.value.layout === "home")
|
|
131
|
+
return false;
|
|
132
|
+
if (frontmatter.value.aside != null)
|
|
133
|
+
return !!frontmatter.value.aside;
|
|
134
|
+
return theme2.value.aside !== false;
|
|
135
|
+
});
|
|
136
|
+
const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);
|
|
137
|
+
const sidebarGroups = computed(() => {
|
|
138
|
+
return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];
|
|
139
|
+
});
|
|
140
|
+
function open() {
|
|
141
|
+
isOpen.value = true;
|
|
142
|
+
}
|
|
143
|
+
function close() {
|
|
144
|
+
isOpen.value = false;
|
|
145
|
+
}
|
|
146
|
+
function toggle() {
|
|
147
|
+
isOpen.value ? close() : open();
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
isOpen,
|
|
151
|
+
sidebar,
|
|
152
|
+
sidebarGroups,
|
|
153
|
+
hasSidebar,
|
|
154
|
+
hasAside,
|
|
155
|
+
leftAside,
|
|
156
|
+
isSidebarEnabled,
|
|
157
|
+
open,
|
|
158
|
+
close,
|
|
159
|
+
toggle
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// node_modules/vitepress/dist/client/theme-default/composables/outline.js
|
|
164
|
+
var ignoreRE = /\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/;
|
|
165
|
+
var resolvedHeaders = [];
|
|
166
|
+
function getHeaders(range) {
|
|
167
|
+
const headers = [
|
|
168
|
+
...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")
|
|
169
|
+
].filter((el) => el.id && el.hasChildNodes()).map((el) => {
|
|
170
|
+
const level = Number(el.tagName[1]);
|
|
171
|
+
return {
|
|
172
|
+
element: el,
|
|
173
|
+
title: serializeHeader(el),
|
|
174
|
+
link: "#" + el.id,
|
|
175
|
+
level
|
|
176
|
+
};
|
|
177
|
+
});
|
|
178
|
+
return resolveHeaders(headers, range);
|
|
179
|
+
}
|
|
180
|
+
function serializeHeader(h) {
|
|
181
|
+
let ret = "";
|
|
182
|
+
for (const node of h.childNodes) {
|
|
183
|
+
if (node.nodeType === 1) {
|
|
184
|
+
if (ignoreRE.test(node.className))
|
|
185
|
+
continue;
|
|
186
|
+
ret += node.textContent;
|
|
187
|
+
} else if (node.nodeType === 3) {
|
|
188
|
+
ret += node.textContent;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return ret.trim();
|
|
192
|
+
}
|
|
193
|
+
function resolveHeaders(headers, range) {
|
|
194
|
+
if (range === false) {
|
|
195
|
+
return [];
|
|
196
|
+
}
|
|
197
|
+
const levelsRange = (typeof range === "object" && !Array.isArray(range) ? range.level : range) || 2;
|
|
198
|
+
const [high, low] = typeof levelsRange === "number" ? [levelsRange, levelsRange] : levelsRange === "deep" ? [2, 6] : levelsRange;
|
|
199
|
+
return buildTree(headers, high, low);
|
|
200
|
+
}
|
|
201
|
+
function buildTree(data, min, max) {
|
|
202
|
+
resolvedHeaders.length = 0;
|
|
203
|
+
const result = [];
|
|
204
|
+
const stack = [];
|
|
205
|
+
data.forEach((item) => {
|
|
206
|
+
const node = { ...item, children: [] };
|
|
207
|
+
let parent = stack[stack.length - 1];
|
|
208
|
+
while (parent && parent.level >= node.level) {
|
|
209
|
+
stack.pop();
|
|
210
|
+
parent = stack[stack.length - 1];
|
|
211
|
+
}
|
|
212
|
+
if (node.element.classList.contains("ignore-header") || parent && "shouldIgnore" in parent) {
|
|
213
|
+
stack.push({ level: node.level, shouldIgnore: true });
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
if (node.level > max || node.level < min)
|
|
217
|
+
return;
|
|
218
|
+
resolvedHeaders.push({ element: node.element, link: node.link });
|
|
219
|
+
if (parent)
|
|
220
|
+
parent.children.push(node);
|
|
221
|
+
else
|
|
222
|
+
result.push(node);
|
|
223
|
+
stack.push(node);
|
|
224
|
+
});
|
|
225
|
+
return result;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
|
|
229
|
+
function useLocalNav() {
|
|
230
|
+
const { theme: theme2, frontmatter } = useData();
|
|
231
|
+
const headers = shallowRef([]);
|
|
232
|
+
const hasLocalNav = computed(() => {
|
|
233
|
+
return headers.value.length > 0;
|
|
234
|
+
});
|
|
235
|
+
onContentUpdated(() => {
|
|
236
|
+
headers.value = getHeaders(frontmatter.value.outline ?? theme2.value.outline);
|
|
237
|
+
});
|
|
238
|
+
return {
|
|
239
|
+
headers,
|
|
240
|
+
hasLocalNav
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// node_modules/vitepress/dist/client/theme-default/without-fonts.js
|
|
245
|
+
var theme = {
|
|
246
|
+
Layout,
|
|
247
|
+
enhanceApp: ({ app }) => {
|
|
248
|
+
app.component("Badge", VPBadge);
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
var without_fonts_default = theme;
|
|
252
|
+
export {
|
|
253
|
+
default2 as VPBadge,
|
|
254
|
+
default3 as VPButton,
|
|
255
|
+
default4 as VPDocAsideSponsors,
|
|
256
|
+
default5 as VPFeatures,
|
|
257
|
+
default6 as VPHomeContent,
|
|
258
|
+
default7 as VPHomeFeatures,
|
|
259
|
+
default8 as VPHomeHero,
|
|
260
|
+
default9 as VPHomeSponsors,
|
|
261
|
+
default10 as VPImage,
|
|
262
|
+
default11 as VPLink,
|
|
263
|
+
default12 as VPNavBarSearch,
|
|
264
|
+
default13 as VPSocialLink,
|
|
265
|
+
default14 as VPSocialLinks,
|
|
266
|
+
default15 as VPSponsors,
|
|
267
|
+
default16 as VPTeamMembers,
|
|
268
|
+
default17 as VPTeamPage,
|
|
269
|
+
default18 as VPTeamPageSection,
|
|
270
|
+
default19 as VPTeamPageTitle,
|
|
271
|
+
without_fonts_default as default,
|
|
272
|
+
useLocalNav,
|
|
273
|
+
useSidebar
|
|
274
|
+
};
|
|
275
|
+
//# sourceMappingURL=@theme_index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../node_modules/vitepress/dist/client/theme-default/index.js", "../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/local-nav.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/outline.js", "../../../../node_modules/vitepress/dist/client/theme-default/support/utils.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/data.js", "../../../../node_modules/vitepress/dist/client/theme-default/support/sidebar.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/sidebar.js"],
|
|
4
|
+
"sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/icons.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\nexport { default as VPBadge } from './components/VPBadge.vue';\nexport { default as VPButton } from './components/VPButton.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPFeatures } from './components/VPFeatures.vue';\nexport { default as VPHomeContent } from './components/VPHomeContent.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPImage } from './components/VPImage.vue';\nexport { default as VPLink } from './components/VPLink.vue';\nexport { default as VPNavBarSearch } from './components/VPNavBarSearch.vue';\nexport { default as VPSocialLink } from './components/VPSocialLink.vue';\nexport { default as VPSocialLinks } from './components/VPSocialLinks.vue';\nexport { default as VPSponsors } from './components/VPSponsors.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { useLocalNav } from './composables/local-nav';\nexport { useSidebar } from './composables/sidebar';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n", "import { onContentUpdated } from 'vitepress';\nimport { computed, shallowRef } from 'vue';\nimport { getHeaders } from '../composables/outline';\nimport { useData } from './data';\nexport function useLocalNav() {\n const { theme, frontmatter } = useData();\n const headers = shallowRef([]);\n const hasLocalNav = computed(() => {\n return headers.value.length > 0;\n });\n onContentUpdated(() => {\n headers.value = getHeaders(frontmatter.value.outline ?? theme.value.outline);\n });\n return {\n headers,\n hasLocalNav\n };\n}\n", "import { getScrollOffset } from 'vitepress';\nimport { onMounted, onUnmounted, onUpdated } from 'vue';\nimport { throttleAndDebounce } from '../support/utils';\nimport { useAside } from './aside';\nconst ignoreRE = /\\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\\b/;\n// cached list of anchor elements from resolveHeaders\nconst resolvedHeaders = [];\nexport function resolveTitle(theme) {\n return ((typeof theme.outline === 'object' &&\n !Array.isArray(theme.outline) &&\n theme.outline.label) ||\n theme.outlineTitle ||\n 'On this page');\n}\nexport function getHeaders(range) {\n const headers = [\n ...document.querySelectorAll('.VPDoc :where(h1,h2,h3,h4,h5,h6)')\n ]\n .filter((el) => el.id && el.hasChildNodes())\n .map((el) => {\n const level = Number(el.tagName[1]);\n return {\n element: el,\n title: serializeHeader(el),\n link: '#' + el.id,\n level\n };\n });\n return resolveHeaders(headers, range);\n}\nfunction serializeHeader(h) {\n let ret = '';\n for (const node of h.childNodes) {\n if (node.nodeType === 1) {\n if (ignoreRE.test(node.className))\n continue;\n ret += node.textContent;\n }\n else if (node.nodeType === 3) {\n ret += node.textContent;\n }\n }\n return ret.trim();\n}\nexport function resolveHeaders(headers, range) {\n if (range === false) {\n return [];\n }\n const levelsRange = (typeof range === 'object' && !Array.isArray(range)\n ? range.level\n : range) || 2;\n const [high, low] = typeof levelsRange === 'number'\n ? [levelsRange, levelsRange]\n : levelsRange === 'deep'\n ? [2, 6]\n : levelsRange;\n return buildTree(headers, high, low);\n}\nexport function useActiveAnchor(container, marker) {\n const { isAsideEnabled } = useAside();\n const onScroll = throttleAndDebounce(setActiveLink, 100);\n let prevActiveLink = null;\n onMounted(() => {\n requestAnimationFrame(setActiveLink);\n window.addEventListener('scroll', onScroll);\n });\n onUpdated(() => {\n // sidebar update means a route change\n activateLink(location.hash);\n });\n onUnmounted(() => {\n window.removeEventListener('scroll', onScroll);\n });\n function setActiveLink() {\n if (!isAsideEnabled.value) {\n return;\n }\n const scrollY = window.scrollY;\n const innerHeight = window.innerHeight;\n const offsetHeight = document.body.offsetHeight;\n const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;\n // resolvedHeaders may be repositioned, hidden or fix positioned\n const headers = resolvedHeaders\n .map(({ element, link }) => ({\n link,\n top: getAbsoluteTop(element)\n }))\n .filter(({ top }) => !Number.isNaN(top))\n .sort((a, b) => a.top - b.top);\n // no headers available for active link\n if (!headers.length) {\n activateLink(null);\n return;\n }\n // page top\n if (scrollY < 1) {\n activateLink(null);\n return;\n }\n // page bottom - highlight last link\n if (isBottom) {\n activateLink(headers[headers.length - 1].link);\n return;\n }\n // find the last header above the top of viewport\n let activeLink = null;\n for (const { link, top } of headers) {\n if (top > scrollY + getScrollOffset() + 4) {\n break;\n }\n activeLink = link;\n }\n activateLink(activeLink);\n }\n function activateLink(hash) {\n if (prevActiveLink) {\n prevActiveLink.classList.remove('active');\n }\n if (hash == null) {\n prevActiveLink = null;\n }\n else {\n prevActiveLink = container.value.querySelector(`a[href=\"${decodeURIComponent(hash)}\"]`);\n }\n const activeLink = prevActiveLink;\n if (activeLink) {\n activeLink.classList.add('active');\n marker.value.style.top = activeLink.offsetTop + 39 + 'px';\n marker.value.style.opacity = '1';\n }\n else {\n marker.value.style.top = '33px';\n marker.value.style.opacity = '0';\n }\n }\n}\nfunction getAbsoluteTop(element) {\n let offsetTop = 0;\n while (element !== document.body) {\n if (element === null) {\n // child element is:\n // - not attached to the DOM (display: none)\n // - set to fixed position (not scrollable)\n // - body or html element (null offsetParent)\n return NaN;\n }\n offsetTop += element.offsetTop;\n element = element.offsetParent;\n }\n return offsetTop;\n}\nfunction buildTree(data, min, max) {\n resolvedHeaders.length = 0;\n const result = [];\n const stack = [];\n data.forEach((item) => {\n const node = { ...item, children: [] };\n let parent = stack[stack.length - 1];\n while (parent && parent.level >= node.level) {\n stack.pop();\n parent = stack[stack.length - 1];\n }\n if (node.element.classList.contains('ignore-header') ||\n (parent && 'shouldIgnore' in parent)) {\n stack.push({ level: node.level, shouldIgnore: true });\n return;\n }\n if (node.level > max || node.level < min)\n return;\n resolvedHeaders.push({ element: node.element, link: node.link });\n if (parent)\n parent.children.push(node);\n else\n result.push(node);\n stack.push(node);\n });\n return result;\n}\n", "import { withBase } from 'vitepress';\nimport { isExternal, treatAsHtml } from '../../shared';\nimport { useData } from '../composables/data';\nexport function throttleAndDebounce(fn, delay) {\n let timeoutId;\n let called = false;\n return () => {\n if (timeoutId)\n clearTimeout(timeoutId);\n if (!called) {\n fn();\n (called = true) && setTimeout(() => (called = false), delay);\n }\n else\n timeoutId = setTimeout(fn, delay);\n };\n}\nexport function ensureStartingSlash(path) {\n return path.startsWith('/') ? path : `/${path}`;\n}\nexport function normalizeLink(url) {\n const { pathname, search, hash, protocol } = new URL(url, 'http://a.com');\n if (isExternal(url) ||\n url.startsWith('#') ||\n !protocol.startsWith('http') ||\n !treatAsHtml(pathname))\n return url;\n const { site } = useData();\n const normalizedPath = pathname.endsWith('/') || pathname.endsWith('.html')\n ? url\n : url.replace(/(?:(^\\.+)\\/)?.*$/, `$1${pathname.replace(/(\\.md)?$/, site.value.cleanUrls ? '' : '.html')}${search}${hash}`);\n return withBase(normalizedPath);\n}\n", "import { useData as useData$ } from 'vitepress';\nexport const useData = useData$;\n", "import { isActive } from '../../shared';\nimport { ensureStartingSlash } from './utils';\n/**\n * Get the `Sidebar` from sidebar option. This method will ensure to get correct\n * sidebar config from `MultiSideBarConfig` with various path combinations such\n * as matching `guide/` and `/guide/`. If no matching config was found, it will\n * return empty array.\n */\nexport function getSidebar(_sidebar, path) {\n if (Array.isArray(_sidebar))\n return addBase(_sidebar);\n if (_sidebar == null)\n return [];\n path = ensureStartingSlash(path);\n const dir = Object.keys(_sidebar)\n .sort((a, b) => {\n return b.split('/').length - a.split('/').length;\n })\n .find((dir) => {\n // make sure the multi sidebar key starts with slash too\n return path.startsWith(ensureStartingSlash(dir));\n });\n const sidebar = dir ? _sidebar[dir] : [];\n return Array.isArray(sidebar)\n ? addBase(sidebar)\n : addBase(sidebar.items, sidebar.base);\n}\n/**\n * Get or generate sidebar group from the given sidebar items.\n */\nexport function getSidebarGroups(sidebar) {\n const groups = [];\n let lastGroupIndex = 0;\n for (const index in sidebar) {\n const item = sidebar[index];\n if (item.items) {\n lastGroupIndex = groups.push(item);\n continue;\n }\n if (!groups[lastGroupIndex]) {\n groups.push({ items: [] });\n }\n groups[lastGroupIndex].items.push(item);\n }\n return groups;\n}\nexport function getFlatSideBarLinks(sidebar) {\n const links = [];\n function recursivelyExtractLinks(items) {\n for (const item of items) {\n if (item.text && item.link) {\n links.push({\n text: item.text,\n link: item.link,\n docFooterText: item.docFooterText\n });\n }\n if (item.items) {\n recursivelyExtractLinks(item.items);\n }\n }\n }\n recursivelyExtractLinks(sidebar);\n return links;\n}\n/**\n * Check if the given sidebar item contains any active link.\n */\nexport function hasActiveLink(path, items) {\n if (Array.isArray(items)) {\n return items.some((item) => hasActiveLink(path, item));\n }\n return isActive(path, items.link)\n ? true\n : items.items\n ? hasActiveLink(path, items.items)\n : false;\n}\nfunction addBase(items, _base) {\n return [...items].map((_item) => {\n const item = { ..._item };\n const base = item.base || _base;\n if (base && item.link)\n item.link = base + item.link;\n if (item.items)\n item.items = addBase(item.items, base);\n return item;\n });\n}\n", "import { useMediaQuery } from '@vueuse/core';\nimport { computed, onMounted, onUnmounted, ref, watch, watchEffect, watchPostEffect } from 'vue';\nimport { isActive } from '../../shared';\nimport { hasActiveLink as containsActiveLink, getSidebar, getSidebarGroups } from '../support/sidebar';\nimport { useData } from './data';\nexport function useSidebar() {\n const { frontmatter, page, theme } = useData();\n const is960 = useMediaQuery('(min-width: 960px)');\n const isOpen = ref(false);\n const _sidebar = computed(() => {\n const sidebarConfig = theme.value.sidebar;\n const relativePath = page.value.relativePath;\n return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];\n });\n const sidebar = ref(_sidebar.value);\n watch(_sidebar, (next, prev) => {\n if (JSON.stringify(next) !== JSON.stringify(prev))\n sidebar.value = _sidebar.value;\n });\n const hasSidebar = computed(() => {\n return (frontmatter.value.sidebar !== false &&\n sidebar.value.length > 0 &&\n frontmatter.value.layout !== 'home');\n });\n const leftAside = computed(() => {\n if (hasAside)\n return frontmatter.value.aside == null\n ? theme.value.aside === 'left'\n : frontmatter.value.aside === 'left';\n return false;\n });\n const hasAside = computed(() => {\n if (frontmatter.value.layout === 'home')\n return false;\n if (frontmatter.value.aside != null)\n return !!frontmatter.value.aside;\n return theme.value.aside !== false;\n });\n const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);\n const sidebarGroups = computed(() => {\n return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];\n });\n function open() {\n isOpen.value = true;\n }\n function close() {\n isOpen.value = false;\n }\n function toggle() {\n isOpen.value ? close() : open();\n }\n return {\n isOpen,\n sidebar,\n sidebarGroups,\n hasSidebar,\n hasAside,\n leftAside,\n isSidebarEnabled,\n open,\n close,\n toggle\n };\n}\n/**\n * a11y: cache the element that opened the Sidebar (the menu button) then\n * focus that button again when Menu is closed with Escape key.\n */\nexport function useCloseSidebarOnEscape(isOpen, close) {\n let triggerElement;\n watchEffect(() => {\n triggerElement = isOpen.value\n ? document.activeElement\n : undefined;\n });\n onMounted(() => {\n window.addEventListener('keyup', onEscape);\n });\n onUnmounted(() => {\n window.removeEventListener('keyup', onEscape);\n });\n function onEscape(e) {\n if (e.key === 'Escape' && isOpen.value) {\n close();\n triggerElement?.focus();\n }\n }\n}\nexport function useSidebarControl(item) {\n const { page, hash } = useData();\n const collapsed = ref(false);\n const collapsible = computed(() => {\n return item.value.collapsed != null;\n });\n const isLink = computed(() => {\n return !!item.value.link;\n });\n const isActiveLink = ref(false);\n const updateIsActiveLink = () => {\n isActiveLink.value = isActive(page.value.relativePath, item.value.link);\n };\n watch([page, item, hash], updateIsActiveLink);\n onMounted(updateIsActiveLink);\n const hasActiveLink = computed(() => {\n if (isActiveLink.value) {\n return true;\n }\n return item.value.items\n ? containsActiveLink(page.value.relativePath, item.value.items)\n : false;\n });\n const hasChildren = computed(() => {\n return !!(item.value.items && item.value.items.length);\n });\n watchEffect(() => {\n collapsed.value = !!(collapsible.value && item.value.collapsed);\n });\n watchPostEffect(() => {\n ;\n (isActiveLink.value || hasActiveLink.value) && (collapsed.value = false);\n });\n function toggle() {\n if (collapsible.value) {\n collapsed.value = !collapsed.value;\n }\n }\n return {\n collapsed,\n collapsible,\n isLink,\n isActiveLink,\n hasActiveLink,\n hasChildren,\n toggle\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["default", "dir", "theme", "theme"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hash": "e3b141ad",
|
|
3
|
+
"configHash": "decf7cac",
|
|
4
|
+
"lockfileHash": "d8ee7293",
|
|
5
|
+
"browserHash": "12b6ca16",
|
|
6
|
+
"optimized": {
|
|
7
|
+
"vue": {
|
|
8
|
+
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
|
9
|
+
"file": "vue.js",
|
|
10
|
+
"fileHash": "7d7cc477",
|
|
11
|
+
"needsInterop": false
|
|
12
|
+
},
|
|
13
|
+
"vitepress > @vue/devtools-api": {
|
|
14
|
+
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
|
|
15
|
+
"file": "vitepress___@vue_devtools-api.js",
|
|
16
|
+
"fileHash": "117b846d",
|
|
17
|
+
"needsInterop": false
|
|
18
|
+
},
|
|
19
|
+
"vitepress > @vueuse/core": {
|
|
20
|
+
"src": "../../../../node_modules/@vueuse/core/index.mjs",
|
|
21
|
+
"file": "vitepress___@vueuse_core.js",
|
|
22
|
+
"fileHash": "f6d6cdb9",
|
|
23
|
+
"needsInterop": false
|
|
24
|
+
},
|
|
25
|
+
"@theme/index": {
|
|
26
|
+
"src": "../../../../node_modules/vitepress/dist/client/theme-default/index.js",
|
|
27
|
+
"file": "@theme_index.js",
|
|
28
|
+
"fileHash": "fefc9e60",
|
|
29
|
+
"needsInterop": false
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"chunks": {
|
|
33
|
+
"chunk-Z5QSWKN2": {
|
|
34
|
+
"file": "chunk-Z5QSWKN2.js"
|
|
35
|
+
},
|
|
36
|
+
"chunk-LW4I4DCF": {
|
|
37
|
+
"file": "chunk-LW4I4DCF.js"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|