modern-canvas 0.4.53 → 0.4.55
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 +53 -16
- package/dist/index.d.cts +5 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +36 -36
- package/dist/index.mjs +53 -16
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -743,14 +743,14 @@ class Input extends EventEmitter {
|
|
|
743
743
|
this.target.removeEventListener("pointerdown", this.onPointerDown);
|
|
744
744
|
this.target.removeEventListener("pointerleave", this.onPointerOver);
|
|
745
745
|
this.target.removeEventListener("pointerover", this.onPointerOver);
|
|
746
|
-
this.target.
|
|
747
|
-
this.target.
|
|
746
|
+
this.target.removeEventListener("pointermove", this.onPointerMove);
|
|
747
|
+
this.target.removeEventListener("pointerup", this.onPointerUp);
|
|
748
748
|
} else {
|
|
749
749
|
this.target.removeEventListener("mousedown", this.onPointerDown);
|
|
750
750
|
this.target.removeEventListener("mouseout", this.onPointerOver);
|
|
751
751
|
this.target.removeEventListener("mouseover", this.onPointerOver);
|
|
752
|
-
this.target.
|
|
753
|
-
this.target.
|
|
752
|
+
this.target.removeEventListener("mousemove", this.onPointerMove);
|
|
753
|
+
this.target.removeEventListener("mouseup", this.onPointerUp);
|
|
754
754
|
}
|
|
755
755
|
if (SUPPORTS_TOUCH_EVENTS) {
|
|
756
756
|
this.target.removeEventListener("touchstart", this.onPointerDown);
|
|
@@ -778,14 +778,14 @@ class Input extends EventEmitter {
|
|
|
778
778
|
this.target.addEventListener("pointerdown", this.onPointerDown);
|
|
779
779
|
this.target.addEventListener("pointerleave", this.onPointerOver);
|
|
780
780
|
this.target.addEventListener("pointerover", this.onPointerOver);
|
|
781
|
-
this.target.
|
|
782
|
-
this.target.
|
|
781
|
+
this.target.addEventListener("pointermove", this.onPointerMove);
|
|
782
|
+
this.target.addEventListener("pointerup", this.onPointerUp);
|
|
783
783
|
} else {
|
|
784
784
|
this.target.addEventListener("mousedown", this.onPointerDown);
|
|
785
785
|
this.target.addEventListener("mouseout", this.onPointerOver);
|
|
786
786
|
this.target.addEventListener("mouseover", this.onPointerOver);
|
|
787
|
-
this.target.
|
|
788
|
-
this.target.
|
|
787
|
+
this.target.addEventListener("mousemove", this.onPointerMove);
|
|
788
|
+
this.target.addEventListener("mouseup", this.onPointerUp);
|
|
789
789
|
}
|
|
790
790
|
if (SUPPORTS_TOUCH_EVENTS) {
|
|
791
791
|
this.target.addEventListener("touchstart", this.onPointerDown);
|
|
@@ -8910,6 +8910,7 @@ class BaseElement2DFill extends CoreObject {
|
|
|
8910
8910
|
case "rotateWithShape":
|
|
8911
8911
|
case "tile":
|
|
8912
8912
|
case "opacity":
|
|
8913
|
+
case "enabled":
|
|
8913
8914
|
this.parent.requestRedraw();
|
|
8914
8915
|
break;
|
|
8915
8916
|
case "image":
|
|
@@ -8938,7 +8939,7 @@ class BaseElement2DFill extends CoreObject {
|
|
|
8938
8939
|
}
|
|
8939
8940
|
canDraw() {
|
|
8940
8941
|
return Boolean(
|
|
8941
|
-
this._texture || this.color
|
|
8942
|
+
this.enabled && (this._texture || this.color)
|
|
8942
8943
|
);
|
|
8943
8944
|
}
|
|
8944
8945
|
_getDrawOptions() {
|
|
@@ -8989,6 +8990,9 @@ class BaseElement2DFill extends CoreObject {
|
|
|
8989
8990
|
});
|
|
8990
8991
|
}
|
|
8991
8992
|
}
|
|
8993
|
+
__decorateClass$u([
|
|
8994
|
+
modernIdoc.property({ default: true })
|
|
8995
|
+
], BaseElement2DFill.prototype, "enabled");
|
|
8992
8996
|
__decorateClass$u([
|
|
8993
8997
|
modernIdoc.property()
|
|
8994
8998
|
], BaseElement2DFill.prototype, "color");
|
|
@@ -9080,13 +9084,14 @@ class BaseElement2DOutline extends BaseElement2DFill {
|
|
|
9080
9084
|
switch (key) {
|
|
9081
9085
|
case "width":
|
|
9082
9086
|
case "style":
|
|
9087
|
+
case "enabled":
|
|
9083
9088
|
this.parent.requestRedraw();
|
|
9084
9089
|
break;
|
|
9085
9090
|
}
|
|
9086
9091
|
}
|
|
9087
9092
|
canDraw() {
|
|
9088
9093
|
return Boolean(
|
|
9089
|
-
this.width || this.color || super.canDraw()
|
|
9094
|
+
this.enabled && (this.width || this.color || super.canDraw())
|
|
9090
9095
|
);
|
|
9091
9096
|
}
|
|
9092
9097
|
draw() {
|
|
@@ -9098,6 +9103,9 @@ class BaseElement2DOutline extends BaseElement2DFill {
|
|
|
9098
9103
|
ctx.stroke({ disableWrapMode });
|
|
9099
9104
|
}
|
|
9100
9105
|
}
|
|
9106
|
+
__decorateClass$r([
|
|
9107
|
+
modernIdoc.property({ default: true })
|
|
9108
|
+
], BaseElement2DOutline.prototype, "enabled");
|
|
9101
9109
|
__decorateClass$r([
|
|
9102
9110
|
modernIdoc.property({ default: 0 })
|
|
9103
9111
|
], BaseElement2DOutline.prototype, "color");
|
|
@@ -9154,6 +9162,9 @@ class BaseElement2DShadow extends CoreObject {
|
|
|
9154
9162
|
}
|
|
9155
9163
|
}
|
|
9156
9164
|
}
|
|
9165
|
+
__decorateClass$q([
|
|
9166
|
+
modernIdoc.property({ default: true })
|
|
9167
|
+
], BaseElement2DShadow.prototype, "enabled");
|
|
9157
9168
|
__decorateClass$q([
|
|
9158
9169
|
modernIdoc.property({ default: "#000000" })
|
|
9159
9170
|
], BaseElement2DShadow.prototype, "color");
|
|
@@ -9194,6 +9205,7 @@ class BaseElement2DShape extends CoreObject {
|
|
|
9194
9205
|
case "svg":
|
|
9195
9206
|
case "paths":
|
|
9196
9207
|
case "viewBox":
|
|
9208
|
+
case "enabled":
|
|
9197
9209
|
this._updatePath2DSet();
|
|
9198
9210
|
this.parent.requestRedraw();
|
|
9199
9211
|
break;
|
|
@@ -9224,7 +9236,7 @@ class BaseElement2DShape extends CoreObject {
|
|
|
9224
9236
|
});
|
|
9225
9237
|
}
|
|
9226
9238
|
draw() {
|
|
9227
|
-
if (this._path2DSet.paths.length) {
|
|
9239
|
+
if (this.enabled && this._path2DSet.paths.length) {
|
|
9228
9240
|
const ctx = this.parent.context;
|
|
9229
9241
|
const { width, height } = this.parent.size;
|
|
9230
9242
|
this._path2DSet.paths.forEach((path) => {
|
|
@@ -9247,6 +9259,9 @@ class BaseElement2DShape extends CoreObject {
|
|
|
9247
9259
|
}
|
|
9248
9260
|
}
|
|
9249
9261
|
}
|
|
9262
|
+
__decorateClass$p([
|
|
9263
|
+
modernIdoc.property({ default: true })
|
|
9264
|
+
], BaseElement2DShape.prototype, "enabled");
|
|
9250
9265
|
__decorateClass$p([
|
|
9251
9266
|
modernIdoc.property()
|
|
9252
9267
|
], BaseElement2DShape.prototype, "preset");
|
|
@@ -9307,6 +9322,7 @@ class BaseElement2DText extends CoreObject {
|
|
|
9307
9322
|
case "measureDOM":
|
|
9308
9323
|
case "fonts":
|
|
9309
9324
|
case "split":
|
|
9325
|
+
case "enabled":
|
|
9310
9326
|
this.parent.requestRedraw();
|
|
9311
9327
|
break;
|
|
9312
9328
|
}
|
|
@@ -9330,7 +9346,7 @@ class BaseElement2DText extends CoreObject {
|
|
|
9330
9346
|
}
|
|
9331
9347
|
canDraw() {
|
|
9332
9348
|
return Boolean(
|
|
9333
|
-
!/^\s*$/.test(this.base.toString()) && this.texture?.valid
|
|
9349
|
+
this.enabled && !/^\s*$/.test(this.base.toString()) && this.texture?.valid
|
|
9334
9350
|
);
|
|
9335
9351
|
}
|
|
9336
9352
|
draw() {
|
|
@@ -9355,6 +9371,9 @@ class BaseElement2DText extends CoreObject {
|
|
|
9355
9371
|
ctx.fill();
|
|
9356
9372
|
}
|
|
9357
9373
|
}
|
|
9374
|
+
__decorateClass$o([
|
|
9375
|
+
modernIdoc.property({ default: true })
|
|
9376
|
+
], BaseElement2DText.prototype, "enabled");
|
|
9358
9377
|
__decorateClass$o([
|
|
9359
9378
|
modernIdoc.property({ alias: "base.content" })
|
|
9360
9379
|
], BaseElement2DText.prototype, "content");
|
|
@@ -13522,9 +13541,26 @@ class Assets {
|
|
|
13522
13541
|
return fetch(url);
|
|
13523
13542
|
}
|
|
13524
13543
|
_fixSVG(dataURI) {
|
|
13525
|
-
|
|
13526
|
-
|
|
13527
|
-
|
|
13544
|
+
let xml;
|
|
13545
|
+
if (dataURI.includes(";base64,")) {
|
|
13546
|
+
xml = atob(dataURI.split(",")[1]);
|
|
13547
|
+
} else {
|
|
13548
|
+
xml = decodeURIComponent(dataURI.split(",")[1]);
|
|
13549
|
+
}
|
|
13550
|
+
const svg = new DOMParser().parseFromString(xml, "image/svg+xml").documentElement;
|
|
13551
|
+
const width = svg.getAttribute("width");
|
|
13552
|
+
const height = svg.getAttribute("height");
|
|
13553
|
+
const isValidWidth = width && /^[\d.]+$/.test(width);
|
|
13554
|
+
const isValidHeight = height && /^[\d.]+$/.test(height);
|
|
13555
|
+
if (!isValidWidth || !isValidHeight) {
|
|
13556
|
+
const viewBox = svg.getAttribute("viewBox")?.split(" ").map((v) => Number(v));
|
|
13557
|
+
if (!isValidWidth) {
|
|
13558
|
+
svg.setAttribute("width", String(viewBox ? viewBox[2] - viewBox[0] : 512));
|
|
13559
|
+
}
|
|
13560
|
+
if (!isValidHeight) {
|
|
13561
|
+
svg.setAttribute("height", String(viewBox ? viewBox[3] - viewBox[1] : 512));
|
|
13562
|
+
}
|
|
13563
|
+
}
|
|
13528
13564
|
return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg.outerHTML)}`;
|
|
13529
13565
|
}
|
|
13530
13566
|
async fetchImageBitmap(url, options) {
|
|
@@ -13541,7 +13577,7 @@ class Assets {
|
|
|
13541
13577
|
return createImageBitmap(blob, options);
|
|
13542
13578
|
});
|
|
13543
13579
|
} else {
|
|
13544
|
-
if (url.startsWith("data:image/svg+xml;
|
|
13580
|
+
if (url.startsWith("data:image/svg+xml;")) {
|
|
13545
13581
|
url = this._fixSVG(url);
|
|
13546
13582
|
}
|
|
13547
13583
|
return new Promise((resolve) => {
|
|
@@ -14016,6 +14052,7 @@ async function task(options) {
|
|
|
14016
14052
|
engine.resize(width, height, true);
|
|
14017
14053
|
(Array.isArray(data) ? data : [data]).forEach((v) => {
|
|
14018
14054
|
if (v instanceof exports.Node) {
|
|
14055
|
+
v.parent = void 0;
|
|
14019
14056
|
engine.root.appendChild(v);
|
|
14020
14057
|
} else {
|
|
14021
14058
|
engine.root.appendChild(exports.Node.parse(v));
|
package/dist/index.d.cts
CHANGED
|
@@ -1888,6 +1888,7 @@ interface BaseElement2DFill extends NormalizedFill {
|
|
|
1888
1888
|
}
|
|
1889
1889
|
declare class BaseElement2DFill extends CoreObject {
|
|
1890
1890
|
parent: BaseElement2D;
|
|
1891
|
+
enabled: boolean;
|
|
1891
1892
|
color?: NormalizedFill['color'];
|
|
1892
1893
|
image?: NormalizedFill['image'];
|
|
1893
1894
|
linearGradient?: NormalizedFill['linearGradient'];
|
|
@@ -1928,6 +1929,7 @@ declare class BaseElement2DForeground extends BaseElement2DFill {
|
|
|
1928
1929
|
}
|
|
1929
1930
|
|
|
1930
1931
|
declare class BaseElement2DOutline extends BaseElement2DFill {
|
|
1932
|
+
enabled: boolean;
|
|
1931
1933
|
color: NormalizedOutline['color'];
|
|
1932
1934
|
width: NormalizedOutline['width'];
|
|
1933
1935
|
style: NormalizedOutline['style'];
|
|
@@ -1939,6 +1941,7 @@ declare class BaseElement2DOutline extends BaseElement2DFill {
|
|
|
1939
1941
|
|
|
1940
1942
|
declare class BaseElement2DShadow extends CoreObject {
|
|
1941
1943
|
parent: BaseElement2D;
|
|
1944
|
+
enabled: boolean;
|
|
1942
1945
|
color: NormalizedShadow['color'];
|
|
1943
1946
|
blur: NormalizedShadow['blur'];
|
|
1944
1947
|
offsetY: NormalizedShadow['offsetX'];
|
|
@@ -1951,6 +1954,7 @@ declare class BaseElement2DShadow extends CoreObject {
|
|
|
1951
1954
|
|
|
1952
1955
|
declare class BaseElement2DShape extends CoreObject {
|
|
1953
1956
|
parent: BaseElement2D;
|
|
1957
|
+
enabled: boolean;
|
|
1954
1958
|
preset?: Required<NormalizedShape>['preset'];
|
|
1955
1959
|
svg?: Required<NormalizedShape>['svg'];
|
|
1956
1960
|
viewBox?: Required<NormalizedShape>['viewBox'];
|
|
@@ -1978,6 +1982,7 @@ declare class BaseElement2DStyle extends Resource {
|
|
|
1978
1982
|
|
|
1979
1983
|
declare class BaseElement2DText extends CoreObject {
|
|
1980
1984
|
parent: BaseElement2D;
|
|
1985
|
+
enabled: boolean;
|
|
1981
1986
|
content: Text['content'];
|
|
1982
1987
|
effects?: Text['effects'];
|
|
1983
1988
|
measureDOM?: Text['measureDOM'];
|
package/dist/index.d.mts
CHANGED
|
@@ -1888,6 +1888,7 @@ interface BaseElement2DFill extends NormalizedFill {
|
|
|
1888
1888
|
}
|
|
1889
1889
|
declare class BaseElement2DFill extends CoreObject {
|
|
1890
1890
|
parent: BaseElement2D;
|
|
1891
|
+
enabled: boolean;
|
|
1891
1892
|
color?: NormalizedFill['color'];
|
|
1892
1893
|
image?: NormalizedFill['image'];
|
|
1893
1894
|
linearGradient?: NormalizedFill['linearGradient'];
|
|
@@ -1928,6 +1929,7 @@ declare class BaseElement2DForeground extends BaseElement2DFill {
|
|
|
1928
1929
|
}
|
|
1929
1930
|
|
|
1930
1931
|
declare class BaseElement2DOutline extends BaseElement2DFill {
|
|
1932
|
+
enabled: boolean;
|
|
1931
1933
|
color: NormalizedOutline['color'];
|
|
1932
1934
|
width: NormalizedOutline['width'];
|
|
1933
1935
|
style: NormalizedOutline['style'];
|
|
@@ -1939,6 +1941,7 @@ declare class BaseElement2DOutline extends BaseElement2DFill {
|
|
|
1939
1941
|
|
|
1940
1942
|
declare class BaseElement2DShadow extends CoreObject {
|
|
1941
1943
|
parent: BaseElement2D;
|
|
1944
|
+
enabled: boolean;
|
|
1942
1945
|
color: NormalizedShadow['color'];
|
|
1943
1946
|
blur: NormalizedShadow['blur'];
|
|
1944
1947
|
offsetY: NormalizedShadow['offsetX'];
|
|
@@ -1951,6 +1954,7 @@ declare class BaseElement2DShadow extends CoreObject {
|
|
|
1951
1954
|
|
|
1952
1955
|
declare class BaseElement2DShape extends CoreObject {
|
|
1953
1956
|
parent: BaseElement2D;
|
|
1957
|
+
enabled: boolean;
|
|
1954
1958
|
preset?: Required<NormalizedShape>['preset'];
|
|
1955
1959
|
svg?: Required<NormalizedShape>['svg'];
|
|
1956
1960
|
viewBox?: Required<NormalizedShape>['viewBox'];
|
|
@@ -1978,6 +1982,7 @@ declare class BaseElement2DStyle extends Resource {
|
|
|
1978
1982
|
|
|
1979
1983
|
declare class BaseElement2DText extends CoreObject {
|
|
1980
1984
|
parent: BaseElement2D;
|
|
1985
|
+
enabled: boolean;
|
|
1981
1986
|
content: Text['content'];
|
|
1982
1987
|
effects?: Text['effects'];
|
|
1983
1988
|
measureDOM?: Text['measureDOM'];
|
package/dist/index.d.ts
CHANGED
|
@@ -1888,6 +1888,7 @@ interface BaseElement2DFill extends NormalizedFill {
|
|
|
1888
1888
|
}
|
|
1889
1889
|
declare class BaseElement2DFill extends CoreObject {
|
|
1890
1890
|
parent: BaseElement2D;
|
|
1891
|
+
enabled: boolean;
|
|
1891
1892
|
color?: NormalizedFill['color'];
|
|
1892
1893
|
image?: NormalizedFill['image'];
|
|
1893
1894
|
linearGradient?: NormalizedFill['linearGradient'];
|
|
@@ -1928,6 +1929,7 @@ declare class BaseElement2DForeground extends BaseElement2DFill {
|
|
|
1928
1929
|
}
|
|
1929
1930
|
|
|
1930
1931
|
declare class BaseElement2DOutline extends BaseElement2DFill {
|
|
1932
|
+
enabled: boolean;
|
|
1931
1933
|
color: NormalizedOutline['color'];
|
|
1932
1934
|
width: NormalizedOutline['width'];
|
|
1933
1935
|
style: NormalizedOutline['style'];
|
|
@@ -1939,6 +1941,7 @@ declare class BaseElement2DOutline extends BaseElement2DFill {
|
|
|
1939
1941
|
|
|
1940
1942
|
declare class BaseElement2DShadow extends CoreObject {
|
|
1941
1943
|
parent: BaseElement2D;
|
|
1944
|
+
enabled: boolean;
|
|
1942
1945
|
color: NormalizedShadow['color'];
|
|
1943
1946
|
blur: NormalizedShadow['blur'];
|
|
1944
1947
|
offsetY: NormalizedShadow['offsetX'];
|
|
@@ -1951,6 +1954,7 @@ declare class BaseElement2DShadow extends CoreObject {
|
|
|
1951
1954
|
|
|
1952
1955
|
declare class BaseElement2DShape extends CoreObject {
|
|
1953
1956
|
parent: BaseElement2D;
|
|
1957
|
+
enabled: boolean;
|
|
1954
1958
|
preset?: Required<NormalizedShape>['preset'];
|
|
1955
1959
|
svg?: Required<NormalizedShape>['svg'];
|
|
1956
1960
|
viewBox?: Required<NormalizedShape>['viewBox'];
|
|
@@ -1978,6 +1982,7 @@ declare class BaseElement2DStyle extends Resource {
|
|
|
1978
1982
|
|
|
1979
1983
|
declare class BaseElement2DText extends CoreObject {
|
|
1980
1984
|
parent: BaseElement2D;
|
|
1985
|
+
enabled: boolean;
|
|
1981
1986
|
content: Text['content'];
|
|
1982
1987
|
effects?: Text['effects'];
|
|
1983
1988
|
measureDOM?: Text['measureDOM'];
|