@idraw/renderer 0.4.0-beta.3 → 0.4.0-beta.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/README.md +2 -2
- package/dist/esm/draw/box.d.ts +14 -3
- package/dist/esm/draw/box.js +82 -34
- package/dist/esm/draw/circle.js +57 -31
- package/dist/esm/draw/elements.js +5 -2
- package/dist/esm/draw/global.d.ts +2 -0
- package/dist/esm/draw/global.js +9 -0
- package/dist/esm/draw/group.js +20 -8
- package/dist/esm/draw/html.js +7 -7
- package/dist/esm/draw/image.js +50 -9
- package/dist/esm/draw/index.d.ts +2 -0
- package/dist/esm/draw/index.js +2 -0
- package/dist/esm/draw/layout.d.ts +2 -0
- package/dist/esm/draw/layout.js +44 -0
- package/dist/esm/draw/path.js +48 -8
- package/dist/esm/draw/rect.js +4 -3
- package/dist/esm/draw/svg.js +7 -7
- package/dist/esm/draw/text.js +123 -66
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +38 -7
- package/dist/esm/loader.d.ts +6 -11
- package/dist/esm/loader.js +120 -83
- package/dist/index.global.js +683 -261
- package/dist/index.global.min.js +1 -1
- package/package.json +3 -3
package/dist/esm/loader.js
CHANGED
|
@@ -7,6 +7,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
11
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
12
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
13
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
14
|
+
};
|
|
15
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
16
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
17
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
18
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
19
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
20
|
+
};
|
|
21
|
+
var _Loader_instances, _Loader_loadFuncMap, _Loader_currentLoadItemMap, _Loader_storageLoadItemMap, _Loader_hasDestroyed, _Loader_registerLoadFunc, _Loader_getLoadElementSource, _Loader_createLoadItem, _Loader_emitLoad, _Loader_emitError, _Loader_loadResource, _Loader_isExistingErrorStorage;
|
|
10
22
|
import { loadImage, loadHTML, loadSVG, EventEmitter, createAssetId, isAssetId, createUUID } from '@idraw/util';
|
|
11
23
|
const supportElementTypes = ['image', 'svg', 'html'];
|
|
12
24
|
const getAssetIdFromElement = (element) => {
|
|
@@ -32,10 +44,12 @@ const getAssetIdFromElement = (element) => {
|
|
|
32
44
|
export class Loader extends EventEmitter {
|
|
33
45
|
constructor() {
|
|
34
46
|
super();
|
|
35
|
-
this
|
|
36
|
-
this
|
|
37
|
-
this
|
|
38
|
-
|
|
47
|
+
_Loader_instances.add(this);
|
|
48
|
+
_Loader_loadFuncMap.set(this, {});
|
|
49
|
+
_Loader_currentLoadItemMap.set(this, {});
|
|
50
|
+
_Loader_storageLoadItemMap.set(this, {});
|
|
51
|
+
_Loader_hasDestroyed.set(this, false);
|
|
52
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_registerLoadFunc).call(this, 'image', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
|
|
39
53
|
var _a;
|
|
40
54
|
const src = ((_a = assets[elem.detail.src]) === null || _a === void 0 ? void 0 : _a.value) || elem.detail.src;
|
|
41
55
|
const content = yield loadImage(src);
|
|
@@ -45,12 +59,12 @@ export class Loader extends EventEmitter {
|
|
|
45
59
|
content
|
|
46
60
|
};
|
|
47
61
|
}));
|
|
48
|
-
this.
|
|
62
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_registerLoadFunc).call(this, 'html', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
|
|
49
63
|
var _b;
|
|
50
64
|
const html = ((_b = assets[elem.detail.html]) === null || _b === void 0 ? void 0 : _b.value) || elem.detail.html;
|
|
51
65
|
const content = yield loadHTML(html, {
|
|
52
|
-
width: elem.detail.
|
|
53
|
-
height: elem.detail.
|
|
66
|
+
width: elem.detail.originW || elem.w,
|
|
67
|
+
height: elem.detail.originH || elem.h
|
|
54
68
|
});
|
|
55
69
|
return {
|
|
56
70
|
uuid: elem.uuid,
|
|
@@ -58,7 +72,7 @@ export class Loader extends EventEmitter {
|
|
|
58
72
|
content
|
|
59
73
|
};
|
|
60
74
|
}));
|
|
61
|
-
this.
|
|
75
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_registerLoadFunc).call(this, 'svg', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
|
|
62
76
|
var _c;
|
|
63
77
|
const svg = ((_c = assets[elem.detail.svg]) === null || _c === void 0 ? void 0 : _c.value) || elem.detail.svg;
|
|
64
78
|
const content = yield loadSVG(svg);
|
|
@@ -69,105 +83,128 @@ export class Loader extends EventEmitter {
|
|
|
69
83
|
};
|
|
70
84
|
}));
|
|
71
85
|
}
|
|
72
|
-
|
|
73
|
-
this
|
|
86
|
+
isDestroyed() {
|
|
87
|
+
return __classPrivateFieldGet(this, _Loader_hasDestroyed, "f");
|
|
88
|
+
}
|
|
89
|
+
destroy() {
|
|
90
|
+
__classPrivateFieldSet(this, _Loader_hasDestroyed, true, "f");
|
|
91
|
+
this.clear();
|
|
92
|
+
__classPrivateFieldSet(this, _Loader_loadFuncMap, null, "f");
|
|
93
|
+
__classPrivateFieldSet(this, _Loader_currentLoadItemMap, null, "f");
|
|
94
|
+
__classPrivateFieldSet(this, _Loader_storageLoadItemMap, null, "f");
|
|
74
95
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (element.type === 'image') {
|
|
79
|
-
source = ((_a = element === null || element === void 0 ? void 0 : element.detail) === null || _a === void 0 ? void 0 : _a.src) || null;
|
|
96
|
+
load(element, assets) {
|
|
97
|
+
if (__classPrivateFieldGet(this, _Loader_hasDestroyed, "f") === true) {
|
|
98
|
+
return;
|
|
80
99
|
}
|
|
81
|
-
|
|
82
|
-
|
|
100
|
+
if (__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_isExistingErrorStorage).call(this, element)) {
|
|
101
|
+
return;
|
|
83
102
|
}
|
|
84
|
-
|
|
85
|
-
|
|
103
|
+
if (supportElementTypes.includes(element.type)) {
|
|
104
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_loadResource).call(this, element, assets);
|
|
86
105
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
106
|
+
}
|
|
107
|
+
getContent(element) {
|
|
108
|
+
var _a, _b;
|
|
109
|
+
const assetId = getAssetIdFromElement(element);
|
|
110
|
+
return ((_b = (_a = __classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")) === null || _a === void 0 ? void 0 : _a[assetId]) === null || _b === void 0 ? void 0 : _b.content) || null;
|
|
111
|
+
}
|
|
112
|
+
getLoadItemMap() {
|
|
113
|
+
return __classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f");
|
|
114
|
+
}
|
|
115
|
+
setLoadItemMap(itemMap) {
|
|
116
|
+
__classPrivateFieldSet(this, _Loader_storageLoadItemMap, itemMap, "f");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
_Loader_loadFuncMap = new WeakMap(), _Loader_currentLoadItemMap = new WeakMap(), _Loader_storageLoadItemMap = new WeakMap(), _Loader_hasDestroyed = new WeakMap(), _Loader_instances = new WeakSet(), _Loader_registerLoadFunc = function _Loader_registerLoadFunc(type, func) {
|
|
120
|
+
__classPrivateFieldGet(this, _Loader_loadFuncMap, "f")[type] = func;
|
|
121
|
+
}, _Loader_getLoadElementSource = function _Loader_getLoadElementSource(element) {
|
|
122
|
+
var _a, _b, _c;
|
|
123
|
+
let source = null;
|
|
124
|
+
if (element.type === 'image') {
|
|
125
|
+
source = ((_a = element === null || element === void 0 ? void 0 : element.detail) === null || _a === void 0 ? void 0 : _a.src) || null;
|
|
126
|
+
}
|
|
127
|
+
else if (element.type === 'svg') {
|
|
128
|
+
source = ((_b = element === null || element === void 0 ? void 0 : element.detail) === null || _b === void 0 ? void 0 : _b.svg) || null;
|
|
129
|
+
}
|
|
130
|
+
else if (element.type === 'html') {
|
|
131
|
+
source = ((_c = element === null || element === void 0 ? void 0 : element.detail) === null || _c === void 0 ? void 0 : _c.html) || null;
|
|
132
|
+
}
|
|
133
|
+
return source;
|
|
134
|
+
}, _Loader_createLoadItem = function _Loader_createLoadItem(element) {
|
|
135
|
+
return {
|
|
136
|
+
element,
|
|
137
|
+
status: 'null',
|
|
138
|
+
content: null,
|
|
139
|
+
error: null,
|
|
140
|
+
startTime: -1,
|
|
141
|
+
endTime: -1,
|
|
142
|
+
source: __classPrivateFieldGet(this, _Loader_instances, "m", _Loader_getLoadElementSource).call(this, element)
|
|
143
|
+
};
|
|
144
|
+
}, _Loader_emitLoad = function _Loader_emitLoad(item) {
|
|
145
|
+
const assetId = getAssetIdFromElement(item.element);
|
|
146
|
+
const storageItem = __classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId];
|
|
147
|
+
if (!__classPrivateFieldGet(this, _Loader_hasDestroyed, "f")) {
|
|
103
148
|
if (storageItem) {
|
|
104
149
|
if (storageItem.startTime < item.startTime) {
|
|
105
|
-
this
|
|
150
|
+
__classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
|
|
106
151
|
this.trigger('load', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
107
152
|
}
|
|
108
153
|
}
|
|
109
154
|
else {
|
|
110
|
-
this
|
|
155
|
+
__classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
|
|
111
156
|
this.trigger('load', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
112
157
|
}
|
|
113
158
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
159
|
+
}, _Loader_emitError = function _Loader_emitError(item) {
|
|
160
|
+
var _a;
|
|
161
|
+
const assetId = getAssetIdFromElement(item.element);
|
|
162
|
+
const storageItem = (_a = __classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")) === null || _a === void 0 ? void 0 : _a[assetId];
|
|
163
|
+
if (!__classPrivateFieldGet(this, _Loader_hasDestroyed, "f")) {
|
|
117
164
|
if (storageItem) {
|
|
118
165
|
if (storageItem.startTime < item.startTime) {
|
|
119
|
-
this
|
|
166
|
+
__classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
|
|
120
167
|
this.trigger('error', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
121
168
|
}
|
|
122
169
|
}
|
|
123
170
|
else {
|
|
124
|
-
this
|
|
171
|
+
__classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
|
|
125
172
|
this.trigger('error', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
126
173
|
}
|
|
127
174
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
175
|
+
}, _Loader_loadResource = function _Loader_loadResource(element, assets) {
|
|
176
|
+
const item = __classPrivateFieldGet(this, _Loader_instances, "m", _Loader_createLoadItem).call(this, element);
|
|
177
|
+
const assetId = getAssetIdFromElement(element);
|
|
178
|
+
if (__classPrivateFieldGet(this, _Loader_currentLoadItemMap, "f")[assetId]) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
__classPrivateFieldGet(this, _Loader_currentLoadItemMap, "f")[assetId] = item;
|
|
182
|
+
const loadFunc = __classPrivateFieldGet(this, _Loader_loadFuncMap, "f")[element.type];
|
|
183
|
+
if (typeof loadFunc === 'function' && !__classPrivateFieldGet(this, _Loader_hasDestroyed, "f")) {
|
|
184
|
+
item.startTime = Date.now();
|
|
185
|
+
loadFunc(element, assets)
|
|
186
|
+
.then((result) => {
|
|
187
|
+
if (!__classPrivateFieldGet(this, _Loader_hasDestroyed, "f")) {
|
|
137
188
|
item.content = result.content;
|
|
138
189
|
item.endTime = Date.now();
|
|
139
190
|
item.status = 'load';
|
|
140
|
-
this.
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
_isExistingErrorStorage(element) {
|
|
152
|
-
var _a;
|
|
153
|
-
const assetId = getAssetIdFromElement(element);
|
|
154
|
-
const existItem = (_a = this._currentLoadItemMap) === null || _a === void 0 ? void 0 : _a[assetId];
|
|
155
|
-
if (existItem && existItem.status === 'error' && existItem.source && existItem.source === this._getLoadElementSource(element)) {
|
|
156
|
-
return true;
|
|
157
|
-
}
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
load(element, assets) {
|
|
161
|
-
if (this._isExistingErrorStorage(element)) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
if (supportElementTypes.includes(element.type)) {
|
|
165
|
-
this._loadResource(element, assets);
|
|
166
|
-
}
|
|
191
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_emitLoad).call(this, item);
|
|
192
|
+
}
|
|
193
|
+
})
|
|
194
|
+
.catch((err) => {
|
|
195
|
+
console.warn(`Load element source "${item.source}" fail`, err, element);
|
|
196
|
+
item.endTime = Date.now();
|
|
197
|
+
item.status = 'error';
|
|
198
|
+
item.error = err;
|
|
199
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_emitError).call(this, item);
|
|
200
|
+
});
|
|
167
201
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
202
|
+
}, _Loader_isExistingErrorStorage = function _Loader_isExistingErrorStorage(element) {
|
|
203
|
+
var _a;
|
|
204
|
+
const assetId = getAssetIdFromElement(element);
|
|
205
|
+
const existItem = (_a = __classPrivateFieldGet(this, _Loader_currentLoadItemMap, "f")) === null || _a === void 0 ? void 0 : _a[assetId];
|
|
206
|
+
if (existItem && existItem.status === 'error' && existItem.source && existItem.source === __classPrivateFieldGet(this, _Loader_instances, "m", _Loader_getLoadElementSource).call(this, element)) {
|
|
207
|
+
return true;
|
|
172
208
|
}
|
|
173
|
-
|
|
209
|
+
return false;
|
|
210
|
+
};
|