@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.
@@ -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._listeners = /* @__PURE__ */ new Map();
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._listeners.has(eventKey)) {
319
- const callbacks = this._listeners.get(eventKey) || [];
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._listeners.set(eventKey, callbacks);
362
+ __classPrivateFieldGet(this, _EventEmitter_listeners, "f").set(eventKey, callbacks);
322
363
  } else {
323
- this._listeners.set(eventKey, [callback]);
364
+ __classPrivateFieldGet(this, _EventEmitter_listeners, "f").set(eventKey, [callback]);
324
365
  }
325
366
  }
326
367
  off(eventKey, callback) {
327
- if (this._listeners.has(eventKey)) {
328
- const callbacks = this._listeners.get(eventKey);
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._listeners.set(eventKey, callbacks || []);
378
+ __classPrivateFieldGet(this, _EventEmitter_listeners, "f").set(eventKey, callbacks || []);
338
379
  }
339
380
  }
340
381
  trigger(eventKey, e) {
341
- const callbacks = this._listeners.get(eventKey);
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._listeners.has(name)) {
353
- const list = this._listeners.get(name);
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, boxSizing = defaultElemConfig$1.boxSizing, borderWidth: borderWidth2 } = viewElem.detail;
426
- if (typeof borderWidth2 !== "number") {
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
- var _a, _b;
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 = 1;
598
+ ctx.globalAlpha = parentOpacity;
532
599
  }
533
600
  });
534
601
  }
535
602
  function drawClipPath(ctx, viewElem, opts) {
536
- const { renderContent, originElem, calcElemSize, viewScaleInfo, viewSizeInfo } = opts;
537
- const totalScale = viewScaleInfo.scale * viewSizeInfo.devicePixelRatio;
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
- let internalX = x2 - viewOriginX;
547
- let internalY = y2 - viewOriginY;
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
- let transform = [];
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
- const { calculator, viewScaleInfo, viewSizeInfo } = opts;
780
- const { x: x2, y: y2, w: w2, h: h2 } = calculator.elementSize({ x: elem.x, y: elem.y, w: elem.w, h: elem.h }, viewScaleInfo, viewSizeInfo);
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
- var _a, _b;
788
- const a = w2 / 2;
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 (((_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) {
793
- ctx.globalAlpha = elem.detail.opacity;
794
- } else {
795
- ctx.globalAlpha = 1;
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 (typeof borderWidth2 === "number" && borderWidth2 > 0) {
798
- const ba = borderWidth2 / 2 + a;
799
- const bb = borderWidth2 / 2 + b;
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
- ctx.strokeStyle = borderColor;
802
- ctx.lineWidth = borderWidth2;
803
- ctx.circle(centerX, centerY, ba, bb, 0, 0, 2 * Math.PI);
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.stroke();
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
- let { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = calculator.elementSize(elem, viewScaleInfo, viewSizeInfo);
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
- const { opacity } = elem.detail;
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 = 1;
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
- const { opacity } = elem.detail;
900
- ctx.globalAlpha = opacity ? opacity : 1;
975
+ ctx.globalAlpha = getOpacity(elem) * parentOpacity;
901
976
  ctx.drawImage(content, x2, y2, w2, h2);
902
- ctx.globalAlpha = 1;
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
- const { opacity } = elem.detail;
916
- ctx.globalAlpha = opacity ? opacity : 1;
990
+ ctx.globalAlpha = getOpacity(elem) * parentOpacity;
917
991
  ctx.drawImage(content, x2, y2, w2, h2);
918
- ctx.globalAlpha = 1;
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 (!calculator2.isElementInView(child, opts.viewScaleInfo, opts.viewSizeInfo)) {
1180
- continue;
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 (!opts.calculator.isElementInView(elem, opts.viewScaleInfo, opts.viewSizeInfo)) {
1214
- continue;
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, opts);
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._loadFuncMap = {};
1246
- this._currentLoadItemMap = {};
1247
- this._storageLoadItemMap = {};
1248
- this._registerLoadFunc("image", async (elem, assets) => {
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._registerLoadFunc("html", async (elem, assets) => {
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.width || elem.w,
1263
- height: elem.detail.height || elem.h
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._registerLoadFunc("svg", async (elem, assets) => {
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
- _registerLoadFunc(type, func) {
1283
- this._loadFuncMap[type] = func;
1284
- }
1285
- _getLoadElementSource(element) {
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._isExistingErrorStorage(element)) {
1411
+ if (__privateMethod(this, _isExistingErrorStorage, isExistingErrorStorage_fn).call(this, element)) {
1366
1412
  return;
1367
1413
  }
1368
1414
  if (supportElementTypes.includes(element.type)) {
1369
- this._loadResource(element, assets);
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._storageLoadItemMap) == null ? void 0 : _a[assetId]) == null ? void 0 : _b.content) || null;
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._loader = new Loader();
1385
- this._opts = opts;
1386
- this._init();
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
- _init() {
1389
- const { _loader: loader } = this;
1390
- loader.on("load", (e) => {
1391
- this.trigger("load", e);
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._opts = opts;
1538
+ __privateSet(this, _opts, opts);
1398
1539
  }
1399
1540
  drawData(data, opts) {
1400
- const { _loader: loader } = this;
1401
- const { calculator } = this._opts;
1402
- const { viewContext } = this._opts.viewContent;
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._opts;
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
  }({});