@univerjs/uniscript 0.1.0-beta.0 → 0.1.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
package/lib/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var X=Object.defineProperty;var Z=(t,e,n)=>e in t?X(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var S=(t,e,n)=>(Z(t,typeof e!="symbol"?e+"":e,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),a=require("@wendellhu/redi"),p=require("@univerjs/ui"),W=require("rxjs"),h=require("react"),U=require("@univerjs/design"),g=require("@wendellhu/redi/react-bindings"),ee=require("monaco-editor"),d=require("@univerjs/sheets"),te={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},B={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}};class H extends c.Disposable{constructor(){super(...arguments);S(this,"_open$",new W.BehaviorSubject(!1));S(this,"open$",this._open$.pipe(W.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const z="ScriptPanel",V={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(H),n=t.get(p.ISidebarService);return e.isOpen?(e.close(),n.close()):(e.open(),n.open({header:{title:"script-panel.title"},children:{label:z},width:600})),!0}};var G={exports:{}},y={};/**
1
+ "use strict";var X=Object.defineProperty;var Z=(t,e,n)=>e in t?X(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var g=(t,e,n)=>(Z(t,typeof e!="symbol"?e+"":e,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),a=require("@wendellhu/redi"),d=require("@univerjs/ui"),W=require("rxjs"),_=require("react"),U=require("@univerjs/design"),m=require("@wendellhu/redi/react-bindings"),ee=require("monaco-editor"),h=require("@univerjs/sheets"),te={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},B={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}};class H extends c.Disposable{constructor(){super(...arguments);g(this,"_open$",new W.BehaviorSubject(!1));g(this,"open$",this._open$.pipe(W.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const z="ScriptPanel",V={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(H),n=t.get(d.ISidebarService);return e.isOpen?(e.close(),n.close()):(e.open(),n.open({header:{title:"script-panel.title"},children:{label:z},width:600})),!0}};var G={exports:{}},y={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var re=h,ne=Symbol.for("react.element"),se=Symbol.for("react.fragment"),ie=Object.prototype.hasOwnProperty,oe=re.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ce={key:!0,ref:!0,__self:!0,__source:!0};function J(t,e,n){var r,s={},i=null,o=null;n!==void 0&&(i=""+n),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(o=e.ref);for(r in e)ie.call(e,r)&&!ce.hasOwnProperty(r)&&(s[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)s[r]===void 0&&(s[r]=e[r]);return{$$typeof:ne,type:t,key:i,ref:o,props:s,_owner:oe.current}}y.Fragment=se;y.jsx=J;y.jsxs=J;G.exports=y;var m=G.exports;class R extends c.Disposable{constructor(e){super(),this._config=e}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var ae=Object.defineProperty,le=Object.getOwnPropertyDescriptor,ue=(t,e,n,r)=>{for(var s=r>1?void 0:r?le(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&ae(e,n,s),s},q=(t,e)=>(n,r)=>e(n,r,t);let j=class{constructor(t,e,n,r,s){this._workbook=t,this._worksheet=e,this._range=n,this._injector=r,this._commandService=s}getRow(){return this._range.startRow}getColumn(){return this._range.startColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}getValue(){var t;return((t=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:t.v)??null}setBackgroundColor(t){this._commandService.executeCommand(d.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:t}}})}};j=ue([q(3,a.Inject(a.Injector)),q(4,c.ICommandService)],j);var pe=Object.defineProperty,_e=Object.getOwnPropertyDescriptor,he=(t,e,n,r)=>{for(var s=r>1?void 0:r?_e(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&pe(e,n,s),s},de=(t,e)=>(n,r)=>e(n,r,t);let D=class{constructor(t,e,n,r){this._workbook=t,this._worksheet=e,this._selections=n,this._injector=r}getActiveRange(){const t=this._selections.find(e=>!!e.primary);return t?this._injector.createInstance(j,this._workbook,this._worksheet,t.range):null}};D=he([de(3,a.Inject(a.Injector))],D);var ve=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,me=(t,e,n,r)=>{for(var s=r>1?void 0:r?ge(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&ve(e,n,s),s},$=(t,e)=>(n,r)=>e(n,r,t);let P=class{constructor(t,e,n,r,s){this._workbook=t,this._worksheet=e,this._injector=n,this._selectionManagerService=r,this._commandService=s}getSelection(){const t=this._selectionManagerService.getSelections();return t?this._injector.createInstance(D,this._workbook,this._worksheet,t):null}getRange(t,e,n,r){const s={startRow:t,endRow:t+(n??1)-1,startColumn:e,endColumn:e+(r??1)-1};return this._injector.createInstance(j,this._workbook,this._worksheet,s)}setRowHeights(t,e,n){this._commandService.syncExecuteCommand(d.SetWorksheetRowHeightMutation.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[{startRow:t,endRow:t+e-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}],rowHeight:n})}setColumnWidths(t,e,n){this._commandService.syncExecuteCommand(d.SetWorksheetColWidthMutation.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[{startColumn:t,endColumn:t+e-1,startRow:0,endRow:this._worksheet.getRowCount()-1}],colWidth:n})}};P=me([$(2,a.Inject(a.Injector)),$(3,a.Inject(d.SelectionManagerService)),$(4,c.ICommandService)],P);var fe=Object.defineProperty,Se=Object.getOwnPropertyDescriptor,we=(t,e,n,r)=>{for(var s=r>1?void 0:r?Se(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&fe(e,n,s),s},A=(t,e)=>(n,r)=>e(n,r,t);let k=class{constructor(t,e,n){this._workbook=t,this._injector=e,this._commandService=n}getActiveSheet(){const t=this._workbook.getActiveSheet();return t?this._injector.createInstance(P,this._workbook,t):null}create(t,e,n){const r=c.Tools.deepClone(c.DEFAULT_WORKSHEET);return r.rowCount=e,r.columnCount=n,r.name=t,r.id=t.toLowerCase().replace(/ /g,"-"),this._commandService.syncExecuteCommand(d.InsertSheetCommand.id,{unitId:this._workbook.getUnitId(),index:this._workbook.getSheets().length,sheet:r}),this._commandService.syncExecuteCommand(d.SetWorksheetActivateCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._workbook.getSheets()[this._workbook.getSheets().length-1].getSheetId()}),this._injector.createInstance(P,this._workbook,this._workbook.getActiveSheet())}};k=we([A(1,a.Inject(a.Injector)),A(2,c.ICommandService)],k);var Ie=Object.defineProperty,be=Object.getOwnPropertyDescriptor,je=(t,e,n,r)=>{for(var s=r>1?void 0:r?be(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&Ie(e,n,s),s},F=(t,e)=>(n,r)=>e(n,r,t);let C=class{constructor(t,e){this._injector=t,this._univerInstanceService=e}static newInstance(t){return t.createInstance(C)}getCurrentSheet(){const t=this._univerInstanceService.getCurrentUniverSheetInstance();return t?this._injector.createInstance(k,t):null}};C=je([F(0,a.Inject(a.Injector)),F(1,c.IUniverInstanceService)],C);var Pe=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,Oe=(t,e,n,r)=>{for(var s=r>1?void 0:r?Ce(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&Pe(e,n,s),s},N=(t,e)=>(n,r)=>e(n,r,t);let O=class extends c.Disposable{constructor(t,e){super(),this._logService=t,this._injector=e}async execute(t){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=C.newInstance(this._injector),n=new Function("Univer",`(() => {${t}})()`);try{return n(e),!0}catch(r){return this._logService.error(r),!1}}};O=Oe([N(0,c.ILogService),N(1,a.Inject(a.Injector))],O);const ye="univer-script-editor-panel",Ee="univer-script-editor-content",Ue="univer-script-editor-actions",w={scriptEditorPanel:ye,scriptEditorContent:Ee,scriptEditorActions:Ue};function $e(){const t=h.useRef(null),e=h.useRef(null),n=h.useRef(null),r=g.useDependency(c.LocaleService),s=g.useDependency(O),i=g.useDependency(p.IShortcutService),o=g.useDependency(R),M=g.useDependency(p.IMessageService);h.useEffect(()=>{const v=e.current,l=t.current;let _=null,f=null;if(v&&l){o.requireVscodeEditor();const E=n.current=ee.editor.create(v,{value:"",language:"javascript"});f=new ResizeObserver(()=>{let T=requestIdleCallback(()=>{if(!T)return;const{height:Y,width:Q}=l.getBoundingClientRect();E.layout({width:Q,height:Y}),T=void 0})}),f.observe(l);let u;_=new c.DisposableCollection,_.add(E.onDidFocusEditorWidget(()=>{u=i.forceEscape()})),_.add(E.onDidBlurEditorWidget(()=>{u==null||u.dispose(),u=void 0})),_.add(c.toDisposable(()=>u==null?void 0:u.dispose()))}return()=>{f&&l&&f.unobserve(l),_==null||_.dispose()}},[]);const K=h.useCallback(()=>{var l;const v=(l=n.current)==null?void 0:l.getModel();v&&s.execute(v.getValue()).then(()=>{M.show({content:r.t("uniscript.message.success"),type:U.MessageType.Success})}).catch(()=>{M.show({content:r.t("uniscript.message.failed"),type:U.MessageType.Error})})},[s]);return m.jsxs("div",{className:w.scriptEditorPanel,children:[m.jsx("div",{className:w.scriptEditorContent,ref:t,children:m.jsx("div",{className:w.scriptEditorContainer,ref:e})}),m.jsx("div",{className:w.scriptEditorActions,children:m.jsx(U.Button,{type:"primary",size:"small",onClick:K,children:r.t("script-panel.panel.execute")})})]})}function xe(t){return{id:V.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:p.MenuItemType.BUTTON,positions:[p.MenuPosition.TOOLBAR_START],hidden$:p.getMenuHiddenObservable(t,c.UniverInstanceType.SHEET)}}var Re=Object.defineProperty,De=Object.getOwnPropertyDescriptor,ke=(t,e,n,r)=>{for(var s=r>1?void 0:r?De(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&Re(e,n,s),s},I=(t,e)=>(n,r)=>e(n,r,t);let b=class extends c.Disposable{constructor(t,e,n,r){super(),this._injector=t,this.disposeWithMe(e.addMenuItem(this._injector.invoke(xe))),this.disposeWithMe(r.register(z,$e)),this.disposeWithMe(n.registerCommand(V))}};b=ke([c.OnLifecycle(c.LifecycleStages.Steady,b),I(0,a.Inject(a.Injector)),I(1,p.IMenuService),I(2,c.ICommandService),I(3,a.Inject(p.ComponentManager))],b);var Me=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,We=(t,e,n,r)=>{for(var s=r>1?void 0:r?Te(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&Me(e,n,s),s},L=(t,e)=>(n,r)=>e(n,r,t);const qe="uniscript";var x;exports.UniverUniscriptPlugin=(x=class extends c.Plugin{constructor(e,n,r){super(qe),this._config=e,this._injector=n,this._localeService=r}onStarting(e){[[b],[R,{useFactory:()=>e.createInstance(R,this._config)}],[H],[O]].forEach(r=>e.add(r)),this._localeService.load({zhCN:B})}},S(x,"type",c.PluginType.Univer),x);exports.UniverUniscriptPlugin=We([L(1,a.Inject(a.Injector)),L(2,a.Inject(c.LocaleService))],exports.UniverUniscriptPlugin);exports.enUS=te;exports.zhCN=B;
9
+ */var re=_,ne=Symbol.for("react.element"),se=Symbol.for("react.fragment"),ie=Object.prototype.hasOwnProperty,oe=re.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ce={key:!0,ref:!0,__self:!0,__source:!0};function J(t,e,n){var r,s={},i=null,o=null;n!==void 0&&(i=""+n),e.key!==void 0&&(i=""+e.key),e.ref!==void 0&&(o=e.ref);for(r in e)ie.call(e,r)&&!ce.hasOwnProperty(r)&&(s[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)s[r]===void 0&&(s[r]=e[r]);return{$$typeof:ne,type:t,key:i,ref:o,props:s,_owner:oe.current}}y.Fragment=se;y.jsx=J;y.jsxs=J;G.exports=y;var f=G.exports;class R extends c.Disposable{constructor(n){super();g(this,"_editorInstance",null);this._config=n}setEditorInstance(n){return this._editorInstance=n,c.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var ae=Object.defineProperty,le=Object.getOwnPropertyDescriptor,ue=(t,e,n,r)=>{for(var s=r>1?void 0:r?le(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&ae(e,n,s),s},q=(t,e)=>(n,r)=>e(n,r,t);let P=class{constructor(t,e,n,r,s){this._workbook=t,this._worksheet=e,this._range=n,this._injector=r,this._commandService=s}getRow(){return this._range.startRow}getColumn(){return this._range.startColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}getValue(){var t;return((t=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:t.v)??null}setBackgroundColor(t){this._commandService.executeCommand(h.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:t}}})}};P=ue([q(3,a.Inject(a.Injector)),q(4,c.ICommandService)],P);var pe=Object.defineProperty,de=Object.getOwnPropertyDescriptor,_e=(t,e,n,r)=>{for(var s=r>1?void 0:r?de(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&pe(e,n,s),s},he=(t,e)=>(n,r)=>e(n,r,t);let D=class{constructor(t,e,n,r){this._workbook=t,this._worksheet=e,this._selections=n,this._injector=r}getActiveRange(){const t=this._selections.find(e=>!!e.primary);return t?this._injector.createInstance(P,this._workbook,this._worksheet,t.range):null}};D=_e([he(3,a.Inject(a.Injector))],D);var ve=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,me=(t,e,n,r)=>{for(var s=r>1?void 0:r?ge(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&ve(e,n,s),s},$=(t,e)=>(n,r)=>e(n,r,t);let C=class{constructor(t,e,n,r,s){this._workbook=t,this._worksheet=e,this._injector=n,this._selectionManagerService=r,this._commandService=s}getSelection(){const t=this._selectionManagerService.getSelections();return t?this._injector.createInstance(D,this._workbook,this._worksheet,t):null}getRange(t,e,n,r){const s={startRow:t,endRow:t+(n??1)-1,startColumn:e,endColumn:e+(r??1)-1};return this._injector.createInstance(P,this._workbook,this._worksheet,s)}setRowHeights(t,e,n){this._commandService.syncExecuteCommand(h.SetWorksheetRowHeightMutation.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[{startRow:t,endRow:t+e-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}],rowHeight:n})}setColumnWidths(t,e,n){this._commandService.syncExecuteCommand(h.SetWorksheetColWidthMutation.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[{startColumn:t,endColumn:t+e-1,startRow:0,endRow:this._worksheet.getRowCount()-1}],colWidth:n})}};C=me([$(2,a.Inject(a.Injector)),$(3,a.Inject(h.SelectionManagerService)),$(4,c.ICommandService)],C);var fe=Object.defineProperty,Se=Object.getOwnPropertyDescriptor,we=(t,e,n,r)=>{for(var s=r>1?void 0:r?Se(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&fe(e,n,s),s},A=(t,e)=>(n,r)=>e(n,r,t);let k=class{constructor(t,e,n){this._workbook=t,this._injector=e,this._commandService=n}getActiveSheet(){const t=this._workbook.getActiveSheet();return t?this._injector.createInstance(C,this._workbook,t):null}create(t,e,n){const r=c.Tools.deepClone(c.DEFAULT_WORKSHEET);return r.rowCount=e,r.columnCount=n,r.name=t,r.id=t.toLowerCase().replace(/ /g,"-"),this._commandService.syncExecuteCommand(h.InsertSheetCommand.id,{unitId:this._workbook.getUnitId(),index:this._workbook.getSheets().length,sheet:r}),this._commandService.syncExecuteCommand(h.SetWorksheetActivateCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._workbook.getSheets()[this._workbook.getSheets().length-1].getSheetId()}),this._injector.createInstance(C,this._workbook,this._workbook.getActiveSheet())}};k=we([A(1,a.Inject(a.Injector)),A(2,c.ICommandService)],k);var Ie=Object.defineProperty,be=Object.getOwnPropertyDescriptor,je=(t,e,n,r)=>{for(var s=r>1?void 0:r?be(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&Ie(e,n,s),s},F=(t,e)=>(n,r)=>e(n,r,t);let O=class{constructor(t,e){this._injector=t,this._univerInstanceService=e}static newInstance(t){return t.createInstance(O)}getCurrentSheet(){const t=this._univerInstanceService.getCurrentUniverSheetInstance();return t?this._injector.createInstance(k,t):null}};O=je([F(0,a.Inject(a.Injector)),F(1,c.IUniverInstanceService)],O);var Pe=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,Oe=(t,e,n,r)=>{for(var s=r>1?void 0:r?Ce(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&Pe(e,n,s),s},N=(t,e)=>(n,r)=>e(n,r,t);let E=class extends c.Disposable{constructor(t,e){super(),this._logService=t,this._injector=e}async execute(t){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=O.newInstance(this._injector),n=new Function("Univer",`(() => {${t}})()`);try{return n(e),!0}catch(r){return this._logService.error(r),!1}}};E=Oe([N(0,c.ILogService),N(1,a.Inject(a.Injector))],E);const Ee="univer-script-editor-panel",ye="univer-script-editor-content",Ue="univer-script-editor-actions",I={scriptEditorPanel:Ee,scriptEditorContent:ye,scriptEditorActions:Ue};function $e(){const t=_.useRef(null),e=_.useRef(null),n=_.useRef(null),r=m.useDependency(c.LocaleService),s=m.useDependency(E),i=m.useDependency(d.IShortcutService),o=m.useDependency(R),M=m.useDependency(d.IMessageService);_.useEffect(()=>{const v=e.current,l=t.current;let u=null,S=null;if(v&&l){o.requireVscodeEditor();const w=n.current=ee.editor.create(v,{value:"",language:"javascript"});S=new ResizeObserver(()=>{let T=requestIdleCallback(()=>{if(!T)return;const{height:Y,width:Q}=l.getBoundingClientRect();w.layout({width:Q,height:Y}),T=void 0})}),S.observe(l);let p;u=new c.DisposableCollection,u.add(o.setEditorInstance(w)),u.add(w.onDidFocusEditorWidget(()=>{p=i.forceEscape()})),u.add(w.onDidBlurEditorWidget(()=>{p==null||p.dispose(),p=void 0})),u.add(c.toDisposable(()=>p==null?void 0:p.dispose()))}return()=>{S&&l&&S.unobserve(l),u==null||u.dispose()}},[]);const K=_.useCallback(()=>{var l;const v=(l=n.current)==null?void 0:l.getModel();v&&s.execute(v.getValue()).then(()=>{M.show({content:r.t("uniscript.message.success"),type:U.MessageType.Success})}).catch(()=>{M.show({content:r.t("uniscript.message.failed"),type:U.MessageType.Error})})},[s]);return f.jsxs("div",{className:I.scriptEditorPanel,children:[f.jsx("div",{className:I.scriptEditorContent,ref:t,children:f.jsx("div",{className:I.scriptEditorContainer,ref:e})}),f.jsx("div",{className:I.scriptEditorActions,children:f.jsx(U.Button,{type:"primary",size:"small",onClick:K,children:r.t("script-panel.panel.execute")})})]})}function xe(t){return{id:V.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:d.MenuItemType.BUTTON,positions:[d.MenuPosition.TOOLBAR_START],hidden$:d.getMenuHiddenObservable(t,c.UniverInstanceType.SHEET)}}var Re=Object.defineProperty,De=Object.getOwnPropertyDescriptor,ke=(t,e,n,r)=>{for(var s=r>1?void 0:r?De(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&Re(e,n,s),s},b=(t,e)=>(n,r)=>e(n,r,t);let j=class extends c.Disposable{constructor(t,e,n,r){super(),this._injector=t,this.disposeWithMe(e.addMenuItem(this._injector.invoke(xe))),this.disposeWithMe(r.register(z,$e)),this.disposeWithMe(n.registerCommand(V))}};j=ke([c.OnLifecycle(c.LifecycleStages.Steady,j),b(0,a.Inject(a.Injector)),b(1,d.IMenuService),b(2,c.ICommandService),b(3,a.Inject(d.ComponentManager))],j);var Me=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,We=(t,e,n,r)=>{for(var s=r>1?void 0:r?Te(e,n):e,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&Me(e,n,s),s},L=(t,e)=>(n,r)=>e(n,r,t);const qe="uniscript";var x;exports.UniverUniscriptPlugin=(x=class extends c.Plugin{constructor(e,n,r){super(qe),this._config=e,this._injector=n,this._localeService=r}onStarting(e){[[j],[R,{useFactory:()=>e.createInstance(R,this._config)}],[H],[E]].forEach(r=>e.add(r)),this._localeService.load({zhCN:B})}},g(x,"type",c.PluginType.Univer),x);exports.UniverUniscriptPlugin=We([L(1,a.Inject(a.Injector)),L(2,a.Inject(c.LocaleService))],exports.UniverUniscriptPlugin);exports.enUS=te;exports.zhCN=B;
package/lib/es/index.js CHANGED
@@ -1,13 +1,13 @@
1
- var X = Object.defineProperty;
2
- var Z = (t, e, n) => e in t ? X(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
- var m = (t, e, n) => (Z(t, typeof e != "symbol" ? e + "" : e, n), n);
4
- import { Disposable as O, CommandType as ee, ICommandService as I, Tools as te, DEFAULT_WORKSHEET as re, IUniverInstanceService as ne, ILogService as oe, LocaleService as H, DisposableCollection as ie, toDisposable as se, UniverInstanceType as ce, OnLifecycle as ae, LifecycleStages as le, Plugin as ue, PluginType as pe } from "@univerjs/core";
5
- import { Inject as c, Injector as u } from "@wendellhu/redi";
1
+ var Z = Object.defineProperty;
2
+ var ee = (t, e, r) => e in t ? Z(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
+ var h = (t, e, r) => (ee(t, typeof e != "symbol" ? e + "" : e, r), r);
4
+ import { Disposable as O, CommandType as te, toDisposable as H, ICommandService as E, Tools as re, DEFAULT_WORKSHEET as ne, IUniverInstanceService as oe, ILogService as ie, LocaleService as q, DisposableCollection as se, UniverInstanceType as ce, OnLifecycle as ae, LifecycleStages as le, Plugin as ue, PluginType as pe } from "@univerjs/core";
5
+ import { Inject as c, Injector as p } from "@wendellhu/redi";
6
6
  import { ISidebarService as _e, IShortcutService as he, IMessageService as de, MenuItemType as ve, MenuPosition as me, getMenuHiddenObservable as ge, ComponentManager as fe, IMenuService as Se } from "@univerjs/ui";
7
7
  import { BehaviorSubject as we, distinctUntilChanged as be } from "rxjs";
8
- import Pe, { useRef as $, useEffect as Ce, useCallback as Oe } from "react";
9
- import { MessageType as T, Button as Ie } from "@univerjs/design";
10
- import { useDependency as h } from "@wendellhu/redi/react-bindings";
8
+ import Ie, { useRef as $, useEffect as Pe, useCallback as Ce } from "react";
9
+ import { MessageType as T, Button as Oe } from "@univerjs/design";
10
+ import { useDependency as d } from "@wendellhu/redi/react-bindings";
11
11
  import { editor as Ee } from "monaco-editor";
12
12
  import { SetStyleCommand as je, SetWorksheetRowHeightMutation as $e, SetWorksheetColWidthMutation as xe, SelectionManagerService as ye, InsertSheetCommand as Ue, SetWorksheetActivateCommand as Re } from "@univerjs/sheets";
13
13
  const jt = {
@@ -43,11 +43,11 @@ const jt = {
43
43
  }
44
44
  }
45
45
  };
46
- class q extends O {
46
+ class V extends O {
47
47
  constructor() {
48
48
  super(...arguments);
49
- m(this, "_open$", new we(!1));
50
- m(this, "open$", this._open$.pipe(be()));
49
+ h(this, "_open$", new we(!1));
50
+ h(this, "open$", this._open$.pipe(be()));
51
51
  }
52
52
  get isOpen() {
53
53
  return this._open$.getValue();
@@ -62,19 +62,19 @@ class q extends O {
62
62
  this._open$.next(!1);
63
63
  }
64
64
  }
65
- const V = "ScriptPanel", z = {
66
- type: ee.OPERATION,
65
+ const z = "ScriptPanel", G = {
66
+ type: te.OPERATION,
67
67
  id: "univer.operation.toggle-script-panel",
68
68
  handler: (t) => {
69
- const e = t.get(q), n = t.get(_e);
70
- return e.isOpen ? (e.close(), n.close()) : (e.open(), n.open({
69
+ const e = t.get(V), r = t.get(_e);
70
+ return e.isOpen ? (e.close(), r.close()) : (e.open(), r.open({
71
71
  header: { title: "script-panel.title" },
72
- children: { label: V },
72
+ children: { label: z },
73
73
  width: 600
74
74
  })), !0;
75
75
  }
76
76
  };
77
- var G = { exports: {} }, E = {};
77
+ var J = { exports: {} }, j = {};
78
78
  /**
79
79
  * @license React
80
80
  * react-jsx-runtime.production.min.js
@@ -84,25 +84,33 @@ var G = { exports: {} }, E = {};
84
84
  * This source code is licensed under the MIT license found in the
85
85
  * LICENSE file in the root directory of this source tree.
86
86
  */
87
- var De = Pe, Me = Symbol.for("react.element"), Te = Symbol.for("react.fragment"), We = Object.prototype.hasOwnProperty, Ae = De.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, Fe = { key: !0, ref: !0, __self: !0, __source: !0 };
88
- function J(t, e, n) {
89
- var r, o = {}, i = null, s = null;
90
- n !== void 0 && (i = "" + n), e.key !== void 0 && (i = "" + e.key), e.ref !== void 0 && (s = e.ref);
91
- for (r in e)
92
- We.call(e, r) && !Fe.hasOwnProperty(r) && (o[r] = e[r]);
87
+ var De = Ie, Me = Symbol.for("react.element"), Te = Symbol.for("react.fragment"), We = Object.prototype.hasOwnProperty, Ae = De.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, Fe = { key: !0, ref: !0, __self: !0, __source: !0 };
88
+ function K(t, e, r) {
89
+ var n, o = {}, i = null, s = null;
90
+ r !== void 0 && (i = "" + r), e.key !== void 0 && (i = "" + e.key), e.ref !== void 0 && (s = e.ref);
91
+ for (n in e)
92
+ We.call(e, n) && !Fe.hasOwnProperty(n) && (o[n] = e[n]);
93
93
  if (t && t.defaultProps)
94
- for (r in e = t.defaultProps, e)
95
- o[r] === void 0 && (o[r] = e[r]);
94
+ for (n in e = t.defaultProps, e)
95
+ o[n] === void 0 && (o[n] = e[n]);
96
96
  return { $$typeof: Me, type: t, key: i, ref: s, props: o, _owner: Ae.current };
97
97
  }
98
- E.Fragment = Te;
99
- E.jsx = J;
100
- E.jsxs = J;
101
- G.exports = E;
102
- var d = G.exports;
98
+ j.Fragment = Te;
99
+ j.jsx = K;
100
+ j.jsxs = K;
101
+ J.exports = j;
102
+ var v = J.exports;
103
103
  class U extends O {
104
- constructor(e) {
105
- super(), this._config = e;
104
+ constructor(r) {
105
+ super();
106
+ h(this, "_editorInstance", null);
107
+ this._config = r;
108
+ }
109
+ setEditorInstance(r) {
110
+ return this._editorInstance = r, H(() => this._editorInstance = null);
111
+ }
112
+ getEditorInstance() {
113
+ return this._editorInstance;
106
114
  }
107
115
  requireVscodeEditor() {
108
116
  window.MonacoEnvironment || (window.MonacoEnvironment = {
@@ -110,14 +118,14 @@ class U extends O {
110
118
  });
111
119
  }
112
120
  }
113
- var Ne = Object.defineProperty, Le = Object.getOwnPropertyDescriptor, Be = (t, e, n, r) => {
114
- for (var o = r > 1 ? void 0 : r ? Le(e, n) : e, i = t.length - 1, s; i >= 0; i--)
115
- (s = t[i]) && (o = (r ? s(e, n, o) : s(o)) || o);
116
- return r && o && Ne(e, n, o), o;
117
- }, W = (t, e) => (n, r) => e(n, r, t);
118
- let w = class {
119
- constructor(t, e, n, r, o) {
120
- this._workbook = t, this._worksheet = e, this._range = n, this._injector = r, this._commandService = o;
121
+ var Ne = Object.defineProperty, Le = Object.getOwnPropertyDescriptor, Be = (t, e, r, n) => {
122
+ for (var o = n > 1 ? void 0 : n ? Le(e, r) : e, i = t.length - 1, s; i >= 0; i--)
123
+ (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
124
+ return n && o && Ne(e, r, o), o;
125
+ }, W = (t, e) => (r, n) => e(r, n, t);
126
+ let b = class {
127
+ constructor(t, e, r, n, o) {
128
+ this._workbook = t, this._worksheet = e, this._range = r, this._injector = n, this._commandService = o;
121
129
  }
122
130
  getRow() {
123
131
  return this._range.startRow;
@@ -149,50 +157,50 @@ let w = class {
149
157
  });
150
158
  }
151
159
  };
152
- w = Be([
153
- W(3, c(u)),
154
- W(4, I)
155
- ], w);
156
- var He = Object.defineProperty, qe = Object.getOwnPropertyDescriptor, Ve = (t, e, n, r) => {
157
- for (var o = r > 1 ? void 0 : r ? qe(e, n) : e, i = t.length - 1, s; i >= 0; i--)
158
- (s = t[i]) && (o = (r ? s(e, n, o) : s(o)) || o);
159
- return r && o && He(e, n, o), o;
160
- }, ze = (t, e) => (n, r) => e(n, r, t);
160
+ b = Be([
161
+ W(3, c(p)),
162
+ W(4, E)
163
+ ], b);
164
+ var He = Object.defineProperty, qe = Object.getOwnPropertyDescriptor, Ve = (t, e, r, n) => {
165
+ for (var o = n > 1 ? void 0 : n ? qe(e, r) : e, i = t.length - 1, s; i >= 0; i--)
166
+ (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
167
+ return n && o && He(e, r, o), o;
168
+ }, ze = (t, e) => (r, n) => e(r, n, t);
161
169
  let R = class {
162
- constructor(t, e, n, r) {
163
- this._workbook = t, this._worksheet = e, this._selections = n, this._injector = r;
170
+ constructor(t, e, r, n) {
171
+ this._workbook = t, this._worksheet = e, this._selections = r, this._injector = n;
164
172
  }
165
173
  getActiveRange() {
166
174
  const t = this._selections.find((e) => !!e.primary);
167
- return t ? this._injector.createInstance(w, this._workbook, this._worksheet, t.range) : null;
175
+ return t ? this._injector.createInstance(b, this._workbook, this._worksheet, t.range) : null;
168
176
  }
169
177
  };
170
178
  R = Ve([
171
- ze(3, c(u))
179
+ ze(3, c(p))
172
180
  ], R);
173
- var Ge = Object.defineProperty, Je = Object.getOwnPropertyDescriptor, Ke = (t, e, n, r) => {
174
- for (var o = r > 1 ? void 0 : r ? Je(e, n) : e, i = t.length - 1, s; i >= 0; i--)
175
- (s = t[i]) && (o = (r ? s(e, n, o) : s(o)) || o);
176
- return r && o && Ge(e, n, o), o;
177
- }, x = (t, e) => (n, r) => e(n, r, t);
178
- let b = class {
179
- constructor(t, e, n, r, o) {
180
- this._workbook = t, this._worksheet = e, this._injector = n, this._selectionManagerService = r, this._commandService = o;
181
+ var Ge = Object.defineProperty, Je = Object.getOwnPropertyDescriptor, Ke = (t, e, r, n) => {
182
+ for (var o = n > 1 ? void 0 : n ? Je(e, r) : e, i = t.length - 1, s; i >= 0; i--)
183
+ (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
184
+ return n && o && Ge(e, r, o), o;
185
+ }, x = (t, e) => (r, n) => e(r, n, t);
186
+ let I = class {
187
+ constructor(t, e, r, n, o) {
188
+ this._workbook = t, this._worksheet = e, this._injector = r, this._selectionManagerService = n, this._commandService = o;
181
189
  }
182
190
  getSelection() {
183
191
  const t = this._selectionManagerService.getSelections();
184
192
  return t ? this._injector.createInstance(R, this._workbook, this._worksheet, t) : null;
185
193
  }
186
- getRange(t, e, n, r) {
194
+ getRange(t, e, r, n) {
187
195
  const o = {
188
196
  startRow: t,
189
- endRow: t + (n ?? 1) - 1,
197
+ endRow: t + (r ?? 1) - 1,
190
198
  startColumn: e,
191
- endColumn: e + (r ?? 1) - 1
199
+ endColumn: e + (n ?? 1) - 1
192
200
  };
193
- return this._injector.createInstance(w, this._workbook, this._worksheet, o);
201
+ return this._injector.createInstance(b, this._workbook, this._worksheet, o);
194
202
  }
195
- setRowHeights(t, e, n) {
203
+ setRowHeights(t, e, r) {
196
204
  this._commandService.syncExecuteCommand($e.id, {
197
205
  unitId: this._workbook.getUnitId(),
198
206
  subUnitId: this._worksheet.getSheetId(),
@@ -204,10 +212,10 @@ let b = class {
204
212
  endColumn: this._worksheet.getColumnCount() - 1
205
213
  }
206
214
  ],
207
- rowHeight: n
215
+ rowHeight: r
208
216
  });
209
217
  }
210
- setColumnWidths(t, e, n) {
218
+ setColumnWidths(t, e, r) {
211
219
  this._commandService.syncExecuteCommand(xe.id, {
212
220
  unitId: this._workbook.getUnitId(),
213
221
  subUnitId: this._worksheet.getSheetId(),
@@ -219,49 +227,49 @@ let b = class {
219
227
  endRow: this._worksheet.getRowCount() - 1
220
228
  }
221
229
  ],
222
- colWidth: n
230
+ colWidth: r
223
231
  });
224
232
  }
225
233
  };
226
- b = Ke([
227
- x(2, c(u)),
234
+ I = Ke([
235
+ x(2, c(p)),
228
236
  x(3, c(ye)),
229
- x(4, I)
230
- ], b);
231
- var Ye = Object.defineProperty, Qe = Object.getOwnPropertyDescriptor, Xe = (t, e, n, r) => {
232
- for (var o = r > 1 ? void 0 : r ? Qe(e, n) : e, i = t.length - 1, s; i >= 0; i--)
233
- (s = t[i]) && (o = (r ? s(e, n, o) : s(o)) || o);
234
- return r && o && Ye(e, n, o), o;
235
- }, A = (t, e) => (n, r) => e(n, r, t);
237
+ x(4, E)
238
+ ], I);
239
+ var Ye = Object.defineProperty, Qe = Object.getOwnPropertyDescriptor, Xe = (t, e, r, n) => {
240
+ for (var o = n > 1 ? void 0 : n ? Qe(e, r) : e, i = t.length - 1, s; i >= 0; i--)
241
+ (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
242
+ return n && o && Ye(e, r, o), o;
243
+ }, A = (t, e) => (r, n) => e(r, n, t);
236
244
  let k = class {
237
- constructor(t, e, n) {
238
- this._workbook = t, this._injector = e, this._commandService = n;
245
+ constructor(t, e, r) {
246
+ this._workbook = t, this._injector = e, this._commandService = r;
239
247
  }
240
248
  getActiveSheet() {
241
249
  const t = this._workbook.getActiveSheet();
242
- return t ? this._injector.createInstance(b, this._workbook, t) : null;
250
+ return t ? this._injector.createInstance(I, this._workbook, t) : null;
243
251
  }
244
- create(t, e, n) {
245
- const r = te.deepClone(re);
246
- return r.rowCount = e, r.columnCount = n, r.name = t, r.id = t.toLowerCase().replace(/ /g, "-"), this._commandService.syncExecuteCommand(Ue.id, {
252
+ create(t, e, r) {
253
+ const n = re.deepClone(ne);
254
+ return n.rowCount = e, n.columnCount = r, n.name = t, n.id = t.toLowerCase().replace(/ /g, "-"), this._commandService.syncExecuteCommand(Ue.id, {
247
255
  unitId: this._workbook.getUnitId(),
248
256
  index: this._workbook.getSheets().length,
249
- sheet: r
257
+ sheet: n
250
258
  }), this._commandService.syncExecuteCommand(Re.id, {
251
259
  unitId: this._workbook.getUnitId(),
252
260
  subUnitId: this._workbook.getSheets()[this._workbook.getSheets().length - 1].getSheetId()
253
- }), this._injector.createInstance(b, this._workbook, this._workbook.getActiveSheet());
261
+ }), this._injector.createInstance(I, this._workbook, this._workbook.getActiveSheet());
254
262
  }
255
263
  };
256
264
  k = Xe([
257
- A(1, c(u)),
258
- A(2, I)
265
+ A(1, c(p)),
266
+ A(2, E)
259
267
  ], k);
260
- var Ze = Object.defineProperty, et = Object.getOwnPropertyDescriptor, tt = (t, e, n, r) => {
261
- for (var o = r > 1 ? void 0 : r ? et(e, n) : e, i = t.length - 1, s; i >= 0; i--)
262
- (s = t[i]) && (o = (r ? s(e, n, o) : s(o)) || o);
263
- return r && o && Ze(e, n, o), o;
264
- }, F = (t, e) => (n, r) => e(n, r, t);
268
+ var Ze = Object.defineProperty, et = Object.getOwnPropertyDescriptor, tt = (t, e, r, n) => {
269
+ for (var o = n > 1 ? void 0 : n ? et(e, r) : e, i = t.length - 1, s; i >= 0; i--)
270
+ (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
271
+ return n && o && Ze(e, r, o), o;
272
+ }, F = (t, e) => (r, n) => e(r, n, t);
265
273
  let P = class {
266
274
  constructor(t, e) {
267
275
  this._injector = t, this._univerInstanceService = e;
@@ -275,94 +283,94 @@ let P = class {
275
283
  }
276
284
  };
277
285
  P = tt([
278
- F(0, c(u)),
279
- F(1, ne)
286
+ F(0, c(p)),
287
+ F(1, oe)
280
288
  ], P);
281
- var rt = Object.defineProperty, nt = Object.getOwnPropertyDescriptor, ot = (t, e, n, r) => {
282
- for (var o = r > 1 ? void 0 : r ? nt(e, n) : e, i = t.length - 1, s; i >= 0; i--)
283
- (s = t[i]) && (o = (r ? s(e, n, o) : s(o)) || o);
284
- return r && o && rt(e, n, o), o;
285
- }, N = (t, e) => (n, r) => e(n, r, t);
289
+ var rt = Object.defineProperty, nt = Object.getOwnPropertyDescriptor, ot = (t, e, r, n) => {
290
+ for (var o = n > 1 ? void 0 : n ? nt(e, r) : e, i = t.length - 1, s; i >= 0; i--)
291
+ (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
292
+ return n && o && rt(e, r, o), o;
293
+ }, N = (t, e) => (r, n) => e(r, n, t);
286
294
  let C = class extends O {
287
295
  constructor(t, e) {
288
296
  super(), this._logService = t, this._injector = e;
289
297
  }
290
298
  async execute(t) {
291
299
  this._logService.log("[UniscriptExecutionService]", "executing Uniscript...");
292
- const e = P.newInstance(this._injector), n = new Function("Univer", `(() => {${t}})()`);
300
+ const e = P.newInstance(this._injector), r = new Function("Univer", `(() => {${t}})()`);
293
301
  try {
294
- return n(e), !0;
295
- } catch (r) {
296
- return this._logService.error(r), !1;
302
+ return r(e), !0;
303
+ } catch (n) {
304
+ return this._logService.error(n), !1;
297
305
  }
298
306
  }
299
307
  };
300
308
  C = ot([
301
- N(0, oe),
302
- N(1, c(u))
309
+ N(0, ie),
310
+ N(1, c(p))
303
311
  ], C);
304
- const it = "univer-script-editor-panel", st = "univer-script-editor-content", ct = "univer-script-editor-actions", g = {
312
+ const it = "univer-script-editor-panel", st = "univer-script-editor-content", ct = "univer-script-editor-actions", f = {
305
313
  scriptEditorPanel: it,
306
314
  scriptEditorContent: st,
307
315
  scriptEditorActions: ct
308
316
  };
309
317
  function at() {
310
- const t = $(null), e = $(null), n = $(null), r = h(H), o = h(C), i = h(he), s = h(U), D = h(de);
311
- Ce(() => {
318
+ const t = $(null), e = $(null), r = $(null), n = d(q), o = d(C), i = d(he), s = d(U), D = d(de);
319
+ Pe(() => {
312
320
  const _ = e.current, a = t.current;
313
- let p = null, v = null;
321
+ let l = null, m = null;
314
322
  if (_ && a) {
315
323
  s.requireVscodeEditor();
316
- const j = n.current = Ee.create(_, {
324
+ const g = r.current = Ee.create(_, {
317
325
  value: "",
318
326
  language: "javascript"
319
327
  });
320
- v = new ResizeObserver(() => {
328
+ m = new ResizeObserver(() => {
321
329
  let M = requestIdleCallback(() => {
322
330
  if (!M)
323
331
  return;
324
- const { height: Y, width: Q } = a.getBoundingClientRect();
325
- j.layout({ width: Q, height: Y }), M = void 0;
332
+ const { height: Q, width: X } = a.getBoundingClientRect();
333
+ g.layout({ width: X, height: Q }), M = void 0;
326
334
  });
327
- }), v.observe(a);
328
- let l;
329
- p = new ie(), p.add(
330
- j.onDidFocusEditorWidget(() => {
331
- l = i.forceEscape();
335
+ }), m.observe(a);
336
+ let u;
337
+ l = new se(), l.add(s.setEditorInstance(g)), l.add(
338
+ g.onDidFocusEditorWidget(() => {
339
+ u = i.forceEscape();
332
340
  })
333
- ), p.add(
334
- j.onDidBlurEditorWidget(() => {
335
- l == null || l.dispose(), l = void 0;
341
+ ), l.add(
342
+ g.onDidBlurEditorWidget(() => {
343
+ u == null || u.dispose(), u = void 0;
336
344
  })
337
- ), p.add(se(() => l == null ? void 0 : l.dispose()));
345
+ ), l.add(H(() => u == null ? void 0 : u.dispose()));
338
346
  }
339
347
  return () => {
340
- v && a && v.unobserve(a), p == null || p.dispose();
348
+ m && a && m.unobserve(a), l == null || l.dispose();
341
349
  };
342
350
  }, []);
343
- const K = Oe(() => {
351
+ const Y = Ce(() => {
344
352
  var a;
345
- const _ = (a = n.current) == null ? void 0 : a.getModel();
353
+ const _ = (a = r.current) == null ? void 0 : a.getModel();
346
354
  _ && o.execute(_.getValue()).then(() => {
347
355
  D.show({
348
- content: r.t("uniscript.message.success"),
356
+ content: n.t("uniscript.message.success"),
349
357
  type: T.Success
350
358
  });
351
359
  }).catch(() => {
352
360
  D.show({
353
- content: r.t("uniscript.message.failed"),
361
+ content: n.t("uniscript.message.failed"),
354
362
  type: T.Error
355
363
  });
356
364
  });
357
365
  }, [o]);
358
- return /* @__PURE__ */ d.jsxs("div", { className: g.scriptEditorPanel, children: [
359
- /* @__PURE__ */ d.jsx("div", { className: g.scriptEditorContent, ref: t, children: /* @__PURE__ */ d.jsx("div", { className: g.scriptEditorContainer, ref: e }) }),
360
- /* @__PURE__ */ d.jsx("div", { className: g.scriptEditorActions, children: /* @__PURE__ */ d.jsx(Ie, { type: "primary", size: "small", onClick: K, children: r.t("script-panel.panel.execute") }) })
366
+ return /* @__PURE__ */ v.jsxs("div", { className: f.scriptEditorPanel, children: [
367
+ /* @__PURE__ */ v.jsx("div", { className: f.scriptEditorContent, ref: t, children: /* @__PURE__ */ v.jsx("div", { className: f.scriptEditorContainer, ref: e }) }),
368
+ /* @__PURE__ */ v.jsx("div", { className: f.scriptEditorActions, children: /* @__PURE__ */ v.jsx(Oe, { type: "primary", size: "small", onClick: Y, children: n.t("script-panel.panel.execute") }) })
361
369
  ] });
362
370
  }
363
371
  function lt(t) {
364
372
  return {
365
- id: z.id,
373
+ id: G.id,
366
374
  title: "toggle-script-panel",
367
375
  tooltip: "script-panel.tooltip.menu-button",
368
376
  icon: "CodeSingle",
@@ -371,50 +379,50 @@ function lt(t) {
371
379
  hidden$: ge(t, ce.SHEET)
372
380
  };
373
381
  }
374
- var ut = Object.defineProperty, pt = Object.getOwnPropertyDescriptor, _t = (t, e, n, r) => {
375
- for (var o = r > 1 ? void 0 : r ? pt(e, n) : e, i = t.length - 1, s; i >= 0; i--)
376
- (s = t[i]) && (o = (r ? s(e, n, o) : s(o)) || o);
377
- return r && o && ut(e, n, o), o;
378
- }, f = (t, e) => (n, r) => e(n, r, t);
379
- let S = class extends O {
380
- constructor(t, e, n, r) {
381
- super(), this._injector = t, this.disposeWithMe(e.addMenuItem(this._injector.invoke(lt))), this.disposeWithMe(r.register(V, at)), this.disposeWithMe(n.registerCommand(z));
382
+ var ut = Object.defineProperty, pt = Object.getOwnPropertyDescriptor, _t = (t, e, r, n) => {
383
+ for (var o = n > 1 ? void 0 : n ? pt(e, r) : e, i = t.length - 1, s; i >= 0; i--)
384
+ (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
385
+ return n && o && ut(e, r, o), o;
386
+ }, S = (t, e) => (r, n) => e(r, n, t);
387
+ let w = class extends O {
388
+ constructor(t, e, r, n) {
389
+ super(), this._injector = t, this.disposeWithMe(e.addMenuItem(this._injector.invoke(lt))), this.disposeWithMe(n.register(z, at)), this.disposeWithMe(r.registerCommand(G));
382
390
  }
383
391
  };
384
- S = _t([
385
- ae(le.Steady, S),
386
- f(0, c(u)),
387
- f(1, Se),
388
- f(2, I),
389
- f(3, c(fe))
390
- ], S);
391
- var ht = Object.defineProperty, dt = Object.getOwnPropertyDescriptor, vt = (t, e, n, r) => {
392
- for (var o = r > 1 ? void 0 : r ? dt(e, n) : e, i = t.length - 1, s; i >= 0; i--)
393
- (s = t[i]) && (o = (r ? s(e, n, o) : s(o)) || o);
394
- return r && o && ht(e, n, o), o;
395
- }, L = (t, e) => (n, r) => e(n, r, t);
392
+ w = _t([
393
+ ae(le.Steady, w),
394
+ S(0, c(p)),
395
+ S(1, Se),
396
+ S(2, E),
397
+ S(3, c(fe))
398
+ ], w);
399
+ var ht = Object.defineProperty, dt = Object.getOwnPropertyDescriptor, vt = (t, e, r, n) => {
400
+ for (var o = n > 1 ? void 0 : n ? dt(e, r) : e, i = t.length - 1, s; i >= 0; i--)
401
+ (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
402
+ return n && o && ht(e, r, o), o;
403
+ }, L = (t, e) => (r, n) => e(r, n, t);
396
404
  const mt = "uniscript";
397
405
  var y;
398
406
  let B = (y = class extends ue {
399
- constructor(t, e, n) {
400
- super(mt), this._config = t, this._injector = e, this._localeService = n;
407
+ constructor(t, e, r) {
408
+ super(mt), this._config = t, this._injector = e, this._localeService = r;
401
409
  }
402
410
  onStarting(t) {
403
411
  [
404
412
  // controllers
405
- [S],
413
+ [w],
406
414
  // services
407
415
  [U, { useFactory: () => t.createInstance(U, this._config) }],
408
- [q],
416
+ [V],
409
417
  [C]
410
- ].forEach((n) => t.add(n)), this._localeService.load({
418
+ ].forEach((r) => t.add(r)), this._localeService.load({
411
419
  zhCN: ke
412
420
  });
413
421
  }
414
- }, m(y, "type", pe.Univer), y);
422
+ }, h(y, "type", pe.Univer), y);
415
423
  B = vt([
416
- L(1, c(u)),
417
- L(2, c(H))
424
+ L(1, c(p)),
425
+ L(2, c(q))
418
426
  ], B);
419
427
  export {
420
428
  B as UniverUniscriptPlugin,
@@ -14,14 +14,20 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { Disposable } from '@univerjs/core';
17
+ import type { IDisposable } from '@wendellhu/redi';
18
+ import type { editor } from '../../node_modules/monaco-editor/esm/vs/editor/editor.api';
17
19
  export interface IScriptEditorServiceConfig {
18
20
  getWorkerUrl(moduleID: string, label: string): string;
19
21
  }
20
22
  /**
21
- * This service is for loading monaco editor and its resources.
23
+ * This service is for loading monaco editor and its resources. It also holds the
24
+ * monaco editor instance so user can interact with the editor programmatically.
22
25
  */
23
26
  export declare class ScriptEditorService extends Disposable {
24
27
  private readonly _config;
28
+ private _editorInstance;
25
29
  constructor(_config: IScriptEditorServiceConfig);
30
+ setEditorInstance(editor: editor.IStandaloneCodeEditor): IDisposable;
31
+ getEditorInstance(): editor.IStandaloneCodeEditor | null;
26
32
  requireVscodeEditor(): void;
27
33
  }
package/lib/umd/index.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(a,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/ui"),require("rxjs"),require("react"),require("@univerjs/design"),require("@wendellhu/redi/react-bindings"),require("monaco-editor"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/ui","rxjs","react","@univerjs/design","@wendellhu/redi/react-bindings","monaco-editor","@univerjs/sheets"],c):(a=typeof globalThis<"u"?globalThis:a||self,c(a.UniverUniscript={},a.UniverCore,a["@wendellhu/redi"],a.UniverUi,a.rxjs,a.React,a.UniverDesign,a["@wendellhu/redi/react-bindings"],a.monaco,a.UniverSheets))})(this,function(a,c,l,u,M,_,U,f,Y,v){"use strict";var Te=Object.defineProperty;var Me=(a,c,l)=>c in a?Te(a,c,{enumerable:!0,configurable:!0,writable:!0,value:l}):a[c]=l;var E=(a,c,l)=>(Me(a,typeof c!="symbol"?c+"":c,l),l);var k;const Q={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},W={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}};class A extends c.Disposable{constructor(){super(...arguments);E(this,"_open$",new M.BehaviorSubject(!1));E(this,"open$",this._open$.pipe(M.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const F="ScriptPanel",N={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(A),r=t.get(u.ISidebarService);return e.isOpen?(e.close(),r.close()):(e.open(),r.open({header:{title:"script-panel.title"},children:{label:F},width:600})),!0}};var L={exports:{}},S={};/**
1
+ (function(a,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/ui"),require("rxjs"),require("react"),require("@univerjs/design"),require("@wendellhu/redi/react-bindings"),require("monaco-editor"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/ui","rxjs","react","@univerjs/design","@wendellhu/redi/react-bindings","monaco-editor","@univerjs/sheets"],c):(a=typeof globalThis<"u"?globalThis:a||self,c(a.UniverUniscript={},a.UniverCore,a["@wendellhu/redi"],a.UniverUi,a.rxjs,a.React,a.UniverDesign,a["@wendellhu/redi/react-bindings"],a.monaco,a.UniverSheets))})(this,function(a,c,l,u,M,_,x,f,Y,v){"use strict";var Te=Object.defineProperty;var Me=(a,c,l)=>c in a?Te(a,c,{enumerable:!0,configurable:!0,writable:!0,value:l}):a[c]=l;var S=(a,c,l)=>(Me(a,typeof c!="symbol"?c+"":c,l),l);var T;const Q={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},W={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}};class A extends c.Disposable{constructor(){super(...arguments);S(this,"_open$",new M.BehaviorSubject(!1));S(this,"open$",this._open$.pipe(M.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const F="ScriptPanel",N={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(A),r=t.get(u.ISidebarService);return e.isOpen?(e.close(),r.close()):(e.open(),r.open({header:{title:"script-panel.title"},children:{label:F},width:600})),!0}};var L={exports:{}},w={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var X=_,Z=Symbol.for("react.element"),ee=Symbol.for("react.fragment"),te=Object.prototype.hasOwnProperty,ne=X.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,re={key:!0,ref:!0,__self:!0,__source:!0};function q(t,e,r){var n,i={},s=null,o=null;r!==void 0&&(s=""+r),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(n in e)te.call(e,n)&&!re.hasOwnProperty(n)&&(i[n]=e[n]);if(t&&t.defaultProps)for(n in e=t.defaultProps,e)i[n]===void 0&&(i[n]=e[n]);return{$$typeof:Z,type:t,key:s,ref:o,props:i,_owner:ne.current}}S.Fragment=ee,S.jsx=q,S.jsxs=q,L.exports=S;var m=L.exports;class x extends c.Disposable{constructor(e){super(),this._config=e}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var ie=Object.defineProperty,se=Object.getOwnPropertyDescriptor,oe=(t,e,r,n)=>{for(var i=n>1?void 0:n?se(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&ie(e,r,i),i},H=(t,e)=>(r,n)=>e(r,n,t);let w=class{constructor(t,e,r,n,i){this._workbook=t,this._worksheet=e,this._range=r,this._injector=n,this._commandService=i}getRow(){return this._range.startRow}getColumn(){return this._range.startColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}getValue(){var t;return((t=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:t.v)??null}setBackgroundColor(t){this._commandService.executeCommand(v.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:t}}})}};w=oe([H(3,l.Inject(l.Injector)),H(4,c.ICommandService)],w);var ce=Object.defineProperty,ae=Object.getOwnPropertyDescriptor,le=(t,e,r,n)=>{for(var i=n>1?void 0:n?ae(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&ce(e,r,i),i},ue=(t,e)=>(r,n)=>e(r,n,t);let R=class{constructor(t,e,r,n){this._workbook=t,this._worksheet=e,this._selections=r,this._injector=n}getActiveRange(){const t=this._selections.find(e=>!!e.primary);return t?this._injector.createInstance(w,this._workbook,this._worksheet,t.range):null}};R=le([ue(3,l.Inject(l.Injector))],R);var pe=Object.defineProperty,he=Object.getOwnPropertyDescriptor,de=(t,e,r,n)=>{for(var i=n>1?void 0:n?he(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&pe(e,r,i),i},D=(t,e)=>(r,n)=>e(r,n,t);let j=class{constructor(t,e,r,n,i){this._workbook=t,this._worksheet=e,this._injector=r,this._selectionManagerService=n,this._commandService=i}getSelection(){const t=this._selectionManagerService.getSelections();return t?this._injector.createInstance(R,this._workbook,this._worksheet,t):null}getRange(t,e,r,n){const i={startRow:t,endRow:t+(r??1)-1,startColumn:e,endColumn:e+(n??1)-1};return this._injector.createInstance(w,this._workbook,this._worksheet,i)}setRowHeights(t,e,r){this._commandService.syncExecuteCommand(v.SetWorksheetRowHeightMutation.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[{startRow:t,endRow:t+e-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}],rowHeight:r})}setColumnWidths(t,e,r){this._commandService.syncExecuteCommand(v.SetWorksheetColWidthMutation.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[{startColumn:t,endColumn:t+e-1,startRow:0,endRow:this._worksheet.getRowCount()-1}],colWidth:r})}};j=de([D(2,l.Inject(l.Injector)),D(3,l.Inject(v.SelectionManagerService)),D(4,c.ICommandService)],j);var _e=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,fe=(t,e,r,n)=>{for(var i=n>1?void 0:n?ve(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&_e(e,r,i),i},z=(t,e)=>(r,n)=>e(r,n,t);let $=class{constructor(t,e,r){this._workbook=t,this._injector=e,this._commandService=r}getActiveSheet(){const t=this._workbook.getActiveSheet();return t?this._injector.createInstance(j,this._workbook,t):null}create(t,e,r){const n=c.Tools.deepClone(c.DEFAULT_WORKSHEET);return n.rowCount=e,n.columnCount=r,n.name=t,n.id=t.toLowerCase().replace(/ /g,"-"),this._commandService.syncExecuteCommand(v.InsertSheetCommand.id,{unitId:this._workbook.getUnitId(),index:this._workbook.getSheets().length,sheet:n}),this._commandService.syncExecuteCommand(v.SetWorksheetActivateCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._workbook.getSheets()[this._workbook.getSheets().length-1].getSheetId()}),this._injector.createInstance(j,this._workbook,this._workbook.getActiveSheet())}};$=fe([z(1,l.Inject(l.Injector)),z(2,c.ICommandService)],$);var me=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,Se=(t,e,r,n)=>{for(var i=n>1?void 0:n?ge(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&me(e,r,i),i},V=(t,e)=>(r,n)=>e(r,n,t);let I=class{constructor(t,e){this._injector=t,this._univerInstanceService=e}static newInstance(t){return t.createInstance(I)}getCurrentSheet(){const t=this._univerInstanceService.getCurrentUniverSheetInstance();return t?this._injector.createInstance($,t):null}};I=Se([V(0,l.Inject(l.Injector)),V(1,c.IUniverInstanceService)],I);var we=Object.defineProperty,je=Object.getOwnPropertyDescriptor,Ie=(t,e,r,n)=>{for(var i=n>1?void 0:n?je(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&we(e,r,i),i},B=(t,e)=>(r,n)=>e(r,n,t);let C=class extends c.Disposable{constructor(t,e){super(),this._logService=t,this._injector=e}async execute(t){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=I.newInstance(this._injector),r=new Function("Univer",`(() => {${t}})()`);try{return r(e),!0}catch(n){return this._logService.error(n),!1}}};C=Ie([B(0,c.ILogService),B(1,l.Inject(l.Injector))],C);const P={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function Ce(){const t=_.useRef(null),e=_.useRef(null),r=_.useRef(null),n=f.useDependency(c.LocaleService),i=f.useDependency(C),s=f.useDependency(u.IShortcutService),o=f.useDependency(x),J=f.useDependency(u.IMessageService);_.useEffect(()=>{const g=e.current,p=t.current;let d=null,y=null;if(g&&p){o.requireVscodeEditor();const T=r.current=Y.editor.create(g,{value:"",language:"javascript"});y=new ResizeObserver(()=>{let K=requestIdleCallback(()=>{if(!K)return;const{height:$e,width:ke}=p.getBoundingClientRect();T.layout({width:ke,height:$e}),K=void 0})}),y.observe(p);let h;d=new c.DisposableCollection,d.add(T.onDidFocusEditorWidget(()=>{h=s.forceEscape()})),d.add(T.onDidBlurEditorWidget(()=>{h==null||h.dispose(),h=void 0})),d.add(c.toDisposable(()=>h==null?void 0:h.dispose()))}return()=>{y&&p&&y.unobserve(p),d==null||d.dispose()}},[]);const De=_.useCallback(()=>{var p;const g=(p=r.current)==null?void 0:p.getModel();g&&i.execute(g.getValue()).then(()=>{J.show({content:n.t("uniscript.message.success"),type:U.MessageType.Success})}).catch(()=>{J.show({content:n.t("uniscript.message.failed"),type:U.MessageType.Error})})},[i]);return m.jsxs("div",{className:P.scriptEditorPanel,children:[m.jsx("div",{className:P.scriptEditorContent,ref:t,children:m.jsx("div",{className:P.scriptEditorContainer,ref:e})}),m.jsx("div",{className:P.scriptEditorActions,children:m.jsx(U.Button,{type:"primary",size:"small",onClick:De,children:n.t("script-panel.panel.execute")})})]})}function Pe(t){return{id:N.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:u.MenuItemType.BUTTON,positions:[u.MenuPosition.TOOLBAR_START],hidden$:u.getMenuHiddenObservable(t,c.UniverInstanceType.SHEET)}}var be=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,ye=(t,e,r,n)=>{for(var i=n>1?void 0:n?Oe(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&be(e,r,i),i},b=(t,e)=>(r,n)=>e(r,n,t);let O=class extends c.Disposable{constructor(t,e,r,n){super(),this._injector=t,this.disposeWithMe(e.addMenuItem(this._injector.invoke(Pe))),this.disposeWithMe(n.register(F,Ce)),this.disposeWithMe(r.registerCommand(N))}};O=ye([c.OnLifecycle(c.LifecycleStages.Steady,O),b(0,l.Inject(l.Injector)),b(1,u.IMenuService),b(2,c.ICommandService),b(3,l.Inject(u.ComponentManager))],O);var Ee=Object.defineProperty,Ue=Object.getOwnPropertyDescriptor,xe=(t,e,r,n)=>{for(var i=n>1?void 0:n?Ue(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&Ee(e,r,i),i},G=(t,e)=>(r,n)=>e(r,n,t);const Re="uniscript";a.UniverUniscriptPlugin=(k=class extends c.Plugin{constructor(e,r,n){super(Re),this._config=e,this._injector=r,this._localeService=n}onStarting(e){[[O],[x,{useFactory:()=>e.createInstance(x,this._config)}],[A],[C]].forEach(n=>e.add(n)),this._localeService.load({zhCN:W})}},E(k,"type",c.PluginType.Univer),k),a.UniverUniscriptPlugin=xe([G(1,l.Inject(l.Injector)),G(2,l.Inject(c.LocaleService))],a.UniverUniscriptPlugin),a.enUS=Q,a.zhCN=W,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});
9
+ */var X=_,Z=Symbol.for("react.element"),ee=Symbol.for("react.fragment"),te=Object.prototype.hasOwnProperty,ne=X.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,re={key:!0,ref:!0,__self:!0,__source:!0};function q(t,e,r){var n,i={},s=null,o=null;r!==void 0&&(s=""+r),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(n in e)te.call(e,n)&&!re.hasOwnProperty(n)&&(i[n]=e[n]);if(t&&t.defaultProps)for(n in e=t.defaultProps,e)i[n]===void 0&&(i[n]=e[n]);return{$$typeof:Z,type:t,key:s,ref:o,props:i,_owner:ne.current}}w.Fragment=ee,w.jsx=q,w.jsxs=q,L.exports=w;var g=L.exports;class R extends c.Disposable{constructor(r){super();S(this,"_editorInstance",null);this._config=r}setEditorInstance(r){return this._editorInstance=r,c.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var ie=Object.defineProperty,se=Object.getOwnPropertyDescriptor,oe=(t,e,r,n)=>{for(var i=n>1?void 0:n?se(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&ie(e,r,i),i},H=(t,e)=>(r,n)=>e(r,n,t);let I=class{constructor(t,e,r,n,i){this._workbook=t,this._worksheet=e,this._range=r,this._injector=n,this._commandService=i}getRow(){return this._range.startRow}getColumn(){return this._range.startColumn}getWidth(){return this._range.endColumn-this._range.startColumn+1}getHeight(){return this._range.endRow-this._range.startRow+1}getValue(){var t;return((t=this._worksheet.getCell(this._range.startRow,this._range.startColumn))==null?void 0:t.v)??null}setBackgroundColor(t){this._commandService.executeCommand(v.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:t}}})}};I=oe([H(3,l.Inject(l.Injector)),H(4,c.ICommandService)],I);var ce=Object.defineProperty,ae=Object.getOwnPropertyDescriptor,le=(t,e,r,n)=>{for(var i=n>1?void 0:n?ae(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&ce(e,r,i),i},ue=(t,e)=>(r,n)=>e(r,n,t);let D=class{constructor(t,e,r,n){this._workbook=t,this._worksheet=e,this._selections=r,this._injector=n}getActiveRange(){const t=this._selections.find(e=>!!e.primary);return t?this._injector.createInstance(I,this._workbook,this._worksheet,t.range):null}};D=le([ue(3,l.Inject(l.Injector))],D);var pe=Object.defineProperty,de=Object.getOwnPropertyDescriptor,he=(t,e,r,n)=>{for(var i=n>1?void 0:n?de(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&pe(e,r,i),i},$=(t,e)=>(r,n)=>e(r,n,t);let j=class{constructor(t,e,r,n,i){this._workbook=t,this._worksheet=e,this._injector=r,this._selectionManagerService=n,this._commandService=i}getSelection(){const t=this._selectionManagerService.getSelections();return t?this._injector.createInstance(D,this._workbook,this._worksheet,t):null}getRange(t,e,r,n){const i={startRow:t,endRow:t+(r??1)-1,startColumn:e,endColumn:e+(n??1)-1};return this._injector.createInstance(I,this._workbook,this._worksheet,i)}setRowHeights(t,e,r){this._commandService.syncExecuteCommand(v.SetWorksheetRowHeightMutation.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[{startRow:t,endRow:t+e-1,startColumn:0,endColumn:this._worksheet.getColumnCount()-1}],rowHeight:r})}setColumnWidths(t,e,r){this._commandService.syncExecuteCommand(v.SetWorksheetColWidthMutation.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),ranges:[{startColumn:t,endColumn:t+e-1,startRow:0,endRow:this._worksheet.getRowCount()-1}],colWidth:r})}};j=he([$(2,l.Inject(l.Injector)),$(3,l.Inject(v.SelectionManagerService)),$(4,c.ICommandService)],j);var _e=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,fe=(t,e,r,n)=>{for(var i=n>1?void 0:n?ve(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&_e(e,r,i),i},z=(t,e)=>(r,n)=>e(r,n,t);let k=class{constructor(t,e,r){this._workbook=t,this._injector=e,this._commandService=r}getActiveSheet(){const t=this._workbook.getActiveSheet();return t?this._injector.createInstance(j,this._workbook,t):null}create(t,e,r){const n=c.Tools.deepClone(c.DEFAULT_WORKSHEET);return n.rowCount=e,n.columnCount=r,n.name=t,n.id=t.toLowerCase().replace(/ /g,"-"),this._commandService.syncExecuteCommand(v.InsertSheetCommand.id,{unitId:this._workbook.getUnitId(),index:this._workbook.getSheets().length,sheet:n}),this._commandService.syncExecuteCommand(v.SetWorksheetActivateCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._workbook.getSheets()[this._workbook.getSheets().length-1].getSheetId()}),this._injector.createInstance(j,this._workbook,this._workbook.getActiveSheet())}};k=fe([z(1,l.Inject(l.Injector)),z(2,c.ICommandService)],k);var ge=Object.defineProperty,me=Object.getOwnPropertyDescriptor,Se=(t,e,r,n)=>{for(var i=n>1?void 0:n?me(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&ge(e,r,i),i},V=(t,e)=>(r,n)=>e(r,n,t);let b=class{constructor(t,e){this._injector=t,this._univerInstanceService=e}static newInstance(t){return t.createInstance(b)}getCurrentSheet(){const t=this._univerInstanceService.getCurrentUniverSheetInstance();return t?this._injector.createInstance(k,t):null}};b=Se([V(0,l.Inject(l.Injector)),V(1,c.IUniverInstanceService)],b);var we=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,je=(t,e,r,n)=>{for(var i=n>1?void 0:n?Ie(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&we(e,r,i),i},B=(t,e)=>(r,n)=>e(r,n,t);let C=class extends c.Disposable{constructor(t,e){super(),this._logService=t,this._injector=e}async execute(t){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=b.newInstance(this._injector),r=new Function("Univer",`(() => {${t}})()`);try{return r(e),!0}catch(n){return this._logService.error(n),!1}}};C=je([B(0,c.ILogService),B(1,l.Inject(l.Injector))],C);const P={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function be(){const t=_.useRef(null),e=_.useRef(null),r=_.useRef(null),n=f.useDependency(c.LocaleService),i=f.useDependency(C),s=f.useDependency(u.IShortcutService),o=f.useDependency(R),J=f.useDependency(u.IMessageService);_.useEffect(()=>{const m=e.current,p=t.current;let d=null,y=null;if(m&&p){o.requireVscodeEditor();const U=r.current=Y.editor.create(m,{value:"",language:"javascript"});y=new ResizeObserver(()=>{let K=requestIdleCallback(()=>{if(!K)return;const{height:$e,width:ke}=p.getBoundingClientRect();U.layout({width:ke,height:$e}),K=void 0})}),y.observe(p);let h;d=new c.DisposableCollection,d.add(o.setEditorInstance(U)),d.add(U.onDidFocusEditorWidget(()=>{h=s.forceEscape()})),d.add(U.onDidBlurEditorWidget(()=>{h==null||h.dispose(),h=void 0})),d.add(c.toDisposable(()=>h==null?void 0:h.dispose()))}return()=>{y&&p&&y.unobserve(p),d==null||d.dispose()}},[]);const De=_.useCallback(()=>{var p;const m=(p=r.current)==null?void 0:p.getModel();m&&i.execute(m.getValue()).then(()=>{J.show({content:n.t("uniscript.message.success"),type:x.MessageType.Success})}).catch(()=>{J.show({content:n.t("uniscript.message.failed"),type:x.MessageType.Error})})},[i]);return g.jsxs("div",{className:P.scriptEditorPanel,children:[g.jsx("div",{className:P.scriptEditorContent,ref:t,children:g.jsx("div",{className:P.scriptEditorContainer,ref:e})}),g.jsx("div",{className:P.scriptEditorActions,children:g.jsx(x.Button,{type:"primary",size:"small",onClick:De,children:n.t("script-panel.panel.execute")})})]})}function Ce(t){return{id:N.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:u.MenuItemType.BUTTON,positions:[u.MenuPosition.TOOLBAR_START],hidden$:u.getMenuHiddenObservable(t,c.UniverInstanceType.SHEET)}}var Pe=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,Ee=(t,e,r,n)=>{for(var i=n>1?void 0:n?Oe(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&Pe(e,r,i),i},O=(t,e)=>(r,n)=>e(r,n,t);let E=class extends c.Disposable{constructor(t,e,r,n){super(),this._injector=t,this.disposeWithMe(e.addMenuItem(this._injector.invoke(Ce))),this.disposeWithMe(n.register(F,be)),this.disposeWithMe(r.registerCommand(N))}};E=Ee([c.OnLifecycle(c.LifecycleStages.Steady,E),O(0,l.Inject(l.Injector)),O(1,u.IMenuService),O(2,c.ICommandService),O(3,l.Inject(u.ComponentManager))],E);var ye=Object.defineProperty,Ue=Object.getOwnPropertyDescriptor,xe=(t,e,r,n)=>{for(var i=n>1?void 0:n?Ue(e,r):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(n?o(e,r,i):o(i))||i);return n&&i&&ye(e,r,i),i},G=(t,e)=>(r,n)=>e(r,n,t);const Re="uniscript";a.UniverUniscriptPlugin=(T=class extends c.Plugin{constructor(e,r,n){super(Re),this._config=e,this._injector=r,this._localeService=n}onStarting(e){[[E],[R,{useFactory:()=>e.createInstance(R,this._config)}],[A],[C]].forEach(n=>e.add(n)),this._localeService.load({zhCN:W})}},S(T,"type",c.PluginType.Univer),T),a.UniverUniscriptPlugin=xe([G(1,l.Inject(l.Injector)),G(2,l.Inject(c.LocaleService))],a.UniverUniscriptPlugin),a.enUS=Q,a.zhCN=W,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/uniscript",
3
- "version": "0.1.0-beta.0",
3
+ "version": "0.1.0-beta.1",
4
4
  "description": "UI component library for building exceptional Univer.",
5
5
  "keywords": [],
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -34,35 +34,37 @@
34
34
  "**/*.css"
35
35
  ],
36
36
  "private": false,
37
- "devDependencies": {
38
- "@types/react": "^18.2.42",
39
- "@vitejs/plugin-react": "^4.2.1",
40
- "@vitest/coverage-istanbul": "^1.0.4",
37
+ "dependencies": {
41
38
  "@wendellhu/redi": "^0.12.12",
42
- "less": "^4.2.0",
43
39
  "monaco-editor": "0.45.0",
44
40
  "rxjs": "^7.8.1",
41
+ "@univerjs/core": "0.1.0-beta.1",
42
+ "@univerjs/design": "0.1.0-beta.1",
43
+ "@univerjs/sheets-ui": "0.1.0-beta.1",
44
+ "@univerjs/ui": "0.1.0-beta.1",
45
+ "@univerjs/sheets": "0.1.0-beta.1"
46
+ },
47
+ "devDependencies": {
48
+ "@types/react": "^18.2.45",
49
+ "@vitejs/plugin-react": "^4.2.1",
50
+ "@vitest/coverage-istanbul": "^1.1.0",
51
+ "less": "^4.2.0",
45
52
  "typescript": "^5.3.3",
46
- "vite": "^5.0.8",
53
+ "vite": "^5.0.10",
47
54
  "vite-plugin-dts": "^3.6.4",
48
55
  "vite-plugin-externals": "^0.6.2",
49
- "vitest": "^1.0.4",
50
- "@univerjs/core": "0.1.0-beta.0",
51
- "@univerjs/design": "0.1.0-beta.0",
52
- "@univerjs/sheets": "0.1.0-beta.0",
53
- "@univerjs/ui": "0.1.0-beta.0",
54
- "@univerjs/sheets-ui": "0.1.0-beta.0"
56
+ "vitest": "^1.1.0"
55
57
  },
56
58
  "peerDependencies": {
57
59
  "@wendellhu/redi": ">=0.12.12",
58
60
  "monaco-editor": ">=0.44.0",
59
61
  "react": ">=16.9.0",
60
62
  "rxjs": ">=7.0.0",
61
- "@univerjs/design": "0.1.0-beta.0",
62
- "@univerjs/sheets": "0.1.0-beta.0",
63
- "@univerjs/sheets-ui": "0.1.0-beta.0",
64
- "@univerjs/core": "0.1.0-beta.0",
65
- "@univerjs/ui": "0.1.0-beta.0"
63
+ "@univerjs/core": "0.1.0-beta.1",
64
+ "@univerjs/design": "0.1.0-beta.1",
65
+ "@univerjs/sheets-ui": "0.1.0-beta.1",
66
+ "@univerjs/ui": "0.1.0-beta.1",
67
+ "@univerjs/sheets": "0.1.0-beta.1"
66
68
  },
67
69
  "scripts": {
68
70
  "test": "vitest run",