@nasser-sw/fabric 7.0.1-beta7 → 7.0.1-beta9
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/debug/konva-master/CHANGELOG.md +1475 -0
- package/debug/konva-master/LICENSE +22 -0
- package/debug/konva-master/README.md +209 -0
- package/debug/konva-master/gulpfile.mjs +110 -0
- package/debug/konva-master/package.json +139 -0
- package/debug/konva-master/release.sh +62 -0
- package/debug/konva-master/resources/doc-includes/ContainerParams.txt +6 -0
- package/debug/konva-master/resources/doc-includes/NodeParams.txt +20 -0
- package/debug/konva-master/resources/doc-includes/ShapeParams.txt +53 -0
- package/debug/konva-master/resources/jsdoc.conf.json +28 -0
- package/debug/konva-master/rollup.config.mjs +32 -0
- package/debug/konva-master/src/Animation.ts +237 -0
- package/debug/konva-master/src/BezierFunctions.ts +826 -0
- package/debug/konva-master/src/Canvas.ts +230 -0
- package/debug/konva-master/src/Container.ts +649 -0
- package/debug/konva-master/src/Context.ts +1017 -0
- package/debug/konva-master/src/Core.ts +5 -0
- package/debug/konva-master/src/DragAndDrop.ts +173 -0
- package/debug/konva-master/src/Factory.ts +246 -0
- package/debug/konva-master/src/FastLayer.ts +29 -0
- package/debug/konva-master/src/Global.ts +210 -0
- package/debug/konva-master/src/Group.ts +31 -0
- package/debug/konva-master/src/Layer.ts +546 -0
- package/debug/konva-master/src/Node.ts +3477 -0
- package/debug/konva-master/src/PointerEvents.ts +67 -0
- package/debug/konva-master/src/Shape.ts +2081 -0
- package/debug/konva-master/src/Stage.ts +1000 -0
- package/debug/konva-master/src/Tween.ts +811 -0
- package/debug/konva-master/src/Util.ts +1123 -0
- package/debug/konva-master/src/Validators.ts +210 -0
- package/debug/konva-master/src/_CoreInternals.ts +85 -0
- package/debug/konva-master/src/_FullInternals.ts +171 -0
- package/debug/konva-master/src/canvas-backend.ts +36 -0
- package/debug/konva-master/src/filters/Blur.ts +388 -0
- package/debug/konva-master/src/filters/Brighten.ts +48 -0
- package/debug/konva-master/src/filters/Brightness.ts +30 -0
- package/debug/konva-master/src/filters/Contrast.ts +75 -0
- package/debug/konva-master/src/filters/Emboss.ts +207 -0
- package/debug/konva-master/src/filters/Enhance.ts +154 -0
- package/debug/konva-master/src/filters/Grayscale.ts +25 -0
- package/debug/konva-master/src/filters/HSL.ts +108 -0
- package/debug/konva-master/src/filters/HSV.ts +106 -0
- package/debug/konva-master/src/filters/Invert.ts +23 -0
- package/debug/konva-master/src/filters/Kaleidoscope.ts +274 -0
- package/debug/konva-master/src/filters/Mask.ts +220 -0
- package/debug/konva-master/src/filters/Noise.ts +44 -0
- package/debug/konva-master/src/filters/Pixelate.ts +107 -0
- package/debug/konva-master/src/filters/Posterize.ts +46 -0
- package/debug/konva-master/src/filters/RGB.ts +82 -0
- package/debug/konva-master/src/filters/RGBA.ts +103 -0
- package/debug/konva-master/src/filters/Sepia.ts +27 -0
- package/debug/konva-master/src/filters/Solarize.ts +29 -0
- package/debug/konva-master/src/filters/Threshold.ts +44 -0
- package/debug/konva-master/src/index.ts +3 -0
- package/debug/konva-master/src/shapes/Arc.ts +176 -0
- package/debug/konva-master/src/shapes/Arrow.ts +231 -0
- package/debug/konva-master/src/shapes/Circle.ts +76 -0
- package/debug/konva-master/src/shapes/Ellipse.ts +121 -0
- package/debug/konva-master/src/shapes/Image.ts +319 -0
- package/debug/konva-master/src/shapes/Label.ts +386 -0
- package/debug/konva-master/src/shapes/Line.ts +364 -0
- package/debug/konva-master/src/shapes/Path.ts +1013 -0
- package/debug/konva-master/src/shapes/Rect.ts +79 -0
- package/debug/konva-master/src/shapes/RegularPolygon.ts +167 -0
- package/debug/konva-master/src/shapes/Ring.ts +94 -0
- package/debug/konva-master/src/shapes/Sprite.ts +370 -0
- package/debug/konva-master/src/shapes/Star.ts +125 -0
- package/debug/konva-master/src/shapes/Text.ts +1065 -0
- package/debug/konva-master/src/shapes/TextPath.ts +583 -0
- package/debug/konva-master/src/shapes/Transformer.ts +1889 -0
- package/debug/konva-master/src/shapes/Wedge.ts +129 -0
- package/debug/konva-master/src/skia-backend.ts +35 -0
- package/debug/konva-master/src/types.ts +84 -0
- package/debug/konva-master/tsconfig.json +31 -0
- package/debug/konva-master/tsconfig.test.json +7 -0
- package/dist/index.js +977 -29
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.min.mjs +1 -1
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +977 -29
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +977 -29
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +977 -29
- package/dist/index.node.mjs.map +1 -1
- package/dist/package.json.min.mjs +1 -1
- package/dist/package.json.mjs +1 -1
- package/dist/src/shapes/Line.d.ts +1 -0
- package/dist/src/shapes/Line.d.ts.map +1 -1
- package/dist/src/shapes/Line.min.mjs +1 -1
- package/dist/src/shapes/Line.min.mjs.map +1 -1
- package/dist/src/shapes/Line.mjs +63 -6
- package/dist/src/shapes/Line.mjs.map +1 -1
- package/dist/src/shapes/Text/Text.d.ts +19 -0
- package/dist/src/shapes/Text/Text.d.ts.map +1 -1
- package/dist/src/shapes/Text/Text.min.mjs +1 -1
- package/dist/src/shapes/Text/Text.min.mjs.map +1 -1
- package/dist/src/shapes/Text/Text.mjs +238 -4
- package/dist/src/shapes/Text/Text.mjs.map +1 -1
- package/dist/src/shapes/Textbox.d.ts +38 -1
- package/dist/src/shapes/Textbox.d.ts.map +1 -1
- package/dist/src/shapes/Textbox.min.mjs +1 -1
- package/dist/src/shapes/Textbox.min.mjs.map +1 -1
- package/dist/src/shapes/Textbox.mjs +497 -15
- package/dist/src/shapes/Textbox.mjs.map +1 -1
- package/dist/src/text/examples/arabicTextExample.d.ts +60 -0
- package/dist/src/text/examples/arabicTextExample.d.ts.map +1 -0
- package/dist/src/text/measure.d.ts +9 -0
- package/dist/src/text/measure.d.ts.map +1 -1
- package/dist/src/text/measure.min.mjs +1 -1
- package/dist/src/text/measure.min.mjs.map +1 -1
- package/dist/src/text/measure.mjs +175 -4
- package/dist/src/text/measure.mjs.map +1 -1
- package/dist/src/text/overlayEditor.d.ts.map +1 -1
- package/dist/src/text/overlayEditor.min.mjs +1 -1
- package/dist/src/text/overlayEditor.min.mjs.map +1 -1
- package/dist/src/text/overlayEditor.mjs +7 -0
- package/dist/src/text/overlayEditor.mjs.map +1 -1
- package/dist/src/text/scriptUtils.d.ts +142 -0
- package/dist/src/text/scriptUtils.d.ts.map +1 -0
- package/dist/src/text/scriptUtils.min.mjs +2 -0
- package/dist/src/text/scriptUtils.min.mjs.map +1 -0
- package/dist/src/text/scriptUtils.mjs +212 -0
- package/dist/src/text/scriptUtils.mjs.map +1 -0
- package/dist-extensions/src/shapes/Line.d.ts +1 -0
- package/dist-extensions/src/shapes/Line.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Text/Text.d.ts +19 -0
- package/dist-extensions/src/shapes/Text/Text.d.ts.map +1 -1
- package/dist-extensions/src/shapes/Textbox.d.ts +38 -1
- package/dist-extensions/src/shapes/Textbox.d.ts.map +1 -1
- package/dist-extensions/src/text/measure.d.ts +9 -0
- package/dist-extensions/src/text/measure.d.ts.map +1 -1
- package/dist-extensions/src/text/overlayEditor.d.ts.map +1 -1
- package/dist-extensions/src/text/scriptUtils.d.ts +142 -0
- package/dist-extensions/src/text/scriptUtils.d.ts.map +1 -0
- package/fabric-test-editor.html +2401 -46
- package/fabric-test2.html +43 -0
- package/fonts/STV Bold.ttf +0 -0
- package/fonts/STV Light.ttf +0 -0
- package/fonts/STV Regular.ttf +0 -0
- package/package.json +1 -1
- package/src/shapes/Line.ts +132 -46
- package/src/shapes/Text/Text.ts +238 -5
- package/src/shapes/Textbox.ts +521 -11
- package/src/text/measure.ts +200 -50
- package/src/text/overlayEditor.ts +7 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Factory } from '../Factory.ts';
|
|
2
|
+
import type { Context } from '../Context.ts';
|
|
3
|
+
import type { ShapeConfig } from '../Shape.ts';
|
|
4
|
+
import { Shape } from '../Shape.ts';
|
|
5
|
+
import { Konva } from '../Global.ts';
|
|
6
|
+
import { getNumberValidator } from '../Validators.ts';
|
|
7
|
+
import { _registerNode } from '../Global.ts';
|
|
8
|
+
|
|
9
|
+
import type { GetSet } from '../types.ts';
|
|
10
|
+
|
|
11
|
+
export interface WedgeConfig extends ShapeConfig {
|
|
12
|
+
angle: number;
|
|
13
|
+
radius: number;
|
|
14
|
+
clockwise?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Wedge constructor
|
|
19
|
+
* @constructor
|
|
20
|
+
* @memberof Konva
|
|
21
|
+
* @augments Konva.Shape
|
|
22
|
+
* @param {Object} config
|
|
23
|
+
* @param {Number} config.angle in degrees
|
|
24
|
+
* @param {Number} config.radius
|
|
25
|
+
* @param {Boolean} [config.clockwise]
|
|
26
|
+
* @@shapeParams
|
|
27
|
+
* @@nodeParams
|
|
28
|
+
* @example
|
|
29
|
+
* // draw a wedge that's pointing downwards
|
|
30
|
+
* var wedge = new Konva.Wedge({
|
|
31
|
+
* radius: 40,
|
|
32
|
+
* fill: 'red',
|
|
33
|
+
* stroke: 'black'
|
|
34
|
+
* strokeWidth: 5,
|
|
35
|
+
* angleDeg: 60,
|
|
36
|
+
* rotationDeg: -120
|
|
37
|
+
* });
|
|
38
|
+
*/
|
|
39
|
+
export class Wedge extends Shape<WedgeConfig> {
|
|
40
|
+
_sceneFunc(context: Context) {
|
|
41
|
+
context.beginPath();
|
|
42
|
+
context.arc(
|
|
43
|
+
0,
|
|
44
|
+
0,
|
|
45
|
+
this.radius(),
|
|
46
|
+
0,
|
|
47
|
+
Konva.getAngle(this.angle()),
|
|
48
|
+
this.clockwise()
|
|
49
|
+
);
|
|
50
|
+
context.lineTo(0, 0);
|
|
51
|
+
context.closePath();
|
|
52
|
+
context.fillStrokeShape(this);
|
|
53
|
+
}
|
|
54
|
+
getWidth() {
|
|
55
|
+
return this.radius() * 2;
|
|
56
|
+
}
|
|
57
|
+
getHeight() {
|
|
58
|
+
return this.radius() * 2;
|
|
59
|
+
}
|
|
60
|
+
setWidth(width: number) {
|
|
61
|
+
this.radius(width / 2);
|
|
62
|
+
}
|
|
63
|
+
setHeight(height: number) {
|
|
64
|
+
this.radius(height / 2);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
radius: GetSet<number, this>;
|
|
68
|
+
angle: GetSet<number, this>;
|
|
69
|
+
clockwise: GetSet<boolean, this>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
Wedge.prototype.className = 'Wedge';
|
|
73
|
+
Wedge.prototype._centroid = true;
|
|
74
|
+
Wedge.prototype._attrsAffectingSize = ['radius'];
|
|
75
|
+
_registerNode(Wedge);
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* get/set radius
|
|
79
|
+
* @name Konva.Wedge#radius
|
|
80
|
+
* @method
|
|
81
|
+
* @param {Number} radius
|
|
82
|
+
* @returns {Number}
|
|
83
|
+
* @example
|
|
84
|
+
* // get radius
|
|
85
|
+
* var radius = wedge.radius();
|
|
86
|
+
*
|
|
87
|
+
* // set radius
|
|
88
|
+
* wedge.radius(10);
|
|
89
|
+
*/
|
|
90
|
+
Factory.addGetterSetter(Wedge, 'radius', 0, getNumberValidator());
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* get/set angle in degrees
|
|
94
|
+
* @name Konva.Wedge#angle
|
|
95
|
+
* @method
|
|
96
|
+
* @param {Number} angle
|
|
97
|
+
* @returns {Number}
|
|
98
|
+
* @example
|
|
99
|
+
* // get angle
|
|
100
|
+
* var angle = wedge.angle();
|
|
101
|
+
*
|
|
102
|
+
* // set angle
|
|
103
|
+
* wedge.angle(20);
|
|
104
|
+
*/
|
|
105
|
+
Factory.addGetterSetter(Wedge, 'angle', 0, getNumberValidator());
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* get/set clockwise flag
|
|
109
|
+
* @name Konva.Wedge#clockwise
|
|
110
|
+
* @method
|
|
111
|
+
* @param {Number} clockwise
|
|
112
|
+
* @returns {Number}
|
|
113
|
+
* @example
|
|
114
|
+
* // get clockwise flag
|
|
115
|
+
* var clockwise = wedge.clockwise();
|
|
116
|
+
*
|
|
117
|
+
* // draw wedge counter-clockwise
|
|
118
|
+
* wedge.clockwise(false);
|
|
119
|
+
*
|
|
120
|
+
* // draw wedge clockwise
|
|
121
|
+
* wedge.clockwise(true);
|
|
122
|
+
*/
|
|
123
|
+
Factory.addGetterSetter(Wedge, 'clockwise', false);
|
|
124
|
+
|
|
125
|
+
Factory.backCompat(Wedge, {
|
|
126
|
+
angleDeg: 'angle',
|
|
127
|
+
getAngleDeg: 'getAngle',
|
|
128
|
+
setAngleDeg: 'setAngle',
|
|
129
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Konva } from './_CoreInternals.ts';
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
import { Canvas, DOMMatrix, Image, Path2D } from 'skia-canvas';
|
|
4
|
+
|
|
5
|
+
global.DOMMatrix = DOMMatrix as any;
|
|
6
|
+
|
|
7
|
+
global.Path2D = Path2D as any;
|
|
8
|
+
Path2D.prototype.toString = () => '[object Path2D]';
|
|
9
|
+
|
|
10
|
+
Konva.Util['createCanvasElement'] = () => {
|
|
11
|
+
const node = new Canvas(300, 300) as any;
|
|
12
|
+
if (!node['style']) {
|
|
13
|
+
node['style'] = {};
|
|
14
|
+
}
|
|
15
|
+
node.toString = () => '[object HTMLCanvasElement]';
|
|
16
|
+
const ctx = node.getContext('2d');
|
|
17
|
+
// Override the getter to return the canvas node directly
|
|
18
|
+
// because in skia-canvas canvas is using weak ref to the canvas node
|
|
19
|
+
// and somehow on many tests it fails to get the canvas node
|
|
20
|
+
Object.defineProperty(ctx, 'canvas', {
|
|
21
|
+
get: () => node,
|
|
22
|
+
});
|
|
23
|
+
return node;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// create image in Node env
|
|
27
|
+
Konva.Util.createImageElement = () => {
|
|
28
|
+
const node = new Image() as any;
|
|
29
|
+
node.toString = () => '[object HTMLImageElement]';
|
|
30
|
+
return node;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
Konva._renderBackend = 'skia-canvas';
|
|
34
|
+
|
|
35
|
+
export default Konva;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export interface GetSet<Type, This> {
|
|
2
|
+
(): Type;
|
|
3
|
+
(v: Type | null | undefined): This;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface Vector2d {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface PathSegment {
|
|
12
|
+
command:
|
|
13
|
+
| 'm'
|
|
14
|
+
| 'M'
|
|
15
|
+
| 'l'
|
|
16
|
+
| 'L'
|
|
17
|
+
| 'v'
|
|
18
|
+
| 'V'
|
|
19
|
+
| 'h'
|
|
20
|
+
| 'H'
|
|
21
|
+
| 'z'
|
|
22
|
+
| 'Z'
|
|
23
|
+
| 'c'
|
|
24
|
+
| 'C'
|
|
25
|
+
| 'q'
|
|
26
|
+
| 'Q'
|
|
27
|
+
| 't'
|
|
28
|
+
| 'T'
|
|
29
|
+
| 's'
|
|
30
|
+
| 'S'
|
|
31
|
+
| 'a'
|
|
32
|
+
| 'A';
|
|
33
|
+
start: Vector2d;
|
|
34
|
+
points: number[];
|
|
35
|
+
pathLength: number;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface IRect {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface IFrame {
|
|
46
|
+
time: number;
|
|
47
|
+
timeDiff: number;
|
|
48
|
+
lastTime: number;
|
|
49
|
+
frameRate: number;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export type AnimationFn = (frame: IFrame) => boolean | void;
|
|
53
|
+
|
|
54
|
+
export const KonvaNodeEvent = {
|
|
55
|
+
mouseover: 'mouseover',
|
|
56
|
+
mouseout: 'mouseout',
|
|
57
|
+
mousemove: 'mousemove',
|
|
58
|
+
mouseleave: 'mouseleave',
|
|
59
|
+
mouseenter: 'mouseenter',
|
|
60
|
+
mousedown: 'mousedown',
|
|
61
|
+
mouseup: 'mouseup',
|
|
62
|
+
wheel: 'wheel',
|
|
63
|
+
contextmenu: 'contextmenu',
|
|
64
|
+
click: 'click',
|
|
65
|
+
dblclick: 'dblclick',
|
|
66
|
+
touchstart: 'touchstart',
|
|
67
|
+
touchmove: 'touchmove',
|
|
68
|
+
touchend: 'touchend',
|
|
69
|
+
tap: 'tap',
|
|
70
|
+
dbltap: 'dbltap',
|
|
71
|
+
dragstart: 'dragstart',
|
|
72
|
+
dragmove: 'dragmove',
|
|
73
|
+
dragend: 'dragend',
|
|
74
|
+
} as const;
|
|
75
|
+
|
|
76
|
+
export interface RGB {
|
|
77
|
+
r: number;
|
|
78
|
+
g: number;
|
|
79
|
+
b: number;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface RGBA extends RGB {
|
|
83
|
+
a: number;
|
|
84
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"outDir": "lib",
|
|
4
|
+
"target": "ES2018",
|
|
5
|
+
"lib": ["ES2019", "dom"],
|
|
6
|
+
"module": "nodenext",
|
|
7
|
+
"noUncheckedSideEffectImports": true,
|
|
8
|
+
"rewriteRelativeImportExtensions": true,
|
|
9
|
+
"isolatedModules": true,
|
|
10
|
+
"erasableSyntaxOnly": true,
|
|
11
|
+
"verbatimModuleSyntax": true,
|
|
12
|
+
// "sourceMap": true,
|
|
13
|
+
"noEmitOnError": true,
|
|
14
|
+
"declaration": true,
|
|
15
|
+
"removeComments": false,
|
|
16
|
+
|
|
17
|
+
"strict": true,
|
|
18
|
+
"noImplicitAny": false,
|
|
19
|
+
"noImplicitThis": false,
|
|
20
|
+
"useUnknownInCatchVariables": false,
|
|
21
|
+
"skipLibCheck": true,
|
|
22
|
+
// probably we would never enable this one
|
|
23
|
+
// because it's too strict, konva generates many functions on the runtime
|
|
24
|
+
"strictPropertyInitialization": false,
|
|
25
|
+
// our initializer `field: GetSet<string, this>` will cause `field` to
|
|
26
|
+
// be set to undefined if target>=ES2022, this also affects tools like `tsx` running locally
|
|
27
|
+
// https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#the-usedefineforclassfields-flag-and-the-declare-property-modifier
|
|
28
|
+
"useDefineForClassFields": false
|
|
29
|
+
},
|
|
30
|
+
"include": ["src"]
|
|
31
|
+
}
|