@idraw/core 0.3.0-beta.3 → 0.3.0-beta.7
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/esm/index.d.ts +44 -44
- package/dist/esm/index.js +85 -80
- package/dist/esm/lib/calculate.d.ts +3 -3
- package/dist/esm/lib/calculate.js +5 -5
- package/dist/esm/lib/check.d.ts +4 -4
- package/dist/esm/lib/check.js +1 -1
- package/dist/esm/lib/config.d.ts +2 -2
- package/dist/esm/lib/core-event.d.ts +21 -21
- package/dist/esm/lib/diff.d.ts +6 -6
- package/dist/esm/lib/diff.js +9 -7
- package/dist/esm/lib/draw/base.d.ts +5 -5
- package/dist/esm/lib/draw/wrapper.d.ts +4 -4
- package/dist/esm/lib/element.d.ts +8 -8
- package/dist/esm/lib/element.js +15 -11
- package/dist/esm/lib/engine-temp.d.ts +4 -4
- package/dist/esm/lib/engine.d.ts +5 -5
- package/dist/esm/lib/helper.d.ts +12 -12
- package/dist/esm/lib/is.d.ts +3 -3
- package/dist/esm/lib/mapper.d.ts +4 -4
- package/dist/esm/lib/parse.d.ts +2 -2
- package/dist/esm/lib/parse.js +6 -3
- package/dist/esm/lib/transform.d.ts +4 -4
- package/dist/esm/lib/transform.js +1 -1
- package/dist/esm/mixins/element.d.ts +12 -14
- package/dist/esm/mixins/element.js +60 -62
- package/dist/esm/plugins/helper.d.ts +7 -7
- package/dist/esm/plugins/helper.js +5 -10
- package/dist/index.global.js +400 -439
- package/dist/index.global.min.js +1 -1
- package/package.json +6 -6
- package/dist/esm/lib/element/element-base.d.ts +0 -3
- package/dist/esm/lib/element/element-base.js +0 -5
- package/dist/esm/lib/element/element-controller.d.ts +0 -3
- package/dist/esm/lib/element/element-controller.js +0 -3
- package/dist/esm/lib/element/element-hub.d.ts +0 -9
- package/dist/esm/lib/element/element-hub.js +0 -16
- package/dist/esm/names.d.ts +0 -15
- package/dist/esm/names.js +0 -15
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { TypeCoreEventArgMap } from './lib';
|
|
5
|
-
import {
|
|
1
|
+
import { IDrawData, Point, BoardSizeOptions, IDrawConfig, DataElementBase, DataElement, DataElemDesc, IDrawContext, CoreOptions, ScreenContext, ScreenData } from '@idraw/types';
|
|
2
|
+
import { IsTypeUtil } from './lib/is';
|
|
3
|
+
import { CheckTypeUtil } from './lib/check';
|
|
4
|
+
import { Element, TypeCoreEventArgMap } from './lib';
|
|
5
|
+
import { Engine } from './lib/engine';
|
|
6
6
|
export default class Core {
|
|
7
|
-
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
static is:
|
|
17
|
-
static check:
|
|
18
|
-
constructor(mount: HTMLDivElement, opts:
|
|
19
|
-
|
|
7
|
+
$data: IDrawData;
|
|
8
|
+
private _board;
|
|
9
|
+
private _opts;
|
|
10
|
+
private _config;
|
|
11
|
+
private _renderer;
|
|
12
|
+
private _elementHandler;
|
|
13
|
+
private _coreEvent;
|
|
14
|
+
private _tempData;
|
|
15
|
+
private _engine;
|
|
16
|
+
static is: IsTypeUtil;
|
|
17
|
+
static check: CheckTypeUtil;
|
|
18
|
+
constructor(mount: HTMLDivElement, opts: CoreOptions, config?: IDrawConfig);
|
|
19
|
+
private _emitChangeScreen;
|
|
20
|
+
$draw(opts?: {
|
|
20
21
|
resourceChangeUUIDs?: string[];
|
|
21
22
|
}): void;
|
|
22
|
-
getElement(uuid: string):
|
|
23
|
-
getElementByIndex(index: number):
|
|
23
|
+
getElement(uuid: string): DataElement<keyof DataElemDesc> | null;
|
|
24
|
+
getElementByIndex(index: number): DataElement<keyof DataElemDesc> | null;
|
|
24
25
|
selectElementByIndex(index: number): void;
|
|
25
26
|
selectElement(uuid: string): void;
|
|
26
27
|
cancelElementByIndex(index: number): void;
|
|
27
|
-
cancelElement(uuid: string
|
|
28
|
-
useMode?: boolean;
|
|
29
|
-
}): void;
|
|
28
|
+
cancelElement(uuid: string): void;
|
|
30
29
|
moveUpElement(uuid: string): void;
|
|
31
30
|
moveDownElement(uuid: string): void;
|
|
32
|
-
updateElement(elem:
|
|
33
|
-
addElement(elem:
|
|
31
|
+
updateElement(elem: DataElement<keyof DataElemDesc>): void;
|
|
32
|
+
addElement(elem: DataElementBase<keyof DataElemDesc>): string | null;
|
|
34
33
|
deleteElement(uuid: string): void;
|
|
35
|
-
insertElementBefore(elem:
|
|
36
|
-
insertElementBeforeIndex(elem:
|
|
37
|
-
getSelectedElements():
|
|
38
|
-
insertElementAfter(elem:
|
|
39
|
-
insertElementAfterIndex(elem:
|
|
40
|
-
resetSize(opts:
|
|
41
|
-
scale(ratio: number):
|
|
42
|
-
scrollLeft(left: number):
|
|
43
|
-
scrollTop(top: number):
|
|
44
|
-
getScreenTransform():
|
|
45
|
-
getData():
|
|
46
|
-
setData(data: any |
|
|
34
|
+
insertElementBefore(elem: DataElementBase<keyof DataElemDesc>, beforeUUID: string): any;
|
|
35
|
+
insertElementBeforeIndex(elem: DataElementBase<keyof DataElemDesc>, index: number): any;
|
|
36
|
+
getSelectedElements(): DataElement<keyof DataElemDesc>[];
|
|
37
|
+
insertElementAfter(elem: DataElementBase<keyof DataElemDesc>, beforeUUID: string): any;
|
|
38
|
+
insertElementAfterIndex(elem: DataElementBase<keyof DataElemDesc>, index: number): any;
|
|
39
|
+
resetSize(opts: BoardSizeOptions): void;
|
|
40
|
+
scale(ratio: number): ScreenContext;
|
|
41
|
+
scrollLeft(left: number): ScreenContext;
|
|
42
|
+
scrollTop(top: number): ScreenContext;
|
|
43
|
+
getScreenTransform(): ScreenData;
|
|
44
|
+
getData(): IDrawData;
|
|
45
|
+
setData(data: any | IDrawData, opts?: {
|
|
47
46
|
triggerChangeEvent: boolean;
|
|
48
47
|
}): void;
|
|
49
48
|
clearOperation(): void;
|
|
50
49
|
on<T extends keyof TypeCoreEventArgMap>(key: T, callback: (p: TypeCoreEventArgMap[T]) => void): void;
|
|
51
50
|
off<T extends keyof TypeCoreEventArgMap>(key: T, callback: (p: TypeCoreEventArgMap[T]) => void): void;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
51
|
+
getEngine(): Engine;
|
|
52
|
+
pointScreenToContext(p: Point): Point;
|
|
53
|
+
pointContextToScreen(p: Point): Point;
|
|
54
|
+
$getBoardContext(): IDrawContext;
|
|
55
|
+
$getDisplayContext2D(): CanvasRenderingContext2D;
|
|
56
|
+
$getOriginContext2D(): CanvasRenderingContext2D;
|
|
57
|
+
$emitChangeData(): void;
|
|
58
|
+
$getElementHandler(): Element;
|
|
59
59
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,70 +1,73 @@
|
|
|
1
|
-
var _a, _b;
|
|
2
1
|
import Board from '@idraw/board';
|
|
3
2
|
import { deepClone } from '@idraw/util';
|
|
4
3
|
import Renderer from '@idraw/renderer';
|
|
5
4
|
import is from './lib/is';
|
|
6
5
|
import check from './lib/check';
|
|
7
6
|
import { Element, mergeConfig, CoreEvent, parseData, TempData, diffElementResourceChangeList } from './lib';
|
|
8
|
-
import { _board, _data, _opts, _config, _renderer, _element, _tempData, _draw, _coreEvent, _emitChangeScreen, _emitChangeData, _engine } from './names';
|
|
9
7
|
import { getSelectedElements, updateElement, selectElementByIndex, selectElement, cancelElementByIndex, cancelElement, getElement, getElementByIndex, moveUpElement, moveDownElement, addElement, deleteElement, insertElementBefore, insertElementBeforeIndex, insertElementAfter, insertElementAfterIndex } from './mixins/element';
|
|
10
8
|
import { Engine } from './lib/engine';
|
|
11
9
|
import { drawElementWrapper, drawAreaWrapper, drawElementListWrappers } from './lib/draw/wrapper';
|
|
12
|
-
|
|
10
|
+
class Core {
|
|
13
11
|
constructor(mount, opts, config) {
|
|
14
|
-
var
|
|
15
|
-
this
|
|
16
|
-
this
|
|
17
|
-
this
|
|
18
|
-
this
|
|
19
|
-
this
|
|
20
|
-
this
|
|
21
|
-
this
|
|
12
|
+
var _a, _b, _c;
|
|
13
|
+
this._coreEvent = new CoreEvent();
|
|
14
|
+
this._tempData = new TempData();
|
|
15
|
+
this.$data = { elements: [] };
|
|
16
|
+
this._opts = opts;
|
|
17
|
+
this._config = mergeConfig(config || {});
|
|
18
|
+
this._board = new Board(mount, Object.assign(Object.assign({}, this._opts), { canScroll: (_a = config === null || config === void 0 ? void 0 : config.scrollWrapper) === null || _a === void 0 ? void 0 : _a.use, scrollConfig: Object.assign({ color: ((_b = config === null || config === void 0 ? void 0 : config.scrollWrapper) === null || _b === void 0 ? void 0 : _b.color) || '#000000', width: ((_c = config === null || config === void 0 ? void 0 : config.scrollWrapper) === null || _c === void 0 ? void 0 : _c.width) || 12 }, ((config === null || config === void 0 ? void 0 : config.scrollWrapper) || {})) }));
|
|
19
|
+
this._renderer = new Renderer();
|
|
22
20
|
const drawFrame = () => {
|
|
23
|
-
const helperCtx = this
|
|
24
|
-
const helperConfig = this
|
|
25
|
-
this
|
|
26
|
-
const { contextWidth, contextHeight, devicePixelRatio } = this
|
|
21
|
+
const helperCtx = this._board.getHelperContext();
|
|
22
|
+
const helperConfig = this._engine.getHelperConfig();
|
|
23
|
+
this._board.clear();
|
|
24
|
+
const { contextWidth, contextHeight, devicePixelRatio } = this._opts;
|
|
27
25
|
helperCtx.clearRect(0, 0, contextWidth * devicePixelRatio, contextHeight * devicePixelRatio);
|
|
28
26
|
drawElementWrapper(helperCtx, helperConfig);
|
|
29
27
|
drawAreaWrapper(helperCtx, helperConfig);
|
|
30
28
|
drawElementListWrappers(helperCtx, helperConfig);
|
|
31
|
-
this
|
|
29
|
+
this._board.draw();
|
|
32
30
|
};
|
|
33
|
-
this
|
|
31
|
+
this._renderer.on('drawFrame', () => {
|
|
34
32
|
drawFrame();
|
|
35
33
|
});
|
|
36
|
-
this
|
|
34
|
+
this._renderer.on('drawFrameComplete', () => {
|
|
37
35
|
drawFrame();
|
|
38
36
|
});
|
|
39
|
-
this
|
|
40
|
-
this
|
|
41
|
-
coreEvent: this
|
|
42
|
-
board: this
|
|
43
|
-
element: this
|
|
44
|
-
config: this
|
|
45
|
-
drawFeekback: this
|
|
46
|
-
getDataFeekback: () => this
|
|
37
|
+
this._elementHandler = new Element(this._board.getContext());
|
|
38
|
+
this._engine = new Engine({
|
|
39
|
+
coreEvent: this._coreEvent,
|
|
40
|
+
board: this._board,
|
|
41
|
+
element: this._elementHandler,
|
|
42
|
+
config: this._config,
|
|
43
|
+
drawFeekback: this.$draw.bind(this),
|
|
44
|
+
getDataFeekback: () => this.$data,
|
|
47
45
|
selectElementByIndex: this.selectElementByIndex.bind(this),
|
|
48
|
-
emitChangeScreen: this
|
|
49
|
-
emitChangeData: this
|
|
46
|
+
emitChangeScreen: this._emitChangeScreen.bind(this),
|
|
47
|
+
emitChangeData: this.$emitChangeData.bind(this)
|
|
50
48
|
});
|
|
51
|
-
this
|
|
52
|
-
this
|
|
53
|
-
this
|
|
49
|
+
this._engine.init();
|
|
50
|
+
this._renderer.on('drawFrame', () => {
|
|
51
|
+
this._coreEvent.trigger('drawFrame', undefined);
|
|
54
52
|
});
|
|
55
|
-
this
|
|
56
|
-
this
|
|
53
|
+
this._renderer.on('drawFrameComplete', () => {
|
|
54
|
+
this._coreEvent.trigger('drawFrameComplete', undefined);
|
|
57
55
|
});
|
|
58
|
-
this
|
|
56
|
+
this._tempData.set('hasInited', true);
|
|
59
57
|
}
|
|
60
|
-
|
|
61
|
-
this
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
_emitChangeScreen() {
|
|
59
|
+
if (this._coreEvent.has('changeScreen')) {
|
|
60
|
+
this._coreEvent.trigger('changeScreen', Object.assign({}, this.getScreenTransform()));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
$draw(opts) {
|
|
64
|
+
this._engine.updateHelperConfig({
|
|
65
|
+
width: this._opts.width,
|
|
66
|
+
height: this._opts.height,
|
|
67
|
+
devicePixelRatio: this._opts.devicePixelRatio
|
|
65
68
|
});
|
|
66
|
-
this
|
|
67
|
-
this
|
|
69
|
+
this._renderer.thaw();
|
|
70
|
+
this._renderer.render(this._board.getContext(), this.$data, {
|
|
68
71
|
changeResourceUUIDs: (opts === null || opts === void 0 ? void 0 : opts.resourceChangeUUIDs) || []
|
|
69
72
|
});
|
|
70
73
|
}
|
|
@@ -83,8 +86,8 @@ export default class Core {
|
|
|
83
86
|
cancelElementByIndex(index) {
|
|
84
87
|
return cancelElementByIndex(this, index);
|
|
85
88
|
}
|
|
86
|
-
cancelElement(uuid
|
|
87
|
-
return cancelElement(this, uuid
|
|
89
|
+
cancelElement(uuid) {
|
|
90
|
+
return cancelElement(this, uuid);
|
|
88
91
|
}
|
|
89
92
|
moveUpElement(uuid) {
|
|
90
93
|
return moveUpElement(this, uuid);
|
|
@@ -117,30 +120,30 @@ export default class Core {
|
|
|
117
120
|
return insertElementAfterIndex(this, elem, index);
|
|
118
121
|
}
|
|
119
122
|
resetSize(opts) {
|
|
120
|
-
this
|
|
121
|
-
this
|
|
122
|
-
this
|
|
123
|
+
this._opts = Object.assign(Object.assign({}, this._opts), opts);
|
|
124
|
+
this._board.resetSize(opts);
|
|
125
|
+
this.$draw();
|
|
123
126
|
}
|
|
124
127
|
scale(ratio) {
|
|
125
|
-
const screen = this
|
|
126
|
-
this
|
|
127
|
-
this
|
|
128
|
+
const screen = this._board.scale(ratio);
|
|
129
|
+
this.$draw();
|
|
130
|
+
this._emitChangeScreen();
|
|
128
131
|
return screen;
|
|
129
132
|
}
|
|
130
133
|
scrollLeft(left) {
|
|
131
|
-
const screen = this
|
|
132
|
-
this
|
|
133
|
-
this
|
|
134
|
+
const screen = this._board.scrollX(0 - left);
|
|
135
|
+
this.$draw();
|
|
136
|
+
this._emitChangeScreen();
|
|
134
137
|
return screen;
|
|
135
138
|
}
|
|
136
139
|
scrollTop(top) {
|
|
137
|
-
const screen = this
|
|
138
|
-
this
|
|
139
|
-
this
|
|
140
|
+
const screen = this._board.scrollY(0 - top);
|
|
141
|
+
this.$draw();
|
|
142
|
+
this._emitChangeScreen();
|
|
140
143
|
return screen;
|
|
141
144
|
}
|
|
142
145
|
getScreenTransform() {
|
|
143
|
-
const transform = this
|
|
146
|
+
const transform = this._board.getTransform();
|
|
144
147
|
return {
|
|
145
148
|
scale: transform.scale,
|
|
146
149
|
scrollTop: Math.max(0, 0 - transform.scrollY),
|
|
@@ -148,51 +151,53 @@ export default class Core {
|
|
|
148
151
|
};
|
|
149
152
|
}
|
|
150
153
|
getData() {
|
|
151
|
-
return deepClone(this
|
|
154
|
+
return deepClone(this.$data);
|
|
152
155
|
}
|
|
153
156
|
setData(data, opts) {
|
|
154
|
-
const resourceChangeUUIDs = diffElementResourceChangeList(this
|
|
155
|
-
this
|
|
157
|
+
const resourceChangeUUIDs = diffElementResourceChangeList(this.$data, data);
|
|
158
|
+
this.$data = this._elementHandler.initData(deepClone(parseData(data)));
|
|
156
159
|
if (opts && opts.triggerChangeEvent === true) {
|
|
157
|
-
this
|
|
160
|
+
this.$emitChangeData();
|
|
158
161
|
}
|
|
159
|
-
this
|
|
162
|
+
this.$draw({ resourceChangeUUIDs });
|
|
160
163
|
}
|
|
161
164
|
clearOperation() {
|
|
162
|
-
this
|
|
163
|
-
this
|
|
165
|
+
this._tempData.clear();
|
|
166
|
+
this.$draw();
|
|
164
167
|
}
|
|
165
168
|
on(key, callback) {
|
|
166
|
-
this
|
|
169
|
+
this._coreEvent.on(key, callback);
|
|
167
170
|
}
|
|
168
171
|
off(key, callback) {
|
|
169
|
-
this
|
|
172
|
+
this._coreEvent.off(key, callback);
|
|
173
|
+
}
|
|
174
|
+
getEngine() {
|
|
175
|
+
return this._engine;
|
|
170
176
|
}
|
|
171
177
|
pointScreenToContext(p) {
|
|
172
|
-
return this
|
|
178
|
+
return this._board.pointScreenToContext(p);
|
|
173
179
|
}
|
|
174
180
|
pointContextToScreen(p) {
|
|
175
|
-
return this
|
|
181
|
+
return this._board.pointContextToScreen(p);
|
|
176
182
|
}
|
|
177
|
-
|
|
178
|
-
return this
|
|
183
|
+
$getBoardContext() {
|
|
184
|
+
return this._board.getContext();
|
|
179
185
|
}
|
|
180
|
-
|
|
181
|
-
return this
|
|
186
|
+
$getDisplayContext2D() {
|
|
187
|
+
return this._board.getDisplayContext2D();
|
|
182
188
|
}
|
|
183
|
-
|
|
184
|
-
return this
|
|
189
|
+
$getOriginContext2D() {
|
|
190
|
+
return this._board.getOriginContext2D();
|
|
185
191
|
}
|
|
186
|
-
|
|
187
|
-
if (this
|
|
188
|
-
this
|
|
192
|
+
$emitChangeData() {
|
|
193
|
+
if (this._coreEvent.has('changeData')) {
|
|
194
|
+
this._coreEvent.trigger('changeData', deepClone(this.$data));
|
|
189
195
|
}
|
|
190
196
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
this[_coreEvent].trigger('changeData', deepClone(this[_data]));
|
|
194
|
-
}
|
|
197
|
+
$getElementHandler() {
|
|
198
|
+
return this._elementHandler;
|
|
195
199
|
}
|
|
196
200
|
}
|
|
197
201
|
Core.is = is;
|
|
198
202
|
Core.check = check;
|
|
203
|
+
export default Core;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataElement, DataElemDesc, Point } from '@idraw/types';
|
|
2
2
|
export declare function parseRadianToAngle(radian: number): number;
|
|
3
3
|
export declare function parseAngleToRadian(angle: number): number;
|
|
4
|
-
export declare function calcElementCenter(elem:
|
|
5
|
-
export declare function calcRadian(center:
|
|
4
|
+
export declare function calcElementCenter(elem: DataElement<keyof DataElemDesc>): Point;
|
|
5
|
+
export declare function calcRadian(center: Point, start: Point, end: Point): number;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export function parseRadianToAngle(radian) {
|
|
2
|
-
return radian / Math.PI * 180;
|
|
2
|
+
return (radian / Math.PI) * 180;
|
|
3
3
|
}
|
|
4
4
|
export function parseAngleToRadian(angle) {
|
|
5
|
-
return angle / 180 * Math.PI;
|
|
5
|
+
return (angle / 180) * Math.PI;
|
|
6
6
|
}
|
|
7
7
|
export function calcElementCenter(elem) {
|
|
8
8
|
const p = {
|
|
9
9
|
x: elem.x + elem.w / 2,
|
|
10
|
-
y: elem.y + elem.h / 2
|
|
10
|
+
y: elem.y + elem.h / 2
|
|
11
11
|
};
|
|
12
12
|
return p;
|
|
13
13
|
}
|
|
@@ -15,10 +15,10 @@ export function calcRadian(center, start, end) {
|
|
|
15
15
|
const startAngle = calcLineAngle(center, start);
|
|
16
16
|
const endAngle = calcLineAngle(center, end);
|
|
17
17
|
if (endAngle !== null && startAngle !== null) {
|
|
18
|
-
if (startAngle > Math.PI * 3 / 2 && endAngle < Math.PI / 2) {
|
|
18
|
+
if (startAngle > (Math.PI * 3) / 2 && endAngle < Math.PI / 2) {
|
|
19
19
|
return endAngle + (Math.PI * 2 - startAngle);
|
|
20
20
|
}
|
|
21
|
-
else if (endAngle > Math.PI * 3 / 2 && startAngle < Math.PI / 2) {
|
|
21
|
+
else if (endAngle > (Math.PI * 3) / 2 && startAngle < Math.PI / 2) {
|
|
22
22
|
return startAngle + (Math.PI * 2 - endAngle);
|
|
23
23
|
}
|
|
24
24
|
else {
|
package/dist/esm/lib/check.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare function attrs(attrs:
|
|
1
|
+
import { DataElementAttrs } from '@idraw/types';
|
|
2
|
+
declare function attrs(attrs: DataElementAttrs): boolean;
|
|
3
3
|
declare function rectDesc(desc: any): boolean;
|
|
4
4
|
declare function circleDesc(desc: any): boolean;
|
|
5
5
|
declare function imageDesc(desc: any): boolean;
|
|
@@ -15,7 +15,7 @@ declare const check: {
|
|
|
15
15
|
svgDesc: typeof svgDesc;
|
|
16
16
|
htmlDesc: typeof htmlDesc;
|
|
17
17
|
};
|
|
18
|
-
type
|
|
18
|
+
type CheckTypeUtil = {
|
|
19
19
|
attrs: (value: any) => boolean;
|
|
20
20
|
rectDesc: (value: any) => boolean;
|
|
21
21
|
circleDesc: (value: any) => boolean;
|
|
@@ -24,5 +24,5 @@ type TypeCheck = {
|
|
|
24
24
|
htmlDesc: (value: any) => boolean;
|
|
25
25
|
textDesc: (value: any) => boolean;
|
|
26
26
|
};
|
|
27
|
-
export {
|
|
27
|
+
export { CheckTypeUtil };
|
|
28
28
|
export default check;
|
package/dist/esm/lib/check.js
CHANGED
package/dist/esm/lib/config.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare function mergeConfig(config?:
|
|
1
|
+
import { IDrawConfig, IDrawConfigStrict } from '@idraw/types';
|
|
2
|
+
declare function mergeConfig(config?: IDrawConfig): IDrawConfigStrict;
|
|
3
3
|
export { mergeConfig };
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataElement, DataElemDesc, Point, IDrawData, ScreenData } from '@idraw/types';
|
|
2
2
|
export type TypeCoreEventSelectBaseArg = {
|
|
3
3
|
index: number | null;
|
|
4
4
|
uuid: string | null;
|
|
5
5
|
};
|
|
6
6
|
export type TypeCoreEventArgMap = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
element:
|
|
7
|
+
error: any;
|
|
8
|
+
mouseOverScreen: Point;
|
|
9
|
+
mouseLeaveScreen: void;
|
|
10
|
+
mouseOverElement: TypeCoreEventSelectBaseArg & {
|
|
11
|
+
element: DataElement<keyof DataElemDesc>;
|
|
12
12
|
};
|
|
13
|
-
|
|
14
|
-
element:
|
|
13
|
+
mouseLeaveElement: TypeCoreEventSelectBaseArg & {
|
|
14
|
+
element: DataElement<keyof DataElemDesc>;
|
|
15
15
|
};
|
|
16
|
-
|
|
17
|
-
element:
|
|
16
|
+
screenClickElement: TypeCoreEventSelectBaseArg & {
|
|
17
|
+
element: DataElement<keyof DataElemDesc>;
|
|
18
18
|
};
|
|
19
|
-
|
|
20
|
-
element:
|
|
19
|
+
screenDoubleClickElement: TypeCoreEventSelectBaseArg & {
|
|
20
|
+
element: DataElement<keyof DataElemDesc>;
|
|
21
21
|
};
|
|
22
|
-
|
|
23
|
-
element:
|
|
22
|
+
screenSelectElement: TypeCoreEventSelectBaseArg & {
|
|
23
|
+
element: DataElement<keyof DataElemDesc>;
|
|
24
24
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
screenMoveElementStart: TypeCoreEventSelectBaseArg & Point;
|
|
26
|
+
screenMoveElementEnd: TypeCoreEventSelectBaseArg & Point;
|
|
27
|
+
screenChangeElement: TypeCoreEventSelectBaseArg & {
|
|
28
28
|
width: number;
|
|
29
29
|
height: number;
|
|
30
30
|
angle: number;
|
|
31
31
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
changeData: IDrawData;
|
|
33
|
+
changeScreen: ScreenData;
|
|
34
|
+
drawFrameComplete: void;
|
|
35
|
+
drawFrame: void;
|
|
36
36
|
};
|
|
37
37
|
export interface TypeCoreEvent {
|
|
38
38
|
on<T extends keyof TypeCoreEventArgMap>(key: T, callback: (p: TypeCoreEventArgMap[T]) => void): void;
|
package/dist/esm/lib/diff.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function isChangeImageElementResource(before:
|
|
3
|
-
export declare function isChangeSVGElementResource(before:
|
|
4
|
-
export declare function isChangeHTMLElementResource(before:
|
|
5
|
-
export declare function diffElementResourceChange(before:
|
|
6
|
-
export declare function diffElementResourceChangeList(before:
|
|
1
|
+
import { DataElement, IDrawData, DataElemDesc } from '@idraw/types';
|
|
2
|
+
export declare function isChangeImageElementResource(before: DataElement<'image'>, after: DataElement<'image'>): boolean;
|
|
3
|
+
export declare function isChangeSVGElementResource(before: DataElement<'svg'>, after: DataElement<'svg'>): boolean;
|
|
4
|
+
export declare function isChangeHTMLElementResource(before: DataElement<'html'>, after: DataElement<'html'>): boolean;
|
|
5
|
+
export declare function diffElementResourceChange(before: DataElement<keyof DataElemDesc>, after: DataElement<keyof DataElemDesc>): string | null;
|
|
6
|
+
export declare function diffElementResourceChangeList(before: IDrawData, after: IDrawData): string[];
|
package/dist/esm/lib/diff.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
export function isChangeImageElementResource(before, after) {
|
|
2
2
|
var _a, _b;
|
|
3
|
-
return ((
|
|
3
|
+
return ((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.src) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.src);
|
|
4
4
|
}
|
|
5
5
|
export function isChangeSVGElementResource(before, after) {
|
|
6
6
|
var _a, _b;
|
|
7
|
-
return ((
|
|
7
|
+
return ((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.svg) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.svg);
|
|
8
8
|
}
|
|
9
9
|
export function isChangeHTMLElementResource(before, after) {
|
|
10
10
|
var _a, _b, _c, _d, _e, _f;
|
|
11
|
-
return (((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.html) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.html)
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
return (((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.html) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.html) ||
|
|
12
|
+
((_c = before === null || before === void 0 ? void 0 : before.desc) === null || _c === void 0 ? void 0 : _c.width) !== ((_d = after === null || after === void 0 ? void 0 : after.desc) === null || _d === void 0 ? void 0 : _d.width) ||
|
|
13
|
+
((_e = before === null || before === void 0 ? void 0 : before.desc) === null || _e === void 0 ? void 0 : _e.height) !== ((_f = after === null || after === void 0 ? void 0 : after.desc) === null || _f === void 0 ? void 0 : _f.height));
|
|
14
14
|
}
|
|
15
15
|
export function diffElementResourceChange(before, after) {
|
|
16
16
|
let result = null;
|
|
@@ -28,7 +28,8 @@ export function diffElementResourceChange(before, after) {
|
|
|
28
28
|
isChange = isChangeHTMLElementResource(before, after);
|
|
29
29
|
break;
|
|
30
30
|
}
|
|
31
|
-
default:
|
|
31
|
+
default:
|
|
32
|
+
break;
|
|
32
33
|
}
|
|
33
34
|
if (isChange === true) {
|
|
34
35
|
result = after.uuid;
|
|
@@ -59,7 +60,8 @@ export function diffElementResourceChangeList(before, after) {
|
|
|
59
60
|
isChange = isChangeHTMLElementResource(beforeMap[uuid], afterMap[uuid]);
|
|
60
61
|
break;
|
|
61
62
|
}
|
|
62
|
-
default:
|
|
63
|
+
default:
|
|
64
|
+
break;
|
|
63
65
|
}
|
|
64
66
|
if (isChange === true) {
|
|
65
67
|
uuids.push(uuid);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function clearContext(ctx:
|
|
3
|
-
export declare function drawBgColor(ctx:
|
|
4
|
-
export declare function drawBox(ctx:
|
|
5
|
-
export declare function drawBoxBorder(ctx:
|
|
1
|
+
import { IDrawContext, DataElement } from '@idraw/types';
|
|
2
|
+
export declare function clearContext(ctx: IDrawContext): void;
|
|
3
|
+
export declare function drawBgColor(ctx: IDrawContext, color: string): void;
|
|
4
|
+
export declare function drawBox(ctx: IDrawContext, elem: DataElement<'text' | 'rect'>, pattern: string | CanvasPattern | null): void;
|
|
5
|
+
export declare function drawBoxBorder(ctx: IDrawContext, elem: DataElement<'text' | 'rect'>): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function drawElementWrapper(ctx:
|
|
3
|
-
export declare function drawAreaWrapper(ctx:
|
|
4
|
-
export declare function drawElementListWrappers(ctx:
|
|
1
|
+
import { IDrawContext, HelperConfig } from '@idraw/types';
|
|
2
|
+
export declare function drawElementWrapper(ctx: IDrawContext, config: HelperConfig): void;
|
|
3
|
+
export declare function drawAreaWrapper(ctx: IDrawContext, config: HelperConfig): void;
|
|
4
|
+
export declare function drawElementListWrappers(ctx: IDrawContext, config: HelperConfig): void;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IDrawContext, Point, IDrawData, HelperWrapperControllerDirection, DataElement, DataElemDesc } from '@idraw/types';
|
|
2
2
|
export declare class Element {
|
|
3
3
|
private _ctx;
|
|
4
|
-
constructor(ctx:
|
|
5
|
-
initData(data:
|
|
6
|
-
isPointInElement(p:
|
|
7
|
-
dragElement(data:
|
|
8
|
-
transformElement(data:
|
|
4
|
+
constructor(ctx: IDrawContext);
|
|
5
|
+
initData(data: IDrawData): IDrawData;
|
|
6
|
+
isPointInElement(p: Point, data: IDrawData): [number, string | null];
|
|
7
|
+
dragElement(data: IDrawData, uuid: string, point: Point, prevPoint: Point, scale: number): void;
|
|
8
|
+
transformElement(data: IDrawData, uuid: string, point: Point, prevPoint: Point, scale: number, direction: HelperWrapperControllerDirection): null | {
|
|
9
9
|
width: number;
|
|
10
10
|
height: number;
|
|
11
11
|
angle: number;
|
|
12
12
|
};
|
|
13
|
-
getElementIndex(data:
|
|
14
|
-
limitElementAttrs(elem:
|
|
13
|
+
getElementIndex(data: IDrawData, uuid: string): number;
|
|
14
|
+
limitElementAttrs(elem: DataElement<keyof DataElemDesc>): void;
|
|
15
15
|
}
|