@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.
@@ -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._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
+ __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._registerLoadFunc('html', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
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.width || elem.w,
53
- height: elem.detail.height || elem.h
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._registerLoadFunc('svg', (elem, assets) => __awaiter(this, void 0, void 0, function* () {
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._isExistingErrorStorage(element)) {
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._loadResource(element, assets);
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._storageLoadItemMap) === null || _a === void 0 ? void 0 : _a[assetId]) === null || _b === void 0 ? void 0 : _b.content) || null;
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
+ };