@univerjs/uniscript 0.1.0-alpha.2 → 0.1.0-beta.0

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