@vobs/table 1.2.1 → 1.2.2

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/utils.cjs CHANGED
@@ -1,369 +1,44 @@
1
- 'use strict';
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
- // packages/reactivity/src/debug.ts
7
- var activeDebugHooks = null;
8
- function hasDebugHooks() {
9
- return activeDebugHooks !== null;
10
- }
11
- __name(hasDebugHooks, "hasDebugHooks");
12
- function invokeDebug(name, ...args) {
13
- return;
14
- }
15
- __name(invokeDebug, "invokeDebug");
16
-
17
- // packages/reactivity/src/owner.ts
18
- var currentOwner = null;
19
- function getCurrentOwner() {
20
- return currentOwner;
21
- }
22
- __name(getCurrentOwner, "getCurrentOwner");
23
-
24
- // packages/reactivity/src/signal.ts
25
- var currentSubscriber = null;
26
- function getCurrentSubscriber() {
27
- return currentSubscriber;
28
- }
29
- __name(getCurrentSubscriber, "getCurrentSubscriber");
30
- function setCurrentSubscriber(subscriber) {
31
- currentSubscriber = subscriber;
32
- }
33
- __name(setCurrentSubscriber, "setCurrentSubscriber");
34
-
35
- // packages/reactivity/src/scheduler.ts
36
- var _Scheduler = class _Scheduler {
37
- constructor() {
38
- this.dirtyEffects = /* @__PURE__ */ new Set();
39
- this.lowPriorityEffects = /* @__PURE__ */ new Set();
40
- // flush 不可重入(flushing 标志保证),缓冲数组可在轮次间安全复用,避免每轮分配。
41
- this.normalBuffer = [];
42
- this.lowBuffer = [];
43
- this.flushing = false;
44
- this.scheduled = false;
45
- this.batchDepth = 0;
46
- }
47
- schedule(effect2) {
48
- if (effect2.disposed) return;
49
- this.dirtyEffects.add(effect2);
50
- this.lowPriorityEffects.delete(effect2);
51
- this.ensureScheduled();
52
- }
53
- /** Queue an effect behind normal updates while preserving deterministic order. */
54
- scheduleLow(effect2) {
55
- if (effect2.disposed) return;
56
- if (!this.dirtyEffects.has(effect2)) this.lowPriorityEffects.add(effect2);
57
- this.ensureScheduled();
58
- }
59
- ensureScheduled() {
60
- if (this.batchDepth === 0 && !this.flushing && !this.scheduled) {
61
- this.scheduled = true;
62
- queueMicrotask(() => {
63
- this.scheduled = false;
64
- this.flush();
65
- });
66
- }
67
- }
68
- remove(effect2) {
69
- this.dirtyEffects.delete(effect2);
70
- this.lowPriorityEffects.delete(effect2);
71
- }
72
- batch(fn) {
73
- this.batchDepth++;
74
- try {
75
- return fn();
76
- } finally {
77
- this.batchDepth--;
78
- if (this.batchDepth === 0) this.flush();
79
- }
80
- }
81
- flush() {
82
- if (this.flushing || this.batchDepth > 0) return;
83
- this.flushing = true;
84
- let rounds = 0;
85
- let firstError;
86
- let hasError = false;
87
- try {
88
- while (this.dirtyEffects.size > 0 || this.lowPriorityEffects.size > 0) {
89
- if (++rounds > 100) {
90
- this.dirtyEffects.clear();
91
- this.lowPriorityEffects.clear();
92
- throw new Error("Vobs: \u54CD\u5E94\u5F0F\u66F4\u65B0\u8D85\u8FC7 100 \u8F6E\uFF0C\u53EF\u80FD\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56");
93
- }
94
- this.collectRunnable(this.dirtyEffects, this.normalBuffer);
95
- this.collectRunnable(this.lowPriorityEffects, this.lowBuffer);
96
- sortEffects(this.normalBuffer);
97
- sortEffects(this.lowBuffer);
98
- for (const effect2 of this.normalBuffer) {
99
- try {
100
- effect2.run();
101
- } catch (error) {
102
- if (!hasError) {
103
- firstError = error;
104
- hasError = true;
105
- }
106
- }
107
- }
108
- for (const effect2 of this.lowBuffer) {
109
- try {
110
- effect2.run();
111
- } catch (error) {
112
- if (!hasError) {
113
- firstError = error;
114
- hasError = true;
115
- }
116
- }
117
- }
118
- this.normalBuffer.length = 0;
119
- this.lowBuffer.length = 0;
120
- }
121
- } finally {
122
- this.normalBuffer.length = 0;
123
- this.lowBuffer.length = 0;
124
- this.flushing = false;
125
- }
126
- if (hasError) throw firstError;
127
- }
128
- /** 收集未 disposed 的 effect 并清空源集合;run() 期间新调度的 effect 留给下一轮。 */
129
- collectRunnable(source, target) {
130
- for (const effect2 of source) {
131
- if (!effect2.disposed) target.push(effect2);
132
- }
133
- source.clear();
134
- }
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
135
11
  };
