@univerjs/uniscript 0.20.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/ui`),n=require(`rxjs`),r=require(`@univerjs/sheets`),i=require(`@univerjs/sheets-ui`),a=require(`@univerjs/design`),o=require(`monaco-editor`),s=require(`react`),c=require(`@univerjs/core/facade`),l=require(`react/jsx-runtime`);function u(e){"@babel/helpers - typeof";return u=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},u(e)}function d(e,t){if(u(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(u(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function f(e){var t=d(e,`string`);return u(t)==`symbol`?t:t+``}function p(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=class extends e.Disposable{constructor(...e){super(...e),p(this,`_open$`,new n.BehaviorSubject(!1)),p(this,`open$`,this._open$.pipe((0,n.distinctUntilChanged)()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};const h=`ScriptPanel`,g={type:e.CommandType.OPERATION,id:`univer.operation.toggle-script-panel`,handler:e=>{let n=e.get(m),r=e.get(t.ISidebarService);return n.isOpen?(n.close(),r.close()):(n.open(),r.open({header:{title:`script-panel.title`},children:{label:h},width:600})),!0}};var _=`@univerjs/uniscript`,v=`0.20.0`;const y=`uniscript.config`;Symbol(y);const b={};function x(n){return{id:g.id,title:`toggle-script-panel`,tooltip:`script-panel.tooltip.menu-button`,icon:`CodeIcon`,type:t.MenuItemType.BUTTON,hidden$:(0,t.getMenuHiddenObservable)(n,e.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(n,{workbookTypes:[r.WorkbookEditablePermission],worksheetTypes:[r.WorksheetEditPermission,r.WorksheetSetCellStylePermission,r.WorksheetSetCellValuePermission],rangeTypes:[r.RangeProtectionPermissionEditPoint]})}}const S={[t.RibbonOthersGroup.OTHERS]:{[g.id]:{order:0,menuItemFactory:x}}};function C(e,t){return function(n,r){t(n,r,e)}}function w(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let T=class extends e.Disposable{constructor(e){super(),this._configService=e,p(this,`_editorInstance`,null)}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(t){return this._editorInstance=t,(0,e.toDisposable)(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){let e=this._configService.getConfig(y);window.MonacoEnvironment={getWorkerUrl:e==null?void 0:e.getWorkerUrl}}}};T=w([C(0,e.IConfigService)],T);const E=(0,e.createIdentifier)(`univer.uniscript.execution-service`);let D=class extends e.Disposable{constructor(e,t){super(),this._logService=e,this._injector=t}async execute(e){this._logService.log(`[UniscriptExecutionService]`,`executing Uniscript...`);let t=c.FUniver.newAPI(this._injector),n=Function(`univerAPI`,`(() => {${e}})()`);try{return n(t),!0}catch(e){return this._logService.error(e),!1}}};D=w([C(0,e.ILogService),C(1,(0,e.Inject)(e.Injector))],D);function O(){let n=(0,s.useRef)(null),r=(0,s.useRef)(null),i=(0,s.useRef)(null),c=(0,t.useDependency)(e.LocaleService),u=(0,t.useDependency)(t.IShortcutService),d=(0,t.useDependency)(T),f=(0,t.useDependency)(e.ThemeService);(0,s.useEffect)(()=>{let t=r.current,a=n.current,s=null,c=null;if(t&&a){d.requireVscodeEditor();let n=i.current=o.editor.create(t,{value:``,language:`javascript`,theme:f.darkMode?`vs-dark`:`vs-light`});c=new ResizeObserver(()=>{let e=requestIdleCallback(()=>{if(!e)return;let{height:t,width:r}=a.getBoundingClientRect();n.layout({width:r,height:t}),e=void 0})}),c.observe(a);let r;s=new e.DisposableCollection,s.add(d.setEditorInstance(n)),s.add(n.onDidFocusEditorWidget(()=>{r=u.forceEscape()})),s.add(n.onDidBlurEditorWidget(()=>{r==null||r.dispose(),r=void 0})),s.add((0,e.toDisposable)(()=>r==null?void 0:r.dispose()))}return()=>{c&&a&&c.unobserve(a),s==null||s.dispose()}},[d,u]);let p=k(i);return(0,l.jsxs)(`div`,{className:`univer-h-full`,children:[(0,l.jsx)(`div`,{ref:n,className:`univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden`,children:(0,l.jsx)(`div`,{ref:r})}),(0,l.jsx)(`div`,{className:`univer-mt-2.5`,children:(0,l.jsx)(a.Button,{variant:`primary`,onClick:p,children:c.t(`script-panel.panel.execute`)})})]})}function k(n){let r=(0,t.useDependency)(E),i=(0,t.useDependency)(t.IMessageService),o=(0,t.useDependency)(e.LocaleService);return(0,s.useCallback)(()=>{var e;let t=(e=n.current)==null?void 0:e.getModel();t&&r.execute(t.getValue()).then(()=>{i.show({content:o.t(`uniscript.message.success`),type:a.MessageType.Success})}).catch(()=>{i.show({content:o.t(`uniscript.message.failed`),type:a.MessageType.Error})})},[o,i,n,r])}let A=class extends e.Disposable{constructor(e,t,n){super(),this._menuManagerService=e,this._menuManagerService.mergeMenu(S),this.disposeWithMe(n.register(h,O)),this.disposeWithMe(t.registerCommand(g))}};A=w([C(0,t.IMenuManagerService),C(1,e.ICommandService),C(2,(0,e.Inject)(t.ComponentManager))],A);let j=class extends e.Plugin{constructor(t=b,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{menu:i,...a}=(0,e.merge)({},b,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(y,a)}onStarting(){let e=this._injector;[[A],[T],[m]].forEach(t=>e.add(t)),this.registerExecution()}onSteady(){this._injector.get(A)}registerExecution(){this._injector.add([E,{useClass:D}])}};p(j,`pluginName`,`UNIVER_UNISCRIPT_PLUGIN`),p(j,`packageName`,_),p(j,`version`,v),j=w([C(1,(0,e.Inject)(e.Injector)),C(2,e.IConfigService)],j),exports.IUniscriptExecutionService=E,Object.defineProperty(exports,`ScriptEditorService`,{enumerable:!0,get:function(){return T}}),exports.ToggleScriptPanelOperation=g,Object.defineProperty(exports,`UniverUniscriptPlugin`,{enumerable:!0,get:function(){return j}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/ui`),n=require(`rxjs`),r=require(`@univerjs/sheets`),i=require(`@univerjs/sheets-ui`),a=require(`@univerjs/design`),o=require(`monaco-editor`),s=require(`react`),c=require(`@univerjs/core/facade`),l=require(`react/jsx-runtime`);function u(e){"@babel/helpers - typeof";return u=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},u(e)}function d(e,t){if(u(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(u(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function f(e){var t=d(e,`string`);return u(t)==`symbol`?t:t+``}function p(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=class extends e.Disposable{constructor(...e){super(...e),p(this,`_open$`,new n.BehaviorSubject(!1)),p(this,`open$`,this._open$.pipe((0,n.distinctUntilChanged)()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};const h=`ScriptPanel`,g={type:e.CommandType.OPERATION,id:`univer.operation.toggle-script-panel`,handler:e=>{let n=e.get(m),r=e.get(t.ISidebarService);return n.isOpen?(n.close(),r.close()):(n.open(),r.open({header:{title:`script-panel.title`},children:{label:h},width:600})),!0}};var _=`@univerjs/uniscript`,v=`0.20.1`;const y=`uniscript.config`;Symbol(y);const b={};function x(n){return{id:g.id,title:`toggle-script-panel`,tooltip:`script-panel.tooltip.menu-button`,icon:`CodeIcon`,type:t.MenuItemType.BUTTON,hidden$:(0,t.getMenuHiddenObservable)(n,e.UniverInstanceType.UNIVER_SHEET),disabled$:(0,i.getCurrentRangeDisable$)(n,{workbookTypes:[r.WorkbookEditablePermission],worksheetTypes:[r.WorksheetEditPermission,r.WorksheetSetCellStylePermission,r.WorksheetSetCellValuePermission],rangeTypes:[r.RangeProtectionPermissionEditPoint]})}}const S={[t.RibbonOthersGroup.OTHERS]:{[g.id]:{order:0,menuItemFactory:x}}};function C(e,t){return function(n,r){t(n,r,e)}}function w(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let T=class extends e.Disposable{constructor(e){super(),this._configService=e,p(this,`_editorInstance`,null)}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(t){return this._editorInstance=t,(0,e.toDisposable)(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){let e=this._configService.getConfig(y);window.MonacoEnvironment={getWorkerUrl:e==null?void 0:e.getWorkerUrl}}}};T=w([C(0,e.IConfigService)],T);const E=(0,e.createIdentifier)(`univer.uniscript.execution-service`);let D=class extends e.Disposable{constructor(e,t){super(),this._logService=e,this._injector=t}async execute(e){this._logService.log(`[UniscriptExecutionService]`,`executing Uniscript...`);let t=c.FUniver.newAPI(this._injector),n=Function(`univerAPI`,`(() => {${e}})()`);try{return n(t),!0}catch(e){return this._logService.error(e),!1}}};D=w([C(0,e.ILogService),C(1,(0,e.Inject)(e.Injector))],D);function O(){let n=(0,s.useRef)(null),r=(0,s.useRef)(null),i=(0,s.useRef)(null),c=(0,t.useDependency)(e.LocaleService),u=(0,t.useDependency)(t.IShortcutService),d=(0,t.useDependency)(T),f=(0,t.useDependency)(e.ThemeService);(0,s.useEffect)(()=>{let t=r.current,a=n.current,s=null,c=null;if(t&&a){d.requireVscodeEditor();let n=i.current=o.editor.create(t,{value:``,language:`javascript`,theme:f.darkMode?`vs-dark`:`vs-light`});c=new ResizeObserver(()=>{let e=requestIdleCallback(()=>{if(!e)return;let{height:t,width:r}=a.getBoundingClientRect();n.layout({width:r,height:t}),e=void 0})}),c.observe(a);let r;s=new e.DisposableCollection,s.add(d.setEditorInstance(n)),s.add(n.onDidFocusEditorWidget(()=>{r=u.forceEscape()})),s.add(n.onDidBlurEditorWidget(()=>{r==null||r.dispose(),r=void 0})),s.add((0,e.toDisposable)(()=>r==null?void 0:r.dispose()))}return()=>{c&&a&&c.unobserve(a),s==null||s.dispose()}},[d,u]);let p=k(i);return(0,l.jsxs)(`div`,{className:`univer-h-full`,children:[(0,l.jsx)(`div`,{ref:n,className:`univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden`,children:(0,l.jsx)(`div`,{ref:r})}),(0,l.jsx)(`div`,{className:`univer-mt-2.5`,children:(0,l.jsx)(a.Button,{variant:`primary`,onClick:p,children:c.t(`script-panel.panel.execute`)})})]})}function k(n){let r=(0,t.useDependency)(E),i=(0,t.useDependency)(t.IMessageService),o=(0,t.useDependency)(e.LocaleService);return(0,s.useCallback)(()=>{var e;let t=(e=n.current)==null?void 0:e.getModel();t&&r.execute(t.getValue()).then(()=>{i.show({content:o.t(`uniscript.message.success`),type:a.MessageType.Success})}).catch(()=>{i.show({content:o.t(`uniscript.message.failed`),type:a.MessageType.Error})})},[o,i,n,r])}let A=class extends e.Disposable{constructor(e,t,n){super(),this._menuManagerService=e,this._menuManagerService.mergeMenu(S),this.disposeWithMe(n.register(h,O)),this.disposeWithMe(t.registerCommand(g))}};A=w([C(0,t.IMenuManagerService),C(1,e.ICommandService),C(2,(0,e.Inject)(t.ComponentManager))],A);let j=class extends e.Plugin{constructor(t=b,n,r){super(),this._config=t,this._injector=n,this._configService=r;let{menu:i,...a}=(0,e.merge)({},b,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(y,a)}onStarting(){let e=this._injector;[[A],[T],[m]].forEach(t=>e.add(t)),this.registerExecution()}onSteady(){this._injector.get(A)}registerExecution(){this._injector.add([E,{useClass:D}])}};p(j,`pluginName`,`UNIVER_UNISCRIPT_PLUGIN`),p(j,`packageName`,_),p(j,`version`,v),j=w([C(1,(0,e.Inject)(e.Injector)),C(2,e.IConfigService)],j),exports.IUniscriptExecutionService=E,Object.defineProperty(exports,`ScriptEditorService`,{enumerable:!0,get:function(){return T}}),exports.ToggleScriptPanelOperation=g,Object.defineProperty(exports,`UniverUniscriptPlugin`,{enumerable:!0,get:function(){return j}});
package/lib/es/index.js CHANGED
@@ -1 +1 @@
1
- import{CommandType as e,Disposable as t,DisposableCollection as n,ICommandService as r,IConfigService as i,ILogService as a,Inject as o,Injector as s,LocaleService as c,Plugin as l,ThemeService as u,UniverInstanceType as d,createIdentifier as f,merge as p,toDisposable as m}from"@univerjs/core";import{ComponentManager as h,IMenuManagerService as g,IMessageService as _,IShortcutService as v,ISidebarService as y,MenuItemType as b,RibbonOthersGroup as x,getMenuHiddenObservable as S,useDependency as C}from"@univerjs/ui";import{BehaviorSubject as ee,distinctUntilChanged as te}from"rxjs";import{RangeProtectionPermissionEditPoint as ne,WorkbookEditablePermission as re,WorksheetEditPermission as ie,WorksheetSetCellStylePermission as ae,WorksheetSetCellValuePermission as oe}from"@univerjs/sheets";import{getCurrentRangeDisable$ as w}from"@univerjs/sheets-ui";import{Button as T,MessageType as E}from"@univerjs/design";import{editor as D}from"monaco-editor";import{useCallback as O,useEffect as k,useRef as A}from"react";import{FUniver as j}from"@univerjs/core/facade";import{jsx as M,jsxs as N}from"react/jsx-runtime";function P(e){"@babel/helpers - typeof";return P=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},P(e)}function F(e,t){if(P(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(P(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function I(e){var t=F(e,`string`);return P(t)==`symbol`?t:t+``}function L(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var R=class extends t{constructor(...e){super(...e),L(this,`_open$`,new ee(!1)),L(this,`open$`,this._open$.pipe(te()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};const z=`ScriptPanel`,B={type:e.OPERATION,id:`univer.operation.toggle-script-panel`,handler:e=>{let t=e.get(R),n=e.get(y);return t.isOpen?(t.close(),n.close()):(t.open(),n.open({header:{title:`script-panel.title`},children:{label:z},width:600})),!0}};var V=`@univerjs/uniscript`,H=`0.20.0`;const U=`uniscript.config`;Symbol(U);const W={};function G(e){return{id:B.id,title:`toggle-script-panel`,tooltip:`script-panel.tooltip.menu-button`,icon:`CodeIcon`,type:b.BUTTON,hidden$:S(e,d.UNIVER_SHEET),disabled$:w(e,{workbookTypes:[re],worksheetTypes:[ie,ae,oe],rangeTypes:[ne]})}}const K={[x.OTHERS]:{[B.id]:{order:0,menuItemFactory:G}}};function q(e,t){return function(n,r){t(n,r,e)}}function J(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let Y=class extends t{constructor(e){super(),this._configService=e,L(this,`_editorInstance`,null)}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(e){return this._editorInstance=e,m(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){let e=this._configService.getConfig(U);window.MonacoEnvironment={getWorkerUrl:e==null?void 0:e.getWorkerUrl}}}};Y=J([q(0,i)],Y);const X=f(`univer.uniscript.execution-service`);let Z=class extends t{constructor(e,t){super(),this._logService=e,this._injector=t}async execute(e){this._logService.log(`[UniscriptExecutionService]`,`executing Uniscript...`);let t=j.newAPI(this._injector),n=Function(`univerAPI`,`(() => {${e}})()`);try{return n(t),!0}catch(e){return this._logService.error(e),!1}}};Z=J([q(0,a),q(1,o(s))],Z);function se(){let e=A(null),t=A(null),r=A(null),i=C(c),a=C(v),o=C(Y),s=C(u);k(()=>{let i=t.current,c=e.current,l=null,u=null;if(i&&c){o.requireVscodeEditor();let e=r.current=D.create(i,{value:``,language:`javascript`,theme:s.darkMode?`vs-dark`:`vs-light`});u=new ResizeObserver(()=>{let t=requestIdleCallback(()=>{if(!t)return;let{height:n,width:r}=c.getBoundingClientRect();e.layout({width:r,height:n}),t=void 0})}),u.observe(c);let t;l=new n,l.add(o.setEditorInstance(e)),l.add(e.onDidFocusEditorWidget(()=>{t=a.forceEscape()})),l.add(e.onDidBlurEditorWidget(()=>{t==null||t.dispose(),t=void 0})),l.add(m(()=>t==null?void 0:t.dispose()))}return()=>{u&&c&&u.unobserve(c),l==null||l.dispose()}},[o,a]);let l=ce(r);return N(`div`,{className:`univer-h-full`,children:[M(`div`,{ref:e,className:`univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden`,children:M(`div`,{ref:t})}),M(`div`,{className:`univer-mt-2.5`,children:M(T,{variant:`primary`,onClick:l,children:i.t(`script-panel.panel.execute`)})})]})}function ce(e){let t=C(X),n=C(_),r=C(c);return O(()=>{var i;let a=(i=e.current)==null?void 0:i.getModel();a&&t.execute(a.getValue()).then(()=>{n.show({content:r.t(`uniscript.message.success`),type:E.Success})}).catch(()=>{n.show({content:r.t(`uniscript.message.failed`),type:E.Error})})},[r,n,e,t])}let Q=class extends t{constructor(e,t,n){super(),this._menuManagerService=e,this._menuManagerService.mergeMenu(K),this.disposeWithMe(n.register(z,se)),this.disposeWithMe(t.registerCommand(B))}};Q=J([q(0,g),q(1,r),q(2,o(h))],Q);let $=class extends l{constructor(e=W,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=p({},W,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(U,i)}onStarting(){let e=this._injector;[[Q],[Y],[R]].forEach(t=>e.add(t)),this.registerExecution()}onSteady(){this._injector.get(Q)}registerExecution(){this._injector.add([X,{useClass:Z}])}};L($,`pluginName`,`UNIVER_UNISCRIPT_PLUGIN`),L($,`packageName`,V),L($,`version`,H),$=J([q(1,o(s)),q(2,i)],$);export{X as IUniscriptExecutionService,Y as ScriptEditorService,B as ToggleScriptPanelOperation,$ as UniverUniscriptPlugin};
1
+ import{CommandType as e,Disposable as t,DisposableCollection as n,ICommandService as r,IConfigService as i,ILogService as a,Inject as o,Injector as s,LocaleService as c,Plugin as l,ThemeService as u,UniverInstanceType as d,createIdentifier as f,merge as p,toDisposable as m}from"@univerjs/core";import{ComponentManager as h,IMenuManagerService as g,IMessageService as _,IShortcutService as v,ISidebarService as y,MenuItemType as b,RibbonOthersGroup as x,getMenuHiddenObservable as S,useDependency as C}from"@univerjs/ui";import{BehaviorSubject as ee,distinctUntilChanged as te}from"rxjs";import{RangeProtectionPermissionEditPoint as ne,WorkbookEditablePermission as re,WorksheetEditPermission as ie,WorksheetSetCellStylePermission as ae,WorksheetSetCellValuePermission as oe}from"@univerjs/sheets";import{getCurrentRangeDisable$ as w}from"@univerjs/sheets-ui";import{Button as T,MessageType as E}from"@univerjs/design";import{editor as D}from"monaco-editor";import{useCallback as O,useEffect as k,useRef as A}from"react";import{FUniver as j}from"@univerjs/core/facade";import{jsx as M,jsxs as N}from"react/jsx-runtime";function P(e){"@babel/helpers - typeof";return P=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},P(e)}function F(e,t){if(P(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(P(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function I(e){var t=F(e,`string`);return P(t)==`symbol`?t:t+``}function L(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var R=class extends t{constructor(...e){super(...e),L(this,`_open$`,new ee(!1)),L(this,`open$`,this._open$.pipe(te()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};const z=`ScriptPanel`,B={type:e.OPERATION,id:`univer.operation.toggle-script-panel`,handler:e=>{let t=e.get(R),n=e.get(y);return t.isOpen?(t.close(),n.close()):(t.open(),n.open({header:{title:`script-panel.title`},children:{label:z},width:600})),!0}};var V=`@univerjs/uniscript`,H=`0.20.1`;const U=`uniscript.config`;Symbol(U);const W={};function G(e){return{id:B.id,title:`toggle-script-panel`,tooltip:`script-panel.tooltip.menu-button`,icon:`CodeIcon`,type:b.BUTTON,hidden$:S(e,d.UNIVER_SHEET),disabled$:w(e,{workbookTypes:[re],worksheetTypes:[ie,ae,oe],rangeTypes:[ne]})}}const K={[x.OTHERS]:{[B.id]:{order:0,menuItemFactory:G}}};function q(e,t){return function(n,r){t(n,r,e)}}function J(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let Y=class extends t{constructor(e){super(),this._configService=e,L(this,`_editorInstance`,null)}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(e){return this._editorInstance=e,m(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){let e=this._configService.getConfig(U);window.MonacoEnvironment={getWorkerUrl:e==null?void 0:e.getWorkerUrl}}}};Y=J([q(0,i)],Y);const X=f(`univer.uniscript.execution-service`);let Z=class extends t{constructor(e,t){super(),this._logService=e,this._injector=t}async execute(e){this._logService.log(`[UniscriptExecutionService]`,`executing Uniscript...`);let t=j.newAPI(this._injector),n=Function(`univerAPI`,`(() => {${e}})()`);try{return n(t),!0}catch(e){return this._logService.error(e),!1}}};Z=J([q(0,a),q(1,o(s))],Z);function se(){let e=A(null),t=A(null),r=A(null),i=C(c),a=C(v),o=C(Y),s=C(u);k(()=>{let i=t.current,c=e.current,l=null,u=null;if(i&&c){o.requireVscodeEditor();let e=r.current=D.create(i,{value:``,language:`javascript`,theme:s.darkMode?`vs-dark`:`vs-light`});u=new ResizeObserver(()=>{let t=requestIdleCallback(()=>{if(!t)return;let{height:n,width:r}=c.getBoundingClientRect();e.layout({width:r,height:n}),t=void 0})}),u.observe(c);let t;l=new n,l.add(o.setEditorInstance(e)),l.add(e.onDidFocusEditorWidget(()=>{t=a.forceEscape()})),l.add(e.onDidBlurEditorWidget(()=>{t==null||t.dispose(),t=void 0})),l.add(m(()=>t==null?void 0:t.dispose()))}return()=>{u&&c&&u.unobserve(c),l==null||l.dispose()}},[o,a]);let l=ce(r);return N(`div`,{className:`univer-h-full`,children:[M(`div`,{ref:e,className:`univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden`,children:M(`div`,{ref:t})}),M(`div`,{className:`univer-mt-2.5`,children:M(T,{variant:`primary`,onClick:l,children:i.t(`script-panel.panel.execute`)})})]})}function ce(e){let t=C(X),n=C(_),r=C(c);return O(()=>{var i;let a=(i=e.current)==null?void 0:i.getModel();a&&t.execute(a.getValue()).then(()=>{n.show({content:r.t(`uniscript.message.success`),type:E.Success})}).catch(()=>{n.show({content:r.t(`uniscript.message.failed`),type:E.Error})})},[r,n,e,t])}let Q=class extends t{constructor(e,t,n){super(),this._menuManagerService=e,this._menuManagerService.mergeMenu(K),this.disposeWithMe(n.register(z,se)),this.disposeWithMe(t.registerCommand(B))}};Q=J([q(0,g),q(1,r),q(2,o(h))],Q);let $=class extends l{constructor(e=W,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=p({},W,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(U,i)}onStarting(){let e=this._injector;[[Q],[Y],[R]].forEach(t=>e.add(t)),this.registerExecution()}onSteady(){this._injector.get(Q)}registerExecution(){this._injector.add([X,{useClass:Z}])}};L($,`pluginName`,`UNIVER_UNISCRIPT_PLUGIN`),L($,`packageName`,V),L($,`version`,H),$=J([q(1,o(s)),q(2,i)],$);export{X as IUniscriptExecutionService,Y as ScriptEditorService,B as ToggleScriptPanelOperation,$ as UniverUniscriptPlugin};
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- import{CommandType as e,Disposable as t,DisposableCollection as n,ICommandService as r,IConfigService as i,ILogService as a,Inject as o,Injector as s,LocaleService as c,Plugin as l,ThemeService as u,UniverInstanceType as d,createIdentifier as f,merge as p,toDisposable as m}from"@univerjs/core";import{ComponentManager as h,IMenuManagerService as g,IMessageService as _,IShortcutService as v,ISidebarService as y,MenuItemType as b,RibbonOthersGroup as x,getMenuHiddenObservable as S,useDependency as C}from"@univerjs/ui";import{BehaviorSubject as ee,distinctUntilChanged as te}from"rxjs";import{RangeProtectionPermissionEditPoint as ne,WorkbookEditablePermission as re,WorksheetEditPermission as ie,WorksheetSetCellStylePermission as ae,WorksheetSetCellValuePermission as oe}from"@univerjs/sheets";import{getCurrentRangeDisable$ as w}from"@univerjs/sheets-ui";import{Button as T,MessageType as E}from"@univerjs/design";import{editor as D}from"monaco-editor";import{useCallback as O,useEffect as k,useRef as A}from"react";import{FUniver as j}from"@univerjs/core/facade";import{jsx as M,jsxs as N}from"react/jsx-runtime";function P(e){"@babel/helpers - typeof";return P=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},P(e)}function F(e,t){if(P(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(P(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function I(e){var t=F(e,`string`);return P(t)==`symbol`?t:t+``}function L(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var R=class extends t{constructor(...e){super(...e),L(this,`_open$`,new ee(!1)),L(this,`open$`,this._open$.pipe(te()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};const z=`ScriptPanel`,B={type:e.OPERATION,id:`univer.operation.toggle-script-panel`,handler:e=>{let t=e.get(R),n=e.get(y);return t.isOpen?(t.close(),n.close()):(t.open(),n.open({header:{title:`script-panel.title`},children:{label:z},width:600})),!0}};var V=`@univerjs/uniscript`,H=`0.20.0`;const U=`uniscript.config`;Symbol(U);const W={};function G(e){return{id:B.id,title:`toggle-script-panel`,tooltip:`script-panel.tooltip.menu-button`,icon:`CodeIcon`,type:b.BUTTON,hidden$:S(e,d.UNIVER_SHEET),disabled$:w(e,{workbookTypes:[re],worksheetTypes:[ie,ae,oe],rangeTypes:[ne]})}}const K={[x.OTHERS]:{[B.id]:{order:0,menuItemFactory:G}}};function q(e,t){return function(n,r){t(n,r,e)}}function J(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let Y=class extends t{constructor(e){super(),this._configService=e,L(this,`_editorInstance`,null)}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(e){return this._editorInstance=e,m(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){let e=this._configService.getConfig(U);window.MonacoEnvironment={getWorkerUrl:e==null?void 0:e.getWorkerUrl}}}};Y=J([q(0,i)],Y);const X=f(`univer.uniscript.execution-service`);let Z=class extends t{constructor(e,t){super(),this._logService=e,this._injector=t}async execute(e){this._logService.log(`[UniscriptExecutionService]`,`executing Uniscript...`);let t=j.newAPI(this._injector),n=Function(`univerAPI`,`(() => {${e}})()`);try{return n(t),!0}catch(e){return this._logService.error(e),!1}}};Z=J([q(0,a),q(1,o(s))],Z);function se(){let e=A(null),t=A(null),r=A(null),i=C(c),a=C(v),o=C(Y),s=C(u);k(()=>{let i=t.current,c=e.current,l=null,u=null;if(i&&c){o.requireVscodeEditor();let e=r.current=D.create(i,{value:``,language:`javascript`,theme:s.darkMode?`vs-dark`:`vs-light`});u=new ResizeObserver(()=>{let t=requestIdleCallback(()=>{if(!t)return;let{height:n,width:r}=c.getBoundingClientRect();e.layout({width:r,height:n}),t=void 0})}),u.observe(c);let t;l=new n,l.add(o.setEditorInstance(e)),l.add(e.onDidFocusEditorWidget(()=>{t=a.forceEscape()})),l.add(e.onDidBlurEditorWidget(()=>{t==null||t.dispose(),t=void 0})),l.add(m(()=>t==null?void 0:t.dispose()))}return()=>{u&&c&&u.unobserve(c),l==null||l.dispose()}},[o,a]);let l=ce(r);return N(`div`,{className:`univer-h-full`,children:[M(`div`,{ref:e,className:`univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden`,children:M(`div`,{ref:t})}),M(`div`,{className:`univer-mt-2.5`,children:M(T,{variant:`primary`,onClick:l,children:i.t(`script-panel.panel.execute`)})})]})}function ce(e){let t=C(X),n=C(_),r=C(c);return O(()=>{var i;let a=(i=e.current)==null?void 0:i.getModel();a&&t.execute(a.getValue()).then(()=>{n.show({content:r.t(`uniscript.message.success`),type:E.Success})}).catch(()=>{n.show({content:r.t(`uniscript.message.failed`),type:E.Error})})},[r,n,e,t])}let Q=class extends t{constructor(e,t,n){super(),this._menuManagerService=e,this._menuManagerService.mergeMenu(K),this.disposeWithMe(n.register(z,se)),this.disposeWithMe(t.registerCommand(B))}};Q=J([q(0,g),q(1,r),q(2,o(h))],Q);let $=class extends l{constructor(e=W,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=p({},W,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(U,i)}onStarting(){let e=this._injector;[[Q],[Y],[R]].forEach(t=>e.add(t)),this.registerExecution()}onSteady(){this._injector.get(Q)}registerExecution(){this._injector.add([X,{useClass:Z}])}};L($,`pluginName`,`UNIVER_UNISCRIPT_PLUGIN`),L($,`packageName`,V),L($,`version`,H),$=J([q(1,o(s)),q(2,i)],$);export{X as IUniscriptExecutionService,Y as ScriptEditorService,B as ToggleScriptPanelOperation,$ as UniverUniscriptPlugin};
1
+ import{CommandType as e,Disposable as t,DisposableCollection as n,ICommandService as r,IConfigService as i,ILogService as a,Inject as o,Injector as s,LocaleService as c,Plugin as l,ThemeService as u,UniverInstanceType as d,createIdentifier as f,merge as p,toDisposable as m}from"@univerjs/core";import{ComponentManager as h,IMenuManagerService as g,IMessageService as _,IShortcutService as v,ISidebarService as y,MenuItemType as b,RibbonOthersGroup as x,getMenuHiddenObservable as S,useDependency as C}from"@univerjs/ui";import{BehaviorSubject as ee,distinctUntilChanged as te}from"rxjs";import{RangeProtectionPermissionEditPoint as ne,WorkbookEditablePermission as re,WorksheetEditPermission as ie,WorksheetSetCellStylePermission as ae,WorksheetSetCellValuePermission as oe}from"@univerjs/sheets";import{getCurrentRangeDisable$ as w}from"@univerjs/sheets-ui";import{Button as T,MessageType as E}from"@univerjs/design";import{editor as D}from"monaco-editor";import{useCallback as O,useEffect as k,useRef as A}from"react";import{FUniver as j}from"@univerjs/core/facade";import{jsx as M,jsxs as N}from"react/jsx-runtime";function P(e){"@babel/helpers - typeof";return P=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},P(e)}function F(e,t){if(P(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(P(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function I(e){var t=F(e,`string`);return P(t)==`symbol`?t:t+``}function L(e,t,n){return(t=I(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var R=class extends t{constructor(...e){super(...e),L(this,`_open$`,new ee(!1)),L(this,`open$`,this._open$.pipe(te()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};const z=`ScriptPanel`,B={type:e.OPERATION,id:`univer.operation.toggle-script-panel`,handler:e=>{let t=e.get(R),n=e.get(y);return t.isOpen?(t.close(),n.close()):(t.open(),n.open({header:{title:`script-panel.title`},children:{label:z},width:600})),!0}};var V=`@univerjs/uniscript`,H=`0.20.1`;const U=`uniscript.config`;Symbol(U);const W={};function G(e){return{id:B.id,title:`toggle-script-panel`,tooltip:`script-panel.tooltip.menu-button`,icon:`CodeIcon`,type:b.BUTTON,hidden$:S(e,d.UNIVER_SHEET),disabled$:w(e,{workbookTypes:[re],worksheetTypes:[ie,ae,oe],rangeTypes:[ne]})}}const K={[x.OTHERS]:{[B.id]:{order:0,menuItemFactory:G}}};function q(e,t){return function(n,r){t(n,r,e)}}function J(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let Y=class extends t{constructor(e){super(),this._configService=e,L(this,`_editorInstance`,null)}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(e){return this._editorInstance=e,m(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){let e=this._configService.getConfig(U);window.MonacoEnvironment={getWorkerUrl:e==null?void 0:e.getWorkerUrl}}}};Y=J([q(0,i)],Y);const X=f(`univer.uniscript.execution-service`);let Z=class extends t{constructor(e,t){super(),this._logService=e,this._injector=t}async execute(e){this._logService.log(`[UniscriptExecutionService]`,`executing Uniscript...`);let t=j.newAPI(this._injector),n=Function(`univerAPI`,`(() => {${e}})()`);try{return n(t),!0}catch(e){return this._logService.error(e),!1}}};Z=J([q(0,a),q(1,o(s))],Z);function se(){let e=A(null),t=A(null),r=A(null),i=C(c),a=C(v),o=C(Y),s=C(u);k(()=>{let i=t.current,c=e.current,l=null,u=null;if(i&&c){o.requireVscodeEditor();let e=r.current=D.create(i,{value:``,language:`javascript`,theme:s.darkMode?`vs-dark`:`vs-light`});u=new ResizeObserver(()=>{let t=requestIdleCallback(()=>{if(!t)return;let{height:n,width:r}=c.getBoundingClientRect();e.layout({width:r,height:n}),t=void 0})}),u.observe(c);let t;l=new n,l.add(o.setEditorInstance(e)),l.add(e.onDidFocusEditorWidget(()=>{t=a.forceEscape()})),l.add(e.onDidBlurEditorWidget(()=>{t==null||t.dispose(),t=void 0})),l.add(m(()=>t==null?void 0:t.dispose()))}return()=>{u&&c&&u.unobserve(c),l==null||l.dispose()}},[o,a]);let l=ce(r);return N(`div`,{className:`univer-h-full`,children:[M(`div`,{ref:e,className:`univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden`,children:M(`div`,{ref:t})}),M(`div`,{className:`univer-mt-2.5`,children:M(T,{variant:`primary`,onClick:l,children:i.t(`script-panel.panel.execute`)})})]})}function ce(e){let t=C(X),n=C(_),r=C(c);return O(()=>{var i;let a=(i=e.current)==null?void 0:i.getModel();a&&t.execute(a.getValue()).then(()=>{n.show({content:r.t(`uniscript.message.success`),type:E.Success})}).catch(()=>{n.show({content:r.t(`uniscript.message.failed`),type:E.Error})})},[r,n,e,t])}let Q=class extends t{constructor(e,t,n){super(),this._menuManagerService=e,this._menuManagerService.mergeMenu(K),this.disposeWithMe(n.register(z,se)),this.disposeWithMe(t.registerCommand(B))}};Q=J([q(0,g),q(1,r),q(2,o(h))],Q);let $=class extends l{constructor(e=W,t,n){super(),this._config=e,this._injector=t,this._configService=n;let{menu:r,...i}=p({},W,this._config);r&&this._configService.setConfig(`menu`,r,{merge:!0}),this._configService.setConfig(U,i)}onStarting(){let e=this._injector;[[Q],[Y],[R]].forEach(t=>e.add(t)),this.registerExecution()}onSteady(){this._injector.get(Q)}registerExecution(){this._injector.add([X,{useClass:Z}])}};L($,`pluginName`,`UNIVER_UNISCRIPT_PLUGIN`),L($,`packageName`,V),L($,`version`,H),$=J([q(1,o(s)),q(2,i)],$);export{X as IUniscriptExecutionService,Y as ScriptEditorService,B as ToggleScriptPanelOperation,$ as UniverUniscriptPlugin};
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/ui`),require(`rxjs`),require(`@univerjs/sheets`),require(`@univerjs/sheets-ui`),require(`@univerjs/design`),require(`monaco-editor`),require(`react`),require(`@univerjs/core/facade`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/ui`,`rxjs`,`@univerjs/sheets`,`@univerjs/sheets-ui`,`@univerjs/design`,`monaco-editor`,`react`,`@univerjs/core/facade`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverUniscript={},e.UniverCore,e.UniverUi,e.rxjs,e.UniverSheets,e.UniverSheetsUi,e.UniverDesign,e.monaco,e.React,e.UniverCoreFacade,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function d(e){"@babel/helpers - typeof";return d=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},d(e)}function f(e,t){if(d(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(d(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function p(e){var t=f(e,`string`);return d(t)==`symbol`?t:t+``}function m(e,t,n){return(t=p(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=class extends t.Disposable{constructor(...e){super(...e),m(this,`_open$`,new r.BehaviorSubject(!1)),m(this,`open$`,this._open$.pipe((0,r.distinctUntilChanged)()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};let g=`ScriptPanel`,_={type:t.CommandType.OPERATION,id:`univer.operation.toggle-script-panel`,handler:e=>{let t=e.get(h),r=e.get(n.ISidebarService);return t.isOpen?(t.close(),r.close()):(t.open(),r.open({header:{title:`script-panel.title`},children:{label:g},width:600})),!0}};var v=`@univerjs/uniscript`,y=`0.20.0`;let b=`uniscript.config`;Symbol(b);let x={};function S(e){return{id:_.id,title:`toggle-script-panel`,tooltip:`script-panel.tooltip.menu-button`,icon:`CodeIcon`,type:n.MenuItemType.BUTTON,hidden$:(0,n.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,a.getCurrentRangeDisable$)(e,{workbookTypes:[i.WorkbookEditablePermission],worksheetTypes:[i.WorksheetEditPermission,i.WorksheetSetCellStylePermission,i.WorksheetSetCellValuePermission],rangeTypes:[i.RangeProtectionPermissionEditPoint]})}}let C={[n.RibbonOthersGroup.OTHERS]:{[_.id]:{order:0,menuItemFactory:S}}};function w(e,t){return function(n,r){t(n,r,e)}}function T(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let E=class extends t.Disposable{constructor(e){super(),this._configService=e,m(this,`_editorInstance`,null)}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(e){return this._editorInstance=e,(0,t.toDisposable)(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){let e=this._configService.getConfig(b);window.MonacoEnvironment={getWorkerUrl:e==null?void 0:e.getWorkerUrl}}}};E=T([w(0,t.IConfigService)],E);let D=(0,t.createIdentifier)(`univer.uniscript.execution-service`),O=class extends t.Disposable{constructor(e,t){super(),this._logService=e,this._injector=t}async execute(e){this._logService.log(`[UniscriptExecutionService]`,`executing Uniscript...`);let t=l.FUniver.newAPI(this._injector),n=Function(`univerAPI`,`(() => {${e}})()`);try{return n(t),!0}catch(e){return this._logService.error(e),!1}}};O=T([w(0,t.ILogService),w(1,(0,t.Inject)(t.Injector))],O);function k(){let e=(0,c.useRef)(null),r=(0,c.useRef)(null),i=(0,c.useRef)(null),a=(0,n.useDependency)(t.LocaleService),l=(0,n.useDependency)(n.IShortcutService),d=(0,n.useDependency)(E),f=(0,n.useDependency)(t.ThemeService);(0,c.useEffect)(()=>{let n=r.current,a=e.current,o=null,c=null;if(n&&a){d.requireVscodeEditor();let e=i.current=s.editor.create(n,{value:``,language:`javascript`,theme:f.darkMode?`vs-dark`:`vs-light`});c=new ResizeObserver(()=>{let t=requestIdleCallback(()=>{if(!t)return;let{height:n,width:r}=a.getBoundingClientRect();e.layout({width:r,height:n}),t=void 0})}),c.observe(a);let r;o=new t.DisposableCollection,o.add(d.setEditorInstance(e)),o.add(e.onDidFocusEditorWidget(()=>{r=l.forceEscape()})),o.add(e.onDidBlurEditorWidget(()=>{r==null||r.dispose(),r=void 0})),o.add((0,t.toDisposable)(()=>r==null?void 0:r.dispose()))}return()=>{c&&a&&c.unobserve(a),o==null||o.dispose()}},[d,l]);let p=A(i);return(0,u.jsxs)(`div`,{className:`univer-h-full`,children:[(0,u.jsx)(`div`,{ref:e,className:`univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden`,children:(0,u.jsx)(`div`,{ref:r})}),(0,u.jsx)(`div`,{className:`univer-mt-2.5`,children:(0,u.jsx)(o.Button,{variant:`primary`,onClick:p,children:a.t(`script-panel.panel.execute`)})})]})}function A(e){let r=(0,n.useDependency)(D),i=(0,n.useDependency)(n.IMessageService),a=(0,n.useDependency)(t.LocaleService);return(0,c.useCallback)(()=>{var t;let n=(t=e.current)==null?void 0:t.getModel();n&&r.execute(n.getValue()).then(()=>{i.show({content:a.t(`uniscript.message.success`),type:o.MessageType.Success})}).catch(()=>{i.show({content:a.t(`uniscript.message.failed`),type:o.MessageType.Error})})},[a,i,e,r])}let j=class extends t.Disposable{constructor(e,t,n){super(),this._menuManagerService=e,this._menuManagerService.mergeMenu(C),this.disposeWithMe(n.register(g,k)),this.disposeWithMe(t.registerCommand(_))}};j=T([w(0,n.IMenuManagerService),w(1,t.ICommandService),w(2,(0,t.Inject)(n.ComponentManager))],j);let M=class extends t.Plugin{constructor(e=x,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{menu:i,...a}=(0,t.merge)({},x,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(b,a)}onStarting(){let e=this._injector;[[j],[E],[h]].forEach(t=>e.add(t)),this.registerExecution()}onSteady(){this._injector.get(j)}registerExecution(){this._injector.add([D,{useClass:O}])}};m(M,`pluginName`,`UNIVER_UNISCRIPT_PLUGIN`),m(M,`packageName`,v),m(M,`version`,y),M=T([w(1,(0,t.Inject)(t.Injector)),w(2,t.IConfigService)],M),e.IUniscriptExecutionService=D,Object.defineProperty(e,`ScriptEditorService`,{enumerable:!0,get:function(){return E}}),e.ToggleScriptPanelOperation=_,Object.defineProperty(e,`UniverUniscriptPlugin`,{enumerable:!0,get:function(){return M}})});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`@univerjs/ui`),require(`rxjs`),require(`@univerjs/sheets`),require(`@univerjs/sheets-ui`),require(`@univerjs/design`),require(`monaco-editor`),require(`react`),require(`@univerjs/core/facade`),require(`react/jsx-runtime`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/ui`,`rxjs`,`@univerjs/sheets`,`@univerjs/sheets-ui`,`@univerjs/design`,`monaco-editor`,`react`,`@univerjs/core/facade`,`react/jsx-runtime`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverUniscript={},e.UniverCore,e.UniverUi,e.rxjs,e.UniverSheets,e.UniverSheetsUi,e.UniverDesign,e.monaco,e.React,e.UniverCoreFacade,e.React))})(this,function(e,t,n,r,i,a,o,s,c,l,u){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function d(e){"@babel/helpers - typeof";return d=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},d(e)}function f(e,t){if(d(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(d(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function p(e){var t=f(e,`string`);return d(t)==`symbol`?t:t+``}function m(e,t,n){return(t=p(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=class extends t.Disposable{constructor(...e){super(...e),m(this,`_open$`,new r.BehaviorSubject(!1)),m(this,`open$`,this._open$.pipe((0,r.distinctUntilChanged)()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}};let g=`ScriptPanel`,_={type:t.CommandType.OPERATION,id:`univer.operation.toggle-script-panel`,handler:e=>{let t=e.get(h),r=e.get(n.ISidebarService);return t.isOpen?(t.close(),r.close()):(t.open(),r.open({header:{title:`script-panel.title`},children:{label:g},width:600})),!0}};var v=`@univerjs/uniscript`,y=`0.20.1`;let b=`uniscript.config`;Symbol(b);let x={};function S(e){return{id:_.id,title:`toggle-script-panel`,tooltip:`script-panel.tooltip.menu-button`,icon:`CodeIcon`,type:n.MenuItemType.BUTTON,hidden$:(0,n.getMenuHiddenObservable)(e,t.UniverInstanceType.UNIVER_SHEET),disabled$:(0,a.getCurrentRangeDisable$)(e,{workbookTypes:[i.WorkbookEditablePermission],worksheetTypes:[i.WorksheetEditPermission,i.WorksheetSetCellStylePermission,i.WorksheetSetCellValuePermission],rangeTypes:[i.RangeProtectionPermissionEditPoint]})}}let C={[n.RibbonOthersGroup.OTHERS]:{[_.id]:{order:0,menuItemFactory:S}}};function w(e,t){return function(n,r){t(n,r,e)}}function T(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let E=class extends t.Disposable{constructor(e){super(),this._configService=e,m(this,`_editorInstance`,null)}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(e){return this._editorInstance=e,(0,t.toDisposable)(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){let e=this._configService.getConfig(b);window.MonacoEnvironment={getWorkerUrl:e==null?void 0:e.getWorkerUrl}}}};E=T([w(0,t.IConfigService)],E);let D=(0,t.createIdentifier)(`univer.uniscript.execution-service`),O=class extends t.Disposable{constructor(e,t){super(),this._logService=e,this._injector=t}async execute(e){this._logService.log(`[UniscriptExecutionService]`,`executing Uniscript...`);let t=l.FUniver.newAPI(this._injector),n=Function(`univerAPI`,`(() => {${e}})()`);try{return n(t),!0}catch(e){return this._logService.error(e),!1}}};O=T([w(0,t.ILogService),w(1,(0,t.Inject)(t.Injector))],O);function k(){let e=(0,c.useRef)(null),r=(0,c.useRef)(null),i=(0,c.useRef)(null),a=(0,n.useDependency)(t.LocaleService),l=(0,n.useDependency)(n.IShortcutService),d=(0,n.useDependency)(E),f=(0,n.useDependency)(t.ThemeService);(0,c.useEffect)(()=>{let n=r.current,a=e.current,o=null,c=null;if(n&&a){d.requireVscodeEditor();let e=i.current=s.editor.create(n,{value:``,language:`javascript`,theme:f.darkMode?`vs-dark`:`vs-light`});c=new ResizeObserver(()=>{let t=requestIdleCallback(()=>{if(!t)return;let{height:n,width:r}=a.getBoundingClientRect();e.layout({width:r,height:n}),t=void 0})}),c.observe(a);let r;o=new t.DisposableCollection,o.add(d.setEditorInstance(e)),o.add(e.onDidFocusEditorWidget(()=>{r=l.forceEscape()})),o.add(e.onDidBlurEditorWidget(()=>{r==null||r.dispose(),r=void 0})),o.add((0,t.toDisposable)(()=>r==null?void 0:r.dispose()))}return()=>{c&&a&&c.unobserve(a),o==null||o.dispose()}},[d,l]);let p=A(i);return(0,u.jsxs)(`div`,{className:`univer-h-full`,children:[(0,u.jsx)(`div`,{ref:e,className:`univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden`,children:(0,u.jsx)(`div`,{ref:r})}),(0,u.jsx)(`div`,{className:`univer-mt-2.5`,children:(0,u.jsx)(o.Button,{variant:`primary`,onClick:p,children:a.t(`script-panel.panel.execute`)})})]})}function A(e){let r=(0,n.useDependency)(D),i=(0,n.useDependency)(n.IMessageService),a=(0,n.useDependency)(t.LocaleService);return(0,c.useCallback)(()=>{var t;let n=(t=e.current)==null?void 0:t.getModel();n&&r.execute(n.getValue()).then(()=>{i.show({content:a.t(`uniscript.message.success`),type:o.MessageType.Success})}).catch(()=>{i.show({content:a.t(`uniscript.message.failed`),type:o.MessageType.Error})})},[a,i,e,r])}let j=class extends t.Disposable{constructor(e,t,n){super(),this._menuManagerService=e,this._menuManagerService.mergeMenu(C),this.disposeWithMe(n.register(g,k)),this.disposeWithMe(t.registerCommand(_))}};j=T([w(0,n.IMenuManagerService),w(1,t.ICommandService),w(2,(0,t.Inject)(n.ComponentManager))],j);let M=class extends t.Plugin{constructor(e=x,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{menu:i,...a}=(0,t.merge)({},x,this._config);i&&this._configService.setConfig(`menu`,i,{merge:!0}),this._configService.setConfig(b,a)}onStarting(){let e=this._injector;[[j],[E],[h]].forEach(t=>e.add(t)),this.registerExecution()}onSteady(){this._injector.get(j)}registerExecution(){this._injector.add([D,{useClass:O}])}};m(M,`pluginName`,`UNIVER_UNISCRIPT_PLUGIN`),m(M,`packageName`,v),m(M,`version`,y),M=T([w(1,(0,t.Inject)(t.Injector)),w(2,t.IConfigService)],M),e.IUniscriptExecutionService=D,Object.defineProperty(e,`ScriptEditorService`,{enumerable:!0,get:function(){return E}}),e.ToggleScriptPanelOperation=_,Object.defineProperty(e,`UniverUniscriptPlugin`,{enumerable:!0,get:function(){return M}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/uniscript",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "private": false,
5
5
  "description": "UI component library for building exceptional Univer.",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -55,11 +55,11 @@
55
55
  },
56
56
  "dependencies": {
57
57
  "monaco-editor": "0.55.1",
58
- "@univerjs/design": "0.20.0",
59
- "@univerjs/sheets": "0.20.0",
60
- "@univerjs/ui": "0.20.0",
61
- "@univerjs/core": "0.20.0",
62
- "@univerjs/sheets-ui": "0.20.0"
58
+ "@univerjs/core": "0.20.1",
59
+ "@univerjs/sheets": "0.20.1",
60
+ "@univerjs/sheets-ui": "0.20.1",
61
+ "@univerjs/design": "0.20.1",
62
+ "@univerjs/ui": "0.20.1"
63
63
  },
64
64
  "devDependencies": {
65
65
  "postcss": "^8.5.8",
@@ -68,7 +68,7 @@
68
68
  "tailwindcss": "3.4.18",
69
69
  "typescript": "^6.0.2",
70
70
  "vitest": "^4.1.1",
71
- "@univerjs-infra/shared": "0.20.0"
71
+ "@univerjs-infra/shared": "0.20.1"
72
72
  },
73
73
  "scripts": {
74
74
  "test": "vitest run",