[editor] Update the AnnotationStorage.hash
-getter to support editing
While calling `JSON.stringify(...)` on a class-instance obviously "works" (as in it doesn't throw), since it's really just an Object, it doesn't really make much sense in the context of the `AnnotationStorage.hash`-getter. Also, access the *inverse* Viewport-transform correctly in `FreeTextEditor.serialize` to prevent errors being thrown when that method is invoked. Finally, slightly updates the `AnnotationStorage.serializable`-getter to improve consistency within the class.
This commit is contained in:
parent
87fdb0eb42
commit
51c47acb41
@ -142,11 +142,8 @@ class AnnotationStorage {
|
|||||||
|
|
||||||
const clone = new Map();
|
const clone = new Map();
|
||||||
for (const [key, value] of this._storage) {
|
for (const [key, value] of this._storage) {
|
||||||
if (value instanceof AnnotationEditor) {
|
const val = value instanceof AnnotationEditor ? value.serialize() : value;
|
||||||
clone.set(key, value.serialize());
|
clone.set(key, val);
|
||||||
} else {
|
|
||||||
clone.set(key, value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return clone;
|
return clone;
|
||||||
}
|
}
|
||||||
@ -159,7 +156,8 @@ class AnnotationStorage {
|
|||||||
const hash = new MurmurHash3_64();
|
const hash = new MurmurHash3_64();
|
||||||
|
|
||||||
for (const [key, value] of this._storage) {
|
for (const [key, value] of this._storage) {
|
||||||
hash.update(`${key}:${JSON.stringify(value)}`);
|
const val = value instanceof AnnotationEditor ? value.serialize() : value;
|
||||||
|
hash.update(`${key}:${JSON.stringify(val)}`);
|
||||||
}
|
}
|
||||||
return hash.hexdigest();
|
return hash.hexdigest();
|
||||||
}
|
}
|
||||||
|
@ -203,12 +203,12 @@ class FreeTextEditor extends AnnotationEditor {
|
|||||||
const rect = this.div.getBoundingClientRect();
|
const rect = this.div.getBoundingClientRect();
|
||||||
const [x1, y1] = Util.applyTransform(
|
const [x1, y1] = Util.applyTransform(
|
||||||
[this.x, this.y + rect.height],
|
[this.x, this.y + rect.height],
|
||||||
this.parent.viewport.inverseTransform
|
this.parent.inverseViewportTransform
|
||||||
);
|
);
|
||||||
|
|
||||||
const [x2, y2] = Util.applyTransform(
|
const [x2, y2] = Util.applyTransform(
|
||||||
[this.x + rect.width, this.y],
|
[this.x + rect.width, this.y],
|
||||||
this.parent.viewport.inverseTransform
|
this.parent.inverseViewportTransform
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
Loading…
Reference in New Issue
Block a user