136
- __name(_Scheduler, "Scheduler");
137
- var Scheduler = _Scheduler;
138
- function sortEffects(effects) {
139
- if (effects.length > 1) {
140
- effects.sort((a, b) => b.depth - a.depth || a.order - b.order);
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 });
141
17
  }
142
- }
143
- __name(sortEffects, "sortEffects");
144
- var scheduler = new Scheduler();
145
-
146
- // packages/reactivity/src/effect.ts
147
- var nextEffectOrder = 1;
148
- function cleanupDependencies(subscriber) {
149
- for (const dependency of subscriber.dependencies) {
150
- dependency.unsubscribe(subscriber);
151
- }
152
- subscriber.dependencies.clear();
153
- }
154
- __name(cleanupDependencies, "cleanupDependencies");
155
- function effect(callback) {
156
- const owner = getCurrentOwner();
157
- let cleanup;
158
- let dirty = true;
159
- let disposed = false;
160
- const eff = {
161
- order: nextEffectOrder++,
162
- depth: owner?.depth ?? 0,
163
- dependencies: /* @__PURE__ */ new Set(),
164
- get disposed() {
165
- return disposed;
166
- },
167
- notify() {
168
- if (disposed || dirty) return;
169
- dirty = true;
170
- scheduler.schedule(eff);
171
- },
172
- run() {
173
- if (disposed || !dirty) return;
174
- dirty = false;
175
- const previousCleanup = cleanup;
176
- cleanup = void 0;
177
- let cleanupError;
178
- if (previousCleanup) {
179
- try {
180
- previousCleanup();
181
- } catch (error) {
182
- cleanupError = error;
183
- }
184
- }
185
- cleanupDependencies(eff);
186
- const previous = getCurrentSubscriber();
187
- setCurrentSubscriber(eff);
188
- let thrown;
189
- let handled = false;
190
- try {
191
- const result = owner ? owner.run(callback) : callback();
192
- cleanup = typeof result === "function" ? result : void 0;
193
- } catch (error) {
194
- thrown = error;
195
- handled = false;
196
- if (!handled) throw error;
197
- } finally {
198
- setCurrentSubscriber(previous);
199
- }
200
- if (cleanupError && !thrown) throw cleanupError;
201
- },
202
- scheduleLow() {
203
- if (disposed || dirty) return;
204
- dirty = true;
205
- scheduler.scheduleLow(eff);
206
- },
207
- dispose() {
208
- if (disposed) return;
209
- disposed = true;
210
- dirty = false;
211
- scheduler.remove(eff);
212
- const previousCleanup = cleanup;
213
- cleanup = void 0;
214
- let cleanupError;
215
- if (previousCleanup) {
216
- try {
217
- previousCleanup();
218
- } catch (error) {
219
- cleanupError = error;
220
- }
221
- }
222
- cleanupDependencies(eff);
223
- if (cleanupError) throw cleanupError;
224
- }
225
- };
226
- eff.run();
227
- return eff;
228
- }
229
- __name(effect, "effect");
230
-
231
- // packages/runtime/src/debug.ts
232
- var activeRuntimeDebugHooks = null;
233
- function getRuntimeDebugHooks() {
234
- return activeRuntimeDebugHooks;
235
- }
236
- __name(getRuntimeDebugHooks, "getRuntimeDebugHooks");
237
- function invokeRuntimeDebug(name, ...args) {
238
- return;
239
- }
240
- __name(invokeRuntimeDebug, "invokeRuntimeDebug");
241
- function readDebugValue(read) {
242
- try {
243
- return read();
244
- } catch {
245
- return "[Uninspectable]";
246
- }
247
- }
248
- __name(readDebugValue, "readDebugValue");
249
- function describeDebugNode(node) {
250
- if (!node || typeof node !== "object") return "node";
251
- const value = node;
252
- const name = typeof value.tagName === "string" ? value.tagName.toLowerCase() : typeof value.nodeName === "string" ? value.nodeName.toLowerCase() : "node";
253
- const id = typeof value.id === "string" && value.id ? `#${value.id}` : "";
254
- const className = typeof value.className === "string" && value.className ? `.${value.className.trim().split(/\s+/).filter(Boolean).join(".")}` : "";
255
- return `${name}${id}${className}`;
256
- }
257
- __name(describeDebugNode, "describeDebugNode");
258
-
259
- // packages/runtime/src/hmr.ts
260
- var globalTarget = globalThis;
261
- var hmrGlobal = globalTarget.__VOBS_HMR__ ?? { modules: /* @__PURE__ */ new Map() };
262
- globalTarget.__VOBS_HMR__ = hmrGlobal;
263
- function markHmrInstanceMounted(node, parent) {
264
- const instance = hmrInstances.get(node);
265
- if (instance) instance.parent = parent;
266
- }
267
- __name(markHmrInstanceMounted, "markHmrInstanceMounted");
268
- var hmrInstances = /* @__PURE__ */ new WeakMap();
269
- function getRenderer() {
270
- {
271
- throw new Error("\u6E32\u67D3\u5668\u672A\u521D\u59CB\u5316");
272
- }
273
- }
274
- __name(getRenderer, "getRenderer");
275
- function createText(content) {
276
- return getRenderer().createText(content);
277
- }
278
- __name(createText, "createText");
279
- function createComment(content) {
280
- return getRenderer().createComment(content);
281
- }
282
- __name(createComment, "createComment");
283
- function insertBefore(parent, child, anchor) {
284
- if (isVobsFragment(child)) {
285
- child.mount(parent, isVobsFragment(anchor) ? anchor.start : anchor);
286
- return;
287
- }
288
- getRenderer().insertBefore(parent, child, isVobsFragment(anchor) ? anchor.start : anchor);
289
- markHmrInstanceMounted(child, parent);
290
- }
291
- __name(insertBefore, "insertBefore");
292
- function setTextContent(node, content) {
293
- getRenderer().setTextContent(node, content);
294
- }
295
- __name(setTextContent, "setTextContent");
296
- function setAttribute(node, key, value) {
297
- getRenderer().setAttribute(node, key, value);
298
- }
299
- __name(setAttribute, "setAttribute");
300
-
301
- // packages/runtime/src/fragment.ts
302
- function createFragment(factory) {
303
- const start = createComment("vobs:fragment:start");
304
- const end = createComment("vobs:fragment:end");
305
- let parent = null;
306
- let initialized = false;
307
- const fragment = {
308
- kind: "vobs-fragment",
309
- start,
310
- end,
311
- mount(nextParent, anchor) {
312
- if (parent && parent !== nextParent) {
313
- throw new Error("Vobs Fragment: \u4E0D\u80FD\u8DE8\u7236\u8282\u70B9\u79FB\u52A8 Fragment");
314
- }
315
- if (initialized) {
316
- moveRange(nextParent, start, end, anchor);
317
- return;
318
- }
319
- const renderer = getRenderer();
320
- renderer.insertBefore(nextParent, start, anchor);
321
- renderer.insertBefore(nextParent, end, anchor);
322
- parent = nextParent;
323
- initialized = true;
324
- factory(nextParent, end);
325
- },
326
- unmount(nextParent) {
327
- if (!initialized || parent !== nextParent) {
328
- throw new Error("Vobs Fragment: Fragment \u4E0D\u5C5E\u4E8E\u6307\u5B9A\u7236\u8282\u70B9");
329
- }
330
- const renderer = getRenderer();
331
- let current = renderer.nextSibling(start);
332
- while (current && current !== end) {
333
- const next = renderer.nextSibling(current);
334
- renderer.removeChild(nextParent, current);
335
- current = next;
336
- }
337
- renderer.removeChild(nextParent, start);
338
- renderer.removeChild(nextParent, end);
339
- parent = null;
340
- initialized = false;
341
- }
342
- };
343
- return fragment;
344
- }
345
- __name(createFragment, "createFragment");
346
- function isVobsFragment(value) {
347
- return Boolean(value) && typeof value === "object" && value.kind === "vobs-fragment";
348
- }
349
- __name(isVobsFragment, "isVobsFragment");
350
- function moveRange(parent, start, end, anchor) {
351
- const renderer = getRenderer();
352
- const nodes = [start];
353
- let current = renderer.nextSibling(start);
354
- while (current) {
355
- nodes.push(current);
356
- if (current === end) break;
357
- current = renderer.nextSibling(current);
358
- }
359
- if (nodes[nodes.length - 1] !== end) {
360
- throw new Error("Vobs Fragment: \u627E\u4E0D\u5230\u7ED3\u675F\u951A\u70B9");
361
- }
362
- for (const node of nodes) renderer.insertBefore(parent, node, anchor);
363
- }
364
- __name(moveRange, "moveRange");
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
365
21
 
