@univerjs/slides 0.1.12 → 0.1.13

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.
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1 @@
1
+ {}
@@ -15,4 +15,3 @@
15
15
  */
16
16
  export * from './slides-plugin';
17
17
  export * from './views/render';
18
- export { enUS, zhCN, ruRU } from './locale';
@@ -1,5 +1,5 @@
1
1
  import { IPageElement, PageElementType } from '@univerjs/core';
2
- import { Picture } from '@univerjs/engine-render';
2
+ import { Image } from '@univerjs/engine-render';
3
3
  import { Injector } from '@wendellhu/redi';
4
4
  import { ObjectAdaptor } from '../adaptor';
5
5
 
@@ -7,7 +7,7 @@ export declare class ImageAdaptor extends ObjectAdaptor {
7
7
  zIndex: number;
8
8
  viewKey: PageElementType;
9
9
  check(type: PageElementType): this | undefined;
10
- convert(pageElement: IPageElement): Picture;
10
+ convert(pageElement: IPageElement): Image;
11
11
  }
12
12
  export declare class ImageAdaptorFactory {
13
13
  readonly zIndex = 4;
@@ -21,7 +21,6 @@ export declare class ShapeAdaptor extends ObjectAdaptor {
21
21
  skewY: number | undefined;
22
22
  flipX: boolean | undefined;
23
23
  flipY: boolean | undefined;
24
- isTransformer: true;
25
24
  forceRender: true;
26
25
  }> | undefined;
27
26
  }
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(w,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):(w=typeof globalThis<"u"?globalThis:w||self,l(w.UniverSlides={},w.UniverCore,w.UniverEngineRender,w["@wendellhu/redi"],w.rxjs))})(this,function(w,l,h,C,ce){"use strict";var Je=Object.defineProperty;var Qe=(w,l,h)=>l in w?Je(w,l,{enumerable:!0,configurable:!0,writable:!0,value:h}):w[l]=h;var f=(w,l,h)=>(Qe(w,typeof l!="symbol"?l+"":l,h),h);var K;const ue={},oe={},pe={};class F{constructor(){f(this,"zIndex",0);f(this,"viewKey",null)}check(n){if(n===this.viewKey)return this}create(n){}}const $=l.Registry.create();var ge=Object.defineProperty,_e=Object.getOwnPropertyDescriptor,fe=(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&&ge(n,e,t),t},ve=(a,n)=>(e,r)=>n(e,r,a);let ee=class extends F{constructor(n){super();f(this,"zIndex",5);f(this,"viewKey",l.PageElementType.DOCUMENT);f(this,"_liquid",new h.Liquid);this._localeService=n}check(n){if(n===this.viewKey)return this}convert(n,e){var q,de;const{id:r,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,title:V,description:x,document:O}=n;if(O==null)return;const y=new l.DocumentDataModel(O),T=new h.DocumentViewModel(y),b=h.DocumentSkeleton.create(T,this._localeService),P=new h.Documents("__DocsRender__",b);b.calculate();const D=new h.SceneViewer("__DocsViewer__"+r,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,isTransformer:!0}),I=new h.Scene("__DocsScene__"+r,D),m=new h.Viewport("__DocsViewPort_"+r,I,{left:0,top:0,bottom:0,right:0,isWheelPreventDefaultX:!0});I.attachControl(),I.on(h.EVENT_TYPE.wheel,(X,H)=>{const j=X;if(j.ctrlKey){const A=Math.abs(j.deltaX);let M=A<40?.2:A<80?.4:.2;M*=j.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):(j.deltaY>0,j.preventDefault())}else m.onMouseWheel(j,H)}),new h.ScrollBar(m,{mainScene:e}),I.addObject(P);const E=b.getActualSize();P.resize(E.actualWidth,E.actualHeight),I.resize(E.actualWidth,E.actualHeight+200);const L=(q=P.getSkeleton())==null?void 0:q.getPageSize();P.onPageRenderObservable.add(X=>{const{page:H,pageLeft:j,pageTop:A,ctx:M}=X,{width:G,height:Z,marginBottom:ae,marginLeft:N,marginRight:J,marginTop:Q}=H;M.save(),M.translate(j-.5,A-.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:R,top:Y}=P,z=b.getSkeletonData();if(z==null)return;const{pages:U}=z,W=[],k=new Map;this._recalculateSizeBySkeleton(P,I,b);for(let X=0,H=U.length;X<H;X++){const j=U[X],{skeDrawings:A,marginLeft:M,marginTop:G,pageWidth:Z,pageHeight:ae}=j;this._liquid.translatePagePadding(j),A.forEach(N=>{const{aLeft:J,aTop:Q,height:qe,width:Ge,drawingOrigin:et}=N,Ze=new h.Picture(N.objectId,{left:J+R+this._liquid.x,top:Q+Y+this._liquid.y,width:Ge,height:qe,zIndex:11,isTransformer:!0});k.set(N.objectId,{marginLeft:this._liquid.x,marginTop:this._liquid.y}),W.push(Ze)}),this._liquid.translatePage(j,P.pageLayoutType,P.pageMarginLeft,P.pageMarginTop)}return I.openTransformer(),I.addObjects(W),(de=I.getTransformer())==null||de.onChangingObservable.add(X=>{const{objects:H}=X;H.forEach(j=>{const{oKey:A,left:M,top:G,height:Z,width:ae}=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:M-R-J,top:G-Y-Q,height:Z,width:ae})}),b==null||b.calculate()}),I.closeTransformer(),this._calculatePagePosition(P,I,m),D}_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 u=t[o],{pageWidth:g,pageHeight:v}=u;n.pageLayoutType===h.PageLayoutType.VERTICAL?(s+=v,s+=n.pageMarginTop,o===d-1&&(s+=n.pageMarginTop),i=Math.max(i,g)):n.pageLayoutType===h.PageLayoutType.HORIZONTAL&&(i+=g,o!==d-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:c,pageMarginLeft:o,pageMarginTop:d}=n;if(i==null||s===Number.POSITIVE_INFINITY||c===Number.POSITIVE_INFINITY)return;const{width:u,height:g}=i;let v=0,p=0,S=0,_=0,V=Number.POSITIVE_INFINITY;if(u>(s+o*2)*t?(v=u/2-s*t/2,v/=t,S=(u-o*2)/t,V=0):(v=o,S=s+o*2,V=(S-u/t)/2),g>c?(p=g/2-c/2,_=(g-d*2)/t):(p=d,_=c+d*2),e.resize(S,_+200),n.translate(v,p),V!==Number.POSITIVE_INFINITY&&r!=null){const x=r.getBarScroll(V,0).x;r.scrollTo({x})}return this}};ee=fe([ve(0,C.Inject(l.LocaleService))],ee);class we{constructor(){f(this,"zIndex",5)}create(n){return n.createInstance(ee)}}$.add(new we);class Se extends F{constructor(){super(...arguments);f(this,"zIndex",1);f(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:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,title:V,description:x,image:O={}}=e,{imageProperties:y,placeholder:T,link:b}=O,P=(y==null?void 0:y.contentUrl)||"";return new h.Picture(r,{url:P,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,isTransformer:!0,forceRender:!0})}}class Ie{constructor(){f(this,"zIndex",4)}create(n){return n.createInstance(Se)}}$.add(new Ie);var Te=Object.defineProperty,Pe=Object.getOwnPropertyDescriptor,be=(a,n,e,r)=>{for(var t=r>1?void 0:r?Pe(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&&Te(n,e,t),t},me=(a,n)=>(e,r)=>n(e,r,a);let te=class extends F{constructor(n){super();f(this,"zIndex",2);f(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:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,title:V,description:x,richText:O={}}=n,{text:y,ff:T,fs:b,it:P,bl:D,ul:I,st:m,ol:E,bg:L,bd:R,cl:Y,rich:z}=O;let U={top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,isTransformer:!0,forceRender:!0},W=!1;if(y!=null?(U={...U,text:y,ff:T,fs:b,it:P,bl:D,ul:I,st:m,ol:E,bg:L,bd:R,cl:Y},W=!0):z!=null&&(U={...U,richText:z},W=!0),W!==!1)return new h.RichText(this._localeService,r,U)}};te=be([me(0,C.Inject(l.LocaleService))],te);class ye{constructor(){f(this,"zIndex",0)}create(n){return n.createInstance(te)}}$.add(new ye);class Ee extends F{constructor(){super(...arguments);f(this,"zIndex",2);f(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:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,title:V,description:x}=e,{shapeType:O,text:y,shapeProperties:T,placeholder:b,link:P}=e.shape||{},D=T==null?"":l.getColorStyle(T.shapeBackgroundFill)||"rgba(255,255,255,1)",I=T==null?void 0:T.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 h.Rect(r,{fill:D,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,isTransformer:!0,forceRender:!0,...m});if(O===l.ShapeType.ROUND_RECTANGLE){const E=(T==null?void 0:T.radius)||0;return new h.Rect(r,{fill:D,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,isTransformer:!0,forceRender:!0,radius:E,...m})}}}class Oe{constructor(){f(this,"zIndex",2)}create(n){return n.createInstance(Ee)}}$.add(new Oe);var je=Object.defineProperty,De=Object.getOwnPropertyDescriptor,Ce=(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&&je(n,e,t),t},Ve=(a,n)=>(e,r)=>n(e,r,a);let re=class extends F{constructor(n){super();f(this,"zIndex",6);f(this,"viewKey",l.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:c,height:o,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,title:V,description:x,slide:O}=n;if(O==null)return;const y=new l.SlideDataModel(O),T=new h.Slide("__SLIDERender__"+r,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,isTransformer:!1,forceRender:!0});T.enableNav(),T.enableSelectedClipElement();const b=y.getPageOrder(),P=y.getPages();if(!b||!P)return T;this._ObjectProvider=new B(this._injector);for(let D=0,I=b.length;D<I;D++){const m=P[b[D]],{id:E}=m;T.addPage(this._createScene(E,T,m,e,y))}return T.activeFirstPage(),T}_createScene(n,e,r,t,i){var p;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}).closeClip();const{pageElements:u,pageBackgroundFill:g}=r,v=(p=this._ObjectProvider)==null?void 0:p.convertToRenderObjects(u,t);return o.openTransformer(),this._addBackgroundRect(o,g,i),o.addObjects(v),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)}};re=Ce([Ve(0,C.Inject(C.Injector))],re);class xe{constructor(){f(this,"zIndex",6)}create(n){return n.createInstance(re)}}$.add(new xe);var Le=Object.defineProperty,Me=Object.getOwnPropertyDescriptor,Ue=(a,n,e,r)=>{for(var t=r>1?void 0:r?Me(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&&Le(n,e,t),t},le=(a,n)=>(e,r)=>n(e,r,a);let ne=class extends F{constructor(n,e){super();f(this,"zIndex",4);f(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:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,spreadsheet:V}=n;if(V==null)return;const{worksheet:x,styles:O}=V,{cellData:y}=x,T=new l.ObjectMatrix(y),b=new l.Styles(O),P=new h.SpreadsheetSkeleton(new l.Worksheet(r,x,b),x,T,b,this._localeService,this._contextService),{rowTotalHeight:D,columnTotalWidth:I,rowHeaderWidth:m,columnHeaderHeight:E}=P,L=I+x.rowHeader.width||0,R=D+x.columnHeader.height||0,Y=new h.SceneViewer("spreadInSlideSceneViewer"+r,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:g,skewX:v,skewY:p,flipX:S,flipY:_,isTransformer:!0,forceRender:!0}),z=new h.Scene("spreadInSlideScene"+r,Y,{width:L,height:R});this._updateViewport(r,m,E,z,e);const U=new h.Spreadsheet("testSheetViewer",P,!1),W=new h.SpreadsheetRowHeader("spreadInSlideRow",P),k=new h.SpreadsheetColumnHeader("spreadInSlideColumn",P),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,z.addObjects([U],1),z.addObjects([W,k,q],2),Y}_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,isWheelPreventDefaultX:!0}),d=new h.Viewport("spreadInSlideViewTop"+n,t,{left:s,height:c,top:0,right:0,isWheelPreventDefaultX:!0}),u=new h.Viewport("spreadInSlideViewLeft"+n,t,{left:0,bottom:0,top:c,width:s,isWheelPreventDefaultX:!0});new h.Viewport("spreadInSlideViewLeftTop"+n,t,{left:0,top:0,width:s,height:c,isWheelPreventDefaultX:!0}),o.onScrollAfterObserver.add(g=>{const{scrollX:v,scrollY:p,actualScrollX:S,actualScrollY:_}=g;d.updateScroll({scrollX:v,actualScrollX:S}),u.updateScroll({scrollY:p,actualScrollY:_})}),t.attachControl(),new h.ScrollBar(o,{mainScene:i}),t.on(h.EVENT_TYPE.wheel,(g,v)=>{const p=g;if(p.ctrlKey){const S=Math.abs(p.deltaX);let _=S<40?.05:S<80?.02:.01;_*=p.deltaY>0?-1:1,t.scaleX<1&&(_/=2),t.scaleX+_>4?t.scale(4,4):t.scaleX+_<.1?t.scale(.1,.1):(t.scaleBy(_,_),p.preventDefault())}else o.onMouseWheel(p,v)})}};ne=Ue([le(0,C.Inject(l.LocaleService)),le(1,l.IContextService)],ne);class Ne{constructor(){f(this,"zIndex",4)}create(n){return n.createInstance(ne)}}$.add(new Ne);var ze=Object.defineProperty,Xe=Object.getOwnPropertyDescriptor,Ae=(a,n,e,r)=>{for(var t=r>1?void 0:r?Xe(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},We=(a,n)=>(e,r)=>n(e,r,a);let B=class{constructor(a){f(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(){$.getData().sort(l.sortRules).forEach(a=>{this._adaptors.push(a.create(this._injector))})}};B=Ae([We(0,C.Inject(C.Injector))],B);var $e=Object.defineProperty,Ye=Object.getOwnPropertyDescriptor,He=(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&&$e(n,e,t),t},ie=(a,n)=>(e,r)=>n(e,r,a),he=(a=>(a.COMPONENT="__slideRender__",a.SCENE="__mainScene__",a.VIEW="__mainView__",a))(he||{});w.CanvasView=class extends l.RxDisposable{constructor(e,r,t){super();f(this,"_objectProvider",null);f(this,"_activePageId","");f(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(),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,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.getBarScroll(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;s.onTransformChangeObservable.addOnce(()=>{this._scrollToCenter()}),s.onTransformChangeObservable.add(()=>{setTimeout(()=>{this.createThumbs()},300)}),i.resize(2400,1800);const c=new h.Viewport("__mainView__",i,{left:0,top:0,bottom:0,right:0,isWheelPreventDefaultX:!0});i.attachControl(),i.on(h.EVENT_TYPE.wheel,(d,u)=>{const g=d;if(g.ctrlKey){const v=Math.abs(g.deltaX);let p=v<40?.2:v<80?.4:.2;p*=g.deltaY>0?-1:1,i.scaleX<1&&(p/=2),i.scaleX+p>4?i.scale(4,4):i.scaleX+p<.1?i.scale(.1,.1):(g.deltaY>0,g.preventDefault())}else c.onMouseWheel(g,u)}),i.onFileLoadedObservable.add(()=>{this._refreshThumb()}),h.ScrollBar.attachTo(c),this._renderManagerService.setCurrent(e);const o=this._createSlide(i);t.mainComponent=o,t.components.set("__slideRender__",o),this._createSlidePages(r,o),s.runRenderLoop(()=>{i.render();const d=document.getElementById("app");d&&(d.innerText=`fps:${Math.round(s.getFps()).toString()}`)})}_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,u=i.getCanvas().getContext();r.renderToThumb(u,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,u=new h.Scene(e,c,{width:o,height:d});new h.Viewport(`PageViewer_${e}`,u,{left:0,top:0,bottom:0,right:0}).closeClip();const{pageElements:v,pageBackgroundFill:p}=r,S=this._objectProvider.convertToRenderObjects(v,i);if(!S||!c)return;u.openTransformer(),this._addBackgroundRect(u,p),u.addObjects(S);const _=u.getTransformer();return _==null||_.onChangeEndObservable.add(()=>{this._thumbSceneRender(this._activePageId,c)}),_==null||_.onClearControlObservable.add(()=>{this._thumbSceneRender(this._activePageId,c)}),c.addPage(u),u}_initializeDependencies(e){this._objectProvider=e.createInstance(B)}},w.CanvasView=He([l.OnLifecycle(l.LifecycleStages.Ready,w.CanvasView),ie(0,l.IUniverInstanceService),ie(1,C.Inject(C.Injector)),ie(2,h.IRenderManagerService)],w.CanvasView);var Fe=Object.defineProperty,Re=Object.getOwnPropertyDescriptor,Be=(a,n,e,r)=>{for(var t=r>1?void 0:r?Re(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},se=(a,n)=>(e,r)=>n(e,r,a);const Ke={},ke="slides";w.UniverSlidesPlugin=(K=class extends l.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(Ke,e),this._initializeDependencies(this._injector)}initialize(){this._localeService.load({zhCN:oe}),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){[[w.CanvasView]].forEach(t=>{e.add(t)})}},f(K,"pluginName",ke),f(K,"type",l.UniverInstanceType.UNIVER_SLIDE),K),w.UniverSlidesPlugin=Be([se(1,l.IUniverInstanceService),se(2,C.Inject(l.LocaleService)),se(3,C.Inject(C.Injector))],w.UniverSlidesPlugin),w.SLIDE_KEY=he,w.enUS=ue,w.ruRU=pe,w.zhCN=oe,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});
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),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.getBarScroll(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:_,actualScrollX:g,actualScrollY:v}=w;d.updateScroll({scrollX:p,actualScrollX:g}),u.updateScroll({scrollY:_,actualScrollY: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.getBarScroll(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"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/slides",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -28,6 +28,7 @@
28
28
  "require": "./lib/cjs/*",
29
29
  "types": "./lib/types/index.d.ts"
30
30
  },
31
+ "./locale/*": "./lib/locale/*.json",
31
32
  "./lib/*": "./lib/*"
32
33
  },
33
34
  "main": "./lib/cjs/index.js",
@@ -49,18 +50,18 @@
49
50
  "peerDependencies": {
50
51
  "@wendellhu/redi": "0.15.2",
51
52
  "rxjs": ">=7.0.0",
52
- "@univerjs/core": "0.1.12",
53
- "@univerjs/engine-render": "0.1.12"
53
+ "@univerjs/engine-render": "0.1.13",
54
+ "@univerjs/core": "0.1.13"
54
55
  },
55
56
  "devDependencies": {
56
57
  "@wendellhu/redi": "0.15.2",
57
58
  "rxjs": "^7.8.1",
58
59
  "typescript": "^5.4.5",
59
- "vite": "^5.2.11",
60
+ "vite": "^5.2.12",
60
61
  "vitest": "^1.6.0",
61
- "@univerjs/core": "0.1.12",
62
- "@univerjs/engine-render": "0.1.12",
63
- "@univerjs/shared": "0.1.12"
62
+ "@univerjs/engine-render": "0.1.13",
63
+ "@univerjs/shared": "0.1.13",
64
+ "@univerjs/core": "0.1.13"
64
65
  },
65
66
  "scripts": {
66
67
  "test": "vitest run",
@@ -1,18 +0,0 @@
1
- /**
2
- * Copyright 2023-present DreamNum Inc.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- export { default as enUS } from './en-US';
17
- export { default as zhCN } from './zh-CN';
18
- export { default as ruRU } from './ru-RU';