@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.
@@ -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._loadFuncMap = {};
36
- this._currentLoadItemMap = {};
37
- this._storageLoadItemMap = {};
38
- this._registerLoadFunc('image', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
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._registerLoadFunc('html', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
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.width || elem.w,
53
- height: elem.detail.height || elem.h
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._registerLoadFunc('svg', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
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
- _registerLoadFunc(type, func) {
73
- this._loadFuncMap[type] = func;
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
- _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;
96
+ load(element, assets) {
97
+ if (__classPrivateFieldGet(this, _Loader_hasDestroyed, "f") === true) {
98
+ return;
80
99
  }
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;
100
+ if (__classPrivateFieldGet(this, _Loader_instances, "m", _Loader_isExistingErrorStorage).call(this, element)) {
101
+ return;
83
102
  }
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;
103
+ if (supportElementTypes.includes(element.type)) {
104
+ __classPrivateFieldGet(this, _Loader_instances, "m", _Loader_loadResource).call(this, element, assets);
86
105
  }
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];
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._storageLoadItemMap[assetId] = item;
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._storageLoadItemMap[assetId] = item;
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
- _emitError(item) {
115
- const assetId = getAssetIdFromElement(item.element);
116
- const storageItem = this._storageLoadItemMap[assetId];
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._storageLoadItemMap[assetId] = item;
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._storageLoadItemMap[assetId] = item;
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
- _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) => {
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._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
- 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
- getContent(element) {
169
- var _a, _b;
170
- const assetId = getAssetIdFromElement(element);
171
- return ((_b = (_a = this._storageLoadItemMap) === null || _a === void 0 ? void 0 : _a[assetId]) === null || _b === void 0 ? void 0 : _b.content) || null;
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
+ };