@univerjs/uniscript 0.1.11 → 0.1.12

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 F=Object.defineProperty;var B=(n,e,t)=>e in n?F(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var f=(n,e,t)=>(B(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),a=require("@wendellhu/redi"),u=require("@univerjs/ui"),$=require("rxjs"),d=require("react"),b=require("@univerjs/design"),v=require("@wendellhu/redi/react-bindings"),W=require("monaco-editor"),z=require("@univerjs/facade"),V={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},H=V,G={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}},D=G,J={"script-panel":{title:"Юнискрипт",tooltip:{"menu-button":"Переключить панель Юнискрипт"},panel:{execute:"Выполнить скрипт"}},uniscript:{message:{success:"Выполнение успешно",failed:"Выполнение не удалось"}}},Y=J;class R extends c.Disposable{constructor(){super(...arguments);f(this,"_open$",new $.BehaviorSubject(!1));f(this,"open$",this._open$.pipe($.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 M="ScriptPanel",T={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:n=>{const e=n.get(R),t=n.get(u.ISidebarService);return e.isOpen?(e.close(),t.close()):(e.open(),t.open({header:{title:"script-panel.title"},children:{label:M},width:600})),!0}};var N={exports:{}},I={};/**
1
+ "use strict";var B=Object.defineProperty;var W=(n,e,t)=>e in n?B(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var f=(n,e,t)=>(W(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),l=require("@wendellhu/redi"),u=require("@univerjs/ui"),$=require("rxjs"),d=require("react"),O=require("@univerjs/design"),v=require("@wendellhu/redi/react-bindings"),z=require("monaco-editor"),V=require("@univerjs/facade"),H={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},G=H,J={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}},R=J,Y={"script-panel":{title:"Юнискрипт",tooltip:{"menu-button":"Переключить панель Юнискрипт"},panel:{execute:"Выполнить скрипт"}},uniscript:{message:{success:"Выполнение успешно",failed:"Выполнение не удалось"}}},K=Y;class M extends c.Disposable{constructor(){super(...arguments);f(this,"_open$",new $.BehaviorSubject(!1));f(this,"open$",this._open$.pipe($.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 T="ScriptPanel",N={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:n=>{const e=n.get(M),t=n.get(u.ISidebarService);return e.isOpen?(e.close(),t.close()):(e.open(),t.open({header:{title:"script-panel.title"},children:{label:T},width:600})),!0}};var q={exports:{}},I={};/**
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 K=d,Q=Symbol.for("react.element"),X=Symbol.for("react.fragment"),Z=Object.prototype.hasOwnProperty,k=K.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,ee={key:!0,ref:!0,__self:!0,__source:!0};function q(n,e,t){var r,i={},s=null,o=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(r in e)Z.call(e,r)&&!ee.hasOwnProperty(r)&&(i[r]=e[r]);if(n&&n.defaultProps)for(r in e=n.defaultProps,e)i[r]===void 0&&(i[r]=e[r]);return{$$typeof:Q,type:n,key:s,ref:o,props:i,_owner:k.current}}I.Fragment=X;I.jsx=q;I.jsxs=q;N.exports=I;var g=N.exports;class y extends c.Disposable{constructor(t){super();f(this,"_editorInstance",null);this._config=t}setEditorInstance(t){return this._editorInstance=t,c.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var te=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,re=(n,e,t,r)=>{for(var i=r>1?void 0:r?ne(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(i=(r?o(e,t,i):o(i))||i);return r&&i&&te(e,t,i),i},C=(n,e)=>(t,r)=>e(t,r,n);let x=class extends c.Disposable{constructor(n,e){super(),this._logService=n,this._injector=e}async execute(n){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=z.FUniver.newAPI(this._injector),t=new Function("univerAPI",`(() => {${n}})()`);try{return t(e),!0}catch(r){return this._logService.error(r),!1}}};x=re([C(0,c.ILogService),C(1,a.Inject(a.Injector))],x);const ie="univer-script-editor-panel",se="univer-script-editor-content",ce="univer-script-editor-actions",m={scriptEditorPanel:ie,scriptEditorContent:se,scriptEditorActions:ce};function oe(){const n=d.useRef(null),e=d.useRef(null),t=d.useRef(null),r=v.useDependency(c.LocaleService),i=v.useDependency(u.IShortcutService),s=v.useDependency(y);d.useEffect(()=>{const j=e.current,_=n.current;let l=null,h=null;if(j&&_){s.requireVscodeEditor();const S=t.current=W.editor.create(j,{value:"",language:"javascript"});h=new ResizeObserver(()=>{let U=requestIdleCallback(()=>{if(!U)return;const{height:L,width:A}=_.getBoundingClientRect();S.layout({width:A,height:L}),U=void 0})}),h.observe(_);let p;l=new c.DisposableCollection,l.add(s.setEditorInstance(S)),l.add(S.onDidFocusEditorWidget(()=>{p=i.forceEscape()})),l.add(S.onDidBlurEditorWidget(()=>{p==null||p.dispose(),p=void 0})),l.add(c.toDisposable(()=>p==null?void 0:p.dispose()))}return()=>{h&&_&&h.unobserve(_),l==null||l.dispose()}},[s,i]);const o=le(t);return g.jsxs("div",{className:m.scriptEditorPanel,children:[g.jsx("div",{className:m.scriptEditorContent,ref:n,children:g.jsx("div",{className:m.scriptEditorContainer,ref:e})}),g.jsx("div",{className:m.scriptEditorActions,children:g.jsx(b.Button,{type:"primary",size:"small",onClick:o,children:r.t("script-panel.panel.execute")})})]})}function le(n){const e=v.useDependency(x),t=v.useDependency(u.IMessageService),r=v.useDependency(c.LocaleService);return d.useCallback(()=>{var s;const i=(s=n.current)==null?void 0:s.getModel();i&&e.execute(i.getValue()).then(()=>{t.show({content:r.t("uniscript.message.success"),type:b.MessageType.Success})}).catch(()=>{t.show({content:r.t("uniscript.message.failed"),type:b.MessageType.Error})})},[r,t,n,e])}function pe(n){return{id:T.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(n,c.UniverInstanceType.UNIVER_SHEET)}}var ae=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,de=(n,e,t,r)=>{for(var i=r>1?void 0:r?ue(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(i=(r?o(e,t,i):o(i))||i);return r&&i&&ae(e,t,i),i},E=(n,e)=>(t,r)=>e(t,r,n);let P=class extends c.Disposable{constructor(n,e,t,r){super(),this._injector=n,this.disposeWithMe(e.addMenuItem(this._injector.invoke(pe))),this.disposeWithMe(r.register(M,oe)),this.disposeWithMe(t.registerCommand(T))}};P=de([c.OnLifecycle(c.LifecycleStages.Steady,P),E(0,a.Inject(a.Injector)),E(1,u.IMenuService),E(2,c.ICommandService),E(3,a.Inject(u.ComponentManager))],P);var ve=Object.defineProperty,_e=Object.getOwnPropertyDescriptor,fe=(n,e,t,r)=>{for(var i=r>1?void 0:r?_e(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(i=(r?o(e,t,i):o(i))||i);return r&&i&&ve(e,t,i),i},w=(n,e)=>(t,r)=>e(t,r,n);const ge="uniscript";var O;exports.UniverUniscriptPlugin=(O=class extends c.Plugin{constructor(e,t,r){super(),this._config=e,this._injector=t,this._localeService=r}onStarting(e){[[P],[y,{useFactory:()=>e.createInstance(y,this._config)}],[R],[x]].forEach(r=>e.add(r)),this._localeService.load({zhCN:D})}},f(O,"pluginName",ge),O);exports.UniverUniscriptPlugin=fe([w(1,a.Inject(a.Injector)),w(2,a.Inject(c.LocaleService))],exports.UniverUniscriptPlugin);exports.ScriptEditorService=y;exports.enUS=H;exports.ruRU=Y;exports.zhCN=D;
9
+ */var Q=d,X=Symbol.for("react.element"),Z=Symbol.for("react.fragment"),k=Object.prototype.hasOwnProperty,ee=Q.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,te={key:!0,ref:!0,__self:!0,__source:!0};function L(n,e,t){var i,r={},s=null,o=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(i in e)k.call(e,i)&&!te.hasOwnProperty(i)&&(r[i]=e[i]);if(n&&n.defaultProps)for(i in e=n.defaultProps,e)r[i]===void 0&&(r[i]=e[i]);return{$$typeof:X,type:n,key:s,ref:o,props:r,_owner:ee.current}}I.Fragment=Z;I.jsx=L;I.jsxs=L;q.exports=I;var g=q.exports;class y extends c.Disposable{constructor(t){super();f(this,"_editorInstance",null);this._config=t}setEditorInstance(t){return this._editorInstance=t,c.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var ne=Object.defineProperty,ie=Object.getOwnPropertyDescriptor,re=(n,e,t,i)=>{for(var r=i>1?void 0:i?ie(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=(i?o(e,t,r):o(r))||r);return i&&r&&ne(e,t,r),r},D=(n,e)=>(t,i)=>e(t,i,n);const U=l.createIdentifier("univer.uniscript.execution-service");let b=class extends c.Disposable{constructor(n,e){super(),this._logService=n,this._injector=e}async execute(n){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=V.FUniver.newAPI(this._injector),t=new Function("univerAPI",`(() => {${n}})()`);try{return t(e),!0}catch(i){return this._logService.error(i),!1}}};b=re([D(0,c.ILogService),D(1,l.Inject(l.Injector))],b);const se="univer-script-editor-panel",ce="univer-script-editor-content",oe="univer-script-editor-actions",E={scriptEditorPanel:se,scriptEditorContent:ce,scriptEditorActions:oe};function le(){const n=d.useRef(null),e=d.useRef(null),t=d.useRef(null),i=v.useDependency(c.LocaleService),r=v.useDependency(u.IShortcutService),s=v.useDependency(y);d.useEffect(()=>{const j=e.current,_=n.current;let a=null,S=null;if(j&&_){s.requireVscodeEditor();const m=t.current=z.editor.create(j,{value:"",language:"javascript"});S=new ResizeObserver(()=>{let C=requestIdleCallback(()=>{if(!C)return;const{height:A,width:F}=_.getBoundingClientRect();m.layout({width:F,height:A}),C=void 0})}),S.observe(_);let p;a=new c.DisposableCollection,a.add(s.setEditorInstance(m)),a.add(m.onDidFocusEditorWidget(()=>{p=r.forceEscape()})),a.add(m.onDidBlurEditorWidget(()=>{p==null||p.dispose(),p=void 0})),a.add(c.toDisposable(()=>p==null?void 0:p.dispose()))}return()=>{S&&_&&S.unobserve(_),a==null||a.dispose()}},[s,r]);const o=ae(t);return g.jsxs("div",{className:E.scriptEditorPanel,children:[g.jsx("div",{className:E.scriptEditorContent,ref:n,children:g.jsx("div",{className:E.scriptEditorContainer,ref:e})}),g.jsx("div",{className:E.scriptEditorActions,children:g.jsx(O.Button,{type:"primary",size:"small",onClick:o,children:i.t("script-panel.panel.execute")})})]})}function ae(n){const e=v.useDependency(U),t=v.useDependency(u.IMessageService),i=v.useDependency(c.LocaleService);return d.useCallback(()=>{var s;const r=(s=n.current)==null?void 0:s.getModel();r&&e.execute(r.getValue()).then(()=>{t.show({content:i.t("uniscript.message.success"),type:O.MessageType.Success})}).catch(()=>{t.show({content:i.t("uniscript.message.failed"),type:O.MessageType.Error})})},[i,t,n,e])}function pe(n){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(n,c.UniverInstanceType.UNIVER_SHEET)}}var ue=Object.defineProperty,de=Object.getOwnPropertyDescriptor,ve=(n,e,t,i)=>{for(var r=i>1?void 0:i?de(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=(i?o(e,t,r):o(r))||r);return i&&r&&ue(e,t,r),r},x=(n,e)=>(t,i)=>e(t,i,n);const _e={};let h=class extends c.Disposable{constructor(n,e,t,i,r){super(),this._config=n,this._injector=e,this._menuService=t;const{menu:s={}}=this._config;this.disposeWithMe(t.addMenuItem(this._injector.invoke(pe),s)),this.disposeWithMe(r.register(T,le)),this.disposeWithMe(i.registerCommand(N))}};h=ve([c.OnLifecycle(c.LifecycleStages.Steady,h),x(1,l.Inject(l.Injector)),x(2,u.IMenuService),x(3,c.ICommandService),x(4,l.Inject(u.ComponentManager))],h);var fe=Object.defineProperty,ge=Object.getOwnPropertyDescriptor,he=(n,e,t,i)=>{for(var r=i>1?void 0:i?ge(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=(i?o(e,t,r):o(r))||r);return i&&r&&fe(e,t,r),r},w=(n,e)=>(t,i)=>e(t,i,n);const Se="uniscript";var P;exports.UniverUniscriptPlugin=(P=class extends c.Plugin{constructor(e={},t,i){super(),this._config=e,this._injector=t,this._localeService=i,this._config=c.Tools.deepMerge({},_e,this._config)}onStarting(e){[[h,{useFactory:()=>e.createInstance(h,this._config)}],[y,{useFactory:()=>e.createInstance(y,this._config)}],[M]].forEach(i=>e.add(i)),this.registerExecution(),this._localeService.load({zhCN:R})}registerExecution(){this._injector.add([U,{useClass:b}])}},f(P,"pluginName",Se),P);exports.UniverUniscriptPlugin=he([w(1,l.Inject(l.Injector)),w(2,l.Inject(c.LocaleService))],exports.UniverUniscriptPlugin);exports.IUniscriptExecutionService=U;exports.ScriptEditorService=y;exports.enUS=G;exports.ruRU=K;exports.zhCN=R;
package/lib/es/index.js CHANGED
@@ -1,16 +1,16 @@
1
- var B = Object.defineProperty;
2
- var q = (t, e, r) => e in t ? B(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
- var u = (t, e, r) => (q(t, typeof e != "symbol" ? e + "" : e, r), r);
4
- import { Disposable as E, CommandType as V, toDisposable as M, ILogService as z, LocaleService as I, DisposableCollection as H, UniverInstanceType as G, OnLifecycle as J, LifecycleStages as Y, ICommandService as K, Plugin as Q } from "@univerjs/core";
5
- import { Inject as v, Injector as b } from "@wendellhu/redi";
6
- import { ISidebarService as X, IShortcutService as Z, IMessageService as k, MenuItemType as ee, MenuPosition as te, getMenuHiddenObservable as re, ComponentManager as ne, IMenuService as ie } from "@univerjs/ui";
7
- import { BehaviorSubject as se, distinctUntilChanged as oe } from "rxjs";
8
- import ce, { useRef as P, useEffect as le, useCallback as pe } from "react";
9
- import { Button as ae, MessageType as C } from "@univerjs/design";
1
+ var q = Object.defineProperty;
2
+ var V = (t, e, r) => e in t ? q(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
+ var u = (t, e, r) => (V(t, typeof e != "symbol" ? e + "" : e, r), r);
4
+ import { Disposable as S, CommandType as z, toDisposable as M, ILogService as H, LocaleService as y, DisposableCollection as G, UniverInstanceType as J, OnLifecycle as Y, LifecycleStages as K, ICommandService as Q, Plugin as X, Tools as Z } from "@univerjs/core";
5
+ import { createIdentifier as k, Inject as f, Injector as b } from "@wendellhu/redi";
6
+ import { ISidebarService as ee, IShortcutService as te, IMessageService as re, MenuItemType as ie, MenuPosition as ne, getMenuHiddenObservable as se, ComponentManager as oe, IMenuService as ce } from "@univerjs/ui";
7
+ import { BehaviorSubject as le, distinctUntilChanged as pe } from "rxjs";
8
+ import ae, { useRef as x, useEffect as ue, useCallback as de } from "react";
9
+ import { Button as ve, MessageType as $ } from "@univerjs/design";
10
10
  import { useDependency as p } from "@wendellhu/redi/react-bindings";
11
- import { editor as ue } from "monaco-editor";
12
- import { FUniver as de } from "@univerjs/facade";
13
- const ve = {
11
+ import { editor as fe } from "monaco-editor";
12
+ import { FUniver as _e } from "@univerjs/facade";
13
+ const he = {
14
14
  "script-panel": {
15
15
  title: "Uniscript",
16
16
  tooltip: {
@@ -26,7 +26,7 @@ const ve = {
26
26
  failed: "Execution Failed"
27
27
  }
28
28
  }
29
- }, Ke = ve, fe = {
29
+ }, ke = he, me = {
30
30
  "script-panel": {
31
31
  title: "Uniscript",
32
32
  tooltip: {
@@ -42,7 +42,7 @@ const ve = {
42
42
  failed: "执行失败"
43
43
  }
44
44
  }
45
- }, _e = fe, me = {
45
+ }, ge = me, Se = {
46
46
  "script-panel": {
47
47
  title: "Юнискрипт",
48
48
  tooltip: {
@@ -58,12 +58,12 @@ const ve = {
58
58
  failed: "Выполнение не удалось"
59
59
  }
60
60
  }
61
- }, Qe = me;
62
- class T extends E {
61
+ }, et = Se;
62
+ class T extends S {
63
63
  constructor() {
64
64
  super(...arguments);
65
- u(this, "_open$", new se(!1));
66
- u(this, "open$", this._open$.pipe(oe()));
65
+ u(this, "_open$", new le(!1));
66
+ u(this, "open$", this._open$.pipe(pe()));
67
67
  }
68
68
  get isOpen() {
69
69
  return this._open$.getValue();
@@ -78,19 +78,19 @@ class T extends E {
78
78
  this._open$.next(!1);
79
79
  }
80
80
  }
81
- const N = "ScriptPanel", D = {
82
- type: V.OPERATION,
81
+ const D = "ScriptPanel", N = {
82
+ type: z.OPERATION,
83
83
  id: "univer.operation.toggle-script-panel",
84
84
  handler: (t) => {
85
- const e = t.get(T), r = t.get(X);
85
+ const e = t.get(T), r = t.get(ee);
86
86
  return e.isOpen ? (e.close(), r.close()) : (e.open(), r.open({
87
87
  header: { title: "script-panel.title" },
88
- children: { label: N },
88
+ children: { label: D },
89
89
  width: 600
90
90
  })), !0;
91
91
  }
92
92
  };
93
- var A = { exports: {} }, x = {};
93
+ var A = { exports: {} }, E = {};
94
94
  /**
95
95
  * @license React
96
96
  * react-jsx-runtime.production.min.js
@@ -100,23 +100,23 @@ var A = { exports: {} }, x = {};
100
100
  * This source code is licensed under the MIT license found in the
101
101
  * LICENSE file in the root directory of this source tree.
102
102
  */
103
- var he = ce, ge = Symbol.for("react.element"), Se = Symbol.for("react.fragment"), Ee = Object.prototype.hasOwnProperty, xe = he.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, Pe = { key: !0, ref: !0, __self: !0, __source: !0 };
103
+ var Ee = ae, xe = Symbol.for("react.element"), Pe = Symbol.for("react.fragment"), Oe = Object.prototype.hasOwnProperty, Ie = Ee.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, ye = { key: !0, ref: !0, __self: !0, __source: !0 };
104
104
  function F(t, e, r) {
105
- var n, i = {}, s = null, o = null;
105
+ var i, n = {}, s = null, o = null;
106
106
  r !== void 0 && (s = "" + r), e.key !== void 0 && (s = "" + e.key), e.ref !== void 0 && (o = e.ref);
107
- for (n in e)
108
- Ee.call(e, n) && !Pe.hasOwnProperty(n) && (i[n] = e[n]);
107
+ for (i in e)
108
+ Oe.call(e, i) && !ye.hasOwnProperty(i) && (n[i] = e[i]);
109
109
  if (t && t.defaultProps)
110
- for (n in e = t.defaultProps, e)
111
- i[n] === void 0 && (i[n] = e[n]);
112
- return { $$typeof: ge, type: t, key: s, ref: o, props: i, _owner: xe.current };
110
+ for (i in e = t.defaultProps, e)
111
+ n[i] === void 0 && (n[i] = e[i]);
112
+ return { $$typeof: xe, type: t, key: s, ref: o, props: n, _owner: Ie.current };
113
113
  }
114
- x.Fragment = Se;
115
- x.jsx = F;
116
- x.jsxs = F;
117
- A.exports = x;
114
+ E.Fragment = Pe;
115
+ E.jsx = F;
116
+ E.jsxs = F;
117
+ A.exports = E;
118
118
  var d = A.exports;
119
- class y extends E {
119
+ class O extends S {
120
120
  constructor(r) {
121
121
  super();
122
122
  u(this, "_editorInstance", null);
@@ -134,154 +134,162 @@ class y extends E {
134
134
  });
135
135
  }
136
136
  }
137
- var Oe = Object.defineProperty, ye = Object.getOwnPropertyDescriptor, Ie = (t, e, r, n) => {
138
- for (var i = n > 1 ? void 0 : n ? ye(e, r) : e, s = t.length - 1, o; s >= 0; s--)
139
- (o = t[s]) && (i = (n ? o(e, r, i) : o(i)) || i);
140
- return n && i && Oe(e, r, i), i;
141
- }, U = (t, e) => (r, n) => e(r, n, t);
142
- let S = class extends E {
137
+ var be = Object.defineProperty, Ce = Object.getOwnPropertyDescriptor, Ue = (t, e, r, i) => {
138
+ for (var n = i > 1 ? void 0 : i ? Ce(e, r) : e, s = t.length - 1, o; s >= 0; s--)
139
+ (o = t[s]) && (n = (i ? o(e, r, n) : o(n)) || n);
140
+ return i && n && be(e, r, n), n;
141
+ }, j = (t, e) => (r, i) => e(r, i, t);
142
+ const L = k("univer.uniscript.execution-service");
143
+ let I = class extends S {
143
144
  constructor(t, e) {
144
145
  super(), this._logService = t, this._injector = e;
145
146
  }
146
147
  async execute(t) {
147
148
  this._logService.log("[UniscriptExecutionService]", "executing Uniscript...");
148
- const e = de.newAPI(this._injector), r = new Function("univerAPI", `(() => {${t}})()`);
149
+ const e = _e.newAPI(this._injector), r = new Function("univerAPI", `(() => {${t}})()`);
149
150
  try {
150
151
  return r(e), !0;
151
- } catch (n) {
152
- return this._logService.error(n), !1;
152
+ } catch (i) {
153
+ return this._logService.error(i), !1;
153
154
  }
154
155
  }
155
156
  };
156
- S = Ie([
157
- U(0, z),
158
- U(1, v(b))
159
- ], S);
160
- const be = "univer-script-editor-panel", $e = "univer-script-editor-content", je = "univer-script-editor-actions", m = {
161
- scriptEditorPanel: be,
162
- scriptEditorContent: $e,
163
- scriptEditorActions: je
157
+ I = Ue([
158
+ j(0, H),
159
+ j(1, f(b))
160
+ ], I);
161
+ const $e = "univer-script-editor-panel", je = "univer-script-editor-content", we = "univer-script-editor-actions", m = {
162
+ scriptEditorPanel: $e,
163
+ scriptEditorContent: je,
164
+ scriptEditorActions: we
164
165
  };
165
- function Ce() {
166
- const t = P(null), e = P(null), r = P(null), n = p(I), i = p(Z), s = p(y);
167
- le(() => {
168
- const $ = e.current, a = t.current;
169
- let c = null, f = null;
170
- if ($ && a) {
166
+ function Re() {
167
+ const t = x(null), e = x(null), r = x(null), i = p(y), n = p(te), s = p(O);
168
+ ue(() => {
169
+ const C = e.current, a = t.current;
170
+ let c = null, _ = null;
171
+ if (C && a) {
171
172
  s.requireVscodeEditor();
172
- const _ = r.current = ue.create($, {
173
+ const h = r.current = fe.create(C, {
173
174
  value: "",
174
175
  language: "javascript"
175
176
  });
176
- f = new ResizeObserver(() => {
177
- let j = requestIdleCallback(() => {
178
- if (!j)
177
+ _ = new ResizeObserver(() => {
178
+ let U = requestIdleCallback(() => {
179
+ if (!U)
179
180
  return;
180
- const { height: L, width: W } = a.getBoundingClientRect();
181
- _.layout({ width: W, height: L }), j = void 0;
181
+ const { height: W, width: B } = a.getBoundingClientRect();
182
+ h.layout({ width: B, height: W }), U = void 0;
182
183
  });
183
- }), f.observe(a);
184
+ }), _.observe(a);
184
185
  let l;
185
- c = new H(), c.add(s.setEditorInstance(_)), c.add(
186
- _.onDidFocusEditorWidget(() => {
187
- l = i.forceEscape();
186
+ c = new G(), c.add(s.setEditorInstance(h)), c.add(
187
+ h.onDidFocusEditorWidget(() => {
188
+ l = n.forceEscape();
188
189
  })
189
190
  ), c.add(
190
- _.onDidBlurEditorWidget(() => {
191
+ h.onDidBlurEditorWidget(() => {
191
192
  l == null || l.dispose(), l = void 0;
192
193
  })
193
194
  ), c.add(M(() => l == null ? void 0 : l.dispose()));
194
195
  }
195
196
  return () => {
196
- f && a && f.unobserve(a), c == null || c.dispose();
197
+ _ && a && _.unobserve(a), c == null || c.dispose();
197
198
  };
198
- }, [s, i]);
199
- const o = Ue(r);
199
+ }, [s, n]);
200
+ const o = Me(r);
200
201
  return /* @__PURE__ */ d.jsxs("div", { className: m.scriptEditorPanel, children: [
201
202
  /* @__PURE__ */ d.jsx("div", { className: m.scriptEditorContent, ref: t, children: /* @__PURE__ */ d.jsx("div", { className: m.scriptEditorContainer, ref: e }) }),
202
- /* @__PURE__ */ d.jsx("div", { className: m.scriptEditorActions, children: /* @__PURE__ */ d.jsx(ae, { type: "primary", size: "small", onClick: o, children: n.t("script-panel.panel.execute") }) })
203
+ /* @__PURE__ */ d.jsx("div", { className: m.scriptEditorActions, children: /* @__PURE__ */ d.jsx(ve, { type: "primary", size: "small", onClick: o, children: i.t("script-panel.panel.execute") }) })
203
204
  ] });
204
205
  }
205
- function Ue(t) {
206
- const e = p(S), r = p(k), n = p(I);
207
- return pe(() => {
206
+ function Me(t) {
207
+ const e = p(L), r = p(re), i = p(y);
208
+ return de(() => {
208
209
  var s;
209
- const i = (s = t.current) == null ? void 0 : s.getModel();
210
- i && e.execute(i.getValue()).then(() => {
210
+ const n = (s = t.current) == null ? void 0 : s.getModel();
211
+ n && e.execute(n.getValue()).then(() => {
211
212
  r.show({
212
- content: n.t("uniscript.message.success"),
213
- type: C.Success
213
+ content: i.t("uniscript.message.success"),
214
+ type: $.Success
214
215
  });
215
216
  }).catch(() => {
216
217
  r.show({
217
- content: n.t("uniscript.message.failed"),
218
- type: C.Error
218
+ content: i.t("uniscript.message.failed"),
219
+ type: $.Error
219
220
  });
220
221
  });
221
- }, [n, r, t, e]);
222
+ }, [i, r, t, e]);
222
223
  }
223
- function we(t) {
224
+ function Te(t) {
224
225
  return {
225
- id: D.id,
226
+ id: N.id,
226
227
  title: "toggle-script-panel",
227
228
  tooltip: "script-panel.tooltip.menu-button",
228
229
  icon: "CodeSingle",
229
- type: ee.BUTTON,
230
- positions: [te.TOOLBAR_START],
230
+ type: ie.BUTTON,
231
+ positions: [ne.TOOLBAR_START],
231
232
  // FIXME hidden$ and disabled$ are not correctly in doc
232
- hidden$: re(t, G.UNIVER_SHEET)
233
+ hidden$: se(t, J.UNIVER_SHEET)
233
234
  // disabled$: getCurrentSheetDisabled$(accessor),
234
235
  };
235
236
  }
236
- var Re = Object.defineProperty, Me = Object.getOwnPropertyDescriptor, Te = (t, e, r, n) => {
237
- for (var i = n > 1 ? void 0 : n ? Me(e, r) : e, s = t.length - 1, o; s >= 0; s--)
238
- (o = t[s]) && (i = (n ? o(e, r, i) : o(i)) || i);
239
- return n && i && Re(e, r, i), i;
240
- }, h = (t, e) => (r, n) => e(r, n, t);
241
- let g = class extends E {
242
- constructor(t, e, r, n) {
243
- super(), this._injector = t, this.disposeWithMe(e.addMenuItem(this._injector.invoke(we))), this.disposeWithMe(n.register(N, Ce)), this.disposeWithMe(r.registerCommand(D));
237
+ var De = Object.defineProperty, Ne = Object.getOwnPropertyDescriptor, Ae = (t, e, r, i) => {
238
+ for (var n = i > 1 ? void 0 : i ? Ne(e, r) : e, s = t.length - 1, o; s >= 0; s--)
239
+ (o = t[s]) && (n = (i ? o(e, r, n) : o(n)) || n);
240
+ return i && n && De(e, r, n), n;
241
+ }, g = (t, e) => (r, i) => e(r, i, t);
242
+ const Fe = {};
243
+ let v = class extends S {
244
+ constructor(t, e, r, i, n) {
245
+ super(), this._config = t, this._injector = e, this._menuService = r;
246
+ const { menu: s = {} } = this._config;
247
+ this.disposeWithMe(r.addMenuItem(this._injector.invoke(Te), s)), this.disposeWithMe(n.register(D, Re)), this.disposeWithMe(i.registerCommand(N));
244
248
  }
245
249
  };
246
- g = Te([
247
- J(Y.Steady, g),
248
- h(0, v(b)),
249
- h(1, ie),
250
- h(2, K),
251
- h(3, v(ne))
252
- ], g);
253
- var Ne = Object.defineProperty, De = Object.getOwnPropertyDescriptor, Ae = (t, e, r, n) => {
254
- for (var i = n > 1 ? void 0 : n ? De(e, r) : e, s = t.length - 1, o; s >= 0; s--)
255
- (o = t[s]) && (i = (n ? o(e, r, i) : o(i)) || i);
256
- return n && i && Ne(e, r, i), i;
257
- }, w = (t, e) => (r, n) => e(r, n, t);
258
- const Fe = "uniscript";
259
- var O;
260
- let R = (O = class extends Q {
261
- constructor(t, e, r) {
262
- super(), this._config = t, this._injector = e, this._localeService = r;
250
+ v = Ae([
251
+ Y(K.Steady, v),
252
+ g(1, f(b)),
253
+ g(2, ce),
254
+ g(3, Q),
255
+ g(4, f(oe))
256
+ ], v);
257
+ var Le = Object.defineProperty, We = Object.getOwnPropertyDescriptor, Be = (t, e, r, i) => {
258
+ for (var n = i > 1 ? void 0 : i ? We(e, r) : e, s = t.length - 1, o; s >= 0; s--)
259
+ (o = t[s]) && (n = (i ? o(e, r, n) : o(n)) || n);
260
+ return i && n && Le(e, r, n), n;
261
+ }, w = (t, e) => (r, i) => e(r, i, t);
262
+ const qe = "uniscript";
263
+ var P;
264
+ let R = (P = class extends X {
265
+ constructor(t = {}, e, r) {
266
+ super(), this._config = t, this._injector = e, this._localeService = r, this._config = Z.deepMerge({}, Fe, this._config);
263
267
  }
264
268
  onStarting(t) {
265
269
  [
266
270
  // controllers
267
- [g],
271
+ [v, { useFactory: () => t.createInstance(v, this._config) }],
268
272
  // services
269
- [y, { useFactory: () => t.createInstance(y, this._config) }],
270
- [T],
271
- [S]
272
- ].forEach((r) => t.add(r)), this._localeService.load({
273
- zhCN: _e
274
- });
273
+ [O, { useFactory: () => t.createInstance(O, this._config) }],
274
+ [T]
275
+ ].forEach((r) => t.add(r)), this.registerExecution(), this._localeService.load({ zhCN: ge });
276
+ }
277
+ /**
278
+ * Allows being overridden, replacing with a new UniscriptExecutionService.
279
+ */
280
+ registerExecution() {
281
+ this._injector.add([L, { useClass: I }]);
275
282
  }
276
- }, u(O, "pluginName", Fe), O);
277
- R = Ae([
278
- w(1, v(b)),
279
- w(2, v(I))
283
+ }, u(P, "pluginName", qe), P);
284
+ R = Be([
285
+ w(1, f(b)),
286
+ w(2, f(y))
280
287
  ], R);
281
288
  export {
282
- y as ScriptEditorService,
289
+ L as IUniscriptExecutionService,
290
+ O as ScriptEditorService,
283
291
  R as UniverUniscriptPlugin,
284
- Ke as enUS,
285
- Qe as ruRU,
286
- _e as zhCN
292
+ ke as enUS,
293
+ et as ruRU,
294
+ ge as zhCN
287
295
  };
@@ -1,8 +1,15 @@
1
1
  import { Disposable, ICommandService } from '@univerjs/core';
2
- import { ComponentManager, IMenuService } from '@univerjs/ui';
2
+ import { MenuConfig, ComponentManager, IMenuService } from '@univerjs/ui';
3
3
  import { Injector } from '@wendellhu/redi';
4
4
 
5
+ export interface IUniverUniscriptConfig {
6
+ getWorkerUrl(moduleID: string, label: string): string;
7
+ menu: MenuConfig;
8
+ }
9
+ export declare const DefaultUniscriptConfig: {};
5
10
  export declare class UniscriptController extends Disposable {
11
+ private readonly _config;
6
12
  private readonly _injector;
7
- constructor(_injector: Injector, menuService: IMenuService, commandService: ICommandService, componentManager: ComponentManager);
13
+ private readonly _menuService;
14
+ constructor(_config: Partial<IUniverUniscriptConfig>, _injector: Injector, _menuService: IMenuService, commandService: ICommandService, componentManager: ComponentManager);
8
15
  }
@@ -14,5 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export { enUS, zhCN, ruRU } from './locale';
17
- export { type IUniscriptConfig, UniverUniscriptPlugin } from './plugin';
17
+ export { UniverUniscriptPlugin } from './plugin';
18
18
  export { ScriptEditorService } from './services/script-editor.service';
19
+ export { IUniscriptExecutionService } from './services/script-execution.service';
@@ -1,14 +1,16 @@
1
1
  import { LocaleService, Plugin } from '@univerjs/core';
2
2
  import { Injector } from '@wendellhu/redi';
3
- import { IScriptEditorServiceConfig } from './services/script-editor.service';
3
+ import { IUniverUniscriptConfig } from './controllers/uniscript.controller';
4
4
 
5
- export interface IUniscriptConfig extends IScriptEditorServiceConfig {
6
- }
7
5
  export declare class UniverUniscriptPlugin extends Plugin {
8
6
  private readonly _config;
9
7
  protected _injector: Injector;
10
8
  private readonly _localeService;
11
9
  static pluginName: string;
12
- constructor(_config: IUniscriptConfig, _injector: Injector, _localeService: LocaleService);
10
+ constructor(_config: Partial<IUniverUniscriptConfig>, _injector: Injector, _localeService: LocaleService);
13
11
  onStarting(injector: Injector): void;
12
+ /**
13
+ * Allows being overridden, replacing with a new UniscriptExecutionService.
14
+ */
15
+ registerExecution(): void;
14
16
  }
@@ -1,10 +1,8 @@
1
1
  import { Disposable } from '@univerjs/core';
2
2
  import { IDisposable } from '@wendellhu/redi';
3
3
  import { editor } from 'monaco-editor';
4
+ import { IUniverUniscriptConfig } from '../controllers/uniscript.controller';
4
5
 
5
- export interface IScriptEditorServiceConfig {
6
- getWorkerUrl(moduleID: string, label: string): string;
7
- }
8
6
  /**
9
7
  * This service is for loading monaco editor and its resources. It also holds the
10
8
  * monaco editor instance so user can interact with the editor programmatically.
@@ -12,7 +10,7 @@ export interface IScriptEditorServiceConfig {
12
10
  export declare class ScriptEditorService extends Disposable {
13
11
  private readonly _config;
14
12
  private _editorInstance;
15
- constructor(_config: IScriptEditorServiceConfig);
13
+ constructor(_config: Partial<IUniverUniscriptConfig>);
16
14
  setEditorInstance(editor: editor.IStandaloneCodeEditor): IDisposable;
17
15
  getEditorInstance(): editor.IStandaloneCodeEditor | null;
18
16
  requireVscodeEditor(): void;
@@ -1,10 +1,14 @@
1
1
  import { Disposable, ILogService } from '@univerjs/core';
2
2
  import { Injector } from '@wendellhu/redi';
3
3
 
4
+ export declare const IUniscriptExecutionService: import('@wendellhu/redi').IdentifierDecorator<IUniscriptExecutionService>;
5
+ export interface IUniscriptExecutionService {
6
+ execute(code: string): Promise<boolean>;
7
+ }
4
8
  /**
5
- * This service is to
9
+ * This service is to execute Uniscript code.
6
10
  */
7
- export declare class UniscriptExecutionService extends Disposable {
11
+ export declare class UniscriptExecutionService extends Disposable implements IUniscriptExecutionService {
8
12
  private readonly _logService;
9
13
  private readonly _injector;
10
14
  constructor(_logService: ILogService, _injector: Injector);
package/lib/umd/index.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(c,s){typeof exports=="object"&&typeof module<"u"?s(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/facade")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/ui","rxjs","react","@univerjs/design","@wendellhu/redi/react-bindings","monaco-editor","@univerjs/facade"],s):(c=typeof globalThis<"u"?globalThis:c||self,s(c.UniverUniscript={},c.UniverCore,c["@wendellhu/redi"],c.UniverUi,c.rxjs,c.React,c.UniverDesign,c["@wendellhu/redi/react-bindings"],c.monaco,c.UniverFacade))})(this,function(c,s,p,a,b,v,O,f,F,q){"use strict";var ae=Object.defineProperty;var ue=(c,s,p)=>s in c?ae(c,s,{enumerable:!0,configurable:!0,writable:!0,value:p}):c[s]=p;var S=(c,s,p)=>(ue(c,typeof s!="symbol"?s+"":s,p),p);var x;const W={"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:"执行失败"}}},z={"script-panel":{title:"Юнискрипт",tooltip:{"menu-button":"Переключить панель Юнискрипт"},panel:{execute:"Выполнить скрипт"}},uniscript:{message:{success:"Выполнение успешно",failed:"Выполнение не удалось"}}};class C extends s.Disposable{constructor(){super(...arguments);S(this,"_open$",new b.BehaviorSubject(!1));S(this,"open$",this._open$.pipe(b.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 D="ScriptPanel",R={type:s.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:i=>{const e=i.get(C),n=i.get(a.ISidebarService);return e.isOpen?(e.close(),n.close()):(e.open(),n.open({header:{title:"script-panel.title"},children:{label:D},width:600})),!0}};var T={exports:{}},m={};/**
1
+ (function(c,s){typeof exports=="object"&&typeof module<"u"?s(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/facade")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/ui","rxjs","react","@univerjs/design","@wendellhu/redi/react-bindings","monaco-editor","@univerjs/facade"],s):(c=typeof globalThis<"u"?globalThis:c||self,s(c.UniverUniscript={},c.UniverCore,c["@wendellhu/redi"],c.UniverUi,c.rxjs,c.React,c.UniverDesign,c["@wendellhu/redi/react-bindings"],c.monaco,c.UniverFacade))})(this,function(c,s,p,u,w,v,U,f,q,W){"use strict";var de=Object.defineProperty;var ve=(c,s,p)=>s in c?de(c,s,{enumerable:!0,configurable:!0,writable:!0,value:p}):c[s]=p;var S=(c,s,p)=>(ve(c,typeof s!="symbol"?s+"":s,p),p);var b;const z={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},C={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}},V={"script-panel":{title:"Юнискрипт",tooltip:{"menu-button":"Переключить панель Юнискрипт"},panel:{execute:"Выполнить скрипт"}},uniscript:{message:{success:"Выполнение успешно",failed:"Выполнение не удалось"}}};class D extends s.Disposable{constructor(){super(...arguments);S(this,"_open$",new w.BehaviorSubject(!1));S(this,"open$",this._open$.pipe(w.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const R="ScriptPanel",T={type:s.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:i=>{const e=i.get(D),n=i.get(u.ISidebarService);return e.isOpen?(e.close(),n.close()):(e.open(),n.open({header:{title:"script-panel.title"},children:{label:R},width:600})),!0}};var M={exports:{}},m={};/**
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 V=v,B=Symbol.for("react.element"),H=Symbol.for("react.fragment"),G=Object.prototype.hasOwnProperty,J=V.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Y={key:!0,ref:!0,__self:!0,__source:!0};function M(i,e,n){var t,r={},o=null,l=null;n!==void 0&&(o=""+n),e.key!==void 0&&(o=""+e.key),e.ref!==void 0&&(l=e.ref);for(t in e)G.call(e,t)&&!Y.hasOwnProperty(t)&&(r[t]=e[t]);if(i&&i.defaultProps)for(t in e=i.defaultProps,e)r[t]===void 0&&(r[t]=e[t]);return{$$typeof:B,type:i,key:o,ref:l,props:r,_owner:J.current}}m.Fragment=H,m.jsx=M,m.jsxs=M,T.exports=m;var _=T.exports;class E extends s.Disposable{constructor(n){super();S(this,"_editorInstance",null);this._config=n}setEditorInstance(n){return this._editorInstance=n,s.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var K=Object.defineProperty,Q=Object.getOwnPropertyDescriptor,X=(i,e,n,t)=>{for(var r=t>1?void 0:t?Q(e,n):e,o=i.length-1,l;o>=0;o--)(l=i[o])&&(r=(t?l(e,n,r):l(r))||r);return t&&r&&K(e,n,r),r},$=(i,e)=>(n,t)=>e(n,t,i);let g=class extends s.Disposable{constructor(i,e){super(),this._logService=i,this._injector=e}async execute(i){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=q.FUniver.newAPI(this._injector),n=new Function("univerAPI",`(() => {${i}})()`);try{return n(e),!0}catch(t){return this._logService.error(t),!1}}};g=X([$(0,s.ILogService),$(1,p.Inject(p.Injector))],g);const j={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function Z(){const i=v.useRef(null),e=v.useRef(null),n=v.useRef(null),t=f.useDependency(s.LocaleService),r=f.useDependency(a.IShortcutService),o=f.useDependency(E);v.useEffect(()=>{const A=e.current,h=i.current;let u=null,U=null;if(A&&h){o.requireVscodeEditor();const I=n.current=F.editor.create(A,{value:"",language:"javascript"});U=new ResizeObserver(()=>{let L=requestIdleCallback(()=>{if(!L)return;const{height:le,width:pe}=h.getBoundingClientRect();I.layout({width:pe,height:le}),L=void 0})}),U.observe(h);let d;u=new s.DisposableCollection,u.add(o.setEditorInstance(I)),u.add(I.onDidFocusEditorWidget(()=>{d=r.forceEscape()})),u.add(I.onDidBlurEditorWidget(()=>{d==null||d.dispose(),d=void 0})),u.add(s.toDisposable(()=>d==null?void 0:d.dispose()))}return()=>{U&&h&&U.unobserve(h),u==null||u.dispose()}},[o,r]);const l=k(n);return _.jsxs("div",{className:j.scriptEditorPanel,children:[_.jsx("div",{className:j.scriptEditorContent,ref:i,children:_.jsx("div",{className:j.scriptEditorContainer,ref:e})}),_.jsx("div",{className:j.scriptEditorActions,children:_.jsx(O.Button,{type:"primary",size:"small",onClick:l,children:t.t("script-panel.panel.execute")})})]})}function k(i){const e=f.useDependency(g),n=f.useDependency(a.IMessageService),t=f.useDependency(s.LocaleService);return v.useCallback(()=>{var o;const r=(o=i.current)==null?void 0:o.getModel();r&&e.execute(r.getValue()).then(()=>{n.show({content:t.t("uniscript.message.success"),type:O.MessageType.Success})}).catch(()=>{n.show({content:t.t("uniscript.message.failed"),type:O.MessageType.Error})})},[t,n,i,e])}function ee(i){return{id:R.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:a.MenuItemType.BUTTON,positions:[a.MenuPosition.TOOLBAR_START],hidden$:a.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_SHEET)}}var te=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,ie=(i,e,n,t)=>{for(var r=t>1?void 0:t?ne(e,n):e,o=i.length-1,l;o>=0;o--)(l=i[o])&&(r=(t?l(e,n,r):l(r))||r);return t&&r&&te(e,n,r),r},y=(i,e)=>(n,t)=>e(n,t,i);let P=class extends s.Disposable{constructor(i,e,n,t){super(),this._injector=i,this.disposeWithMe(e.addMenuItem(this._injector.invoke(ee))),this.disposeWithMe(t.register(D,Z)),this.disposeWithMe(n.registerCommand(R))}};P=ie([s.OnLifecycle(s.LifecycleStages.Steady,P),y(0,p.Inject(p.Injector)),y(1,a.IMenuService),y(2,s.ICommandService),y(3,p.Inject(a.ComponentManager))],P);var re=Object.defineProperty,se=Object.getOwnPropertyDescriptor,ce=(i,e,n,t)=>{for(var r=t>1?void 0:t?se(e,n):e,o=i.length-1,l;o>=0;o--)(l=i[o])&&(r=(t?l(e,n,r):l(r))||r);return t&&r&&re(e,n,r),r},N=(i,e)=>(n,t)=>e(n,t,i);const oe="uniscript";c.UniverUniscriptPlugin=(x=class extends s.Plugin{constructor(e,n,t){super(),this._config=e,this._injector=n,this._localeService=t}onStarting(e){[[P],[E,{useFactory:()=>e.createInstance(E,this._config)}],[C],[g]].forEach(t=>e.add(t)),this._localeService.load({zhCN:w})}},S(x,"pluginName",oe),x),c.UniverUniscriptPlugin=ce([N(1,p.Inject(p.Injector)),N(2,p.Inject(s.LocaleService))],c.UniverUniscriptPlugin),c.ScriptEditorService=E,c.enUS=W,c.ruRU=z,c.zhCN=w,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
9
+ */var B=v,H=Symbol.for("react.element"),G=Symbol.for("react.fragment"),J=Object.prototype.hasOwnProperty,Y=B.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,K={key:!0,ref:!0,__self:!0,__source:!0};function $(i,e,n){var t,r={},o=null,l=null;n!==void 0&&(o=""+n),e.key!==void 0&&(o=""+e.key),e.ref!==void 0&&(l=e.ref);for(t in e)J.call(e,t)&&!K.hasOwnProperty(t)&&(r[t]=e[t]);if(i&&i.defaultProps)for(t in e=i.defaultProps,e)r[t]===void 0&&(r[t]=e[t]);return{$$typeof:H,type:i,key:o,ref:l,props:r,_owner:Y.current}}m.Fragment=G,m.jsx=$,m.jsxs=$,M.exports=m;var h=M.exports;class E extends s.Disposable{constructor(n){super();S(this,"_editorInstance",null);this._config=n}setEditorInstance(n){return this._editorInstance=n,s.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var Q=Object.defineProperty,X=Object.getOwnPropertyDescriptor,Z=(i,e,n,t)=>{for(var r=t>1?void 0:t?X(e,n):e,o=i.length-1,l;o>=0;o--)(l=i[o])&&(r=(t?l(e,n,r):l(r))||r);return t&&r&&Q(e,n,r),r},N=(i,e)=>(n,t)=>e(n,t,i);const x=p.createIdentifier("univer.uniscript.execution-service");let O=class extends s.Disposable{constructor(i,e){super(),this._logService=i,this._injector=e}async execute(i){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=W.FUniver.newAPI(this._injector),n=new Function("univerAPI",`(() => {${i}})()`);try{return n(e),!0}catch(t){return this._logService.error(t),!1}}};O=Z([N(0,s.ILogService),N(1,p.Inject(p.Injector))],O);const j={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function k(){const i=v.useRef(null),e=v.useRef(null),n=v.useRef(null),t=f.useDependency(s.LocaleService),r=f.useDependency(u.IShortcutService),o=f.useDependency(E);v.useEffect(()=>{const F=e.current,g=i.current;let a=null,P=null;if(F&&g){o.requireVscodeEditor();const I=n.current=q.editor.create(F,{value:"",language:"javascript"});P=new ResizeObserver(()=>{let L=requestIdleCallback(()=>{if(!L)return;const{height:ue,width:ae}=g.getBoundingClientRect();I.layout({width:ae,height:ue}),L=void 0})}),P.observe(g);let d;a=new s.DisposableCollection,a.add(o.setEditorInstance(I)),a.add(I.onDidFocusEditorWidget(()=>{d=r.forceEscape()})),a.add(I.onDidBlurEditorWidget(()=>{d==null||d.dispose(),d=void 0})),a.add(s.toDisposable(()=>d==null?void 0:d.dispose()))}return()=>{P&&g&&P.unobserve(g),a==null||a.dispose()}},[o,r]);const l=ee(n);return h.jsxs("div",{className:j.scriptEditorPanel,children:[h.jsx("div",{className:j.scriptEditorContent,ref:i,children:h.jsx("div",{className:j.scriptEditorContainer,ref:e})}),h.jsx("div",{className:j.scriptEditorActions,children:h.jsx(U.Button,{type:"primary",size:"small",onClick:l,children:t.t("script-panel.panel.execute")})})]})}function ee(i){const e=f.useDependency(x),n=f.useDependency(u.IMessageService),t=f.useDependency(s.LocaleService);return v.useCallback(()=>{var o;const r=(o=i.current)==null?void 0:o.getModel();r&&e.execute(r.getValue()).then(()=>{n.show({content:t.t("uniscript.message.success"),type:U.MessageType.Success})}).catch(()=>{n.show({content:t.t("uniscript.message.failed"),type:U.MessageType.Error})})},[t,n,i,e])}function te(i){return{id:T.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(i,s.UniverInstanceType.UNIVER_SHEET)}}var ne=Object.defineProperty,ie=Object.getOwnPropertyDescriptor,re=(i,e,n,t)=>{for(var r=t>1?void 0:t?ie(e,n):e,o=i.length-1,l;o>=0;o--)(l=i[o])&&(r=(t?l(e,n,r):l(r))||r);return t&&r&&ne(e,n,r),r},y=(i,e)=>(n,t)=>e(n,t,i);const se={};let _=class extends s.Disposable{constructor(i,e,n,t,r){super(),this._config=i,this._injector=e,this._menuService=n;const{menu:o={}}=this._config;this.disposeWithMe(n.addMenuItem(this._injector.invoke(te),o)),this.disposeWithMe(r.register(R,k)),this.disposeWithMe(t.registerCommand(T))}};_=re([s.OnLifecycle(s.LifecycleStages.Steady,_),y(1,p.Inject(p.Injector)),y(2,u.IMenuService),y(3,s.ICommandService),y(4,p.Inject(u.ComponentManager))],_);var ce=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,le=(i,e,n,t)=>{for(var r=t>1?void 0:t?oe(e,n):e,o=i.length-1,l;o>=0;o--)(l=i[o])&&(r=(t?l(e,n,r):l(r))||r);return t&&r&&ce(e,n,r),r},A=(i,e)=>(n,t)=>e(n,t,i);const pe="uniscript";c.UniverUniscriptPlugin=(b=class extends s.Plugin{constructor(e={},n,t){super(),this._config=e,this._injector=n,this._localeService=t,this._config=s.Tools.deepMerge({},se,this._config)}onStarting(e){[[_,{useFactory:()=>e.createInstance(_,this._config)}],[E,{useFactory:()=>e.createInstance(E,this._config)}],[D]].forEach(t=>e.add(t)),this.registerExecution(),this._localeService.load({zhCN:C})}registerExecution(){this._injector.add([x,{useClass:O}])}},S(b,"pluginName",pe),b),c.UniverUniscriptPlugin=le([A(1,p.Inject(p.Injector)),A(2,p.Inject(s.LocaleService))],c.UniverUniscriptPlugin),c.IUniscriptExecutionService=x,c.ScriptEditorService=E,c.enUS=z,c.ruRU=V,c.zhCN=C,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/uniscript",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "private": false,
5
5
  "description": "UI component library for building exceptional Univer.",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -53,29 +53,29 @@
53
53
  "npm": ">=8.0.0"
54
54
  },
55
55
  "peerDependencies": {
56
- "@wendellhu/redi": "^0.15.1",
56
+ "@wendellhu/redi": "0.15.2",
57
57
  "monaco-editor": ">=0.44.0",
58
58
  "react": "^16.9.0 || ^17.0.0 || ^18.0.0",
59
59
  "rxjs": ">=7.0.0",
60
- "@univerjs/core": "0.1.11",
61
- "@univerjs/design": "0.1.11",
62
- "@univerjs/facade": "0.1.11",
63
- "@univerjs/ui": "0.1.11"
60
+ "@univerjs/core": "0.1.12",
61
+ "@univerjs/design": "0.1.12",
62
+ "@univerjs/facade": "0.1.12",
63
+ "@univerjs/ui": "0.1.12"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/react": "^18.2.79",
67
- "@wendellhu/redi": "^0.15.1",
67
+ "@wendellhu/redi": "0.15.2",
68
68
  "less": "^4.2.0",
69
69
  "monaco-editor": "0.48.0",
70
70
  "rxjs": "^7.8.1",
71
71
  "typescript": "^5.4.5",
72
72
  "vite": "^5.2.11",
73
73
  "vitest": "^1.6.0",
74
- "@univerjs/design": "0.1.11",
75
- "@univerjs/facade": "0.1.11",
76
- "@univerjs/core": "0.1.11",
77
- "@univerjs/ui": "0.1.11",
78
- "@univerjs/shared": "0.1.11"
74
+ "@univerjs/core": "0.1.12",
75
+ "@univerjs/design": "0.1.12",
76
+ "@univerjs/facade": "0.1.12",
77
+ "@univerjs/ui": "0.1.12",
78
+ "@univerjs/shared": "0.1.12"
79
79
  },
80
80
  "scripts": {
81
81
  "test": "vitest run",