@vobs/layout 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breadcrumb.cjs +62 -577
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js +42 -562
- package/dist/breadcrumb.js.map +1 -1
- package/dist/context.cjs +30 -163
- package/dist/context.cjs.map +1 -1
- package/dist/context.js +8 -160
- package/dist/context.js.map +1 -1
- package/dist/header.cjs +69 -583
- package/dist/header.cjs.map +1 -1
- package/dist/header.js +40 -562
- package/dist/header.js.map +1 -1
- package/dist/index.cjs +281 -1018
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +282 -981
- package/dist/index.js.map +1 -1
- package/dist/layout.cjs +201 -937
- package/dist/layout.cjs.map +1 -1
- package/dist/layout.js +196 -910
- package/dist/layout.js.map +1 -1
- package/dist/menu.cjs +81 -645
- package/dist/menu.cjs.map +1 -1
- package/dist/menu.js +55 -624
- package/dist/menu.js.map +1 -1
- package/dist/sidebar.cjs +105 -759
- package/dist/sidebar.cjs.map +1 -1
- package/dist/sidebar.js +82 -733
- package/dist/sidebar.js.map +1 -1
- package/dist/tabs.cjs +70 -634
- package/dist/tabs.cjs.map +1 -1
- package/dist/tabs.js +48 -617
- package/dist/tabs.js.map +1 -1
- package/dist/types.cjs +18 -2
- package/dist/types.cjs.map +1 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +1 -1
- package/dist/utils.cjs +61 -532
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +23 -508
- package/dist/utils.js.map +1 -1
- package/dist/viewport.cjs +34 -261
- package/dist/viewport.cjs.map +1 -1
- package/dist/viewport.js +7 -256
- package/dist/viewport.js.map +1 -1
- package/package.json +3 -3
package/dist/sidebar.cjs
CHANGED
|
@@ -1,695 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var __VOBS_CJS_FILE_URL = require("url").pathToFileURL(__filename).href;
|
|
2
|
+
"use strict";
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
7
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var signalNames = /* @__PURE__ */ new WeakMap();
|
|
9
|
-
function hasDebugHooks() {
|
|
10
|
-
return activeDebugHooks !== null;
|
|
11
|
-
}
|
|
12
|
-
__name(hasDebugHooks, "hasDebugHooks");
|
|
13
|
-
function setSignalDebugName(signal, name) {
|
|
14
|
-
signalNames.set(signal, name);
|
|
15
|
-
invokeDebug("signalNamed", signal, name);
|
|
16
|
-
}
|
|
17
|
-
__name(setSignalDebugName, "setSignalDebugName");
|
|
18
|
-
function invokeDebug(name, ...args) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
__name(invokeDebug, "invokeDebug");
|
|
22
|
-
|
|
23
|
-
// packages/reactivity/src/owner.ts
|
|
24
|
-
var currentOwner = null;
|
|
25
|
-
var nextOwnerId = 1;
|
|
26
|
-
var ownerNames = /* @__PURE__ */ new WeakMap();
|
|
27
|
-
function createOwner() {
|
|
28
|
-
const parent = currentOwner;
|
|
29
|
-
let disposed = parent?.disposed ?? false;
|
|
30
|
-
const children = [];
|
|
31
|
-
const cleanups = [];
|
|
32
|
-
const errorHandlers = /* @__PURE__ */ new Set();
|
|
33
|
-
const owner = {
|
|
34
|
-
id: `owner-${nextOwnerId++}`,
|
|
35
|
-
parent,
|
|
36
|
-
children,
|
|
37
|
-
depth: (parent?.depth ?? -1) + 1,
|
|
38
|
-
get disposed() {
|
|
39
|
-
return disposed;
|
|
40
|
-
},
|
|
41
|
-
run(fn) {
|
|
42
|
-
if (disposed) throw new Error("Vobs: \u5DF2\u9500\u6BC1\u7684 Owner \u4E0D\u80FD\u7EE7\u7EED\u8FD0\u884C");
|
|
43
|
-
const previous = currentOwner;
|
|
44
|
-
currentOwner = owner;
|
|
45
|
-
try {
|
|
46
|
-
return fn();
|
|
47
|
-
} finally {
|
|
48
|
-
currentOwner = previous;
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
addCleanup(cleanup) {
|
|
52
|
-
if (disposed) {
|
|
53
|
-
cleanup();
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
cleanups.push(cleanup);
|
|
57
|
-
},
|
|
58
|
-
onDispose(cleanup) {
|
|
59
|
-
owner.addCleanup(cleanup);
|
|
60
|
-
},
|
|
61
|
-
onError(handler) {
|
|
62
|
-
errorHandlers.add(handler);
|
|
63
|
-
const remove = /* @__PURE__ */ __name(() => errorHandlers.delete(handler), "remove");
|
|
64
|
-
owner.addCleanup(remove);
|
|
65
|
-
return remove;
|
|
66
|
-
},
|
|
67
|
-
handleError(error) {
|
|
68
|
-
for (const handler of [...errorHandlers].reverse()) {
|
|
69
|
-
try {
|
|
70
|
-
handler(error);
|
|
71
|
-
return true;
|
|
72
|
-
} catch (handlerError) {
|
|
73
|
-
return parent?.handleError(handlerError) ?? false;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return parent?.handleError(error) ?? false;
|
|
77
|
-
},
|
|
78
|
-
dispose() {
|
|
79
|
-
if (disposed) return;
|
|
80
|
-
disposed = true;
|
|
81
|
-
for (const child of [...children]) child.dispose();
|
|
82
|
-
children.length = 0;
|
|
83
|
-
let firstError;
|
|
84
|
-
for (let index = cleanups.length - 1; index >= 0; index--) {
|
|
85
|
-
try {
|
|
86
|
-
cleanups[index]();
|
|
87
|
-
} catch (error) {
|
|
88
|
-
firstError ?? (firstError = error);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
cleanups.length = 0;
|
|
92
|
-
if (parent) {
|
|
93
|
-
const index = parent.children.indexOf(owner);
|
|
94
|
-
if (index >= 0) parent.children.splice(index, 1);
|
|
95
|
-
}
|
|
96
|
-
if (firstError) throw firstError;
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
if (parent && !parent.disposed) parent.children.push(owner);
|
|
100
|
-
return owner;
|
|
101
|
-
}
|
|
102
|
-
__name(createOwner, "createOwner");
|
|
103
|
-
function setOwnerDebugName(owner, name) {
|
|
104
|
-
ownerNames.set(owner, name);
|
|
105
|
-
}
|
|
106
|
-
__name(setOwnerDebugName, "setOwnerDebugName");
|
|
107
|
-
function getCurrentOwner() {
|
|
108
|
-
return currentOwner;
|
|
109
|
-
}
|
|
110
|
-
__name(getCurrentOwner, "getCurrentOwner");
|
|
111
|
-
|
|
112
|
-
// packages/reactivity/src/signal.ts
|
|
113
|
-
var currentSubscriber = null;
|
|
114
|
-
function getCurrentSubscriber() {
|
|
115
|
-
return currentSubscriber;
|
|
116
|
-
}
|
|
117
|
-
__name(getCurrentSubscriber, "getCurrentSubscriber");
|
|
118
|
-
function setCurrentSubscriber(subscriber) {
|
|
119
|
-
currentSubscriber = subscriber;
|
|
120
|
-
}
|
|
121
|
-
__name(setCurrentSubscriber, "setCurrentSubscriber");
|
|
122
|
-
function trackDependency(dependency) {
|
|
123
|
-
if (!currentSubscriber || currentSubscriber.disposed) return;
|
|
124
|
-
!currentSubscriber.dependencies.has(dependency);
|
|
125
|
-
currentSubscriber.dependencies.add(dependency);
|
|
126
|
-
}
|
|
127
|
-
__name(trackDependency, "trackDependency");
|
|
128
|
-
function state(initialValue, debugName) {
|
|
129
|
-
let value = initialValue;
|
|
130
|
-
let disposed = false;
|
|
131
|
-
const subscribers = /* @__PURE__ */ new Set();
|
|
132
|
-
const signalInstance = {
|
|
133
|
-
get value() {
|
|
134
|
-
const subscriber = getCurrentSubscriber();
|
|
135
|
-
if (subscriber && !subscriber.disposed) {
|
|
136
|
-
subscribers.add(subscriber);
|
|
137
|
-
trackDependency(signalInstance);
|
|
138
|
-
}
|
|
139
|
-
return value;
|
|
140
|
-
},
|
|
141
|
-
set value(nextValue) {
|
|
142
|
-
if (disposed || Object.is(value, nextValue)) return;
|
|
143
|
-
value = nextValue;
|
|
144
|
-
for (const subscriber of [...subscribers]) subscriber.notify();
|
|
145
|
-
},
|
|
146
|
-
unsubscribe(subscriber) {
|
|
147
|
-
subscribers.delete(subscriber);
|
|
148
|
-
},
|
|
149
|
-
// 与 `.value =` 赋值同一条路径:判等短路、debug hook、notify 全部一致。
|
|
150
|
-
// 以闭包实现,可安全地作为回调直接传递(无 this 绑定问题)。
|
|
151
|
-
set(next) {
|
|
152
|
-
signalInstance.value = next;
|
|
153
|
-
},
|
|
154
|
-
dispose() {
|
|
155
|
-
if (disposed) return;
|
|
156
|
-
disposed = true;
|
|
157
|
-
subscribers.clear();
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
const owner = getCurrentOwner();
|
|
161
|
-
owner?.addCleanup(signalInstance.dispose);
|
|
162
|
-
if (debugName?.trim()) setSignalDebugName(signalInstance, debugName.trim());
|
|
163
|
-
return signalInstance;
|
|
164
|
-
}
|
|
165
|
-
__name(state, "state");
|
|
166
|
-
|
|
167
|
-
// packages/reactivity/src/scheduler.ts
|
|
168
|
-
var _Scheduler = class _Scheduler {
|
|
169
|
-
constructor() {
|
|
170
|
-
this.dirtyEffects = /* @__PURE__ */ new Set();
|
|
171
|
-
this.lowPriorityEffects = /* @__PURE__ */ new Set();
|
|
172
|
-
// flush 不可重入(flushing 标志保证),缓冲数组可在轮次间安全复用,避免每轮分配。
|
|
173
|
-
this.normalBuffer = [];
|
|
174
|
-
this.lowBuffer = [];
|
|
175
|
-
this.flushing = false;
|
|
176
|
-
this.scheduled = false;
|
|
177
|
-
this.batchDepth = 0;
|
|
178
|
-
}
|
|
179
|
-
schedule(effect2) {
|
|
180
|
-
if (effect2.disposed) return;
|
|
181
|
-
this.dirtyEffects.add(effect2);
|
|
182
|
-
this.lowPriorityEffects.delete(effect2);
|
|
183
|
-
this.ensureScheduled();
|
|
184
|
-
}
|
|
185
|
-
/** Queue an effect behind normal updates while preserving deterministic order. */
|
|
186
|
-
scheduleLow(effect2) {
|
|
187
|
-
if (effect2.disposed) return;
|
|
188
|
-
if (!this.dirtyEffects.has(effect2)) this.lowPriorityEffects.add(effect2);
|
|
189
|
-
this.ensureScheduled();
|
|
190
|
-
}
|
|
191
|
-
ensureScheduled() {
|
|
192
|
-
if (this.batchDepth === 0 && !this.flushing && !this.scheduled) {
|
|
193
|
-
this.scheduled = true;
|
|
194
|
-
queueMicrotask(() => {
|
|
195
|
-
this.scheduled = false;
|
|
196
|
-
this.flush();
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
remove(effect2) {
|
|
201
|
-
this.dirtyEffects.delete(effect2);
|
|
202
|
-
this.lowPriorityEffects.delete(effect2);
|
|
203
|
-
}
|
|
204
|
-
batch(fn) {
|
|
205
|
-
this.batchDepth++;
|
|
206
|
-
try {
|
|
207
|
-
return fn();
|
|
208
|
-
} finally {
|
|
209
|
-
this.batchDepth--;
|
|
210
|
-
if (this.batchDepth === 0) this.flush();
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
flush() {
|
|
214
|
-
if (this.flushing || this.batchDepth > 0) return;
|
|
215
|
-
this.flushing = true;
|
|
216
|
-
let rounds = 0;
|
|
217
|
-
let firstError;
|
|
218
|
-
let hasError = false;
|
|
219
|
-
try {
|
|
220
|
-
while (this.dirtyEffects.size > 0 || this.lowPriorityEffects.size > 0) {
|
|
221
|
-
if (++rounds > 100) {
|
|
222
|
-
this.dirtyEffects.clear();
|
|
223
|
-
this.lowPriorityEffects.clear();
|
|
224
|
-
throw new Error("Vobs: \u54CD\u5E94\u5F0F\u66F4\u65B0\u8D85\u8FC7 100 \u8F6E\uFF0C\u53EF\u80FD\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56");
|
|
225
|
-
}
|
|
226
|
-
this.collectRunnable(this.dirtyEffects, this.normalBuffer);
|
|
227
|
-
this.collectRunnable(this.lowPriorityEffects, this.lowBuffer);
|
|
228
|
-
sortEffects(this.normalBuffer);
|
|
229
|
-
sortEffects(this.lowBuffer);
|
|
230
|
-
for (const effect2 of this.normalBuffer) {
|
|
231
|
-
try {
|
|
232
|
-
effect2.run();
|
|
233
|
-
} catch (error) {
|
|
234
|
-
if (!hasError) {
|
|
235
|
-
firstError = error;
|
|
236
|
-
hasError = true;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
for (const effect2 of this.lowBuffer) {
|
|
241
|
-
try {
|
|
242
|
-
effect2.run();
|
|
243
|
-
} catch (error) {
|
|
244
|
-
if (!hasError) {
|
|
245
|
-
firstError = error;
|
|
246
|
-
hasError = true;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
this.normalBuffer.length = 0;
|
|
251
|
-
this.lowBuffer.length = 0;
|
|
252
|
-
}
|
|
253
|
-
} finally {
|
|
254
|
-
this.normalBuffer.length = 0;
|
|
255
|
-
this.lowBuffer.length = 0;
|
|
256
|
-
this.flushing = false;
|
|
257
|
-
}
|
|
258
|
-
if (hasError) throw firstError;
|
|
259
|
-
}
|
|
260
|
-
/** 收集未 disposed 的 effect 并清空源集合;run() 期间新调度的 effect 留给下一轮。 */
|
|
261
|
-
collectRunnable(source, target) {
|
|
262
|
-
for (const effect2 of source) {
|
|
263
|
-
if (!effect2.disposed) target.push(effect2);
|
|
264
|
-
}
|
|
265
|
-
source.clear();
|
|
266
|
-
}
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
267
11
|
};
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
__name(sortEffects, "sortEffects");
|
|
276
|
-
var scheduler = new Scheduler();
|
|
277
|
-
|
|
278
|
-
// packages/reactivity/src/effect.ts
|
|
279
|
-
var nextEffectOrder = 1;
|
|
280
|
-
function cleanupDependencies(subscriber) {
|
|
281
|
-
for (const dependency of subscriber.dependencies) {
|
|
282
|
-
dependency.unsubscribe(subscriber);
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
283
17
|
}
|
|
284
|
-
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
function effect(callback) {
|
|
288
|
-
const owner = getCurrentOwner();
|
|
289
|
-
let cleanup;
|
|
290
|
-
let dirty = true;
|
|
291
|
-
let disposed = false;
|
|
292
|
-
const eff = {
|
|
293
|
-
order: nextEffectOrder++,
|
|
294
|
-
depth: owner?.depth ?? 0,
|
|
295
|
-
dependencies: /* @__PURE__ */ new Set(),
|
|
296
|
-
get disposed() {
|
|
297
|
-
return disposed;
|
|
298
|
-
},
|
|
299
|
-
notify() {
|
|
300
|
-
if (disposed || dirty) return;
|
|
301
|
-
dirty = true;
|
|
302
|
-
scheduler.schedule(eff);
|
|
303
|
-
},
|
|
304
|
-
run() {
|
|
305
|
-
if (disposed || !dirty) return;
|
|
306
|
-
dirty = false;
|
|
307
|
-
const previousCleanup = cleanup;
|
|
308
|
-
cleanup = void 0;
|
|
309
|
-
let cleanupError;
|
|
310
|
-
if (previousCleanup) {
|
|
311
|
-
try {
|
|
312
|
-
previousCleanup();
|
|
313
|
-
} catch (error) {
|
|
314
|
-
const handled2 = owner?.handleError(error) ?? false;
|
|
315
|
-
if (!handled2) cleanupError = error;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
cleanupDependencies(eff);
|
|
319
|
-
const previous = getCurrentSubscriber();
|
|
320
|
-
setCurrentSubscriber(eff);
|
|
321
|
-
let thrown;
|
|
322
|
-
let handled = false;
|
|
323
|
-
try {
|
|
324
|
-
const result = owner ? owner.run(callback) : callback();
|
|
325
|
-
cleanup = typeof result === "function" ? result : void 0;
|
|
326
|
-
} catch (error) {
|
|
327
|
-
thrown = error;
|
|
328
|
-
handled = owner?.handleError(error) ?? false;
|
|
329
|
-
if (!handled) throw error;
|
|
330
|
-
} finally {
|
|
331
|
-
setCurrentSubscriber(previous);
|
|
332
|
-
}
|
|
333
|
-
if (cleanupError && !thrown) throw cleanupError;
|
|
334
|
-
},
|
|
335
|
-
scheduleLow() {
|
|
336
|
-
if (disposed || dirty) return;
|
|
337
|
-
dirty = true;
|
|
338
|
-
scheduler.scheduleLow(eff);
|
|
339
|
-
},
|
|
340
|
-
dispose() {
|
|
341
|
-
if (disposed) return;
|
|
342
|
-
disposed = true;
|
|
343
|
-
dirty = false;
|
|
344
|
-
scheduler.remove(eff);
|
|
345
|
-
const previousCleanup = cleanup;
|
|
346
|
-
cleanup = void 0;
|
|
347
|
-
let cleanupError;
|
|
348
|
-
if (previousCleanup) {
|
|
349
|
-
try {
|
|
350
|
-
previousCleanup();
|
|
351
|
-
} catch (error) {
|
|
352
|
-
const handled = owner?.handleError(error) ?? false;
|
|
353
|
-
if (!handled) cleanupError = error;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
cleanupDependencies(eff);
|
|
357
|
-
if (cleanupError) throw cleanupError;
|
|
358
|
-
}
|
|
359
|
-
};
|
|
360
|
-
owner?.addCleanup(eff.dispose);
|
|
361
|
-
eff.run();
|
|
362
|
-
return eff;
|
|
363
|
-
}
|
|
364
|
-
__name(effect, "effect");
|
|
365
|
-
|
|
366
|
-
// packages/runtime/src/debug.ts
|
|
367
|
-
var activeRuntimeDebugHooks = null;
|
|
368
|
-
function getRuntimeDebugHooks() {
|
|
369
|
-
return activeRuntimeDebugHooks;
|
|
370
|
-
}
|
|
371
|
-
__name(getRuntimeDebugHooks, "getRuntimeDebugHooks");
|
|
372
|
-
function invokeRuntimeDebug(name, ...args) {
|
|
373
|
-
return;
|
|
374
|
-
}
|
|
375
|
-
__name(invokeRuntimeDebug, "invokeRuntimeDebug");
|
|
376
|
-
function readDebugValue(read) {
|
|
377
|
-
try {
|
|
378
|
-
return read();
|
|
379
|
-
} catch {
|
|
380
|
-
return "[Uninspectable]";
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
__name(readDebugValue, "readDebugValue");
|
|
384
|
-
function describeDebugNode(node) {
|
|
385
|
-
if (!node || typeof node !== "object") return "node";
|
|
386
|
-
const value = node;
|
|
387
|
-
const name = typeof value.tagName === "string" ? value.tagName.toLowerCase() : typeof value.nodeName === "string" ? value.nodeName.toLowerCase() : "node";
|
|
388
|
-
const id = typeof value.id === "string" && value.id ? `#${value.id}` : "";
|
|
389
|
-
const className = typeof value.className === "string" && value.className ? `.${value.className.trim().split(/\s+/).filter(Boolean).join(".")}` : "";
|
|
390
|
-
return `${name}${id}${className}`;
|
|
391
|
-
}
|
|
392
|
-
__name(describeDebugNode, "describeDebugNode");
|
|
393
|
-
|
|
394
|
-
// packages/runtime/src/hmr.ts
|
|
395
|
-
var globalTarget = globalThis;
|
|
396
|
-
var hmrGlobal = globalTarget.__VOBS_HMR__ ?? { modules: /* @__PURE__ */ new Map() };
|
|
397
|
-
globalTarget.__VOBS_HMR__ = hmrGlobal;
|
|
398
|
-
function registerHmrInstance(moduleId, instance) {
|
|
399
|
-
const instances = getModule(moduleId).instances;
|
|
400
|
-
instances.add(instance);
|
|
401
|
-
return () => instances.delete(instance);
|
|
402
|
-
}
|
|
403
|
-
__name(registerHmrInstance, "registerHmrInstance");
|
|
404
|
-
function markHmrInstanceMounted(node, parent) {
|
|
405
|
-
const instance = hmrInstances.get(node);
|
|
406
|
-
if (instance) instance.parent = parent;
|
|
407
|
-
}
|
|
408
|
-
__name(markHmrInstanceMounted, "markHmrInstanceMounted");
|
|
409
|
-
function getModule(moduleId) {
|
|
410
|
-
let module = hmrGlobal.modules.get(moduleId);
|
|
411
|
-
if (!module) {
|
|
412
|
-
module = { components: /* @__PURE__ */ new Map(), state: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Set() };
|
|
413
|
-
hmrGlobal.modules.set(moduleId, module);
|
|
414
|
-
}
|
|
415
|
-
return module;
|
|
416
|
-
}
|
|
417
|
-
__name(getModule, "getModule");
|
|
418
|
-
var hmrInstances = /* @__PURE__ */ new WeakMap();
|
|
419
|
-
function associateHmrInstance(node, instance) {
|
|
420
|
-
hmrInstances.set(node, instance);
|
|
421
|
-
}
|
|
422
|
-
__name(associateHmrInstance, "associateHmrInstance");
|
|
423
|
-
var nodeOwners = /* @__PURE__ */ new WeakMap();
|
|
424
|
-
var eventBindings = /* @__PURE__ */ new WeakMap();
|
|
425
|
-
function getRenderer() {
|
|
426
|
-
{
|
|
427
|
-
throw new Error("\u6E32\u67D3\u5668\u672A\u521D\u59CB\u5316");
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
__name(getRenderer, "getRenderer");
|
|
431
|
-
function createText(content) {
|
|
432
|
-
return getRenderer().createText(content);
|
|
433
|
-
}
|
|
434
|
-
__name(createText, "createText");
|
|
435
|
-
function createElement(tag) {
|
|
436
|
-
return getRenderer().createElement(tag);
|
|
437
|
-
}
|
|
438
|
-
__name(createElement, "createElement");
|
|
439
|
-
function createComment(content) {
|
|
440
|
-
return getRenderer().createComment(content);
|
|
441
|
-
}
|
|
442
|
-
__name(createComment, "createComment");
|
|
443
|
-
function insertBefore(parent, child, anchor) {
|
|
444
|
-
if (isVobsFragment(child)) {
|
|
445
|
-
child.mount(parent, isVobsFragment(anchor) ? anchor.start : anchor);
|
|
446
|
-
return;
|
|
447
|
-
}
|
|
448
|
-
getRenderer().insertBefore(parent, child, isVobsFragment(anchor) ? anchor.start : anchor);
|
|
449
|
-
markHmrInstanceMounted(child, parent);
|
|
450
|
-
}
|
|
451
|
-
__name(insertBefore, "insertBefore");
|
|
452
|
-
function removeChild(parent, child) {
|
|
453
|
-
disposeNodeOwner(child);
|
|
454
|
-
if (isVobsFragment(child)) {
|
|
455
|
-
child.unmount(parent);
|
|
456
|
-
return;
|
|
457
|
-
}
|
|
458
|
-
getRenderer().removeChild(parent, child);
|
|
459
|
-
}
|
|
460
|
-
__name(removeChild, "removeChild");
|
|
461
|
-
function setTextContent(node, content) {
|
|
462
|
-
getRenderer().setTextContent(node, content);
|
|
463
|
-
}
|
|
464
|
-
__name(setTextContent, "setTextContent");
|
|
465
|
-
function setProperty(node, key, value) {
|
|
466
|
-
getRenderer().setProperty(node, key, value);
|
|
467
|
-
}
|
|
468
|
-
__name(setProperty, "setProperty");
|
|
469
|
-
function setAttribute(node, key, value) {
|
|
470
|
-
getRenderer().setAttribute(node, key, value);
|
|
471
|
-
}
|
|
472
|
-
__name(setAttribute, "setAttribute");
|
|
473
|
-
function addEventListener(node, event, handler) {
|
|
474
|
-
const renderer = getRenderer();
|
|
475
|
-
const owner = getCurrentOwner();
|
|
476
|
-
let bindings = eventBindings.get(node);
|
|
477
|
-
if (!bindings) {
|
|
478
|
-
bindings = /* @__PURE__ */ new Map();
|
|
479
|
-
eventBindings.set(node, bindings);
|
|
480
|
-
}
|
|
481
|
-
const previous = bindings.get(event);
|
|
482
|
-
if (previous && previous.original === handler && previous.owner === owner) return;
|
|
483
|
-
if (previous) renderer.removeEventListener(node, event, previous.handler);
|
|
484
|
-
const listener = owner ? (reason) => {
|
|
485
|
-
try {
|
|
486
|
-
owner.run(() => handler(reason));
|
|
487
|
-
} catch (error) {
|
|
488
|
-
const handled = owner.handleError(error);
|
|
489
|
-
invokeRuntimeDebug("error", {
|
|
490
|
-
error,
|
|
491
|
-
owner,
|
|
492
|
-
phase: "event",
|
|
493
|
-
handled,
|
|
494
|
-
recovery: handled ? "handled" : "propagated"
|
|
495
|
-
});
|
|
496
|
-
if (!handled) throw error;
|
|
497
|
-
}
|
|
498
|
-
} : handler;
|
|
499
|
-
const binding = { handler: listener, owner, original: handler };
|
|
500
|
-
bindings.set(event, binding);
|
|
501
|
-
renderer.addEventListener(node, event, listener);
|
|
502
|
-
owner?.onDispose(() => {
|
|
503
|
-
if (bindings?.get(event) !== binding) return;
|
|
504
|
-
bindings.delete(event);
|
|
505
|
-
renderer.removeEventListener(node, event, listener);
|
|
506
|
-
});
|
|
507
|
-
}
|
|
508
|
-
__name(addEventListener, "addEventListener");
|
|
509
|
-
function createComponent(component, props, source) {
|
|
510
|
-
const owner = createOwner();
|
|
511
|
-
const componentName = component.displayName || component.name || "anonymous";
|
|
512
|
-
setOwnerDebugName(owner, source ? `${componentName} (${source.file}:${source.line}:${source.column})` : componentName);
|
|
513
|
-
owner.onError((reason) => {
|
|
514
|
-
attachSourceLocation(reason, source);
|
|
515
|
-
attachComponentContext(reason, componentName, owner.id);
|
|
516
|
-
throw reason;
|
|
517
|
-
});
|
|
518
|
-
let node;
|
|
519
|
-
try {
|
|
520
|
-
node = owner.run(() => component(props));
|
|
521
|
-
} catch (error) {
|
|
522
|
-
owner.dispose();
|
|
523
|
-
attachSourceLocation(error, source);
|
|
524
|
-
attachComponentContext(error, componentName, owner.id);
|
|
525
|
-
throw error;
|
|
526
|
-
}
|
|
527
|
-
associateNodeOwner(node, owner);
|
|
528
|
-
const hmrKey = component.hmrKey;
|
|
529
|
-
if (hmrKey) {
|
|
530
|
-
const instance = {
|
|
531
|
-
node,
|
|
532
|
-
parent: null,
|
|
533
|
-
refresh() {
|
|
534
|
-
const previous = instance.node;
|
|
535
|
-
const next = owner.run(() => component(props));
|
|
536
|
-
if (instance.parent && !isVobsFragment(previous) && !isVobsFragment(next)) {
|
|
537
|
-
getRenderer().insertBefore(instance.parent, next, previous);
|
|
538
|
-
getRenderer().removeChild(instance.parent, previous);
|
|
539
|
-
}
|
|
540
|
-
nodeOwners.delete(previous);
|
|
541
|
-
nodeOwners.set(next, owner);
|
|
542
|
-
associateHmrInstance(next, instance);
|
|
543
|
-
instance.node = next;
|
|
544
|
-
}
|
|
545
|
-
};
|
|
546
|
-
associateHmrInstance(node, instance);
|
|
547
|
-
const separator = hmrKey.lastIndexOf(":");
|
|
548
|
-
const moduleId = separator < 0 ? hmrKey : hmrKey.slice(0, separator);
|
|
549
|
-
const cleanup = registerHmrInstance(moduleId, instance);
|
|
550
|
-
owner.onDispose(cleanup);
|
|
551
|
-
}
|
|
552
|
-
return node;
|
|
553
|
-
}
|
|
554
|
-
__name(createComponent, "createComponent");
|
|
555
|
-
function attachSourceLocation(reason, source) {
|
|
556
|
-
if (!source || (!reason || typeof reason !== "object" && typeof reason !== "function")) return;
|
|
557
|
-
const error = reason;
|
|
558
|
-
if (error.vobsSource) return;
|
|
559
|
-
try {
|
|
560
|
-
Object.defineProperty(error, "vobsSource", {
|
|
561
|
-
configurable: true,
|
|
562
|
-
enumerable: false,
|
|
563
|
-
value: source,
|
|
564
|
-
writable: false
|
|
565
|
-
});
|
|
566
|
-
} catch {
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
__name(attachSourceLocation, "attachSourceLocation");
|
|
570
|
-
function attachComponentContext(reason, component, ownerId) {
|
|
571
|
-
if (!reason || typeof reason !== "object" && typeof reason !== "function") return;
|
|
572
|
-
const error = reason;
|
|
573
|
-
try {
|
|
574
|
-
if (!error.vobsComponent) Object.defineProperty(error, "vobsComponent", { configurable: true, enumerable: false, value: component, writable: false });
|
|
575
|
-
if (!error.vobsOwnerId) Object.defineProperty(error, "vobsOwnerId", { configurable: true, enumerable: false, value: ownerId, writable: false });
|
|
576
|
-
} catch {
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
__name(attachComponentContext, "attachComponentContext");
|
|
580
|
-
function createBlock(factory) {
|
|
581
|
-
const owner = createOwner();
|
|
582
|
-
setOwnerDebugName(owner, "dynamic");
|
|
583
|
-
let node;
|
|
584
|
-
try {
|
|
585
|
-
node = owner.run(factory);
|
|
586
|
-
} catch (error) {
|
|
587
|
-
owner.dispose();
|
|
588
|
-
throw error;
|
|
589
|
-
}
|
|
590
|
-
if (!node) {
|
|
591
|
-
owner.dispose();
|
|
592
|
-
return null;
|
|
593
|
-
}
|
|
594
|
-
associateNodeOwner(node, owner);
|
|
595
|
-
return node;
|
|
596
|
-
}
|
|
597
|
-
__name(createBlock, "createBlock");
|
|
598
|
-
function associateNodeOwner(node, owner) {
|
|
599
|
-
nodeOwners.set(node, owner);
|
|
600
|
-
}
|
|
601
|
-
__name(associateNodeOwner, "associateNodeOwner");
|
|
602
|
-
function disposeNodeOwner(node) {
|
|
603
|
-
const owner = nodeOwners.get(node);
|
|
604
|
-
if (!owner) return;
|
|
605
|
-
nodeOwners.delete(node);
|
|
606
|
-
owner.dispose();
|
|
607
|
-
}
|
|
608
|
-
__name(disposeNodeOwner, "disposeNodeOwner");
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
609
21
|
|
|
610
|
-
// packages/
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
kind: "vobs-fragment",
|
|
619
|
-
start,
|
|
620
|
-
end,
|
|
621
|
-
mount(nextParent, anchor) {
|
|
622
|
-
if (parent && parent !== nextParent) {
|
|
623
|
-
throw new Error("Vobs Fragment: \u4E0D\u80FD\u8DE8\u7236\u8282\u70B9\u79FB\u52A8 Fragment");
|
|
624
|
-
}
|
|
625
|
-
if (initialized) {
|
|
626
|
-
moveRange(nextParent, start, end, anchor);
|
|
627
|
-
return;
|
|
628
|
-
}
|
|
629
|
-
const renderer = getRenderer();
|
|
630
|
-
renderer.insertBefore(nextParent, start, anchor);
|
|
631
|
-
renderer.insertBefore(nextParent, end, anchor);
|
|
632
|
-
parent = nextParent;
|
|
633
|
-
initialized = true;
|
|
634
|
-
if (owner) owner.run(() => factory(nextParent, end));
|
|
635
|
-
else factory(nextParent, end);
|
|
636
|
-
},
|
|
637
|
-
unmount(nextParent) {
|
|
638
|
-
if (!initialized || parent !== nextParent) {
|
|
639
|
-
throw new Error("Vobs Fragment: Fragment \u4E0D\u5C5E\u4E8E\u6307\u5B9A\u7236\u8282\u70B9");
|
|
640
|
-
}
|
|
641
|
-
const renderer = getRenderer();
|
|
642
|
-
let current = renderer.nextSibling(start);
|
|
643
|
-
while (current && current !== end) {
|
|
644
|
-
const next = renderer.nextSibling(current);
|
|
645
|
-
renderer.removeChild(nextParent, current);
|
|
646
|
-
current = next;
|
|
647
|
-
}
|
|
648
|
-
renderer.removeChild(nextParent, start);
|
|
649
|
-
renderer.removeChild(nextParent, end);
|
|
650
|
-
parent = null;
|
|
651
|
-
initialized = false;
|
|
652
|
-
}
|
|
653
|
-
};
|
|
654
|
-
return fragment;
|
|
655
|
-
}
|
|
656
|
-
__name(createFragment, "createFragment");
|
|
657
|
-
function isVobsFragment(value) {
|
|
658
|
-
return Boolean(value) && typeof value === "object" && value.kind === "vobs-fragment";
|
|
659
|
-
}
|
|
660
|
-
__name(isVobsFragment, "isVobsFragment");
|
|
661
|
-
function moveRange(parent, start, end, anchor) {
|
|
662
|
-
const renderer = getRenderer();
|
|
663
|
-
const nodes = [start];
|
|
664
|
-
let current = renderer.nextSibling(start);
|
|
665
|
-
while (current) {
|
|
666
|
-
nodes.push(current);
|
|
667
|
-
if (current === end) break;
|
|
668
|
-
current = renderer.nextSibling(current);
|
|
669
|
-
}
|
|
670
|
-
if (nodes[nodes.length - 1] !== end) {
|
|
671
|
-
throw new Error("Vobs Fragment: \u627E\u4E0D\u5230\u7ED3\u675F\u951A\u70B9");
|
|
672
|
-
}
|
|
673
|
-
for (const node of nodes) renderer.insertBefore(parent, node, anchor);
|
|
674
|
-
}
|
|
675
|
-
__name(moveRange, "moveRange");
|
|
22
|
+
// packages/layout/src/sidebar.ts
|
|
23
|
+
var sidebar_exports = {};
|
|
24
|
+
__export(sidebar_exports, {
|
|
25
|
+
KitSidebar: () => KitSidebar
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(sidebar_exports);
|
|
28
|
+
var import_reactivity3 = require("@vobs/reactivity");
|
|
29
|
+
var import_vobs3 = require("@vobs/vobs");
|
|
676
30
|
|
|
677
|
-
// packages/
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
insertBefore(parent, marker, anchor);
|
|
681
|
-
let current = null;
|
|
682
|
-
effect(() => {
|
|
683
|
-
const next = createBlock(factory);
|
|
684
|
-
if (next === current) return;
|
|
685
|
-
if (current) removeChild(parent, current);
|
|
686
|
-
current = next;
|
|
687
|
-
if (current) insertBefore(parent, current, marker);
|
|
688
|
-
});
|
|
689
|
-
}
|
|
690
|
-
__name(insertDynamic, "insertDynamic");
|
|
31
|
+
// packages/layout/src/menu.ts
|
|
32
|
+
var import_reactivity2 = require("@vobs/reactivity");
|
|
33
|
+
var import_vobs2 = require("@vobs/vobs");
|
|
691
34
|
|
|
692
35
|
// packages/layout/src/utils.ts
|
|
36
|
+
var import_reactivity = require("@vobs/reactivity");
|
|
37
|
+
var import_vobs = require("@vobs/vobs");
|
|
693
38
|
function readProp(props, name, fallback) {
|
|
694
39
|
const value = Reflect.get(props, name);
|
|
695
40
|
return value === void 0 ? fallback : value;
|
|
@@ -704,8 +49,8 @@ function classNames(...values) {
|
|
|
704
49
|
}
|
|
705
50
|
__name(classNames, "classNames");
|
|
706
51
|
function bindClassList(root, props, readBaseClasses) {
|
|
707
|
-
effect(() => {
|
|
708
|
-
setAttribute(root, "class", classNames(
|
|
52
|
+
(0, import_reactivity.effect)(() => {
|
|
53
|
+
(0, import_vobs.setAttribute)(root, "class", classNames(
|
|
709
54
|
...readBaseClasses(),
|
|
710
55
|
readString(props, "class"),
|
|
711
56
|
readString(props, "className")
|
|
@@ -719,7 +64,7 @@ function bindCommonAttributes(root, props, skip = []) {
|
|
|
719
64
|
ignored.add("className");
|
|
720
65
|
ignored.add("children");
|
|
721
66
|
ignored.add("style");
|
|
722
|
-
effect(() => {
|
|
67
|
+
(0, import_reactivity.effect)(() => {
|
|
723
68
|
const next = /* @__PURE__ */ new Map();
|
|
724
69
|
for (const name of Object.keys(props)) {
|
|
725
70
|
if (ignored.has(name) || !isCommonAttribute(name)) continue;
|
|
@@ -730,22 +75,22 @@ function bindCommonAttributes(root, props, skip = []) {
|
|
|
730
75
|
for (const name of managed) {
|
|
731
76
|
if (!next.has(name)) removeAttribute(root, name);
|
|
732
77
|
}
|
|
733
|
-
for (const [name, value] of next) setAttribute(root, name, value);
|
|
78
|
+
for (const [name, value] of next) (0, import_vobs.setAttribute)(root, name, value);
|
|
734
79
|
managedAttributes.set(root, new Set(next.keys()));
|
|
735
80
|
});
|
|
736
81
|
}
|
|
737
82
|
__name(bindCommonAttributes, "bindCommonAttributes");
|
|
738
83
|
function bindUserStyle(root, props, internal) {
|
|
739
|
-
effect(() => {
|
|
84
|
+
(0, import_reactivity.effect)(() => {
|
|
740
85
|
const values = [internal?.() ?? "", readString(props, "style") ?? ""].filter(Boolean);
|
|
741
|
-
if (values.length > 0) setAttribute(root, "style", values.join("; "));
|
|
86
|
+
if (values.length > 0) (0, import_vobs.setAttribute)(root, "style", values.join("; "));
|
|
742
87
|
else removeAttribute(root, "style");
|
|
743
88
|
});
|
|
744
89
|
}
|
|
745
90
|
__name(bindUserStyle, "bindUserStyle");
|
|
746
91
|
function bindTextContent(node, read) {
|
|
747
|
-
effect(() => {
|
|
748
|
-
setTextContent(node, String(read() ?? ""));
|
|
92
|
+
(0, import_reactivity.effect)(() => {
|
|
93
|
+
(0, import_vobs.setTextContent)(node, String(read() ?? ""));
|
|
749
94
|
});
|
|
750
95
|
}
|
|
751
96
|
__name(bindTextContent, "bindTextContent");
|
|
@@ -754,22 +99,22 @@ function setOptionalAttribute(node, name, value) {
|
|
|
754
99
|
removeAttribute(node, name);
|
|
755
100
|
return;
|
|
756
101
|
}
|
|
757
|
-
setAttribute(node, name, String(value));
|
|
102
|
+
(0, import_vobs.setAttribute)(node, name, String(value));
|
|
758
103
|
}
|
|
759
104
|
__name(setOptionalAttribute, "setOptionalAttribute");
|
|
760
105
|
function mountSlot(parent, props, name) {
|
|
761
|
-
insertDynamic(parent, null, () => resolveSlot(Reflect.get(props, name)));
|
|
106
|
+
(0, import_vobs.insertDynamic)(parent, null, () => resolveSlot(Reflect.get(props, name)));
|
|
762
107
|
}
|
|
763
108
|
__name(mountSlot, "mountSlot");
|
|
764
109
|
function resolveSlot(value) {
|
|
765
110
|
const resolved = typeof value === "function" ? value() : value;
|
|
766
111
|
if (resolved === void 0 || resolved === null || resolved === false) return null;
|
|
767
|
-
if (typeof resolved === "string" || typeof resolved === "number") return createText(String(resolved));
|
|
112
|
+
if (typeof resolved === "string" || typeof resolved === "number") return (0, import_vobs.createText)(String(resolved));
|
|
768
113
|
if (Array.isArray(resolved)) {
|
|
769
|
-
return createFragment((parent, anchor) => {
|
|
114
|
+
return (0, import_vobs.createFragment)((parent, anchor) => {
|
|
770
115
|
for (const child of resolved) {
|
|
771
116
|
const node = resolveSlot(child);
|
|
772
|
-
if (node) insertBefore(parent, node, anchor);
|
|
117
|
+
if (node) (0, import_vobs.insertBefore)(parent, node, anchor);
|
|
773
118
|
}
|
|
774
119
|
});
|
|
775
120
|
}
|
|
@@ -803,12 +148,12 @@ var managedAttributes = /* @__PURE__ */ new WeakMap();
|
|
|
803
148
|
|
|
804
149
|
// packages/layout/src/menu.ts
|
|
805
150
|
function KitMenu(props) {
|
|
806
|
-
const root = createElement("ul");
|
|
807
|
-
const expanded = state(/* @__PURE__ */ new Set());
|
|
151
|
+
const root = (0, import_vobs2.createElement)("ul");
|
|
152
|
+
const expanded = (0, import_reactivity2.state)(/* @__PURE__ */ new Set());
|
|
808
153
|
bindClassList(root, props, () => ["vobs-kit-menu"]);
|
|
809
154
|
bindCommonAttributes(root, props, ["items", "collapsed", "activeKey", "onSelect"]);
|
|
810
|
-
if (!hasProp(props, "role")) setAttribute(root, "role", "menu");
|
|
811
|
-
insertDynamic(root, null, () => createMenuTree(props, expanded));
|
|
155
|
+
if (!hasProp(props, "role")) (0, import_vobs2.setAttribute)(root, "role", "menu");
|
|
156
|
+
(0, import_vobs2.insertDynamic)(root, null, () => createMenuTree(props, expanded));
|
|
812
157
|
if (hasProp(props, "children")) mountSlot(root, props, "children");
|
|
813
158
|
return root;
|
|
814
159
|
}
|
|
@@ -817,93 +162,93 @@ function createMenuTree(props, expanded) {
|
|
|
817
162
|
const items = readProp(props, "items", []);
|
|
818
163
|
const activeKey = readProp(props, "activeKey", void 0);
|
|
819
164
|
const collapsed = readProp(props, "collapsed", false);
|
|
820
|
-
return createFragment((parent, anchor) => {
|
|
165
|
+
return (0, import_vobs2.createFragment)((parent, anchor) => {
|
|
821
166
|
for (const item of items) {
|
|
822
|
-
insertBefore(parent, createMenuItem(item, props, activeKey, collapsed, expanded), anchor);
|
|
167
|
+
(0, import_vobs2.insertBefore)(parent, createMenuItem(item, props, activeKey, collapsed, expanded), anchor);
|
|
823
168
|
}
|
|
824
169
|
});
|
|
825
170
|
}
|
|
826
171
|
__name(createMenuTree, "createMenuTree");
|
|
827
172
|
function createMenuItem(item, props, activeKey, collapsed, expanded) {
|
|
828
|
-
const li = createElement("li");
|
|
173
|
+
const li = (0, import_vobs2.createElement)("li");
|
|
829
174
|
const children = item.children ?? [];
|
|
830
175
|
const hasChildren = children.length > 0;
|
|
831
176
|
const active = item.key === activeKey;
|
|
832
177
|
const activeDescendant = children.some((child) => hasActiveDescendant(child, activeKey));
|
|
833
178
|
const isExpanded = expanded.value.has(item.key) || activeDescendant;
|
|
834
|
-
setAttribute(li, "class", `vobs-kit-menu__item${active || activeDescendant ? " is-active" : ""}`);
|
|
179
|
+
(0, import_vobs2.setAttribute)(li, "class", `vobs-kit-menu__item${active || activeDescendant ? " is-active" : ""}`);
|
|
835
180
|
setOptionalAttribute(li, "data-menu-key", item.key);
|
|
836
181
|
if (hasChildren) {
|
|
837
|
-
const groupButton = createElement("button");
|
|
838
|
-
setAttribute(groupButton, "type", "button");
|
|
839
|
-
setAttribute(groupButton, "class", "vobs-kit-menu__link vobs-kit-menu__group-toggle");
|
|
840
|
-
setAttribute(groupButton, "aria-expanded", isExpanded ? "true" : "false");
|
|
182
|
+
const groupButton = (0, import_vobs2.createElement)("button");
|
|
183
|
+
(0, import_vobs2.setAttribute)(groupButton, "type", "button");
|
|
184
|
+
(0, import_vobs2.setAttribute)(groupButton, "class", "vobs-kit-menu__link vobs-kit-menu__group-toggle");
|
|
185
|
+
(0, import_vobs2.setAttribute)(groupButton, "aria-expanded", isExpanded ? "true" : "false");
|
|
841
186
|
if (collapsed) setOptionalAttribute(groupButton, "title", item.label);
|
|
842
187
|
appendMenuContent(groupButton, item, collapsed);
|
|
843
|
-
addEventListener(groupButton, "click", () => {
|
|
188
|
+
(0, import_vobs2.addEventListener)(groupButton, "click", () => {
|
|
844
189
|
toggleExpanded(expanded, item.key);
|
|
845
190
|
if (item.href !== void 0) emitSelect(props, item);
|
|
846
191
|
});
|
|
847
|
-
insertBefore(li, groupButton, null);
|
|
192
|
+
(0, import_vobs2.insertBefore)(li, groupButton, null);
|
|
848
193
|
if (isExpanded) {
|
|
849
|
-
const nested = createElement("ul");
|
|
850
|
-
setAttribute(nested, "class", "vobs-kit-menu__children");
|
|
851
|
-
setAttribute(nested, "role", "menu");
|
|
194
|
+
const nested = (0, import_vobs2.createElement)("ul");
|
|
195
|
+
(0, import_vobs2.setAttribute)(nested, "class", "vobs-kit-menu__children");
|
|
196
|
+
(0, import_vobs2.setAttribute)(nested, "role", "menu");
|
|
852
197
|
for (const child of children) {
|
|
853
|
-
insertBefore(nested, createMenuItem(child, props, activeKey, collapsed, expanded), null);
|
|
198
|
+
(0, import_vobs2.insertBefore)(nested, createMenuItem(child, props, activeKey, collapsed, expanded), null);
|
|
854
199
|
}
|
|
855
|
-
insertBefore(li, nested, null);
|
|
200
|
+
(0, import_vobs2.insertBefore)(li, nested, null);
|
|
856
201
|
}
|
|
857
202
|
} else {
|
|
858
|
-
const link = createElement(item.href === void 0 ? "button" : "a");
|
|
859
|
-
setAttribute(link, "class", "vobs-kit-menu__link");
|
|
860
|
-
if (item.href === void 0) setAttribute(link, "type", "button");
|
|
203
|
+
const link = (0, import_vobs2.createElement)(item.href === void 0 ? "button" : "a");
|
|
204
|
+
(0, import_vobs2.setAttribute)(link, "class", "vobs-kit-menu__link");
|
|
205
|
+
if (item.href === void 0) (0, import_vobs2.setAttribute)(link, "type", "button");
|
|
861
206
|
else {
|
|
862
|
-
setAttribute(link, "href", item.href);
|
|
207
|
+
(0, import_vobs2.setAttribute)(link, "href", item.href);
|
|
863
208
|
setOptionalAttribute(link, "target", item.target);
|
|
864
209
|
setOptionalAttribute(link, "rel", item.rel);
|
|
865
210
|
}
|
|
866
|
-
if (active) setAttribute(link, "aria-current", "page");
|
|
211
|
+
if (active) (0, import_vobs2.setAttribute)(link, "aria-current", "page");
|
|
867
212
|
if (item.disabled === true) {
|
|
868
|
-
setAttribute(link, "aria-disabled", "true");
|
|
869
|
-
setProperty(link, "disabled", true);
|
|
213
|
+
(0, import_vobs2.setAttribute)(link, "aria-disabled", "true");
|
|
214
|
+
(0, import_vobs2.setProperty)(link, "disabled", true);
|
|
870
215
|
}
|
|
871
216
|
if (collapsed) setOptionalAttribute(link, "title", item.label);
|
|
872
217
|
appendMenuContent(link, item, collapsed);
|
|
873
|
-
addEventListener(link, "click", (event) => {
|
|
218
|
+
(0, import_vobs2.addEventListener)(link, "click", (event) => {
|
|
874
219
|
if (item.disabled === true) {
|
|
875
220
|
event.preventDefault?.();
|
|
876
221
|
return;
|
|
877
222
|
}
|
|
878
223
|
emitSelect(props, item);
|
|
879
224
|
});
|
|
880
|
-
insertBefore(li, link, null);
|
|
225
|
+
(0, import_vobs2.insertBefore)(li, link, null);
|
|
881
226
|
}
|
|
882
227
|
return li;
|
|
883
228
|
}
|
|
884
229
|
__name(createMenuItem, "createMenuItem");
|
|
885
230
|
function appendMenuContent(parent, item, collapsed) {
|
|
886
231
|
if (item.icon !== void 0) {
|
|
887
|
-
const icon = createElement("span");
|
|
888
|
-
setAttribute(icon, "class", "vobs-kit-menu__icon");
|
|
232
|
+
const icon = (0, import_vobs2.createElement)("span");
|
|
233
|
+
(0, import_vobs2.setAttribute)(icon, "class", "vobs-kit-menu__icon");
|
|
889
234
|
mountSlot(icon, item, "icon");
|
|
890
|
-
insertBefore(parent, icon, null);
|
|
235
|
+
(0, import_vobs2.insertBefore)(parent, icon, null);
|
|
891
236
|
}
|
|
892
|
-
const label = createElement("span");
|
|
893
|
-
setAttribute(label, "class", "vobs-kit-menu__label");
|
|
894
|
-
insertBefore(label, createText(item.label), null);
|
|
895
|
-
insertBefore(parent, label, null);
|
|
237
|
+
const label = (0, import_vobs2.createElement)("span");
|
|
238
|
+
(0, import_vobs2.setAttribute)(label, "class", "vobs-kit-menu__label");
|
|
239
|
+
(0, import_vobs2.insertBefore)(label, (0, import_vobs2.createText)(item.label), null);
|
|
240
|
+
(0, import_vobs2.insertBefore)(parent, label, null);
|
|
896
241
|
if (item.badge !== void 0 && !collapsed) {
|
|
897
|
-
const badge = createElement("span");
|
|
898
|
-
setAttribute(badge, "class", "vobs-kit-menu__badge");
|
|
242
|
+
const badge = (0, import_vobs2.createElement)("span");
|
|
243
|
+
(0, import_vobs2.setAttribute)(badge, "class", "vobs-kit-menu__badge");
|
|
899
244
|
mountSlot(badge, item, "badge");
|
|
900
|
-
insertBefore(parent, badge, null);
|
|
245
|
+
(0, import_vobs2.insertBefore)(parent, badge, null);
|
|
901
246
|
}
|
|
902
247
|
if (item.children && item.children.length > 0) {
|
|
903
|
-
const expand = createElement("span");
|
|
904
|
-
setAttribute(expand, "class", "vobs-kit-menu__expand");
|
|
905
|
-
setAttribute(expand, "aria-hidden", "true");
|
|
906
|
-
insertBefore(parent, expand, null);
|
|
248
|
+
const expand = (0, import_vobs2.createElement)("span");
|
|
249
|
+
(0, import_vobs2.setAttribute)(expand, "class", "vobs-kit-menu__expand");
|
|
250
|
+
(0, import_vobs2.setAttribute)(expand, "aria-hidden", "true");
|
|
251
|
+
(0, import_vobs2.insertBefore)(parent, expand, null);
|
|
907
252
|
}
|
|
908
253
|
}
|
|
909
254
|
__name(appendMenuContent, "appendMenuContent");
|
|
@@ -927,8 +272,8 @@ __name(hasActiveDescendant, "hasActiveDescendant");
|
|
|
927
272
|
|
|
928
273
|
// packages/layout/src/sidebar.ts
|
|
929
274
|
function KitSidebar(props = {}) {
|
|
930
|
-
const root = createElement("aside");
|
|
931
|
-
const close = createElement("button");
|
|
275
|
+
const root = (0, import_vobs3.createElement)("aside");
|
|
276
|
+
const close = (0, import_vobs3.createElement)("button");
|
|
932
277
|
bindClassList(root, props, () => [
|
|
933
278
|
"vobs-kit-sidebar",
|
|
934
279
|
readProp(props, "collapsed", false) ? "is-collapsed" : void 0,
|
|
@@ -948,23 +293,23 @@ function KitSidebar(props = {}) {
|
|
|
948
293
|
"onClose"
|
|
949
294
|
]);
|
|
950
295
|
bindUserStyle(root, props);
|
|
951
|
-
setAttribute(close, "type", "button");
|
|
952
|
-
setAttribute(close, "class", "vobs-kit-sidebar__close");
|
|
953
|
-
effect(() => {
|
|
296
|
+
(0, import_vobs3.setAttribute)(close, "type", "button");
|
|
297
|
+
(0, import_vobs3.setAttribute)(close, "class", "vobs-kit-sidebar__close");
|
|
298
|
+
(0, import_reactivity3.effect)(() => {
|
|
954
299
|
setOptionalAttribute(close, "aria-label", readProp(props, "closeLabel", "Close navigation"));
|
|
955
300
|
});
|
|
956
|
-
insertBefore(close, createCloseLabel(props), null);
|
|
957
|
-
addEventListener(close, "click", () => {
|
|
301
|
+
(0, import_vobs3.insertBefore)(close, createCloseLabel(props), null);
|
|
302
|
+
(0, import_vobs3.addEventListener)(close, "click", () => {
|
|
958
303
|
const handler = readProp(props, "onClose", void 0);
|
|
959
304
|
if (typeof handler === "function") handler();
|
|
960
305
|
});
|
|
961
|
-
insertBefore(root, close, null);
|
|
962
|
-
insertDynamic(root, null, () => createDefaultMenu(props));
|
|
306
|
+
(0, import_vobs3.insertBefore)(root, close, null);
|
|
307
|
+
(0, import_vobs3.insertDynamic)(root, null, () => createDefaultMenu(props));
|
|
963
308
|
if (hasProp(props, "footer")) {
|
|
964
|
-
const footer = createElement("div");
|
|
965
|
-
setAttribute(footer, "class", "vobs-kit-sidebar__footer");
|
|
309
|
+
const footer = (0, import_vobs3.createElement)("div");
|
|
310
|
+
(0, import_vobs3.setAttribute)(footer, "class", "vobs-kit-sidebar__footer");
|
|
966
311
|
mountSlot(footer, props, "footer");
|
|
967
|
-
insertBefore(root, footer, null);
|
|
312
|
+
(0, import_vobs3.insertBefore)(root, footer, null);
|
|
968
313
|
}
|
|
969
314
|
if (hasProp(props, "children")) mountSlot(root, props, "children");
|
|
970
315
|
return root;
|
|
@@ -973,7 +318,7 @@ __name(KitSidebar, "KitSidebar");
|
|
|
973
318
|
function createDefaultMenu(props) {
|
|
974
319
|
const items = readProp(props, "items", void 0) ?? readProp(props, "menu", []);
|
|
975
320
|
if (items.length === 0 && hasProp(props, "children")) return null;
|
|
976
|
-
return createComponent(KitMenu, {
|
|
321
|
+
return (0, import_vobs3.createComponent)(KitMenu, {
|
|
977
322
|
get items() {
|
|
978
323
|
return items;
|
|
979
324
|
},
|
|
@@ -990,15 +335,16 @@ function createDefaultMenu(props) {
|
|
|
990
335
|
}
|
|
991
336
|
__name(createDefaultMenu, "createDefaultMenu");
|
|
992
337
|
function createCloseLabel(props) {
|
|
993
|
-
const text = createElement("span");
|
|
994
|
-
const content = createText("");
|
|
995
|
-
setAttribute(text, "class", "vobs-kit-sidebar__close-label");
|
|
338
|
+
const text = (0, import_vobs3.createElement)("span");
|
|
339
|
+
const content = (0, import_vobs3.createText)("");
|
|
340
|
+
(0, import_vobs3.setAttribute)(text, "class", "vobs-kit-sidebar__close-label");
|
|
996
341
|
bindTextContent(content, () => readProp(props, "closeLabel", "Close navigation"));
|
|
997
|
-
insertBefore(text, content, null);
|
|
342
|
+
(0, import_vobs3.insertBefore)(text, content, null);
|
|
998
343
|
return text;
|
|
999
344
|
}
|
|
1000
345
|
__name(createCloseLabel, "createCloseLabel");
|
|
1001
|
-
|
|
1002
|
-
exports
|
|
1003
|
-
|
|
346
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
347
|
+
0 && (module.exports = {
|
|
348
|
+
KitSidebar
|
|
349
|
+
});
|
|
1004
350
|
//# sourceMappingURL=sidebar.cjs.map
|