@nasser-sw/fabric 7.0.1-beta8 → 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 +915 -23
- 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 +915 -23
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.cjs +915 -23
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +915 -23
- 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/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/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/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/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
|
+
}
|