@idraw/renderer 0.4.0-beta.1 → 0.4.0-beta.10
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 +5 -5
- package/dist/esm/draw/image.js +6 -6
- 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 +5 -5
- 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 +8 -3
- package/dist/esm/index.js +55 -18
- package/dist/esm/loader.d.ts +5 -11
- package/dist/esm/loader.js +117 -98
- package/dist/index.global.js +377 -202
- 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, _registerLoadFunc, registerLoadFunc_fn, _getLoadElementSource, getLoadElementSource_fn, _createLoadItem, createLoadItem_fn, _emitLoad, emitLoad_fn, _emitError, emitError_fn, _loadResource, loadResource_fn, _isExistingErrorStorage, isExistingErrorStorage_fn, _opts, _loader, _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,35 @@ 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
|
+
__classPrivateFieldGet(this, _EventEmitter_listeners, "f").clear();
|
|
403
|
+
}
|
|
360
404
|
}
|
|
405
|
+
_EventEmitter_listeners = /* @__PURE__ */ new WeakMap();
|
|
406
|
+
(function(receiver, state, value, kind, f) {
|
|
407
|
+
if (kind === "m")
|
|
408
|
+
throw new TypeError("Private method is not writable");
|
|
409
|
+
if (kind === "a" && !f)
|
|
410
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
411
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
412
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
413
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
|
|
414
|
+
});
|
|
415
|
+
(function(receiver, state, kind, f) {
|
|
416
|
+
if (kind === "a" && !f)
|
|
417
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
418
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
419
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
420
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
421
|
+
});
|
|
361
422
|
function parseAngleToRadian(angle2) {
|
|
362
423
|
return angle2 / 180 * Math.PI;
|
|
363
424
|
}
|
|
@@ -422,8 +483,9 @@ var iDrawRenderer = function(exports) {
|
|
|
422
483
|
function calcViewBoxSize(viewElem, opts) {
|
|
423
484
|
const { viewScaleInfo } = opts;
|
|
424
485
|
const { scale } = viewScaleInfo;
|
|
425
|
-
let { borderRadius: borderRadius2
|
|
426
|
-
|
|
486
|
+
let { borderRadius: borderRadius2 } = viewElem.detail;
|
|
487
|
+
const { boxSizing = defaultElemConfig$1.boxSizing, borderWidth: borderWidth2 } = viewElem.detail;
|
|
488
|
+
if (Array.isArray(borderWidth2)) {
|
|
427
489
|
borderRadius2 = 0;
|
|
428
490
|
}
|
|
429
491
|
let { x: x2, y: y2, w: w2, h: h2 } = viewElem;
|
|
@@ -511,30 +573,35 @@ var iDrawRenderer = function(exports) {
|
|
|
511
573
|
return "#000000";
|
|
512
574
|
}
|
|
513
575
|
const defaultElemConfig = getDefaultElementDetailConfig();
|
|
576
|
+
function getOpacity(elem) {
|
|
577
|
+
var _a, _b, _c, _d;
|
|
578
|
+
let opacity = 1;
|
|
579
|
+
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) {
|
|
580
|
+
opacity = (_d = elem == null ? void 0 : elem.detail) == null ? void 0 : _d.opacity;
|
|
581
|
+
}
|
|
582
|
+
return opacity;
|
|
583
|
+
}
|
|
514
584
|
function drawBox(ctx, viewElem, opts) {
|
|
515
585
|
const { pattern, renderContent, originElem, calcElemSize, viewScaleInfo, viewSizeInfo } = opts || {};
|
|
586
|
+
const { parentOpacity } = opts;
|
|
587
|
+
const opacity = getOpacity(originElem) * parentOpacity;
|
|
516
588
|
drawClipPath(ctx, viewElem, {
|
|
517
589
|
originElem,
|
|
518
590
|
calcElemSize,
|
|
519
591
|
viewScaleInfo,
|
|
520
592
|
viewSizeInfo,
|
|
521
593
|
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
|
-
}
|
|
594
|
+
ctx.globalAlpha = opacity;
|
|
528
595
|
drawBoxBackground(ctx, viewElem, { pattern, viewScaleInfo, viewSizeInfo });
|
|
529
596
|
renderContent == null ? void 0 : renderContent();
|
|
530
597
|
drawBoxBorder(ctx, viewElem, { viewScaleInfo, viewSizeInfo });
|
|
531
|
-
ctx.globalAlpha =
|
|
598
|
+
ctx.globalAlpha = parentOpacity;
|
|
532
599
|
}
|
|
533
600
|
});
|
|
534
601
|
}
|
|
535
602
|
function drawClipPath(ctx, viewElem, opts) {
|
|
536
|
-
const { renderContent, originElem, calcElemSize,
|
|
537
|
-
const totalScale =
|
|
603
|
+
const { renderContent, originElem, calcElemSize, viewSizeInfo } = opts;
|
|
604
|
+
const totalScale = viewSizeInfo.devicePixelRatio;
|
|
538
605
|
const { clipPath } = (originElem == null ? void 0 : originElem.detail) || {};
|
|
539
606
|
if (clipPath && calcElemSize && clipPath.commands) {
|
|
540
607
|
const { x: x2, y: y2, w: w2, h: h2 } = calcElemSize;
|
|
@@ -543,8 +610,8 @@ var iDrawRenderer = function(exports) {
|
|
|
543
610
|
const scaleH = h2 / originH;
|
|
544
611
|
const viewOriginX = originX * scaleW;
|
|
545
612
|
const viewOriginY = originY * scaleH;
|
|
546
|
-
|
|
547
|
-
|
|
613
|
+
const internalX = x2 - viewOriginX;
|
|
614
|
+
const internalY = y2 - viewOriginY;
|
|
548
615
|
ctx.save();
|
|
549
616
|
ctx.translate(internalX, internalY);
|
|
550
617
|
ctx.scale(totalScale * scaleW, totalScale * scaleH);
|
|
@@ -564,8 +631,7 @@ var iDrawRenderer = function(exports) {
|
|
|
564
631
|
function drawBoxBackground(ctx, viewElem, opts) {
|
|
565
632
|
var _a, _b;
|
|
566
633
|
const { pattern, viewScaleInfo, viewSizeInfo } = opts;
|
|
567
|
-
|
|
568
|
-
viewElem.detail;
|
|
634
|
+
const transform = [];
|
|
569
635
|
if (viewElem.detail.background || pattern) {
|
|
570
636
|
const { x: x2, y: y2, w: w2, h: h2, radiusList } = calcViewBoxSize(viewElem, {
|
|
571
637
|
viewScaleInfo,
|
|
@@ -618,18 +684,12 @@ var iDrawRenderer = function(exports) {
|
|
|
618
684
|
}
|
|
619
685
|
}
|
|
620
686
|
function drawBoxBorder(ctx, viewElem, opts) {
|
|
621
|
-
var _a, _b;
|
|
622
687
|
if (viewElem.detail.borderWidth === 0) {
|
|
623
688
|
return;
|
|
624
689
|
}
|
|
625
690
|
if (!isColorStr(viewElem.detail.borderColor)) {
|
|
626
691
|
return;
|
|
627
692
|
}
|
|
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
693
|
const { viewScaleInfo } = opts;
|
|
634
694
|
const { scale } = viewScaleInfo;
|
|
635
695
|
let borderColor = defaultElemConfig.borderColor;
|
|
@@ -753,7 +813,6 @@ var iDrawRenderer = function(exports) {
|
|
|
753
813
|
ctx.arcTo(x2, y2, x2 + w2, y2, radiusList[0]);
|
|
754
814
|
ctx.closePath();
|
|
755
815
|
ctx.stroke();
|
|
756
|
-
ctx.globalAlpha = 1;
|
|
757
816
|
}
|
|
758
817
|
ctx.setLineDash([]);
|
|
759
818
|
}
|
|
@@ -775,53 +834,69 @@ var iDrawRenderer = function(exports) {
|
|
|
775
834
|
}
|
|
776
835
|
function drawCircle(ctx, elem, opts) {
|
|
777
836
|
const { detail, angle: angle2 } = elem;
|
|
778
|
-
const { background = "#000000", borderColor = "#000000", borderWidth: borderWidth2 = 0 } = detail;
|
|
779
|
-
|
|
780
|
-
|
|
837
|
+
const { background = "#000000", borderColor = "#000000", boxSizing, borderWidth: borderWidth2 = 0 } = detail;
|
|
838
|
+
let bw = 0;
|
|
839
|
+
if (typeof borderWidth2 === "number" && borderWidth2 > 0) {
|
|
840
|
+
bw = borderWidth2;
|
|
841
|
+
} else if (Array.isArray(borderWidth2) && typeof borderWidth2[0] === "number" && borderWidth2[0] > 0) {
|
|
842
|
+
bw = borderWidth2[0];
|
|
843
|
+
}
|
|
844
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
845
|
+
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
846
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
782
847
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
783
848
|
drawBoxShadow(ctx, viewElem, {
|
|
784
849
|
viewScaleInfo,
|
|
785
850
|
viewSizeInfo,
|
|
786
851
|
renderContent: () => {
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
const b = h2 / 2;
|
|
852
|
+
let a = w2 / 2;
|
|
853
|
+
let b = h2 / 2;
|
|
790
854
|
const centerX = x2 + a;
|
|
791
855
|
const centerY = y2 + b;
|
|
792
|
-
if (
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
856
|
+
if (bw > 0) {
|
|
857
|
+
if (boxSizing === "border-box") {
|
|
858
|
+
a = a - bw;
|
|
859
|
+
b = b - bw;
|
|
860
|
+
} else if (boxSizing === "center-line") {
|
|
861
|
+
a = a - bw / 2;
|
|
862
|
+
b = b - bw / 2;
|
|
863
|
+
} else {
|
|
864
|
+
a = a - bw;
|
|
865
|
+
b = b - bw;
|
|
866
|
+
}
|
|
796
867
|
}
|
|
797
|
-
if (
|
|
798
|
-
const
|
|
799
|
-
|
|
868
|
+
if (a >= 0 && b >= 0) {
|
|
869
|
+
const opacity = getOpacity(viewElem) * parentOpacity;
|
|
870
|
+
ctx.globalAlpha = opacity;
|
|
871
|
+
if (typeof borderWidth2 === "number" && borderWidth2 > 0) {
|
|
872
|
+
const ba = borderWidth2 / 2 + a;
|
|
873
|
+
const bb = borderWidth2 / 2 + b;
|
|
874
|
+
ctx.beginPath();
|
|
875
|
+
ctx.strokeStyle = borderColor;
|
|
876
|
+
ctx.lineWidth = borderWidth2;
|
|
877
|
+
ctx.circle(centerX, centerY, ba, bb, 0, 0, 2 * Math.PI);
|
|
878
|
+
ctx.closePath();
|
|
879
|
+
ctx.stroke();
|
|
880
|
+
}
|
|
800
881
|
ctx.beginPath();
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
882
|
+
const fillStyle = createColorStyle(ctx, background, {
|
|
883
|
+
viewElementSize: { x: x2, y: y2, w: w2, h: h2 },
|
|
884
|
+
viewScaleInfo,
|
|
885
|
+
opacity: ctx.globalAlpha
|
|
886
|
+
});
|
|
887
|
+
ctx.fillStyle = fillStyle;
|
|
888
|
+
ctx.circle(centerX, centerY, a, b, 0, 0, 2 * Math.PI);
|
|
804
889
|
ctx.closePath();
|
|
805
|
-
ctx.
|
|
890
|
+
ctx.fill();
|
|
891
|
+
ctx.globalAlpha = parentOpacity;
|
|
806
892
|
}
|
|
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
893
|
}
|
|
819
894
|
});
|
|
820
895
|
});
|
|
821
896
|
}
|
|
822
897
|
function drawRect(ctx, elem, opts) {
|
|
823
|
-
const { calculator, viewScaleInfo, viewSizeInfo } = opts;
|
|
824
|
-
|
|
898
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
899
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
825
900
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
826
901
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
827
902
|
drawBoxShadow(ctx, viewElem, {
|
|
@@ -833,6 +908,7 @@ var iDrawRenderer = function(exports) {
|
|
|
833
908
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
834
909
|
viewScaleInfo,
|
|
835
910
|
viewSizeInfo,
|
|
911
|
+
parentOpacity,
|
|
836
912
|
renderContent: () => {
|
|
837
913
|
}
|
|
838
914
|
});
|
|
@@ -842,8 +918,8 @@ var iDrawRenderer = function(exports) {
|
|
|
842
918
|
}
|
|
843
919
|
function drawImage(ctx, elem, opts) {
|
|
844
920
|
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);
|
|
921
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
922
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
847
923
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
848
924
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
849
925
|
drawBoxShadow(ctx, viewElem, {
|
|
@@ -855,13 +931,13 @@ var iDrawRenderer = function(exports) {
|
|
|
855
931
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
856
932
|
viewScaleInfo,
|
|
857
933
|
viewSizeInfo,
|
|
934
|
+
parentOpacity,
|
|
858
935
|
renderContent: () => {
|
|
859
936
|
if (!content) {
|
|
860
937
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
861
938
|
}
|
|
862
939
|
if (elem.type === "image" && content) {
|
|
863
|
-
|
|
864
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
940
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
865
941
|
const { x: x22, y: y22, w: w22, h: h22, radiusList } = calcViewBoxSize(viewElem, {
|
|
866
942
|
viewScaleInfo,
|
|
867
943
|
viewSizeInfo
|
|
@@ -878,7 +954,7 @@ var iDrawRenderer = function(exports) {
|
|
|
878
954
|
ctx.fill();
|
|
879
955
|
ctx.clip();
|
|
880
956
|
ctx.drawImage(content, x22, y22, w22, h22);
|
|
881
|
-
ctx.globalAlpha =
|
|
957
|
+
ctx.globalAlpha = parentOpacity;
|
|
882
958
|
ctx.restore();
|
|
883
959
|
}
|
|
884
960
|
}
|
|
@@ -889,40 +965,38 @@ var iDrawRenderer = function(exports) {
|
|
|
889
965
|
}
|
|
890
966
|
function drawSVG(ctx, elem, opts) {
|
|
891
967
|
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);
|
|
968
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
969
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
894
970
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
895
971
|
if (!content) {
|
|
896
972
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
897
973
|
}
|
|
898
974
|
if (elem.type === "svg" && content) {
|
|
899
|
-
|
|
900
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
975
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
901
976
|
ctx.drawImage(content, x2, y2, w2, h2);
|
|
902
|
-
ctx.globalAlpha =
|
|
977
|
+
ctx.globalAlpha = parentOpacity;
|
|
903
978
|
}
|
|
904
979
|
});
|
|
905
980
|
}
|
|
906
981
|
function drawHTML(ctx, elem, opts) {
|
|
907
982
|
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);
|
|
983
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
984
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
910
985
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
911
986
|
if (!content) {
|
|
912
987
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
913
988
|
}
|
|
914
989
|
if (elem.type === "html" && content) {
|
|
915
|
-
|
|
916
|
-
ctx.globalAlpha = opacity ? opacity : 1;
|
|
990
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
917
991
|
ctx.drawImage(content, x2, y2, w2, h2);
|
|
918
|
-
ctx.globalAlpha =
|
|
992
|
+
ctx.globalAlpha = parentOpacity;
|
|
919
993
|
}
|
|
920
994
|
});
|
|
921
995
|
}
|
|
922
996
|
const detailConfig = getDefaultElementDetailConfig();
|
|
923
997
|
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);
|
|
998
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
999
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
926
1000
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
927
1001
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
928
1002
|
drawBox(ctx, viewElem, {
|
|
@@ -930,6 +1004,7 @@ var iDrawRenderer = function(exports) {
|
|
|
930
1004
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
931
1005
|
viewScaleInfo,
|
|
932
1006
|
viewSizeInfo,
|
|
1007
|
+
parentOpacity,
|
|
933
1008
|
renderContent: () => {
|
|
934
1009
|
const detail = {
|
|
935
1010
|
...detailConfig,
|
|
@@ -1027,8 +1102,8 @@ var iDrawRenderer = function(exports) {
|
|
|
1027
1102
|
function drawPath(ctx, elem, opts) {
|
|
1028
1103
|
const { detail } = elem;
|
|
1029
1104
|
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);
|
|
1105
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
1106
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
1032
1107
|
const scaleW = w2 / originW;
|
|
1033
1108
|
const scaleH = h2 / originH;
|
|
1034
1109
|
const viewOriginX = originX * scaleW;
|
|
@@ -1043,6 +1118,7 @@ var iDrawRenderer = function(exports) {
|
|
|
1043
1118
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
1044
1119
|
viewScaleInfo,
|
|
1045
1120
|
viewSizeInfo,
|
|
1121
|
+
parentOpacity,
|
|
1046
1122
|
renderContent: () => {
|
|
1047
1123
|
drawBoxShadow(ctx, viewElem, {
|
|
1048
1124
|
viewScaleInfo,
|
|
@@ -1076,6 +1152,11 @@ var iDrawRenderer = function(exports) {
|
|
|
1076
1152
|
if (((_a = elem == null ? void 0 : elem.operations) == null ? void 0 : _a.invisible) === true) {
|
|
1077
1153
|
return;
|
|
1078
1154
|
}
|
|
1155
|
+
const { w: w2, h: h2 } = elem;
|
|
1156
|
+
const { scale } = opts.viewScaleInfo;
|
|
1157
|
+
if (scale < 1 && (w2 * scale < 1 || h2 * scale < 1) || opts.parentOpacity === 0) {
|
|
1158
|
+
return;
|
|
1159
|
+
}
|
|
1079
1160
|
try {
|
|
1080
1161
|
switch (elem.type) {
|
|
1081
1162
|
case "rect": {
|
|
@@ -1126,10 +1207,11 @@ var iDrawRenderer = function(exports) {
|
|
|
1126
1207
|
}
|
|
1127
1208
|
}
|
|
1128
1209
|
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);
|
|
1210
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
1211
|
+
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
1212
|
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
1132
1213
|
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
1214
|
+
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
1133
1215
|
drawBoxShadow(ctx, viewElem, {
|
|
1134
1216
|
viewScaleInfo,
|
|
1135
1217
|
viewSizeInfo,
|
|
@@ -1139,6 +1221,7 @@ var iDrawRenderer = function(exports) {
|
|
|
1139
1221
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
1140
1222
|
viewScaleInfo,
|
|
1141
1223
|
viewSizeInfo,
|
|
1224
|
+
parentOpacity,
|
|
1142
1225
|
renderContent: () => {
|
|
1143
1226
|
const { x: x22, y: y22, w: w22, h: h22, radiusList } = calcViewBoxSize(viewElem, {
|
|
1144
1227
|
viewScaleInfo,
|
|
@@ -1176,29 +1259,33 @@ var iDrawRenderer = function(exports) {
|
|
|
1176
1259
|
y: newParentSize.y + child.y
|
|
1177
1260
|
}
|
|
1178
1261
|
};
|
|
1179
|
-
if (
|
|
1180
|
-
|
|
1262
|
+
if (opts.forceDrawAll !== true) {
|
|
1263
|
+
if (!(calculator2 == null ? void 0 : calculator2.isElementInView(child, opts.viewScaleInfo, opts.viewSizeInfo))) {
|
|
1264
|
+
continue;
|
|
1265
|
+
}
|
|
1181
1266
|
}
|
|
1182
1267
|
try {
|
|
1183
|
-
drawElement(ctx, child, { ...opts });
|
|
1268
|
+
drawElement(ctx, child, { ...opts, ...{ parentOpacity: parentOpacity * getOpacity(elem) } });
|
|
1184
1269
|
} catch (err) {
|
|
1185
1270
|
console.error(err);
|
|
1186
1271
|
}
|
|
1187
1272
|
}
|
|
1188
1273
|
}
|
|
1189
1274
|
if (elem.detail.overflow === "hidden") {
|
|
1190
|
-
ctx.globalAlpha = 1;
|
|
1191
1275
|
ctx.restore();
|
|
1192
1276
|
}
|
|
1193
1277
|
}
|
|
1194
1278
|
});
|
|
1195
1279
|
}
|
|
1196
1280
|
});
|
|
1281
|
+
ctx.globalAlpha = parentOpacity;
|
|
1197
1282
|
});
|
|
1198
1283
|
}
|
|
1199
1284
|
const defaultDetail = getDefaultElementDetailConfig();
|
|
1200
1285
|
function drawElementList(ctx, data, opts) {
|
|
1286
|
+
var _a;
|
|
1201
1287
|
const { elements = [] } = data;
|
|
1288
|
+
const { parentOpacity } = opts;
|
|
1202
1289
|
for (let i = 0; i < elements.length; i++) {
|
|
1203
1290
|
const element = elements[i];
|
|
1204
1291
|
const elem = {
|
|
@@ -1210,16 +1297,45 @@ var iDrawRenderer = function(exports) {
|
|
|
1210
1297
|
}
|
|
1211
1298
|
}
|
|
1212
1299
|
};
|
|
1213
|
-
if (
|
|
1214
|
-
|
|
1300
|
+
if (opts.forceDrawAll !== true) {
|
|
1301
|
+
if (!((_a = opts.calculator) == null ? void 0 : _a.isElementInView(elem, opts.viewScaleInfo, opts.viewSizeInfo))) {
|
|
1302
|
+
continue;
|
|
1303
|
+
}
|
|
1215
1304
|
}
|
|
1216
1305
|
try {
|
|
1217
|
-
drawElement(ctx, elem,
|
|
1306
|
+
drawElement(ctx, elem, {
|
|
1307
|
+
...opts,
|
|
1308
|
+
...{
|
|
1309
|
+
parentOpacity
|
|
1310
|
+
}
|
|
1311
|
+
});
|
|
1218
1312
|
} catch (err) {
|
|
1219
1313
|
console.error(err);
|
|
1220
1314
|
}
|
|
1221
1315
|
}
|
|
1222
1316
|
}
|
|
1317
|
+
function drawUnderlay(ctx, underlay, opts) {
|
|
1318
|
+
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
1319
|
+
const elem = { uuid: "underlay", ...underlay };
|
|
1320
|
+
const { x: x2, y: y2, w: w2, h: h2 } = (calculator == null ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
1321
|
+
const angle2 = 0;
|
|
1322
|
+
const viewElem = { ...elem, ...{ x: x2, y: y2, w: w2, h: h2, angle: angle2 } };
|
|
1323
|
+
drawBoxShadow(ctx, viewElem, {
|
|
1324
|
+
viewScaleInfo,
|
|
1325
|
+
viewSizeInfo,
|
|
1326
|
+
renderContent: () => {
|
|
1327
|
+
drawBox(ctx, viewElem, {
|
|
1328
|
+
originElem: elem,
|
|
1329
|
+
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
1330
|
+
viewScaleInfo,
|
|
1331
|
+
viewSizeInfo,
|
|
1332
|
+
parentOpacity,
|
|
1333
|
+
renderContent: () => {
|
|
1334
|
+
}
|
|
1335
|
+
});
|
|
1336
|
+
}
|
|
1337
|
+
});
|
|
1338
|
+
}
|
|
1223
1339
|
const supportElementTypes = ["image", "svg", "html"];
|
|
1224
1340
|
const getAssetIdFromElement = (element) => {
|
|
1225
1341
|
var _a, _b, _c;
|
|
@@ -1242,10 +1358,17 @@ var iDrawRenderer = function(exports) {
|
|
|
1242
1358
|
class Loader extends EventEmitter {
|
|
1243
1359
|
constructor() {
|
|
1244
1360
|
super();
|
|
1245
|
-
this
|
|
1246
|
-
this
|
|
1247
|
-
this
|
|
1248
|
-
this
|
|
1361
|
+
__privateAdd(this, _registerLoadFunc);
|
|
1362
|
+
__privateAdd(this, _getLoadElementSource);
|
|
1363
|
+
__privateAdd(this, _createLoadItem);
|
|
1364
|
+
__privateAdd(this, _emitLoad);
|
|
1365
|
+
__privateAdd(this, _emitError);
|
|
1366
|
+
__privateAdd(this, _loadResource);
|
|
1367
|
+
__privateAdd(this, _isExistingErrorStorage);
|
|
1368
|
+
__privateAdd(this, _loadFuncMap, {});
|
|
1369
|
+
__privateAdd(this, _currentLoadItemMap, {});
|
|
1370
|
+
__privateAdd(this, _storageLoadItemMap, {});
|
|
1371
|
+
__privateMethod(this, _registerLoadFunc, registerLoadFunc_fn).call(this, "image", async (elem, assets) => {
|
|
1249
1372
|
var _a;
|
|
1250
1373
|
const src = ((_a = assets[elem.detail.src]) == null ? void 0 : _a.value) || elem.detail.src;
|
|
1251
1374
|
const content = await loadImage(src);
|
|
@@ -1255,12 +1378,12 @@ var iDrawRenderer = function(exports) {
|
|
|
1255
1378
|
content
|
|
1256
1379
|
};
|
|
1257
1380
|
});
|
|
1258
|
-
this.
|
|
1381
|
+
__privateMethod(this, _registerLoadFunc, registerLoadFunc_fn).call(this, "html", async (elem, assets) => {
|
|
1259
1382
|
var _a;
|
|
1260
1383
|
const html2 = ((_a = assets[elem.detail.html]) == null ? void 0 : _a.value) || elem.detail.html;
|
|
1261
1384
|
const content = await loadHTML(html2, {
|
|
1262
|
-
width: elem.detail.
|
|
1263
|
-
height: elem.detail.
|
|
1385
|
+
width: elem.detail.originW || elem.w,
|
|
1386
|
+
height: elem.detail.originH || elem.h
|
|
1264
1387
|
});
|
|
1265
1388
|
return {
|
|
1266
1389
|
uuid: elem.uuid,
|
|
@@ -1268,7 +1391,7 @@ var iDrawRenderer = function(exports) {
|
|
|
1268
1391
|
content
|
|
1269
1392
|
};
|
|
1270
1393
|
});
|
|
1271
|
-
this.
|
|
1394
|
+
__privateMethod(this, _registerLoadFunc, registerLoadFunc_fn).call(this, "svg", async (elem, assets) => {
|
|
1272
1395
|
var _a;
|
|
1273
1396
|
const svg2 = ((_a = assets[elem.detail.svg]) == null ? void 0 : _a.value) || elem.detail.svg;
|
|
1274
1397
|
const content = await loadSVG(svg2);
|
|
@@ -1279,127 +1402,145 @@ var iDrawRenderer = function(exports) {
|
|
|
1279
1402
|
};
|
|
1280
1403
|
});
|
|
1281
1404
|
}
|
|
1282
|
-
|
|
1283
|
-
this
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
var _a, _b, _c;
|
|
1287
|
-
let source = null;
|
|
1288
|
-
if (element.type === "image") {
|
|
1289
|
-
source = ((_a = element == null ? void 0 : element.detail) == null ? void 0 : _a.src) || null;
|
|
1290
|
-
} else if (element.type === "svg") {
|
|
1291
|
-
source = ((_b = element == null ? void 0 : element.detail) == null ? void 0 : _b.svg) || null;
|
|
1292
|
-
} else if (element.type === "html") {
|
|
1293
|
-
source = ((_c = element == null ? void 0 : element.detail) == null ? void 0 : _c.html) || null;
|
|
1294
|
-
}
|
|
1295
|
-
return source;
|
|
1296
|
-
}
|
|
1297
|
-
_createLoadItem(element) {
|
|
1298
|
-
return {
|
|
1299
|
-
element,
|
|
1300
|
-
status: "null",
|
|
1301
|
-
content: null,
|
|
1302
|
-
error: null,
|
|
1303
|
-
startTime: -1,
|
|
1304
|
-
endTime: -1,
|
|
1305
|
-
source: this._getLoadElementSource(element)
|
|
1306
|
-
};
|
|
1307
|
-
}
|
|
1308
|
-
_emitLoad(item) {
|
|
1309
|
-
const assetId = getAssetIdFromElement(item.element);
|
|
1310
|
-
const storageItem = this._storageLoadItemMap[assetId];
|
|
1311
|
-
if (storageItem) {
|
|
1312
|
-
if (storageItem.startTime < item.startTime) {
|
|
1313
|
-
this._storageLoadItemMap[assetId] = item;
|
|
1314
|
-
this.trigger("load", { ...item, countTime: item.endTime - item.startTime });
|
|
1315
|
-
}
|
|
1316
|
-
} else {
|
|
1317
|
-
this._storageLoadItemMap[assetId] = item;
|
|
1318
|
-
this.trigger("load", { ...item, countTime: item.endTime - item.startTime });
|
|
1319
|
-
}
|
|
1320
|
-
}
|
|
1321
|
-
_emitError(item) {
|
|
1322
|
-
const assetId = getAssetIdFromElement(item.element);
|
|
1323
|
-
const storageItem = this._storageLoadItemMap[assetId];
|
|
1324
|
-
if (storageItem) {
|
|
1325
|
-
if (storageItem.startTime < item.startTime) {
|
|
1326
|
-
this._storageLoadItemMap[assetId] = item;
|
|
1327
|
-
this.trigger("error", { ...item, countTime: item.endTime - item.startTime });
|
|
1328
|
-
}
|
|
1329
|
-
} else {
|
|
1330
|
-
this._storageLoadItemMap[assetId] = item;
|
|
1331
|
-
this.trigger("error", { ...item, countTime: item.endTime - item.startTime });
|
|
1332
|
-
}
|
|
1333
|
-
}
|
|
1334
|
-
_loadResource(element, assets) {
|
|
1335
|
-
const item = this._createLoadItem(element);
|
|
1336
|
-
const assetId = getAssetIdFromElement(element);
|
|
1337
|
-
this._currentLoadItemMap[assetId] = item;
|
|
1338
|
-
const loadFunc = this._loadFuncMap[element.type];
|
|
1339
|
-
if (typeof loadFunc === "function") {
|
|
1340
|
-
item.startTime = Date.now();
|
|
1341
|
-
loadFunc(element, assets).then((result) => {
|
|
1342
|
-
item.content = result.content;
|
|
1343
|
-
item.endTime = Date.now();
|
|
1344
|
-
item.status = "load";
|
|
1345
|
-
this._emitLoad(item);
|
|
1346
|
-
}).catch((err) => {
|
|
1347
|
-
console.warn(`Load element source "${item.source}" fail`, err, element);
|
|
1348
|
-
item.endTime = Date.now();
|
|
1349
|
-
item.status = "error";
|
|
1350
|
-
item.error = err;
|
|
1351
|
-
this._emitError(item);
|
|
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;
|
|
1405
|
+
destroy() {
|
|
1406
|
+
__privateSet(this, _loadFuncMap, null);
|
|
1407
|
+
__privateSet(this, _currentLoadItemMap, null);
|
|
1408
|
+
__privateSet(this, _storageLoadItemMap, null);
|
|
1363
1409
|
}
|
|
1364
1410
|
load(element, assets) {
|
|
1365
|
-
if (this.
|
|
1411
|
+
if (__privateMethod(this, _isExistingErrorStorage, isExistingErrorStorage_fn).call(this, element)) {
|
|
1366
1412
|
return;
|
|
1367
1413
|
}
|
|
1368
1414
|
if (supportElementTypes.includes(element.type)) {
|
|
1369
|
-
this.
|
|
1415
|
+
__privateMethod(this, _loadResource, loadResource_fn).call(this, element, assets);
|
|
1370
1416
|
}
|
|
1371
1417
|
}
|
|
1372
1418
|
getContent(element) {
|
|
1373
1419
|
var _a, _b;
|
|
1374
1420
|
const assetId = getAssetIdFromElement(element);
|
|
1375
|
-
return ((_b = (_a = this
|
|
1421
|
+
return ((_b = (_a = __privateGet(this, _storageLoadItemMap)) == null ? void 0 : _a[assetId]) == null ? void 0 : _b.content) || null;
|
|
1422
|
+
}
|
|
1423
|
+
getLoadItemMap() {
|
|
1424
|
+
return __privateGet(this, _storageLoadItemMap);
|
|
1425
|
+
}
|
|
1426
|
+
setLoadItemMap(itemMap) {
|
|
1427
|
+
__privateSet(this, _storageLoadItemMap, itemMap);
|
|
1376
1428
|
}
|
|
1377
1429
|
}
|
|
1430
|
+
_loadFuncMap = new WeakMap();
|
|
1431
|
+
_currentLoadItemMap = new WeakMap();
|
|
1432
|
+
_storageLoadItemMap = new WeakMap();
|
|
1433
|
+
_registerLoadFunc = new WeakSet();
|
|
1434
|
+
registerLoadFunc_fn = function(type, func) {
|
|
1435
|
+
__privateGet(this, _loadFuncMap)[type] = func;
|
|
1436
|
+
};
|
|
1437
|
+
_getLoadElementSource = new WeakSet();
|
|
1438
|
+
getLoadElementSource_fn = function(element) {
|
|
1439
|
+
var _a, _b, _c;
|
|
1440
|
+
let source = null;
|
|
1441
|
+
if (element.type === "image") {
|
|
1442
|
+
source = ((_a = element == null ? void 0 : element.detail) == null ? void 0 : _a.src) || null;
|
|
1443
|
+
} else if (element.type === "svg") {
|
|
1444
|
+
source = ((_b = element == null ? void 0 : element.detail) == null ? void 0 : _b.svg) || null;
|
|
1445
|
+
} else if (element.type === "html") {
|
|
1446
|
+
source = ((_c = element == null ? void 0 : element.detail) == null ? void 0 : _c.html) || null;
|
|
1447
|
+
}
|
|
1448
|
+
return source;
|
|
1449
|
+
};
|
|
1450
|
+
_createLoadItem = new WeakSet();
|
|
1451
|
+
createLoadItem_fn = function(element) {
|
|
1452
|
+
return {
|
|
1453
|
+
element,
|
|
1454
|
+
status: "null",
|
|
1455
|
+
content: null,
|
|
1456
|
+
error: null,
|
|
1457
|
+
startTime: -1,
|
|
1458
|
+
endTime: -1,
|
|
1459
|
+
source: __privateMethod(this, _getLoadElementSource, getLoadElementSource_fn).call(this, element)
|
|
1460
|
+
};
|
|
1461
|
+
};
|
|
1462
|
+
_emitLoad = new WeakSet();
|
|
1463
|
+
emitLoad_fn = function(item) {
|
|
1464
|
+
const assetId = getAssetIdFromElement(item.element);
|
|
1465
|
+
const storageItem = __privateGet(this, _storageLoadItemMap)[assetId];
|
|
1466
|
+
if (storageItem) {
|
|
1467
|
+
if (storageItem.startTime < item.startTime) {
|
|
1468
|
+
__privateGet(this, _storageLoadItemMap)[assetId] = item;
|
|
1469
|
+
this.trigger("load", { ...item, countTime: item.endTime - item.startTime });
|
|
1470
|
+
}
|
|
1471
|
+
} else {
|
|
1472
|
+
__privateGet(this, _storageLoadItemMap)[assetId] = item;
|
|
1473
|
+
this.trigger("load", { ...item, countTime: item.endTime - item.startTime });
|
|
1474
|
+
}
|
|
1475
|
+
};
|
|
1476
|
+
_emitError = new WeakSet();
|
|
1477
|
+
emitError_fn = function(item) {
|
|
1478
|
+
var _a;
|
|
1479
|
+
const assetId = getAssetIdFromElement(item.element);
|
|
1480
|
+
const storageItem = (_a = __privateGet(this, _storageLoadItemMap)) == null ? void 0 : _a[assetId];
|
|
1481
|
+
if (storageItem) {
|
|
1482
|
+
if (storageItem.startTime < item.startTime) {
|
|
1483
|
+
__privateGet(this, _storageLoadItemMap)[assetId] = item;
|
|
1484
|
+
this.trigger("error", { ...item, countTime: item.endTime - item.startTime });
|
|
1485
|
+
}
|
|
1486
|
+
} else {
|
|
1487
|
+
__privateGet(this, _storageLoadItemMap)[assetId] = item;
|
|
1488
|
+
this.trigger("error", { ...item, countTime: item.endTime - item.startTime });
|
|
1489
|
+
}
|
|
1490
|
+
};
|
|
1491
|
+
_loadResource = new WeakSet();
|
|
1492
|
+
loadResource_fn = function(element, assets) {
|
|
1493
|
+
const item = __privateMethod(this, _createLoadItem, createLoadItem_fn).call(this, element);
|
|
1494
|
+
const assetId = getAssetIdFromElement(element);
|
|
1495
|
+
__privateGet(this, _currentLoadItemMap)[assetId] = item;
|
|
1496
|
+
const loadFunc = __privateGet(this, _loadFuncMap)[element.type];
|
|
1497
|
+
if (typeof loadFunc === "function") {
|
|
1498
|
+
item.startTime = Date.now();
|
|
1499
|
+
loadFunc(element, assets).then((result) => {
|
|
1500
|
+
item.content = result.content;
|
|
1501
|
+
item.endTime = Date.now();
|
|
1502
|
+
item.status = "load";
|
|
1503
|
+
__privateMethod(this, _emitLoad, emitLoad_fn).call(this, item);
|
|
1504
|
+
}).catch((err) => {
|
|
1505
|
+
console.warn(`Load element source "${item.source}" fail`, err, element);
|
|
1506
|
+
item.endTime = Date.now();
|
|
1507
|
+
item.status = "error";
|
|
1508
|
+
item.error = err;
|
|
1509
|
+
__privateMethod(this, _emitError, emitError_fn).call(this, item);
|
|
1510
|
+
});
|
|
1511
|
+
}
|
|
1512
|
+
};
|
|
1513
|
+
_isExistingErrorStorage = new WeakSet();
|
|
1514
|
+
isExistingErrorStorage_fn = function(element) {
|
|
1515
|
+
var _a;
|
|
1516
|
+
const assetId = getAssetIdFromElement(element);
|
|
1517
|
+
const existItem = (_a = __privateGet(this, _currentLoadItemMap)) == null ? void 0 : _a[assetId];
|
|
1518
|
+
if (existItem && existItem.status === "error" && existItem.source && existItem.source === __privateMethod(this, _getLoadElementSource, getLoadElementSource_fn).call(this, element)) {
|
|
1519
|
+
return true;
|
|
1520
|
+
}
|
|
1521
|
+
return false;
|
|
1522
|
+
};
|
|
1378
1523
|
class Renderer extends EventEmitter {
|
|
1379
|
-
// private _draftContextTop: CanvasRenderingContext2D;
|
|
1380
|
-
// private _draftContextMiddle: CanvasRenderingContext2D;
|
|
1381
|
-
// private _draftContextBottom: CanvasRenderingContext2D;
|
|
1382
1524
|
constructor(opts) {
|
|
1383
1525
|
super();
|
|
1384
|
-
this
|
|
1385
|
-
this
|
|
1386
|
-
this
|
|
1526
|
+
__privateAdd(this, _init);
|
|
1527
|
+
__privateAdd(this, _opts, void 0);
|
|
1528
|
+
__privateAdd(this, _loader, new Loader());
|
|
1529
|
+
__privateSet(this, _opts, opts);
|
|
1530
|
+
__privateMethod(this, _init, init_fn).call(this);
|
|
1387
1531
|
}
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
});
|
|
1393
|
-
loader.on("error", () => {
|
|
1394
|
-
});
|
|
1532
|
+
destroy() {
|
|
1533
|
+
__privateSet(this, _opts, null);
|
|
1534
|
+
__privateGet(this, _loader).destroy();
|
|
1535
|
+
__privateSet(this, _loader, null);
|
|
1395
1536
|
}
|
|
1396
1537
|
updateOptions(opts) {
|
|
1397
|
-
this
|
|
1538
|
+
__privateSet(this, _opts, opts);
|
|
1398
1539
|
}
|
|
1399
1540
|
drawData(data, opts) {
|
|
1400
|
-
const
|
|
1401
|
-
const { calculator } = this
|
|
1402
|
-
const
|
|
1541
|
+
const loader = __privateGet(this, _loader);
|
|
1542
|
+
const { calculator } = __privateGet(this, _opts);
|
|
1543
|
+
const viewContext = __privateGet(this, _opts).viewContext;
|
|
1403
1544
|
viewContext.clearRect(0, 0, viewContext.canvas.width, viewContext.canvas.height);
|
|
1404
1545
|
const parentElementSize = {
|
|
1405
1546
|
x: 0,
|
|
@@ -1407,16 +1548,29 @@ var iDrawRenderer = function(exports) {
|
|
|
1407
1548
|
w: opts.viewSizeInfo.width,
|
|
1408
1549
|
h: opts.viewSizeInfo.height
|
|
1409
1550
|
};
|
|
1551
|
+
if (data.underlay) {
|
|
1552
|
+
drawUnderlay(viewContext, data.underlay, {
|
|
1553
|
+
loader,
|
|
1554
|
+
calculator,
|
|
1555
|
+
parentElementSize,
|
|
1556
|
+
parentOpacity: 1,
|
|
1557
|
+
...opts
|
|
1558
|
+
});
|
|
1559
|
+
}
|
|
1410
1560
|
drawElementList(viewContext, data, {
|
|
1411
1561
|
loader,
|
|
1412
1562
|
calculator,
|
|
1413
1563
|
parentElementSize,
|
|
1414
1564
|
elementAssets: data.assets,
|
|
1565
|
+
parentOpacity: 1,
|
|
1415
1566
|
...opts
|
|
1416
1567
|
});
|
|
1417
1568
|
}
|
|
1418
1569
|
scale(num) {
|
|
1419
|
-
const { sharer } = this
|
|
1570
|
+
const { sharer } = __privateGet(this, _opts);
|
|
1571
|
+
if (!sharer) {
|
|
1572
|
+
return;
|
|
1573
|
+
}
|
|
1420
1574
|
const { data, offsetTop, offsetBottom, offsetLeft, offsetRight, width, height, contextHeight, contextWidth, devicePixelRatio } = sharer.getActiveStoreSnapshot();
|
|
1421
1575
|
if (data) {
|
|
1422
1576
|
this.drawData(data, {
|
|
@@ -1437,8 +1591,29 @@ var iDrawRenderer = function(exports) {
|
|
|
1437
1591
|
});
|
|
1438
1592
|
}
|
|
1439
1593
|
}
|
|
1594
|
+
setLoadItemMap(itemMap) {
|
|
1595
|
+
__privateGet(this, _loader).setLoadItemMap(itemMap);
|
|
1596
|
+
}
|
|
1597
|
+
getLoadItemMap() {
|
|
1598
|
+
return __privateGet(this, _loader).getLoadItemMap();
|
|
1599
|
+
}
|
|
1600
|
+
getLoader() {
|
|
1601
|
+
return __privateGet(this, _loader);
|
|
1602
|
+
}
|
|
1440
1603
|
}
|
|
1604
|
+
_opts = new WeakMap();
|
|
1605
|
+
_loader = new WeakMap();
|
|
1606
|
+
_init = new WeakSet();
|
|
1607
|
+
init_fn = function() {
|
|
1608
|
+
const loader = __privateGet(this, _loader);
|
|
1609
|
+
loader.on("load", (e) => {
|
|
1610
|
+
this.trigger("load", e);
|
|
1611
|
+
});
|
|
1612
|
+
loader.on("error", () => {
|
|
1613
|
+
});
|
|
1614
|
+
};
|
|
1441
1615
|
exports.Renderer = Renderer;
|
|
1616
|
+
exports.drawRect = drawRect;
|
|
1442
1617
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
1443
1618
|
return exports;
|
|
1444
1619
|
}({});
|