@idraw/renderer 0.4.0-beta.3 → 0.4.0-beta.5
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/draw/box.d.ts +2 -0
- package/dist/esm/draw/box.js +12 -21
- package/dist/esm/draw/circle.js +28 -12
- package/dist/esm/draw/elements.js +4 -1
- package/dist/esm/draw/group.js +6 -4
- package/dist/esm/draw/html.js +4 -4
- package/dist/esm/draw/image.js +5 -5
- package/dist/esm/draw/path.js +2 -1
- package/dist/esm/draw/rect.js +2 -1
- package/dist/esm/draw/svg.js +4 -4
- package/dist/esm/draw/text.js +2 -1
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +7 -1
- package/dist/esm/loader.d.ts +4 -11
- package/dist/esm/loader.js +112 -99
- package/dist/index.global.js +189 -140
- 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_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,11 @@ 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
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_registerLoadFunc).call(this, 'image', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
|
|
39
52
|
var _a;
|
|
40
53
|
const src = ((_a = assets[elem.detail.src]) === null || _a === void 0 ? void 0 : _a.value) || elem.detail.src;
|
|
41
54
|
const content = yield loadImage(src);
|
|
@@ -45,12 +58,12 @@ export class Loader extends EventEmitter {
|
|
|
45
58
|
content
|
|
46
59
|
};
|
|
47
60
|
}));
|
|
48
|
-
this.
|
|
61
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_registerLoadFunc).call(this, 'html', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
|
|
49
62
|
var _b;
|
|
50
63
|
const html = ((_b = assets[elem.detail.html]) === null || _b === void 0 ? void 0 : _b.value) || elem.detail.html;
|
|
51
64
|
const content = yield loadHTML(html, {
|
|
52
|
-
width: elem.detail.
|
|
53
|
-
height: elem.detail.
|
|
65
|
+
width: elem.detail.originW || elem.w,
|
|
66
|
+
height: elem.detail.originH || elem.h
|
|
54
67
|
});
|
|
55
68
|
return {
|
|
56
69
|
uuid: elem.uuid,
|
|
@@ -58,7 +71,7 @@ export class Loader extends EventEmitter {
|
|
|
58
71
|
content
|
|
59
72
|
};
|
|
60
73
|
}));
|
|
61
|
-
this.
|
|
74
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_registerLoadFunc).call(this, 'svg', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
|
|
62
75
|
var _c;
|
|
63
76
|
const svg = ((_c = assets[elem.detail.svg]) === null || _c === void 0 ? void 0 : _c.value) || elem.detail.svg;
|
|
64
77
|
const content = yield loadSVG(svg);
|
|
@@ -69,105 +82,105 @@ export class Loader extends EventEmitter {
|
|
|
69
82
|
};
|
|
70
83
|
}));
|
|
71
84
|
}
|
|
72
|
-
_registerLoadFunc(type, func) {
|
|
73
|
-
this._loadFuncMap[type] = func;
|
|
74
|
-
}
|
|
75
|
-
_getLoadElementSource(element) {
|
|
76
|
-
var _a, _b, _c;
|
|
77
|
-
let source = null;
|
|
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;
|
|
80
|
-
}
|
|
81
|
-
else if (element.type === 'svg') {
|
|
82
|
-
source = ((_b = element === null || element === void 0 ? void 0 : element.detail) === null || _b === void 0 ? void 0 : _b.svg) || null;
|
|
83
|
-
}
|
|
84
|
-
else if (element.type === 'html') {
|
|
85
|
-
source = ((_c = element === null || element === void 0 ? void 0 : element.detail) === null || _c === void 0 ? void 0 : _c.html) || null;
|
|
86
|
-
}
|
|
87
|
-
return source;
|
|
88
|
-
}
|
|
89
|
-
_createLoadItem(element) {
|
|
90
|
-
return {
|
|
91
|
-
element,
|
|
92
|
-
status: 'null',
|
|
93
|
-
content: null,
|
|
94
|
-
error: null,
|
|
95
|
-
startTime: -1,
|
|
96
|
-
endTime: -1,
|
|
97
|
-
source: this._getLoadElementSource(element)
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
_emitLoad(item) {
|
|
101
|
-
const assetId = getAssetIdFromElement(item.element);
|
|
102
|
-
const storageItem = this._storageLoadItemMap[assetId];
|
|
103
|
-
if (storageItem) {
|
|
104
|
-
if (storageItem.startTime < item.startTime) {
|
|
105
|
-
this._storageLoadItemMap[assetId] = item;
|
|
106
|
-
this.trigger('load', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
this._storageLoadItemMap[assetId] = item;
|
|
111
|
-
this.trigger('load', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
_emitError(item) {
|
|
115
|
-
const assetId = getAssetIdFromElement(item.element);
|
|
116
|
-
const storageItem = this._storageLoadItemMap[assetId];
|
|
117
|
-
if (storageItem) {
|
|
118
|
-
if (storageItem.startTime < item.startTime) {
|
|
119
|
-
this._storageLoadItemMap[assetId] = item;
|
|
120
|
-
this.trigger('error', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
this._storageLoadItemMap[assetId] = item;
|
|
125
|
-
this.trigger('error', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
_loadResource(element, assets) {
|
|
129
|
-
const item = this._createLoadItem(element);
|
|
130
|
-
const assetId = getAssetIdFromElement(element);
|
|
131
|
-
this._currentLoadItemMap[assetId] = item;
|
|
132
|
-
const loadFunc = this._loadFuncMap[element.type];
|
|
133
|
-
if (typeof loadFunc === 'function') {
|
|
134
|
-
item.startTime = Date.now();
|
|
135
|
-
loadFunc(element, assets)
|
|
136
|
-
.then((result) => {
|
|
137
|
-
item.content = result.content;
|
|
138
|
-
item.endTime = Date.now();
|
|
139
|
-
item.status = 'load';
|
|
140
|
-
this._emitLoad(item);
|
|
141
|
-
})
|
|
142
|
-
.catch((err) => {
|
|
143
|
-
console.warn(`Load element source "${item.source}" fail`, err, element);
|
|
144
|
-
item.endTime = Date.now();
|
|
145
|
-
item.status = 'error';
|
|
146
|
-
item.error = err;
|
|
147
|
-
this._emitError(item);
|
|
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
85
|
load(element, assets) {
|
|
161
|
-
if (this.
|
|
86
|
+
if (__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_isExistingErrorStorage).call(this, element)) {
|
|
162
87
|
return;
|
|
163
88
|
}
|
|
164
89
|
if (supportElementTypes.includes(element.type)) {
|
|
165
|
-
this.
|
|
90
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_loadResource).call(this, element, assets);
|
|
166
91
|
}
|
|
167
92
|
}
|
|
168
93
|
getContent(element) {
|
|
169
94
|
var _a, _b;
|
|
170
95
|
const assetId = getAssetIdFromElement(element);
|
|
171
|
-
return ((_b = (_a = this
|
|
96
|
+
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;
|
|
97
|
+
}
|
|
98
|
+
getLoadItemMap() {
|
|
99
|
+
return __classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f");
|
|
100
|
+
}
|
|
101
|
+
setLoadItemMap(itemMap) {
|
|
102
|
+
__classPrivateFieldSet(this, _Loader_storageLoadItemMap, itemMap, "f");
|
|
172
103
|
}
|
|
173
104
|
}
|
|
105
|
+
_Loader_loadFuncMap = new WeakMap(), _Loader_currentLoadItemMap = new WeakMap(), _Loader_storageLoadItemMap = new WeakMap(), _Loader_instances = new WeakSet(), _Loader_registerLoadFunc = function _Loader_registerLoadFunc(type, func) {
|
|
106
|
+
__classPrivateFieldGet(this, _Loader_loadFuncMap, "f")[type] = func;
|
|
107
|
+
}, _Loader_getLoadElementSource = function _Loader_getLoadElementSource(element) {
|
|
108
|
+
var _a, _b, _c;
|
|
109
|
+
let source = null;
|
|
110
|
+
if (element.type === 'image') {
|
|
111
|
+
source = ((_a = element === null || element === void 0 ? void 0 : element.detail) === null || _a === void 0 ? void 0 : _a.src) || null;
|
|
112
|
+
}
|
|
113
|
+
else if (element.type === 'svg') {
|
|
114
|
+
source = ((_b = element === null || element === void 0 ? void 0 : element.detail) === null || _b === void 0 ? void 0 : _b.svg) || null;
|
|
115
|
+
}
|
|
116
|
+
else if (element.type === 'html') {
|
|
117
|
+
source = ((_c = element === null || element === void 0 ? void 0 : element.detail) === null || _c === void 0 ? void 0 : _c.html) || null;
|
|
118
|
+
}
|
|
119
|
+
return source;
|
|
120
|
+
}, _Loader_createLoadItem = function _Loader_createLoadItem(element) {
|
|
121
|
+
return {
|
|
122
|
+
element,
|
|
123
|
+
status: 'null',
|
|
124
|
+
content: null,
|
|
125
|
+
error: null,
|
|
126
|
+
startTime: -1,
|
|
127
|
+
endTime: -1,
|
|
128
|
+
source: __classPrivateFieldGet(this, _Loader_instances, "m", _Loader_getLoadElementSource).call(this, element)
|
|
129
|
+
};
|
|
130
|
+
}, _Loader_emitLoad = function _Loader_emitLoad(item) {
|
|
131
|
+
const assetId = getAssetIdFromElement(item.element);
|
|
132
|
+
const storageItem = __classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId];
|
|
133
|
+
if (storageItem) {
|
|
134
|
+
if (storageItem.startTime < item.startTime) {
|
|
135
|
+
__classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
|
|
136
|
+
this.trigger('load', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
__classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
|
|
141
|
+
this.trigger('load', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
142
|
+
}
|
|
143
|
+
}, _Loader_emitError = function _Loader_emitError(item) {
|
|
144
|
+
const assetId = getAssetIdFromElement(item.element);
|
|
145
|
+
const storageItem = __classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId];
|
|
146
|
+
if (storageItem) {
|
|
147
|
+
if (storageItem.startTime < item.startTime) {
|
|
148
|
+
__classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
|
|
149
|
+
this.trigger('error', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
__classPrivateFieldGet(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
|
|
154
|
+
this.trigger('error', Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
|
|
155
|
+
}
|
|
156
|
+
}, _Loader_loadResource = function _Loader_loadResource(element, assets) {
|
|
157
|
+
const item = __classPrivateFieldGet(this, _Loader_instances, "m", _Loader_createLoadItem).call(this, element);
|
|
158
|
+
const assetId = getAssetIdFromElement(element);
|
|
159
|
+
__classPrivateFieldGet(this, _Loader_currentLoadItemMap, "f")[assetId] = item;
|
|
160
|
+
const loadFunc = __classPrivateFieldGet(this, _Loader_loadFuncMap, "f")[element.type];
|
|
161
|
+
if (typeof loadFunc === 'function') {
|
|
162
|
+
item.startTime = Date.now();
|
|
163
|
+
loadFunc(element, assets)
|
|
164
|
+
.then((result) => {
|
|
165
|
+
item.content = result.content;
|
|
166
|
+
item.endTime = Date.now();
|
|
167
|
+
item.status = 'load';
|
|
168
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_emitLoad).call(this, item);
|
|
169
|
+
})
|
|
170
|
+
.catch((err) => {
|
|
171
|
+
console.warn(`Load element source "${item.source}" fail`, err, element);
|
|
172
|
+
item.endTime = Date.now();
|
|
173
|
+
item.status = 'error';
|
|
174
|
+
item.error = err;
|
|
175
|
+
__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_emitError).call(this, item);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}, _Loader_isExistingErrorStorage = function _Loader_isExistingErrorStorage(element) {
|
|
179
|
+
var _a;
|
|
180
|
+
const assetId = getAssetIdFromElement(element);
|
|
181
|
+
const existItem = (_a = __classPrivateFieldGet(this, _Loader_currentLoadItemMap, "f")) === null || _a === void 0 ? void 0 : _a[assetId];
|
|
182
|
+
if (existItem && existItem.status === 'error' && existItem.source && existItem.source === __classPrivateFieldGet(this, _Loader_instances, "m", _Loader_getLoadElementSource).call(this, element)) {
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
return false;
|
|
186
|
+
};
|