@inditextech/weave-sdk 3.2.2 → 3.2.4
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/sdk.js +91 -92
- package/dist/sdk.node.js +91 -92
- package/dist/types.d.ts +15 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +91 -92
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/sdk.js
CHANGED
|
@@ -21971,7 +21971,7 @@ var WeaveRegisterManager = class {
|
|
|
21971
21971
|
|
|
21972
21972
|
//#endregion
|
|
21973
21973
|
//#region package.json
|
|
21974
|
-
var version = "3.2.
|
|
21974
|
+
var version = "3.2.4";
|
|
21975
21975
|
|
|
21976
21976
|
//#endregion
|
|
21977
21977
|
//#region src/managers/setup.ts
|
|
@@ -25722,13 +25722,57 @@ var WeaveImageCrop = class WeaveImageCrop {
|
|
|
25722
25722
|
};
|
|
25723
25723
|
|
|
25724
25724
|
//#endregion
|
|
25725
|
-
//#region src/
|
|
25726
|
-
const
|
|
25725
|
+
//#region src/utils/cursors.ts
|
|
25726
|
+
const doPreloadCursors = async (cursorsToPreload, setCursor, getFallbackCursor, resetCursors) => {
|
|
25727
|
+
resetCursors();
|
|
25728
|
+
const promiseHandler = (state, value, src) => new Promise((resolveInt, rejectInt) => {
|
|
25729
|
+
const img = Konva.Util.createImageElement();
|
|
25730
|
+
img.onload = () => {
|
|
25731
|
+
const canvas = document.createElement("canvas");
|
|
25732
|
+
canvas.width = img.width;
|
|
25733
|
+
canvas.height = img.height;
|
|
25734
|
+
const ctx = canvas.getContext("2d");
|
|
25735
|
+
ctx?.drawImage(img, 0, 0);
|
|
25736
|
+
const dataURL = canvas.toDataURL("image/png");
|
|
25737
|
+
const tokens = value.split(" ");
|
|
25738
|
+
tokens[0] = `url(${dataURL})`;
|
|
25739
|
+
setCursor(state, tokens.join(" "));
|
|
25740
|
+
resolveInt();
|
|
25741
|
+
};
|
|
25742
|
+
img.onerror = () => {
|
|
25743
|
+
setCursor(state, getFallbackCursor(state));
|
|
25744
|
+
rejectInt(new Error(`Failed to load cursor: ${src}`));
|
|
25745
|
+
};
|
|
25746
|
+
img.src = src;
|
|
25747
|
+
});
|
|
25748
|
+
return new Promise((resolve) => {
|
|
25749
|
+
(async () => {
|
|
25750
|
+
const cursors = Object.keys(cursorsToPreload);
|
|
25751
|
+
const cursorUrls = [];
|
|
25752
|
+
for (const cursorKey of cursors) {
|
|
25753
|
+
const cursorValue = cursorsToPreload[cursorKey];
|
|
25754
|
+
const { preload, cursor } = extractCursorUrl(cursorValue);
|
|
25755
|
+
if (preload) cursorUrls.push({
|
|
25756
|
+
state: cursorKey,
|
|
25757
|
+
value: cursorValue,
|
|
25758
|
+
src: cursor
|
|
25759
|
+
});
|
|
25760
|
+
}
|
|
25761
|
+
if (cursorUrls.length > 0) {
|
|
25762
|
+
const cursorsPreloading = [];
|
|
25763
|
+
for (const { state, value, src } of cursorUrls) cursorsPreloading.push(promiseHandler(state, value, src));
|
|
25764
|
+
await Promise.allSettled(cursorsPreloading);
|
|
25765
|
+
}
|
|
25766
|
+
resolve();
|
|
25767
|
+
})();
|
|
25768
|
+
});
|
|
25769
|
+
};
|
|
25770
|
+
const extractCursorUrl = (cursor) => {
|
|
25727
25771
|
const lower = cursor.toLowerCase();
|
|
25728
25772
|
const start = lower.indexOf("url(");
|
|
25729
25773
|
if (start === -1) return {
|
|
25730
25774
|
preload: false,
|
|
25731
|
-
cursor
|
|
25775
|
+
cursor: null
|
|
25732
25776
|
};
|
|
25733
25777
|
let i = start + 4;
|
|
25734
25778
|
const len = cursor.length;
|
|
@@ -25741,25 +25785,20 @@ const extractCursorUrl = (cursor, fallback) => {
|
|
|
25741
25785
|
let buf = "";
|
|
25742
25786
|
for (; i < len; i++) {
|
|
25743
25787
|
const ch = cursor[i];
|
|
25744
|
-
if (quote) {
|
|
25745
|
-
|
|
25746
|
-
|
|
25747
|
-
|
|
25748
|
-
|
|
25749
|
-
|
|
25750
|
-
} else {
|
|
25788
|
+
if (quote && ch === quote) {
|
|
25789
|
+
i++;
|
|
25790
|
+
break;
|
|
25791
|
+
}
|
|
25792
|
+
if (quote) buf += ch;
|
|
25793
|
+
else {
|
|
25751
25794
|
if (ch === ")") break;
|
|
25752
25795
|
buf += ch;
|
|
25753
25796
|
}
|
|
25754
25797
|
}
|
|
25755
25798
|
const url = buf.trim();
|
|
25756
|
-
if (!url) return {
|
|
25757
|
-
preload: false,
|
|
25758
|
-
cursor: fallback
|
|
25759
|
-
};
|
|
25760
|
-
if (!isAllowedUrl(url)) return {
|
|
25799
|
+
if (!url || url && !isAllowedUrl(url)) return {
|
|
25761
25800
|
preload: false,
|
|
25762
|
-
cursor:
|
|
25801
|
+
cursor: null
|
|
25763
25802
|
};
|
|
25764
25803
|
return {
|
|
25765
25804
|
preload: true,
|
|
@@ -25782,6 +25821,8 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
25782
25821
|
imageTryoutAttempts = {};
|
|
25783
25822
|
imageTryoutIds = {};
|
|
25784
25823
|
nodeType = WEAVE_IMAGE_NODE_TYPE;
|
|
25824
|
+
cursorsFallback = { loading: "wait" };
|
|
25825
|
+
cursors = {};
|
|
25785
25826
|
constructor(params) {
|
|
25786
25827
|
super();
|
|
25787
25828
|
const { config } = params ?? {};
|
|
@@ -25800,31 +25841,15 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
25800
25841
|
this.imageFallback = {};
|
|
25801
25842
|
}
|
|
25802
25843
|
preloadCursors() {
|
|
25803
|
-
const promiseHandler = (src) => new Promise((resolveInt, rejectInt) => {
|
|
25804
|
-
const img = Konva.Util.createImageElement();
|
|
25805
|
-
img.onload = () => {
|
|
25806
|
-
resolveInt();
|
|
25807
|
-
};
|
|
25808
|
-
img.onerror = () => {
|
|
25809
|
-
rejectInt(new Error(`Failed to load cursor image: ${src}`));
|
|
25810
|
-
};
|
|
25811
|
-
img.src = src;
|
|
25812
|
-
});
|
|
25813
25844
|
return new Promise((resolve) => {
|
|
25814
25845
|
(async () => {
|
|
25815
|
-
|
|
25816
|
-
|
|
25817
|
-
|
|
25818
|
-
|
|
25819
|
-
|
|
25820
|
-
|
|
25821
|
-
|
|
25822
|
-
}
|
|
25823
|
-
if (cursorUrls.length > 0) {
|
|
25824
|
-
const cursorsPreloading = [];
|
|
25825
|
-
for (const { src } of cursorUrls) cursorsPreloading.push(promiseHandler(src));
|
|
25826
|
-
await Promise.allSettled(cursorsPreloading);
|
|
25827
|
-
}
|
|
25846
|
+
await doPreloadCursors(this.config.style.cursor, (state, cursor) => {
|
|
25847
|
+
this.cursors[state] = cursor;
|
|
25848
|
+
}, (state) => {
|
|
25849
|
+
return this.cursorsFallback[state] || "default";
|
|
25850
|
+
}, () => {
|
|
25851
|
+
this.cursors = {};
|
|
25852
|
+
});
|
|
25828
25853
|
resolve();
|
|
25829
25854
|
})();
|
|
25830
25855
|
});
|
|
@@ -25908,7 +25933,7 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
25908
25933
|
});
|
|
25909
25934
|
this.setupDefaultNodeAugmentation(image);
|
|
25910
25935
|
image.defineMousePointer = () => {
|
|
25911
|
-
if (this.imageState[id]?.status === "loading") return this.
|
|
25936
|
+
if (this.imageState[id]?.status === "loading") return this.cursors["loading"];
|
|
25912
25937
|
const selectedNodes = this.getSelectionPlugin()?.getSelectedNodes() ?? [];
|
|
25913
25938
|
if (this.isSelecting() && selectedNodes.includes(image)) return "grab";
|
|
25914
25939
|
return "pointer";
|
|
@@ -25991,15 +26016,17 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
25991
26016
|
image.dblClick = () => {
|
|
25992
26017
|
if (this.imageState[id]?.loaded && !this.imageState[id]?.error) this.config.onDblClick?.(this, image);
|
|
25993
26018
|
};
|
|
25994
|
-
|
|
26019
|
+
const hasFinalImageLoaded = this.imageSource[id] && imageProps.imageURL;
|
|
26020
|
+
const hasFallbackAndFinalImageNotLoaded = !imageProps.imageURL && this.imageFallback[id] && this.config.useFallbackImage;
|
|
26021
|
+
if (hasFinalImageLoaded || hasFallbackAndFinalImageNotLoaded) {
|
|
25995
26022
|
imagePlaceholder?.destroy();
|
|
25996
|
-
const imageSource = this.imageSource[id];
|
|
26023
|
+
const imageSource = hasFallbackAndFinalImageNotLoaded ? this.imageFallback[id] : this.imageSource[id];
|
|
25997
26024
|
internalImage.setAttrs({
|
|
25998
26025
|
image: imageSource,
|
|
25999
26026
|
visible: true
|
|
26000
26027
|
});
|
|
26001
|
-
let sourceImageWidth =
|
|
26002
|
-
let sourceImageHeight =
|
|
26028
|
+
let sourceImageWidth = imageSource.width;
|
|
26029
|
+
let sourceImageHeight = imageSource.height;
|
|
26003
26030
|
if (image.getAttrs().imageInfo) {
|
|
26004
26031
|
sourceImageWidth = image.getAttrs().imageInfo.width;
|
|
26005
26032
|
sourceImageHeight = image.getAttrs().imageInfo.height;
|
|
@@ -26017,7 +26044,7 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
26017
26044
|
height: sourceImageHeight
|
|
26018
26045
|
});
|
|
26019
26046
|
this.imageState[id] = {
|
|
26020
|
-
status: "loaded",
|
|
26047
|
+
status: hasFallbackAndFinalImageNotLoaded ? "loading" : "loaded",
|
|
26021
26048
|
loaded: true,
|
|
26022
26049
|
error: false
|
|
26023
26050
|
};
|
|
@@ -26620,12 +26647,16 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
26620
26647
|
const nodeId = nodeInstance.getAttrs().id ?? "";
|
|
26621
26648
|
const isMoveContainer = nodeInstance.getAttr("onMoveContainer");
|
|
26622
26649
|
nodeInstance.setAttr("onMoveContainer", void 0);
|
|
26650
|
+
if (this.imageTryoutIds[nodeId]) {
|
|
26651
|
+
clearTimeout(this.imageTryoutIds[nodeId]);
|
|
26652
|
+
delete this.imageTryoutIds[nodeId];
|
|
26653
|
+
}
|
|
26623
26654
|
if (!isMoveContainer) {
|
|
26624
26655
|
delete this.imageSource[nodeId];
|
|
26625
26656
|
delete this.imageState[nodeId];
|
|
26657
|
+
delete this.imageTryoutAttempts[nodeId];
|
|
26658
|
+
delete this.imageFallback[nodeId];
|
|
26626
26659
|
}
|
|
26627
|
-
delete this.imageTryoutAttempts[nodeId];
|
|
26628
|
-
delete this.imageFallback[nodeId];
|
|
26629
26660
|
nodeInstance.destroy();
|
|
26630
26661
|
}
|
|
26631
26662
|
};
|
|
@@ -33957,7 +33988,8 @@ var WeaveImageToolAction = class extends WeaveAction {
|
|
|
33957
33988
|
uncroppedImage: {
|
|
33958
33989
|
width: imageWidth,
|
|
33959
33990
|
height: imageHeight
|
|
33960
|
-
}
|
|
33991
|
+
},
|
|
33992
|
+
...this.imageAction[nodeId].imageId && { imageId: this.imageAction[nodeId].imageId }
|
|
33961
33993
|
});
|
|
33962
33994
|
this.instance.addNode(node, forceMainContainer ? this.instance.getMainLayer()?.getAttrs().id : this.imageAction[nodeId].container?.getAttrs().id);
|
|
33963
33995
|
this.instance.emitEvent("onAddedImage", { nodeId });
|
|
@@ -36049,50 +36081,17 @@ var WeaveCommentToolAction = class extends WeaveAction {
|
|
|
36049
36081
|
opacity: 1
|
|
36050
36082
|
};
|
|
36051
36083
|
}
|
|
36052
|
-
extractCursorUrl(cursor) {
|
|
36053
|
-
const lower = cursor.toLowerCase();
|
|
36054
|
-
const start = lower.indexOf("url(");
|
|
36055
|
-
if (start === -1) return null;
|
|
36056
|
-
let i = start + 4;
|
|
36057
|
-
const len = cursor.length;
|
|
36058
|
-
while (i < len && /\s/.test(cursor[i])) i++;
|
|
36059
|
-
let quote = null;
|
|
36060
|
-
if (cursor[i] === "\"" || cursor[i] === "'") {
|
|
36061
|
-
quote = cursor[i];
|
|
36062
|
-
i++;
|
|
36063
|
-
}
|
|
36064
|
-
let buf = "";
|
|
36065
|
-
for (; i < len; i++) {
|
|
36066
|
-
const ch = cursor[i];
|
|
36067
|
-
if (quote) {
|
|
36068
|
-
if (ch === quote) {
|
|
36069
|
-
i++;
|
|
36070
|
-
break;
|
|
36071
|
-
}
|
|
36072
|
-
buf += ch;
|
|
36073
|
-
} else {
|
|
36074
|
-
if (ch === ")") break;
|
|
36075
|
-
buf += ch;
|
|
36076
|
-
}
|
|
36077
|
-
}
|
|
36078
|
-
const url = buf.trim();
|
|
36079
|
-
if (!url) return null;
|
|
36080
|
-
return this.isAllowedUrl(url) ? url : null;
|
|
36081
|
-
}
|
|
36082
|
-
isAllowedUrl(value) {
|
|
36083
|
-
if (/^https?:\/\//i.test(value)) return true;
|
|
36084
|
-
if (/^(javascript|data|blob|ftp):/i.test(value)) return false;
|
|
36085
|
-
return true;
|
|
36086
|
-
}
|
|
36087
36084
|
preloadCursors() {
|
|
36088
36085
|
const stage = this.instance.getStage();
|
|
36089
|
-
const cursorUrls = [
|
|
36090
|
-
|
|
36091
|
-
|
|
36092
|
-
|
|
36093
|
-
|
|
36094
|
-
|
|
36095
|
-
|
|
36086
|
+
const cursorUrls = [];
|
|
36087
|
+
for (const cursorKey in this.config.style.cursor) {
|
|
36088
|
+
const cursorValue = this.config.style.cursor[cursorKey];
|
|
36089
|
+
const { preload, cursor } = extractCursorUrl(this.config.style.cursor.add) ?? "";
|
|
36090
|
+
if (preload) cursorUrls.push({
|
|
36091
|
+
src: cursor,
|
|
36092
|
+
cursor: cursorValue
|
|
36093
|
+
});
|
|
36094
|
+
}
|
|
36096
36095
|
const actualCursor = stage.container().style.cursor;
|
|
36097
36096
|
cursorUrls.forEach(({ src, cursor }) => {
|
|
36098
36097
|
const img = Konva.Util.createImageElement();
|
|
@@ -39846,4 +39845,4 @@ function getJSONFromYjsBinary(actualState) {
|
|
|
39846
39845
|
}
|
|
39847
39846
|
|
|
39848
39847
|
//#endregion
|
|
39849
|
-
export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, ARROW_TOOL_ACTION_NAME, ARROW_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, GUIDE_ENTER_SNAPPING_TOLERANCE, GUIDE_EXIT_SNAPPING_TOLERANCE, GUIDE_HORIZONTAL_LINE_NAME, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, GUIDE_VERTICAL_LINE_NAME, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NODE_SNAP_HORIZONTAL, NODE_SNAP_VERTICAL, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS, WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO, WEAVE_GRID_DEFAULT_MAJOR_EVERY, WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_RADIUS, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_STROKE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_DISTANCE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_EDGE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesDistanceSnappingPlugin, WeaveNodesEdgeSnappingPlugin, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, canComposite, clearContainerTargets, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getJSONFromYjsBinary, getPositionRelativeToContainerOnPosition, getSelectedNodesMetadata, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, intersectArrays, isArray, isIOS, isInShadowDOM, isNodeInSelection, isObject, isServer, loadImageSource, mapJsonToYjsArray, mapJsonToYjsElements, mapJsonToYjsMap, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, weavejsToYjsBinary };
|
|
39848
|
+
export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, ARROW_TOOL_ACTION_NAME, ARROW_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, GUIDE_ENTER_SNAPPING_TOLERANCE, GUIDE_EXIT_SNAPPING_TOLERANCE, GUIDE_HORIZONTAL_LINE_NAME, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, GUIDE_VERTICAL_LINE_NAME, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NODE_SNAP_HORIZONTAL, NODE_SNAP_VERTICAL, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS, WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO, WEAVE_GRID_DEFAULT_MAJOR_EVERY, WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_RADIUS, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_STROKE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_DISTANCE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_EDGE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, WEAVE_STAGE_ZOOM_KEY, WEAVE_STAGE_ZOOM_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesDistanceSnappingPlugin, WeaveNodesEdgeSnappingPlugin, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, canComposite, clearContainerTargets, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getJSONFromYjsBinary, getPositionRelativeToContainerOnPosition, getSelectedNodesMetadata, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, intersectArrays, isArray, isIOS, isInShadowDOM, isNodeInSelection, isObject, isServer, loadImageSource, mapJsonToYjsArray, mapJsonToYjsElements, mapJsonToYjsMap, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, weavejsToYjsBinary };
|
package/dist/sdk.node.js
CHANGED
|
@@ -21970,7 +21970,7 @@ var WeaveRegisterManager = class {
|
|
|
21970
21970
|
|
|
21971
21971
|
//#endregion
|
|
21972
21972
|
//#region package.json
|
|
21973
|
-
var version = "3.2.
|
|
21973
|
+
var version = "3.2.4";
|
|
21974
21974
|
|
|
21975
21975
|
//#endregion
|
|
21976
21976
|
//#region src/managers/setup.ts
|
|
@@ -25721,13 +25721,57 @@ var WeaveImageCrop = class WeaveImageCrop {
|
|
|
25721
25721
|
};
|
|
25722
25722
|
|
|
25723
25723
|
//#endregion
|
|
25724
|
-
//#region src/
|
|
25725
|
-
const
|
|
25724
|
+
//#region src/utils/cursors.ts
|
|
25725
|
+
const doPreloadCursors = async (cursorsToPreload, setCursor, getFallbackCursor, resetCursors) => {
|
|
25726
|
+
resetCursors();
|
|
25727
|
+
const promiseHandler = (state, value, src) => new Promise((resolveInt, rejectInt) => {
|
|
25728
|
+
const img = Konva.Util.createImageElement();
|
|
25729
|
+
img.onload = () => {
|
|
25730
|
+
const canvas = document.createElement("canvas");
|
|
25731
|
+
canvas.width = img.width;
|
|
25732
|
+
canvas.height = img.height;
|
|
25733
|
+
const ctx = canvas.getContext("2d");
|
|
25734
|
+
ctx?.drawImage(img, 0, 0);
|
|
25735
|
+
const dataURL = canvas.toDataURL("image/png");
|
|
25736
|
+
const tokens = value.split(" ");
|
|
25737
|
+
tokens[0] = `url(${dataURL})`;
|
|
25738
|
+
setCursor(state, tokens.join(" "));
|
|
25739
|
+
resolveInt();
|
|
25740
|
+
};
|
|
25741
|
+
img.onerror = () => {
|
|
25742
|
+
setCursor(state, getFallbackCursor(state));
|
|
25743
|
+
rejectInt(new Error(`Failed to load cursor: ${src}`));
|
|
25744
|
+
};
|
|
25745
|
+
img.src = src;
|
|
25746
|
+
});
|
|
25747
|
+
return new Promise((resolve) => {
|
|
25748
|
+
(async () => {
|
|
25749
|
+
const cursors = Object.keys(cursorsToPreload);
|
|
25750
|
+
const cursorUrls = [];
|
|
25751
|
+
for (const cursorKey of cursors) {
|
|
25752
|
+
const cursorValue = cursorsToPreload[cursorKey];
|
|
25753
|
+
const { preload, cursor } = extractCursorUrl(cursorValue);
|
|
25754
|
+
if (preload) cursorUrls.push({
|
|
25755
|
+
state: cursorKey,
|
|
25756
|
+
value: cursorValue,
|
|
25757
|
+
src: cursor
|
|
25758
|
+
});
|
|
25759
|
+
}
|
|
25760
|
+
if (cursorUrls.length > 0) {
|
|
25761
|
+
const cursorsPreloading = [];
|
|
25762
|
+
for (const { state, value, src } of cursorUrls) cursorsPreloading.push(promiseHandler(state, value, src));
|
|
25763
|
+
await Promise.allSettled(cursorsPreloading);
|
|
25764
|
+
}
|
|
25765
|
+
resolve();
|
|
25766
|
+
})();
|
|
25767
|
+
});
|
|
25768
|
+
};
|
|
25769
|
+
const extractCursorUrl = (cursor) => {
|
|
25726
25770
|
const lower = cursor.toLowerCase();
|
|
25727
25771
|
const start = lower.indexOf("url(");
|
|
25728
25772
|
if (start === -1) return {
|
|
25729
25773
|
preload: false,
|
|
25730
|
-
cursor
|
|
25774
|
+
cursor: null
|
|
25731
25775
|
};
|
|
25732
25776
|
let i = start + 4;
|
|
25733
25777
|
const len = cursor.length;
|
|
@@ -25740,25 +25784,20 @@ const extractCursorUrl = (cursor, fallback) => {
|
|
|
25740
25784
|
let buf = "";
|
|
25741
25785
|
for (; i < len; i++) {
|
|
25742
25786
|
const ch = cursor[i];
|
|
25743
|
-
if (quote) {
|
|
25744
|
-
|
|
25745
|
-
|
|
25746
|
-
|
|
25747
|
-
|
|
25748
|
-
|
|
25749
|
-
} else {
|
|
25787
|
+
if (quote && ch === quote) {
|
|
25788
|
+
i++;
|
|
25789
|
+
break;
|
|
25790
|
+
}
|
|
25791
|
+
if (quote) buf += ch;
|
|
25792
|
+
else {
|
|
25750
25793
|
if (ch === ")") break;
|
|
25751
25794
|
buf += ch;
|
|
25752
25795
|
}
|
|
25753
25796
|
}
|
|
25754
25797
|
const url = buf.trim();
|
|
25755
|
-
if (!url) return {
|
|
25756
|
-
preload: false,
|
|
25757
|
-
cursor: fallback
|
|
25758
|
-
};
|
|
25759
|
-
if (!isAllowedUrl(url)) return {
|
|
25798
|
+
if (!url || url && !isAllowedUrl(url)) return {
|
|
25760
25799
|
preload: false,
|
|
25761
|
-
cursor:
|
|
25800
|
+
cursor: null
|
|
25762
25801
|
};
|
|
25763
25802
|
return {
|
|
25764
25803
|
preload: true,
|
|
@@ -25781,6 +25820,8 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
25781
25820
|
imageTryoutAttempts = {};
|
|
25782
25821
|
imageTryoutIds = {};
|
|
25783
25822
|
nodeType = WEAVE_IMAGE_NODE_TYPE;
|
|
25823
|
+
cursorsFallback = { loading: "wait" };
|
|
25824
|
+
cursors = {};
|
|
25784
25825
|
constructor(params) {
|
|
25785
25826
|
super();
|
|
25786
25827
|
const { config } = params ?? {};
|
|
@@ -25799,31 +25840,15 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
25799
25840
|
this.imageFallback = {};
|
|
25800
25841
|
}
|
|
25801
25842
|
preloadCursors() {
|
|
25802
|
-
const promiseHandler = (src) => new Promise((resolveInt, rejectInt) => {
|
|
25803
|
-
const img = Konva.Util.createImageElement();
|
|
25804
|
-
img.onload = () => {
|
|
25805
|
-
resolveInt();
|
|
25806
|
-
};
|
|
25807
|
-
img.onerror = () => {
|
|
25808
|
-
rejectInt(new Error(`Failed to load cursor image: ${src}`));
|
|
25809
|
-
};
|
|
25810
|
-
img.src = src;
|
|
25811
|
-
});
|
|
25812
25843
|
return new Promise((resolve) => {
|
|
25813
25844
|
(async () => {
|
|
25814
|
-
|
|
25815
|
-
|
|
25816
|
-
|
|
25817
|
-
|
|
25818
|
-
|
|
25819
|
-
|
|
25820
|
-
|
|
25821
|
-
}
|
|
25822
|
-
if (cursorUrls.length > 0) {
|
|
25823
|
-
const cursorsPreloading = [];
|
|
25824
|
-
for (const { src } of cursorUrls) cursorsPreloading.push(promiseHandler(src));
|
|
25825
|
-
await Promise.allSettled(cursorsPreloading);
|
|
25826
|
-
}
|
|
25845
|
+
await doPreloadCursors(this.config.style.cursor, (state, cursor) => {
|
|
25846
|
+
this.cursors[state] = cursor;
|
|
25847
|
+
}, (state) => {
|
|
25848
|
+
return this.cursorsFallback[state] || "default";
|
|
25849
|
+
}, () => {
|
|
25850
|
+
this.cursors = {};
|
|
25851
|
+
});
|
|
25827
25852
|
resolve();
|
|
25828
25853
|
})();
|
|
25829
25854
|
});
|
|
@@ -25907,7 +25932,7 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
25907
25932
|
});
|
|
25908
25933
|
this.setupDefaultNodeAugmentation(image);
|
|
25909
25934
|
image.defineMousePointer = () => {
|
|
25910
|
-
if (this.imageState[id]?.status === "loading") return this.
|
|
25935
|
+
if (this.imageState[id]?.status === "loading") return this.cursors["loading"];
|
|
25911
25936
|
const selectedNodes = this.getSelectionPlugin()?.getSelectedNodes() ?? [];
|
|
25912
25937
|
if (this.isSelecting() && selectedNodes.includes(image)) return "grab";
|
|
25913
25938
|
return "pointer";
|
|
@@ -25990,15 +26015,17 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
25990
26015
|
image.dblClick = () => {
|
|
25991
26016
|
if (this.imageState[id]?.loaded && !this.imageState[id]?.error) this.config.onDblClick?.(this, image);
|
|
25992
26017
|
};
|
|
25993
|
-
|
|
26018
|
+
const hasFinalImageLoaded = this.imageSource[id] && imageProps.imageURL;
|
|
26019
|
+
const hasFallbackAndFinalImageNotLoaded = !imageProps.imageURL && this.imageFallback[id] && this.config.useFallbackImage;
|
|
26020
|
+
if (hasFinalImageLoaded || hasFallbackAndFinalImageNotLoaded) {
|
|
25994
26021
|
imagePlaceholder?.destroy();
|
|
25995
|
-
const imageSource = this.imageSource[id];
|
|
26022
|
+
const imageSource = hasFallbackAndFinalImageNotLoaded ? this.imageFallback[id] : this.imageSource[id];
|
|
25996
26023
|
internalImage.setAttrs({
|
|
25997
26024
|
image: imageSource,
|
|
25998
26025
|
visible: true
|
|
25999
26026
|
});
|
|
26000
|
-
let sourceImageWidth =
|
|
26001
|
-
let sourceImageHeight =
|
|
26027
|
+
let sourceImageWidth = imageSource.width;
|
|
26028
|
+
let sourceImageHeight = imageSource.height;
|
|
26002
26029
|
if (image.getAttrs().imageInfo) {
|
|
26003
26030
|
sourceImageWidth = image.getAttrs().imageInfo.width;
|
|
26004
26031
|
sourceImageHeight = image.getAttrs().imageInfo.height;
|
|
@@ -26016,7 +26043,7 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
26016
26043
|
height: sourceImageHeight
|
|
26017
26044
|
});
|
|
26018
26045
|
this.imageState[id] = {
|
|
26019
|
-
status: "loaded",
|
|
26046
|
+
status: hasFallbackAndFinalImageNotLoaded ? "loading" : "loaded",
|
|
26020
26047
|
loaded: true,
|
|
26021
26048
|
error: false
|
|
26022
26049
|
};
|
|
@@ -26619,12 +26646,16 @@ var WeaveImageNode = class extends WeaveNode {
|
|
|
26619
26646
|
const nodeId = nodeInstance.getAttrs().id ?? "";
|
|
26620
26647
|
const isMoveContainer = nodeInstance.getAttr("onMoveContainer");
|
|
26621
26648
|
nodeInstance.setAttr("onMoveContainer", void 0);
|
|
26649
|
+
if (this.imageTryoutIds[nodeId]) {
|
|
26650
|
+
clearTimeout(this.imageTryoutIds[nodeId]);
|
|
26651
|
+
delete this.imageTryoutIds[nodeId];
|
|
26652
|
+
}
|
|
26622
26653
|
if (!isMoveContainer) {
|
|
26623
26654
|
delete this.imageSource[nodeId];
|
|
26624
26655
|
delete this.imageState[nodeId];
|
|
26656
|
+
delete this.imageTryoutAttempts[nodeId];
|
|
26657
|
+
delete this.imageFallback[nodeId];
|
|
26625
26658
|
}
|
|
26626
|
-
delete this.imageTryoutAttempts[nodeId];
|
|
26627
|
-
delete this.imageFallback[nodeId];
|
|
26628
26659
|
nodeInstance.destroy();
|
|
26629
26660
|
}
|
|
26630
26661
|
};
|
|
@@ -33956,7 +33987,8 @@ var WeaveImageToolAction = class extends WeaveAction {
|
|
|
33956
33987
|
uncroppedImage: {
|
|
33957
33988
|
width: imageWidth,
|
|
33958
33989
|
height: imageHeight
|
|
33959
|
-
}
|
|
33990
|
+
},
|
|
33991
|
+
...this.imageAction[nodeId].imageId && { imageId: this.imageAction[nodeId].imageId }
|
|
33960
33992
|
});
|
|
33961
33993
|
this.instance.addNode(node, forceMainContainer ? this.instance.getMainLayer()?.getAttrs().id : this.imageAction[nodeId].container?.getAttrs().id);
|
|
33962
33994
|
this.instance.emitEvent("onAddedImage", { nodeId });
|
|
@@ -36048,50 +36080,17 @@ var WeaveCommentToolAction = class extends WeaveAction {
|
|
|
36048
36080
|
opacity: 1
|
|
36049
36081
|
};
|
|
36050
36082
|
}
|
|
36051
|
-
extractCursorUrl(cursor) {
|
|
36052
|
-
const lower = cursor.toLowerCase();
|
|
36053
|
-
const start = lower.indexOf("url(");
|
|
36054
|
-
if (start === -1) return null;
|
|
36055
|
-
let i = start + 4;
|
|
36056
|
-
const len = cursor.length;
|
|
36057
|
-
while (i < len && /\s/.test(cursor[i])) i++;
|
|
36058
|
-
let quote = null;
|
|
36059
|
-
if (cursor[i] === "\"" || cursor[i] === "'") {
|
|
36060
|
-
quote = cursor[i];
|
|
36061
|
-
i++;
|
|
36062
|
-
}
|
|
36063
|
-
let buf = "";
|
|
36064
|
-
for (; i < len; i++) {
|
|
36065
|
-
const ch = cursor[i];
|
|
36066
|
-
if (quote) {
|
|
36067
|
-
if (ch === quote) {
|
|
36068
|
-
i++;
|
|
36069
|
-
break;
|
|
36070
|
-
}
|
|
36071
|
-
buf += ch;
|
|
36072
|
-
} else {
|
|
36073
|
-
if (ch === ")") break;
|
|
36074
|
-
buf += ch;
|
|
36075
|
-
}
|
|
36076
|
-
}
|
|
36077
|
-
const url = buf.trim();
|
|
36078
|
-
if (!url) return null;
|
|
36079
|
-
return this.isAllowedUrl(url) ? url : null;
|
|
36080
|
-
}
|
|
36081
|
-
isAllowedUrl(value) {
|
|
36082
|
-
if (/^https?:\/\//i.test(value)) return true;
|
|
36083
|
-
if (/^(javascript|data|blob|ftp):/i.test(value)) return false;
|
|
36084
|
-
return true;
|
|
36085
|
-
}
|
|
36086
36083
|
preloadCursors() {
|
|
36087
36084
|
const stage = this.instance.getStage();
|
|
36088
|
-
const cursorUrls = [
|
|
36089
|
-
|
|
36090
|
-
|
|
36091
|
-
|
|
36092
|
-
|
|
36093
|
-
|
|
36094
|
-
|
|
36085
|
+
const cursorUrls = [];
|
|
36086
|
+
for (const cursorKey in this.config.style.cursor) {
|
|
36087
|
+
const cursorValue = this.config.style.cursor[cursorKey];
|
|
36088
|
+
const { preload, cursor } = extractCursorUrl(this.config.style.cursor.add) ?? "";
|
|
36089
|
+
if (preload) cursorUrls.push({
|
|
36090
|
+
src: cursor,
|
|
36091
|
+
cursor: cursorValue
|
|
36092
|
+
});
|
|
36093
|
+
}
|
|
36095
36094
|
const actualCursor = stage.container().style.cursor;
|
|
36096
36095
|
cursorUrls.forEach(({ src, cursor }) => {
|
|
36097
36096
|
const img = Konva.Util.createImageElement();
|
|
@@ -39810,4 +39809,4 @@ const setupCanvasBackend = async () => {
|
|
|
39810
39809
|
};
|
|
39811
39810
|
|
|
39812
39811
|
//#endregion
|
|
39813
|
-
export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, ARROW_TOOL_ACTION_NAME, ARROW_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, GUIDE_ENTER_SNAPPING_TOLERANCE, GUIDE_EXIT_SNAPPING_TOLERANCE, GUIDE_HORIZONTAL_LINE_NAME, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, GUIDE_VERTICAL_LINE_NAME, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NODE_SNAP_HORIZONTAL, NODE_SNAP_VERTICAL, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS, WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO, WEAVE_GRID_DEFAULT_MAJOR_EVERY, WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_RADIUS, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_STROKE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_DISTANCE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_EDGE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesDistanceSnappingPlugin, WeaveNodesEdgeSnappingPlugin, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, canComposite, clearContainerTargets, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getPositionRelativeToContainerOnPosition, getSelectedNodesMetadata, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, intersectArrays, isIOS, isInShadowDOM, isNodeInSelection, isServer, loadImageSource, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend };
|
|
39812
|
+
export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, ARROW_TOOL_ACTION_NAME, ARROW_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_LINE_DEFAULT_CONFIG, GUIDE_ENTER_SNAPPING_TOLERANCE, GUIDE_EXIT_SNAPPING_TOLERANCE, GUIDE_HORIZONTAL_LINE_NAME, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, GUIDE_VERTICAL_LINE_NAME, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NODE_SNAP_HORIZONTAL, NODE_SNAP_VERTICAL, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS, WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO, WEAVE_GRID_DEFAULT_MAJOR_EVERY, WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_RADIUS, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_STROKE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_DISTANCE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_EDGE_SNAPPING_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, WEAVE_STAGE_ZOOM_KEY, WEAVE_STAGE_ZOOM_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesDistanceSnappingPlugin, WeaveNodesEdgeSnappingPlugin, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, canComposite, clearContainerTargets, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getPositionRelativeToContainerOnPosition, getSelectedNodesMetadata, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, intersectArrays, isIOS, isInShadowDOM, isNodeInSelection, isServer, loadImageSource, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend };
|