@c2-markdown-ui/svelte 0.4.2 → 0.4.3

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/package.json CHANGED
@@ -1,38 +1,38 @@
1
1
  {
2
- "version": "0.4.2",
3
- "description": "svelte renderer for markdown-ui",
4
- "name": "@c2-markdown-ui/svelte",
5
- "type": "module",
6
- "main": "./src/lib/index.ts",
7
- "exports": {
8
- ".": "./src/lib/index.ts",
9
- "./widgets.css": "./src/lib/widgets.css"
10
- },
11
- "files": [
12
- "src/lib",
13
- "README.md",
14
- "!src/lib/assets"
15
- ],
16
- "svelte": "./src/lib/index.ts",
17
- "scripts": {
18
- "dev": "vite dev",
19
- "build": "vite build",
20
- "preview": "vite preview",
21
- "prepare": "svelte-kit sync || echo ''",
22
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
23
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
24
- },
25
- "devDependencies": {
26
- "@sveltejs/adapter-auto": "^6.1.0",
27
- "@sveltejs/kit": "^2.36.2",
28
- "@sveltejs/vite-plugin-svelte": "^6.1.3",
29
- "svelte": "^5.38.3",
30
- "svelte-check": "^4.3.1"
31
- },
32
- "dependencies": {
33
- "morphdom": "^2.7.8"
34
- },
35
- "publishConfig": {
36
- "access": "public"
37
- }
2
+ "version": "0.4.3",
3
+ "description": "svelte renderer for markdown-ui",
4
+ "name": "@c2-markdown-ui/svelte",
5
+ "type": "module",
6
+ "main": "./src/lib/index.ts",
7
+ "exports": {
8
+ ".": "./src/lib/index.ts",
9
+ "./widgets.css": "./src/lib/widgets.css"
10
+ },
11
+ "files": [
12
+ "src/lib",
13
+ "README.md",
14
+ "!src/lib/assets"
15
+ ],
16
+ "svelte": "./src/lib/index.ts",
17
+ "scripts": {
18
+ "dev": "vite dev",
19
+ "build": "vite build",
20
+ "preview": "vite preview",
21
+ "prepare": "svelte-kit sync || echo ''",
22
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
23
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
24
+ },
25
+ "devDependencies": {
26
+ "@sveltejs/adapter-auto": "^6.1.0",
27
+ "@sveltejs/kit": "^2.36.2",
28
+ "@sveltejs/vite-plugin-svelte": "^6.1.3",
29
+ "svelte": "^5.38.3",
30
+ "svelte-check": "^4.3.1"
31
+ },
32
+ "dependencies": {
33
+ "morphdom": "^2.7.8"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
37
+ }
38
38
  }
@@ -166,7 +166,8 @@
166
166
  // ---------- 初始选中值 ----------
167
167
  /** 默认值语义(对齐 antd TreeSelect defaultValue):
168
168
  * 逗号分隔多值;每个值支持 / 分隔路径(zj/hz)或节点 value(hz),
169
- * 路径写法按段逐级查找(段先按 value 匹配、再按 label 匹配),定位到路径末端节点。
169
+ * 路径写法按段逐级查找(段先按 value 匹配、再按 label 匹配),定位到路径末端节点;
170
+ * 单段 value 在根级找不到时,从整棵树深度查找(antd 语义:value 全树唯一)。
170
171
  * 返回选中节点 value 数组 + 路径祖先 value 数组(用于初始展开) */
171
172
  function resolveInitial(): { values: string[]; ancestors: string[] } {
172
173
  if (!initial) return { values: [], ancestors: [] };
@@ -175,6 +176,15 @@
175
176
  : initial.split(',').map(s => s.trim()).filter(Boolean);
176
177
  const values: string[] = [];
177
178
  const ancestors: string[] = [];
179
+ /** 从整棵树深度查找节点,返回从根到命中节点的 value 链 */
180
+ function deepFind(nodes: TreeNodeItem[], seg: string, chain: string[]): string[] | null {
181
+ for (const n of nodes) {
182
+ if (n.value === seg || n.label === seg) return [...chain, n.value];
183
+ const sub = deepFind(n.children, seg, [...chain, n.value]);
184
+ if (sub) return sub;
185
+ }
186
+ return null;
187
+ }
178
188
  for (const path of paths) {
179
189
  const segs = path.split('/').map(s => s.trim()).filter(Boolean);
180
190
  let level = tree;
@@ -190,6 +200,13 @@
190
200
  if (node) {
191
201
  values.push(node.value);
192
202
  ancestors.push(...chain.slice(0, -1));
203
+ } else if (segs.length === 1) {
204
+ // 单段 value 逐级未命中(根级找不到):从整棵树深度查找(antd defaultValue 语义)
205
+ const deep = deepFind(tree, segs[0], []);
206
+ if (deep) {
207
+ values.push(deep[deep.length - 1]);
208
+ ancestors.push(...deep.slice(0, -1));
209
+ }
193
210
  }
194
211
  }
195
212
  return {