@univerjs/slides 0.2.5 → 0.2.7
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 +748 -691
- package/lib/types/slides-plugin.d.ts +4 -5
- package/lib/types/views/render/adaptor.d.ts +3 -3
- package/lib/types/views/render/adaptors/rich-text-adaptor.d.ts +1 -1
- package/lib/types/views/render/canvas-view.d.ts +20 -9
- package/lib/types/views/render/object-provider.d.ts +1 -0
- package/lib/umd/index.js +1 -1
- package/package.json +11 -13
- package/lib/locale/en-US.json +0 -1
- package/lib/locale/ru-RU.json +0 -1
- package/lib/locale/vi-VN.json +0 -1
- package/lib/locale/zh-CN.json +0 -1
- package/lib/locale/zh-TW.json +0 -1
- package/lib/types/locale/en-US.d.ts +0 -4
- package/lib/types/locale/ru-RU.d.ts +0 -4
- package/lib/types/locale/vi-VN.d.ts +0 -4
- package/lib/types/locale/zh-CN.d.ts +0 -17
- package/lib/types/locale/zh-TW.d.ts +0 -4
- package/lib/types/model/info-bar-model.d.ts +0 -21
- package/lib/types/model/toolbar-model.d.ts +0 -15
package/lib/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var he=Object.defineProperty;var ge=(a,r,e)=>r in a?he(a,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[r]=e;var _=(a,r,e)=>ge(a,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@univerjs/core"),h=require("@univerjs/engine-render"),Q=require("rxjs");class Y{constructor(){_(this,"zIndex",0);_(this,"viewKey",null)}check(r){if(r===this.viewKey)return this}create(r){}}const A=l.Registry.create();var ue=Object.defineProperty,pe=Object.getOwnPropertyDescriptor,_e=(a,r,e,n)=>{for(var t=n>1?void 0:n?pe(r,e):r,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(n?s(r,e,t):s(t))||t);return n&&t&&ue(r,e,t),t},ve=(a,r)=>(e,n)=>r(e,n,a);let te=class extends Y{constructor(r){super();_(this,"zIndex",5);_(this,"viewKey",l.PageElementType.DOCUMENT);_(this,"_liquid",new h.Liquid);this._localeService=r}check(r){if(r===this.viewKey)return this}convert(r,e){var F,se;const{id:n,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,title:R,description:j,document:E}=r;if(E==null)return;const m=new l.DocumentDataModel(E),I=new h.DocumentViewModel(m),b=h.DocumentSkeleton.create(I,this._localeService),P=new h.Documents("__DocsRender__",b);b.calculate();const O=new h.SceneViewer("__DocsViewer__"+n,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f}),S=new h.Scene("__DocsScene__"+n,O),T=new h.Viewport("__DocsViewPort_"+n,S,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0});S.attachControl(),S.onMouseWheel$.subscribeEvent((M,N)=>{const D=M;if(D.ctrlKey){const z=Math.abs(D.deltaX);let V=z<40?.2:z<80?.4:.2;V*=D.deltaY>0?-1:1,S.scaleX<1&&(V/=2),S.scaleX+V>4?S.scale(4,4):S.scaleX+V<.1?S.scale(.1,.1):(D.deltaY>0,D.preventDefault())}else T.onMouseWheel(D,N)}),new h.ScrollBar(T,{mainScene:e}),S.addObject(P);const y=b.getActualSize();P.resize(y.actualWidth,y.actualHeight),S.resize(y.actualWidth,y.actualHeight+200);const x=(F=P.getSkeleton())==null?void 0:F.getPageSize();P.pageRender$.subscribe(M=>{const{page:N,pageLeft:D,pageTop:z,ctx:V}=M,{width:B,height:K,marginBottom:J,marginLeft:L,marginRight:k,marginTop:q}=N;V.save(),V.translate(D-.5,z-.5),h.Rect.drawWith(V,{width:(x==null?void 0:x.width)||B,height:(x==null?void 0:x.height)||K,strokeWidth:1,stroke:"rgba(198,198,198, 1)",fill:"rgba(255,255,255, 1)",zIndex:3}),V.restore()});const{left:W,top:$}=P,X=b.getSkeletonData();if(X==null)return;const{pages:C}=X,U=[],H=new Map;this._recalculateSizeBySkeleton(P,S,b);for(let M=0,N=C.length;M<N;M++){const D=C[M],{skeDrawings:z,marginLeft:V,marginTop:B,pageWidth:K,pageHeight:J}=D;this._liquid.translatePagePadding(D),z.forEach(L=>{const{aLeft:k,aTop:q,height:oe,width:le,drawingOrigin:qe}=L,de=new h.Image(L.drawingId,{left:k+W+this._liquid.x,top:q+$+this._liquid.y,width:le,height:oe,zIndex:11});H.set(L.drawingId,{marginLeft:this._liquid.x,marginTop:this._liquid.y}),U.push(de)}),this._liquid.translatePage(D,P.pageLayoutType,P.pageMarginLeft,P.pageMarginTop)}return S.addObjects(U),U.forEach(M=>{S.attachTransformerTo(M)}),(se=S.getTransformer())==null||se.changing$.subscribe(M=>{const{objects:N}=M;N.forEach(D=>{const{oKey:z,left:V,top:B,height:K,width:J}=D,L=H.get(z),k=(L==null?void 0:L.marginLeft)||0,q=(L==null?void 0:L.marginTop)||0;b==null||b.getViewModel().getDataModel().updateDrawing(z,{left:V-W-k,top:B-$-q,height:K,width:J})}),b==null||b.calculate()}),this._calculatePagePosition(P,S,T),O}_recalculateSizeBySkeleton(r,e,n){var c;const t=(c=n.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:w,pageHeight:g}=u;r.pageLayoutType===h.PageLayoutType.VERTICAL?(s+=g,s+=r.pageMarginTop,o===d-1&&(s+=r.pageMarginTop),i=Math.max(i,w)):r.pageLayoutType===h.PageLayoutType.HORIZONTAL&&(i+=w,o!==d-1&&(i+=r.pageMarginLeft),s=Math.max(s,g))}r.resize(i,s),e.resize(i,s)}_calculatePagePosition(r,e,n,t=1){const i=e==null?void 0:e.getParent(),{width:s,height:c,pageMarginLeft:o,pageMarginTop:d}=r;if(i==null||s===Number.POSITIVE_INFINITY||c===Number.POSITIVE_INFINITY)return;const{width:u,height:w}=i;let g=0,v=0,p=0,f=0,R=Number.POSITIVE_INFINITY;if(u>(s+o*2)*t?(g=u/2-s*t/2,g/=t,p=(u-o*2)/t,R=0):(g=o,p=s+o*2,R=(p-u/t)/2),w>c?(v=w/2-c/2,f=(w-d*2)/t):(v=d,f=c+d*2),e.resize(p,f+200),r.translate(g,v),R!==Number.POSITIVE_INFINITY&&n!=null){const j=n.transScroll2ViewportScrollValue(R,0).x;n.scrollToBarPos({x:j})}return this}};te=_e([ve(0,l.Inject(l.LocaleService))],te);class fe{constructor(){_(this,"zIndex",5)}create(r){return r.createInstance(te)}}A.add(new fe);class we extends Y{constructor(){super(...arguments);_(this,"zIndex",1);_(this,"viewKey",l.PageElementType.IMAGE)}check(e){if(e===this.viewKey)return this}convert(e){const{id:n,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,title:R,description:j,image:E={}}=e,{imageProperties:m,placeholder:I,link:b}=E,P=(m==null?void 0:m.contentUrl)||"";return new h.Image(n,{url:P,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,forceRender:!0})}}class Se{constructor(){_(this,"zIndex",4)}create(r){return r.createInstance(we)}}A.add(new Se);var Ie=Object.defineProperty,Pe=Object.getOwnPropertyDescriptor,be=(a,r,e,n)=>{for(var t=n>1?void 0:n?Pe(r,e):r,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(n?s(r,e,t):s(t))||t);return n&&t&&Ie(r,e,t),t},Te=(a,r)=>(e,n)=>r(e,n,a);let re=class extends Y{constructor(r){super();_(this,"zIndex",2);_(this,"viewKey",l.PageElementType.TEXT);this._localeService=r}check(r){if(r===this.viewKey)return this}convert(r,e){const{id:n,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,title:R,description:j,richText:E={}}=r,{text:m,ff:I,fs:b,it:P,bl:O,ul:S,st:T,ol:y,bg:x,bd:W,cl:$,rich:X}=E;let C={top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,forceRender:!0},U=!1;if(m!=null?(C={...C,text:m,ff:I,fs:b,it:P,bl:O,ul:S,st:T,ol:y,bg:x,bd:W,cl:$},U=!0):X!=null&&(C={...C,richText:X},U=!0),U!==!1)return new h.RichText(this._localeService,n,C)}};re=be([Te(0,l.Inject(l.LocaleService))],re);class me{constructor(){_(this,"zIndex",0)}create(r){return r.createInstance(re)}}A.add(new me);class ye extends Y{constructor(){super(...arguments);_(this,"zIndex",2);_(this,"viewKey",l.PageElementType.SHAPE)}check(e){if(e===this.viewKey)return this}convert(e){const{id:n,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,title:R,description:j}=e,{shapeType:E,text:m,shapeProperties:I,placeholder:b,link:P}=e.shape||{},O=I==null?"":l.getColorStyle(I.shapeBackgroundFill)||"rgba(255,255,255,1)",S=I==null?void 0:I.outline,T={};if(S){const{outlineFill:y,weight:x}=S;T.strokeWidth=x,T.stroke=l.getColorStyle(y)||"rgba(0,0,0,1)"}if(E===l.BasicShapes.Rect)return new h.Rect(n,{fill:O,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,forceRender:!0,...T});if(E===l.BasicShapes.RoundRect){const y=(I==null?void 0:I.radius)||0;return new h.Rect(n,{fill:O,top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,forceRender:!0,radius:y,...T})}}}class Re{constructor(){_(this,"zIndex",2)}create(r){return r.createInstance(ye)}}A.add(new Re);var Ee=Object.defineProperty,De=Object.getOwnPropertyDescriptor,Oe=(a,r,e,n)=>{for(var t=n>1?void 0:n?De(r,e):r,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(n?s(r,e,t):s(t))||t);return n&&t&&Ee(r,e,t),t},je=(a,r)=>(e,n)=>r(e,n,a);let ne=class extends Y{constructor(r){super();_(this,"zIndex",6);_(this,"viewKey",l.PageElementType.SLIDE);_(this,"_ObjectProvider",null);this._injector=r}check(r){if(r===this.viewKey)return this}convert(r,e){const{id:n,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,title:R,description:j,slide:E}=r;if(E==null)return;const m=new l.SlideDataModel(E),I=new h.Slide("__SLIDERender__"+n,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,forceRender:!0});I.enableNav(),I.enableSelectedClipElement();const b=m.getPageOrder(),P=m.getPages();if(!b||!P)return I;this._ObjectProvider=new Z(this._injector);for(let O=0,S=b.length;O<S;O++){const T=P[b[O]],{id:y}=T;I.addPage(this._createScene(y,I,T,e,m))}return I.activeFirstPage(),I}_createScene(r,e,n,t,i){var v;const{width:s,height:c}=e,o=new h.Scene(r,e,{width:s,height:c});new h.Viewport(`PageViewer_${r}`,o,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0}).closeClip();const{pageElements:u,pageBackgroundFill:w}=n,g=(v=this._ObjectProvider)==null?void 0:v.convertToRenderObjects(u,t);return this._addBackgroundRect(o,w,i),o.addObjects(g),g==null||g.forEach(p=>{o.attachTransformerTo(p)}),o}_addBackgroundRect(r,e,n){const t=n.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});r.addObject(c,0)}};ne=Oe([je(0,l.Inject(l.Injector))],ne);class xe{constructor(){_(this,"zIndex",6)}create(r){return r.createInstance(ne)}}A.add(new xe);var Ve=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,Me=(a,r,e,n)=>{for(var t=n>1?void 0:n?Ce(r,e):r,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(n?s(r,e,t):s(t))||t);return n&&t&&Ve(r,e,t),t},ae=(a,r)=>(e,n)=>r(e,n,a);let ie=class extends Y{constructor(r,e){super();_(this,"zIndex",4);_(this,"viewKey",l.PageElementType.SPREADSHEET);this._localeService=r,this._contextService=e}check(r){if(r===this.viewKey)return this}convert(r,e){const{id:n,zIndex:t,left:i=0,top:s=0,width:c,height:o,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,spreadsheet:R}=r;if(R==null)return;const{worksheet:j,styles:E}=R,{cellData:m}=j,I=new l.ObjectMatrix(m),b=new l.Styles(E),P=new h.SpreadsheetSkeleton(new l.Worksheet(n,j,b),j,I,b,this._localeService,this._contextService),{rowTotalHeight:O,columnTotalWidth:S,rowHeaderWidth:T,columnHeaderHeight:y}=P,x=S+j.rowHeader.width||0,W=O+j.columnHeader.height||0,$=new h.SceneViewer("spreadInSlideSceneViewer"+n,{top:s,left:i,width:c,height:o,zIndex:t,angle:d,scaleX:u,scaleY:w,skewX:g,skewY:v,flipX:p,flipY:f,forceRender:!0}),X=new h.Scene("spreadInSlideScene"+n,$,{width:x,height:W});this._updateViewport(n,T,y,X,e);const C=new h.Spreadsheet("testSheetViewer",P,!1),U=new h.SpreadsheetRowHeader("spreadInSlideRow",P),H=new h.SpreadsheetColumnHeader("spreadInSlideColumn",P),F=new h.Rect("spreadInSlideLeftTop",{zIndex:2,left:-1,top:-1,width:T,height:y,fill:h.getColor([248,249,250]),stroke:h.getColor([217,217,217]),strokeWidth:1});return C.zIndex=10,X.addObjects([C],1),X.addObjects([U,H,F],2),$}_updateViewport(r,e,n,t,i){if(i==null)return;const s=e*t.scaleX,c=n*t.scaleY,o=new h.Viewport("spreadInSlideViewMain"+r,t,{left:s,top:c,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0}),d=new h.Viewport("spreadInSlideViewTop"+r,t,{left:s,height:c,top:0,right:0,isRelativeX:!0,isWheelPreventDefaultX:!0}),u=new h.Viewport("spreadInSlideViewLeft"+r,t,{left:0,bottom:0,top:c,width:s,isRelativeY:!0,isWheelPreventDefaultX:!0});new h.Viewport("spreadInSlideViewLeftTop"+r,t,{left:0,top:0,width:s,height:c,isWheelPreventDefaultX:!0}),o.onScrollAfter$.subscribeEvent(w=>{const{scrollX:g,scrollY:v,viewportScrollX:p,viewportScrollY:f}=w;d.updateScrollVal({scrollX:g,viewportScrollX:p}),u.updateScrollVal({scrollY:v,viewportScrollY:f})}),t.attachControl(),new h.ScrollBar(o,{mainScene:i}),t.onMouseWheel$.subscribeEvent((w,g)=>{const v=w;if(v.ctrlKey){const p=Math.abs(v.deltaX);let f=p<40?.05:p<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,g)})}};ie=Me([ae(0,l.Inject(l.LocaleService)),ae(1,l.IContextService)],ie);class Le{constructor(){_(this,"zIndex",4)}create(r){return r.createInstance(ie)}}A.add(new Le);var Xe=Object.defineProperty,Ue=Object.getOwnPropertyDescriptor,ze=(a,r,e,n)=>{for(var t=n>1?void 0:n?Ue(r,e):r,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(n?s(r,e,t):s(t))||t);return n&&t&&Xe(r,e,t),t},$e=(a,r)=>(e,n)=>r(e,n,a);let Z=class{constructor(a){_(this,"_adaptors",[]);this._injector=a,this._adaptorLoader()}convertToRenderObjects(a,r){const e=Object.keys(a),n=[];return e.forEach(t=>{const i=a[t],s=this._executor(i,r);s!=null&&n.push(s)}),n}_executor(a,r){var t;const{id:e,type:n}=a;for(const i of this._adaptors){const s=(t=i.check(n))==null?void 0:t.convert(a,r);if(s!=null)return s}}_adaptorLoader(){A.getData().sort(l.sortRules).forEach(a=>{this._adaptors.push(a.create(this._injector))})}};Z=ze([$e(0,l.Inject(l.Injector))],Z);var Ne=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor,We=(a,r,e,n)=>{for(var t=n>1?void 0:n?Ae(r,e):r,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(n?s(r,e,t):s(t))||t);return n&&t&&Ne(r,e,t),t},ee=(a,r)=>(e,n)=>r(e,n,a),ce=(a=>(a.COMPONENT="__slideRender__",a.SCENE="__mainScene__",a.VIEW="__mainView__",a))(ce||{});exports.CanvasView=class extends l.RxDisposable{constructor(e,n,t){super();_(this,"_objectProvider",null);_(this,"_activePageId","");_(this,"activePageId$",new Q.Subject);_(this,"_refreshThumb",l.debounce(()=>{this.createThumbs()},300));this._univerInstanceService=e,this._injector=n,this._renderManagerService=t,this._initializeDependencies(this._injector),this._initialize()}_initialize(){this._renderManagerService.createRender$.pipe(Q.takeUntil(this.dispose$)).subscribe(e=>{this._create(e)}),this._univerInstanceService.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SLIDE).pipe(Q.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 n=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SLIDE);let t;if(e)t=n.getPage(e);else{const o=n.getPages(),d=n.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,n=e==null?void 0:e.getViewport("__mainView__"),t=this._getCenterPositionViewPort(e);if(!n||!t)return;const{left:i,top:s}=t,{x:c,y:o}=n.transViewportScroll2ScrollValue(i,s);n.scrollToBarPos({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 n=this._univerInstanceService.getUnit(e,l.UniverInstanceType.UNIVER_SLIDE);if(n==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((u,w)=>{const g=u;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 o.onMouseWheel(g,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(n,d),s.runRenderLoop(()=>{i.render()})}_createSlide(e){const n=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SLIDE),{width:t,height:i}=e,s=n.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,n){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(n)||"rgba(255,255,255, 1)",zIndex:0,evented:!1});e.addObject(o,0)}_getCenterPositionViewPort(e){if(!e)return{left:0,top:0};const{width:n,height:t}=e,i=e.getEngine(),s=(i==null?void 0:i.width)||0,c=(i==null?void 0:i.height)||0;return{left:(n-s)/2,top:(t-c)/2}}_thumbSceneRender(e,n){const t=this._renderManagerService.getRenderById(e);if(t==null)return;const{engine:i}=t;if(i==null)return;const{width:s,height:c}=n,{width:o=s,height:d=c}=i,u=i.getCanvas().getContext();n.renderToThumb(u,e,o/s,d/c)}_createSlidePages(e,n){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],n.activeFirstPage()}}createThumbs(){const n=this._univerInstanceService.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SLIDE).getPageOrder(),t=this._currentRender();if(!(!n||!t)&&n.length!==0)for(let i=0,s=n.length;i<s;i++){const c=n[i];this._thumbSceneRender(c,t.mainComponent)}}_createThumb(e){this._renderManagerService.createRender(e)}_createScene(e,n){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,isRelativeX:!0,isRelativeY:!0}).closeClip();const{pageElements:g,pageBackgroundFill:v}=n,p=this._objectProvider.convertToRenderObjects(g,i);if(!p||!c)return;this._addBackgroundRect(u,v),u.addObjects(p),p.forEach(R=>{u.attachTransformerTo(R)});const f=u.getTransformer();return f==null||f.changeEnd$.subscribe(()=>{this._thumbSceneRender(this._activePageId,c)}),f==null||f.clearControl$.subscribe(()=>{this._thumbSceneRender(this._activePageId,c)}),c.addPage(u),u}_initializeDependencies(e){this._objectProvider=e.createInstance(Z)}};exports.CanvasView=We([l.OnLifecycle(l.LifecycleStages.Ready,exports.CanvasView),ee(0,l.IUniverInstanceService),ee(1,l.Inject(l.Injector)),ee(2,h.IRenderManagerService)],exports.CanvasView);var Ye=Object.defineProperty,He=Object.getOwnPropertyDescriptor,Fe=(a,r,e,n)=>{for(var t=n>1?void 0:n?He(r,e):r,i=a.length-1,s;i>=0;i--)(s=a[i])&&(t=(n?s(r,e,t):s(t))||t);return n&&t&&Ye(r,e,t),t},Be=(a,r)=>(e,n)=>r(e,n,a);const Ke={},ke="slides";var G;exports.UniverSlidesPlugin=(G=class extends l.Plugin{constructor(e={},n){super();_(this,"_config");_(this,"_canvasEngine",null);_(this,"_canvasView",null);this._injector=n,this._config=Object.assign(Ke,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){[[exports.CanvasView]].forEach(t=>{e.add(t)})}},_(G,"pluginName",ke),_(G,"type",l.UniverInstanceType.UNIVER_SLIDE),G);exports.UniverSlidesPlugin=Fe([Be(1,l.Inject(l.Injector))],exports.UniverSlidesPlugin);exports.SLIDE_KEY=ce;
|
|
1
|
+
"use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),engineRender=require("@univerjs/engine-render"),rxjs=require("rxjs"),_ObjectAdaptor=class _ObjectAdaptor{constructor(){__publicField(this,"zIndex",0);__publicField(this,"viewKey",null)}check(type){if(type===this.viewKey)return this}create(injector){}};__name(_ObjectAdaptor,"ObjectAdaptor");let ObjectAdaptor=_ObjectAdaptor;const CanvasObjectProviderRegistry=core.Registry.create();var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6"),_a;let DocsAdaptor=(_a=class extends ObjectAdaptor{constructor(_localeService){super();__publicField(this,"zIndex",5);__publicField(this,"viewKey",core.PageElementType.DOCUMENT);__publicField(this,"_liquid",new engineRender.Liquid);this._localeService=_localeService}check(type){if(type===this.viewKey)return this}convert(pageElement,mainScene){var _a8,_b;const{id,zIndex,left=0,top=0,width,height,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,title,description,document:documentData}=pageElement;if(documentData==null)return;const docDataModel=new core.DocumentDataModel(documentData),docViewModel=new engineRender.DocumentViewModel(docDataModel),documentSkeleton=engineRender.DocumentSkeleton.create(docViewModel,this._localeService),documents=new engineRender.Documents("__DocsRender__",documentSkeleton);documentSkeleton.calculate();const sv=new engineRender.SceneViewer("__DocsViewer__"+id,{top,left,width,height,zIndex,angle,scaleX,scaleY,skewX,skewY,flipX,flipY}),scene=new engineRender.Scene("__DocsScene__"+id,sv),viewMain=new engineRender.Viewport("__DocsViewPort_"+id,scene,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0});scene.attachControl(),scene.onMouseWheel$.subscribeEvent((evt,state)=>{const e=evt;if(e.ctrlKey){const deltaFactor=Math.abs(e.deltaX);let scrollNum=deltaFactor<40?.2:deltaFactor<80?.4:.2;scrollNum*=e.deltaY>0?-1:1,scene.scaleX<1&&(scrollNum/=2),scene.scaleX+scrollNum>4?scene.scale(4,4):scene.scaleX+scrollNum<.1?scene.scale(.1,.1):(e.deltaY>0,e.preventDefault())}else viewMain.onMouseWheel(e,state)}),new engineRender.ScrollBar(viewMain,{mainScene}),scene.addObject(documents);const size=documentSkeleton.getActualSize();documents.resize(size.actualWidth,size.actualHeight),scene.resize(size.actualWidth,size.actualHeight+200),(_a8=documents.getSkeleton())==null||_a8.getPageSize(),documents.pageRender$.subscribe(config=>{const{page,pageLeft,pageTop,ctx}=config;ctx.save(),ctx.translate(pageLeft-.5,pageTop-.5),ctx.restore()});const{left:docsLeft,top:docsTop}=documents,skeletonData=documentSkeleton.getSkeletonData();if(skeletonData==null)return;const{pages}=skeletonData,objectList=[],pageMarginCache=new Map;this._recalculateSizeBySkeleton(documents,scene,documentSkeleton);for(let i=0,len=pages.length;i<len;i++){const page=pages[i],{skeDrawings,marginLeft,marginTop,pageWidth,pageHeight}=page;this._liquid.translatePagePadding(page),skeDrawings.forEach(drawing=>{const{aLeft,aTop,height:height2,width:width2,drawingOrigin}=drawing,rect=new engineRender.Image(drawing.drawingId,{left:aLeft+docsLeft+this._liquid.x,top:aTop+docsTop+this._liquid.y,width:width2,height:height2,zIndex:11});pageMarginCache.set(drawing.drawingId,{marginLeft:this._liquid.x,marginTop:this._liquid.y}),objectList.push(rect)}),this._liquid.translatePage(page,documents.pageLayoutType,documents.pageMarginLeft,documents.pageMarginTop)}return scene.addObjects(objectList),objectList.forEach(object=>{scene.attachTransformerTo(object)}),(_b=scene.getTransformer())==null||_b.changing$.subscribe(state=>{const{objects}=state;objects.forEach(object=>{const{oKey,left:left2,top:top2,height:height2,width:width2}=object,cache=pageMarginCache.get(oKey),marginLeft=(cache==null?void 0:cache.marginLeft)||0,marginTop=(cache==null?void 0:cache.marginTop)||0;documentSkeleton==null||documentSkeleton.getViewModel().getDataModel().updateDrawing(oKey,{left:left2-docsLeft-marginLeft,top:top2-docsTop-marginTop,height:height2,width:width2})}),documentSkeleton==null||documentSkeleton.calculate()}),this._calculatePagePosition(documents,scene,viewMain),sv}_recalculateSizeBySkeleton(docsComponent,scene,skeleton){var _a8;const pages=(_a8=skeleton.getSkeletonData())==null?void 0:_a8.pages;if(pages==null)return;let width=0,height=0;for(let i=0,len=pages.length;i<len;i++){const page=pages[i],{pageWidth,pageHeight}=page;docsComponent.pageLayoutType===engineRender.PageLayoutType.VERTICAL?(height+=pageHeight,height+=docsComponent.pageMarginTop,i===len-1&&(height+=docsComponent.pageMarginTop),width=Math.max(width,pageWidth)):docsComponent.pageLayoutType===engineRender.PageLayoutType.HORIZONTAL&&(width+=pageWidth,i!==len-1&&(width+=docsComponent.pageMarginLeft),height=Math.max(height,pageHeight))}docsComponent.resize(width,height),scene.resize(width,height)}_calculatePagePosition(docsComponent,scene,viewport,zoomRatio=1){const parent=scene==null?void 0:scene.getParent(),{width:docsWidth,height:docsHeight,pageMarginLeft,pageMarginTop}=docsComponent;if(parent==null||docsWidth===Number.POSITIVE_INFINITY||docsHeight===Number.POSITIVE_INFINITY)return;const{width:engineWidth,height:engineHeight}=parent;let docsLeft=0,docsTop=0,sceneWidth=0,sceneHeight=0,scrollToX=Number.POSITIVE_INFINITY;if(engineWidth>(docsWidth+pageMarginLeft*2)*zoomRatio?(docsLeft=engineWidth/2-docsWidth*zoomRatio/2,docsLeft/=zoomRatio,sceneWidth=(engineWidth-pageMarginLeft*2)/zoomRatio,scrollToX=0):(docsLeft=pageMarginLeft,sceneWidth=docsWidth+pageMarginLeft*2,scrollToX=(sceneWidth-engineWidth/zoomRatio)/2),engineHeight>docsHeight?(docsTop=engineHeight/2-docsHeight/2,sceneHeight=(engineHeight-pageMarginTop*2)/zoomRatio):(docsTop=pageMarginTop,sceneHeight=docsHeight+pageMarginTop*2),scene.resize(sceneWidth,sceneHeight+200),docsComponent.translate(docsLeft,docsTop),scrollToX!==Number.POSITIVE_INFINITY&&viewport!=null){const actualX=viewport.transScroll2ViewportScrollValue(scrollToX,0).x;viewport.scrollToBarPos({x:actualX})}return this}},__name(_a,"DocsAdaptor"),_a);DocsAdaptor=__decorateClass$6([__decorateParam$6(0,core.Inject(core.LocaleService))],DocsAdaptor);const _DocsAdaptorFactory=class _DocsAdaptorFactory{constructor(){__publicField(this,"zIndex",5)}create(injector){return injector.createInstance(DocsAdaptor)}};__name(_DocsAdaptorFactory,"DocsAdaptorFactory");let DocsAdaptorFactory=_DocsAdaptorFactory;CanvasObjectProviderRegistry.add(new DocsAdaptorFactory);const _ImageAdaptor=class _ImageAdaptor extends ObjectAdaptor{constructor(){super(...arguments);__publicField(this,"zIndex",1);__publicField(this,"viewKey",core.PageElementType.IMAGE)}check(type){if(type===this.viewKey)return this}convert(pageElement){const{id,zIndex,left=0,top=0,width,height,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,title,description,image={}}=pageElement,{imageProperties,placeholder,link}=image,contentUrl=(imageProperties==null?void 0:imageProperties.contentUrl)||"";return new engineRender.Image(id,{url:contentUrl,top,left,width,height,zIndex,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,forceRender:!0})}};__name(_ImageAdaptor,"ImageAdaptor");let ImageAdaptor=_ImageAdaptor;const _ImageAdaptorFactory=class _ImageAdaptorFactory{constructor(){__publicField(this,"zIndex",4)}create(injector){return injector.createInstance(ImageAdaptor)}};__name(_ImageAdaptorFactory,"ImageAdaptorFactory");let ImageAdaptorFactory=_ImageAdaptorFactory;CanvasObjectProviderRegistry.add(new ImageAdaptorFactory);var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5"),_a2;let RichTextAdaptor=(_a2=class extends ObjectAdaptor{constructor(_localeService){super();__publicField(this,"zIndex",2);__publicField(this,"viewKey",core.PageElementType.TEXT);this._localeService=_localeService}check(type){if(type===this.viewKey)return this}convert(pageElement,_mainScene){const{id,zIndex,left=0,top=0,width,height,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,title,description,richText={}}=pageElement,{text,ff,fs,it,bl,ul,st,ol,bg,bd,cl,rich}=richText;let config={top,left,width,height,zIndex,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,forceRender:!0},isNotNull=!1;if(text!=null?(config={...config,text,ff,fs,it,bl,ul,st,ol,bg,bd,cl},isNotNull=!0):rich!=null&&(config={...config,richText:rich},isNotNull=!0),isNotNull!==!1)return new engineRender.RichText(this._localeService,id,config)}},__name(_a2,"RichTextAdaptor"),_a2);RichTextAdaptor=__decorateClass$5([__decorateParam$5(0,core.Inject(core.LocaleService))],RichTextAdaptor);const _RichTextAdaptorFactory=class _RichTextAdaptorFactory{constructor(){__publicField(this,"zIndex",0)}create(injector){return injector.createInstance(RichTextAdaptor)}};__name(_RichTextAdaptorFactory,"RichTextAdaptorFactory");let RichTextAdaptorFactory=_RichTextAdaptorFactory;CanvasObjectProviderRegistry.add(new RichTextAdaptorFactory);const _ShapeAdaptor=class _ShapeAdaptor extends ObjectAdaptor{constructor(){super(...arguments);__publicField(this,"zIndex",2);__publicField(this,"viewKey",core.PageElementType.SHAPE)}check(type){if(type===this.viewKey)return this}convert(pageElement){const{id,zIndex,left=0,top=0,width,height,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,title,description}=pageElement,{shapeType,text,shapeProperties,placeholder,link}=pageElement.shape||{},fill=shapeProperties==null?"":core.getColorStyle(shapeProperties.shapeBackgroundFill)||"rgba(255,255,255,1)",outline=shapeProperties==null?void 0:shapeProperties.outline,strokeStyle={};if(outline){const{outlineFill,weight}=outline;strokeStyle.strokeWidth=weight,strokeStyle.stroke=core.getColorStyle(outlineFill)||"rgba(0,0,0,1)"}if(shapeType===core.BasicShapes.Rect)return new engineRender.Rect(id,{fill,top,left,width,height,zIndex,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,forceRender:!0,...strokeStyle});if(shapeType===core.BasicShapes.RoundRect){const radius=(shapeProperties==null?void 0:shapeProperties.radius)||0;return new engineRender.Rect(id,{fill,top,left,width,height,zIndex,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,forceRender:!0,radius,...strokeStyle})}}};__name(_ShapeAdaptor,"ShapeAdaptor");let ShapeAdaptor=_ShapeAdaptor;const _ShapeAdaptorFactory=class _ShapeAdaptorFactory{constructor(){__publicField(this,"zIndex",2)}create(injector){return injector.createInstance(ShapeAdaptor)}};__name(_ShapeAdaptorFactory,"ShapeAdaptorFactory");let ShapeAdaptorFactory=_ShapeAdaptorFactory;CanvasObjectProviderRegistry.add(new ShapeAdaptorFactory);var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4"),_a3;let SlideAdaptor=(_a3=class extends ObjectAdaptor{constructor(_injector){super();__publicField(this,"zIndex",6);__publicField(this,"viewKey",core.PageElementType.SLIDE);__publicField(this,"_ObjectProvider",null);this._injector=_injector}check(type){if(type===this.viewKey)return this}convert(pageElement,mainScene){const{id,zIndex,left=0,top=0,width,height,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,title,description,slide:slideData}=pageElement;if(slideData==null)return;const model=new core.SlideDataModel(slideData),slideComponent=new engineRender.Slide("__SLIDERender__"+id,{top,left,width,height,zIndex,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,forceRender:!0});slideComponent.enableNav(),slideComponent.enableSelectedClipElement();const pageOrder=model.getPageOrder(),pages=model.getPages();if(!pageOrder||!pages)return slideComponent;this._ObjectProvider=new ObjectProvider(this._injector);for(let i=0,len=pageOrder.length;i<len;i++){const page=pages[pageOrder[i]],{id:id2}=page;slideComponent.addPage(this._createScene(id2,slideComponent,page,mainScene,model))}return slideComponent.activeFirstPage(),slideComponent}_createScene(pageId,parent,page,mainScene,model){var _a8;const{width,height}=parent,scene=new engineRender.Scene(pageId,parent,{width,height});new engineRender.Viewport(`PageViewer_${pageId}`,scene,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0}).closeClip();const{pageElements,pageBackgroundFill}=page,objects=(_a8=this._ObjectProvider)==null?void 0:_a8.convertToRenderObjects(pageElements,mainScene);return this._addBackgroundRect(scene,pageBackgroundFill,model),scene.addObjects(objects),objects==null||objects.forEach(object=>{scene.attachTransformerTo(object)}),scene}_addBackgroundRect(scene,fill,model){const pageSize=model.getPageSize(),{width:pageWidth=0,height:pageHeight=0}=pageSize,page=new engineRender.Rect("canvas",{left:0,top:0,width:pageWidth,height:pageHeight,strokeWidth:1,stroke:"rgba(198,198,198, 1)",fill:core.getColorStyle(fill)||"rgba(255,255,255, 1)",zIndex:0,evented:!1});scene.addObject(page,0)}},__name(_a3,"SlideAdaptor"),_a3);SlideAdaptor=__decorateClass$4([__decorateParam$4(0,core.Inject(core.Injector))],SlideAdaptor);const _SlideAdaptorFactory=class _SlideAdaptorFactory{constructor(){__publicField(this,"zIndex",6)}create(injector){return injector.createInstance(SlideAdaptor)}};__name(_SlideAdaptorFactory,"SlideAdaptorFactory");let SlideAdaptorFactory=_SlideAdaptorFactory;CanvasObjectProviderRegistry.add(new SlideAdaptorFactory);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a4;let SpreadsheetAdaptor=(_a4=class extends ObjectAdaptor{constructor(_localeService,_contextService){super();__publicField(this,"zIndex",4);__publicField(this,"viewKey",core.PageElementType.SPREADSHEET);this._localeService=_localeService,this._contextService=_contextService}check(type){if(type===this.viewKey)return this}convert(pageElement,mainScene){const{id,zIndex,left=0,top=0,width,height,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,spreadsheet:spreadsheetModel}=pageElement;if(spreadsheetModel==null)return;const{worksheet,styles}=spreadsheetModel,{cellData}=worksheet,cellDataMatrix=new core.ObjectMatrix(cellData),styleModel=new core.Styles(styles),spreadsheetSkeleton=new engineRender.SpreadsheetSkeleton(new core.Worksheet(id,worksheet,styleModel),worksheet,cellDataMatrix,styleModel,this._localeService,this._contextService),{rowTotalHeight,columnTotalWidth,rowHeaderWidth,columnHeaderHeight}=spreadsheetSkeleton,allWidth=columnTotalWidth+worksheet.rowHeader.width||0,allHeight=rowTotalHeight+worksheet.columnHeader.height||0,sv=new engineRender.SceneViewer("spreadInSlideSceneViewer"+id,{top,left,width,height,zIndex,angle,scaleX,scaleY,skewX,skewY,flipX,flipY,forceRender:!0}),scene=new engineRender.Scene("spreadInSlideScene"+id,sv,{width:allWidth,height:allHeight});this._updateViewport(id,rowHeaderWidth,columnHeaderHeight,scene,mainScene);const spreadsheet=new engineRender.Spreadsheet("testSheetViewer",spreadsheetSkeleton,!1),spreadsheetRowHeader=new engineRender.SpreadsheetRowHeader("spreadInSlideRow",spreadsheetSkeleton),spreadsheetColumnHeader=new engineRender.SpreadsheetColumnHeader("spreadInSlideColumn",spreadsheetSkeleton),SpreadsheetLeftTopPlaceholder=new engineRender.Rect("spreadInSlideLeftTop",{zIndex:2,left:-1,top:-1,width:rowHeaderWidth,height:columnHeaderHeight,fill:engineRender.getColor([248,249,250]),stroke:engineRender.getColor([217,217,217]),strokeWidth:1});return spreadsheet.zIndex=10,scene.addObjects([spreadsheet],1),scene.addObjects([spreadsheetRowHeader,spreadsheetColumnHeader,SpreadsheetLeftTopPlaceholder],2),sv}_updateViewport(id,rowHeaderWidth,columnHeaderHeight,scene,mainScene){if(mainScene==null)return;const rowHeaderWidthScale=rowHeaderWidth*scene.scaleX,columnHeaderHeightScale=columnHeaderHeight*scene.scaleY,viewMain=new engineRender.Viewport("spreadInSlideViewMain"+id,scene,{left:rowHeaderWidthScale,top:columnHeaderHeightScale,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0}),viewTop=new engineRender.Viewport("spreadInSlideViewTop"+id,scene,{left:rowHeaderWidthScale,height:columnHeaderHeightScale,top:0,right:0,isRelativeX:!0,isWheelPreventDefaultX:!0}),viewLeft=new engineRender.Viewport("spreadInSlideViewLeft"+id,scene,{left:0,bottom:0,top:columnHeaderHeightScale,width:rowHeaderWidthScale,isRelativeY:!0,isWheelPreventDefaultX:!0});new engineRender.Viewport("spreadInSlideViewLeftTop"+id,scene,{left:0,top:0,width:rowHeaderWidthScale,height:columnHeaderHeightScale,isWheelPreventDefaultX:!0}),viewMain.onScrollAfter$.subscribeEvent(param=>{const{scrollX,scrollY,viewportScrollX,viewportScrollY}=param;viewTop.updateScrollVal({scrollX,viewportScrollX}),viewLeft.updateScrollVal({scrollY,viewportScrollY})}),scene.attachControl(),new engineRender.ScrollBar(viewMain,{mainScene}),scene.onMouseWheel$.subscribeEvent((evt,state)=>{const e=evt;if(e.ctrlKey){const deltaFactor=Math.abs(e.deltaX);let scrollNum=deltaFactor<40?.05:deltaFactor<80?.02:.01;scrollNum*=e.deltaY>0?-1:1,scene.scaleX<1&&(scrollNum/=2),scene.scaleX+scrollNum>4?scene.scale(4,4):scene.scaleX+scrollNum<.1?scene.scale(.1,.1):(scene.scaleBy(scrollNum,scrollNum),e.preventDefault())}else viewMain.onMouseWheel(e,state)})}},__name(_a4,"SpreadsheetAdaptor"),_a4);SpreadsheetAdaptor=__decorateClass$3([__decorateParam$3(0,core.Inject(core.LocaleService)),__decorateParam$3(1,core.IContextService)],SpreadsheetAdaptor);const _SpreadsheetAdaptorFactory=class _SpreadsheetAdaptorFactory{constructor(){__publicField(this,"zIndex",4)}create(injector){return injector.createInstance(SpreadsheetAdaptor)}};__name(_SpreadsheetAdaptorFactory,"SpreadsheetAdaptorFactory");let SpreadsheetAdaptorFactory=_SpreadsheetAdaptorFactory;CanvasObjectProviderRegistry.add(new SpreadsheetAdaptorFactory);var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a5;let ObjectProvider=(_a5=class{constructor(_injector){__publicField(this,"_adaptors",[]);this._injector=_injector,this._adaptorLoader()}convertToRenderObjects(pageElements,mainScene){const pageKeys=Object.keys(pageElements),objects=[];return pageKeys.forEach(key=>{const pageElement=pageElements[key],o=this._executor(pageElement,mainScene);o!=null&&objects.push(o)}),objects}convertToRenderObject(pageElement,mainScene){return this._executor(pageElement,mainScene)}_executor(pageElement,mainScene){var _a8;const{id:pageElementId,type}=pageElement;for(const adaptor of this._adaptors){const o=(_a8=adaptor.check(type))==null?void 0:_a8.convert(pageElement,mainScene);if(o!=null)return o}}_adaptorLoader(){CanvasObjectProviderRegistry.getData().sort(core.sortRules).forEach(adaptorFactory=>{this._adaptors.push(adaptorFactory.create(this._injector))})}},__name(_a5,"ObjectProvider"),_a5);ObjectProvider=__decorateClass$2([__decorateParam$2(0,core.Inject(core.Injector))],ObjectProvider);var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1"),SLIDE_KEY=(SLIDE_KEY2=>(SLIDE_KEY2.COMPONENT="__slideRender__",SLIDE_KEY2.SCENE="__mainScene__",SLIDE_KEY2.VIEW="__mainView__",SLIDE_KEY2))(SLIDE_KEY||{}),_a6;exports.CanvasView=(_a6=class extends core.RxDisposable{constructor(_injector,_univerInstanceService,_renderManagerService){super();__publicField(this,"_objectProvider",null);__publicField(this,"_refreshThumb",core.debounce(()=>{this.createThumbs()},300));__publicField(this,"_sceneMap",new Map);this._injector=_injector,this._univerInstanceService=_univerInstanceService,this._renderManagerService=_renderManagerService,this._initializeDependencies(this._injector),this._initialize()}_initialize(){this._renderManagerService.createRender$.pipe(rxjs.takeUntil(this.dispose$)).subscribe(unitId=>{this._create(unitId)}),this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SLIDE).pipe(rxjs.takeUntil(this.dispose$)).subscribe(slideModel=>{this._create(slideModel==null?void 0:slideModel.getUnitId())}),this._univerInstanceService.getAllUnitsForType(core.UniverInstanceType.UNIVER_SLIDE).forEach(slideModel=>{this._create(slideModel.getUnitId())})}activePage(_pageId){let pageId=_pageId;const model=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SLIDE);let page;if(pageId)page=model.getPage(pageId);else{const pageElements=model.getPages(),pageOrder=model.getPageOrder();if(pageOrder==null||pageElements==null)return;page=pageElements[pageOrder[0]],pageId=page.id}const render=this._currentRender();if(page==null||render==null||render.mainComponent==null)return;const{id}=page,slide=render.mainComponent;if(model.setActivePage(page),slide!=null&&slide.hasPage(id)){slide.changePage(id);return}this._createScene(id,page)}_scrollToCenter(){var _a8;const mainScene=(_a8=this._currentRender())==null?void 0:_a8.scene,viewMain=mainScene==null?void 0:mainScene.getViewport("__mainView__"),getCenterPositionViewPort=this._getCenterPositionViewPort(mainScene);if(!viewMain||!getCenterPositionViewPort)return;const{left:viewPortLeft,top:viewPortTop}=getCenterPositionViewPort,{x,y}=viewMain.transViewportScroll2ScrollValue(viewPortLeft,viewPortTop);viewMain.scrollToBarPos({x,y})}_create(unitId){unitId==null||this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SLIDE)==null||this._renderManagerService.has(unitId)||this._addNewRender(unitId)}_currentRender(){const slideDataModel=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SLIDE);return this._renderManagerService.getRenderById(slideDataModel.getUnitId())}_addNewRender(unitId){const slideDataModel=this._univerInstanceService.getUnit(unitId,core.UniverInstanceType.UNIVER_SLIDE);if(slideDataModel==null)return;this._renderManagerService.createRender(unitId);const currentRender=this._renderManagerService.getRenderById(unitId);if(currentRender==null)return;const{scene,engine}=currentRender,observer=engine.onTransformChange$.subscribeEvent(()=>{this._scrollToCenter(),observer==null||observer.unsubscribe()});engine.onTransformChange$.subscribeEvent(()=>{setTimeout(()=>{this.createThumbs()},300)});const viewMain=new engineRender.Viewport("__mainView__",scene,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0,isWheelPreventDefaultX:!0});scene.attachControl(),scene.onMouseWheel$.subscribeEvent((evt,state)=>{const e=evt;if(e.ctrlKey){const deltaFactor=Math.abs(e.deltaX);let scrollNum=deltaFactor<40?.2:deltaFactor<80?.4:.2;scrollNum*=e.deltaY>0?-1:1,scene.scaleX<1&&(scrollNum/=2),scene.scaleX+scrollNum>4?scene.scale(4,4):scene.scaleX+scrollNum<.1?scene.scale(.1,.1):(e.deltaY>0,e.preventDefault())}else viewMain.onMouseWheel(e,state)}),scene.onFileLoaded$.subscribeEvent(()=>{this._refreshThumb()}),engineRender.ScrollBar.attachTo(viewMain),this._renderManagerService.setCurrent(unitId);const slideComponent=this._createSlide(scene);currentRender.mainComponent=slideComponent,currentRender.components.set("__slideRender__",slideComponent),this._createSlidePages(slideDataModel,slideComponent),engine.runRenderLoop(()=>{scene.render()})}_createSlide(mainScene){const model=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SLIDE),{width:sceneWidth,height:sceneHeight}=mainScene,pageSize=model.getPageSize(),{width=100,height=100}=pageSize,slideComponent=new engineRender.Slide("__slideRender__",{left:(sceneWidth-width)/2,top:(sceneHeight-height)/2,width,height,zIndex:10});return slideComponent.enableSelectedClipElement(),mainScene.addObject(slideComponent),slideComponent}_addBackgroundRect(scene,fill){const pageSize=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SLIDE).getPageSize(),{width:pageWidth=0,height:pageHeight=0}=pageSize,page=new engineRender.Rect("canvas",{left:0,top:0,width:pageWidth,height:pageHeight,strokeWidth:1,stroke:"rgba(198,198,198,1)",fill:core.getColorStyle(fill)||"rgba(255,255,255,1)",zIndex:0,evented:!1});scene.addObject(page,0)}_getCenterPositionViewPort(mainScene){if(!mainScene)return{left:0,top:0};const{width,height}=mainScene,engine=mainScene.getEngine(),canvasWidth=(engine==null?void 0:engine.width)||0,canvasHeight=(engine==null?void 0:engine.height)||0;return{left:(width-canvasWidth)/2,top:(height-canvasHeight)/2}}_thumbSceneRender(pageId,slide){const render=this._renderManagerService.getRenderById(pageId);if(render==null)return;const{engine:thumbEngine}=render;if(thumbEngine==null)return;const{width,height}=slide,{width:pageWidth=width,height:pageHeight=height}=thumbEngine,thumbContext=thumbEngine.getCanvas().getContext();slide.renderToThumb(thumbContext,pageId,pageWidth/width,pageHeight/height)}_createSlidePages(slideDataModel,slide){const pages=slideDataModel.getPages(),pageOrder=slideDataModel.getPageOrder();if(!(!pages||!pageOrder)&&pageOrder.length!==0){for(let i=0,len=pageOrder.length;i<len;i++){const pageId=pageOrder[i];this._createScene(pageId,pages[pageId]),this._createThumb(pageId)}slide.activeFirstPage()}}createThumbs(){const pageOrder=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SLIDE).getPageOrder(),render=this._currentRender();if(!(!pageOrder||!render)&&pageOrder.length!==0)for(let i=0,len=pageOrder.length;i<len;i++){const pageId=pageOrder[i];this._thumbSceneRender(pageId,render.mainComponent)}}_createThumb(pageId){this._renderManagerService.createRender(pageId)}_createScene(pageId,page){const render=this._currentRender();if(!render||!this._objectProvider)return;const{scene:mainScene,mainComponent}=render,slide=mainComponent,{width,height}=slide,pageScene=new engineRender.Scene(pageId,slide,{width,height});this._sceneMap.set(pageId,pageScene),new engineRender.Viewport(`PageViewer_${pageId}`,pageScene,{left:0,top:0,bottom:0,right:0,isRelativeX:!0,isRelativeY:!0}).closeClip();const{pageElements,pageBackgroundFill}=page,objects=this._objectProvider.convertToRenderObjects(pageElements,mainScene);if(!objects||!slide)return;this._addBackgroundRect(pageScene,pageBackgroundFill),pageScene.addObjects(objects),objects.forEach(object=>{pageScene.attachTransformerTo(object)});const transformer=pageScene.getTransformer();return transformer==null||transformer.changeEnd$.subscribe(()=>{this._thumbSceneRender(pageId,slide)}),transformer==null||transformer.clearControl$.subscribe(()=>{this._thumbSceneRender(pageId,slide)}),slide.addPage(pageScene),pageScene}_initializeDependencies(slideInjector){this._objectProvider=slideInjector.createInstance(ObjectProvider)}getRenderUnitByPageId(pageId){return{scene:this._sceneMap.get(pageId)}}createObjectToPage(element,pageID){if(!this._currentRender()||!this._objectProvider)return;const{scene}=this.getRenderUnitByPageId(pageID);if(!scene)return;const object=this._objectProvider.convertToRenderObject(element,scene);if(object)return scene.addObject(object),scene.attachTransformerTo(object),scene.getLayer().makeDirty(),object}setObjectActiveByPage(obj,pageID){const{scene}=this.getRenderUnitByPageId(pageID);if(!scene)return;const transformer=scene.getTransformer();transformer==null||transformer.activeAnObject(obj)}removeObjectById(id,pageID){const{scene}=this.getRenderUnitByPageId(pageID);if(!scene)return;scene.removeObject(id);const transformer=scene.getTransformer();transformer==null||transformer.clearControls()}appendPage(){const model=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SLIDE),page=model.getBlankPage(),render=this._currentRender();if(page==null||render==null||render.mainComponent==null)return;const{id}=page,slide=render.mainComponent,scene=this._createScene(id,page);scene&&(slide==null||slide.addPage(scene)),model.appendPage(page),model.setActivePage(page)}},__name(_a6,"CanvasView"),_a6);exports.CanvasView=__decorateClass$1([core.OnLifecycle(core.LifecycleStages.Ready,exports.CanvasView),__decorateParam$1(0,core.Inject(core.Injector)),__decorateParam$1(1,core.IUniverInstanceService),__decorateParam$1(2,engineRender.IRenderManagerService)],exports.CanvasView);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam");const DEFAULT_SLIDE_PLUGIN_DATA={},PLUGIN_NAME="slides";var _a7;exports.UniverSlidesPlugin=(_a7=class extends core.Plugin{constructor(config={},_injector,_renderManagerService){super();__publicField(this,"_config");__publicField(this,"_canvasEngine",null);this._injector=_injector,this._renderManagerService=_renderManagerService,this._config=Object.assign(DEFAULT_SLIDE_PLUGIN_DATA,config),this._initializeDependencies(this._injector)}initialize(){this.initCanvasEngine()}onReady(){}getConfig(){return this._config}initCanvasEngine(){this._canvasEngine=this._injector.get(engineRender.IRenderingEngine)}onRendered(){this.initialize()}getCanvasEngine(){return this._canvasEngine}_initializeDependencies(slideInjector){[[exports.CanvasView]].forEach(d=>{slideInjector.add(d)})}},__name(_a7,"UniverSlidesPlugin"),__publicField(_a7,"pluginName",PLUGIN_NAME),__publicField(_a7,"type",core.UniverInstanceType.UNIVER_SLIDE),_a7);exports.UniverSlidesPlugin=__decorateClass([__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService)],exports.UniverSlidesPlugin);exports.SLIDE_KEY=SLIDE_KEY;
|