@idraw/renderer 0.4.0-beta.1 → 0.4.0-beta.11
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 +4 -2
- package/dist/esm/draw/box.js +17 -25
- package/dist/esm/draw/circle.js +48 -30
- package/dist/esm/draw/elements.js +9 -3
- package/dist/esm/draw/group.js +16 -7
- package/dist/esm/draw/html.js +6 -6
- package/dist/esm/draw/image.js +7 -7
- package/dist/esm/draw/index.d.ts +1 -0
- package/dist/esm/draw/index.js +1 -0
- package/dist/esm/draw/path.js +3 -2
- package/dist/esm/draw/rect.js +3 -2
- package/dist/esm/draw/svg.js +6 -6
- package/dist/esm/draw/text.js +3 -2
- package/dist/esm/draw/underlay.d.ts +2 -0
- package/dist/esm/draw/underlay.js +23 -0
- package/dist/esm/index.d.ts +9 -3
- package/dist/esm/index.js +61 -18
- package/dist/esm/loader.d.ts +6 -11
- package/dist/esm/loader.js +117 -83
- package/dist/index.global.js +396 -195
- package/dist/index.global.min.js +1 -1
- package/package.json +3 -3
package/dist/index.global.js
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
var iDrawRenderer = function(exports) {
|
|
2
|
-
"use strict";
|
|
2
|
+
"use strict";var __accessCheck = (obj, member, msg) => {
|
|
3
|
+
if (!member.has(obj))
|
|
4
|
+
throw TypeError("Cannot " + msg);
|
|
5
|
+
};
|
|
6
|
+
var __privateGet = (obj, member, getter) => {
|
|
7
|
+
__accessCheck(obj, member, "read from private field");
|
|
8
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
9
|
+
};
|
|
10
|
+
var __privateAdd = (obj, member, value) => {
|
|
11
|
+
if (member.has(obj))
|
|
12
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
13
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
14
|
+
};
|
|
15
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
16
|
+
__accessCheck(obj, member, "write to private field");
|
|
17
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
18
|
+
return value;
|
|
19
|
+
};
|
|
20
|
+
var __privateMethod = (obj, member, method) => {
|
|
21
|
+
__accessCheck(obj, member, "access private method");
|
|
22
|
+
return method;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var _loadFuncMap, _currentLoadItemMap, _storageLoadItemMap, _hasDestroyed, _registerLoadFunc, registerLoadFunc_fn, _getLoadElementSource, getLoadElementSource_fn, _createLoadItem, createLoadItem_fn, _emitLoad, emitLoad_fn, _emitError, emitError_fn, _loadResource, loadResource_fn, _isExistingErrorStorage, isExistingErrorStorage_fn, _opts, _loader, _hasDestroyed2, _init, init_fn;
|
|
3
26
|
function isColorStr(color2) {
|
|
4
27
|
return typeof color2 === "string" && (/^\#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(color2) || /^[a-z]{1,}$/i.test(color2));
|
|
5
28
|
}
|
|
@@ -310,22 +333,40 @@ var iDrawRenderer = function(exports) {
|
|
|
310
333
|
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
311
334
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
312
335
|
});
|
|
336
|
+
var __classPrivateFieldSet = function(receiver, state, value, kind, f) {
|
|
337
|
+
if (kind === "m")
|
|
338
|
+
throw new TypeError("Private method is not writable");
|
|
339
|
+
if (kind === "a" && !f)
|
|
340
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
341
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
342
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
343
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
|
|
344
|
+
};
|
|
345
|
+
var __classPrivateFieldGet = function(receiver, state, kind, f) {
|
|
346
|
+
if (kind === "a" && !f)
|
|
347
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
348
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
349
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
350
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
351
|
+
};
|
|
352
|
+
var _EventEmitter_listeners;
|
|
313
353
|
class EventEmitter {
|
|
314
354
|
constructor() {
|
|
315
|
-
this
|
|
355
|
+
_EventEmitter_listeners.set(this, void 0);
|
|
356
|
+
__classPrivateFieldSet(this, _EventEmitter_listeners, /* @__PURE__ */ new Map(), "f");
|
|
316
357
|
}
|
|
317
358
|
on(eventKey, callback) {
|
|
318
|
-
if (this.
|
|
319
|
-
const callbacks = this.
|
|
359
|
+
if (__classPrivateFieldGet(this, _EventEmitter_listeners, "f").has(eventKey)) {
|
|
360
|
+
const callbacks = __classPrivateFieldGet(this, _EventEmitter_listeners, "f").get(eventKey) || [];
|
|
320
361
|
callbacks === null || callbacks === void 0 ? void 0 : callbacks.push(callback);
|
|
321
|
-
this.
|
|
362
|
+
__classPrivateFieldGet(this, _EventEmitter_listeners, "f").set(eventKey, callbacks);
|
|
322
363
|
} else {
|
|
323
|
-
this.
|
|
364
|
+
__classPrivateFieldGet(this, _EventEmitter_listeners, "f").set(eventKey, [callback]);
|
|
324
365
|
}
|
|
325
366
|
}
|
|
326
367
|
off(eventKey, callback) {
|
|
327
|
-
if (this.
|
|
328
|
-
const callbacks = this.
|
|
368
|
+
if (__classPrivateFieldGet(this, _EventEmitter_listeners, "f").has(eventKey)) {
|
|
369
|
+
const callbacks = __classPrivateFieldGet(this, _EventEmitter_listeners, "f").get(eventKey);
|
|
329
370
|
if (Array.isArray(callbacks)) {
|
|
330
371
|
for (let i = 0; i < (callbacks === null || callbacks === void 0 ? void 0 : callbacks.length); i++) {
|
|
331
372
|
if (callbacks[i] === callback) {
|
|
@@ -334,11 +375,11 @@ var iDrawRenderer = function(exports) {
|
|
|
334
375
|
}
|
|
335
376
|
}
|
|
336
377
|
}
|
|
337
|
-
this.
|
|
378
|
+
__classPrivateFieldGet(this, _EventEmitter_listeners, "f").set(eventKey, callbacks || []);
|
|
338
379
|
}
|
|
339
380
|
}
|
|
340
381
|
trigger(eventKey, e) {
|
|
341
|
-
const callbacks = this.
|
|
382
|
+
const callbacks = __classPrivateFieldGet(this, _EventEmitter_listeners, "f").get(eventKey);
|
|
342
383
|
if (Array.isArray(callbacks)) {
|
|
343
384
|
callbacks.forEach((cb) => {
|
|
344
385
|
cb(e);
|
|
@@ -349,15 +390,38 @@ var iDrawRenderer = function(exports) {
|
|
|
349
390
|
}
|
|
350
391
|
}
|
|
351
392
|
has(name) {
|
|
352
|
-
if (this.
|
|
353
|
-
const list = this.
|
|
393
|
+
if (__classPrivateFieldGet(this, _EventEmitter_listeners, "f").has(name)) {
|
|
394
|
+
const list = __classPrivateFieldGet(this, _EventEmitter_listeners, "f").get(name);
|
|
354
395
|
if (Array.isArray(list) && list.length > 0) {
|
|
355
396
|
return true;
|
|
356
397
|
}
|
|
357
398
|
}
|
|
358
399
|
return false;
|
|
359
400
|
}
|
|
401
|
+
destroy() {
|
|
402
|
+
this.clear();
|
|
403
|
+
}
|
|
404
|
+
clear() {
|
|
405
|
+
__classPrivateFieldGet(this, _EventEmitter_listeners, "f").clear();
|
|
406
|
+
}
|
|
360
407
|
}
|
|
408
|
+
_EventEmitter_listeners = /* @__PURE__ */ new WeakMap();
|
|
409
|
+
(function(receiver, state, value, kind, f) {
|
|
410
|
+
if (kind === "m")
|
|
411
|
+
throw new TypeError("Private method is not writable");
|
|
412
|
+
if (kind === "a" && !f)
|
|
413
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
414
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
415
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
416
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
|
|
417
|
+
});
|
|
418
|
+
(function(receiver, state, kind, f) {
|
|
419
|
+
if (kind === "a" && !f)
|
|
420
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
421
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
422
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
423
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
424
|
+
});
|
|
361
425
|
function parseAngleToRadian(angle2) {
|
|
362
426
|
return angle2 / 180 * Math.PI;
|
|
363
427
|
}
|
|
@@ -422,8 +486,9 @@ var iDrawRenderer = function(exports) {
|
|
|
422
486
|
function calcViewBoxSize(viewElem, opts) {
|
|
423
487
|
const { viewScaleInfo } = opts;
|
|
424
488
|
const { scale } = viewScaleInfo;
|
|
425
|
-
let { borderRadius: borderRadius2
|
|
426
|
-
|
|
489
|
+
let { borderRadius: borderRadius2 } = viewElem.detail;
|
|
490
|
+
const { boxSizing = defaultElemConfig$1.boxSizing, borderWidth: borderWidth2 } = viewElem.detail;
|
|
491
|
+
if (Array.isArray(borderWidth2)) {
|
|
427
492
|
borderRadius2 = 0;
|
|
428
493
|
}
|
|
429
494
|
let { x: x2, y: y2, w: w2, h: h2 } = viewElem;
|
|
@@ -511,30 +576,35 @@ var iDrawRenderer = function(exports) {
|
|
|
511
576
|
return "#000000";
|
|
512
577
|
}
|
|
513
578
|
const defaultElemConfig = getDefaultElementDetailConfig();
|
|
579
|
+
function getOpacity(elem) {
|
|
580
|
+
var _a, _b, _c, _d;
|
|
581
|
+
let opacity = 1;
|
|
582
|
+
if (((_a = elem == null ? void 0 : elem.detail) == null ? void 0 : _a.opacity) !== void 0 && ((_b = elem == null ? void 0 : elem.detail) == null ? void 0 : _b.opacity) >= 0 && ((_c = elem == null ? void 0 : elem.detail) == null ? void 0 : _c.opacity) <= 1) {
|
|
583
|
+
opacity = (_d = elem == null ? void 0 : elem.detail) == null ? void 0 : _d.opacity;
|
|
584
|
+
}
|
|
585
|
+
return opacity;
|
|
586
|
+
}
|
|
514
587
|
function drawBox(ctx, viewElem, opts) {
|
|
515
588
|
const { pattern, renderContent, originElem, calcElemSize, viewScaleInfo, viewSizeInfo } = opts || {};
|
|
589
|
+
const { parentOpacity } = opts;
|
|
590
|
+
const opacity = getOpacity(originElem) * parentOpacity;
|
|
516
591
|
drawClipPath(ctx, viewElem, {
|
|
517
592
|
originElem,
|
|
518
593
|
calcElemSize,
|
|
519
594
|
viewScaleInfo,
|
|
520
595
|
viewSizeInfo,
|
|
521
596
|
renderContent: () => {
|
|
522
|
-
|
|
523
|
-
if (((_a = viewElem == null ? void 0 : viewElem.detail) == null ? void 0 : _a.opacity) !== void 0 && ((_b = viewElem == null ? void 0 : viewElem.detail) == null ? void 0 : _b.opacity) >= 0) {
|
|
524
|
-
ctx.globalAlpha = viewElem.detail.opacity;
|
|
525
|
-
} else {
|
|
526
|
-
ctx.globalAlpha = 1;
|
|
527
|
-
}
|
|
597
|
+
ctx.globalAlpha = opacity;
|
|
528
598
|
drawBoxBackground(ctx, viewElem, { pattern, viewScaleInfo, viewSizeInfo });
|
|
529
599
|
renderContent == null ? void 0 : renderContent();
|
|
530
600
|
drawBoxBorder(ctx, viewElem, { viewScaleInfo, viewSizeInfo });
|
|
531
|
-
ctx.globalAlpha =
|
|
601
|
+
ctx.globalAlpha = parentOpacity;
|
|
532
602
|
}
|
|
533
603
|
});
|
|
534
604
|
}
|
|
535
605
|
function drawClipPath(ctx, viewElem, opts) {
|
|
536
|
-
const { renderContent, originElem, calcElemSize,
|
|
537
|
-
const totalScale =
|
|
606
|
+
const { renderContent, originElem, calcElemSize, viewSizeInfo } = opts;
|
|
607
|
+
const totalScale = viewSizeInfo.devicePixelRatio;
|
|
538
608
|
const { clipPath } = (originElem == null ? void 0 : originElem.detail) || {};
|
|
539
609
|
if (clipPath && calcElemSize && clipPath.commands) {
|
|
540
610
|
const { x: x2, y: y2, w: w2, h: h2 } = calcElemSize;
|
|
@@ -543,8 +613,8 @@ var iDrawRenderer = function(exports) {
|
|
|
543
613
|
const scaleH = h2 / originH;
|
|
544
614
|
const viewOriginX = originX * scaleW;
|
|
545
615
|
const viewOriginY = originY * scaleH;
|
|
546
|
-
|
|
547
|
-
|
|
616
|
+
const internalX = x2 - viewOriginX;
|
|
617
|
+
const internalY = y2 - viewOriginY;
|
|
548
618
|
ctx.save();
|
|
549
619
|
ctx.translate(internalX, internalY);
|
|
550
620
|
ctx.scale(totalScale * scaleW, totalScale * scaleH);
|
|
@@ -564,8 +634,7 @@ var iDrawRenderer = function(exports) {
|
|
|
564
634
|
function drawBoxBackground(ctx, viewElem, opts) {
|
|
565
635
|
var _a, _b;
|
|
566
636
|
const { pattern, viewScaleInfo, viewSizeInfo } = opts;
|
|
567
|
-
|
|
568
|
-
viewElem.detail;
|
|
637
|
+
const transform = [];
|
|
569
638
|
if (viewElem.detail.background || pattern) {
|
|
570
639
|
const { x: x2, y: y2, w: w2, h: h2, radiusList } = calcViewBoxSize(viewElem, {
|
|
571
640
|
viewScaleInfo,
|
|
@@ -618,18 +687,12 @@ var iDrawRenderer = function(exports) {
|
|
|
618
687
|
}
|
|
619
688
|
}
|
|
620
689
|
function drawBoxBorder(ctx, viewElem, opts) {
|
|
621
|
-
var _a, _b;
|
|
622
690
|
if (viewElem.detail.borderWidth === 0) {
|
|
623
691
|
return;
|
|
624
692
|
}
|
|
625
693
|
if (!isColorStr(viewElem.detail.borderColor)) {
|
|
626
694
|
return;
|
|
627
695
|
}
|
|
628
|
-
if (((_a = viewElem == null ? void 0 : viewElem.detail) == null ? void 0 : _a.opacity) !== void 0 && ((_b = viewElem == null ? void 0 : viewElem.detail) == null ? void 0 : _b.opacity) >= 0) {
|
|
629
|
-
ctx.globalAlpha = viewElem.detail.opacity;
|
|
630
|
-
} else {
|
|
631
|
-
ctx.globalAlpha = 1;
|
|
632
|
-
}
|
|
633
696
|
const { viewScaleInfo } = opts;
|
|
634
697
|
const { scale } = viewScaleInfo;
|
|
635
698
|
let borderColor = defaultElemConfig.borderColor;
|
|
@@ -753,7 +816,6 @@ var iDrawRenderer = function(exports) {
|
|
|
753
816
|
ctx.arcTo(x2, y2, x2 + w2, y2, radiusList[0]);
|
|
754
817
|
ctx.closePath();
|
|
755
818
|
ctx.stroke();
|
|
756
|
-
ctx.globalAlpha = 1;
|
|
757
819
|
}
|
|
758
820
|
ctx.setLineDash([]);
|
|
759
821
|
}
|
|
@@ -775,53 +837,69 @@ var iDrawRenderer = function(exports) {
|
|
|
775
837
|
}
|
|
776
838
|
function drawCircle(ctx, elem, opts) {
|
|
777
839
|
const { detail, angle: angle2 } = elem;
|
|
778
|
-
const { background = "#000000", borderColor = "#000000", borderWidth: borderWidth2 = 0 } = detail;
|
|
779
|
-
|
|
780
|
-
|
|
840
|
+
const { background = "#000000", borderColor = "#000000", boxSizing, borderWidth: borderWidth2 = 0 } = detail;
|
|
841
|
+
let bw = 0;
|
|
842
|
+
if (typeof borderWidth2 === "number" && borderWidth2 > 0) {
|
|
843
|
+
bw = borderWidth2;
|
|
844
|
+
} else if (Array.isArray(borderWidth2) && typeof borderWidth2[0] === "number" && borderWidth2[0] > 0) {
|
|
845
|
+
bw = borderWidth2[0];
|
|
846
|
+
}
|
|
847
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
848
|
+
const { x: x2, y: y2, w: w2, h: h2 } = (calculator == null ? void 0 : calculator.elementSize({ x: elem.x, y: elem.y, w: elem.w, h: elem.h }, viewScaleInfo, viewSizeInfo)) || elem;
|
|
781
849
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
782
850
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
783
851
|
drawBoxShadow(ctx, viewElem, {
|
|
784
852
|
viewScaleInfo,
|
|
785
853
|
viewSizeInfo,
|
|
786
854
|
renderContent: () => {
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
const b = h2 / 2;
|
|
855
|
+
let a = w2 / 2;
|
|
856
|
+
let b = h2 / 2;
|
|
790
857
|
const centerX = x2 + a;
|
|
791
858
|
const centerY = y2 + b;
|
|
792
|
-
if (
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
859
|
+
if (bw > 0) {
|
|
860
|
+
if (boxSizing === "border-box") {
|
|
861
|
+
a = a - bw;
|
|
862
|
+
b = b - bw;
|
|
863
|
+
} else if (boxSizing === "center-line") {
|
|
864
|
+
a = a - bw / 2;
|
|
865
|
+
b = b - bw / 2;
|
|
866
|
+
} else {
|
|
867
|
+
a = a - bw;
|
|
868
|
+
b = b - bw;
|
|
869
|
+
}
|
|
796
870
|
}
|
|
797
|
-
if (
|
|
798
|
-
const
|
|
799
|
-
|
|
871
|
+
if (a >= 0 && b >= 0) {
|
|
872
|
+
const opacity = getOpacity(viewElem) * parentOpacity;
|
|
873
|
+
ctx.globalAlpha = opacity;
|
|
874
|
+
if (typeof borderWidth2 === "number" && borderWidth2 > 0) {
|
|
875
|
+
const ba = borderWidth2 / 2 + a;
|
|
876
|
+
const bb = borderWidth2 / 2 + b;
|
|
877
|
+
ctx.beginPath();
|
|
878
|
+
ctx.strokeStyle = borderColor;
|
|
879
|
+
ctx.lineWidth = borderWidth2;
|
|
880
|
+
ctx.circle(centerX, centerY, ba, bb, 0, 0, 2 * Math.PI);
|
|
881
|
+
ctx.closePath();
|
|
882
|
+
ctx.stroke();
|
|
883
|
+
}
|
|
800
884
|
ctx.beginPath();
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
885
|
+
const fillStyle = createColorStyle(ctx, background, {
|
|
886
|
+
viewElementSize: { x: x2, y: y2, w: w2, h: h2 },
|
|
887
|
+
viewScaleInfo,
|
|
888
|
+
opacity: ctx.globalAlpha
|
|
889
|
+
});
|
|
890
|
+
ctx.fillStyle = fillStyle;
|
|
891
|
+
ctx.circle(centerX, centerY, a, b, 0, 0, 2 * Math.PI);
|
|
804
892
|
ctx.closePath();
|
|
805
|
-
ctx.
|
|
893
|
+
ctx.fill();
|
|
894
|
+
ctx.globalAlpha = parentOpacity;
|
|
806
895
|
}
|
|
807
|
-
ctx.beginPath();
|
|
808
|
-
const fillStyle = createColorStyle(ctx, background, {
|
|
809
|
-
viewElementSize: { x: x2, y: y2, w: w2, h: h2 },
|
|
810
|
-
viewScaleInfo,
|
|
811
|
-
opacity: ctx.globalAlpha
|
|
812
|
-
});
|
|
813
|
-
ctx.fillStyle = fillStyle;
|
|
814
|
-
ctx.circle(centerX, centerY, a, b, 0, 0, 2 * Math.PI);
|
|
815
|
-
ctx.closePath();
|
|
816
|
-
ctx.fill();
|
|
817
|
-
ctx.globalAlpha = 1;
|
|
818
896
|
}
|
|
819
897
|
});
|
|
820
898
|
});
|
|
821
899
|
}
|
|
822
900
|
function drawRect(ctx, elem, opts) {
|
|
823
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
824
|
-
|
|
901
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
902
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
825
903
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
826
904
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
827
905
|
drawBoxShadow(ctx, viewElem, {
|
|
@@ -833,6 +911,7 @@ var iDrawRenderer = function(exports) {
|
|
|
833
911
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
834
912
|
viewScaleInfo,
|
|
835
913
|
viewSizeInfo,
|
|
914
|
+
parentOpacity,
|
|
836
915
|
renderContent: () => {
|
|
837
916
|
}
|
|
838
917
|
});
|
|
@@ -842,8 +921,8 @@ var iDrawRenderer = function(exports) {
|
|
|
842
921
|
}
|
|
843
922
|
function drawImage(ctx, elem, opts) {
|
|
844
923
|
const content = opts.loader.getContent(elem);
|
|
845
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
846
|
-
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calculator.elementSize(elem, viewScaleInfo, viewSizeInfo);
|
|
924
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
925
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
847
926
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
848
927
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
849
928
|
drawBoxShadow(ctx, viewElem, {
|
|
@@ -855,13 +934,13 @@ var iDrawRenderer = function(exports) {
|
|
|
855
934
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
856
935
|
viewScaleInfo,
|
|
857
936
|
viewSizeInfo,
|
|
937
|
+
parentOpacity,
|
|
858
938
|
renderContent: () => {
|
|
859
|
-
if (!content) {
|
|
939
|
+
if (!content && !opts.loader.isDestroyed()) {
|
|
860
940
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
861
941
|
}
|
|
862
942
|
if (elem.type === "image" && content) {
|
|
863
|
-
|
|
864
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
943
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
865
944
|
const { x: x22, y: y22, w: w22, h: h22, radiusList } = calcViewBoxSize(viewElem, {
|
|
866
945
|
viewScaleInfo,
|
|
867
946
|
viewSizeInfo
|
|
@@ -878,7 +957,7 @@ var iDrawRenderer = function(exports) {
|
|
|
878
957
|
ctx.fill();
|
|
879
958
|
ctx.clip();
|
|
880
959
|
ctx.drawImage(content, x22, y22, w22, h22);
|
|
881
|
-
ctx.globalAlpha =
|
|
960
|
+
ctx.globalAlpha = parentOpacity;
|
|
882
961
|
ctx.restore();
|
|
883
962
|
}
|
|
884
963
|
}
|
|
@@ -889,40 +968,38 @@ var iDrawRenderer = function(exports) {
|
|
|
889
968
|
}
|
|
890
969
|
function drawSVG(ctx, elem, opts) {
|
|
891
970
|
const content = opts.loader.getContent(elem);
|
|
892
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
893
|
-
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calculator.elementSize(elem, viewScaleInfo, viewSizeInfo);
|
|
971
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
972
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
894
973
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
895
|
-
if (!content) {
|
|
974
|
+
if (!content && !opts.loader.isDestroyed()) {
|
|
896
975
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
897
976
|
}
|
|
898
977
|
if (elem.type === "svg" && content) {
|
|
899
|
-
|
|
900
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
978
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
901
979
|
ctx.drawImage(content, x2, y2, w2, h2);
|
|
902
|
-
ctx.globalAlpha =
|
|
980
|
+
ctx.globalAlpha = parentOpacity;
|
|
903
981
|
}
|
|
904
982
|
});
|
|
905
983
|
}
|
|
906
984
|
function drawHTML(ctx, elem, opts) {
|
|
907
985
|
const content = opts.loader.getContent(elem);
|
|
908
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
909
|
-
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calculator.elementSize(elem, viewScaleInfo, viewSizeInfo);
|
|
986
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
987
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
910
988
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
911
|
-
if (!content) {
|
|
989
|
+
if (!content && !opts.loader.isDestroyed()) {
|
|
912
990
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
913
991
|
}
|
|
914
992
|
if (elem.type === "html" && content) {
|
|
915
|
-
|
|
916
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
993
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
917
994
|
ctx.drawImage(content, x2, y2, w2, h2);
|
|
918
|
-
ctx.globalAlpha =
|
|
995
|
+
ctx.globalAlpha = parentOpacity;
|
|
919
996
|
}
|
|
920
997
|
});
|
|
921
998
|
}
|
|
922
999
|
const detailConfig = getDefaultElementDetailConfig();
|
|
923
1000
|
function drawText(ctx, elem, opts) {
|
|
924
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
925
|
-
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calculator.elementSize(elem, viewScaleInfo, viewSizeInfo);
|
|
1001
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
1002
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
926
1003
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
927
1004
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
928
1005
|
drawBox(ctx, viewElem, {
|
|
@@ -930,6 +1007,7 @@ var iDrawRenderer = function(exports) {
|
|
|
930
1007
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
931
1008
|
viewScaleInfo,
|
|
932
1009
|
viewSizeInfo,
|
|
1010
|
+
parentOpacity,
|
|
933
1011
|
renderContent: () => {
|
|
934
1012
|
const detail = {
|
|
935
1013
|
...detailConfig,
|
|
@@ -1027,8 +1105,8 @@ var iDrawRenderer = function(exports) {
|
|
|
1027
1105
|
function drawPath(ctx, elem, opts) {
|
|
1028
1106
|
const { detail } = elem;
|
|
1029
1107
|
const { originX, originY, originW, originH } = detail;
|
|
1030
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
1031
|
-
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calculator.elementSize(elem, viewScaleInfo, viewSizeInfo);
|
|
1108
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
1109
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
1032
1110
|
const scaleW = w2 / originW;
|
|
1033
1111
|
const scaleH = h2 / originH;
|
|
1034
1112
|
const viewOriginX = originX * scaleW;
|
|
@@ -1043,6 +1121,7 @@ var iDrawRenderer = function(exports) {
|
|
|
1043
1121
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
1044
1122
|
viewScaleInfo,
|
|
1045
1123
|
viewSizeInfo,
|
|
1124
|
+
parentOpacity,
|
|
1046
1125
|
renderContent: () => {
|
|
1047
1126
|
drawBoxShadow(ctx, viewElem, {
|
|
1048
1127
|
viewScaleInfo,
|
|
@@ -1076,6 +1155,11 @@ var iDrawRenderer = function(exports) {
|
|
|
1076
1155
|
if (((_a = elem == null ? void 0 : elem.operations) == null ? void 0 : _a.invisible) === true) {
|
|
1077
1156
|
return;
|
|
1078
1157
|
}
|
|
1158
|
+
const { w: w2, h: h2 } = elem;
|
|
1159
|
+
const { scale } = opts.viewScaleInfo;
|
|
1160
|
+
if (scale < 1 && (w2 * scale < 1 || h2 * scale < 1) || opts.parentOpacity === 0) {
|
|
1161
|
+
return;
|
|
1162
|
+
}
|
|
1079
1163
|
try {
|
|
1080
1164
|
switch (elem.type) {
|
|
1081
1165
|
case "rect": {
|
|
@@ -1126,10 +1210,11 @@ var iDrawRenderer = function(exports) {
|
|
|
1126
1210
|
}
|
|
1127
1211
|
}
|
|
1128
1212
|
function drawGroup(ctx, elem, opts) {
|
|
1129
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
1130
|
-
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calculator.elementSize({ x: elem.x, y: elem.y, w: elem.w, h: elem.h, angle: elem.angle }, viewScaleInfo, viewSizeInfo);
|
|
1213
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
1214
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize({ x: elem.x, y: elem.y, w: elem.w, h: elem.h, angle: elem.angle }, viewScaleInfo, viewSizeInfo)) || elem;
|
|
1131
1215
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
1132
1216
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
1217
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
1133
1218
|
drawBoxShadow(ctx, viewElem, {
|
|
1134
1219
|
viewScaleInfo,
|
|
1135
1220
|
viewSizeInfo,
|
|
@@ -1139,6 +1224,7 @@ var iDrawRenderer = function(exports) {
|
|
|
1139
1224
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
1140
1225
|
viewScaleInfo,
|
|
1141
1226
|
viewSizeInfo,
|
|
1227
|
+
parentOpacity,
|
|
1142
1228
|
renderContent: () => {
|
|
1143
1229
|
const { x: x22, y: y22, w: w22, h: h22, radiusList } = calcViewBoxSize(viewElem, {
|
|
1144
1230
|
viewScaleInfo,
|
|
@@ -1176,29 +1262,33 @@ var iDrawRenderer = function(exports) {
|
|
|
1176
1262
|
y: newParentSize.y + child.y
|
|
1177
1263
|
}
|
|
1178
1264
|
};
|
|
1179
|
-
if (
|
|
1180
|
-
|
|
1265
|
+
if (opts.forceDrawAll !== true) {
|
|
1266
|
+
if (!(calculator2 == null ? void 0 : calculator2.isElementInView(child, opts.viewScaleInfo, opts.viewSizeInfo))) {
|
|
1267
|
+
continue;
|
|
1268
|
+
}
|
|
1181
1269
|
}
|
|
1182
1270
|
try {
|
|
1183
|
-
drawElement(ctx, child, { ...opts });
|
|
1271
|
+
drawElement(ctx, child, { ...opts, ...{ parentOpacity: parentOpacity * getOpacity(elem) } });
|
|
1184
1272
|
} catch (err) {
|
|
1185
1273
|
console.error(err);
|
|
1186
1274
|
}
|
|
1187
1275
|
}
|
|
1188
1276
|
}
|
|
1189
1277
|
if (elem.detail.overflow === "hidden") {
|
|
1190
|
-
ctx.globalAlpha = 1;
|
|
1191
1278
|
ctx.restore();
|
|
1192
1279
|
}
|
|
1193
1280
|
}
|
|
1194
1281
|
});
|
|
1195
1282
|
}
|
|
1196
1283
|
});
|
|
1284
|
+
ctx.globalAlpha = parentOpacity;
|
|
1197
1285
|
});
|
|
1198
1286
|
}
|
|
1199
1287
|
const defaultDetail = getDefaultElementDetailConfig();
|
|
1200
1288
|
function drawElementList(ctx, data, opts) {
|
|
1289
|
+
var _a;
|
|
1201
1290
|
const { elements = [] } = data;
|
|
1291
|
+
const { parentOpacity } = opts;
|
|
1202
1292
|
for (let i = 0; i < elements.length; i++) {
|
|
1203
1293
|
const element = elements[i];
|
|
1204
1294
|
const elem = {
|
|
@@ -1210,16 +1300,45 @@ var iDrawRenderer = function(exports) {
|
|
|
1210
1300
|
}
|
|
1211
1301
|
}
|
|
1212
1302
|
};
|
|
1213
|
-
if (
|
|
1214
|
-
|
|
1303
|
+
if (opts.forceDrawAll !== true) {
|
|
1304
|
+
if (!((_a = opts.calculator) == null ? void 0 : _a.isElementInView(elem, opts.viewScaleInfo, opts.viewSizeInfo))) {
|
|
1305
|
+
continue;
|
|
1306
|
+
}
|
|
1215
1307
|
}
|
|
1216
1308
|
try {
|
|
1217
|
-
drawElement(ctx, elem,
|
|
1309
|
+
drawElement(ctx, elem, {
|
|
1310
|
+
...opts,
|
|
1311
|
+
...{
|
|
1312
|
+
parentOpacity
|
|
1313
|
+
}
|
|
1314
|
+
});
|
|
1218
1315
|
} catch (err) {
|
|
1219
1316
|
console.error(err);
|
|
1220
1317
|
}
|
|
1221
1318
|
}
|
|
1222
1319
|
}
|
|
1320
|
+
function drawUnderlay(ctx, underlay, opts) {
|
|
1321
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
1322
|
+
const elem = { uuid: "underlay", ...underlay };
|
|
1323
|
+
const { x: x2, y: y2, w: w2, h: h2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
1324
|
+
const angle2 = 0;
|
|
1325
|
+
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
1326
|
+
drawBoxShadow(ctx, viewElem, {
|
|
1327
|
+
viewScaleInfo,
|
|
1328
|
+
viewSizeInfo,
|
|
1329
|
+
renderContent: () => {
|
|
1330
|
+
drawBox(ctx, viewElem, {
|
|
1331
|
+
originElem: elem,
|
|
1332
|
+
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
1333
|
+
viewScaleInfo,
|
|
1334
|
+
viewSizeInfo,
|
|
1335
|
+
parentOpacity,
|
|
1336
|
+
renderContent: () => {
|
|
1337
|
+
}
|
|
1338
|
+
});
|
|
1339
|
+
}
|
|
1340
|
+
});
|
|
1341
|
+
}
|
|
1223
1342
|
const supportElementTypes = ["image", "svg", "html"];
|
|
1224
1343
|
const getAssetIdFromElement = (element) => {
|
|
1225
1344
|
var _a, _b, _c;
|
|
@@ -1242,10 +1361,18 @@ var iDrawRenderer = function(exports) {
|
|
|
1242
1361
|
class Loader extends EventEmitter {
|
|
1243
1362
|
constructor() {
|
|
1244
1363
|
super();
|
|
1245
|
-
this
|
|
1246
|
-
this
|
|
1247
|
-
this
|
|
1248
|
-
this
|
|
1364
|
+
__privateAdd(this, _registerLoadFunc);
|
|
1365
|
+
__privateAdd(this, _getLoadElementSource);
|
|
1366
|
+
__privateAdd(this, _createLoadItem);
|
|
1367
|
+
__privateAdd(this, _emitLoad);
|
|
1368
|
+
__privateAdd(this, _emitError);
|
|
1369
|
+
__privateAdd(this, _loadResource);
|
|
1370
|
+
__privateAdd(this, _isExistingErrorStorage);
|
|
1371
|
+
__privateAdd(this, _loadFuncMap, {});
|
|
1372
|
+
__privateAdd(this, _currentLoadItemMap, {});
|
|
1373
|
+
__privateAdd(this, _storageLoadItemMap, {});
|
|
1374
|
+
__privateAdd(this, _hasDestroyed, false);
|
|
1375
|
+
__privateMethod(this, _registerLoadFunc, registerLoadFunc_fn).call(this, "image", async (elem, assets) => {
|
|
1249
1376
|
var _a;
|
|
1250
1377
|
const src = ((_a = assets[elem.detail.src]) == null ? void 0 : _a.value) || elem.detail.src;
|
|
1251
1378
|
const content = await loadImage(src);
|
|
@@ -1255,12 +1382,12 @@ var iDrawRenderer = function(exports) {
|
|
|
1255
1382
|
content
|
|
1256
1383
|
};
|
|
1257
1384
|
});
|
|
1258
|
-
this.
|
|
1385
|
+
__privateMethod(this, _registerLoadFunc, registerLoadFunc_fn).call(this, "html", async (elem, assets) => {
|
|
1259
1386
|
var _a;
|
|
1260
1387
|
const html2 = ((_a = assets[elem.detail.html]) == null ? void 0 : _a.value) || elem.detail.html;
|
|
1261
1388
|
const content = await loadHTML(html2, {
|
|
1262
|
-
width: elem.detail.
|
|
1263
|
-
height: elem.detail.
|
|
1389
|
+
width: elem.detail.originW || elem.w,
|
|
1390
|
+
height: elem.detail.originH || elem.h
|
|
1264
1391
|
});
|
|
1265
1392
|
return {
|
|
1266
1393
|
uuid: elem.uuid,
|
|
@@ -1268,7 +1395,7 @@ var iDrawRenderer = function(exports) {
|
|
|
1268
1395
|
content
|
|
1269
1396
|
};
|
|
1270
1397
|
});
|
|
1271
|
-
this.
|
|
1398
|
+
__privateMethod(this, _registerLoadFunc, registerLoadFunc_fn).call(this, "svg", async (elem, assets) => {
|
|
1272
1399
|
var _a;
|
|
1273
1400
|
const svg2 = ((_a = assets[elem.detail.svg]) == null ? void 0 : _a.value) || elem.detail.svg;
|
|
1274
1401
|
const content = await loadSVG(svg2);
|
|
@@ -1279,127 +1406,166 @@ var iDrawRenderer = function(exports) {
|
|
|
1279
1406
|
};
|
|
1280
1407
|
});
|
|
1281
1408
|
}
|
|
1282
|
-
|
|
1283
|
-
this
|
|
1284
|
-
}
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1409
|
+
isDestroyed() {
|
|
1410
|
+
return __privateGet(this, _hasDestroyed);
|
|
1411
|
+
}
|
|
1412
|
+
destroy() {
|
|
1413
|
+
__privateSet(this, _hasDestroyed, true);
|
|
1414
|
+
this.clear();
|
|
1415
|
+
__privateSet(this, _loadFuncMap, null);
|
|
1416
|
+
__privateSet(this, _currentLoadItemMap, null);
|
|
1417
|
+
__privateSet(this, _storageLoadItemMap, null);
|
|
1418
|
+
}
|
|
1419
|
+
load(element, assets) {
|
|
1420
|
+
if (__privateGet(this, _hasDestroyed) === true) {
|
|
1421
|
+
return;
|
|
1294
1422
|
}
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
element,
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1423
|
+
if (__privateMethod(this, _isExistingErrorStorage, isExistingErrorStorage_fn).call(this, element)) {
|
|
1424
|
+
return;
|
|
1425
|
+
}
|
|
1426
|
+
if (supportElementTypes.includes(element.type)) {
|
|
1427
|
+
__privateMethod(this, _loadResource, loadResource_fn).call(this, element, assets);
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
getContent(element) {
|
|
1431
|
+
var _a, _b;
|
|
1432
|
+
const assetId = getAssetIdFromElement(element);
|
|
1433
|
+
return ((_b = (_a = __privateGet(this, _storageLoadItemMap)) == null ? void 0 : _a[assetId]) == null ? void 0 : _b.content) || null;
|
|
1434
|
+
}
|
|
1435
|
+
getLoadItemMap() {
|
|
1436
|
+
return __privateGet(this, _storageLoadItemMap);
|
|
1437
|
+
}
|
|
1438
|
+
setLoadItemMap(itemMap) {
|
|
1439
|
+
__privateSet(this, _storageLoadItemMap, itemMap);
|
|
1440
|
+
}
|
|
1441
|
+
}
|
|
1442
|
+
_loadFuncMap = new WeakMap();
|
|
1443
|
+
_currentLoadItemMap = new WeakMap();
|
|
1444
|
+
_storageLoadItemMap = new WeakMap();
|
|
1445
|
+
_hasDestroyed = new WeakMap();
|
|
1446
|
+
_registerLoadFunc = new WeakSet();
|
|
1447
|
+
registerLoadFunc_fn = function(type, func) {
|
|
1448
|
+
__privateGet(this, _loadFuncMap)[type] = func;
|
|
1449
|
+
};
|
|
1450
|
+
_getLoadElementSource = new WeakSet();
|
|
1451
|
+
getLoadElementSource_fn = function(element) {
|
|
1452
|
+
var _a, _b, _c;
|
|
1453
|
+
let source = null;
|
|
1454
|
+
if (element.type === "image") {
|
|
1455
|
+
source = ((_a = element == null ? void 0 : element.detail) == null ? void 0 : _a.src) || null;
|
|
1456
|
+
} else if (element.type === "svg") {
|
|
1457
|
+
source = ((_b = element == null ? void 0 : element.detail) == null ? void 0 : _b.svg) || null;
|
|
1458
|
+
} else if (element.type === "html") {
|
|
1459
|
+
source = ((_c = element == null ? void 0 : element.detail) == null ? void 0 : _c.html) || null;
|
|
1307
1460
|
}
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1461
|
+
return source;
|
|
1462
|
+
};
|
|
1463
|
+
_createLoadItem = new WeakSet();
|
|
1464
|
+
createLoadItem_fn = function(element) {
|
|
1465
|
+
return {
|
|
1466
|
+
element,
|
|
1467
|
+
status: "null",
|
|
1468
|
+
content: null,
|
|
1469
|
+
error: null,
|
|
1470
|
+
startTime: -1,
|
|
1471
|
+
endTime: -1,
|
|
1472
|
+
source: __privateMethod(this, _getLoadElementSource, getLoadElementSource_fn).call(this, element)
|
|
1473
|
+
};
|
|
1474
|
+
};
|
|
1475
|
+
_emitLoad = new WeakSet();
|
|
1476
|
+
emitLoad_fn = function(item) {
|
|
1477
|
+
const assetId = getAssetIdFromElement(item.element);
|
|
1478
|
+
const storageItem = __privateGet(this, _storageLoadItemMap)[assetId];
|
|
1479
|
+
if (!__privateGet(this, _hasDestroyed)) {
|
|
1311
1480
|
if (storageItem) {
|
|
1312
1481
|
if (storageItem.startTime < item.startTime) {
|
|
1313
|
-
this
|
|
1482
|
+
__privateGet(this, _storageLoadItemMap)[assetId] = item;
|
|
1314
1483
|
this.trigger("load", { ...item, countTime: item.endTime - item.startTime });
|
|
1315
1484
|
}
|
|
1316
1485
|
} else {
|
|
1317
|
-
this
|
|
1486
|
+
__privateGet(this, _storageLoadItemMap)[assetId] = item;
|
|
1318
1487
|
this.trigger("load", { ...item, countTime: item.endTime - item.startTime });
|
|
1319
1488
|
}
|
|
1320
1489
|
}
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1490
|
+
};
|
|
1491
|
+
_emitError = new WeakSet();
|
|
1492
|
+
emitError_fn = function(item) {
|
|
1493
|
+
var _a;
|
|
1494
|
+
const assetId = getAssetIdFromElement(item.element);
|
|
1495
|
+
const storageItem = (_a = __privateGet(this, _storageLoadItemMap)) == null ? void 0 : _a[assetId];
|
|
1496
|
+
if (!__privateGet(this, _hasDestroyed)) {
|
|
1324
1497
|
if (storageItem) {
|
|
1325
1498
|
if (storageItem.startTime < item.startTime) {
|
|
1326
|
-
this
|
|
1499
|
+
__privateGet(this, _storageLoadItemMap)[assetId] = item;
|
|
1327
1500
|
this.trigger("error", { ...item, countTime: item.endTime - item.startTime });
|
|
1328
1501
|
}
|
|
1329
1502
|
} else {
|
|
1330
|
-
this
|
|
1503
|
+
__privateGet(this, _storageLoadItemMap)[assetId] = item;
|
|
1331
1504
|
this.trigger("error", { ...item, countTime: item.endTime - item.startTime });
|
|
1332
1505
|
}
|
|
1333
1506
|
}
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1507
|
+
};
|
|
1508
|
+
_loadResource = new WeakSet();
|
|
1509
|
+
loadResource_fn = function(element, assets) {
|
|
1510
|
+
const item = __privateMethod(this, _createLoadItem, createLoadItem_fn).call(this, element);
|
|
1511
|
+
const assetId = getAssetIdFromElement(element);
|
|
1512
|
+
__privateGet(this, _currentLoadItemMap)[assetId] = item;
|
|
1513
|
+
const loadFunc = __privateGet(this, _loadFuncMap)[element.type];
|
|
1514
|
+
if (typeof loadFunc === "function" && !__privateGet(this, _hasDestroyed)) {
|
|
1515
|
+
item.startTime = Date.now();
|
|
1516
|
+
loadFunc(element, assets).then((result) => {
|
|
1517
|
+
if (!__privateGet(this, _hasDestroyed)) {
|
|
1342
1518
|
item.content = result.content;
|
|
1343
1519
|
item.endTime = Date.now();
|
|
1344
1520
|
item.status = "load";
|
|
1345
|
-
this.
|
|
1346
|
-
}
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
}
|
|
1354
|
-
}
|
|
1355
|
-
_isExistingErrorStorage(element) {
|
|
1356
|
-
var _a;
|
|
1357
|
-
const assetId = getAssetIdFromElement(element);
|
|
1358
|
-
const existItem = (_a = this._currentLoadItemMap) == null ? void 0 : _a[assetId];
|
|
1359
|
-
if (existItem && existItem.status === "error" && existItem.source && existItem.source === this._getLoadElementSource(element)) {
|
|
1360
|
-
return true;
|
|
1361
|
-
}
|
|
1362
|
-
return false;
|
|
1363
|
-
}
|
|
1364
|
-
load(element, assets) {
|
|
1365
|
-
if (this._isExistingErrorStorage(element)) {
|
|
1366
|
-
return;
|
|
1367
|
-
}
|
|
1368
|
-
if (supportElementTypes.includes(element.type)) {
|
|
1369
|
-
this._loadResource(element, assets);
|
|
1370
|
-
}
|
|
1521
|
+
__privateMethod(this, _emitLoad, emitLoad_fn).call(this, item);
|
|
1522
|
+
}
|
|
1523
|
+
}).catch((err) => {
|
|
1524
|
+
console.warn(`Load element source "${item.source}" fail`, err, element);
|
|
1525
|
+
item.endTime = Date.now();
|
|
1526
|
+
item.status = "error";
|
|
1527
|
+
item.error = err;
|
|
1528
|
+
__privateMethod(this, _emitError, emitError_fn).call(this, item);
|
|
1529
|
+
});
|
|
1371
1530
|
}
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1531
|
+
};
|
|
1532
|
+
_isExistingErrorStorage = new WeakSet();
|
|
1533
|
+
isExistingErrorStorage_fn = function(element) {
|
|
1534
|
+
var _a;
|
|
1535
|
+
const assetId = getAssetIdFromElement(element);
|
|
1536
|
+
const existItem = (_a = __privateGet(this, _currentLoadItemMap)) == null ? void 0 : _a[assetId];
|
|
1537
|
+
if (existItem && existItem.status === "error" && existItem.source && existItem.source === __privateMethod(this, _getLoadElementSource, getLoadElementSource_fn).call(this, element)) {
|
|
1538
|
+
return true;
|
|
1376
1539
|
}
|
|
1377
|
-
|
|
1540
|
+
return false;
|
|
1541
|
+
};
|
|
1378
1542
|
class Renderer extends EventEmitter {
|
|
1379
|
-
// private _draftContextTop: CanvasRenderingContext2D;
|
|
1380
|
-
// private _draftContextMiddle: CanvasRenderingContext2D;
|
|
1381
|
-
// private _draftContextBottom: CanvasRenderingContext2D;
|
|
1382
1543
|
constructor(opts) {
|
|
1383
1544
|
super();
|
|
1384
|
-
this
|
|
1385
|
-
this
|
|
1386
|
-
this
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1545
|
+
__privateAdd(this, _init);
|
|
1546
|
+
__privateAdd(this, _opts, void 0);
|
|
1547
|
+
__privateAdd(this, _loader, new Loader());
|
|
1548
|
+
__privateAdd(this, _hasDestroyed2, false);
|
|
1549
|
+
__privateSet(this, _opts, opts);
|
|
1550
|
+
__privateMethod(this, _init, init_fn).call(this);
|
|
1551
|
+
}
|
|
1552
|
+
isDestroyed() {
|
|
1553
|
+
return __privateGet(this, _hasDestroyed2);
|
|
1554
|
+
}
|
|
1555
|
+
destroy() {
|
|
1556
|
+
this.clear();
|
|
1557
|
+
__privateSet(this, _opts, null);
|
|
1558
|
+
__privateGet(this, _loader).destroy();
|
|
1559
|
+
__privateSet(this, _loader, null);
|
|
1560
|
+
__privateSet(this, _hasDestroyed2, true);
|
|
1395
1561
|
}
|
|
1396
1562
|
updateOptions(opts) {
|
|
1397
|
-
this
|
|
1563
|
+
__privateSet(this, _opts, opts);
|
|
1398
1564
|
}
|
|
1399
1565
|
drawData(data, opts) {
|
|
1400
|
-
const
|
|
1401
|
-
const { calculator } = this
|
|
1402
|
-
const
|
|
1566
|
+
const loader = __privateGet(this, _loader);
|
|
1567
|
+
const { calculator } = __privateGet(this, _opts);
|
|
1568
|
+
const viewContext = __privateGet(this, _opts).viewContext;
|
|
1403
1569
|
viewContext.clearRect(0, 0, viewContext.canvas.width, viewContext.canvas.height);
|
|
1404
1570
|
const parentElementSize = {
|
|
1405
1571
|
x: 0,
|
|
@@ -1407,16 +1573,29 @@ var iDrawRenderer = function(exports) {
|
|
|
1407
1573
|
w: opts.viewSizeInfo.width,
|
|
1408
1574
|
h: opts.viewSizeInfo.height
|
|
1409
1575
|
};
|
|
1576
|
+
if (data.underlay) {
|
|
1577
|
+
drawUnderlay(viewContext, data.underlay, {
|
|
1578
|
+
loader,
|
|
1579
|
+
calculator,
|
|
1580
|
+
parentElementSize,
|
|
1581
|
+
parentOpacity: 1,
|
|
1582
|
+
...opts
|
|
1583
|
+
});
|
|
1584
|
+
}
|
|
1410
1585
|
drawElementList(viewContext, data, {
|
|
1411
1586
|
loader,
|
|
1412
1587
|
calculator,
|
|
1413
1588
|
parentElementSize,
|
|
1414
1589
|
elementAssets: data.assets,
|
|
1590
|
+
parentOpacity: 1,
|
|
1415
1591
|
...opts
|
|
1416
1592
|
});
|
|
1417
1593
|
}
|
|
1418
1594
|
scale(num) {
|
|
1419
|
-
const { sharer } = this
|
|
1595
|
+
const { sharer } = __privateGet(this, _opts);
|
|
1596
|
+
if (!sharer) {
|
|
1597
|
+
return;
|
|
1598
|
+
}
|
|
1420
1599
|
const { data, offsetTop, offsetBottom, offsetLeft, offsetRight, width, height, contextHeight, contextWidth, devicePixelRatio } = sharer.getActiveStoreSnapshot();
|
|
1421
1600
|
if (data) {
|
|
1422
1601
|
this.drawData(data, {
|
|
@@ -1437,8 +1616,30 @@ var iDrawRenderer = function(exports) {
|
|
|
1437
1616
|
});
|
|
1438
1617
|
}
|
|
1439
1618
|
}
|
|
1619
|
+
setLoadItemMap(itemMap) {
|
|
1620
|
+
__privateGet(this, _loader).setLoadItemMap(itemMap);
|
|
1621
|
+
}
|
|
1622
|
+
getLoadItemMap() {
|
|
1623
|
+
return __privateGet(this, _loader).getLoadItemMap();
|
|
1624
|
+
}
|
|
1625
|
+
getLoader() {
|
|
1626
|
+
return __privateGet(this, _loader);
|
|
1627
|
+
}
|
|
1440
1628
|
}
|
|
1629
|
+
_opts = new WeakMap();
|
|
1630
|
+
_loader = new WeakMap();
|
|
1631
|
+
_hasDestroyed2 = new WeakMap();
|
|
1632
|
+
_init = new WeakSet();
|
|
1633
|
+
init_fn = function() {
|
|
1634
|
+
const loader = __privateGet(this, _loader);
|
|
1635
|
+
loader.on("load", (e) => {
|
|
1636
|
+
this.trigger("load", e);
|
|
1637
|
+
});
|
|
1638
|
+
loader.on("error", () => {
|
|
1639
|
+
});
|
|
1640
|
+
};
|
|
1441
1641
|
exports.Renderer = Renderer;
|
|
1642
|
+
exports.drawRect = drawRect;
|
|
1442
1643
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
1443
1644
|
return exports;
|
|
1444
1645
|
}({});
|