@univerjs/uniscript 0.1.0-alpha.3 → 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 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"),L=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 z 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 V="ScriptPanel",k={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(z),n=t.get(_.ISidebarService);return e.isOpen?(e.close(),n.close()):(e.open(),n.open({header:{title:"script-panel.title"},children:{label:V},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 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 te=v,re=Symbol.for("react.element"),ne=Symbol.for("react.fragment"),se=Object.prototype.hasOwnProperty,ie=te.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,oe={key:!0,ref:!0,__self:!0,__source:!0};function H(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)se.call(e,r)&&!oe.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:i,ref:o,props:s,_owner:ie.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,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(s))||s);return r&&s&&ce(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(L.SetStyleCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:t}}})}};j=le([q(3,a.Inject(a.Injector)),q(4,c.ICommandService)],j);var ue=Object.defineProperty,pe=Object.getOwnPropertyDescriptor,_e=(t,e,n,r)=>{for(var s=r>1?void 0:r?pe(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&&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(j,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,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(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,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)}};U=fe([N(2,a.Inject(a.Injector)),N(3,a.Inject(L.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,i=t.length-1,o;i>=0;i--)(o=t[i])&&(s=(r?o(e,n,s):o(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 je=Object.defineProperty,we=Object.getOwnPropertyDescriptor,be=(t,e,n,r)=>{for(var s=r>1?void 0:r?we(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&&je(e,n,s),s},F=(t,e)=>(n,r)=>e(n,r,t);let w=class{constructor(t,e){this._injector=t,this._univerInstanceService=e}static newInstance(t){return t.createInstance(w)}getCurrentSheet(){const t=this._univerInstanceService.getCurrentUniverSheetInstance();return t?this._injector.createInstance(D,t):null}};w=be([F(0,a.Inject(a.Injector)),F(1,c.IUniverInstanceService)],w);var Oe=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,Ce=(t,e,n,r)=>{for(var s=r>1?void 0:r?Ie(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&&Oe(e,n,s),s},A=(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=w.newInstance(this._injector),n=new Function("Univer",`(() => {${t}})()`);try{return n(e),!0}catch(r){return this._logService.error(r),!1}}};b=Ce([A(0,c.ILogService),A(1,a.Inject(a.Injector))],b);const ye="univer-script-editor-panel",$e="univer-script-editor-content",Ee="univer-script-editor-actions",m={scriptEditorPanel:ye,scriptEditorContent:$e,scriptEditorActions:Ee};function xe(){const t=v.useRef(null),e=v.useRef(null),n=v.useRef(null),r=d.useDependency(c.LocaleService),s=d.useDependency(b),i=d.useDependency(_.IShortcutService),o=d.useDependency(E),R=d.useDependency(_.IMessageService);v.useEffect(()=>{const h=e.current,l=t.current;let p=null,g=null;if(h&&l){o.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=i.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 Ue(){return{id:k.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:_.MenuItemType.BUTTON,positions:[_.MenuPosition.TOOLBAR_START]}}var De=Object.defineProperty,Re=Object.getOwnPropertyDescriptor,Me=(t,e,n,r)=>{for(var s=r>1?void 0:r?Re(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&&De(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(Ue())),this.disposeWithMe(n.register(V,xe)),this.disposeWithMe(e.registerCommand(k))}};P=Me([c.OnLifecycle(c.LifecycleStages.Steady,P),y(0,_.IMenuService),y(1,c.ICommandService),y(2,a.Inject(_.ComponentManager))],P);var Te=Object.defineProperty,qe=Object.getOwnPropertyDescriptor,Ne=(t,e,n,r)=>{for(var s=r>1?void 0:r?qe(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&&Te(e,n,s),s},W=(t,e)=>(n,r)=>e(n,r,t);const Fe="uniscript";var $;exports.UniverUniscriptPlugin=($=class extends c.Plugin{constructor(e,n,r){super(Fe),this._config=e,this._injector=n,this._localeService=r}onStarting(e){[[P],[E,{useFactory:()=>e.createInstance(E,this._config)}],[z],[b]].forEach(r=>e.add(r)),this._localeService.load({zhCN:B})}},S($,"type",c.PluginType.Univer),$);exports.UniverUniscriptPlugin=Ne([W(1,a.Inject(a.Injector)),W(2,a.Inject(c.LocaleService))],exports.UniverUniscriptPlugin);exports.enUS=ee;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,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 q, DisposableCollection as re, toDisposable as ne, OnLifecycle as oe, LifecycleStages as ie, Plugin as se, PluginType as ce } from "@univerjs/core";
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 Pe } from "@univerjs/design";
10
- import { useDependency as v } from "@wendellhu/redi/react-bindings";
11
- import { editor as we } from "monaco-editor";
12
- import { SetStyleCommand as Oe, SelectionManagerService as be } from "@univerjs/sheets";
13
- const St = {
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
+ 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 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
+ 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 St = {
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 St = {
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 V 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
+ h(this, "_open$", new we(!1));
50
+ h(this, "open$", this._open$.pipe(be()));
39
51
  }
40
52
  get isOpen() {
41
53
  return this._open$.getValue();
@@ -50,19 +62,19 @@ class V extends O {
50
62
  this._open$.next(!1);
51
63
  }
52
64
  }
53
- const k = "ScriptPanel", z = {
54
- type: Z.OPERATION,
65
+ const z = "ScriptPanel", G = {
66
+ type: te.OPERATION,
55
67
  id: "univer.operation.toggle-script-panel",
56
68
  handler: (t) => {
57
- const e = t.get(V), r = t.get(ae);
69
+ const e = t.get(V), r = t.get(_e);
58
70
  return e.isOpen ? (e.close(), r.close()) : (e.open(), r.open({
59
71
  header: { title: "script-panel.title" },
60
- children: { label: k },
72
+ children: { label: z },
61
73
  width: 600
62
74
  })), !0;
63
75
  }
64
76
  };
65
- var G = { exports: {} }, b = {};
77
+ var J = { exports: {} }, j = {};
66
78
  /**
67
79
  * @license React
68
80
  * react-jsx-runtime.production.min.js
@@ -72,25 +84,33 @@ 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"), Ee = Symbol.for("react.fragment"), xe = Object.prototype.hasOwnProperty, ye = 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) {
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) {
77
89
  var n, o = {}, i = null, s = null;
78
90
  r !== void 0 && (i = "" + r), e.key !== void 0 && (i = "" + e.key), e.ref !== void 0 && (s = e.ref);
79
91
  for (n in e)
80
- xe.call(e, n) && !Ie.hasOwnProperty(n) && (o[n] = e[n]);
92
+ We.call(e, n) && !Fe.hasOwnProperty(n) && (o[n] = e[n]);
81
93
  if (t && t.defaultProps)
82
94
  for (n in e = t.defaultProps, e)
83
95
  o[n] === void 0 && (o[n] = e[n]);
84
- return { $$typeof: $e, type: t, key: i, ref: s, props: o, _owner: ye.current };
96
+ return { $$typeof: Me, type: t, key: i, ref: s, props: o, _owner: Ae.current };
85
97
  }
86
- b.Fragment = Ee;
87
- b.jsx = H;
88
- b.jsxs = H;
89
- G.exports = b;
90
- var h = G.exports;
91
- class x extends O {
92
- constructor(e) {
93
- super(), this._config = e;
98
+ j.Fragment = Te;
99
+ j.jsx = K;
100
+ j.jsxs = K;
101
+ J.exports = j;
102
+ var v = J.exports;
103
+ class U extends O {
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;
94
114
  }
95
115
  requireVscodeEditor() {
96
116
  window.MonacoEnvironment || (window.MonacoEnvironment = {
@@ -98,12 +118,12 @@ class x extends O {
98
118
  });
99
119
  }
100
120
  }
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--)
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--)
103
123
  (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 {
124
+ return n && o && Ne(e, r, o), o;
125
+ }, W = (t, e) => (r, n) => e(r, n, t);
126
+ let b = class {
107
127
  constructor(t, e, r, n, o) {
108
128
  this._workbook = t, this._worksheet = e, this._range = r, this._injector = n, this._commandService = o;
109
129
  }
@@ -124,7 +144,7 @@ let S = class {
124
144
  return ((t = this._worksheet.getCell(this._range.startRow, this._range.startColumn)) == null ? void 0 : t.v) ?? null;
125
145
  }
126
146
  setBackgroundColor(t) {
127
- this._commandService.executeCommand(Oe.id, {
147
+ this._commandService.executeCommand(je.id, {
128
148
  unitId: this._workbook.getUnitId(),
129
149
  subUnitId: this._worksheet.getSheetId(),
130
150
  range: this._range,
@@ -137,39 +157,39 @@ let S = class {
137
157
  });
138
158
  }
139
159
  };
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--)
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--)
146
166
  (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 y = class {
167
+ return n && o && He(e, r, o), o;
168
+ }, ze = (t, e) => (r, n) => e(r, n, t);
169
+ let R = class {
150
170
  constructor(t, e, r, n) {
151
171
  this._workbook = t, this._worksheet = e, this._selections = r, this._injector = n;
152
172
  }
153
173
  getActiveRange() {
154
174
  const t = this._selections.find((e) => !!e.primary);
155
- return t ? this._injector.createInstance(S, this._workbook, this._worksheet, t.range) : null;
175
+ return t ? this._injector.createInstance(b, this._workbook, this._worksheet, t.range) : null;
156
176
  }
157
177
  };
158
- y = Ne([
159
- Fe(3, c(u))
160
- ], y);
161
- var Ae = Object.defineProperty, We = Object.getOwnPropertyDescriptor, Le = (t, e, r, n) => {
162
- for (var o = n > 1 ? void 0 : n ? We(e, r) : e, i = t.length - 1, s; i >= 0; i--)
178
+ R = Ve([
179
+ ze(3, c(p))
180
+ ], R);
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--)
163
183
  (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
164
- return n && o && Ae(e, r, o), o;
165
- }, N = (t, e) => (r, n) => e(r, n, t);
184
+ return n && o && Ge(e, r, o), o;
185
+ }, x = (t, e) => (r, n) => e(r, n, t);
166
186
  let I = class {
167
- constructor(t, e, r, n) {
168
- this._workbook = t, this._worksheet = e, this._injector = r, this._selectionManagerService = n;
187
+ constructor(t, e, r, n, o) {
188
+ this._workbook = t, this._worksheet = e, this._injector = r, this._selectionManagerService = n, this._commandService = o;
169
189
  }
170
190
  getSelection() {
171
191
  const t = this._selectionManagerService.getSelections();
172
- return t ? this._injector.createInstance(y, this._workbook, this._worksheet, t) : null;
192
+ return t ? this._injector.createInstance(R, this._workbook, this._worksheet, t) : null;
173
193
  }
174
194
  getRange(t, e, r, n) {
175
195
  const o = {
@@ -178,34 +198,77 @@ let I = class {
178
198
  startColumn: e,
179
199
  endColumn: e + (n ?? 1) - 1
180
200
  };
181
- return this._injector.createInstance(S, this._workbook, this._worksheet, o);
201
+ return this._injector.createInstance(b, this._workbook, this._worksheet, o);
202
+ }
203
+ setRowHeights(t, e, r) {
204
+ this._commandService.syncExecuteCommand($e.id, {
205
+ unitId: this._workbook.getUnitId(),
206
+ subUnitId: this._worksheet.getSheetId(),
207
+ ranges: [
208
+ {
209
+ startRow: t,
210
+ endRow: t + e - 1,
211
+ startColumn: 0,
212
+ endColumn: this._worksheet.getColumnCount() - 1
213
+ }
214
+ ],
215
+ rowHeight: r
216
+ });
217
+ }
218
+ setColumnWidths(t, e, r) {
219
+ this._commandService.syncExecuteCommand(xe.id, {
220
+ unitId: this._workbook.getUnitId(),
221
+ subUnitId: this._worksheet.getSheetId(),
222
+ ranges: [
223
+ {
224
+ startColumn: t,
225
+ endColumn: t + e - 1,
226
+ startRow: 0,
227
+ endRow: this._worksheet.getRowCount() - 1
228
+ }
229
+ ],
230
+ colWidth: r
231
+ });
182
232
  }
183
233
  };
184
- I = Le([
185
- N(2, c(u)),
186
- N(3, c(be))
234
+ I = Ke([
235
+ x(2, c(p)),
236
+ x(3, c(ye)),
237
+ x(4, E)
187
238
  ], I);
188
- var Be = Object.defineProperty, qe = Object.getOwnPropertyDescriptor, Ve = (t, e, r, n) => {
189
- for (var o = n > 1 ? void 0 : n ? qe(e, r) : e, i = t.length - 1, s; i >= 0; 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--)
190
241
  (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
191
- return n && o && Be(e, r, o), o;
192
- }, ke = (t, e) => (r, n) => e(r, n, t);
193
- let R = class {
194
- constructor(t, e) {
195
- this._workbook = t, this._injector = e;
242
+ return n && o && Ye(e, r, o), o;
243
+ }, A = (t, e) => (r, n) => e(r, n, t);
244
+ let k = class {
245
+ constructor(t, e, r) {
246
+ this._workbook = t, this._injector = e, this._commandService = r;
196
247
  }
197
248
  getActiveSheet() {
198
249
  const t = this._workbook.getActiveSheet();
199
250
  return t ? this._injector.createInstance(I, this._workbook, t) : null;
200
251
  }
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, {
255
+ unitId: this._workbook.getUnitId(),
256
+ index: this._workbook.getSheets().length,
257
+ sheet: n
258
+ }), this._commandService.syncExecuteCommand(Re.id, {
259
+ unitId: this._workbook.getUnitId(),
260
+ subUnitId: this._workbook.getSheets()[this._workbook.getSheets().length - 1].getSheetId()
261
+ }), this._injector.createInstance(I, this._workbook, this._workbook.getActiveSheet());
262
+ }
201
263
  };
202
- R = Ve([
203
- ke(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--)
264
+ k = Xe([
265
+ A(1, c(p)),
266
+ A(2, E)
267
+ ], k);
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--)
207
270
  (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
208
- return n && o && ze(e, r, o), o;
271
+ return n && o && Ze(e, r, o), o;
209
272
  }, F = (t, e) => (r, n) => e(r, n, t);
210
273
  let P = class {
211
274
  constructor(t, e) {
@@ -216,19 +279,19 @@ let P = class {
216
279
  }
217
280
  getCurrentSheet() {
218
281
  const t = this._univerInstanceService.getCurrentUniverSheetInstance();
219
- return t ? this._injector.createInstance(R, t) : null;
282
+ return t ? this._injector.createInstance(k, t) : null;
220
283
  }
221
284
  };
222
- P = He([
223
- F(0, c(u)),
224
- F(1, ee)
285
+ P = tt([
286
+ F(0, c(p)),
287
+ F(1, oe)
225
288
  ], P);
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--)
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--)
228
291
  (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
229
- return n && o && Je(e, r, o), o;
230
- }, A = (t, e) => (r, n) => e(r, n, t);
231
- let w = class extends O {
292
+ return n && o && rt(e, r, o), o;
293
+ }, N = (t, e) => (r, n) => e(r, n, t);
294
+ let C = class extends O {
232
295
  constructor(t, e) {
233
296
  super(), this._logService = t, this._injector = e;
234
297
  }
@@ -242,125 +305,127 @@ let w = class extends O {
242
305
  }
243
306
  }
244
307
  };
245
- w = Ke([
246
- A(0, te),
247
- A(1, c(u))
248
- ], w);
249
- const Qe = "univer-script-editor-panel", Xe = "univer-script-editor-content", Ze = "univer-script-editor-actions", g = {
250
- scriptEditorPanel: Qe,
251
- scriptEditorContent: Xe,
252
- scriptEditorActions: Ze
308
+ C = ot([
309
+ N(0, ie),
310
+ N(1, c(p))
311
+ ], C);
312
+ const it = "univer-script-editor-panel", st = "univer-script-editor-content", ct = "univer-script-editor-actions", f = {
313
+ scriptEditorPanel: it,
314
+ scriptEditorContent: st,
315
+ scriptEditorActions: ct
253
316
  };
254
- function et() {
255
- const t = C(null), e = C(null), r = C(null), n = v(q), o = v(w), i = v(le), s = v(x), U = v(pe);
256
- me(() => {
317
+ function at() {
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(() => {
257
320
  const _ = e.current, a = t.current;
258
- let p = null, d = null;
321
+ let l = null, m = null;
259
322
  if (_ && a) {
260
323
  s.requireVscodeEditor();
261
- const j = r.current = we.create(_, {
324
+ const g = r.current = Ee.create(_, {
262
325
  value: "",
263
326
  language: "javascript"
264
327
  });
265
- d = new ResizeObserver(() => {
266
- let D = requestIdleCallback(() => {
267
- if (!D)
328
+ m = new ResizeObserver(() => {
329
+ let M = requestIdleCallback(() => {
330
+ if (!M)
268
331
  return;
269
- const { height: Y, width: K } = a.getBoundingClientRect();
270
- j.layout({ width: K, height: Y }), D = void 0;
332
+ const { height: Q, width: X } = a.getBoundingClientRect();
333
+ g.layout({ width: X, height: Q }), M = void 0;
271
334
  });
272
- }), d.observe(a);
273
- let l;
274
- p = new re(), p.add(
275
- j.onDidFocusEditorWidget(() => {
276
- 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();
277
340
  })
278
- ), p.add(
279
- j.onDidBlurEditorWidget(() => {
280
- l == null || l.dispose(), l = void 0;
341
+ ), l.add(
342
+ g.onDidBlurEditorWidget(() => {
343
+ u == null || u.dispose(), u = void 0;
281
344
  })
282
- ), p.add(ne(() => l == null ? void 0 : l.dispose()));
345
+ ), l.add(H(() => u == null ? void 0 : u.dispose()));
283
346
  }
284
347
  return () => {
285
- d && a && d.unobserve(a), p == null || p.dispose();
348
+ m && a && m.unobserve(a), l == null || l.dispose();
286
349
  };
287
350
  }, []);
288
- const J = Se(() => {
351
+ const Y = Ce(() => {
289
352
  var a;
290
353
  const _ = (a = r.current) == null ? void 0 : a.getModel();
291
354
  _ && o.execute(_.getValue()).then(() => {
292
- U.show({
293
- content: "Execution completed",
294
- type: M.Success
355
+ D.show({
356
+ content: n.t("uniscript.message.success"),
357
+ type: T.Success
295
358
  });
296
359
  }).catch(() => {
297
- U.show({
298
- content: "Execution failed",
299
- type: M.Error
360
+ D.show({
361
+ content: n.t("uniscript.message.failed"),
362
+ type: T.Error
300
363
  });
301
364
  });
302
365
  }, [o]);
303
- return /* @__PURE__ */ h.jsxs("div", { className: g.scriptEditorPanel, children: [
304
- /* @__PURE__ */ h.jsx("div", { className: g.scriptEditorContent, ref: t, children: /* @__PURE__ */ h.jsx("div", { className: g.scriptEditorContainer, ref: e }) }),
305
- /* @__PURE__ */ h.jsx("div", { className: g.scriptEditorActions, children: /* @__PURE__ */ h.jsx(Pe, { type: "primary", size: "small", onClick: J, children: n.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") }) })
306
369
  ] });
307
370
  }
308
- function tt() {
371
+ function lt(t) {
309
372
  return {
310
- id: z.id,
373
+ id: G.id,
311
374
  title: "toggle-script-panel",
312
375
  tooltip: "script-panel.tooltip.menu-button",
313
376
  icon: "CodeSingle",
314
- type: ue.BUTTON,
315
- positions: [_e.TOOLBAR_START]
377
+ type: ve.BUTTON,
378
+ positions: [me.TOOLBAR_START],
379
+ hidden$: ge(t, ce.SHEET)
316
380
  };
317
381
  }
318
- var rt = Object.defineProperty, nt = Object.getOwnPropertyDescriptor, ot = (t, e, r, n) => {
319
- for (var o = n > 1 ? void 0 : n ? nt(e, r) : e, i = t.length - 1, s; i >= 0; i--)
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--)
320
384
  (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
321
- return n && o && rt(e, r, o), o;
322
- }, $ = (t, e) => (r, n) => e(r, n, t);
323
- let m = class extends O {
324
- constructor(t, e, r) {
325
- super(), this.disposeWithMe(t.addMenuItem(tt())), this.disposeWithMe(r.register(k, et)), this.disposeWithMe(e.registerCommand(z));
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));
326
390
  }
327
391
  };
328
- m = ot([
329
- oe(ie.Steady, m),
330
- $(0, he),
331
- $(1, B),
332
- $(2, c(ve))
333
- ], m);
334
- var it = Object.defineProperty, st = Object.getOwnPropertyDescriptor, ct = (t, e, r, n) => {
335
- for (var o = n > 1 ? void 0 : n ? st(e, r) : e, i = t.length - 1, s; i >= 0; i--)
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--)
336
401
  (s = t[i]) && (o = (n ? s(e, r, o) : s(o)) || o);
337
- return n && o && it(e, r, o), o;
338
- }, W = (t, e) => (r, n) => e(r, n, t);
339
- const at = "uniscript";
340
- var E;
341
- let L = (E = class extends se {
402
+ return n && o && ht(e, r, o), o;
403
+ }, L = (t, e) => (r, n) => e(r, n, t);
404
+ const mt = "uniscript";
405
+ var y;
406
+ let B = (y = class extends ue {
342
407
  constructor(t, e, r) {
343
- super(at), this._config = t, this._injector = e, this._localeService = r;
408
+ super(mt), this._config = t, this._injector = e, this._localeService = r;
344
409
  }
345
410
  onStarting(t) {
346
411
  [
347
412
  // controllers
348
- [m],
413
+ [w],
349
414
  // services
350
- [x, { useFactory: () => t.createInstance(x, this._config) }],
415
+ [U, { useFactory: () => t.createInstance(U, this._config) }],
351
416
  [V],
352
- [w]
417
+ [C]
353
418
  ].forEach((r) => t.add(r)), this._localeService.load({
354
- zhCN: je
419
+ zhCN: ke
355
420
  });
356
421
  }
357
- }, f(E, "type", ce.Univer), E);
358
- L = ct([
359
- W(1, c(u)),
360
- W(2, c(q))
361
- ], L);
422
+ }, h(y, "type", pe.Univer), y);
423
+ B = vt([
424
+ L(1, c(p)),
425
+ L(2, c(q))
426
+ ], B);
362
427
  export {
363
- L as UniverUniscriptPlugin,
364
- St as enUS,
365
- je as zhCN
428
+ B as UniverUniscriptPlugin,
429
+ jt as enUS,
430
+ ke as zhCN
366
431
  };
@@ -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
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;
@@ -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,v,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 A 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 F="ScriptPanel",W={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(A),i=t.get(v.ISidebarService);return e.isOpen?(e.close(),i.close()):(e.open(),i.open({header:{title:"script-panel.title"},children:{label:F},width:600})),!0}};var L={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,_,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 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,i){var r,n={},s=null,o=null;i!==void 0&&(s=""+i),e.key!==void 0&&(s=""+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:s,ref:o,props:n,_owner:te.current}}m.Fragment=Z,m.jsx=q,m.jsxs=q,L.exports=m;var f=L.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,ie=Object.getOwnPropertyDescriptor,se=(t,e,i,r)=>{for(var n=r>1?void 0:r?ie(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&ne(e,i,n),n},z=(t,e)=>(i,r)=>e(i,r,t);let S=class{constructor(t,e,i,r,n){this._workbook=t,this._worksheet=e,this._range=i,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,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range,style:{type:"bg",value:{rgb:t}}})}};S=se([z(3,l.Inject(l.Injector)),z(4,c.ICommandService)],S);var oe=Object.defineProperty,ce=Object.getOwnPropertyDescriptor,ae=(t,e,i,r)=>{for(var n=r>1?void 0:r?ce(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&oe(e,i,n),n},le=(t,e)=>(i,r)=>e(i,r,t);let E=class{constructor(t,e,i,r){this._workbook=t,this._worksheet=e,this._selections=i,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}};E=ae([le(3,l.Inject(l.Injector))],E);var ue=Object.defineProperty,pe=Object.getOwnPropertyDescriptor,ve=(t,e,i,r)=>{for(var n=r>1?void 0:r?pe(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&ue(e,i,n),n},V=(t,e)=>(i,r)=>e(i,r,t);let U=class{constructor(t,e,i,r){this._workbook=t,this._worksheet=e,this._injector=i,this._selectionManagerService=r}getSelection(){const t=this._selectionManagerService.getSelections();return t?this._injector.createInstance(E,this._workbook,this._worksheet,t):null}getRange(t,e,i,r){const n={startRow:t,endRow:t+(i??1)-1,startColumn:e,endColumn:e+(r??1)-1};return this._injector.createInstance(S,this._workbook,this._worksheet,n)}};U=ve([V(2,l.Inject(l.Injector)),V(3,l.Inject(T.SelectionManagerService))],U);var _e=Object.defineProperty,he=Object.getOwnPropertyDescriptor,de=(t,e,i,r)=>{for(var n=r>1?void 0:r?he(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&_e(e,i,n),n},fe=(t,e)=>(i,r)=>e(i,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(U,this._workbook,t):null}};x=de([fe(1,l.Inject(l.Injector))],x);var ge=Object.defineProperty,me=Object.getOwnPropertyDescriptor,Se=(t,e,i,r)=>{for(var n=r>1?void 0:r?me(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&ge(e,i,n),n},k=(t,e)=>(i,r)=>e(i,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([k(0,l.Inject(l.Injector)),k(1,c.IUniverInstanceService)],j);var je=Object.defineProperty,we=Object.getOwnPropertyDescriptor,Pe=(t,e,i,r)=>{for(var n=r>1?void 0:r?we(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&je(e,i,n),n},B=(t,e)=>(i,r)=>e(i,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),i=new Function("Univer",`(() => {${t}})()`);try{return i(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",scriptEditorActions:"univer-script-editor-actions"};function Oe(){const t=h.useRef(null),e=h.useRef(null),i=h.useRef(null),r=d.useDependency(c.LocaleService),n=d.useDependency(w),s=d.useDependency(v.IShortcutService),o=d.useDependency(y),H=d.useDependency(v.IMessageService);h.useEffect(()=>{const g=e.current,u=t.current;let _=null,I=null;if(g&&u){o.requireVscodeEditor();const $=i.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;_=new c.DisposableCollection,_.add($.onDidFocusEditorWidget(()=>{p=s.forceEscape()})),_.add($.onDidBlurEditorWidget(()=>{p==null||p.dispose(),p=void 0})),_.add(c.toDisposable(()=>p==null?void 0:p.dispose()))}return()=>{I&&u&&I.unobserve(u),_==null||_.dispose()}},[]);const Re=h.useCallback(()=>{var u;const g=(u=i.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:W.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:v.MenuItemType.BUTTON,positions:[v.MenuPosition.TOOLBAR_START]}}var be=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,ye=(t,e,i,r)=>{for(var n=r>1?void 0:r?Ce(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&be(e,i,n),n},D=(t,e)=>(i,r)=>e(i,r,t);let O=class extends c.Disposable{constructor(t,e,i){super(),this.disposeWithMe(t.addMenuItem(Ie())),this.disposeWithMe(i.register(F,Oe)),this.disposeWithMe(e.registerCommand(W))}};O=ye([c.OnLifecycle(c.LifecycleStages.Steady,O),D(0,v.IMenuService),D(1,c.ICommandService),D(2,l.Inject(v.ComponentManager))],O);var Ee=Object.defineProperty,Ue=Object.getOwnPropertyDescriptor,xe=(t,e,i,r)=>{for(var n=r>1?void 0:r?Ue(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&Ee(e,i,n),n},G=(t,e)=>(i,r)=>e(i,r,t);const De="uniscript";a.UniverUniscriptPlugin=(R=class extends c.Plugin{constructor(e,i,r){super(De),this._config=e,this._injector=i,this._localeService=r}onStarting(e){[[O],[y,{useFactory:()=>e.createInstance(y,this._config)}],[A],[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}}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-alpha.3",
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/design": "0.1.0-alpha.3",
51
- "@univerjs/core": "0.1.0-alpha.3",
52
- "@univerjs/sheets": "0.1.0-alpha.3",
53
- "@univerjs/ui": "0.1.0-alpha.3",
54
- "@univerjs/sheets-ui": "0.1.0-alpha.3"
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-alpha.3",
62
- "@univerjs/core": "0.1.0-alpha.3",
63
- "@univerjs/sheets": "0.1.0-alpha.3",
64
- "@univerjs/sheets-ui": "0.1.0-alpha.3",
65
- "@univerjs/ui": "0.1.0-alpha.3"
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",