@fieldnotes/core 0.45.0 → 0.46.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/index.cjs +27 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -8
- package/dist/index.d.ts +16 -8
- package/dist/index.js +27 -20
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2232,6 +2232,7 @@ var Background = class {
|
|
|
2232
2232
|
};
|
|
2233
2233
|
|
|
2234
2234
|
// src/core/event-bus.ts
|
|
2235
|
+
var EMPTY_META = Object.freeze({});
|
|
2235
2236
|
var EventBus = class {
|
|
2236
2237
|
listeners = /* @__PURE__ */ new Map();
|
|
2237
2238
|
on(event, listener) {
|
|
@@ -2247,10 +2248,10 @@ var EventBus = class {
|
|
|
2247
2248
|
off(event, listener) {
|
|
2248
2249
|
this.listeners.get(event)?.delete(listener);
|
|
2249
2250
|
}
|
|
2250
|
-
emit(event, data) {
|
|
2251
|
+
emit(event, data, meta = EMPTY_META) {
|
|
2251
2252
|
this.listeners.get(event)?.forEach((listener) => {
|
|
2252
2253
|
try {
|
|
2253
|
-
listener(data);
|
|
2254
|
+
listener(data, meta);
|
|
2254
2255
|
} catch (err) {
|
|
2255
2256
|
console.error(`[fieldnotes] listener error for "${String(event)}"`, err);
|
|
2256
2257
|
}
|
|
@@ -2570,15 +2571,15 @@ var ElementStore = class {
|
|
|
2570
2571
|
const angle = element.rotation ?? 0;
|
|
2571
2572
|
return angle === 0 ? bounds : rotatedAABB(bounds, angle);
|
|
2572
2573
|
}
|
|
2573
|
-
add(element) {
|
|
2574
|
+
add(element, meta) {
|
|
2574
2575
|
this.sortedCache = null;
|
|
2575
2576
|
this._versions.set(element.id, 0);
|
|
2576
2577
|
this.elements.set(element.id, element);
|
|
2577
2578
|
const bounds = this.indexBounds(element);
|
|
2578
2579
|
if (bounds) this.spatialIndex.insert(element.id, bounds);
|
|
2579
|
-
this.bus.emit("add", element);
|
|
2580
|
+
this.bus.emit("add", element, meta);
|
|
2580
2581
|
}
|
|
2581
|
-
update(id, partial) {
|
|
2582
|
+
update(id, partial, meta) {
|
|
2582
2583
|
const existing = this.elements.get(id);
|
|
2583
2584
|
if (!existing) return;
|
|
2584
2585
|
this.sortedCache = null;
|
|
@@ -2605,28 +2606,28 @@ var ElementStore = class {
|
|
|
2605
2606
|
if (newBounds) {
|
|
2606
2607
|
this.spatialIndex.update(id, newBounds);
|
|
2607
2608
|
}
|
|
2608
|
-
this.bus.emit("update", { previous: existing, current: updated });
|
|
2609
|
+
this.bus.emit("update", { previous: existing, current: updated }, meta);
|
|
2609
2610
|
}
|
|
2610
|
-
remove(id) {
|
|
2611
|
+
remove(id, meta) {
|
|
2611
2612
|
const element = this.elements.get(id);
|
|
2612
2613
|
if (!element) return;
|
|
2613
2614
|
this.sortedCache = null;
|
|
2614
2615
|
this._versions.delete(id);
|
|
2615
2616
|
this.elements.delete(id);
|
|
2616
2617
|
this.spatialIndex.remove(id);
|
|
2617
|
-
this.bus.emit("remove", element);
|
|
2618
|
+
this.bus.emit("remove", element, meta);
|
|
2618
2619
|
}
|
|
2619
|
-
clear() {
|
|
2620
|
+
clear(meta) {
|
|
2620
2621
|
this.sortedCache = null;
|
|
2621
2622
|
this._versions.clear();
|
|
2622
2623
|
this.elements.clear();
|
|
2623
2624
|
this.spatialIndex.clear();
|
|
2624
|
-
this.bus.emit("clear", null);
|
|
2625
|
+
this.bus.emit("clear", null, meta);
|
|
2625
2626
|
}
|
|
2626
2627
|
snapshot() {
|
|
2627
2628
|
return this.getAll().map((el) => ({ ...el }));
|
|
2628
2629
|
}
|
|
2629
|
-
loadSnapshot(elements) {
|
|
2630
|
+
loadSnapshot(elements, meta) {
|
|
2630
2631
|
this.sortedCache = null;
|
|
2631
2632
|
this._versions.clear();
|
|
2632
2633
|
this.elements.clear();
|
|
@@ -2643,9 +2644,9 @@ var ElementStore = class {
|
|
|
2643
2644
|
el.cachedControlPoint = getArrowControlPoint(el.from, el.to, el.bend);
|
|
2644
2645
|
}
|
|
2645
2646
|
}
|
|
2646
|
-
this.bus.emit("clear", null);
|
|
2647
|
+
this.bus.emit("clear", null, meta);
|
|
2647
2648
|
for (const el of elements) {
|
|
2648
|
-
this.bus.emit("add", el);
|
|
2649
|
+
this.bus.emit("add", el, meta);
|
|
2649
2650
|
}
|
|
2650
2651
|
}
|
|
2651
2652
|
bringToFront(id) {
|
|
@@ -4920,15 +4921,18 @@ var UpdateLayerCommand = class {
|
|
|
4920
4921
|
};
|
|
4921
4922
|
|
|
4922
4923
|
// src/history/history-recorder.ts
|
|
4924
|
+
function isExternalChange(meta) {
|
|
4925
|
+
return meta.origin !== void 0 && meta.origin !== "local";
|
|
4926
|
+
}
|
|
4923
4927
|
var HistoryRecorder = class {
|
|
4924
4928
|
constructor(store, stack, layerManager) {
|
|
4925
4929
|
this.store = store;
|
|
4926
4930
|
this.stack = stack;
|
|
4927
4931
|
this.layerManager = layerManager;
|
|
4928
4932
|
this.unsubscribers = [
|
|
4929
|
-
store.on("add", (el) => this.onAdd(el)),
|
|
4930
|
-
store.on("remove", (el) => this.onRemove(el)),
|
|
4931
|
-
store.on("update", ({ previous, current }) => this.onUpdate(previous, current))
|
|
4933
|
+
store.on("add", (el, meta) => this.onAdd(el, meta)),
|
|
4934
|
+
store.on("remove", (el, meta) => this.onRemove(el, meta)),
|
|
4935
|
+
store.on("update", ({ previous, current }, meta) => this.onUpdate(previous, current, meta))
|
|
4932
4936
|
];
|
|
4933
4937
|
if (layerManager) {
|
|
4934
4938
|
this.unsubscribers.push(
|
|
@@ -4984,18 +4988,21 @@ var HistoryRecorder = class {
|
|
|
4984
4988
|
this.stack.push(command);
|
|
4985
4989
|
}
|
|
4986
4990
|
}
|
|
4987
|
-
onAdd(element) {
|
|
4991
|
+
onAdd(element, meta) {
|
|
4992
|
+
if (isExternalChange(meta)) return;
|
|
4988
4993
|
if (!this.recording) return;
|
|
4989
4994
|
this.record(new AddElementCommand(element));
|
|
4990
4995
|
}
|
|
4991
|
-
onRemove(element) {
|
|
4996
|
+
onRemove(element, meta) {
|
|
4997
|
+
if (isExternalChange(meta)) return;
|
|
4992
4998
|
if (!this.recording) return;
|
|
4993
4999
|
if (this.transaction && this.updateSnapshots.has(element.id)) {
|
|
4994
5000
|
this.updateSnapshots.delete(element.id);
|
|
4995
5001
|
}
|
|
4996
5002
|
this.record(new RemoveElementCommand(element));
|
|
4997
5003
|
}
|
|
4998
|
-
onUpdate(previous, current) {
|
|
5004
|
+
onUpdate(previous, current, meta) {
|
|
5005
|
+
if (isExternalChange(meta)) return;
|
|
4999
5006
|
if (!this.recording) return;
|
|
5000
5007
|
if (this.transaction) {
|
|
5001
5008
|
if (!this.updateSnapshots.has(current.id)) {
|
|
@@ -10167,7 +10174,7 @@ var LaserTool = class {
|
|
|
10167
10174
|
};
|
|
10168
10175
|
|
|
10169
10176
|
// src/index.ts
|
|
10170
|
-
var VERSION = "0.
|
|
10177
|
+
var VERSION = "0.46.0";
|
|
10171
10178
|
// Annotate the CommonJS export names for ESM import in node:
|
|
10172
10179
|
0 && (module.exports = {
|
|
10173
10180
|
ArrowTool,
|