366
22
  // packages/table/src/utils.ts
23
+ var utils_exports = {};
24
+ __export(utils_exports, {
25
+ bindClassList: () => bindClassList,
26
+ bindCommonAttributes: () => bindCommonAttributes,
27
+ bindStyle: () => bindStyle,
28
+ bindText: () => bindText,
29
+ createDefaultColumnSettings: () => createDefaultColumnSettings,
30
+ hasProp: () => hasProp,
31
+ isColumnWidthValue: () => isColumnWidthValue,
32
+ normalizeColumnSettings: () => normalizeColumnSettings,
33
+ normalizePixels: () => normalizePixels,
34
+ orderColumns: () => orderColumns,
35
+ readProp: () => readProp,
36
+ resolveSlot: () => resolveSlot,
37
+ setOptionalAttribute: () => setOptionalAttribute
38
+ });
39
+ module.exports = __toCommonJS(utils_exports);
40
+ var import_reactivity = require("@vobs/reactivity");
41
+ var import_vobs = require("@vobs/vobs");
367
42
  function readProp(props, name, fallback) {
368
43
  const value = Reflect.get(props, name);
369
44
  return value === void 0 ? fallback : value;
@@ -374,46 +49,46 @@ function hasProp(props, name) {
374
49
  }
375
50
  __name(hasProp, "hasProp");
376
51
  function bindClassList(root, props, classes) {
377
- effect(() => {
52
+ (0, import_reactivity.effect)(() => {
378
53
  const userClasses = [readString(props, "class"), readString(props, "className")];
379
- setAttribute(root, "class", [...classes(), ...userClasses].filter(Boolean).join(" "));
54
+ (0, import_vobs.setAttribute)(root, "class", [...classes(), ...userClasses].filter(Boolean).join(" "));
380
55
  });
381
56
  }
382
57
  __name(bindClassList, "bindClassList");
383
58
  function bindCommonAttributes(root, props, skip) {
384
59
  const ignored = /* @__PURE__ */ new Set([...skip, "class", "className", "style", "children"]);
385
- effect(() => {
60
+ (0, import_reactivity.effect)(() => {
386
61
  for (const name of Object.keys(props)) {
387
62
  if (ignored.has(name) || name.startsWith("on")) continue;
388
63
  if (name !== "id" && name !== "title" && name !== "role" && name !== "tabIndex" && !name.startsWith("aria-") && !name.startsWith("data-")) continue;
389
64
  const value = Reflect.get(props, name);
390
65
  if (value === void 0 || value === null || value === false) removeAttribute(root, normalizeAttributeName(name));
391
- else setAttribute(root, normalizeAttributeName(name), String(value));
66
+ else (0, import_vobs.setAttribute)(root, normalizeAttributeName(name), String(value));
392
67
  }
393
68
  });
394
69
  }
395
70
  __name(bindCommonAttributes, "bindCommonAttributes");
396
71
  function bindStyle(root, props, internal = () => "") {
397
- effect(() => {
72
+ (0, import_reactivity.effect)(() => {
398
73
  const value = [internal(), readString(props, "style")].filter(Boolean).join("; ");
399
- if (value) setAttribute(root, "style", value);
74
+ if (value) (0, import_vobs.setAttribute)(root, "style", value);
400
75
  else removeAttribute(root, "style");
401
76
  });
402
77
  }
403
78
  __name(bindStyle, "bindStyle");
404
- function bindText2(node, read) {
405
- effect(() => setTextContent(node, String(read() ?? "")));
79
+ function bindText(node, read) {
80
+ (0, import_reactivity.effect)(() => (0, import_vobs.setTextContent)(node, String(read() ?? "")));
406
81
  }
407
- __name(bindText2, "bindText");
82
+ __name(bindText, "bindText");
408
83
  function resolveSlot(value) {
409
84
  const resolved = typeof value === "function" ? value() : value;
410
85
  if (resolved === void 0 || resolved === null) return null;
411
- if (typeof resolved === "string" || typeof resolved === "number") return createText(String(resolved));
86
+ if (typeof resolved === "string" || typeof resolved === "number") return (0, import_vobs.createText)(String(resolved));
412
87
  if (Array.isArray(resolved)) {
413
- return createFragment((parent, anchor) => {
88
+ return (0, import_vobs.createFragment)((parent, anchor) => {
414
89
  for (const child of resolved) {
415
90
  const node = resolveSlot(child);
416
- if (node) insertBefore(parent, node, anchor);
91
+ if (node) (0, import_vobs.insertBefore)(parent, node, anchor);
417
92
  }
418
93
  });
419
94
  }
@@ -422,7 +97,7 @@ function resolveSlot(value) {
422
97
  __name(resolveSlot, "resolveSlot");
423
98
  function setOptionalAttribute(node, name, value) {
424
99
  if (value === void 0 || value === null || value === false || value === "") removeAttribute(node, name);
425
- else setAttribute(node, name, String(value));
100
+ else (0, import_vobs.setAttribute)(node, name, String(value));
426
101
  }
427
102
  __name(setOptionalAttribute, "setOptionalAttribute");
428
103
  function normalizePixels(value) {
@@ -507,19 +182,20 @@ function removeAttribute(node, name) {
507
182
  node.removeAttribute(name);
508
183
  }
509
184
  __name(removeAttribute, "removeAttribute");
510
-
511
- exports.bindClassList = bindClassList;
512
- exports.bindCommonAttributes = bindCommonAttributes;
513
- exports.bindStyle = bindStyle;
514
- exports.bindText = bindText2;
515
- exports.createDefaultColumnSettings = createDefaultColumnSettings;
516
- exports.hasProp = hasProp;
517
- exports.isColumnWidthValue = isColumnWidthValue;
518
- exports.normalizeColumnSettings = normalizeColumnSettings;
519
- exports.normalizePixels = normalizePixels;
520
- exports.orderColumns = orderColumns;
521
- exports.readProp = readProp;
522
- exports.resolveSlot = resolveSlot;
523
- exports.setOptionalAttribute = setOptionalAttribute;
524
- //# sourceMappingURL=utils.cjs.map
185
+ // Annotate the CommonJS export names for ESM import in node:
186
+ 0 && (module.exports = {
187
+ bindClassList,
188
+ bindCommonAttributes,
189
+ bindStyle,
190
+ bindText,
191
+ createDefaultColumnSettings,
192
+ hasProp,
193
+ isColumnWidthValue,
194
+ normalizeColumnSettings,
195
+ normalizePixels,
196
+ orderColumns,
197
+ readProp,
198
+ resolveSlot,
199
+ setOptionalAttribute
200
+ });
525
201
  //# sourceMappingURL=utils.cjs.map