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