@univerjs/slides 0.1.16 → 0.2.0
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/lib/cjs/index.js +1 -1
- package/lib/es/index.js +350 -353
- package/lib/types/index.d.ts +1 -1
- package/lib/types/slides-plugin.d.ts +2 -4
- package/lib/types/views/render/canvas-view.d.ts +2 -0
- package/lib/umd/index.js +1 -1
- package/package.json +10 -10
package/lib/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Plugin, UniverInstanceType } from '@univerjs/core';
|
|
2
2
|
import { Engine } from '@univerjs/engine-render';
|
|
3
3
|
import { Injector } from '@wendellhu/redi';
|
|
4
4
|
import { CanvasView } from './views/render';
|
|
@@ -6,15 +6,13 @@ import { CanvasView } from './views/render';
|
|
|
6
6
|
export interface IUniverSlidesConfig {
|
|
7
7
|
}
|
|
8
8
|
export declare class UniverSlidesPlugin extends Plugin {
|
|
9
|
-
private readonly _univerInstanceService;
|
|
10
|
-
private readonly _localeService;
|
|
11
9
|
readonly _injector: Injector;
|
|
12
10
|
static pluginName: string;
|
|
13
11
|
static type: UniverInstanceType;
|
|
14
12
|
private _config;
|
|
15
13
|
private _canvasEngine;
|
|
16
14
|
private _canvasView;
|
|
17
|
-
constructor(config: Partial<IUniverSlidesConfig> | undefined,
|
|
15
|
+
constructor(config: Partial<IUniverSlidesConfig> | undefined, _injector: Injector);
|
|
18
16
|
initialize(): void;
|
|
19
17
|
getConfig(): IUniverSlidesConfig;
|
|
20
18
|
initCanvasEngine(): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IUniverInstanceService, RxDisposable } from '@univerjs/core';
|
|
2
2
|
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
3
3
|
import { Injector } from '@wendellhu/redi';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
4
5
|
|
|
5
6
|
export declare enum SLIDE_KEY {
|
|
6
7
|
COMPONENT = "__slideRender__",
|
|
@@ -13,6 +14,7 @@ export declare class CanvasView extends RxDisposable {
|
|
|
13
14
|
private readonly _renderManagerService;
|
|
14
15
|
private _objectProvider;
|
|
15
16
|
private _activePageId;
|
|
17
|
+
readonly activePageId$: Subject<string>;
|
|
16
18
|
constructor(_univerInstanceService: IUniverInstanceService, _injector: Injector, _renderManagerService: IRenderManagerService);
|
|
17
19
|
private _initialize;
|
|
18
20
|
activePage(pageId?: string): void;
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(S,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("@wendellhu/redi"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","@wendellhu/redi","rxjs"],o):(S=typeof globalThis<"u"?globalThis:S||self,o(S.UniverSlides={},S.UniverCore,S.UniverEngineRender,S["@wendellhu/redi"],S.rxjs))})(this,function(S,o,h,V,ce){"use strict";var qe=Object.defineProperty;var Ge=(S,o,h)=>o in S?qe(S,o,{enumerable:!0,configurable:!0,writable:!0,value:h}):S[o]=h;var f=(S,o,h)=>Ge(S,typeof o!="symbol"?o+"":o,h);var K;class H{constructor(){f(this,"zIndex",0);f(this,"viewKey",null)}check(n){if(n===this.viewKey)return this}create(n){}}const A=o.Registry.create();var de=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,pe=(s,n,e,r)=>{for(var t=r>1?void 0:r?ue(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(t=(r?a(n,e,t):a(t))||t);return r&&t&&de(n,e,t),t},ge=(s,n)=>(e,r)=>n(e,r,s);let ee=class extends H{constructor(n){super();f(this,"zIndex",5);f(this,"viewKey",o.PageElementType.DOCUMENT);f(this,"_liquid",new h.Liquid);this._localeService=n}check(n){if(n===this.viewKey)return this}convert(n,e){var q,he;const{id:r,zIndex:t,left:i=0,top:a=0,width:c,height:l,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,title:O,description:x,document:j}=n;if(j==null)return;const y=new o.DocumentDataModel(j),P=new h.DocumentViewModel(y),b=h.DocumentSkeleton.create(P,this._localeService),T=new h.Documents("__DocsRender__",b);b.calculate();const C=new h.SceneViewer("__DocsViewer__"+r,{top:a,left:i,width:c,height:l,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v}),I=new h.Scene("__DocsScene__"+r,C),m=new h.Viewport("__DocsViewPort_"+r,I,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0});I.attachControl(),I.on(h.EVENT_TYPE.wheel,(X,$)=>{const D=X;if(D.ctrlKey){const Y=Math.abs(D.deltaX);let M=Y<40?.2:Y<80?.4:.2;M*=D.deltaY>0?-1:1,I.scaleX<1&&(M/=2),I.scaleX+M>4?I.scale(4,4):I.scaleX+M<.1?I.scale(.1,.1):(D.deltaY>0,D.preventDefault())}else m.onMouseWheel(D,$)}),new h.ScrollBar(m,{mainScene:e}),I.addObject(T);const E=b.getActualSize();T.resize(E.actualWidth,E.actualHeight),I.resize(E.actualWidth,E.actualHeight+200);const L=(q=T.getSkeleton())==null?void 0:q.getPageSize();T.onPageRenderObservable.add(X=>{const{page:$,pageLeft:D,pageTop:Y,ctx:M}=X,{width:G,height:Z,marginBottom:se,marginLeft:z,marginRight:J,marginTop:Q}=$;M.save(),M.translate(D-.5,Y-.5),h.Rect.drawWith(M,{width:(L==null?void 0:L.width)||G,height:(L==null?void 0:L.height)||Z,strokeWidth:1,stroke:"rgba(198,198,198, 1)",fill:"rgba(255,255,255, 1)",zIndex:3}),M.restore()});const{left:F,top:W}=T,N=b.getSkeletonData();if(N==null)return;const{pages:U}=N,R=[],k=new Map;this._recalculateSizeBySkeleton(T,I,b);for(let X=0,$=U.length;X<$;X++){const D=U[X],{skeDrawings:Y,marginLeft:M,marginTop:G,pageWidth:Z,pageHeight:se}=D;this._liquid.translatePagePadding(D),Y.forEach(z=>{const{aLeft:J,aTop:Q,height:Be,width:Ke,drawingOrigin:Ze}=z,ke=new h.Image(z.drawingId,{left:J+F+this._liquid.x,top:Q+W+this._liquid.y,width:Ke,height:Be,zIndex:11});k.set(z.drawingId,{marginLeft:this._liquid.x,marginTop:this._liquid.y}),R.push(ke)}),this._liquid.translatePage(D,T.pageLayoutType,T.pageMarginLeft,T.pageMarginTop)}return I.addObjects(R),R.forEach(X=>{I.attachTransformerTo(X)}),(he=I.getTransformer())==null||he.onChangingObservable.add(X=>{const{objects:$}=X;$.forEach(D=>{const{oKey:Y,left:M,top:G,height:Z,width:se}=D,z=k.get(Y),J=(z==null?void 0:z.marginLeft)||0,Q=(z==null?void 0:z.marginTop)||0;b==null||b.getViewModel().getDataModel().updateDrawing(Y,{left:M-F-J,top:G-W-Q,height:Z,width:se})}),b==null||b.calculate()}),this._calculatePagePosition(T,I,m),C}_recalculateSizeBySkeleton(n,e,r){var c;const t=(c=r.getSkeletonData())==null?void 0:c.pages;if(t==null)return;let i=0,a=0;for(let l=0,d=t.length;l<d;l++){const u=t[l],{pageWidth:w,pageHeight:p}=u;n.pageLayoutType===h.PageLayoutType.VERTICAL?(a+=p,a+=n.pageMarginTop,l===d-1&&(a+=n.pageMarginTop),i=Math.max(i,w)):n.pageLayoutType===h.PageLayoutType.HORIZONTAL&&(i+=w,l!==d-1&&(i+=n.pageMarginLeft),a=Math.max(a,p))}n.resize(i,a),e.resize(i,a)}_calculatePagePosition(n,e,r,t=1){const i=e==null?void 0:e.getParent(),{width:a,height:c,pageMarginLeft:l,pageMarginTop:d}=n;if(i==null||a===Number.POSITIVE_INFINITY||c===Number.POSITIVE_INFINITY)return;const{width:u,height:w}=i;let p=0,_=0,g=0,v=0,O=Number.POSITIVE_INFINITY;if(u>(a+l*2)*t?(p=u/2-a*t/2,p/=t,g=(u-l*2)/t,O=0):(p=l,g=a+l*2,O=(g-u/t)/2),w>c?(_=w/2-c/2,v=(w-d*2)/t):(_=d,v=c+d*2),e.resize(g,v+200),n.translate(p,_),O!==Number.POSITIVE_INFINITY&&r!=null){const x=r.transScroll2ViewportScrollValue(O,0).x;r.scrollTo({x})}return this}};ee=pe([ge(0,V.Inject(o.LocaleService))],ee);class _e{constructor(){f(this,"zIndex",5)}create(n){return n.createInstance(ee)}}A.add(new _e);class ve extends H{constructor(){super(...arguments);f(this,"zIndex",1);f(this,"viewKey",o.PageElementType.IMAGE)}check(e){if(e===this.viewKey)return this}convert(e){const{id:r,zIndex:t,left:i=0,top:a=0,width:c,height:l,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,title:O,description:x,image:j={}}=e,{imageProperties:y,placeholder:P,link:b}=j,T=(y==null?void 0:y.contentUrl)||"";return new h.Image(r,{url:T,top:a,left:i,width:c,height:l,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,forceRender:!0})}}class fe{constructor(){f(this,"zIndex",4)}create(n){return n.createInstance(ve)}}A.add(new fe);var we=Object.defineProperty,Se=Object.getOwnPropertyDescriptor,Ie=(s,n,e,r)=>{for(var t=r>1?void 0:r?Se(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(t=(r?a(n,e,t):a(t))||t);return r&&t&&we(n,e,t),t},Pe=(s,n)=>(e,r)=>n(e,r,s);let te=class extends H{constructor(n){super();f(this,"zIndex",2);f(this,"viewKey",o.PageElementType.TEXT);this._localeService=n}check(n){if(n===this.viewKey)return this}convert(n,e){const{id:r,zIndex:t,left:i=0,top:a=0,width:c,height:l,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,title:O,description:x,richText:j={}}=n,{text:y,ff:P,fs:b,it:T,bl:C,ul:I,st:m,ol:E,bg:L,bd:F,cl:W,rich:N}=j;let U={top:a,left:i,width:c,height:l,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,forceRender:!0},R=!1;if(y!=null?(U={...U,text:y,ff:P,fs:b,it:T,bl:C,ul:I,st:m,ol:E,bg:L,bd:F,cl:W},R=!0):N!=null&&(U={...U,richText:N},R=!0),R!==!1)return new h.RichText(this._localeService,r,U)}};te=Ie([Pe(0,V.Inject(o.LocaleService))],te);class Te{constructor(){f(this,"zIndex",0)}create(n){return n.createInstance(te)}}A.add(new Te);class be extends H{constructor(){super(...arguments);f(this,"zIndex",2);f(this,"viewKey",o.PageElementType.SHAPE)}check(e){if(e===this.viewKey)return this}convert(e){const{id:r,zIndex:t,left:i=0,top:a=0,width:c,height:l,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,title:O,description:x}=e,{shapeType:j,text:y,shapeProperties:P,placeholder:b,link:T}=e.shape||{},C=P==null?"":o.getColorStyle(P.shapeBackgroundFill)||"rgba(255,255,255,1)",I=P==null?void 0:P.outline,m={};if(I){const{outlineFill:E,weight:L}=I;m.strokeWidth=L,m.stroke=o.getColorStyle(E)||"rgba(0,0,0,1)"}if(j===o.BasicShapes.Rect)return new h.Rect(r,{fill:C,top:a,left:i,width:c,height:l,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,forceRender:!0,...m});if(j===o.BasicShapes.RoundRect){const E=(P==null?void 0:P.radius)||0;return new h.Rect(r,{fill:C,top:a,left:i,width:c,height:l,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,forceRender:!0,radius:E,...m})}}}class me{constructor(){f(this,"zIndex",2)}create(n){return n.createInstance(be)}}A.add(new me);var ye=Object.defineProperty,Ee=Object.getOwnPropertyDescriptor,Oe=(s,n,e,r)=>{for(var t=r>1?void 0:r?Ee(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(t=(r?a(n,e,t):a(t))||t);return r&&t&&ye(n,e,t),t},je=(s,n)=>(e,r)=>n(e,r,s);let re=class extends H{constructor(n){super();f(this,"zIndex",6);f(this,"viewKey",o.PageElementType.SLIDE);f(this,"_ObjectProvider",null);this._injector=n}check(n){if(n===this.viewKey)return this}convert(n,e){const{id:r,zIndex:t,left:i=0,top:a=0,width:c,height:l,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,title:O,description:x,slide:j}=n;if(j==null)return;const y=new o.SlideDataModel(j),P=new h.Slide("__SLIDERender__"+r,{top:a,left:i,width:c,height:l,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,forceRender:!0});P.enableNav(),P.enableSelectedClipElement();const b=y.getPageOrder(),T=y.getPages();if(!b||!T)return P;this._ObjectProvider=new B(this._injector);for(let C=0,I=b.length;C<I;C++){const m=T[b[C]],{id:E}=m;P.addPage(this._createScene(E,P,m,e,y))}return P.activeFirstPage(),P}_createScene(n,e,r,t,i){var _;const{width:a,height:c}=e,l=new h.Scene(n,e,{width:a,height:c});new h.Viewport(`PageViewer_${n}`,l,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0}).closeClip();const{pageElements:u,pageBackgroundFill:w}=r,p=(_=this._ObjectProvider)==null?void 0:_.convertToRenderObjects(u,t);return this._addBackgroundRect(l,w,i),l.addObjects(p),p==null||p.forEach(g=>{l.attachTransformerTo(g)}),l}_addBackgroundRect(n,e,r){const t=r.getPageSize(),{width:i=0,height:a=0}=t,c=new h.Rect("canvas",{left:0,top:0,width:i,height:a,strokeWidth:1,stroke:"rgba(198,198,198, 1)",fill:o.getColorStyle(e)||"rgba(255,255,255, 1)",zIndex:0,evented:!1});n.addObject(c,0)}};re=Oe([je(0,V.Inject(V.Injector))],re);class De{constructor(){f(this,"zIndex",6)}create(n){return n.createInstance(re)}}A.add(new De);var Ce=Object.defineProperty,Ve=Object.getOwnPropertyDescriptor,xe=(s,n,e,r)=>{for(var t=r>1?void 0:r?Ve(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(t=(r?a(n,e,t):a(t))||t);return r&&t&&Ce(n,e,t),t},le=(s,n)=>(e,r)=>n(e,r,s);let ne=class extends H{constructor(n,e){super();f(this,"zIndex",4);f(this,"viewKey",o.PageElementType.SPREADSHEET);this._localeService=n,this._contextService=e}check(n){if(n===this.viewKey)return this}convert(n,e){const{id:r,zIndex:t,left:i=0,top:a=0,width:c,height:l,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,spreadsheet:O}=n;if(O==null)return;const{worksheet:x,styles:j}=O,{cellData:y}=x,P=new o.ObjectMatrix(y),b=new o.Styles(j),T=new h.SpreadsheetSkeleton(new o.Worksheet(r,x,b),x,P,b,this._localeService,this._contextService),{rowTotalHeight:C,columnTotalWidth:I,rowHeaderWidth:m,columnHeaderHeight:E}=T,L=I+x.rowHeader.width||0,F=C+x.columnHeader.height||0,W=new h.SceneViewer("spreadInSlideSceneViewer"+r,{top:a,left:i,width:c,height:l,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:p,skewY:_,flipX:g,flipY:v,forceRender:!0}),N=new h.Scene("spreadInSlideScene"+r,W,{width:L,height:F});this._updateViewport(r,m,E,N,e);const U=new h.Spreadsheet("testSheetViewer",T,!1),R=new h.SpreadsheetRowHeader("spreadInSlideRow",T),k=new h.SpreadsheetColumnHeader("spreadInSlideColumn",T),q=new h.Rect("spreadInSlideLeftTop",{zIndex:2,left:-1,top:-1,width:m,height:E,fill:h.getColor([248,249,250]),stroke:h.getColor([217,217,217]),strokeWidth:1});return U.zIndex=10,N.addObjects([U],1),N.addObjects([R,k,q],2),W}_updateViewport(n,e,r,t,i){if(i==null)return;const a=e*t.scaleX,c=r*t.scaleY,l=new h.Viewport("spreadInSlideViewMain"+n,t,{left:a,top:c,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0}),d=new h.Viewport("spreadInSlideViewTop"+n,t,{left:a,height:c,top:0,right:0,isRelativeX:!0,isWheelPreventDefaultX:!0}),u=new h.Viewport("spreadInSlideViewLeft"+n,t,{left:0,bottom:0,top:c,width:a,isRelativeY:!0,isWheelPreventDefaultX:!0});new h.Viewport("spreadInSlideViewLeftTop"+n,t,{left:0,top:0,width:a,height:c,isWheelPreventDefaultX:!0}),l.onScrollAfterObserver.add(w=>{const{scrollX:p,scrollY:_,viewportScrollX:g,viewportScrollY:v}=w;d.updateScroll({scrollX:p,viewportScrollX:g}),u.updateScroll({scrollY:_,viewportScrollY:v})}),t.attachControl(),new h.ScrollBar(l,{mainScene:i}),t.on(h.EVENT_TYPE.wheel,(w,p)=>{const _=w;if(_.ctrlKey){const g=Math.abs(_.deltaX);let v=g<40?.05:g<80?.02:.01;v*=_.deltaY>0?-1:1,t.scaleX<1&&(v/=2),t.scaleX+v>4?t.scale(4,4):t.scaleX+v<.1?t.scale(.1,.1):(t.scaleBy(v,v),_.preventDefault())}else l.onMouseWheel(_,p)})}};ne=xe([le(0,V.Inject(o.LocaleService)),le(1,o.IContextService)],ne);class Le{constructor(){f(this,"zIndex",4)}create(n){return n.createInstance(ne)}}A.add(new Le);var Me=Object.defineProperty,Ue=Object.getOwnPropertyDescriptor,Xe=(s,n,e,r)=>{for(var t=r>1?void 0:r?Ue(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(t=(r?a(n,e,t):a(t))||t);return r&&t&&Me(n,e,t),t},ze=(s,n)=>(e,r)=>n(e,r,s);let B=class{constructor(s){f(this,"_adaptors",[]);this._injector=s,this._adaptorLoader()}convertToRenderObjects(s,n){const e=Object.keys(s),r=[];return e.forEach(t=>{const i=s[t],a=this._executor(i,n);a!=null&&r.push(a)}),r}_executor(s,n){var t;const{id:e,type:r}=s;for(const i of this._adaptors){const a=(t=i.check(r))==null?void 0:t.convert(s,n);if(a!=null)return a}}_adaptorLoader(){A.getData().sort(o.sortRules).forEach(s=>{this._adaptors.push(s.create(this._injector))})}};B=Xe([ze(0,V.Inject(V.Injector))],B);var Ne=Object.defineProperty,Re=Object.getOwnPropertyDescriptor,Ye=(s,n,e,r)=>{for(var t=r>1?void 0:r?Re(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(t=(r?a(n,e,t):a(t))||t);return r&&t&&Ne(n,e,t),t},ie=(s,n)=>(e,r)=>n(e,r,s),oe=(s=>(s.COMPONENT="__slideRender__",s.SCENE="__mainScene__",s.VIEW="__mainView__",s))(oe||{});S.CanvasView=class extends o.RxDisposable{constructor(e,r,t){super();f(this,"_objectProvider",null);f(this,"_activePageId","");f(this,"_refreshThumb",o.debounce(()=>{this.createThumbs()},300));this._univerInstanceService=e,this._injector=r,this._renderManagerService=t,this._initializeDependencies(this._injector),this._initialize()}_initialize(){this._renderManagerService.createRender$.pipe(ce.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._univerInstanceService.getCurrentTypeOfUnit$(o.UniverInstanceType.UNIVER_SLIDE).pipe(ce.takeUntil(this.dispose$)).subscribe(e=>{this._create(e==null?void 0:e.getUnitId())}),this._univerInstanceService.getAllUnitsForType(o.UniverInstanceType.UNIVER_SLIDE).forEach(e=>{this._create(e.getUnitId())})}activePage(e){const r=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SLIDE);let t;if(e)t=r.getPage(e);else{const l=r.getPages(),d=r.getPageOrder();if(d==null||l==null)return;t=l[d[0]],e=t.id}const i=this._currentRender();if(t==null||i==null||i.mainComponent==null)return;const{id:a}=t,c=i.mainComponent;if(this._activePageId=e,c!=null&&c.hasPage(a)){c.changePage(a);return}this._createScene(a,t)}_scrollToCenter(){var d;const e=(d=this._currentRender())==null?void 0:d.scene,r=e==null?void 0:e.getViewport("__mainView__"),t=this._getCenterPositionViewPort(e);if(!r||!t)return;const{left:i,top:a}=t,{x:c,y:l}=r.transViewportScroll2ScrollValue(i,a);r.scrollTo({x:c,y:l})}_create(e){e==null||this._univerInstanceService.getUnit(e,o.UniverInstanceType.UNIVER_SLIDE)==null||this._renderManagerService.has(e)||this._addNewRender(e)}_currentRender(){const e=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SLIDE);return this._renderManagerService.getRenderById(e.getUnitId())}_addNewRender(e){const r=this._univerInstanceService.getUnit(e,o.UniverInstanceType.UNIVER_SLIDE);if(r==null)return;this._renderManagerService.createRender(e);const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{scene:i,engine:a}=t,c=a.onTransformChangeObservable.add(()=>{this._scrollToCenter(),c==null||c.dispose()});a.onTransformChangeObservable.add(()=>{setTimeout(()=>{this.createThumbs()},300)}),i.resize(2400,1800);const l=new h.Viewport("__mainView__",i,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0});i.attachControl(),i.on(h.EVENT_TYPE.wheel,(u,w)=>{const p=u;if(p.ctrlKey){const _=Math.abs(p.deltaX);let g=_<40?.2:_<80?.4:.2;g*=p.deltaY>0?-1:1,i.scaleX<1&&(g/=2),i.scaleX+g>4?i.scale(4,4):i.scaleX+g<.1?i.scale(.1,.1):(p.deltaY>0,p.preventDefault())}else l.onMouseWheel(p,w)}),i.onFileLoadedObservable.add(()=>{this._refreshThumb()}),h.ScrollBar.attachTo(l),this._renderManagerService.setCurrent(e);const d=this._createSlide(i);t.mainComponent=d,t.components.set("__slideRender__",d),this._createSlidePages(r,d),a.runRenderLoop(()=>{i.render();const u=document.getElementById("app");u&&(u.innerText=`fps:${Math.round(a.getFps()).toString()}`)})}_createSlide(e){const r=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SLIDE),{width:t,height:i}=e,a=r.getPageSize(),{width:c=100,height:l=100}=a,d=new h.Slide("__slideRender__",{left:(t-c)/2,top:(i-l)/2,width:c,height:l,zIndex:10});return d.enableNav(),d.enableSelectedClipElement(),e.addObject(d),d}_addBackgroundRect(e,r){const i=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SLIDE).getPageSize(),{width:a=0,height:c=0}=i,l=new h.Rect("canvas",{left:0,top:0,width:a,height:c,strokeWidth:1,stroke:"rgba(198,198,198, 1)",fill:o.getColorStyle(r)||"rgba(255,255,255, 1)",zIndex:0,evented:!1});e.addObject(l,0)}_getCenterPositionViewPort(e){if(!e)return{left:0,top:0};const{width:r,height:t}=e,i=e.getEngine(),a=(i==null?void 0:i.width)||0,c=(i==null?void 0:i.height)||0;return{left:(r-a)/2,top:(t-c)/2}}_thumbSceneRender(e,r){const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{engine:i}=t;if(i==null)return;const{width:a,height:c}=r,{width:l=a,height:d=c}=i,u=i.getCanvas().getContext();r.renderToThumb(u,e,l/a,d/c)}_createSlidePages(e,r){const t=e.getPages(),i=e.getPageOrder();if(!(!t||!i)&&i.length!==0){for(let a=0,c=i.length;a<c;a++){const l=i[a];this._createScene(l,t[l]),this._createThumb(l)}this._activePageId=i[0],r.activeFirstPage()}}createThumbs(){const r=this._univerInstanceService.getCurrentUnitForType(o.UniverInstanceType.UNIVER_SLIDE).getPageOrder(),t=this._currentRender();if(!(!r||!t)&&r.length!==0)for(let i=0,a=r.length;i<a;i++){const c=r[i];this._thumbSceneRender(c,t.mainComponent)}}_createThumb(e){this._renderManagerService.createRender(e)}_createScene(e,r){const t=this._currentRender();if(!t||!this._objectProvider)return;const{scene:i,mainComponent:a}=t,c=a,{width:l,height:d}=c,u=new h.Scene(e,c,{width:l,height:d});new h.Viewport(`PageViewer_${e}`,u,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0}).closeClip();const{pageElements:p,pageBackgroundFill:_}=r,g=this._objectProvider.convertToRenderObjects(p,i);if(!g||!c)return;this._addBackgroundRect(u,_),u.addObjects(g),g.forEach(O=>{u.attachTransformerTo(O)});const v=u.getTransformer();return v==null||v.onChangeEndObservable.add(()=>{this._thumbSceneRender(this._activePageId,c)}),v==null||v.onClearControlObservable.add(()=>{this._thumbSceneRender(this._activePageId,c)}),c.addPage(u),u}_initializeDependencies(e){this._objectProvider=e.createInstance(B)}},S.CanvasView=Ye([o.OnLifecycle(o.LifecycleStages.Ready,S.CanvasView),ie(0,o.IUniverInstanceService),ie(1,V.Inject(V.Injector)),ie(2,h.IRenderManagerService)],S.CanvasView);var Ae=Object.defineProperty,We=Object.getOwnPropertyDescriptor,$e=(s,n,e,r)=>{for(var t=r>1?void 0:r?We(n,e):n,i=s.length-1,a;i>=0;i--)(a=s[i])&&(t=(r?a(n,e,t):a(t))||t);return r&&t&&Ae(n,e,t),t},ae=(s,n)=>(e,r)=>n(e,r,s);const He={},Fe="slides";S.UniverSlidesPlugin=(K=class extends o.Plugin{constructor(e={},r,t,i){super();f(this,"_config");f(this,"_canvasEngine",null);f(this,"_canvasView",null);this._univerInstanceService=r,this._localeService=t,this._injector=i,this._config=Object.assign(He,e),this._initializeDependencies(this._injector)}initialize(){this.initCanvasEngine()}getConfig(){return this._config}initCanvasEngine(){this._canvasEngine=this._injector.get(h.IRenderingEngine)}onRendered(){this.initialize()}getCanvasEngine(){return this._canvasEngine}getCanvasView(){return this._canvasView}_initializeDependencies(e){[[S.CanvasView]].forEach(t=>{e.add(t)})}},f(K,"pluginName",Fe),f(K,"type",o.UniverInstanceType.UNIVER_SLIDE),K),S.UniverSlidesPlugin=$e([ae(1,o.IUniverInstanceService),ae(2,V.Inject(o.LocaleService)),ae(3,V.Inject(V.Injector))],S.UniverSlidesPlugin),S.SLIDE_KEY=oe,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(S,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("@univerjs/core"),require("@univerjs/engine-render"),require("@wendellhu/redi"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/engine-render","@wendellhu/redi","rxjs"],l):(S=typeof globalThis<"u"?globalThis:S||self,l(S.UniverSlides={},S.UniverCore,S.UniverEngineRender,S["@wendellhu/redi"],S.rxjs))})(this,function(S,l,h,L,ee){"use strict";var qe=Object.defineProperty;var Ge=(S,l,h)=>l in S?qe(S,l,{enumerable:!0,configurable:!0,writable:!0,value:h}):S[l]=h;var _=(S,l,h)=>Ge(S,typeof l!="symbol"?l+"":l,h);var K;class H{constructor(){_(this,"zIndex",0);_(this,"viewKey",null)}check(n){if(n===this.viewKey)return this}create(n){}}const A=l.Registry.create();var he=Object.defineProperty,de=Object.getOwnPropertyDescriptor,ue=(a,n,e,r)=>{for(var t=r>1?void 0:r?de(n,e):n,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(r?s(n,e,t):s(t))||t);return r&&t&&he(n,e,t),t},pe=(a,n)=>(e,r)=>n(e,r,a);let te=class extends H{constructor(n){super();_(this,"zIndex",5);_(this,"viewKey",l.PageElementType.DOCUMENT);_(this,"_liquid",new h.Liquid);this._localeService=n}check(n){if(n===this.viewKey)return this}convert(n,e){var q,le;const{id:r,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,title:j,description:V,document:D}=n;if(D==null)return;const y=new l.DocumentDataModel(D),P=new h.DocumentViewModel(y),T=h.DocumentSkeleton.create(P,this._localeService),b=new h.Documents("__DocsRender__",T);T.calculate();const C=new h.SceneViewer("__DocsViewer__"+r,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f}),I=new h.Scene("__DocsScene__"+r,C),m=new h.Viewport("__DocsViewPort_"+r,I,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0});I.attachControl(),I.onMouseWheel$.subscribeEvent((X,Y)=>{const O=X;if(O.ctrlKey){const N=Math.abs(O.deltaX);let M=N<40?.2:N<80?.4:.2;M*=O.deltaY>0?-1:1,I.scaleX<1&&(M/=2),I.scaleX+M>4?I.scale(4,4):I.scaleX+M<.1?I.scale(.1,.1):(O.deltaY>0,O.preventDefault())}else m.onMouseWheel(O,Y)}),new h.ScrollBar(m,{mainScene:e}),I.addObject(b);const E=T.getActualSize();b.resize(E.actualWidth,E.actualHeight),I.resize(E.actualWidth,E.actualHeight+200);const x=(q=b.getSkeleton())==null?void 0:q.getPageSize();b.pageRender$.subscribe(X=>{const{page:Y,pageLeft:O,pageTop:N,ctx:M}=X,{width:G,height:Z,marginBottom:ae,marginLeft:z,marginRight:J,marginTop:Q}=Y;M.save(),M.translate(O-.5,N-.5),h.Rect.drawWith(M,{width:(x==null?void 0:x.width)||G,height:(x==null?void 0:x.height)||Z,strokeWidth:1,stroke:"rgba(198,198,198, 1)",fill:"rgba(255,255,255, 1)",zIndex:3}),M.restore()});const{left:F,top:W}=b,$=T.getSkeletonData();if($==null)return;const{pages:U}=$,R=[],k=new Map;this._recalculateSizeBySkeleton(b,I,T);for(let X=0,Y=U.length;X<Y;X++){const O=U[X],{skeDrawings:N,marginLeft:M,marginTop:G,pageWidth:Z,pageHeight:ae}=O;this._liquid.translatePagePadding(O),N.forEach(z=>{const{aLeft:J,aTop:Q,height:Be,width:Ke,drawingOrigin:Ze}=z,ke=new h.Image(z.drawingId,{left:J+F+this._liquid.x,top:Q+W+this._liquid.y,width:Ke,height:Be,zIndex:11});k.set(z.drawingId,{marginLeft:this._liquid.x,marginTop:this._liquid.y}),R.push(ke)}),this._liquid.translatePage(O,b.pageLayoutType,b.pageMarginLeft,b.pageMarginTop)}return I.addObjects(R),R.forEach(X=>{I.attachTransformerTo(X)}),(le=I.getTransformer())==null||le.changing$.subscribe(X=>{const{objects:Y}=X;Y.forEach(O=>{const{oKey:N,left:M,top:G,height:Z,width:ae}=O,z=k.get(N),J=(z==null?void 0:z.marginLeft)||0,Q=(z==null?void 0:z.marginTop)||0;T==null||T.getViewModel().getDataModel().updateDrawing(N,{left:M-F-J,top:G-W-Q,height:Z,width:ae})}),T==null||T.calculate()}),this._calculatePagePosition(b,I,m),C}_recalculateSizeBySkeleton(n,e,r){var c;const t=(c=r.getSkeletonData())==null?void 0:c.pages;if(t==null)return;let i=0,s=0;for(let o=0,d=t.length;o<d;o++){const p=t[o],{pageWidth:w,pageHeight:u}=p;n.pageLayoutType===h.PageLayoutType.VERTICAL?(s+=u,s+=n.pageMarginTop,o===d-1&&(s+=n.pageMarginTop),i=Math.max(i,w)):n.pageLayoutType===h.PageLayoutType.HORIZONTAL&&(i+=w,o!==d-1&&(i+=n.pageMarginLeft),s=Math.max(s,u))}n.resize(i,s),e.resize(i,s)}_calculatePagePosition(n,e,r,t=1){const i=e==null?void 0:e.getParent(),{width:s,height:c,pageMarginLeft:o,pageMarginTop:d}=n;if(i==null||s===Number.POSITIVE_INFINITY||c===Number.POSITIVE_INFINITY)return;const{width:p,height:w}=i;let u=0,v=0,g=0,f=0,j=Number.POSITIVE_INFINITY;if(p>(s+o*2)*t?(u=p/2-s*t/2,u/=t,g=(p-o*2)/t,j=0):(u=o,g=s+o*2,j=(g-p/t)/2),w>c?(v=w/2-c/2,f=(w-d*2)/t):(v=d,f=c+d*2),e.resize(g,f+200),n.translate(u,v),j!==Number.POSITIVE_INFINITY&&r!=null){const V=r.transScroll2ViewportScrollValue(j,0).x;r.scrollTo({x:V})}return this}};te=ue([pe(0,L.Inject(l.LocaleService))],te);class ge{constructor(){_(this,"zIndex",5)}create(n){return n.createInstance(te)}}A.add(new ge);class _e extends H{constructor(){super(...arguments);_(this,"zIndex",1);_(this,"viewKey",l.PageElementType.IMAGE)}check(e){if(e===this.viewKey)return this}convert(e){const{id:r,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,title:j,description:V,image:D={}}=e,{imageProperties:y,placeholder:P,link:T}=D,b=(y==null?void 0:y.contentUrl)||"";return new h.Image(r,{url:b,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,forceRender:!0})}}class ve{constructor(){_(this,"zIndex",4)}create(n){return n.createInstance(_e)}}A.add(new ve);var fe=Object.defineProperty,we=Object.getOwnPropertyDescriptor,Se=(a,n,e,r)=>{for(var t=r>1?void 0:r?we(n,e):n,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(r?s(n,e,t):s(t))||t);return r&&t&&fe(n,e,t),t},Ie=(a,n)=>(e,r)=>n(e,r,a);let re=class extends H{constructor(n){super();_(this,"zIndex",2);_(this,"viewKey",l.PageElementType.TEXT);this._localeService=n}check(n){if(n===this.viewKey)return this}convert(n,e){const{id:r,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,title:j,description:V,richText:D={}}=n,{text:y,ff:P,fs:T,it:b,bl:C,ul:I,st:m,ol:E,bg:x,bd:F,cl:W,rich:$}=D;let U={top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,forceRender:!0},R=!1;if(y!=null?(U={...U,text:y,ff:P,fs:T,it:b,bl:C,ul:I,st:m,ol:E,bg:x,bd:F,cl:W},R=!0):$!=null&&(U={...U,richText:$},R=!0),R!==!1)return new h.RichText(this._localeService,r,U)}};re=Se([Ie(0,L.Inject(l.LocaleService))],re);class Pe{constructor(){_(this,"zIndex",0)}create(n){return n.createInstance(re)}}A.add(new Pe);class be extends H{constructor(){super(...arguments);_(this,"zIndex",2);_(this,"viewKey",l.PageElementType.SHAPE)}check(e){if(e===this.viewKey)return this}convert(e){const{id:r,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,title:j,description:V}=e,{shapeType:D,text:y,shapeProperties:P,placeholder:T,link:b}=e.shape||{},C=P==null?"":l.getColorStyle(P.shapeBackgroundFill)||"rgba(255,255,255,1)",I=P==null?void 0:P.outline,m={};if(I){const{outlineFill:E,weight:x}=I;m.strokeWidth=x,m.stroke=l.getColorStyle(E)||"rgba(0,0,0,1)"}if(D===l.BasicShapes.Rect)return new h.Rect(r,{fill:C,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,forceRender:!0,...m});if(D===l.BasicShapes.RoundRect){const E=(P==null?void 0:P.radius)||0;return new h.Rect(r,{fill:C,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,forceRender:!0,radius:E,...m})}}}class Te{constructor(){_(this,"zIndex",2)}create(n){return n.createInstance(be)}}A.add(new Te);var me=Object.defineProperty,ye=Object.getOwnPropertyDescriptor,Ee=(a,n,e,r)=>{for(var t=r>1?void 0:r?ye(n,e):n,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(r?s(n,e,t):s(t))||t);return r&&t&&me(n,e,t),t},je=(a,n)=>(e,r)=>n(e,r,a);let ne=class extends H{constructor(n){super();_(this,"zIndex",6);_(this,"viewKey",l.PageElementType.SLIDE);_(this,"_ObjectProvider",null);this._injector=n}check(n){if(n===this.viewKey)return this}convert(n,e){const{id:r,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,title:j,description:V,slide:D}=n;if(D==null)return;const y=new l.SlideDataModel(D),P=new h.Slide("__SLIDERender__"+r,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,forceRender:!0});P.enableNav(),P.enableSelectedClipElement();const T=y.getPageOrder(),b=y.getPages();if(!T||!b)return P;this._ObjectProvider=new B(this._injector);for(let C=0,I=T.length;C<I;C++){const m=b[T[C]],{id:E}=m;P.addPage(this._createScene(E,P,m,e,y))}return P.activeFirstPage(),P}_createScene(n,e,r,t,i){var v;const{width:s,height:c}=e,o=new h.Scene(n,e,{width:s,height:c});new h.Viewport(`PageViewer_${n}`,o,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0}).closeClip();const{pageElements:p,pageBackgroundFill:w}=r,u=(v=this._ObjectProvider)==null?void 0:v.convertToRenderObjects(p,t);return this._addBackgroundRect(o,w,i),o.addObjects(u),u==null||u.forEach(g=>{o.attachTransformerTo(g)}),o}_addBackgroundRect(n,e,r){const t=r.getPageSize(),{width:i=0,height:s=0}=t,c=new h.Rect("canvas",{left:0,top:0,width:i,height:s,strokeWidth:1,stroke:"rgba(198,198,198, 1)",fill:l.getColorStyle(e)||"rgba(255,255,255, 1)",zIndex:0,evented:!1});n.addObject(c,0)}};ne=Ee([je(0,L.Inject(L.Injector))],ne);class De{constructor(){_(this,"zIndex",6)}create(n){return n.createInstance(ne)}}A.add(new De);var Oe=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,Ve=(a,n,e,r)=>{for(var t=r>1?void 0:r?Ce(n,e):n,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(r?s(n,e,t):s(t))||t);return r&&t&&Oe(n,e,t),t},ce=(a,n)=>(e,r)=>n(e,r,a);let ie=class extends H{constructor(n,e){super();_(this,"zIndex",4);_(this,"viewKey",l.PageElementType.SPREADSHEET);this._localeService=n,this._contextService=e}check(n){if(n===this.viewKey)return this}convert(n,e){const{id:r,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,spreadsheet:j}=n;if(j==null)return;const{worksheet:V,styles:D}=j,{cellData:y}=V,P=new l.ObjectMatrix(y),T=new l.Styles(D),b=new h.SpreadsheetSkeleton(new l.Worksheet(r,V,T),V,P,T,this._localeService,this._contextService),{rowTotalHeight:C,columnTotalWidth:I,rowHeaderWidth:m,columnHeaderHeight:E}=b,x=I+V.rowHeader.width||0,F=C+V.columnHeader.height||0,W=new h.SceneViewer("spreadInSlideSceneViewer"+r,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:p,scaleY:w,skewX:u,skewY:v,flipX:g,flipY:f,forceRender:!0}),$=new h.Scene("spreadInSlideScene"+r,W,{width:x,height:F});this._updateViewport(r,m,E,$,e);const U=new h.Spreadsheet("testSheetViewer",b,!1),R=new h.SpreadsheetRowHeader("spreadInSlideRow",b),k=new h.SpreadsheetColumnHeader("spreadInSlideColumn",b),q=new h.Rect("spreadInSlideLeftTop",{zIndex:2,left:-1,top:-1,width:m,height:E,fill:h.getColor([248,249,250]),stroke:h.getColor([217,217,217]),strokeWidth:1});return U.zIndex=10,$.addObjects([U],1),$.addObjects([R,k,q],2),W}_updateViewport(n,e,r,t,i){if(i==null)return;const s=e*t.scaleX,c=r*t.scaleY,o=new h.Viewport("spreadInSlideViewMain"+n,t,{left:s,top:c,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0}),d=new h.Viewport("spreadInSlideViewTop"+n,t,{left:s,height:c,top:0,right:0,isRelativeX:!0,isWheelPreventDefaultX:!0}),p=new h.Viewport("spreadInSlideViewLeft"+n,t,{left:0,bottom:0,top:c,width:s,isRelativeY:!0,isWheelPreventDefaultX:!0});new h.Viewport("spreadInSlideViewLeftTop"+n,t,{left:0,top:0,width:s,height:c,isWheelPreventDefaultX:!0}),o.onScrollAfter$.subscribeEvent(w=>{const{scrollX:u,scrollY:v,viewportScrollX:g,viewportScrollY:f}=w;d.updateScroll({scrollX:u,viewportScrollX:g}),p.updateScroll({scrollY:v,viewportScrollY:f})}),t.attachControl(),new h.ScrollBar(o,{mainScene:i}),t.onMouseWheel$.subscribeEvent((w,u)=>{const v=w;if(v.ctrlKey){const g=Math.abs(v.deltaX);let f=g<40?.05:g<80?.02:.01;f*=v.deltaY>0?-1:1,t.scaleX<1&&(f/=2),t.scaleX+f>4?t.scale(4,4):t.scaleX+f<.1?t.scale(.1,.1):(t.scaleBy(f,f),v.preventDefault())}else o.onMouseWheel(v,u)})}};ie=Ve([ce(0,L.Inject(l.LocaleService)),ce(1,l.IContextService)],ie);class xe{constructor(){_(this,"zIndex",4)}create(n){return n.createInstance(ie)}}A.add(new xe);var Me=Object.defineProperty,Le=Object.getOwnPropertyDescriptor,Ue=(a,n,e,r)=>{for(var t=r>1?void 0:r?Le(n,e):n,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(r?s(n,e,t):s(t))||t);return r&&t&&Me(n,e,t),t},Xe=(a,n)=>(e,r)=>n(e,r,a);let B=class{constructor(a){_(this,"_adaptors",[]);this._injector=a,this._adaptorLoader()}convertToRenderObjects(a,n){const e=Object.keys(a),r=[];return e.forEach(t=>{const i=a[t],s=this._executor(i,n);s!=null&&r.push(s)}),r}_executor(a,n){var t;const{id:e,type:r}=a;for(const i of this._adaptors){const s=(t=i.check(r))==null?void 0:t.convert(a,n);if(s!=null)return s}}_adaptorLoader(){A.getData().sort(l.sortRules).forEach(a=>{this._adaptors.push(a.create(this._injector))})}};B=Ue([Xe(0,L.Inject(L.Injector))],B);var ze=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,Re=(a,n,e,r)=>{for(var t=r>1?void 0:r?$e(n,e):n,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(r?s(n,e,t):s(t))||t);return r&&t&&ze(n,e,t),t},se=(a,n)=>(e,r)=>n(e,r,a),oe=(a=>(a.COMPONENT="__slideRender__",a.SCENE="__mainScene__",a.VIEW="__mainView__",a))(oe||{});S.CanvasView=class extends l.RxDisposable{constructor(e,r,t){super();_(this,"_objectProvider",null);_(this,"_activePageId","");_(this,"activePageId$",new ee.Subject);_(this,"_refreshThumb",l.debounce(()=>{this.createThumbs()},300));this._univerInstanceService=e,this._injector=r,this._renderManagerService=t,this._initializeDependencies(this._injector),this._initialize()}_initialize(){this._renderManagerService.createRender$.pipe(ee.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SLIDE).pipe(ee.takeUntil(this.dispose$)).subscribe(e=>{this._create(e==null?void 0:e.getUnitId())}),this._univerInstanceService.getAllUnitsForType(l.UniverInstanceType.UNIVER_SLIDE).forEach(e=>{this._create(e.getUnitId())})}activePage(e){const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SLIDE);let t;if(e)t=r.getPage(e);else{const o=r.getPages(),d=r.getPageOrder();if(d==null||o==null)return;t=o[d[0]],e=t.id}const i=this._currentRender();if(t==null||i==null||i.mainComponent==null)return;const{id:s}=t,c=i.mainComponent;if(this._activePageId=e,this.activePageId$.next(e),c!=null&&c.hasPage(s)){c.changePage(s);return}this._createScene(s,t)}_scrollToCenter(){var d;const e=(d=this._currentRender())==null?void 0:d.scene,r=e==null?void 0:e.getViewport("__mainView__"),t=this._getCenterPositionViewPort(e);if(!r||!t)return;const{left:i,top:s}=t,{x:c,y:o}=r.transViewportScroll2ScrollValue(i,s);r.scrollTo({x:c,y:o})}_create(e){e==null||this._univerInstanceService.getUnit(e,l.UniverInstanceType.UNIVER_SLIDE)==null||this._renderManagerService.has(e)||this._addNewRender(e)}_currentRender(){const e=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SLIDE);return this._renderManagerService.getRenderById(e.getUnitId())}_addNewRender(e){const r=this._univerInstanceService.getUnit(e,l.UniverInstanceType.UNIVER_SLIDE);if(r==null)return;this._renderManagerService.createRender(e);const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{scene:i,engine:s}=t,c=s.onTransformChange$.subscribeEvent(()=>{this._scrollToCenter(),c==null||c.unsubscribe()});s.onTransformChange$.subscribeEvent(()=>{setTimeout(()=>{this.createThumbs()},300)}),i.resize(2400,1800);const o=new h.Viewport("__mainView__",i,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0});i.attachControl(),i.onMouseWheel$.subscribeEvent((p,w)=>{const u=p;if(u.ctrlKey){const v=Math.abs(u.deltaX);let g=v<40?.2:v<80?.4:.2;g*=u.deltaY>0?-1:1,i.scaleX<1&&(g/=2),i.scaleX+g>4?i.scale(4,4):i.scaleX+g<.1?i.scale(.1,.1):(u.deltaY>0,u.preventDefault())}else o.onMouseWheel(u,w)}),i.onFileLoaded$.subscribeEvent(()=>{this._refreshThumb()}),h.ScrollBar.attachTo(o),this._renderManagerService.setCurrent(e);const d=this._createSlide(i);t.mainComponent=d,t.components.set("__slideRender__",d),this._createSlidePages(r,d),s.runRenderLoop(()=>{i.render()})}_createSlide(e){const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SLIDE),{width:t,height:i}=e,s=r.getPageSize(),{width:c=100,height:o=100}=s,d=new h.Slide("__slideRender__",{left:(t-c)/2,top:(i-o)/2,width:c,height:o,zIndex:10});return d.enableNav(),d.enableSelectedClipElement(),e.addObject(d),d}_addBackgroundRect(e,r){const i=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SLIDE).getPageSize(),{width:s=0,height:c=0}=i,o=new h.Rect("canvas",{left:0,top:0,width:s,height:c,strokeWidth:1,stroke:"rgba(198,198,198, 1)",fill:l.getColorStyle(r)||"rgba(255,255,255, 1)",zIndex:0,evented:!1});e.addObject(o,0)}_getCenterPositionViewPort(e){if(!e)return{left:0,top:0};const{width:r,height:t}=e,i=e.getEngine(),s=(i==null?void 0:i.width)||0,c=(i==null?void 0:i.height)||0;return{left:(r-s)/2,top:(t-c)/2}}_thumbSceneRender(e,r){const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{engine:i}=t;if(i==null)return;const{width:s,height:c}=r,{width:o=s,height:d=c}=i,p=i.getCanvas().getContext();r.renderToThumb(p,e,o/s,d/c)}_createSlidePages(e,r){const t=e.getPages(),i=e.getPageOrder();if(!(!t||!i)&&i.length!==0){for(let s=0,c=i.length;s<c;s++){const o=i[s];this._createScene(o,t[o]),this._createThumb(o)}this._activePageId=i[0],r.activeFirstPage()}}createThumbs(){const r=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SLIDE).getPageOrder(),t=this._currentRender();if(!(!r||!t)&&r.length!==0)for(let i=0,s=r.length;i<s;i++){const c=r[i];this._thumbSceneRender(c,t.mainComponent)}}_createThumb(e){this._renderManagerService.createRender(e)}_createScene(e,r){const t=this._currentRender();if(!t||!this._objectProvider)return;const{scene:i,mainComponent:s}=t,c=s,{width:o,height:d}=c,p=new h.Scene(e,c,{width:o,height:d});new h.Viewport(`PageViewer_${e}`,p,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0}).closeClip();const{pageElements:u,pageBackgroundFill:v}=r,g=this._objectProvider.convertToRenderObjects(u,i);if(!g||!c)return;this._addBackgroundRect(p,v),p.addObjects(g),g.forEach(j=>{p.attachTransformerTo(j)});const f=p.getTransformer();return f==null||f.changeEnd$.subscribe(()=>{this._thumbSceneRender(this._activePageId,c)}),f==null||f.clearControl$.subscribe(()=>{this._thumbSceneRender(this._activePageId,c)}),c.addPage(p),p}_initializeDependencies(e){this._objectProvider=e.createInstance(B)}},S.CanvasView=Re([l.OnLifecycle(l.LifecycleStages.Ready,S.CanvasView),se(0,l.IUniverInstanceService),se(1,L.Inject(L.Injector)),se(2,h.IRenderManagerService)],S.CanvasView);var Ne=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor,We=(a,n,e,r)=>{for(var t=r>1?void 0:r?Ae(n,e):n,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(r?s(n,e,t):s(t))||t);return r&&t&&Ne(n,e,t),t},Ye=(a,n)=>(e,r)=>n(e,r,a);const He={},Fe="slides";S.UniverSlidesPlugin=(K=class extends l.Plugin{constructor(e={},r){super();_(this,"_config");_(this,"_canvasEngine",null);_(this,"_canvasView",null);this._injector=r,this._config=Object.assign(He,e),this._initializeDependencies(this._injector)}initialize(){this.initCanvasEngine()}getConfig(){return this._config}initCanvasEngine(){this._canvasEngine=this._injector.get(h.IRenderingEngine)}onRendered(){this.initialize()}getCanvasEngine(){return this._canvasEngine}getCanvasView(){return this._canvasView}_initializeDependencies(e){[[S.CanvasView]].forEach(t=>{e.add(t)})}},_(K,"pluginName",Fe),_(K,"type",l.UniverInstanceType.UNIVER_SLIDE),K),S.UniverSlidesPlugin=We([Ye(1,L.Inject(L.Injector))],S.UniverSlidesPlugin),S.SLIDE_KEY=oe,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/slides",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "DreamNum <developer@univer.ai>",
|
|
@@ -47,20 +47,20 @@
|
|
|
47
47
|
"lib"
|
|
48
48
|
],
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@wendellhu/redi": "0.15.
|
|
50
|
+
"@wendellhu/redi": "0.15.5",
|
|
51
51
|
"rxjs": ">=7.0.0",
|
|
52
|
-
"@univerjs/core": "0.
|
|
53
|
-
"@univerjs/engine-render": "0.
|
|
52
|
+
"@univerjs/core": "0.2.0",
|
|
53
|
+
"@univerjs/engine-render": "0.2.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@wendellhu/redi": "0.15.
|
|
56
|
+
"@wendellhu/redi": "0.15.5",
|
|
57
57
|
"rxjs": "^7.8.1",
|
|
58
|
-
"typescript": "^5.
|
|
59
|
-
"vite": "^5.3.
|
|
58
|
+
"typescript": "^5.5.3",
|
|
59
|
+
"vite": "^5.3.3",
|
|
60
60
|
"vitest": "^1.6.0",
|
|
61
|
-
"@univerjs/core": "0.
|
|
62
|
-
"@univerjs/
|
|
63
|
-
"@univerjs/
|
|
61
|
+
"@univerjs/core": "0.2.0",
|
|
62
|
+
"@univerjs/engine-render": "0.2.0",
|
|
63
|
+
"@univerjs/shared": "0.2.0"
|
|
64
64
|
},
|
|
65
65
|
"univerSpace": {
|
|
66
66
|
".": {
|