@ngroznykh/papirus 0.9.9 → 0.9.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/core/DiagramRenderer.d.ts +22 -0
- package/dist/core/DiagramRenderer.d.ts.map +1 -1
- package/dist/core/DiagramSurface.d.ts +2 -0
- package/dist/core/DiagramSurface.d.ts.map +1 -1
- package/dist/core/NavigationManager.d.ts.map +1 -1
- package/dist/papirus.js +63 -18
- package/dist/papirus.js.map +1 -1
- package/package.json +1 -1
- package/dist/utils/software2dContext.d.ts +0 -7
- package/dist/utils/software2dContext.d.ts.map +0 -1
|
@@ -64,6 +64,8 @@ export declare class DiagramRenderer extends EventEmitter<DiagramEvents> impleme
|
|
|
64
64
|
private _destroyed;
|
|
65
65
|
/** Chrome may drop the accelerated 2D backing store; nothing can be painted until it returns. */
|
|
66
66
|
private _contextLost;
|
|
67
|
+
/** While true, retina canvases render at 1x to shrink the GPU/IOSurface buffer during pan. */
|
|
68
|
+
private _lowResPan;
|
|
67
69
|
private _canvasRect;
|
|
68
70
|
private _nodeObstaclesCache;
|
|
69
71
|
private animationFrameId;
|
|
@@ -131,6 +133,15 @@ export declare class DiagramRenderer extends EventEmitter<DiagramEvents> impleme
|
|
|
131
133
|
* Device pixel ratio used for rendering
|
|
132
134
|
*/
|
|
133
135
|
get pixelRatio(): number;
|
|
136
|
+
/**
|
|
137
|
+
* Shrink a retina backing store to 1x for the duration of a pan gesture.
|
|
138
|
+
* Does not touch `canvas.width` while the 2D context is lost.
|
|
139
|
+
*/
|
|
140
|
+
beginLowResPan(): void;
|
|
141
|
+
/**
|
|
142
|
+
* Restore the native backing-store ratio after a pan gesture.
|
|
143
|
+
*/
|
|
144
|
+
endLowResPan(): void;
|
|
134
145
|
/**
|
|
135
146
|
* Access the underlying canvas element
|
|
136
147
|
*/
|
|
@@ -267,6 +278,15 @@ export declare class DiagramRenderer extends EventEmitter<DiagramEvents> impleme
|
|
|
267
278
|
* Pan/zoom should call {@link markDirty} only so path routing is not redone every frame.
|
|
268
279
|
*/
|
|
269
280
|
markContentDirty(): void;
|
|
281
|
+
/**
|
|
282
|
+
* Visible world rectangle plus padding so labels and arrow markers are not culled early.
|
|
283
|
+
*/
|
|
284
|
+
private getViewportWorldBounds;
|
|
285
|
+
private intersectsViewport;
|
|
286
|
+
/**
|
|
287
|
+
* Edges without a computed path stay drawable so the first layout pass can paint them.
|
|
288
|
+
*/
|
|
289
|
+
private edgeIntersectsViewport;
|
|
270
290
|
/**
|
|
271
291
|
* Force an immediate render
|
|
272
292
|
*/
|
|
@@ -279,6 +299,8 @@ export declare class DiagramRenderer extends EventEmitter<DiagramEvents> impleme
|
|
|
279
299
|
* Clear all elements from the diagram
|
|
280
300
|
*/
|
|
281
301
|
clear(): void;
|
|
302
|
+
private nativePixelRatio;
|
|
303
|
+
private resolvePixelRatio;
|
|
282
304
|
private setupCanvas;
|
|
283
305
|
private updateCanvasRect;
|
|
284
306
|
private resolveCanvas;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../../src/core/DiagramRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAU,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAItE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,EAAE,CAAC;IACX,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,cAAc,EAAE;QACd,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,OAAO,iCAAiC,EAAE,UAAU;QAC/D,KAAK,EAAE,KAAK;KACb,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAC3C;
|
|
1
|
+
{"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../../src/core/DiagramRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAU,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAItE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,EAAE,CAAC;IACX,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,cAAc,EAAE;QACd,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,OAAO,iCAAiC,EAAE,UAAU;QAC/D,KAAK,EAAE,KAAK;KACb,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAC3C;AAwCD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,YAAY,CAAC,aAAa,CAAE,YAAW,cAAc;IACxF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IACtE,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,iBAAiB,CAAsD;IAC/E,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,kIAAkI;IAClI,OAAO,CAAC,mBAAmB,CAAsD;IACjF,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAQ;IAC3B,+EAA+E;IAC/E,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,iGAAiG;IACjG,OAAO,CAAC,YAAY,CAAS;IAC7B,8FAA8F;IAC9F,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,mBAAmB,CAA+B;IAE1D,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,gBAAgB,CAAS;IACjC,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAAkC;IAExD,iFAAiF;IACjF,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,EAKjC;gBAEW,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,OAAO,GAAE,cAAmB;IA+C5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAEhC;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAWpC;IAEF;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAQrB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAOxB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAOxB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,aAAa,CAM5B;IAED;;OAEG;IACH,IAAI,QAAQ,CAAC,KAAK,EAAE,aAAa,EAOhC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAErC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAErC;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAEvC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACH,cAAc,IAAI,IAAI;IAatB;;OAEG;IACH,YAAY,IAAI,IAAI;IAWpB;;OAEG;IACH,SAAS,IAAI,iBAAiB;IAI9B;;OAEG;IACH,UAAU,IAAI,wBAAwB;IAItC;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAM7D;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,SAAS;IAI3C;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAe3C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKhC;;OAEG;IACH,kBAAkB,CAChB,OAAO,GAAE,IAAI,CAAC,yBAAyB,EAAE,UAAU,CAAM,GACxD,kBAAkB;IAQrB;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAK3B;;OAEG;IACH,iBAAiB,CACf,OAAO,EAAE,qBAAqB,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAC3D,kBAAkB;IAMrB;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAK1B;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,IAAI,GAAG,MAAM,IAAI;IASlF;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,IAAI,GAAG,MAAM,IAAI;IASjF;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,IAAI,GAAG,MAAM,IAAI;IASpF;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK;IAWtD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK;IASpD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IASzB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IA4BnC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIzC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAazB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAiBnC,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIzC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAM5B;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAWrC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI5C;;;OAGG;IACH,iBAAiB,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS;IAsCrE;;;OAGG;IACH,6BAA6B,CAC3B,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS;IAOlC;;;OAGG;IACH,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI;IAqBzC;;;OAGG;IACH,SAAS,IAAI,IAAI;IAIjB;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAMxB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;IA8Bf;;OAEG;IACH,KAAK,IAAI,IAAI;IAiBb,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,WAAW;IAuFnB,OAAO,CAAC,0BAA0B;IAmClC;;;OAGG;IACH,0BAA0B,IAAI,IAAI;IAIlC,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,gBAAgB;IAQxB,0BAA0B,IAAI,IAAI;IAIlC,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAIxD,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAI/D,mBAAmB,IAAI,IAAI;IAI3B,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIxD,kBAAkB,CAChB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO;IAIV,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAI9D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI7D,qBAAqB,IAAI,OAAO;IAIhC,mBAAmB,IAAI,OAAO;IAI9B,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAc7E;;OAEG;IACH,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAUvE,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAKzF,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKjD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;CAa/D"}
|
|
@@ -34,6 +34,8 @@ export interface DiagramSurface {
|
|
|
34
34
|
removeEdge(id: string): boolean;
|
|
35
35
|
markDirty(): void;
|
|
36
36
|
markStyleDirty(): void;
|
|
37
|
+
beginLowResPan(): void;
|
|
38
|
+
endLowResPan(): void;
|
|
37
39
|
screenToWorld(screenX: number, screenY: number): Point;
|
|
38
40
|
worldToScreen(worldX: number, worldY: number): Point;
|
|
39
41
|
getInteractableElementAtPoint(worldPoint: Point, screenX: number, screenY: number): Node | Edge | Group | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagramSurface.d.ts","sourceRoot":"","sources":["../../src/core/DiagramSurface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DiagramSurface.d.ts","sourceRoot":"","sources":["../../src/core/DiagramSurface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE5C,SAAS,IAAI,iBAAiB,CAAC;IAC/B,UAAU,IAAI,wBAAwB,CAAC;IACvC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,SAAS,IAAI,IAAI,CAAC;IAClB,cAAc,IAAI,IAAI,CAAC;IACvB,cAAc,IAAI,IAAI,CAAC;IACvB,YAAY,IAAI,IAAI,CAAC;IACrB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IACvD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACrD,6BAA6B,CAC3B,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;IACnC,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1C,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACxE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAElF,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAC9E,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1F,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAElD,0BAA0B,IAAI,IAAI,CAAC;IACnC,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;IACrE,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,mBAAmB,IAAI,IAAI,CAAC;IAC5B,qBAAqB,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACrE,kBAAkB,CAChB,IAAI,EAAE,YAAY,GAAG,UAAU,EAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC;IACX,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D,qBAAqB,IAAI,OAAO,CAAC;IACjC,mBAAmB,IAAI,OAAO,CAAC;IAE/B,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACrE,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationManager.d.ts","sourceRoot":"","sources":["../../src/core/NavigationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG7C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,EAAE,CAAC;IACb,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,EAAE,CAAC;IACX,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,wBAAwB;IAO7C;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAuBzC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAM5C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAiBzC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAS3C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAiB3C;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAS1C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAMzC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IASvC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI;IAwB3C;;OAEG;IACH,SAAS,CAAC,OAAO,SAAK,GAAG,IAAI;IAY7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,IAAI;IAoB5C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,IAAI;IAInD;;OAEG;IACH,SAAS,IAAI,IAAI;IAOjB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"NavigationManager.d.ts","sourceRoot":"","sources":["../../src/core/NavigationManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAG7C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,EAAE,CAAC;IACb,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,EAAE,CAAC;IACX,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,EAAE,wBAAwB;IAO7C;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAuBzC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAM5C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAiBzC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAS3C;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAiB3C;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAS1C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAMzC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IASvC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI;IAwB3C;;OAEG;IACH,SAAS,CAAC,OAAO,SAAK,GAAG,IAAI;IAY7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,IAAI;IAoB5C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,IAAI;IAInD;;OAEG;IACH,SAAS,IAAI,IAAI;IAOjB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOjC,OAAO,CAAC,MAAM;CAMf"}
|
package/dist/papirus.js
CHANGED
|
@@ -1689,11 +1689,13 @@ var NavigationManager = class extends EventEmitter {
|
|
|
1689
1689
|
x: event.screenX,
|
|
1690
1690
|
y: event.screenY
|
|
1691
1691
|
};
|
|
1692
|
+
this.renderer.beginLowResPan();
|
|
1692
1693
|
this.emit("panStart");
|
|
1693
1694
|
}
|
|
1694
1695
|
endPan() {
|
|
1695
1696
|
this.isPanning = false;
|
|
1696
1697
|
this.panStart = null;
|
|
1698
|
+
this.renderer.endLowResPan();
|
|
1697
1699
|
this.emit("panEnd");
|
|
1698
1700
|
}
|
|
1699
1701
|
};
|
|
@@ -8316,17 +8318,6 @@ var InteractionManager = class {
|
|
|
8316
8318
|
}
|
|
8317
8319
|
};
|
|
8318
8320
|
//#endregion
|
|
8319
|
-
//#region src/utils/software2dContext.ts
|
|
8320
|
-
/**
|
|
8321
|
-
* Chrome/Blink can drop the GPU backing store of a large accelerated 2D canvas.
|
|
8322
|
-
* A software context (`willReadFrequently`) avoids that path. Safari/WebKit
|
|
8323
|
-
* does not lose 2D contexts this way, so it stays on the default renderer.
|
|
8324
|
-
*/
|
|
8325
|
-
function shouldPreferSoftware2dContext(userAgent = typeof navigator === "undefined" ? "" : navigator.userAgent) {
|
|
8326
|
-
if (/CriOS|FxiOS|EdgiOS/.test(userAgent)) return false;
|
|
8327
|
-
return /Chrome\/|Chromium\/|Edg\/|OPR\//.test(userAgent);
|
|
8328
|
-
}
|
|
8329
|
-
//#endregion
|
|
8330
8321
|
//#region src/core/AnimationManager.ts
|
|
8331
8322
|
var DEFAULT_OPTIONS$3 = {
|
|
8332
8323
|
enabled: false,
|
|
@@ -9261,6 +9252,8 @@ var ScrollbarController = class ScrollbarController {
|
|
|
9261
9252
|
};
|
|
9262
9253
|
//#endregion
|
|
9263
9254
|
//#region src/core/DiagramRenderer.ts
|
|
9255
|
+
/** Extra CSS pixels around the viewport so labels and markers are not clipped by culling. */
|
|
9256
|
+
var VIEWPORT_CULL_PAD_PX = 48;
|
|
9264
9257
|
var DEFAULT_OPTIONS$1 = {
|
|
9265
9258
|
width: 800,
|
|
9266
9259
|
height: 600,
|
|
@@ -9305,6 +9298,7 @@ var DiagramRenderer = class extends EventEmitter {
|
|
|
9305
9298
|
this._contentDirty = true;
|
|
9306
9299
|
this._destroyed = false;
|
|
9307
9300
|
this._contextLost = false;
|
|
9301
|
+
this._lowResPan = false;
|
|
9308
9302
|
this._canvasRect = null;
|
|
9309
9303
|
this._nodeObstaclesCache = null;
|
|
9310
9304
|
this.animationFrameId = null;
|
|
@@ -9328,7 +9322,7 @@ var DiagramRenderer = class extends EventEmitter {
|
|
|
9328
9322
|
...DEFAULT_OPTIONS$1,
|
|
9329
9323
|
...options
|
|
9330
9324
|
};
|
|
9331
|
-
const ctx =
|
|
9325
|
+
const ctx = this.canvas.getContext("2d");
|
|
9332
9326
|
if (ctx === null) throw new Error("Failed to get 2D rendering context");
|
|
9333
9327
|
this.ctx = ctx;
|
|
9334
9328
|
this.devicePixelRatio = this.options.retina ? window.devicePixelRatio || 1 : 1;
|
|
@@ -9469,6 +9463,26 @@ var DiagramRenderer = class extends EventEmitter {
|
|
|
9469
9463
|
return this.devicePixelRatio;
|
|
9470
9464
|
}
|
|
9471
9465
|
/**
|
|
9466
|
+
* Shrink a retina backing store to 1x for the duration of a pan gesture.
|
|
9467
|
+
* Does not touch `canvas.width` while the 2D context is lost.
|
|
9468
|
+
*/
|
|
9469
|
+
beginLowResPan() {
|
|
9470
|
+
if (this._lowResPan || this._contextLost) return;
|
|
9471
|
+
if (this.nativePixelRatio() <= 1) return;
|
|
9472
|
+
this._lowResPan = true;
|
|
9473
|
+
this.setupCanvas();
|
|
9474
|
+
this.markDirty();
|
|
9475
|
+
}
|
|
9476
|
+
/**
|
|
9477
|
+
* Restore the native backing-store ratio after a pan gesture.
|
|
9478
|
+
*/
|
|
9479
|
+
endLowResPan() {
|
|
9480
|
+
if (!this._lowResPan) return;
|
|
9481
|
+
this._lowResPan = false;
|
|
9482
|
+
if (!this._contextLost) this.setupCanvas();
|
|
9483
|
+
this.markDirty();
|
|
9484
|
+
}
|
|
9485
|
+
/**
|
|
9472
9486
|
* Access the underlying canvas element
|
|
9473
9487
|
*/
|
|
9474
9488
|
getCanvas() {
|
|
@@ -9510,7 +9524,7 @@ var DiagramRenderer = class extends EventEmitter {
|
|
|
9510
9524
|
* Resize the canvas
|
|
9511
9525
|
*/
|
|
9512
9526
|
resize(width, height) {
|
|
9513
|
-
const nextRatio = this.
|
|
9527
|
+
const nextRatio = this.resolvePixelRatio();
|
|
9514
9528
|
const sizeChanged = this.options.width !== width || this.options.height !== height || this.devicePixelRatio !== nextRatio;
|
|
9515
9529
|
this.options.width = width;
|
|
9516
9530
|
this.options.height = height;
|
|
@@ -9827,6 +9841,29 @@ var DiagramRenderer = class extends EventEmitter {
|
|
|
9827
9841
|
this._dirty = true;
|
|
9828
9842
|
}
|
|
9829
9843
|
/**
|
|
9844
|
+
* Visible world rectangle plus padding so labels and arrow markers are not culled early.
|
|
9845
|
+
*/
|
|
9846
|
+
getViewportWorldBounds() {
|
|
9847
|
+
const zoom = this._zoom;
|
|
9848
|
+
const pad = VIEWPORT_CULL_PAD_PX / zoom;
|
|
9849
|
+
return {
|
|
9850
|
+
x: -this._offsetX / zoom - pad,
|
|
9851
|
+
y: -this._offsetY / zoom - pad,
|
|
9852
|
+
width: this.options.width / zoom + pad * 2,
|
|
9853
|
+
height: this.options.height / zoom + pad * 2
|
|
9854
|
+
};
|
|
9855
|
+
}
|
|
9856
|
+
intersectsViewport(bounds, viewport) {
|
|
9857
|
+
return rectsIntersect(bounds, viewport);
|
|
9858
|
+
}
|
|
9859
|
+
/**
|
|
9860
|
+
* Edges without a computed path stay drawable so the first layout pass can paint them.
|
|
9861
|
+
*/
|
|
9862
|
+
edgeIntersectsViewport(edge, viewport) {
|
|
9863
|
+
if (edge.path.length === 0) return true;
|
|
9864
|
+
return this.intersectsViewport(edge.getBounds(), viewport);
|
|
9865
|
+
}
|
|
9866
|
+
/**
|
|
9830
9867
|
* Force an immediate render
|
|
9831
9868
|
*/
|
|
9832
9869
|
render() {
|
|
@@ -9869,9 +9906,16 @@ var DiagramRenderer = class extends EventEmitter {
|
|
|
9869
9906
|
this._nodeEdgeIndex.clear();
|
|
9870
9907
|
this.markDirty();
|
|
9871
9908
|
}
|
|
9909
|
+
nativePixelRatio() {
|
|
9910
|
+
return this.options.retina ? window.devicePixelRatio || 1 : 1;
|
|
9911
|
+
}
|
|
9912
|
+
resolvePixelRatio() {
|
|
9913
|
+
const native = this.nativePixelRatio();
|
|
9914
|
+
return this._lowResPan ? 1 : native;
|
|
9915
|
+
}
|
|
9872
9916
|
setupCanvas() {
|
|
9873
9917
|
const { width, height } = this.options;
|
|
9874
|
-
this.devicePixelRatio = this.
|
|
9918
|
+
this.devicePixelRatio = this.resolvePixelRatio();
|
|
9875
9919
|
this.canvas.style.width = `${width}px`;
|
|
9876
9920
|
this.canvas.style.height = `${height}px`;
|
|
9877
9921
|
this.canvas.width = width * this.devicePixelRatio;
|
|
@@ -9919,7 +9963,8 @@ var DiagramRenderer = class extends EventEmitter {
|
|
|
9919
9963
|
this._styleDirty = false;
|
|
9920
9964
|
}
|
|
9921
9965
|
for (const group of this._groups.values()) group.recalculateBounds();
|
|
9922
|
-
|
|
9966
|
+
const viewport = this.getViewportWorldBounds();
|
|
9967
|
+
for (const group of this._groups.values()) if (group.visible && this.intersectsViewport(group.getBounds(), viewport)) {
|
|
9923
9968
|
this.renderElementWithAnimation(ctx, group, () => group.render(ctx));
|
|
9924
9969
|
group.clearDirty();
|
|
9925
9970
|
}
|
|
@@ -9927,15 +9972,15 @@ var DiagramRenderer = class extends EventEmitter {
|
|
|
9927
9972
|
this.edgeEndpointUpdater.updateAll();
|
|
9928
9973
|
this._contentDirty = false;
|
|
9929
9974
|
}
|
|
9930
|
-
for (const node of this._nodes.values()) if (node.visible) {
|
|
9975
|
+
for (const node of this._nodes.values()) if (node.visible && this.intersectsViewport(node.getVisualBounds(), viewport)) {
|
|
9931
9976
|
this.renderElementWithAnimation(ctx, node, () => node.render(ctx));
|
|
9932
9977
|
node.clearDirty();
|
|
9933
9978
|
}
|
|
9934
|
-
for (const edge of this._edges.values()) if (edge.visible) {
|
|
9979
|
+
for (const edge of this._edges.values()) if (edge.visible && this.edgeIntersectsViewport(edge, viewport)) {
|
|
9935
9980
|
this.renderElementWithAnimation(ctx, edge, () => edge.render(ctx));
|
|
9936
9981
|
edge.clearDirty();
|
|
9937
9982
|
}
|
|
9938
|
-
for (const edge of this._edges.values()) if (edge.visible) edge.renderHandles(ctx);
|
|
9983
|
+
for (const edge of this._edges.values()) if (edge.visible && this.edgeIntersectsViewport(edge, viewport)) edge.renderHandles(ctx);
|
|
9939
9984
|
for (const overlayRenderer of this.overlayRenderers) overlayRenderer(ctx);
|
|
9940
9985
|
for (const topOverlay of this.topOverlayRenderers) topOverlay(ctx);
|
|
9941
9986
|
this.scrollbarController.render(ctx, this.frameTime);
|