microboard-temp 0.14.28 → 0.14.30
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/cjs/browser.js +52 -38
- package/dist/cjs/index.js +52 -38
- package/dist/cjs/node.js +52 -38
- package/dist/cjs/protocol.js +10 -1
- package/dist/esm/browser.js +52 -38
- package/dist/esm/index.js +52 -38
- package/dist/esm/node.js +52 -38
- package/dist/esm/protocol.js +10 -1
- package/dist/types/Events/MessageRouter/socketContract.d.ts +170 -0
- package/dist/types/HTMLAdapter/BoardHTMLAdapter.d.ts +4 -7
- package/dist/types/HTMLAdapter/LegacyBoardHTMLAdapter.d.ts +14 -0
- package/dist/types/HTMLAdapter/codecSchemaRegistry.d.ts +13 -0
- package/dist/types/Items/BaseItem/BaseItem.d.ts +0 -3
- package/dist/types/Items/Drawing/Drawing.d.ts +2 -0
- package/dist/types/Items/Drawing/Drawing.schema.d.ts +1 -0
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -5023,7 +5023,7 @@ function mergeSetPropertyOperations(opA, opB) {
|
|
|
5023
5023
|
}
|
|
5024
5024
|
return {
|
|
5025
5025
|
...opB,
|
|
5026
|
-
|
|
5026
|
+
prevValues: opA.prevValues
|
|
5027
5027
|
};
|
|
5028
5028
|
}
|
|
5029
5029
|
function mergeBoardOperations(opA, opB) {
|
|
@@ -11712,7 +11712,6 @@ class BaseItem {
|
|
|
11712
11712
|
shouldUseRelativeAlignment = true;
|
|
11713
11713
|
resizeEnabled = true;
|
|
11714
11714
|
onlyProportionalResize = false;
|
|
11715
|
-
opacity = 1;
|
|
11716
11715
|
itemType = "";
|
|
11717
11716
|
childIds = [];
|
|
11718
11717
|
isHoverHighlighted = false;
|
|
@@ -12065,7 +12064,6 @@ class BaseItem {
|
|
|
12065
12064
|
itemType: this.itemType,
|
|
12066
12065
|
childIds: this.childIds,
|
|
12067
12066
|
parent: this.parent,
|
|
12068
|
-
opacity: this.opacity,
|
|
12069
12067
|
resizeEnabled: this.resizeEnabled
|
|
12070
12068
|
};
|
|
12071
12069
|
}
|
|
@@ -12277,16 +12275,6 @@ class BaseItem {
|
|
|
12277
12275
|
this.index.render(context);
|
|
12278
12276
|
}
|
|
12279
12277
|
}
|
|
12280
|
-
renderWithOpacity(context) {
|
|
12281
|
-
if (this.opacity === 1) {
|
|
12282
|
-
this.render(context);
|
|
12283
|
-
return;
|
|
12284
|
-
}
|
|
12285
|
-
context.ctx.save();
|
|
12286
|
-
context.ctx.globalAlpha *= this.opacity;
|
|
12287
|
-
this.render(context);
|
|
12288
|
-
context.ctx.restore();
|
|
12289
|
-
}
|
|
12290
12278
|
getSnapAnchorPoints() {
|
|
12291
12279
|
return this.getMbr().getSnapAnchorPoints();
|
|
12292
12280
|
}
|
|
@@ -27494,6 +27482,14 @@ var AudioOperationSchema = exports_external.object({
|
|
|
27494
27482
|
item: StringArraySchema,
|
|
27495
27483
|
url: exports_external.string()
|
|
27496
27484
|
}).passthrough();
|
|
27485
|
+
var ItemSetPropertyOperationSchema = exports_external.object({
|
|
27486
|
+
class: exports_external.literal("Item"),
|
|
27487
|
+
method: exports_external.literal("setProperty"),
|
|
27488
|
+
item: StringArraySchema,
|
|
27489
|
+
property: exports_external.string(),
|
|
27490
|
+
value: exports_external.unknown(),
|
|
27491
|
+
prevValues: exports_external.array(exports_external.unknown())
|
|
27492
|
+
}).passthrough();
|
|
27497
27493
|
var SocketOperationSchema = exports_external.union([
|
|
27498
27494
|
UndoOperationSchema,
|
|
27499
27495
|
RedoOperationSchema,
|
|
@@ -27513,7 +27509,8 @@ var SocketOperationSchema = exports_external.union([
|
|
|
27513
27509
|
...CommentOperationSchemas,
|
|
27514
27510
|
ImageOperationSchema,
|
|
27515
27511
|
VideoOperationSchema,
|
|
27516
|
-
AudioOperationSchema
|
|
27512
|
+
AudioOperationSchema,
|
|
27513
|
+
ItemSetPropertyOperationSchema
|
|
27517
27514
|
]);
|
|
27518
27515
|
var SocketBoardEventBodySchema = exports_external.object({
|
|
27519
27516
|
eventId: exports_external.string(),
|
|
@@ -40706,9 +40703,7 @@ function registerHTMLRenderer(itemType, renderer) {
|
|
|
40706
40703
|
}
|
|
40707
40704
|
function renderItemToHTML(item, documentFactory) {
|
|
40708
40705
|
const renderer = renderers[item.itemType] || defaultRenderer;
|
|
40709
|
-
|
|
40710
|
-
element2.style.opacity = `${item.opacity}`;
|
|
40711
|
-
return element2;
|
|
40706
|
+
return renderer.render(item, documentFactory);
|
|
40712
40707
|
}
|
|
40713
40708
|
var defaultRenderer = {
|
|
40714
40709
|
render(item, documentFactory) {
|
|
@@ -42478,6 +42473,7 @@ function parseHTMLDrawing(el) {
|
|
|
42478
42473
|
transformation,
|
|
42479
42474
|
strokeStyle: pathElement.getAttribute("stroke") || "",
|
|
42480
42475
|
strokeWidth: parseFloat(pathElement.getAttribute("stroke-width") || "1"),
|
|
42476
|
+
borderOpacity: parseFloat(pathElement.getAttribute("stroke-opacity") || el.style.opacity || "1"),
|
|
42481
42477
|
linkTo: el.getAttribute("data-link-to") || undefined
|
|
42482
42478
|
};
|
|
42483
42479
|
}
|
|
@@ -42932,7 +42928,7 @@ class DrawingHTMLRenderer {
|
|
|
42932
42928
|
const pathElement = documentFactory.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
42933
42929
|
pathElement.setAttribute("d", this.getPathData(drawing));
|
|
42934
42930
|
pathElement.setAttribute("stroke", resolveColor(drawing.borderColor, conf.theme, drawing.colorRole));
|
|
42935
|
-
pathElement.setAttribute("stroke-opacity", `${drawing.
|
|
42931
|
+
pathElement.setAttribute("stroke-opacity", `${drawing.getStrokeOpacity()}`);
|
|
42936
42932
|
pathElement.setAttribute("stroke-width", `${drawing.strokeWidth}`);
|
|
42937
42933
|
pathElement.setAttribute("fill", "none");
|
|
42938
42934
|
svg.appendChild(pathElement);
|
|
@@ -43995,7 +43991,7 @@ class SimpleSpatialIndex {
|
|
|
43995
43991
|
}
|
|
43996
43992
|
render(context) {
|
|
43997
43993
|
this.itemsArray.forEach((item) => {
|
|
43998
|
-
item.
|
|
43994
|
+
item.render(context);
|
|
43999
43995
|
});
|
|
44000
43996
|
}
|
|
44001
43997
|
}
|
|
@@ -58749,7 +58745,7 @@ var addShapeToolOverlay = {
|
|
|
58749
58745
|
createsItemType: "Shape",
|
|
58750
58746
|
family: "shape",
|
|
58751
58747
|
icon: {
|
|
58752
|
-
...
|
|
58748
|
+
...symbolIcon("Shape"),
|
|
58753
58749
|
state: {
|
|
58754
58750
|
note: "UI may swap the top-level icon to the selected shape option when desired."
|
|
58755
58751
|
}
|
|
@@ -60312,7 +60308,7 @@ async function exportBoardScreenshot({
|
|
|
60312
60308
|
const { left, top, right, bottom } = selection;
|
|
60313
60309
|
const inView = board.items.index.listEnclosedOrCrossedBy(left, top, right, bottom);
|
|
60314
60310
|
for (const item of inView) {
|
|
60315
|
-
item.
|
|
60311
|
+
item.render(context);
|
|
60316
60312
|
}
|
|
60317
60313
|
const blob = await offscreenCanvas.convertToBlob({ type: "image/png" });
|
|
60318
60314
|
const dataUrl = await convertBlobToDataUrl(blob);
|
|
@@ -62767,6 +62763,7 @@ var DrawingDataSchema = exports_external.object({
|
|
|
62767
62763
|
strokeStyle: ColorValueSchema,
|
|
62768
62764
|
strokeWidth: exports_external.number(),
|
|
62769
62765
|
colorRole: exports_external.enum(["foreground", "background"]).optional(),
|
|
62766
|
+
borderOpacity: exports_external.number().optional(),
|
|
62770
62767
|
opacity: exports_external.number().optional(),
|
|
62771
62768
|
linkTo: exports_external.string().optional()
|
|
62772
62769
|
});
|
|
@@ -62784,6 +62781,7 @@ class Drawing extends BaseItem {
|
|
|
62784
62781
|
borderStyle = "solid";
|
|
62785
62782
|
colorRole = "foreground";
|
|
62786
62783
|
linePattern = scalePatterns(this.strokeWidth)[this.borderStyle];
|
|
62784
|
+
borderOpacity = 1;
|
|
62787
62785
|
transformationRenderBlock = undefined;
|
|
62788
62786
|
points = [];
|
|
62789
62787
|
constructor(board, id = "") {
|
|
@@ -62802,7 +62800,8 @@ class Drawing extends BaseItem {
|
|
|
62802
62800
|
points,
|
|
62803
62801
|
strokeStyle: this.borderColor,
|
|
62804
62802
|
strokeWidth: this.strokeWidth,
|
|
62805
|
-
colorRole: this.colorRole
|
|
62803
|
+
colorRole: this.colorRole,
|
|
62804
|
+
borderOpacity: this.borderOpacity
|
|
62806
62805
|
};
|
|
62807
62806
|
}
|
|
62808
62807
|
deserialize(data) {
|
|
@@ -62820,7 +62819,7 @@ class Drawing extends BaseItem {
|
|
|
62820
62819
|
if (data.colorRole) {
|
|
62821
62820
|
this.colorRole = data.colorRole;
|
|
62822
62821
|
}
|
|
62823
|
-
this.
|
|
62822
|
+
this.borderOpacity = data.borderOpacity ?? data.opacity ?? this.borderOpacity;
|
|
62824
62823
|
this.updateVisuals({ method: "deserialize", class: this.itemType }, "FullRebuild" /* FullRebuild */);
|
|
62825
62824
|
return this;
|
|
62826
62825
|
}
|
|
@@ -62935,6 +62934,7 @@ class Drawing extends BaseItem {
|
|
|
62935
62934
|
const ctx = context.ctx;
|
|
62936
62935
|
ctx.save();
|
|
62937
62936
|
ctx.strokeStyle = resolveColor(this.borderColor, conf.theme, this.colorRole);
|
|
62937
|
+
ctx.globalAlpha = this.borderOpacity;
|
|
62938
62938
|
ctx.lineWidth = this.strokeWidth;
|
|
62939
62939
|
ctx.lineCap = "round";
|
|
62940
62940
|
ctx.setLineDash(this.linePattern);
|
|
@@ -63064,7 +63064,7 @@ class Drawing extends BaseItem {
|
|
|
63064
63064
|
"borderColor",
|
|
63065
63065
|
"strokeWidth",
|
|
63066
63066
|
"borderStyle",
|
|
63067
|
-
"
|
|
63067
|
+
"borderOpacity",
|
|
63068
63068
|
"colorRole",
|
|
63069
63069
|
"strokeStyle"
|
|
63070
63070
|
];
|
|
@@ -63074,7 +63074,7 @@ class Drawing extends BaseItem {
|
|
|
63074
63074
|
return super.getPropertyUpdateHint(property);
|
|
63075
63075
|
}
|
|
63076
63076
|
getStrokeOpacity() {
|
|
63077
|
-
return this.
|
|
63077
|
+
return this.borderOpacity;
|
|
63078
63078
|
}
|
|
63079
63079
|
getBorderStyle() {
|
|
63080
63080
|
return this.borderStyle;
|
|
@@ -63120,7 +63120,7 @@ registerItem({
|
|
|
63120
63120
|
itemType: "Drawing",
|
|
63121
63121
|
points: [],
|
|
63122
63122
|
borderColor: coerceColorValue("#000000"),
|
|
63123
|
-
|
|
63123
|
+
borderOpacity: 1,
|
|
63124
63124
|
borderStyle: "solid",
|
|
63125
63125
|
strokeWidth: 2,
|
|
63126
63126
|
transformation: new DefaultTransformationData
|
|
@@ -64142,7 +64142,7 @@ class ShapeTool extends CustomTool {
|
|
|
64142
64142
|
}
|
|
64143
64143
|
render(context) {
|
|
64144
64144
|
if (this.isDown) {
|
|
64145
|
-
this.item.
|
|
64145
|
+
this.item.render(context);
|
|
64146
64146
|
this.bounds.render(context);
|
|
64147
64147
|
}
|
|
64148
64148
|
}
|
|
@@ -66915,15 +66915,15 @@ class Keyboard {
|
|
|
66915
66915
|
}
|
|
66916
66916
|
}
|
|
66917
66917
|
|
|
66918
|
-
// src/HTMLAdapter/
|
|
66919
|
-
function
|
|
66918
|
+
// src/HTMLAdapter/LegacyBoardHTMLAdapter.ts
|
|
66919
|
+
function parseLegacyHTML(el) {
|
|
66920
66920
|
const parser = parsersHTML[el.tagName.toLowerCase()];
|
|
66921
66921
|
if (!parser) {
|
|
66922
66922
|
throw new Error(`Unknown element tag: ${el.tagName.toLowerCase()}`);
|
|
66923
66923
|
}
|
|
66924
66924
|
return parser(el);
|
|
66925
66925
|
}
|
|
66926
|
-
function
|
|
66926
|
+
function serializeBoardToLegacyHTML(board) {
|
|
66927
66927
|
const boardName = board.getName() || board.getBoardId();
|
|
66928
66928
|
const items = board.index.items.getWholeHTML(conf.documentFactory);
|
|
66929
66929
|
const itemsDiv = `<div id="items">${items}</div>`;
|
|
@@ -66949,14 +66949,14 @@ function serializeBoardToHTML(board) {
|
|
|
66949
66949
|
</head>`.replace(/\t|\n/g, "");
|
|
66950
66950
|
return `${head}${body}`;
|
|
66951
66951
|
}
|
|
66952
|
-
function
|
|
66952
|
+
function deserializeLegacyHTMLAndEmitToBoard(board, stringedHTML) {
|
|
66953
66953
|
const parser = conf.getDOMParser();
|
|
66954
66954
|
const doc2 = parser.parseFromString(stringedHTML, "text/html");
|
|
66955
66955
|
const items = doc2.body.querySelector("#items");
|
|
66956
66956
|
if (items) {
|
|
66957
66957
|
const idsMap = {};
|
|
66958
66958
|
const addedConnectors = [];
|
|
66959
|
-
const data = Array.from(items.children).map((el) =>
|
|
66959
|
+
const data = Array.from(items.children).map((el) => parseLegacyHTML(el));
|
|
66960
66960
|
for (const parsedData of data) {
|
|
66961
66961
|
if ("childrenMap" in parsedData) {
|
|
66962
66962
|
const frameData = parsedData;
|
|
@@ -67004,14 +67004,14 @@ function deserializeHTMLAndEmitToBoard(board, stringedHTML) {
|
|
|
67004
67004
|
}
|
|
67005
67005
|
return [];
|
|
67006
67006
|
}
|
|
67007
|
-
function
|
|
67007
|
+
function deserializeLegacyHTMLToBoard(board, stringedHTML) {
|
|
67008
67008
|
const parser = conf.getDOMParser();
|
|
67009
67009
|
const doc2 = parser.parseFromString(stringedHTML, "text/html");
|
|
67010
67010
|
const itemsDiv = doc2.body.querySelector("#items");
|
|
67011
67011
|
if (!itemsDiv) {
|
|
67012
67012
|
return;
|
|
67013
67013
|
}
|
|
67014
|
-
const items = Array.from(itemsDiv.children).map((el) =>
|
|
67014
|
+
const items = Array.from(itemsDiv.children).map((el) => parseLegacyHTML(el));
|
|
67015
67015
|
board.index.clear();
|
|
67016
67016
|
const createdConnectors = {};
|
|
67017
67017
|
const createdGroups = {};
|
|
@@ -67052,6 +67052,20 @@ function deserializeHTMLToBoard(board, stringedHTML) {
|
|
|
67052
67052
|
}
|
|
67053
67053
|
}
|
|
67054
67054
|
|
|
67055
|
+
// src/HTMLAdapter/BoardHTMLAdapter.ts
|
|
67056
|
+
function parseHTML(el) {
|
|
67057
|
+
return parseLegacyHTML(el);
|
|
67058
|
+
}
|
|
67059
|
+
function serializeBoardToHTML(board) {
|
|
67060
|
+
return serializeBoardToLegacyHTML(board);
|
|
67061
|
+
}
|
|
67062
|
+
function deserializeHTMLAndEmitToBoard(board, stringedHTML) {
|
|
67063
|
+
return deserializeLegacyHTMLAndEmitToBoard(board, stringedHTML);
|
|
67064
|
+
}
|
|
67065
|
+
function deserializeHTMLToBoard(board, stringedHTML) {
|
|
67066
|
+
deserializeLegacyHTMLToBoard(board, stringedHTML);
|
|
67067
|
+
}
|
|
67068
|
+
|
|
67055
67069
|
// src/Presence/consts.ts
|
|
67056
67070
|
var PRESENCE_COLORS = [
|
|
67057
67071
|
"rgb(71,120,245)",
|
|
@@ -68628,13 +68642,13 @@ function createCanvasDrawer(board) {
|
|
|
68628
68642
|
if (container2) {
|
|
68629
68643
|
context.ctx.save();
|
|
68630
68644
|
container2.getNestingMatrix().applyToContext(context.ctx);
|
|
68631
|
-
item.
|
|
68645
|
+
item.render(context);
|
|
68632
68646
|
context.ctx.restore();
|
|
68633
68647
|
} else {
|
|
68634
|
-
item.
|
|
68648
|
+
item.render(context);
|
|
68635
68649
|
}
|
|
68636
68650
|
} else {
|
|
68637
|
-
item.
|
|
68651
|
+
item.render(context);
|
|
68638
68652
|
}
|
|
68639
68653
|
board2.selection.renderItemMbr(context, item, board2.camera.getMatrix().scaleX);
|
|
68640
68654
|
}
|
|
@@ -73102,7 +73116,7 @@ class AddHighlighter extends AddDrawing {
|
|
|
73102
73116
|
}
|
|
73103
73117
|
applyDrawingRole(drawing) {
|
|
73104
73118
|
drawing.setColorRole("background");
|
|
73105
|
-
drawing.apply(propertyOps.setProperty([drawing], "
|
|
73119
|
+
drawing.apply(propertyOps.setProperty([drawing], "borderOpacity", 0.5));
|
|
73106
73120
|
}
|
|
73107
73121
|
updateSettings() {
|
|
73108
73122
|
localStorage.setItem(conf.HIGHLIGHTER_SETTINGS_KEY, JSON.stringify({
|
package/dist/esm/node.js
CHANGED
|
@@ -5807,7 +5807,7 @@ function mergeSetPropertyOperations(opA, opB) {
|
|
|
5807
5807
|
}
|
|
5808
5808
|
return {
|
|
5809
5809
|
...opB,
|
|
5810
|
-
|
|
5810
|
+
prevValues: opA.prevValues
|
|
5811
5811
|
};
|
|
5812
5812
|
}
|
|
5813
5813
|
function mergeBoardOperations(opA, opB) {
|
|
@@ -12495,7 +12495,6 @@ class BaseItem {
|
|
|
12495
12495
|
shouldUseRelativeAlignment = true;
|
|
12496
12496
|
resizeEnabled = true;
|
|
12497
12497
|
onlyProportionalResize = false;
|
|
12498
|
-
opacity = 1;
|
|
12499
12498
|
itemType = "";
|
|
12500
12499
|
childIds = [];
|
|
12501
12500
|
isHoverHighlighted = false;
|
|
@@ -12848,7 +12847,6 @@ class BaseItem {
|
|
|
12848
12847
|
itemType: this.itemType,
|
|
12849
12848
|
childIds: this.childIds,
|
|
12850
12849
|
parent: this.parent,
|
|
12851
|
-
opacity: this.opacity,
|
|
12852
12850
|
resizeEnabled: this.resizeEnabled
|
|
12853
12851
|
};
|
|
12854
12852
|
}
|
|
@@ -13060,16 +13058,6 @@ class BaseItem {
|
|
|
13060
13058
|
this.index.render(context);
|
|
13061
13059
|
}
|
|
13062
13060
|
}
|
|
13063
|
-
renderWithOpacity(context) {
|
|
13064
|
-
if (this.opacity === 1) {
|
|
13065
|
-
this.render(context);
|
|
13066
|
-
return;
|
|
13067
|
-
}
|
|
13068
|
-
context.ctx.save();
|
|
13069
|
-
context.ctx.globalAlpha *= this.opacity;
|
|
13070
|
-
this.render(context);
|
|
13071
|
-
context.ctx.restore();
|
|
13072
|
-
}
|
|
13073
13061
|
getSnapAnchorPoints() {
|
|
13074
13062
|
return this.getMbr().getSnapAnchorPoints();
|
|
13075
13063
|
}
|
|
@@ -28277,6 +28265,14 @@ var AudioOperationSchema = exports_external.object({
|
|
|
28277
28265
|
item: StringArraySchema,
|
|
28278
28266
|
url: exports_external.string()
|
|
28279
28267
|
}).passthrough();
|
|
28268
|
+
var ItemSetPropertyOperationSchema = exports_external.object({
|
|
28269
|
+
class: exports_external.literal("Item"),
|
|
28270
|
+
method: exports_external.literal("setProperty"),
|
|
28271
|
+
item: StringArraySchema,
|
|
28272
|
+
property: exports_external.string(),
|
|
28273
|
+
value: exports_external.unknown(),
|
|
28274
|
+
prevValues: exports_external.array(exports_external.unknown())
|
|
28275
|
+
}).passthrough();
|
|
28280
28276
|
var SocketOperationSchema = exports_external.union([
|
|
28281
28277
|
UndoOperationSchema,
|
|
28282
28278
|
RedoOperationSchema,
|
|
@@ -28296,7 +28292,8 @@ var SocketOperationSchema = exports_external.union([
|
|
|
28296
28292
|
...CommentOperationSchemas,
|
|
28297
28293
|
ImageOperationSchema,
|
|
28298
28294
|
VideoOperationSchema,
|
|
28299
|
-
AudioOperationSchema
|
|
28295
|
+
AudioOperationSchema,
|
|
28296
|
+
ItemSetPropertyOperationSchema
|
|
28300
28297
|
]);
|
|
28301
28298
|
var SocketBoardEventBodySchema = exports_external.object({
|
|
28302
28299
|
eventId: exports_external.string(),
|
|
@@ -43173,9 +43170,7 @@ function registerHTMLRenderer(itemType, renderer) {
|
|
|
43173
43170
|
}
|
|
43174
43171
|
function renderItemToHTML(item, documentFactory) {
|
|
43175
43172
|
const renderer = renderers[item.itemType] || defaultRenderer;
|
|
43176
|
-
|
|
43177
|
-
element.style.opacity = `${item.opacity}`;
|
|
43178
|
-
return element;
|
|
43173
|
+
return renderer.render(item, documentFactory);
|
|
43179
43174
|
}
|
|
43180
43175
|
var defaultRenderer = {
|
|
43181
43176
|
render(item, documentFactory) {
|
|
@@ -44945,6 +44940,7 @@ function parseHTMLDrawing(el) {
|
|
|
44945
44940
|
transformation,
|
|
44946
44941
|
strokeStyle: pathElement.getAttribute("stroke") || "",
|
|
44947
44942
|
strokeWidth: parseFloat(pathElement.getAttribute("stroke-width") || "1"),
|
|
44943
|
+
borderOpacity: parseFloat(pathElement.getAttribute("stroke-opacity") || el.style.opacity || "1"),
|
|
44948
44944
|
linkTo: el.getAttribute("data-link-to") || undefined
|
|
44949
44945
|
};
|
|
44950
44946
|
}
|
|
@@ -45399,7 +45395,7 @@ class DrawingHTMLRenderer {
|
|
|
45399
45395
|
const pathElement = documentFactory.createElementNS("http://www.w3.org/2000/svg", "path");
|
|
45400
45396
|
pathElement.setAttribute("d", this.getPathData(drawing));
|
|
45401
45397
|
pathElement.setAttribute("stroke", resolveColor(drawing.borderColor, conf.theme, drawing.colorRole));
|
|
45402
|
-
pathElement.setAttribute("stroke-opacity", `${drawing.
|
|
45398
|
+
pathElement.setAttribute("stroke-opacity", `${drawing.getStrokeOpacity()}`);
|
|
45403
45399
|
pathElement.setAttribute("stroke-width", `${drawing.strokeWidth}`);
|
|
45404
45400
|
pathElement.setAttribute("fill", "none");
|
|
45405
45401
|
svg.appendChild(pathElement);
|
|
@@ -46462,7 +46458,7 @@ class SimpleSpatialIndex {
|
|
|
46462
46458
|
}
|
|
46463
46459
|
render(context) {
|
|
46464
46460
|
this.itemsArray.forEach((item) => {
|
|
46465
|
-
item.
|
|
46461
|
+
item.render(context);
|
|
46466
46462
|
});
|
|
46467
46463
|
}
|
|
46468
46464
|
}
|
|
@@ -61217,7 +61213,7 @@ var addShapeToolOverlay = {
|
|
|
61217
61213
|
createsItemType: "Shape",
|
|
61218
61214
|
family: "shape",
|
|
61219
61215
|
icon: {
|
|
61220
|
-
...
|
|
61216
|
+
...symbolIcon("Shape"),
|
|
61221
61217
|
state: {
|
|
61222
61218
|
note: "UI may swap the top-level icon to the selected shape option when desired."
|
|
61223
61219
|
}
|
|
@@ -62780,7 +62776,7 @@ async function exportBoardScreenshot({
|
|
|
62780
62776
|
const { left, top, right, bottom } = selection;
|
|
62781
62777
|
const inView = board.items.index.listEnclosedOrCrossedBy(left, top, right, bottom);
|
|
62782
62778
|
for (const item of inView) {
|
|
62783
|
-
item.
|
|
62779
|
+
item.render(context);
|
|
62784
62780
|
}
|
|
62785
62781
|
const blob = await offscreenCanvas.convertToBlob({ type: "image/png" });
|
|
62786
62782
|
const dataUrl = await convertBlobToDataUrl(blob);
|
|
@@ -65235,6 +65231,7 @@ var DrawingDataSchema = exports_external.object({
|
|
|
65235
65231
|
strokeStyle: ColorValueSchema,
|
|
65236
65232
|
strokeWidth: exports_external.number(),
|
|
65237
65233
|
colorRole: exports_external.enum(["foreground", "background"]).optional(),
|
|
65234
|
+
borderOpacity: exports_external.number().optional(),
|
|
65238
65235
|
opacity: exports_external.number().optional(),
|
|
65239
65236
|
linkTo: exports_external.string().optional()
|
|
65240
65237
|
});
|
|
@@ -65252,6 +65249,7 @@ class Drawing extends BaseItem {
|
|
|
65252
65249
|
borderStyle = "solid";
|
|
65253
65250
|
colorRole = "foreground";
|
|
65254
65251
|
linePattern = scalePatterns(this.strokeWidth)[this.borderStyle];
|
|
65252
|
+
borderOpacity = 1;
|
|
65255
65253
|
transformationRenderBlock = undefined;
|
|
65256
65254
|
points = [];
|
|
65257
65255
|
constructor(board, id = "") {
|
|
@@ -65270,7 +65268,8 @@ class Drawing extends BaseItem {
|
|
|
65270
65268
|
points,
|
|
65271
65269
|
strokeStyle: this.borderColor,
|
|
65272
65270
|
strokeWidth: this.strokeWidth,
|
|
65273
|
-
colorRole: this.colorRole
|
|
65271
|
+
colorRole: this.colorRole,
|
|
65272
|
+
borderOpacity: this.borderOpacity
|
|
65274
65273
|
};
|
|
65275
65274
|
}
|
|
65276
65275
|
deserialize(data) {
|
|
@@ -65288,7 +65287,7 @@ class Drawing extends BaseItem {
|
|
|
65288
65287
|
if (data.colorRole) {
|
|
65289
65288
|
this.colorRole = data.colorRole;
|
|
65290
65289
|
}
|
|
65291
|
-
this.
|
|
65290
|
+
this.borderOpacity = data.borderOpacity ?? data.opacity ?? this.borderOpacity;
|
|
65292
65291
|
this.updateVisuals({ method: "deserialize", class: this.itemType }, "FullRebuild" /* FullRebuild */);
|
|
65293
65292
|
return this;
|
|
65294
65293
|
}
|
|
@@ -65403,6 +65402,7 @@ class Drawing extends BaseItem {
|
|
|
65403
65402
|
const ctx = context.ctx;
|
|
65404
65403
|
ctx.save();
|
|
65405
65404
|
ctx.strokeStyle = resolveColor(this.borderColor, conf.theme, this.colorRole);
|
|
65405
|
+
ctx.globalAlpha = this.borderOpacity;
|
|
65406
65406
|
ctx.lineWidth = this.strokeWidth;
|
|
65407
65407
|
ctx.lineCap = "round";
|
|
65408
65408
|
ctx.setLineDash(this.linePattern);
|
|
@@ -65532,7 +65532,7 @@ class Drawing extends BaseItem {
|
|
|
65532
65532
|
"borderColor",
|
|
65533
65533
|
"strokeWidth",
|
|
65534
65534
|
"borderStyle",
|
|
65535
|
-
"
|
|
65535
|
+
"borderOpacity",
|
|
65536
65536
|
"colorRole",
|
|
65537
65537
|
"strokeStyle"
|
|
65538
65538
|
];
|
|
@@ -65542,7 +65542,7 @@ class Drawing extends BaseItem {
|
|
|
65542
65542
|
return super.getPropertyUpdateHint(property);
|
|
65543
65543
|
}
|
|
65544
65544
|
getStrokeOpacity() {
|
|
65545
|
-
return this.
|
|
65545
|
+
return this.borderOpacity;
|
|
65546
65546
|
}
|
|
65547
65547
|
getBorderStyle() {
|
|
65548
65548
|
return this.borderStyle;
|
|
@@ -65588,7 +65588,7 @@ registerItem({
|
|
|
65588
65588
|
itemType: "Drawing",
|
|
65589
65589
|
points: [],
|
|
65590
65590
|
borderColor: coerceColorValue("#000000"),
|
|
65591
|
-
|
|
65591
|
+
borderOpacity: 1,
|
|
65592
65592
|
borderStyle: "solid",
|
|
65593
65593
|
strokeWidth: 2,
|
|
65594
65594
|
transformation: new DefaultTransformationData
|
|
@@ -66610,7 +66610,7 @@ class ShapeTool extends CustomTool {
|
|
|
66610
66610
|
}
|
|
66611
66611
|
render(context) {
|
|
66612
66612
|
if (this.isDown) {
|
|
66613
|
-
this.item.
|
|
66613
|
+
this.item.render(context);
|
|
66614
66614
|
this.bounds.render(context);
|
|
66615
66615
|
}
|
|
66616
66616
|
}
|
|
@@ -69383,15 +69383,15 @@ class Keyboard {
|
|
|
69383
69383
|
}
|
|
69384
69384
|
}
|
|
69385
69385
|
|
|
69386
|
-
// src/HTMLAdapter/
|
|
69387
|
-
function
|
|
69386
|
+
// src/HTMLAdapter/LegacyBoardHTMLAdapter.ts
|
|
69387
|
+
function parseLegacyHTML(el) {
|
|
69388
69388
|
const parser = parsersHTML[el.tagName.toLowerCase()];
|
|
69389
69389
|
if (!parser) {
|
|
69390
69390
|
throw new Error(`Unknown element tag: ${el.tagName.toLowerCase()}`);
|
|
69391
69391
|
}
|
|
69392
69392
|
return parser(el);
|
|
69393
69393
|
}
|
|
69394
|
-
function
|
|
69394
|
+
function serializeBoardToLegacyHTML(board) {
|
|
69395
69395
|
const boardName = board.getName() || board.getBoardId();
|
|
69396
69396
|
const items = board.index.items.getWholeHTML(conf.documentFactory);
|
|
69397
69397
|
const itemsDiv = `<div id="items">${items}</div>`;
|
|
@@ -69417,14 +69417,14 @@ function serializeBoardToHTML(board) {
|
|
|
69417
69417
|
</head>`.replace(/\t|\n/g, "");
|
|
69418
69418
|
return `${head}${body}`;
|
|
69419
69419
|
}
|
|
69420
|
-
function
|
|
69420
|
+
function deserializeLegacyHTMLAndEmitToBoard(board, stringedHTML) {
|
|
69421
69421
|
const parser = conf.getDOMParser();
|
|
69422
69422
|
const doc2 = parser.parseFromString(stringedHTML, "text/html");
|
|
69423
69423
|
const items = doc2.body.querySelector("#items");
|
|
69424
69424
|
if (items) {
|
|
69425
69425
|
const idsMap = {};
|
|
69426
69426
|
const addedConnectors = [];
|
|
69427
|
-
const data = Array.from(items.children).map((el) =>
|
|
69427
|
+
const data = Array.from(items.children).map((el) => parseLegacyHTML(el));
|
|
69428
69428
|
for (const parsedData of data) {
|
|
69429
69429
|
if ("childrenMap" in parsedData) {
|
|
69430
69430
|
const frameData = parsedData;
|
|
@@ -69472,14 +69472,14 @@ function deserializeHTMLAndEmitToBoard(board, stringedHTML) {
|
|
|
69472
69472
|
}
|
|
69473
69473
|
return [];
|
|
69474
69474
|
}
|
|
69475
|
-
function
|
|
69475
|
+
function deserializeLegacyHTMLToBoard(board, stringedHTML) {
|
|
69476
69476
|
const parser = conf.getDOMParser();
|
|
69477
69477
|
const doc2 = parser.parseFromString(stringedHTML, "text/html");
|
|
69478
69478
|
const itemsDiv = doc2.body.querySelector("#items");
|
|
69479
69479
|
if (!itemsDiv) {
|
|
69480
69480
|
return;
|
|
69481
69481
|
}
|
|
69482
|
-
const items = Array.from(itemsDiv.children).map((el) =>
|
|
69482
|
+
const items = Array.from(itemsDiv.children).map((el) => parseLegacyHTML(el));
|
|
69483
69483
|
board.index.clear();
|
|
69484
69484
|
const createdConnectors = {};
|
|
69485
69485
|
const createdGroups = {};
|
|
@@ -69520,6 +69520,20 @@ function deserializeHTMLToBoard(board, stringedHTML) {
|
|
|
69520
69520
|
}
|
|
69521
69521
|
}
|
|
69522
69522
|
|
|
69523
|
+
// src/HTMLAdapter/BoardHTMLAdapter.ts
|
|
69524
|
+
function parseHTML(el) {
|
|
69525
|
+
return parseLegacyHTML(el);
|
|
69526
|
+
}
|
|
69527
|
+
function serializeBoardToHTML(board) {
|
|
69528
|
+
return serializeBoardToLegacyHTML(board);
|
|
69529
|
+
}
|
|
69530
|
+
function deserializeHTMLAndEmitToBoard(board, stringedHTML) {
|
|
69531
|
+
return deserializeLegacyHTMLAndEmitToBoard(board, stringedHTML);
|
|
69532
|
+
}
|
|
69533
|
+
function deserializeHTMLToBoard(board, stringedHTML) {
|
|
69534
|
+
deserializeLegacyHTMLToBoard(board, stringedHTML);
|
|
69535
|
+
}
|
|
69536
|
+
|
|
69523
69537
|
// src/Presence/consts.ts
|
|
69524
69538
|
var PRESENCE_COLORS = [
|
|
69525
69539
|
"rgb(71,120,245)",
|
|
@@ -71096,13 +71110,13 @@ function createCanvasDrawer(board) {
|
|
|
71096
71110
|
if (container2) {
|
|
71097
71111
|
context.ctx.save();
|
|
71098
71112
|
container2.getNestingMatrix().applyToContext(context.ctx);
|
|
71099
|
-
item.
|
|
71113
|
+
item.render(context);
|
|
71100
71114
|
context.ctx.restore();
|
|
71101
71115
|
} else {
|
|
71102
|
-
item.
|
|
71116
|
+
item.render(context);
|
|
71103
71117
|
}
|
|
71104
71118
|
} else {
|
|
71105
|
-
item.
|
|
71119
|
+
item.render(context);
|
|
71106
71120
|
}
|
|
71107
71121
|
board2.selection.renderItemMbr(context, item, board2.camera.getMatrix().scaleX);
|
|
71108
71122
|
}
|
|
@@ -75570,7 +75584,7 @@ class AddHighlighter extends AddDrawing {
|
|
|
75570
75584
|
}
|
|
75571
75585
|
applyDrawingRole(drawing) {
|
|
75572
75586
|
drawing.setColorRole("background");
|
|
75573
|
-
drawing.apply(propertyOps.setProperty([drawing], "
|
|
75587
|
+
drawing.apply(propertyOps.setProperty([drawing], "borderOpacity", 0.5));
|
|
75574
75588
|
}
|
|
75575
75589
|
updateSettings() {
|
|
75576
75590
|
localStorage.setItem(conf.HIGHLIGHTER_SETTINGS_KEY, JSON.stringify({
|
package/dist/esm/protocol.js
CHANGED
|
@@ -14175,6 +14175,14 @@ var AudioOperationSchema = exports_external.object({
|
|
|
14175
14175
|
item: StringArraySchema,
|
|
14176
14176
|
url: exports_external.string()
|
|
14177
14177
|
}).passthrough();
|
|
14178
|
+
var ItemSetPropertyOperationSchema = exports_external.object({
|
|
14179
|
+
class: exports_external.literal("Item"),
|
|
14180
|
+
method: exports_external.literal("setProperty"),
|
|
14181
|
+
item: StringArraySchema,
|
|
14182
|
+
property: exports_external.string(),
|
|
14183
|
+
value: exports_external.unknown(),
|
|
14184
|
+
prevValues: exports_external.array(exports_external.unknown())
|
|
14185
|
+
}).passthrough();
|
|
14178
14186
|
var SocketOperationSchema = exports_external.union([
|
|
14179
14187
|
UndoOperationSchema,
|
|
14180
14188
|
RedoOperationSchema,
|
|
@@ -14194,7 +14202,8 @@ var SocketOperationSchema = exports_external.union([
|
|
|
14194
14202
|
...CommentOperationSchemas,
|
|
14195
14203
|
ImageOperationSchema,
|
|
14196
14204
|
VideoOperationSchema,
|
|
14197
|
-
AudioOperationSchema
|
|
14205
|
+
AudioOperationSchema,
|
|
14206
|
+
ItemSetPropertyOperationSchema
|
|
14198
14207
|
]);
|
|
14199
14208
|
var SocketBoardEventBodySchema = exports_external.object({
|
|
14200
14209
|
eventId: exports_external.string(),
|