@univerjs/sheets-zen-editor 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,13 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/docs-ui`),n=require(`@univerjs/engine-render`),r=require(`@univerjs/sheets-ui`),i=require(`@univerjs/ui`),a=require(`@univerjs/sheets`),o=require(`rxjs`),s=require(`@univerjs/design`),c=require(`@univerjs/icons`),l=require(`react`),u=require(`react/jsx-runtime`);const d={id:`zen-editor.command.open-zen-editor`,type:e.CommandType.COMMAND,handler:async n=>{var a;let o=n.get(i.IZenZoneService),s=n.get(t.IEditorService),c=n.get(r.IEditorBridgeService),l=n.get(e.IUniverInstanceService),u=n.get(i.ISidebarService);u.visible&&(u.close(),await(0,e.delayAnimationFrame)()),o.open();let d=s.getEditor(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);if(d==null)return!1;let f=c.getLatestEditCellState();if(f==null)return!1;let p=(a=f.documentLayoutObject.documentModel)==null?void 0:a.getSnapshot();if(p==null)return!1;l.focusUnit(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);let{body:m,drawings:h,drawingsOrder:g,tableSource:_,settings:v}=e.Tools.deepClone(p),y={...d.getDocumentData(),body:m,drawings:h,drawingsOrder:g,tableSource:_,settings:v};return d.focus(),d.setDocumentData(y,[{startOffset:0,endOffset:0,collapsed:!0}]),d.clearUndoRedoHistory(),!0}},f={id:`zen-editor.command.cancel-zen-edit`,type:e.CommandType.COMMAND,handler:async t=>{let n=t.get(i.IZenZoneService),a=t.get(r.IEditorBridgeService),o=t.get(e.IUniverInstanceService),s=t.get(i.ISidebarService);s.visible&&(s.close(),await(0,e.delayAnimationFrame)()),n.close();let c=o.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);return c?(o.focusUnit(c.getUnitId()),a.refreshEditCellState(),!0):!1}},p={id:`zen-editor.command.confirm-zen-edit`,type:e.CommandType.COMMAND,handler:async a=>{let o=a.get(i.IZenZoneService),s=a.get(r.IEditorBridgeService),c=a.get(e.IUniverInstanceService),l=a.get(t.IEditorService),u=a.get(i.ISidebarService);u.visible&&(u.close(),await(0,e.delayAnimationFrame)()),o.close();let d=l.getEditor(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);if(d==null)return!1;let f=a.get(n.IRenderManagerService),p=c.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(p){var m;let t=p.getUnitId(),n=(m=f.getRenderById(t))==null?void 0:m.with(r.EditingRenderController);if(n){let t=e.Tools.deepClone(d.getDocumentData());t.documentStyle.documentFlavor=e.DocumentFlavor.UNSPECIFIED,n.submitCellData(new e.DocumentDataModel(t))}return c.focusUnit(p.getUnitId()),s.refreshEditCellState(),!0}return!1}};var m=`@univerjs/sheets-zen-editor`,h=`0.18.0`;const g=`sheets-zen-editor.config`;Symbol(g);const _={};function v(e){let t=e.get(r.IEditorBridgeService);return{id:d.id,type:i.MenuItemType.BUTTON,title:`rightClick.zenEditor`,icon:`AmplifyIcon`,hidden$:(0,r.getCurrentExclusiveRangeInterest$)(e),disabled$:t.currentEditCell$.pipe((0,o.switchMap)(t=>(0,r.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellValuePermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]}).pipe((0,o.map)(e=>{var n,r;return e||((n=t==null||(r=t.documentLayoutObject.documentModel)==null||(r=r.getBody())==null||(r=r.customBlocks)==null?void 0:r.length)==null?0:n)>0}))))}}const y={[i.ContextMenuPosition.MAIN_AREA]:{[i.ContextMenuGroup.OTHERS]:{[d.id]:{order:2,menuItemFactory:v}}}};function b(e){"@babel/helpers - typeof";return b=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},b(e)}function x(e,t){if(b(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(b(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function S(e){var t=x(e,`string`);return b(t)==`symbol`?t:t+``}function C(e,t,n){return(t=S(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var w=class{constructor(){C(this,`_position`,null),C(this,`_position$`,new o.BehaviorSubject(null)),C(this,`position$`,this._position$.asObservable())}dispose(){this._position$.complete(),this._position=null}setPosition(e){this._position=e,this._refresh(e)}getPosition(){return this._position}_refresh(e){this._position$.next(e)}};const T=(0,e.createIdentifier)(`univer.sheet-zen-editor-manager.service`),E={id:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,body:{dataStream:`${e.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],tables:[],customBlocks:[],paragraphs:[{startIndex:0}],sectionBreaks:[{startIndex:1}]},tableSource:{},documentStyle:{pageSize:{width:595,height:1/0},documentFlavor:e.DocumentFlavor.MODERN,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,renderConfig:{vertexAngle:0,centerAngle:0}},drawings:{},drawingsOrder:[]};function D(){let n=(0,l.useRef)(null),r=(0,i.useDependency)(T),a=(0,i.useDependency)(t.IEditorService),o=(0,i.useDependency)(e.ICommandService);(0,l.useEffect)(()=>{let t=n.current;if(!t)return;let i=a.register({editorUnitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,initialSnapshot:E,scrollBar:!0,backScrollOffset:100},t),o=new ResizeObserver(()=>{r.setPosition(t.getBoundingClientRect())});return o.observe(t),()=>{i.dispose(),o.unobserve(t)}},[]);function d(){let t=a.getEditor(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);t==null||t.blur(),o.executeCommand(f.id)}function m(){let t=a.getEditor(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);t==null||t.blur(),o.executeCommand(p.id)}let h=`univer-flex univer-w-7 univer-cursor-pointer univer-items-center univer-justify-center univer-transition-colors`;return(0,u.jsxs)(`div`,{className:`
2
- univer-absolute univer-inset-0 univer-size-full univer-bg-white
3
- dark:!univer-bg-gray-800
4
- `,children:[(0,u.jsxs)(`div`,{className:`
5
- univer-absolute univer-right-6 univer-top-2 univer-z-10 univer-flex univer-items-center
6
- univer-justify-center
7
- `,children:[(0,u.jsx)(`span`,{className:(0,s.clsx)(h,`
8
- univer-text-red-500
9
- hover:univer-text-red-600
10
- `),onClick:d,children:(0,u.jsx)(c.CloseIcon,{className:`univer-size-5`})}),(0,u.jsx)(`span`,{className:(0,s.clsx)(h,`
11
- univer-text-green-500
12
- hover:univer-text-green-600
13
- `),onClick:m,children:(0,u.jsx)(c.CheckMarkIcon,{className:`univer-size-5`})})]}),(0,u.jsx)(`div`,{ref:n,className:`univer-absolute univer-inset-0 univer-size-full`})]})}const O={id:p.id,description:`shortcut.sheet.zen-edit-confirm`,group:`4_sheet-edit`,preconditions:e=>A(e),binding:i.KeyCode.ENTER|i.MetaKeys.ALT},k={id:f.id,description:`shortcut.sheet.zen-edit-cancel`,group:`4_sheet-edit`,preconditions:e=>A(e),binding:i.KeyCode.ESC};function A(t){return t.getContextValue(e.FOCUSING_DOC)&&t.getContextValue(e.FOCUSING_UNIVER_EDITOR)&&t.getContextValue(e.EDITOR_ACTIVATED)&&!t.getContextValue(e.FOCUSING_EDITOR_STANDALONE)}function j(e,t){return function(n,r){t(n,r,e)}}function M(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let N=class extends e.Disposable{constructor(e,t,n,r){super(),this._zenZoneService=e,this._commandService=t,this._menuManagerService=n,this._shortcutService=r,this._initialize()}_initialize(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts()}_initCustomComponents(){this.disposeWithMe(this._zenZoneService.set(`ZEN_EDITOR_PLUGIN_ZEN_EDITOR_COMPONENT`,D))}_initCommands(){[d,f,p].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(y)}_initShortcuts(){[O,k].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}};N=M([j(0,i.IZenZoneService),j(1,e.ICommandService),j(2,i.IMenuManagerService),j(3,i.IShortcutService)],N);let P=class extends e.RxDisposable{constructor(e,t){super(),this._zenEditorManagerService=e,this._renderManagerService=t,this._initialize()}_initialize(){this._syncZenEditorSize()}_syncZenEditorSize(){this._zenEditorManagerService.position$.pipe((0,o.takeUntil)(this.dispose$)).subscribe(t=>{if(t==null)return;let{width:n,height:i}=t,a=(0,r.getEditorObject)(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,this._renderManagerService);a!=null&&requestIdleCallback(()=>{a.engine.resizeBySize(n,i),this._calculatePagePosition(a),this._scrollToTop()})})}_calculatePagePosition(e){let{document:n,scene:r,docBackground:i}=e,a=r==null?void 0:r.getParent(),{width:o,height:s,pageMarginLeft:c,pageMarginTop:l}=n;if(a==null||o===1/0||s===1/0)return;let{width:u,height:d}=a,f=0,p=l,m=0,h=0,g=1/0,{scaleX:_,scaleY:v}=r.getAncestorScale();u>(o+c*2)*_?(f=u/2-o*_/2,f/=_,m=(u-c*2)/_,g=0):(f=c,m=o+c*2,g=(m-u/_)/2),h=d>s?(d-l*2)/v:s+l*2,r.resize(m,h),n.translate(f,p),i.translate(f,p);let y=r.getViewport(t.VIEWPORT_KEY.VIEW_MAIN);if(g!==1/0&&y!=null){let e=y.transScroll2ViewportScrollValue(g,0).x;y.scrollToBarPos({x:e})}return this}_scrollToTop(){var n;let r=(n=this._renderManagerService.getRenderById(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY))==null?void 0:n.with(t.DocBackScrollRenderController);r&&r.scrollToRange({startOffset:0,endOffset:0})}};P=M([j(0,T),j(1,n.IRenderManagerService)],P);let F=class extends e.Plugin{constructor(t=_,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{menu:i,...a}=(0,e.merge)({},_,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(g,a),this._initializeDependencies(this._injector)}_initializeDependencies(e){[[N],[P],[T,{useClass:w}]].forEach(t=>e.add(t))}onReady(){this._injector.get(N)}onSteady(){this._injector.get(P)}};C(F,`pluginName`,`SHEET_ZEN_EDITOR_PLUGIN`),C(F,`packageName`,m),C(F,`version`,h),C(F,`type`,e.UniverInstanceType.UNIVER_SHEET),F=M([j(1,(0,e.Inject)(e.Injector)),j(2,e.IConfigService)],F),exports.CancelZenEditCommand=f,exports.ConfirmZenEditCommand=p,exports.OpenZenEditorCommand=d,Object.defineProperty(exports,`UniverSheetsZenEditorPlugin`,{enumerable:!0,get:function(){return F}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/docs-ui`),n=require(`@univerjs/engine-render`),r=require(`@univerjs/sheets-ui`),i=require(`@univerjs/ui`),a=require(`@univerjs/sheets`),o=require(`rxjs`),s=require(`@univerjs/design`),c=require(`@univerjs/icons`),l=require(`react`),u=require(`react/jsx-runtime`);const d={id:`zen-editor.command.open-zen-editor`,type:e.CommandType.COMMAND,handler:async n=>{var a;let o=n.get(i.IZenZoneService),s=n.get(t.IEditorService),c=n.get(r.IEditorBridgeService),l=n.get(e.IUniverInstanceService),u=n.get(i.ISidebarService);u.visible&&(u.close(),await(0,e.delayAnimationFrame)()),o.open();let d=s.getEditor(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);if(d==null)return!1;let f=c.getLatestEditCellState();if(f==null)return!1;let p=(a=f.documentLayoutObject.documentModel)==null?void 0:a.getSnapshot();if(p==null)return!1;l.focusUnit(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);let{body:m,drawings:h,drawingsOrder:g,tableSource:_,settings:v}=e.Tools.deepClone(p),y={...d.getDocumentData(),body:m,drawings:h,drawingsOrder:g,tableSource:_,settings:v};return d.focus(),d.setDocumentData(y,[{startOffset:0,endOffset:0,collapsed:!0}]),d.clearUndoRedoHistory(),!0}},f={id:`zen-editor.command.cancel-zen-edit`,type:e.CommandType.COMMAND,handler:async t=>{let n=t.get(i.IZenZoneService),a=t.get(r.IEditorBridgeService),o=t.get(e.IUniverInstanceService),s=t.get(i.ISidebarService);s.visible&&(s.close(),await(0,e.delayAnimationFrame)()),n.close();let c=o.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);return c?(o.focusUnit(c.getUnitId()),a.refreshEditCellState(),!0):!1}},p={id:`zen-editor.command.confirm-zen-edit`,type:e.CommandType.COMMAND,handler:async a=>{let o=a.get(i.IZenZoneService),s=a.get(r.IEditorBridgeService),c=a.get(e.IUniverInstanceService),l=a.get(t.IEditorService),u=a.get(i.ISidebarService);u.visible&&(u.close(),await(0,e.delayAnimationFrame)()),o.close();let d=l.getEditor(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);if(d==null)return!1;let f=a.get(n.IRenderManagerService),p=c.getCurrentUnitForType(e.UniverInstanceType.UNIVER_SHEET);if(p){var m;let t=p.getUnitId(),n=(m=f.getRenderById(t))==null?void 0:m.with(r.EditingRenderController);if(n){let t=e.Tools.deepClone(d.getDocumentData());t.documentStyle.documentFlavor=e.DocumentFlavor.UNSPECIFIED,n.submitCellData(new e.DocumentDataModel(t))}return c.focusUnit(p.getUnitId()),s.refreshEditCellState(),!0}return!1}};var m=`@univerjs/sheets-zen-editor`,h=`0.19.0`;const g=`sheets-zen-editor.config`;Symbol(g);const _={};function v(e){let t=e.get(r.IEditorBridgeService);return{id:d.id,type:i.MenuItemType.BUTTON,title:`rightClick.zenEditor`,icon:`AmplifyIcon`,hidden$:(0,r.getCurrentExclusiveRangeInterest$)(e),disabled$:t.currentEditCell$.pipe((0,o.switchMap)(t=>(0,r.getCurrentRangeDisable$)(e,{workbookTypes:[a.WorkbookEditablePermission],worksheetTypes:[a.WorksheetEditPermission,a.WorksheetSetCellValuePermission,a.WorksheetSetCellStylePermission],rangeTypes:[a.RangeProtectionPermissionEditPoint]}).pipe((0,o.map)(e=>{var n,r;return e||((n=t==null||(r=t.documentLayoutObject.documentModel)==null||(r=r.getBody())==null||(r=r.customBlocks)==null?void 0:r.length)==null?0:n)>0}))))}}const y={[i.ContextMenuPosition.MAIN_AREA]:{[i.ContextMenuGroup.OTHERS]:{[d.id]:{order:2,menuItemFactory:v}}}};function b(e){"@babel/helpers - typeof";return b=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},b(e)}function x(e,t){if(b(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(b(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function S(e){var t=x(e,`string`);return b(t)==`symbol`?t:t+``}function C(e,t,n){return(t=S(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var w=class{constructor(){C(this,`_position`,null),C(this,`_position$`,new o.BehaviorSubject(null)),C(this,`position$`,this._position$.asObservable())}dispose(){this._position$.complete(),this._position=null}setPosition(e){this._position=e,this._refresh(e)}getPosition(){return this._position}_refresh(e){this._position$.next(e)}};const T=(0,e.createIdentifier)(`univer.sheet-zen-editor-manager.service`),E={id:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,body:{dataStream:`${e.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],tables:[],customBlocks:[],paragraphs:[{startIndex:0}],sectionBreaks:[{startIndex:1}]},tableSource:{},documentStyle:{pageSize:{width:595,height:1/0},documentFlavor:e.DocumentFlavor.MODERN,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,renderConfig:{vertexAngle:0,centerAngle:0}},drawings:{},drawingsOrder:[]};function D(){let n=(0,l.useRef)(null),r=(0,i.useDependency)(T),a=(0,i.useDependency)(t.IEditorService),o=(0,i.useDependency)(e.ICommandService);(0,l.useEffect)(()=>{let t=n.current;if(!t)return;let i=a.register({editorUnitId:e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,initialSnapshot:E,scrollBar:!0,backScrollOffset:100},t),o=new ResizeObserver(()=>{r.setPosition(t.getBoundingClientRect())});return o.observe(t),()=>{i.dispose(),o.unobserve(t)}},[]);function d(){let t=a.getEditor(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);t==null||t.blur(),o.executeCommand(f.id)}function m(){let t=a.getEditor(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY);t==null||t.blur(),o.executeCommand(p.id)}let h=`univer-flex univer-w-7 univer-cursor-pointer univer-items-center univer-justify-center univer-transition-colors`;return(0,u.jsxs)(`div`,{className:`univer-absolute univer-inset-0 univer-size-full univer-bg-white dark:!univer-bg-gray-800`,children:[(0,u.jsxs)(`div`,{className:`univer-absolute univer-right-6 univer-top-2 univer-z-10 univer-flex univer-items-center univer-justify-center`,children:[(0,u.jsx)(`span`,{className:(0,s.clsx)(h,`univer-text-red-500 hover:univer-text-red-600`),onClick:d,children:(0,u.jsx)(c.CloseIcon,{className:`univer-size-5`})}),(0,u.jsx)(`span`,{className:(0,s.clsx)(h,`univer-text-green-500 hover:univer-text-green-600`),onClick:m,children:(0,u.jsx)(c.CheckMarkIcon,{className:`univer-size-5`})})]}),(0,u.jsx)(`div`,{ref:n,className:`univer-absolute univer-inset-0 univer-size-full`})]})}const O={id:p.id,description:`shortcut.sheet.zen-edit-confirm`,group:`4_sheet-edit`,preconditions:e=>A(e),binding:i.KeyCode.ENTER|i.MetaKeys.ALT},k={id:f.id,description:`shortcut.sheet.zen-edit-cancel`,group:`4_sheet-edit`,preconditions:e=>A(e),binding:i.KeyCode.ESC};function A(t){return t.getContextValue(e.FOCUSING_DOC)&&t.getContextValue(e.FOCUSING_UNIVER_EDITOR)&&t.getContextValue(e.EDITOR_ACTIVATED)&&!t.getContextValue(e.FOCUSING_EDITOR_STANDALONE)}function j(e,t){return function(n,r){t(n,r,e)}}function M(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let N=class extends e.Disposable{constructor(e,t,n,r){super(),this._zenZoneService=e,this._commandService=t,this._menuManagerService=n,this._shortcutService=r,this._initialize()}_initialize(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts()}_initCustomComponents(){this.disposeWithMe(this._zenZoneService.set(`ZEN_EDITOR_PLUGIN_ZEN_EDITOR_COMPONENT`,D))}_initCommands(){[d,f,p].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(y)}_initShortcuts(){[O,k].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}};N=M([j(0,i.IZenZoneService),j(1,e.ICommandService),j(2,i.IMenuManagerService),j(3,i.IShortcutService)],N);let P=class extends e.RxDisposable{constructor(e,t){super(),this._zenEditorManagerService=e,this._renderManagerService=t,this._initialize()}_initialize(){this._syncZenEditorSize()}_syncZenEditorSize(){this._zenEditorManagerService.position$.pipe((0,o.takeUntil)(this.dispose$)).subscribe(t=>{if(t==null)return;let{width:n,height:i}=t,a=(0,r.getEditorObject)(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY,this._renderManagerService);a!=null&&requestIdleCallback(()=>{a.engine.resizeBySize(n,i),this._calculatePagePosition(a),this._scrollToTop()})})}_calculatePagePosition(e){let{document:n,scene:r,docBackground:i}=e,a=r==null?void 0:r.getParent(),{width:o,height:s,pageMarginLeft:c,pageMarginTop:l}=n;if(a==null||o===1/0||s===1/0)return;let{width:u,height:d}=a,f=0,p=l,m=0,h=0,g=1/0,{scaleX:_,scaleY:v}=r.getAncestorScale();u>(o+c*2)*_?(f=u/2-o*_/2,f/=_,m=(u-c*2)/_,g=0):(f=c,m=o+c*2,g=(m-u/_)/2),h=d>s?(d-l*2)/v:s+l*2,r.resize(m,h),n.translate(f,p),i.translate(f,p);let y=r.getViewport(t.VIEWPORT_KEY.VIEW_MAIN);if(g!==1/0&&y!=null){let e=y.transScroll2ViewportScrollValue(g,0).x;y.scrollToBarPos({x:e})}return this}_scrollToTop(){var n;let r=(n=this._renderManagerService.getRenderById(e.DOCS_ZEN_EDITOR_UNIT_ID_KEY))==null?void 0:n.with(t.DocBackScrollRenderController);r&&r.scrollToRange({startOffset:0,endOffset:0})}};P=M([j(0,T),j(1,n.IRenderManagerService)],P);let F=class extends e.Plugin{constructor(t=_,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{menu:i,...a}=(0,e.merge)({},_,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(g,a),this._initializeDependencies(this._injector)}_initializeDependencies(e){[[N],[P],[T,{useClass:w}]].forEach(t=>e.add(t))}onReady(){this._injector.get(N)}onSteady(){this._injector.get(P)}};C(F,`pluginName`,`SHEET_ZEN_EDITOR_PLUGIN`),C(F,`packageName`,m),C(F,`version`,h),C(F,`type`,e.UniverInstanceType.UNIVER_SHEET),F=M([j(1,(0,e.Inject)(e.Injector)),j(2,e.IConfigService)],F),exports.CancelZenEditCommand=f,exports.ConfirmZenEditCommand=p,exports.OpenZenEditorCommand=d,Object.defineProperty(exports,`UniverSheetsZenEditorPlugin`,{enumerable:!0,get:function(){return F}});
package/lib/es/index.js CHANGED
@@ -1,13 +1 @@
1
- import{CommandType as e,DEFAULT_EMPTY_DOCUMENT_VALUE as t,DOCS_ZEN_EDITOR_UNIT_ID_KEY as n,Disposable as r,DocumentDataModel as i,DocumentFlavor as a,EDITOR_ACTIVATED as o,FOCUSING_DOC as s,FOCUSING_EDITOR_STANDALONE as c,FOCUSING_UNIVER_EDITOR as l,ICommandService as u,IConfigService as d,IUniverInstanceService as f,Inject as p,Injector as m,Plugin as h,RxDisposable as g,Tools as _,UniverInstanceType as v,createIdentifier as ee,delayAnimationFrame as y,merge as te}from"@univerjs/core";import{DocBackScrollRenderController as b,IEditorService as x,VIEWPORT_KEY as ne}from"@univerjs/docs-ui";import{IRenderManagerService as S}from"@univerjs/engine-render";import{EditingRenderController as re,IEditorBridgeService as C,getCurrentExclusiveRangeInterest$ as ie,getCurrentRangeDisable$ as ae,getEditorObject as oe}from"@univerjs/sheets-ui";import{ContextMenuGroup as se,ContextMenuPosition as ce,IMenuManagerService as le,IShortcutService as ue,ISidebarService as w,IZenZoneService as T,KeyCode as E,MenuItemType as de,MetaKeys as fe,useDependency as D}from"@univerjs/ui";import{RangeProtectionPermissionEditPoint as pe,WorkbookEditablePermission as me,WorksheetEditPermission as he,WorksheetSetCellStylePermission as ge,WorksheetSetCellValuePermission as _e}from"@univerjs/sheets";import{BehaviorSubject as O,map as k,switchMap as A,takeUntil as j}from"rxjs";import{clsx as M}from"@univerjs/design";import{CheckMarkIcon as N,CloseIcon as P}from"@univerjs/icons";import{useEffect as F,useRef as I}from"react";import{jsx as L,jsxs as R}from"react/jsx-runtime";const z={id:`zen-editor.command.open-zen-editor`,type:e.COMMAND,handler:async e=>{var t;let r=e.get(T),i=e.get(x),a=e.get(C),o=e.get(f),s=e.get(w);s.visible&&(s.close(),await y()),r.open();let c=i.getEditor(n);if(c==null)return!1;let l=a.getLatestEditCellState();if(l==null)return!1;let u=(t=l.documentLayoutObject.documentModel)==null?void 0:t.getSnapshot();if(u==null)return!1;o.focusUnit(n);let{body:d,drawings:p,drawingsOrder:m,tableSource:h,settings:g}=_.deepClone(u),v={...c.getDocumentData(),body:d,drawings:p,drawingsOrder:m,tableSource:h,settings:g};return c.focus(),c.setDocumentData(v,[{startOffset:0,endOffset:0,collapsed:!0}]),c.clearUndoRedoHistory(),!0}},B={id:`zen-editor.command.cancel-zen-edit`,type:e.COMMAND,handler:async e=>{let t=e.get(T),n=e.get(C),r=e.get(f),i=e.get(w);i.visible&&(i.close(),await y()),t.close();let a=r.getCurrentUnitForType(v.UNIVER_SHEET);return a?(r.focusUnit(a.getUnitId()),n.refreshEditCellState(),!0):!1}},V={id:`zen-editor.command.confirm-zen-edit`,type:e.COMMAND,handler:async e=>{let t=e.get(T),r=e.get(C),o=e.get(f),s=e.get(x),c=e.get(w);c.visible&&(c.close(),await y()),t.close();let l=s.getEditor(n);if(l==null)return!1;let u=e.get(S),d=o.getCurrentUnitForType(v.UNIVER_SHEET);if(d){var p;let e=d.getUnitId(),t=(p=u.getRenderById(e))==null?void 0:p.with(re);if(t){let e=_.deepClone(l.getDocumentData());e.documentStyle.documentFlavor=a.UNSPECIFIED,t.submitCellData(new i(e))}return o.focusUnit(d.getUnitId()),r.refreshEditCellState(),!0}return!1}};var ve=`@univerjs/sheets-zen-editor`,ye=`0.18.0`;const H=`sheets-zen-editor.config`;Symbol(H);const U={};function be(e){let t=e.get(C);return{id:z.id,type:de.BUTTON,title:`rightClick.zenEditor`,icon:`AmplifyIcon`,hidden$:ie(e),disabled$:t.currentEditCell$.pipe(A(t=>ae(e,{workbookTypes:[me],worksheetTypes:[he,_e,ge],rangeTypes:[pe]}).pipe(k(e=>{var n,r;return e||((n=t==null||(r=t.documentLayoutObject.documentModel)==null||(r=r.getBody())==null||(r=r.customBlocks)==null?void 0:r.length)==null?0:n)>0}))))}}const xe={[ce.MAIN_AREA]:{[se.OTHERS]:{[z.id]:{order:2,menuItemFactory:be}}}};function W(e){"@babel/helpers - typeof";return W=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},W(e)}function Se(e,t){if(W(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(W(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ce(e){var t=Se(e,`string`);return W(t)==`symbol`?t:t+``}function G(e,t,n){return(t=Ce(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var we=class{constructor(){G(this,`_position`,null),G(this,`_position$`,new O(null)),G(this,`position$`,this._position$.asObservable())}dispose(){this._position$.complete(),this._position=null}setPosition(e){this._position=e,this._refresh(e)}getPosition(){return this._position}_refresh(e){this._position$.next(e)}};const K=ee(`univer.sheet-zen-editor-manager.service`),Te={id:n,body:{dataStream:`${t}`,textRuns:[],tables:[],customBlocks:[],paragraphs:[{startIndex:0}],sectionBreaks:[{startIndex:1}]},tableSource:{},documentStyle:{pageSize:{width:595,height:1/0},documentFlavor:a.MODERN,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,renderConfig:{vertexAngle:0,centerAngle:0}},drawings:{},drawingsOrder:[]};function Ee(){let e=I(null),t=D(K),r=D(x),i=D(u);F(()=>{let i=e.current;if(!i)return;let a=r.register({editorUnitId:n,initialSnapshot:Te,scrollBar:!0,backScrollOffset:100},i),o=new ResizeObserver(()=>{t.setPosition(i.getBoundingClientRect())});return o.observe(i),()=>{a.dispose(),o.unobserve(i)}},[]);function a(){let e=r.getEditor(n);e==null||e.blur(),i.executeCommand(B.id)}function o(){let e=r.getEditor(n);e==null||e.blur(),i.executeCommand(V.id)}let s=`univer-flex univer-w-7 univer-cursor-pointer univer-items-center univer-justify-center univer-transition-colors`;return R(`div`,{className:`
2
- univer-absolute univer-inset-0 univer-size-full univer-bg-white
3
- dark:!univer-bg-gray-800
4
- `,children:[R(`div`,{className:`
5
- univer-absolute univer-right-6 univer-top-2 univer-z-10 univer-flex univer-items-center
6
- univer-justify-center
7
- `,children:[L(`span`,{className:M(s,`
8
- univer-text-red-500
9
- hover:univer-text-red-600
10
- `),onClick:a,children:L(P,{className:`univer-size-5`})}),L(`span`,{className:M(s,`
11
- univer-text-green-500
12
- hover:univer-text-green-600
13
- `),onClick:o,children:L(N,{className:`univer-size-5`})})]}),L(`div`,{ref:e,className:`univer-absolute univer-inset-0 univer-size-full`})]})}const q={id:V.id,description:`shortcut.sheet.zen-edit-confirm`,group:`4_sheet-edit`,preconditions:e=>J(e),binding:E.ENTER|fe.ALT},De={id:B.id,description:`shortcut.sheet.zen-edit-cancel`,group:`4_sheet-edit`,preconditions:e=>J(e),binding:E.ESC};function J(e){return e.getContextValue(s)&&e.getContextValue(l)&&e.getContextValue(o)&&!e.getContextValue(c)}function Y(e,t){return function(n,r){t(n,r,e)}}function X(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let Z=class extends r{constructor(e,t,n,r){super(),this._zenZoneService=e,this._commandService=t,this._menuManagerService=n,this._shortcutService=r,this._initialize()}_initialize(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts()}_initCustomComponents(){this.disposeWithMe(this._zenZoneService.set(`ZEN_EDITOR_PLUGIN_ZEN_EDITOR_COMPONENT`,Ee))}_initCommands(){[z,B,V].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(xe)}_initShortcuts(){[q,De].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}};Z=X([Y(0,T),Y(1,u),Y(2,le),Y(3,ue)],Z);let Q=class extends g{constructor(e,t){super(),this._zenEditorManagerService=e,this._renderManagerService=t,this._initialize()}_initialize(){this._syncZenEditorSize()}_syncZenEditorSize(){this._zenEditorManagerService.position$.pipe(j(this.dispose$)).subscribe(e=>{if(e==null)return;let{width:t,height:r}=e,i=oe(n,this._renderManagerService);i!=null&&requestIdleCallback(()=>{i.engine.resizeBySize(t,r),this._calculatePagePosition(i),this._scrollToTop()})})}_calculatePagePosition(e){let{document:t,scene:n,docBackground:r}=e,i=n==null?void 0:n.getParent(),{width:a,height:o,pageMarginLeft:s,pageMarginTop:c}=t;if(i==null||a===1/0||o===1/0)return;let{width:l,height:u}=i,d=0,f=c,p=0,m=0,h=1/0,{scaleX:g,scaleY:_}=n.getAncestorScale();l>(a+s*2)*g?(d=l/2-a*g/2,d/=g,p=(l-s*2)/g,h=0):(d=s,p=a+s*2,h=(p-l/g)/2),m=u>o?(u-c*2)/_:o+c*2,n.resize(p,m),t.translate(d,f),r.translate(d,f);let v=n.getViewport(ne.VIEW_MAIN);if(h!==1/0&&v!=null){let e=v.transScroll2ViewportScrollValue(h,0).x;v.scrollToBarPos({x:e})}return this}_scrollToTop(){var e;let t=(e=this._renderManagerService.getRenderById(n))==null?void 0:e.with(b);t&&t.scrollToRange({startOffset:0,endOffset:0})}};Q=X([Y(0,K),Y(1,S)],Q);let $=class extends h{constructor(e=U,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=te({},U,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(H,i),this._initializeDependencies(this._injector)}_initializeDependencies(e){[[Z],[Q],[K,{useClass:we}]].forEach(t=>e.add(t))}onReady(){this._injector.get(Z)}onSteady(){this._injector.get(Q)}};G($,`pluginName`,`SHEET_ZEN_EDITOR_PLUGIN`),G($,`packageName`,ve),G($,`version`,ye),G($,`type`,v.UNIVER_SHEET),$=X([Y(1,p(m)),Y(2,d)],$);export{B as CancelZenEditCommand,V as ConfirmZenEditCommand,z as OpenZenEditorCommand,$ as UniverSheetsZenEditorPlugin};
1
+ import{CommandType as e,DEFAULT_EMPTY_DOCUMENT_VALUE as t,DOCS_ZEN_EDITOR_UNIT_ID_KEY as n,Disposable as r,DocumentDataModel as i,DocumentFlavor as a,EDITOR_ACTIVATED as o,FOCUSING_DOC as s,FOCUSING_EDITOR_STANDALONE as c,FOCUSING_UNIVER_EDITOR as l,ICommandService as u,IConfigService as d,IUniverInstanceService as f,Inject as p,Injector as m,Plugin as h,RxDisposable as g,Tools as _,UniverInstanceType as v,createIdentifier as ee,delayAnimationFrame as y,merge as te}from"@univerjs/core";import{DocBackScrollRenderController as b,IEditorService as x,VIEWPORT_KEY as ne}from"@univerjs/docs-ui";import{IRenderManagerService as S}from"@univerjs/engine-render";import{EditingRenderController as re,IEditorBridgeService as C,getCurrentExclusiveRangeInterest$ as ie,getCurrentRangeDisable$ as ae,getEditorObject as oe}from"@univerjs/sheets-ui";import{ContextMenuGroup as se,ContextMenuPosition as ce,IMenuManagerService as le,IShortcutService as ue,ISidebarService as w,IZenZoneService as T,KeyCode as E,MenuItemType as de,MetaKeys as fe,useDependency as D}from"@univerjs/ui";import{RangeProtectionPermissionEditPoint as pe,WorkbookEditablePermission as me,WorksheetEditPermission as he,WorksheetSetCellStylePermission as ge,WorksheetSetCellValuePermission as _e}from"@univerjs/sheets";import{BehaviorSubject as O,map as k,switchMap as A,takeUntil as j}from"rxjs";import{clsx as M}from"@univerjs/design";import{CheckMarkIcon as N,CloseIcon as P}from"@univerjs/icons";import{useEffect as F,useRef as I}from"react";import{jsx as L,jsxs as R}from"react/jsx-runtime";const z={id:`zen-editor.command.open-zen-editor`,type:e.COMMAND,handler:async e=>{var t;let r=e.get(T),i=e.get(x),a=e.get(C),o=e.get(f),s=e.get(w);s.visible&&(s.close(),await y()),r.open();let c=i.getEditor(n);if(c==null)return!1;let l=a.getLatestEditCellState();if(l==null)return!1;let u=(t=l.documentLayoutObject.documentModel)==null?void 0:t.getSnapshot();if(u==null)return!1;o.focusUnit(n);let{body:d,drawings:p,drawingsOrder:m,tableSource:h,settings:g}=_.deepClone(u),v={...c.getDocumentData(),body:d,drawings:p,drawingsOrder:m,tableSource:h,settings:g};return c.focus(),c.setDocumentData(v,[{startOffset:0,endOffset:0,collapsed:!0}]),c.clearUndoRedoHistory(),!0}},B={id:`zen-editor.command.cancel-zen-edit`,type:e.COMMAND,handler:async e=>{let t=e.get(T),n=e.get(C),r=e.get(f),i=e.get(w);i.visible&&(i.close(),await y()),t.close();let a=r.getCurrentUnitForType(v.UNIVER_SHEET);return a?(r.focusUnit(a.getUnitId()),n.refreshEditCellState(),!0):!1}},V={id:`zen-editor.command.confirm-zen-edit`,type:e.COMMAND,handler:async e=>{let t=e.get(T),r=e.get(C),o=e.get(f),s=e.get(x),c=e.get(w);c.visible&&(c.close(),await y()),t.close();let l=s.getEditor(n);if(l==null)return!1;let u=e.get(S),d=o.getCurrentUnitForType(v.UNIVER_SHEET);if(d){var p;let e=d.getUnitId(),t=(p=u.getRenderById(e))==null?void 0:p.with(re);if(t){let e=_.deepClone(l.getDocumentData());e.documentStyle.documentFlavor=a.UNSPECIFIED,t.submitCellData(new i(e))}return o.focusUnit(d.getUnitId()),r.refreshEditCellState(),!0}return!1}};var ve=`@univerjs/sheets-zen-editor`,ye=`0.19.0`;const H=`sheets-zen-editor.config`;Symbol(H);const U={};function be(e){let t=e.get(C);return{id:z.id,type:de.BUTTON,title:`rightClick.zenEditor`,icon:`AmplifyIcon`,hidden$:ie(e),disabled$:t.currentEditCell$.pipe(A(t=>ae(e,{workbookTypes:[me],worksheetTypes:[he,_e,ge],rangeTypes:[pe]}).pipe(k(e=>{var n,r;return e||((n=t==null||(r=t.documentLayoutObject.documentModel)==null||(r=r.getBody())==null||(r=r.customBlocks)==null?void 0:r.length)==null?0:n)>0}))))}}const xe={[ce.MAIN_AREA]:{[se.OTHERS]:{[z.id]:{order:2,menuItemFactory:be}}}};function W(e){"@babel/helpers - typeof";return W=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},W(e)}function Se(e,t){if(W(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(W(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ce(e){var t=Se(e,`string`);return W(t)==`symbol`?t:t+``}function G(e,t,n){return(t=Ce(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var we=class{constructor(){G(this,`_position`,null),G(this,`_position$`,new O(null)),G(this,`position$`,this._position$.asObservable())}dispose(){this._position$.complete(),this._position=null}setPosition(e){this._position=e,this._refresh(e)}getPosition(){return this._position}_refresh(e){this._position$.next(e)}};const K=ee(`univer.sheet-zen-editor-manager.service`),Te={id:n,body:{dataStream:`${t}`,textRuns:[],tables:[],customBlocks:[],paragraphs:[{startIndex:0}],sectionBreaks:[{startIndex:1}]},tableSource:{},documentStyle:{pageSize:{width:595,height:1/0},documentFlavor:a.MODERN,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,renderConfig:{vertexAngle:0,centerAngle:0}},drawings:{},drawingsOrder:[]};function Ee(){let e=I(null),t=D(K),r=D(x),i=D(u);F(()=>{let i=e.current;if(!i)return;let a=r.register({editorUnitId:n,initialSnapshot:Te,scrollBar:!0,backScrollOffset:100},i),o=new ResizeObserver(()=>{t.setPosition(i.getBoundingClientRect())});return o.observe(i),()=>{a.dispose(),o.unobserve(i)}},[]);function a(){let e=r.getEditor(n);e==null||e.blur(),i.executeCommand(B.id)}function o(){let e=r.getEditor(n);e==null||e.blur(),i.executeCommand(V.id)}let s=`univer-flex univer-w-7 univer-cursor-pointer univer-items-center univer-justify-center univer-transition-colors`;return R(`div`,{className:`univer-absolute univer-inset-0 univer-size-full univer-bg-white dark:!univer-bg-gray-800`,children:[R(`div`,{className:`univer-absolute univer-right-6 univer-top-2 univer-z-10 univer-flex univer-items-center univer-justify-center`,children:[L(`span`,{className:M(s,`univer-text-red-500 hover:univer-text-red-600`),onClick:a,children:L(P,{className:`univer-size-5`})}),L(`span`,{className:M(s,`univer-text-green-500 hover:univer-text-green-600`),onClick:o,children:L(N,{className:`univer-size-5`})})]}),L(`div`,{ref:e,className:`univer-absolute univer-inset-0 univer-size-full`})]})}const q={id:V.id,description:`shortcut.sheet.zen-edit-confirm`,group:`4_sheet-edit`,preconditions:e=>J(e),binding:E.ENTER|fe.ALT},De={id:B.id,description:`shortcut.sheet.zen-edit-cancel`,group:`4_sheet-edit`,preconditions:e=>J(e),binding:E.ESC};function J(e){return e.getContextValue(s)&&e.getContextValue(l)&&e.getContextValue(o)&&!e.getContextValue(c)}function Y(e,t){return function(n,r){t(n,r,e)}}function X(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let Z=class extends r{constructor(e,t,n,r){super(),this._zenZoneService=e,this._commandService=t,this._menuManagerService=n,this._shortcutService=r,this._initialize()}_initialize(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts()}_initCustomComponents(){this.disposeWithMe(this._zenZoneService.set(`ZEN_EDITOR_PLUGIN_ZEN_EDITOR_COMPONENT`,Ee))}_initCommands(){[z,B,V].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(xe)}_initShortcuts(){[q,De].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}};Z=X([Y(0,T),Y(1,u),Y(2,le),Y(3,ue)],Z);let Q=class extends g{constructor(e,t){super(),this._zenEditorManagerService=e,this._renderManagerService=t,this._initialize()}_initialize(){this._syncZenEditorSize()}_syncZenEditorSize(){this._zenEditorManagerService.position$.pipe(j(this.dispose$)).subscribe(e=>{if(e==null)return;let{width:t,height:r}=e,i=oe(n,this._renderManagerService);i!=null&&requestIdleCallback(()=>{i.engine.resizeBySize(t,r),this._calculatePagePosition(i),this._scrollToTop()})})}_calculatePagePosition(e){let{document:t,scene:n,docBackground:r}=e,i=n==null?void 0:n.getParent(),{width:a,height:o,pageMarginLeft:s,pageMarginTop:c}=t;if(i==null||a===1/0||o===1/0)return;let{width:l,height:u}=i,d=0,f=c,p=0,m=0,h=1/0,{scaleX:g,scaleY:_}=n.getAncestorScale();l>(a+s*2)*g?(d=l/2-a*g/2,d/=g,p=(l-s*2)/g,h=0):(d=s,p=a+s*2,h=(p-l/g)/2),m=u>o?(u-c*2)/_:o+c*2,n.resize(p,m),t.translate(d,f),r.translate(d,f);let v=n.getViewport(ne.VIEW_MAIN);if(h!==1/0&&v!=null){let e=v.transScroll2ViewportScrollValue(h,0).x;v.scrollToBarPos({x:e})}return this}_scrollToTop(){var e;let t=(e=this._renderManagerService.getRenderById(n))==null?void 0:e.with(b);t&&t.scrollToRange({startOffset:0,endOffset:0})}};Q=X([Y(0,K),Y(1,S)],Q);let $=class extends h{constructor(e=U,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=te({},U,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(H,i),this._initializeDependencies(this._injector)}_initializeDependencies(e){[[Z],[Q],[K,{useClass:we}]].forEach(t=>e.add(t))}onReady(){this._injector.get(Z)}onSteady(){this._injector.get(Q)}};G($,`pluginName`,`SHEET_ZEN_EDITOR_PLUGIN`),G($,`packageName`,ve),G($,`version`,ye),G($,`type`,v.UNIVER_SHEET),$=X([Y(1,p(m)),Y(2,d)],$);export{B as CancelZenEditCommand,V as ConfirmZenEditCommand,z as OpenZenEditorCommand,$ as UniverSheetsZenEditorPlugin};
package/lib/index.js CHANGED
@@ -1,13 +1 @@
1
- import{CommandType as e,DEFAULT_EMPTY_DOCUMENT_VALUE as t,DOCS_ZEN_EDITOR_UNIT_ID_KEY as n,Disposable as r,DocumentDataModel as i,DocumentFlavor as a,EDITOR_ACTIVATED as o,FOCUSING_DOC as s,FOCUSING_EDITOR_STANDALONE as c,FOCUSING_UNIVER_EDITOR as l,ICommandService as u,IConfigService as d,IUniverInstanceService as f,Inject as p,Injector as m,Plugin as h,RxDisposable as g,Tools as _,UniverInstanceType as v,createIdentifier as ee,delayAnimationFrame as y,merge as te}from"@univerjs/core";import{DocBackScrollRenderController as b,IEditorService as x,VIEWPORT_KEY as ne}from"@univerjs/docs-ui";import{IRenderManagerService as S}from"@univerjs/engine-render";import{EditingRenderController as re,IEditorBridgeService as C,getCurrentExclusiveRangeInterest$ as ie,getCurrentRangeDisable$ as ae,getEditorObject as oe}from"@univerjs/sheets-ui";import{ContextMenuGroup as se,ContextMenuPosition as ce,IMenuManagerService as le,IShortcutService as ue,ISidebarService as w,IZenZoneService as T,KeyCode as E,MenuItemType as de,MetaKeys as fe,useDependency as D}from"@univerjs/ui";import{RangeProtectionPermissionEditPoint as pe,WorkbookEditablePermission as me,WorksheetEditPermission as he,WorksheetSetCellStylePermission as ge,WorksheetSetCellValuePermission as _e}from"@univerjs/sheets";import{BehaviorSubject as O,map as k,switchMap as A,takeUntil as j}from"rxjs";import{clsx as M}from"@univerjs/design";import{CheckMarkIcon as N,CloseIcon as P}from"@univerjs/icons";import{useEffect as F,useRef as I}from"react";import{jsx as L,jsxs as R}from"react/jsx-runtime";const z={id:`zen-editor.command.open-zen-editor`,type:e.COMMAND,handler:async e=>{var t;let r=e.get(T),i=e.get(x),a=e.get(C),o=e.get(f),s=e.get(w);s.visible&&(s.close(),await y()),r.open();let c=i.getEditor(n);if(c==null)return!1;let l=a.getLatestEditCellState();if(l==null)return!1;let u=(t=l.documentLayoutObject.documentModel)==null?void 0:t.getSnapshot();if(u==null)return!1;o.focusUnit(n);let{body:d,drawings:p,drawingsOrder:m,tableSource:h,settings:g}=_.deepClone(u),v={...c.getDocumentData(),body:d,drawings:p,drawingsOrder:m,tableSource:h,settings:g};return c.focus(),c.setDocumentData(v,[{startOffset:0,endOffset:0,collapsed:!0}]),c.clearUndoRedoHistory(),!0}},B={id:`zen-editor.command.cancel-zen-edit`,type:e.COMMAND,handler:async e=>{let t=e.get(T),n=e.get(C),r=e.get(f),i=e.get(w);i.visible&&(i.close(),await y()),t.close();let a=r.getCurrentUnitForType(v.UNIVER_SHEET);return a?(r.focusUnit(a.getUnitId()),n.refreshEditCellState(),!0):!1}},V={id:`zen-editor.command.confirm-zen-edit`,type:e.COMMAND,handler:async e=>{let t=e.get(T),r=e.get(C),o=e.get(f),s=e.get(x),c=e.get(w);c.visible&&(c.close(),await y()),t.close();let l=s.getEditor(n);if(l==null)return!1;let u=e.get(S),d=o.getCurrentUnitForType(v.UNIVER_SHEET);if(d){var p;let e=d.getUnitId(),t=(p=u.getRenderById(e))==null?void 0:p.with(re);if(t){let e=_.deepClone(l.getDocumentData());e.documentStyle.documentFlavor=a.UNSPECIFIED,t.submitCellData(new i(e))}return o.focusUnit(d.getUnitId()),r.refreshEditCellState(),!0}return!1}};var ve=`@univerjs/sheets-zen-editor`,ye=`0.18.0`;const H=`sheets-zen-editor.config`;Symbol(H);const U={};function be(e){let t=e.get(C);return{id:z.id,type:de.BUTTON,title:`rightClick.zenEditor`,icon:`AmplifyIcon`,hidden$:ie(e),disabled$:t.currentEditCell$.pipe(A(t=>ae(e,{workbookTypes:[me],worksheetTypes:[he,_e,ge],rangeTypes:[pe]}).pipe(k(e=>{var n,r;return e||((n=t==null||(r=t.documentLayoutObject.documentModel)==null||(r=r.getBody())==null||(r=r.customBlocks)==null?void 0:r.length)==null?0:n)>0}))))}}const xe={[ce.MAIN_AREA]:{[se.OTHERS]:{[z.id]:{order:2,menuItemFactory:be}}}};function W(e){"@babel/helpers - typeof";return W=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},W(e)}function Se(e,t){if(W(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(W(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ce(e){var t=Se(e,`string`);return W(t)==`symbol`?t:t+``}function G(e,t,n){return(t=Ce(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var we=class{constructor(){G(this,`_position`,null),G(this,`_position$`,new O(null)),G(this,`position$`,this._position$.asObservable())}dispose(){this._position$.complete(),this._position=null}setPosition(e){this._position=e,this._refresh(e)}getPosition(){return this._position}_refresh(e){this._position$.next(e)}};const K=ee(`univer.sheet-zen-editor-manager.service`),Te={id:n,body:{dataStream:`${t}`,textRuns:[],tables:[],customBlocks:[],paragraphs:[{startIndex:0}],sectionBreaks:[{startIndex:1}]},tableSource:{},documentStyle:{pageSize:{width:595,height:1/0},documentFlavor:a.MODERN,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,renderConfig:{vertexAngle:0,centerAngle:0}},drawings:{},drawingsOrder:[]};function Ee(){let e=I(null),t=D(K),r=D(x),i=D(u);F(()=>{let i=e.current;if(!i)return;let a=r.register({editorUnitId:n,initialSnapshot:Te,scrollBar:!0,backScrollOffset:100},i),o=new ResizeObserver(()=>{t.setPosition(i.getBoundingClientRect())});return o.observe(i),()=>{a.dispose(),o.unobserve(i)}},[]);function a(){let e=r.getEditor(n);e==null||e.blur(),i.executeCommand(B.id)}function o(){let e=r.getEditor(n);e==null||e.blur(),i.executeCommand(V.id)}let s=`univer-flex univer-w-7 univer-cursor-pointer univer-items-center univer-justify-center univer-transition-colors`;return R(`div`,{className:`
2
- univer-absolute univer-inset-0 univer-size-full univer-bg-white
3
- dark:!univer-bg-gray-800
4
- `,children:[R(`div`,{className:`
5
- univer-absolute univer-right-6 univer-top-2 univer-z-10 univer-flex univer-items-center
6
- univer-justify-center
7
- `,children:[L(`span`,{className:M(s,`
8
- univer-text-red-500
9
- hover:univer-text-red-600
10
- `),onClick:a,children:L(P,{className:`univer-size-5`})}),L(`span`,{className:M(s,`
11
- univer-text-green-500
12
- hover:univer-text-green-600
13
- `),onClick:o,children:L(N,{className:`univer-size-5`})})]}),L(`div`,{ref:e,className:`univer-absolute univer-inset-0 univer-size-full`})]})}const q={id:V.id,description:`shortcut.sheet.zen-edit-confirm`,group:`4_sheet-edit`,preconditions:e=>J(e),binding:E.ENTER|fe.ALT},De={id:B.id,description:`shortcut.sheet.zen-edit-cancel`,group:`4_sheet-edit`,preconditions:e=>J(e),binding:E.ESC};function J(e){return e.getContextValue(s)&&e.getContextValue(l)&&e.getContextValue(o)&&!e.getContextValue(c)}function Y(e,t){return function(n,r){t(n,r,e)}}function X(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let Z=class extends r{constructor(e,t,n,r){super(),this._zenZoneService=e,this._commandService=t,this._menuManagerService=n,this._shortcutService=r,this._initialize()}_initialize(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts()}_initCustomComponents(){this.disposeWithMe(this._zenZoneService.set(`ZEN_EDITOR_PLUGIN_ZEN_EDITOR_COMPONENT`,Ee))}_initCommands(){[z,B,V].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(xe)}_initShortcuts(){[q,De].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}};Z=X([Y(0,T),Y(1,u),Y(2,le),Y(3,ue)],Z);let Q=class extends g{constructor(e,t){super(),this._zenEditorManagerService=e,this._renderManagerService=t,this._initialize()}_initialize(){this._syncZenEditorSize()}_syncZenEditorSize(){this._zenEditorManagerService.position$.pipe(j(this.dispose$)).subscribe(e=>{if(e==null)return;let{width:t,height:r}=e,i=oe(n,this._renderManagerService);i!=null&&requestIdleCallback(()=>{i.engine.resizeBySize(t,r),this._calculatePagePosition(i),this._scrollToTop()})})}_calculatePagePosition(e){let{document:t,scene:n,docBackground:r}=e,i=n==null?void 0:n.getParent(),{width:a,height:o,pageMarginLeft:s,pageMarginTop:c}=t;if(i==null||a===1/0||o===1/0)return;let{width:l,height:u}=i,d=0,f=c,p=0,m=0,h=1/0,{scaleX:g,scaleY:_}=n.getAncestorScale();l>(a+s*2)*g?(d=l/2-a*g/2,d/=g,p=(l-s*2)/g,h=0):(d=s,p=a+s*2,h=(p-l/g)/2),m=u>o?(u-c*2)/_:o+c*2,n.resize(p,m),t.translate(d,f),r.translate(d,f);let v=n.getViewport(ne.VIEW_MAIN);if(h!==1/0&&v!=null){let e=v.transScroll2ViewportScrollValue(h,0).x;v.scrollToBarPos({x:e})}return this}_scrollToTop(){var e;let t=(e=this._renderManagerService.getRenderById(n))==null?void 0:e.with(b);t&&t.scrollToRange({startOffset:0,endOffset:0})}};Q=X([Y(0,K),Y(1,S)],Q);let $=class extends h{constructor(e=U,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=te({},U,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(H,i),this._initializeDependencies(this._injector)}_initializeDependencies(e){[[Z],[Q],[K,{useClass:we}]].forEach(t=>e.add(t))}onReady(){this._injector.get(Z)}onSteady(){this._injector.get(Q)}};G($,`pluginName`,`SHEET_ZEN_EDITOR_PLUGIN`),G($,`packageName`,ve),G($,`version`,ye),G($,`type`,v.UNIVER_SHEET),$=X([Y(1,p(m)),Y(2,d)],$);export{B as CancelZenEditCommand,V as ConfirmZenEditCommand,z as OpenZenEditorCommand,$ as UniverSheetsZenEditorPlugin};
1
+ import{CommandType as e,DEFAULT_EMPTY_DOCUMENT_VALUE as t,DOCS_ZEN_EDITOR_UNIT_ID_KEY as n,Disposable as r,DocumentDataModel as i,DocumentFlavor as a,EDITOR_ACTIVATED as o,FOCUSING_DOC as s,FOCUSING_EDITOR_STANDALONE as c,FOCUSING_UNIVER_EDITOR as l,ICommandService as u,IConfigService as d,IUniverInstanceService as f,Inject as p,Injector as m,Plugin as h,RxDisposable as g,Tools as _,UniverInstanceType as v,createIdentifier as ee,delayAnimationFrame as y,merge as te}from"@univerjs/core";import{DocBackScrollRenderController as b,IEditorService as x,VIEWPORT_KEY as ne}from"@univerjs/docs-ui";import{IRenderManagerService as S}from"@univerjs/engine-render";import{EditingRenderController as re,IEditorBridgeService as C,getCurrentExclusiveRangeInterest$ as ie,getCurrentRangeDisable$ as ae,getEditorObject as oe}from"@univerjs/sheets-ui";import{ContextMenuGroup as se,ContextMenuPosition as ce,IMenuManagerService as le,IShortcutService as ue,ISidebarService as w,IZenZoneService as T,KeyCode as E,MenuItemType as de,MetaKeys as fe,useDependency as D}from"@univerjs/ui";import{RangeProtectionPermissionEditPoint as pe,WorkbookEditablePermission as me,WorksheetEditPermission as he,WorksheetSetCellStylePermission as ge,WorksheetSetCellValuePermission as _e}from"@univerjs/sheets";import{BehaviorSubject as O,map as k,switchMap as A,takeUntil as j}from"rxjs";import{clsx as M}from"@univerjs/design";import{CheckMarkIcon as N,CloseIcon as P}from"@univerjs/icons";import{useEffect as F,useRef as I}from"react";import{jsx as L,jsxs as R}from"react/jsx-runtime";const z={id:`zen-editor.command.open-zen-editor`,type:e.COMMAND,handler:async e=>{var t;let r=e.get(T),i=e.get(x),a=e.get(C),o=e.get(f),s=e.get(w);s.visible&&(s.close(),await y()),r.open();let c=i.getEditor(n);if(c==null)return!1;let l=a.getLatestEditCellState();if(l==null)return!1;let u=(t=l.documentLayoutObject.documentModel)==null?void 0:t.getSnapshot();if(u==null)return!1;o.focusUnit(n);let{body:d,drawings:p,drawingsOrder:m,tableSource:h,settings:g}=_.deepClone(u),v={...c.getDocumentData(),body:d,drawings:p,drawingsOrder:m,tableSource:h,settings:g};return c.focus(),c.setDocumentData(v,[{startOffset:0,endOffset:0,collapsed:!0}]),c.clearUndoRedoHistory(),!0}},B={id:`zen-editor.command.cancel-zen-edit`,type:e.COMMAND,handler:async e=>{let t=e.get(T),n=e.get(C),r=e.get(f),i=e.get(w);i.visible&&(i.close(),await y()),t.close();let a=r.getCurrentUnitForType(v.UNIVER_SHEET);return a?(r.focusUnit(a.getUnitId()),n.refreshEditCellState(),!0):!1}},V={id:`zen-editor.command.confirm-zen-edit`,type:e.COMMAND,handler:async e=>{let t=e.get(T),r=e.get(C),o=e.get(f),s=e.get(x),c=e.get(w);c.visible&&(c.close(),await y()),t.close();let l=s.getEditor(n);if(l==null)return!1;let u=e.get(S),d=o.getCurrentUnitForType(v.UNIVER_SHEET);if(d){var p;let e=d.getUnitId(),t=(p=u.getRenderById(e))==null?void 0:p.with(re);if(t){let e=_.deepClone(l.getDocumentData());e.documentStyle.documentFlavor=a.UNSPECIFIED,t.submitCellData(new i(e))}return o.focusUnit(d.getUnitId()),r.refreshEditCellState(),!0}return!1}};var ve=`@univerjs/sheets-zen-editor`,ye=`0.19.0`;const H=`sheets-zen-editor.config`;Symbol(H);const U={};function be(e){let t=e.get(C);return{id:z.id,type:de.BUTTON,title:`rightClick.zenEditor`,icon:`AmplifyIcon`,hidden$:ie(e),disabled$:t.currentEditCell$.pipe(A(t=>ae(e,{workbookTypes:[me],worksheetTypes:[he,_e,ge],rangeTypes:[pe]}).pipe(k(e=>{var n,r;return e||((n=t==null||(r=t.documentLayoutObject.documentModel)==null||(r=r.getBody())==null||(r=r.customBlocks)==null?void 0:r.length)==null?0:n)>0}))))}}const xe={[ce.MAIN_AREA]:{[se.OTHERS]:{[z.id]:{order:2,menuItemFactory:be}}}};function W(e){"@babel/helpers - typeof";return W=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},W(e)}function Se(e,t){if(W(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(W(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Ce(e){var t=Se(e,`string`);return W(t)==`symbol`?t:t+``}function G(e,t,n){return(t=Ce(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var we=class{constructor(){G(this,`_position`,null),G(this,`_position$`,new O(null)),G(this,`position$`,this._position$.asObservable())}dispose(){this._position$.complete(),this._position=null}setPosition(e){this._position=e,this._refresh(e)}getPosition(){return this._position}_refresh(e){this._position$.next(e)}};const K=ee(`univer.sheet-zen-editor-manager.service`),Te={id:n,body:{dataStream:`${t}`,textRuns:[],tables:[],customBlocks:[],paragraphs:[{startIndex:0}],sectionBreaks:[{startIndex:1}]},tableSource:{},documentStyle:{pageSize:{width:595,height:1/0},documentFlavor:a.MODERN,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,renderConfig:{vertexAngle:0,centerAngle:0}},drawings:{},drawingsOrder:[]};function Ee(){let e=I(null),t=D(K),r=D(x),i=D(u);F(()=>{let i=e.current;if(!i)return;let a=r.register({editorUnitId:n,initialSnapshot:Te,scrollBar:!0,backScrollOffset:100},i),o=new ResizeObserver(()=>{t.setPosition(i.getBoundingClientRect())});return o.observe(i),()=>{a.dispose(),o.unobserve(i)}},[]);function a(){let e=r.getEditor(n);e==null||e.blur(),i.executeCommand(B.id)}function o(){let e=r.getEditor(n);e==null||e.blur(),i.executeCommand(V.id)}let s=`univer-flex univer-w-7 univer-cursor-pointer univer-items-center univer-justify-center univer-transition-colors`;return R(`div`,{className:`univer-absolute univer-inset-0 univer-size-full univer-bg-white dark:!univer-bg-gray-800`,children:[R(`div`,{className:`univer-absolute univer-right-6 univer-top-2 univer-z-10 univer-flex univer-items-center univer-justify-center`,children:[L(`span`,{className:M(s,`univer-text-red-500 hover:univer-text-red-600`),onClick:a,children:L(P,{className:`univer-size-5`})}),L(`span`,{className:M(s,`univer-text-green-500 hover:univer-text-green-600`),onClick:o,children:L(N,{className:`univer-size-5`})})]}),L(`div`,{ref:e,className:`univer-absolute univer-inset-0 univer-size-full`})]})}const q={id:V.id,description:`shortcut.sheet.zen-edit-confirm`,group:`4_sheet-edit`,preconditions:e=>J(e),binding:E.ENTER|fe.ALT},De={id:B.id,description:`shortcut.sheet.zen-edit-cancel`,group:`4_sheet-edit`,preconditions:e=>J(e),binding:E.ESC};function J(e){return e.getContextValue(s)&&e.getContextValue(l)&&e.getContextValue(o)&&!e.getContextValue(c)}function Y(e,t){return function(n,r){t(n,r,e)}}function X(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let Z=class extends r{constructor(e,t,n,r){super(),this._zenZoneService=e,this._commandService=t,this._menuManagerService=n,this._shortcutService=r,this._initialize()}_initialize(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts()}_initCustomComponents(){this.disposeWithMe(this._zenZoneService.set(`ZEN_EDITOR_PLUGIN_ZEN_EDITOR_COMPONENT`,Ee))}_initCommands(){[z,B,V].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(xe)}_initShortcuts(){[q,De].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}};Z=X([Y(0,T),Y(1,u),Y(2,le),Y(3,ue)],Z);let Q=class extends g{constructor(e,t){super(),this._zenEditorManagerService=e,this._renderManagerService=t,this._initialize()}_initialize(){this._syncZenEditorSize()}_syncZenEditorSize(){this._zenEditorManagerService.position$.pipe(j(this.dispose$)).subscribe(e=>{if(e==null)return;let{width:t,height:r}=e,i=oe(n,this._renderManagerService);i!=null&&requestIdleCallback(()=>{i.engine.resizeBySize(t,r),this._calculatePagePosition(i),this._scrollToTop()})})}_calculatePagePosition(e){let{document:t,scene:n,docBackground:r}=e,i=n==null?void 0:n.getParent(),{width:a,height:o,pageMarginLeft:s,pageMarginTop:c}=t;if(i==null||a===1/0||o===1/0)return;let{width:l,height:u}=i,d=0,f=c,p=0,m=0,h=1/0,{scaleX:g,scaleY:_}=n.getAncestorScale();l>(a+s*2)*g?(d=l/2-a*g/2,d/=g,p=(l-s*2)/g,h=0):(d=s,p=a+s*2,h=(p-l/g)/2),m=u>o?(u-c*2)/_:o+c*2,n.resize(p,m),t.translate(d,f),r.translate(d,f);let v=n.getViewport(ne.VIEW_MAIN);if(h!==1/0&&v!=null){let e=v.transScroll2ViewportScrollValue(h,0).x;v.scrollToBarPos({x:e})}return this}_scrollToTop(){var e;let t=(e=this._renderManagerService.getRenderById(n))==null?void 0:e.with(b);t&&t.scrollToRange({startOffset:0,endOffset:0})}};Q=X([Y(0,K),Y(1,S)],Q);let $=class extends h{constructor(e=U,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=te({},U,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(H,i),this._initializeDependencies(this._injector)}_initializeDependencies(e){[[Z],[Q],[K,{useClass:we}]].forEach(t=>e.add(t))}onReady(){this._injector.get(Z)}onSteady(){this._injector.get(Q)}};G($,`pluginName`,`SHEET_ZEN_EDITOR_PLUGIN`),G($,`packageName`,ve),G($,`version`,ye),G($,`type`,v.UNIVER_SHEET),$=X([Y(1,p(m)),Y(2,d)],$);export{B as CancelZenEditCommand,V as ConfirmZenEditCommand,z as OpenZenEditorCommand,$ as UniverSheetsZenEditorPlugin};
package/lib/umd/index.js CHANGED
@@ -1,13 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/docs-ui`),require(`@univerjs/engine-render`),require(`@univerjs/sheets-ui`),require(`@univerjs/ui`),require(`@univerjs/sheets`),require(`rxjs`),require(`@univerjs/design`),require(`react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs-ui`,`@univerjs/engine-render`,`@univerjs/sheets-ui`,`@univerjs/ui`,`@univerjs/sheets`,`rxjs`,`@univerjs/design`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsZenEditor={},e.UniverCore,e.UniverDocsUi,e.UniverEngineRender,e.UniverSheetsUi,e.UniverUi,e.UniverSheets,e.rxjs,e.UniverDesign,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let d={id:`zen-editor.command.open-zen-editor`,type:t.CommandType.COMMAND,handler:async e=>{var r;let o=e.get(a.IZenZoneService),s=e.get(n.IEditorService),c=e.get(i.IEditorBridgeService),l=e.get(t.IUniverInstanceService),u=e.get(a.ISidebarService);u.visible&&(u.close(),await(0,t.delayAnimationFrame)()),o.open();let d=s.getEditor(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);if(d==null)return!1;let f=c.getLatestEditCellState();if(f==null)return!1;let p=(r=f.documentLayoutObject.documentModel)==null?void 0:r.getSnapshot();if(p==null)return!1;l.focusUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);let{body:m,drawings:h,drawingsOrder:g,tableSource:_,settings:v}=t.Tools.deepClone(p),y={...d.getDocumentData(),body:m,drawings:h,drawingsOrder:g,tableSource:_,settings:v};return d.focus(),d.setDocumentData(y,[{startOffset:0,endOffset:0,collapsed:!0}]),d.clearUndoRedoHistory(),!0}},f={id:`zen-editor.command.cancel-zen-edit`,type:t.CommandType.COMMAND,handler:async e=>{let n=e.get(a.IZenZoneService),r=e.get(i.IEditorBridgeService),o=e.get(t.IUniverInstanceService),s=e.get(a.ISidebarService);s.visible&&(s.close(),await(0,t.delayAnimationFrame)()),n.close();let c=o.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);return c?(o.focusUnit(c.getUnitId()),r.refreshEditCellState(),!0):!1}},p={id:`zen-editor.command.confirm-zen-edit`,type:t.CommandType.COMMAND,handler:async e=>{let o=e.get(a.IZenZoneService),s=e.get(i.IEditorBridgeService),c=e.get(t.IUniverInstanceService),l=e.get(n.IEditorService),u=e.get(a.ISidebarService);u.visible&&(u.close(),await(0,t.delayAnimationFrame)()),o.close();let d=l.getEditor(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);if(d==null)return!1;let f=e.get(r.IRenderManagerService),p=c.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(p){var m;let e=p.getUnitId(),n=(m=f.getRenderById(e))==null?void 0:m.with(i.EditingRenderController);if(n){let e=t.Tools.deepClone(d.getDocumentData());e.documentStyle.documentFlavor=t.DocumentFlavor.UNSPECIFIED,n.submitCellData(new t.DocumentDataModel(e))}return c.focusUnit(p.getUnitId()),s.refreshEditCellState(),!0}return!1}};var m=`@univerjs/sheets-zen-editor`,h=`0.18.0`;let g=`sheets-zen-editor.config`;Symbol(g);let _={};function v(e){let t=e.get(i.IEditorBridgeService);return{id:d.id,type:a.MenuItemType.BUTTON,title:`rightClick.zenEditor`,icon:`AmplifyIcon`,hidden$:(0,i.getCurrentExclusiveRangeInterest$)(e),disabled$:t.currentEditCell$.pipe((0,s.switchMap)(t=>(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[o.WorkbookEditablePermission],worksheetTypes:[o.WorksheetEditPermission,o.WorksheetSetCellValuePermission,o.WorksheetSetCellStylePermission],rangeTypes:[o.RangeProtectionPermissionEditPoint]}).pipe((0,s.map)(e=>{var n,r;return e||((n=t==null||(r=t.documentLayoutObject.documentModel)==null||(r=r.getBody())==null||(r=r.customBlocks)==null?void 0:r.length)==null?0:n)>0}))))}}let y={[a.ContextMenuPosition.MAIN_AREA]:{[a.ContextMenuGroup.OTHERS]:{[d.id]:{order:2,menuItemFactory:v}}}};function b({ref:e,...t}){let{icon:n,id:r,className:i,extend:a,...o}=t,s=`univerjs-icon univerjs-icon-${r} ${i||``}`.trim(),c=(0,l.useRef)(`_${w()}`);return x(n,`${r}`,{defIds:n.defIds,idSuffix:c.current},{ref:e,className:s,...o},a)}function x(e,t,n,r,i){return(0,l.createElement)(e.tag,{key:t,...S(e,n,i),...r},(C(e,n).children||[]).map((r,a)=>x(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function S(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function C(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function w(){return Math.random().toString(36).substring(2,8)}b.displayName=`UniverIcon`;let T={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},E=(0,l.forwardRef)(function(e,t){return(0,l.createElement)(b,Object.assign({},e,{id:`check-mark-icon`,ref:t,icon:T}))});E.displayName=`CheckMarkIcon`;let D={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z`}}]},O=(0,l.forwardRef)(function(e,t){return(0,l.createElement)(b,Object.assign({},e,{id:`close-icon`,ref:t,icon:D}))});O.displayName=`CloseIcon`;function k(e){"@babel/helpers - typeof";return k=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},k(e)}function A(e,t){if(k(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(k(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function j(e){var t=A(e,`string`);return k(t)==`symbol`?t:t+``}function M(e,t,n){return(t=j(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var N=class{constructor(){M(this,`_position`,null),M(this,`_position$`,new s.BehaviorSubject(null)),M(this,`position$`,this._position$.asObservable())}dispose(){this._position$.complete(),this._position=null}setPosition(e){this._position=e,this._refresh(e)}getPosition(){return this._position}_refresh(e){this._position$.next(e)}};let P=(0,t.createIdentifier)(`univer.sheet-zen-editor-manager.service`),F={id:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,body:{dataStream:`${t.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],tables:[],customBlocks:[],paragraphs:[{startIndex:0}],sectionBreaks:[{startIndex:1}]},tableSource:{},documentStyle:{pageSize:{width:595,height:1/0},documentFlavor:t.DocumentFlavor.MODERN,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,renderConfig:{vertexAngle:0,centerAngle:0}},drawings:{},drawingsOrder:[]};function I(){let e=(0,l.useRef)(null),r=(0,a.useDependency)(P),i=(0,a.useDependency)(n.IEditorService),o=(0,a.useDependency)(t.ICommandService);(0,l.useEffect)(()=>{let n=e.current;if(!n)return;let a=i.register({editorUnitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,initialSnapshot:F,scrollBar:!0,backScrollOffset:100},n),o=new ResizeObserver(()=>{r.setPosition(n.getBoundingClientRect())});return o.observe(n),()=>{a.dispose(),o.unobserve(n)}},[]);function s(){let e=i.getEditor(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);e==null||e.blur(),o.executeCommand(f.id)}function d(){let e=i.getEditor(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);e==null||e.blur(),o.executeCommand(p.id)}let m=`univer-flex univer-w-7 univer-cursor-pointer univer-items-center univer-justify-center univer-transition-colors`;return(0,u.jsxs)(`div`,{className:`
2
- univer-absolute univer-inset-0 univer-size-full univer-bg-white
3
- dark:!univer-bg-gray-800
4
- `,children:[(0,u.jsxs)(`div`,{className:`
5
- univer-absolute univer-right-6 univer-top-2 univer-z-10 univer-flex univer-items-center
6
- univer-justify-center
7
- `,children:[(0,u.jsx)(`span`,{className:(0,c.clsx)(m,`
8
- univer-text-red-500
9
- hover:univer-text-red-600
10
- `),onClick:s,children:(0,u.jsx)(O,{className:`univer-size-5`})}),(0,u.jsx)(`span`,{className:(0,c.clsx)(m,`
11
- univer-text-green-500
12
- hover:univer-text-green-600
13
- `),onClick:d,children:(0,u.jsx)(E,{className:`univer-size-5`})})]}),(0,u.jsx)(`div`,{ref:e,className:`univer-absolute univer-inset-0 univer-size-full`})]})}let L={id:p.id,description:`shortcut.sheet.zen-edit-confirm`,group:`4_sheet-edit`,preconditions:e=>z(e),binding:a.KeyCode.ENTER|a.MetaKeys.ALT},R={id:f.id,description:`shortcut.sheet.zen-edit-cancel`,group:`4_sheet-edit`,preconditions:e=>z(e),binding:a.KeyCode.ESC};function z(e){return e.getContextValue(t.FOCUSING_DOC)&&e.getContextValue(t.FOCUSING_UNIVER_EDITOR)&&e.getContextValue(t.EDITOR_ACTIVATED)&&!e.getContextValue(t.FOCUSING_EDITOR_STANDALONE)}function B(e,t){return function(n,r){t(n,r,e)}}function V(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let H=class extends t.Disposable{constructor(e,t,n,r){super(),this._zenZoneService=e,this._commandService=t,this._menuManagerService=n,this._shortcutService=r,this._initialize()}_initialize(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts()}_initCustomComponents(){this.disposeWithMe(this._zenZoneService.set(`ZEN_EDITOR_PLUGIN_ZEN_EDITOR_COMPONENT`,I))}_initCommands(){[d,f,p].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(y)}_initShortcuts(){[L,R].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}};H=V([B(0,a.IZenZoneService),B(1,t.ICommandService),B(2,a.IMenuManagerService),B(3,a.IShortcutService)],H);let U=class extends t.RxDisposable{constructor(e,t){super(),this._zenEditorManagerService=e,this._renderManagerService=t,this._initialize()}_initialize(){this._syncZenEditorSize()}_syncZenEditorSize(){this._zenEditorManagerService.position$.pipe((0,s.takeUntil)(this.dispose$)).subscribe(e=>{if(e==null)return;let{width:n,height:r}=e,a=(0,i.getEditorObject)(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,this._renderManagerService);a!=null&&requestIdleCallback(()=>{a.engine.resizeBySize(n,r),this._calculatePagePosition(a),this._scrollToTop()})})}_calculatePagePosition(e){let{document:t,scene:r,docBackground:i}=e,a=r==null?void 0:r.getParent(),{width:o,height:s,pageMarginLeft:c,pageMarginTop:l}=t;if(a==null||o===1/0||s===1/0)return;let{width:u,height:d}=a,f=0,p=l,m=0,h=0,g=1/0,{scaleX:_,scaleY:v}=r.getAncestorScale();u>(o+c*2)*_?(f=u/2-o*_/2,f/=_,m=(u-c*2)/_,g=0):(f=c,m=o+c*2,g=(m-u/_)/2),h=d>s?(d-l*2)/v:s+l*2,r.resize(m,h),t.translate(f,p),i.translate(f,p);let y=r.getViewport(n.VIEWPORT_KEY.VIEW_MAIN);if(g!==1/0&&y!=null){let e=y.transScroll2ViewportScrollValue(g,0).x;y.scrollToBarPos({x:e})}return this}_scrollToTop(){var e;let r=(e=this._renderManagerService.getRenderById(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY))==null?void 0:e.with(n.DocBackScrollRenderController);r&&r.scrollToRange({startOffset:0,endOffset:0})}};U=V([B(0,P),B(1,r.IRenderManagerService)],U);let W=class extends t.Plugin{constructor(e=_,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{menu:i,...a}=(0,t.merge)({},_,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(g,a),this._initializeDependencies(this._injector)}_initializeDependencies(e){[[H],[U],[P,{useClass:N}]].forEach(t=>e.add(t))}onReady(){this._injector.get(H)}onSteady(){this._injector.get(U)}};M(W,`pluginName`,`SHEET_ZEN_EDITOR_PLUGIN`),M(W,`packageName`,m),M(W,`version`,h),M(W,`type`,t.UniverInstanceType.UNIVER_SHEET),W=V([B(1,(0,t.Inject)(t.Injector)),B(2,t.IConfigService)],W),e.CancelZenEditCommand=f,e.ConfirmZenEditCommand=p,e.OpenZenEditorCommand=d,Object.defineProperty(e,`UniverSheetsZenEditorPlugin`,{enumerable:!0,get:function(){return W}})});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/docs-ui`),require(`@univerjs/engine-render`),require(`@univerjs/sheets-ui`),require(`@univerjs/ui`),require(`@univerjs/sheets`),require(`rxjs`),require(`@univerjs/design`),require(`react`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/docs-ui`,`@univerjs/engine-render`,`@univerjs/sheets-ui`,`@univerjs/ui`,`@univerjs/sheets`,`rxjs`,`@univerjs/design`,`react`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsZenEditor={},e.UniverCore,e.UniverDocsUi,e.UniverEngineRender,e.UniverSheetsUi,e.UniverUi,e.UniverSheets,e.rxjs,e.UniverDesign,e.React,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let d={id:`zen-editor.command.open-zen-editor`,type:t.CommandType.COMMAND,handler:async e=>{var r;let o=e.get(a.IZenZoneService),s=e.get(n.IEditorService),c=e.get(i.IEditorBridgeService),l=e.get(t.IUniverInstanceService),u=e.get(a.ISidebarService);u.visible&&(u.close(),await(0,t.delayAnimationFrame)()),o.open();let d=s.getEditor(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);if(d==null)return!1;let f=c.getLatestEditCellState();if(f==null)return!1;let p=(r=f.documentLayoutObject.documentModel)==null?void 0:r.getSnapshot();if(p==null)return!1;l.focusUnit(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);let{body:m,drawings:h,drawingsOrder:g,tableSource:_,settings:v}=t.Tools.deepClone(p),y={...d.getDocumentData(),body:m,drawings:h,drawingsOrder:g,tableSource:_,settings:v};return d.focus(),d.setDocumentData(y,[{startOffset:0,endOffset:0,collapsed:!0}]),d.clearUndoRedoHistory(),!0}},f={id:`zen-editor.command.cancel-zen-edit`,type:t.CommandType.COMMAND,handler:async e=>{let n=e.get(a.IZenZoneService),r=e.get(i.IEditorBridgeService),o=e.get(t.IUniverInstanceService),s=e.get(a.ISidebarService);s.visible&&(s.close(),await(0,t.delayAnimationFrame)()),n.close();let c=o.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);return c?(o.focusUnit(c.getUnitId()),r.refreshEditCellState(),!0):!1}},p={id:`zen-editor.command.confirm-zen-edit`,type:t.CommandType.COMMAND,handler:async e=>{let o=e.get(a.IZenZoneService),s=e.get(i.IEditorBridgeService),c=e.get(t.IUniverInstanceService),l=e.get(n.IEditorService),u=e.get(a.ISidebarService);u.visible&&(u.close(),await(0,t.delayAnimationFrame)()),o.close();let d=l.getEditor(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);if(d==null)return!1;let f=e.get(r.IRenderManagerService),p=c.getCurrentUnitForType(t.UniverInstanceType.UNIVER_SHEET);if(p){var m;let e=p.getUnitId(),n=(m=f.getRenderById(e))==null?void 0:m.with(i.EditingRenderController);if(n){let e=t.Tools.deepClone(d.getDocumentData());e.documentStyle.documentFlavor=t.DocumentFlavor.UNSPECIFIED,n.submitCellData(new t.DocumentDataModel(e))}return c.focusUnit(p.getUnitId()),s.refreshEditCellState(),!0}return!1}};var m=`@univerjs/sheets-zen-editor`,h=`0.19.0`;let g=`sheets-zen-editor.config`;Symbol(g);let _={};function v(e){let t=e.get(i.IEditorBridgeService);return{id:d.id,type:a.MenuItemType.BUTTON,title:`rightClick.zenEditor`,icon:`AmplifyIcon`,hidden$:(0,i.getCurrentExclusiveRangeInterest$)(e),disabled$:t.currentEditCell$.pipe((0,s.switchMap)(t=>(0,i.getCurrentRangeDisable$)(e,{workbookTypes:[o.WorkbookEditablePermission],worksheetTypes:[o.WorksheetEditPermission,o.WorksheetSetCellValuePermission,o.WorksheetSetCellStylePermission],rangeTypes:[o.RangeProtectionPermissionEditPoint]}).pipe((0,s.map)(e=>{var n,r;return e||((n=t==null||(r=t.documentLayoutObject.documentModel)==null||(r=r.getBody())==null||(r=r.customBlocks)==null?void 0:r.length)==null?0:n)>0}))))}}let y={[a.ContextMenuPosition.MAIN_AREA]:{[a.ContextMenuGroup.OTHERS]:{[d.id]:{order:2,menuItemFactory:v}}}};function b({ref:e,...t}){let{icon:n,id:r,className:i,extend:a,...o}=t,s=`univerjs-icon univerjs-icon-${r} ${i||``}`.trim(),c=(0,l.useRef)(`_${w()}`);return x(n,`${r}`,{defIds:n.defIds,idSuffix:c.current},{ref:e,className:s,...o},a)}function x(e,t,n,r,i){return(0,l.createElement)(e.tag,{key:t,...S(e,n,i),...r},(C(e,n).children||[]).map((r,a)=>x(r,`${t}-${e.tag}-${a}`,n,void 0,i)))}function S(e,t,n){let r={...e.attrs};n!=null&&n.colorChannel1&&r.fill===`colorChannel1`&&(r.fill=n.colorChannel1),e.tag===`mask`&&r.id&&(r.id+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{e===`mask`&&typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))});let{defIds:i}=t;return!i||i.length===0?r:(e.tag===`use`&&r[`xlink:href`]&&(r[`xlink:href`]+=t.idSuffix),Object.entries(r).forEach(([e,n])=>{typeof n==`string`&&(r[e]=n.replace(/url\(#(.*)\)/,`url(#$1${t.idSuffix})`))}),r)}function C(e,t){var n;let{defIds:r}=t;return!r||r.length===0?e:e.tag===`defs`&&(n=e.children)!=null&&n.length?{...e,children:e.children.map(e=>typeof e.attrs.id==`string`&&r&&r.includes(e.attrs.id)?{...e,attrs:{...e.attrs,id:e.attrs.id+t.idSuffix}}:e)}:e}function w(){return Math.random().toString(36).substring(2,8)}b.displayName=`UniverIcon`;let T={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z`,fillRule:`evenodd`,clipRule:`evenodd`}}]},E=(0,l.forwardRef)(function(e,t){return(0,l.createElement)(b,Object.assign({},e,{id:`check-mark-icon`,ref:t,icon:T}))});E.displayName=`CheckMarkIcon`;let D={tag:`svg`,attrs:{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`},children:[{tag:`path`,attrs:{fill:`currentColor`,d:`M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z`}}]},O=(0,l.forwardRef)(function(e,t){return(0,l.createElement)(b,Object.assign({},e,{id:`close-icon`,ref:t,icon:D}))});O.displayName=`CloseIcon`;function k(e){"@babel/helpers - typeof";return k=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},k(e)}function A(e,t){if(k(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(k(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function j(e){var t=A(e,`string`);return k(t)==`symbol`?t:t+``}function M(e,t,n){return(t=j(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var N=class{constructor(){M(this,`_position`,null),M(this,`_position$`,new s.BehaviorSubject(null)),M(this,`position$`,this._position$.asObservable())}dispose(){this._position$.complete(),this._position=null}setPosition(e){this._position=e,this._refresh(e)}getPosition(){return this._position}_refresh(e){this._position$.next(e)}};let P=(0,t.createIdentifier)(`univer.sheet-zen-editor-manager.service`),F={id:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,body:{dataStream:`${t.DEFAULT_EMPTY_DOCUMENT_VALUE}`,textRuns:[],tables:[],customBlocks:[],paragraphs:[{startIndex:0}],sectionBreaks:[{startIndex:1}]},tableSource:{},documentStyle:{pageSize:{width:595,height:1/0},documentFlavor:t.DocumentFlavor.MODERN,marginTop:0,marginBottom:0,marginRight:0,marginLeft:0,renderConfig:{vertexAngle:0,centerAngle:0}},drawings:{},drawingsOrder:[]};function I(){let e=(0,l.useRef)(null),r=(0,a.useDependency)(P),i=(0,a.useDependency)(n.IEditorService),o=(0,a.useDependency)(t.ICommandService);(0,l.useEffect)(()=>{let n=e.current;if(!n)return;let a=i.register({editorUnitId:t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,initialSnapshot:F,scrollBar:!0,backScrollOffset:100},n),o=new ResizeObserver(()=>{r.setPosition(n.getBoundingClientRect())});return o.observe(n),()=>{a.dispose(),o.unobserve(n)}},[]);function s(){let e=i.getEditor(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);e==null||e.blur(),o.executeCommand(f.id)}function d(){let e=i.getEditor(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY);e==null||e.blur(),o.executeCommand(p.id)}let m=`univer-flex univer-w-7 univer-cursor-pointer univer-items-center univer-justify-center univer-transition-colors`;return(0,u.jsxs)(`div`,{className:`univer-absolute univer-inset-0 univer-size-full univer-bg-white dark:!univer-bg-gray-800`,children:[(0,u.jsxs)(`div`,{className:`univer-absolute univer-right-6 univer-top-2 univer-z-10 univer-flex univer-items-center univer-justify-center`,children:[(0,u.jsx)(`span`,{className:(0,c.clsx)(m,`univer-text-red-500 hover:univer-text-red-600`),onClick:s,children:(0,u.jsx)(O,{className:`univer-size-5`})}),(0,u.jsx)(`span`,{className:(0,c.clsx)(m,`univer-text-green-500 hover:univer-text-green-600`),onClick:d,children:(0,u.jsx)(E,{className:`univer-size-5`})})]}),(0,u.jsx)(`div`,{ref:e,className:`univer-absolute univer-inset-0 univer-size-full`})]})}let L={id:p.id,description:`shortcut.sheet.zen-edit-confirm`,group:`4_sheet-edit`,preconditions:e=>z(e),binding:a.KeyCode.ENTER|a.MetaKeys.ALT},R={id:f.id,description:`shortcut.sheet.zen-edit-cancel`,group:`4_sheet-edit`,preconditions:e=>z(e),binding:a.KeyCode.ESC};function z(e){return e.getContextValue(t.FOCUSING_DOC)&&e.getContextValue(t.FOCUSING_UNIVER_EDITOR)&&e.getContextValue(t.EDITOR_ACTIVATED)&&!e.getContextValue(t.FOCUSING_EDITOR_STANDALONE)}function B(e,t){return function(n,r){t(n,r,e)}}function V(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let H=class extends t.Disposable{constructor(e,t,n,r){super(),this._zenZoneService=e,this._commandService=t,this._menuManagerService=n,this._shortcutService=r,this._initialize()}_initialize(){this._initCustomComponents(),this._initCommands(),this._initMenus(),this._initShortcuts()}_initCustomComponents(){this.disposeWithMe(this._zenZoneService.set(`ZEN_EDITOR_PLUGIN_ZEN_EDITOR_COMPONENT`,I))}_initCommands(){[d,f,p].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))})}_initMenus(){this._menuManagerService.mergeMenu(y)}_initShortcuts(){[L,R].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}};H=V([B(0,a.IZenZoneService),B(1,t.ICommandService),B(2,a.IMenuManagerService),B(3,a.IShortcutService)],H);let U=class extends t.RxDisposable{constructor(e,t){super(),this._zenEditorManagerService=e,this._renderManagerService=t,this._initialize()}_initialize(){this._syncZenEditorSize()}_syncZenEditorSize(){this._zenEditorManagerService.position$.pipe((0,s.takeUntil)(this.dispose$)).subscribe(e=>{if(e==null)return;let{width:n,height:r}=e,a=(0,i.getEditorObject)(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY,this._renderManagerService);a!=null&&requestIdleCallback(()=>{a.engine.resizeBySize(n,r),this._calculatePagePosition(a),this._scrollToTop()})})}_calculatePagePosition(e){let{document:t,scene:r,docBackground:i}=e,a=r==null?void 0:r.getParent(),{width:o,height:s,pageMarginLeft:c,pageMarginTop:l}=t;if(a==null||o===1/0||s===1/0)return;let{width:u,height:d}=a,f=0,p=l,m=0,h=0,g=1/0,{scaleX:_,scaleY:v}=r.getAncestorScale();u>(o+c*2)*_?(f=u/2-o*_/2,f/=_,m=(u-c*2)/_,g=0):(f=c,m=o+c*2,g=(m-u/_)/2),h=d>s?(d-l*2)/v:s+l*2,r.resize(m,h),t.translate(f,p),i.translate(f,p);let y=r.getViewport(n.VIEWPORT_KEY.VIEW_MAIN);if(g!==1/0&&y!=null){let e=y.transScroll2ViewportScrollValue(g,0).x;y.scrollToBarPos({x:e})}return this}_scrollToTop(){var e;let r=(e=this._renderManagerService.getRenderById(t.DOCS_ZEN_EDITOR_UNIT_ID_KEY))==null?void 0:e.with(n.DocBackScrollRenderController);r&&r.scrollToRange({startOffset:0,endOffset:0})}};U=V([B(0,P),B(1,r.IRenderManagerService)],U);let W=class extends t.Plugin{constructor(e=_,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{menu:i,...a}=(0,t.merge)({},_,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(g,a),this._initializeDependencies(this._injector)}_initializeDependencies(e){[[H],[U],[P,{useClass:N}]].forEach(t=>e.add(t))}onReady(){this._injector.get(H)}onSteady(){this._injector.get(U)}};M(W,`pluginName`,`SHEET_ZEN_EDITOR_PLUGIN`),M(W,`packageName`,m),M(W,`version`,h),M(W,`type`,t.UniverInstanceType.UNIVER_SHEET),W=V([B(1,(0,t.Inject)(t.Injector)),B(2,t.IConfigService)],W),e.CancelZenEditCommand=f,e.ConfirmZenEditCommand=p,e.OpenZenEditorCommand=d,Object.defineProperty(e,`UniverSheetsZenEditorPlugin`,{enumerable:!0,get:function(){return W}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-zen-editor",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "private": false,
5
5
  "description": "Zen Editor plugin for Univer Sheets.",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -65,23 +65,23 @@
65
65
  },
66
66
  "dependencies": {
67
67
  "@univerjs/icons": "^1.1.1",
68
- "@univerjs/core": "0.18.0",
69
- "@univerjs/docs": "0.18.0",
70
- "@univerjs/design": "0.18.0",
71
- "@univerjs/docs-ui": "0.18.0",
72
- "@univerjs/engine-render": "0.18.0",
73
- "@univerjs/sheets": "0.18.0",
74
- "@univerjs/sheets-ui": "0.18.0",
75
- "@univerjs/ui": "0.18.0"
68
+ "@univerjs/core": "0.19.0",
69
+ "@univerjs/docs": "0.19.0",
70
+ "@univerjs/design": "0.19.0",
71
+ "@univerjs/engine-render": "0.19.0",
72
+ "@univerjs/sheets": "0.19.0",
73
+ "@univerjs/sheets-ui": "0.19.0",
74
+ "@univerjs/ui": "0.19.0",
75
+ "@univerjs/docs-ui": "0.19.0"
76
76
  },
77
77
  "devDependencies": {
78
78
  "postcss": "^8.5.8",
79
79
  "react": "18.3.1",
80
80
  "rxjs": "^7.8.2",
81
81
  "tailwindcss": "3.4.18",
82
- "typescript": "^5.9.3",
83
- "vitest": "^4.1.0",
84
- "@univerjs-infra/shared": "0.18.0"
82
+ "typescript": "^6.0.2",
83
+ "vitest": "^4.1.1",
84
+ "@univerjs-infra/shared": "0.19.0"
85
85
  },
86
86
  "scripts": {
87
87
  "test": "vitest run",