@univerjs/uniscript 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -5,12 +5,50 @@
5
5
 
6
6
  ## Introduction
7
7
 
8
- > Univer uniscript package. This package add scripting feature to univer.
8
+ ![](./assets//uniscript.jpeg)
9
+
10
+ `@univerjs/uniscript` uses the DSL (Domain-Specific Language) provided by `@univerjs/facade` and creates a code editor for Users to write code for operating Univer's data structures and business logic.
11
+
12
+ Users can write business logic in the code editor to meet more flexible business requirements. For instance, as shown in the illustration, users can write a Uniscript to read identity card numbers from a selected area and validate their legality, and mark the background of invalid identity card numbers with red.
13
+
14
+ :::caution
15
+ The Uniscript is currently in the experimental stage, and it is not recommended to use it in production environments. You can refer to the [Roadmap](https://univer.ai/en-us/guides/roadmap/) to understand the iteration plan of Uniscript.
16
+ :::
17
+
18
+ :::tip
19
+ Indeed, Uniscript's Domain-Specific Language (DSL) is a set of Facade APIs that encapsulate the internal implementation details of Univer. This API is defined [here](https://univer.ai/en-us/guides/facade/).
20
+ :::
9
21
 
10
22
  ## Usage
11
23
 
12
24
  ### Installation
13
25
 
14
26
  ```shell
15
- npm i @univerjs/uniscript
27
+ # Using npm
28
+ npm install @univerjs/uniscript
29
+
30
+ # Using pnpm
31
+ pnpm add @univerjs/uniscript
32
+ ```
33
+
34
+ ### Get the Editor Instance
35
+
36
+ The `@univerjs/uniscript` uses [Monaco Editor](https://microsoft.github.io/monaco-editor/) as its code editor. You can obtain an instance of the editor through the following method:
37
+
38
+ ```ts
39
+ const editor = univer.__getInjector().get(ScriptEditorService).getEditorInstance();
40
+ ```
41
+
42
+ Or inject `ScriptEditorService` into your module to obtain the editor instance.
43
+
44
+ ```ts
45
+ export class YourModule {
46
+ constructor(
47
+ @Inject(ScriptEditorService) private readonly _scriptEditorService
48
+ ) {}
49
+
50
+ private _getEditor() {
51
+ return this._scriptEditorService.getEditorInstance();
52
+ }
53
+ }
16
54
  ```
package/lib/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var W=Object.defineProperty;var z=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var f=(t,e,n)=>(z(t,typeof e!="symbol"?e+"":e,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),u=require("@wendellhu/redi"),d=require("@univerjs/ui"),C=require("rxjs"),v=require("react"),I=require("@univerjs/design"),h=require("@wendellhu/redi/react-bindings"),V=require("monaco-editor"),H=require("@univerjs/facade"),G=require("@univerjs/sheets"),J={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},Y=J,K={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}},R=K;class T extends c.Disposable{constructor(){super(...arguments);f(this,"_open$",new C.BehaviorSubject(!1));f(this,"open$",this._open$.pipe(C.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const M="ScriptPanel",q={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(T),n=t.get(d.ISidebarService);return e.isOpen?(e.close(),n.close()):(e.open(),n.open({header:{title:"script-panel.title"},children:{label:M},width:600})),!0}};var N={exports:{}},x={};/**
1
+ "use strict";var W=Object.defineProperty;var z=(n,e,t)=>e in n?W(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var f=(n,e,t)=>(z(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),u=require("@wendellhu/redi"),d=require("@univerjs/ui"),$=require("rxjs"),v=require("react"),O=require("@univerjs/design"),h=require("@wendellhu/redi/react-bindings"),V=require("monaco-editor"),G=require("@univerjs/facade"),J={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},Y=J,H={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}},R=H;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(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const T="ScriptPanel",q={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:n=>{const e=n.get(M),t=n.get(d.ISidebarService);return e.isOpen?(e.close(),t.close()):(e.open(),t.open({header:{title:"script-panel.title"},children:{label:T},width:600})),!0}};var N={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 Q=v,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 A(t,e,n){var r,i={},s=null,o=null;n!==void 0&&(s=""+n),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(r in e)k.call(e,r)&&!te.hasOwnProperty(r)&&(i[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps,e)i[r]===void 0&&(i[r]=e[r]);return{$$typeof:X,type:t,key:s,ref:o,props:i,_owner:ee.current}}x.Fragment=Z;x.jsx=A;x.jsxs=A;N.exports=x;var g=N.exports;class j extends c.Disposable{constructor(n){super();f(this,"_editorInstance",null);this._config=n}setEditorInstance(n){return this._editorInstance=n,c.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var ne=Object.defineProperty,re=Object.getOwnPropertyDescriptor,ie=(t,e,n,r)=>{for(var i=r>1?void 0:r?re(e,n):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(r?o(e,n,i):o(i))||i);return r&&i&&ne(e,n,i),i},w=(t,e)=>(n,r)=>e(n,r,t);let b=class extends c.Disposable{constructor(t,e){super(),this._logService=t,this._injector=e}async execute(t){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=H.FUniver.newAPI(this._injector),n=new Function("univerAPI",`(() => {${t}})()`);try{return n(e),!0}catch(r){return this._logService.error(r),!1}}};b=ie([w(0,c.ILogService),w(1,u.Inject(u.Injector))],b);const se="univer-script-editor-panel",oe="univer-script-editor-content",ce="univer-script-editor-actions",E={scriptEditorPanel:se,scriptEditorContent:oe,scriptEditorActions:ce};function le(){const t=v.useRef(null),e=v.useRef(null),n=v.useRef(null),r=h.useDependency(c.LocaleService),i=h.useDependency(b),s=h.useDependency(d.IShortcutService),o=h.useDependency(j),U=h.useDependency(d.IMessageService);v.useEffect(()=>{const _=e.current,l=t.current;let a=null,S=null;if(_&&l){o.requireVscodeEditor();const m=n.current=V.editor.create(_,{value:"",language:"javascript"});S=new ResizeObserver(()=>{let $=requestIdleCallback(()=>{if(!$)return;const{height:F,width:B}=l.getBoundingClientRect();m.layout({width:B,height:F}),$=void 0})}),S.observe(l);let p;a=new c.DisposableCollection,a.add(o.setEditorInstance(m)),a.add(m.onDidFocusEditorWidget(()=>{p=s.forceEscape()})),a.add(m.onDidBlurEditorWidget(()=>{p==null||p.dispose(),p=void 0})),a.add(c.toDisposable(()=>p==null?void 0:p.dispose()))}return()=>{S&&l&&S.unobserve(l),a==null||a.dispose()}},[]);const L=v.useCallback(()=>{var l;const _=(l=n.current)==null?void 0:l.getModel();_&&i.execute(_.getValue()).then(()=>{U.show({content:r.t("uniscript.message.success"),type:I.MessageType.Success})}).catch(()=>{U.show({content:r.t("uniscript.message.failed"),type:I.MessageType.Error})})},[i]);return g.jsxs("div",{className:E.scriptEditorPanel,children:[g.jsx("div",{className:E.scriptEditorContent,ref:t,children:g.jsx("div",{className:E.scriptEditorContainer,ref:e})}),g.jsx("div",{className:E.scriptEditorActions,children:g.jsx(I.Button,{type:"primary",size:"small",onClick:L,children:r.t("script-panel.panel.execute")})})]})}function ae(t){return{id:q.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:d.MenuItemType.BUTTON,positions:[d.MenuPosition.TOOLBAR_START],hidden$:d.getMenuHiddenObservable(t,c.UniverInstanceType.SHEET),disabled$:G.getCurrentSheetDisabled$(t)}}var pe=Object.defineProperty,ue=Object.getOwnPropertyDescriptor,de=(t,e,n,r)=>{for(var i=r>1?void 0:r?ue(e,n):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(r?o(e,n,i):o(i))||i);return r&&i&&pe(e,n,i),i},P=(t,e)=>(n,r)=>e(n,r,t);let y=class extends c.Disposable{constructor(t,e,n,r){super(),this._injector=t,this.disposeWithMe(e.addMenuItem(this._injector.invoke(ae))),this.disposeWithMe(r.register(M,le)),this.disposeWithMe(n.registerCommand(q))}};y=de([c.OnLifecycle(c.LifecycleStages.Steady,y),P(0,u.Inject(u.Injector)),P(1,d.IMenuService),P(2,c.ICommandService),P(3,u.Inject(d.ComponentManager))],y);var ve=Object.defineProperty,_e=Object.getOwnPropertyDescriptor,fe=(t,e,n,r)=>{for(var i=r>1?void 0:r?_e(e,n):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(i=(r?o(e,n,i):o(i))||i);return r&&i&&ve(e,n,i),i},D=(t,e)=>(n,r)=>e(n,r,t);const he="uniscript";var O;exports.UniverUniscriptPlugin=(O=class extends c.Plugin{constructor(e,n,r){super(he),this._config=e,this._injector=n,this._localeService=r}onStarting(e){[[y],[j,{useFactory:()=>e.createInstance(j,this._config)}],[T],[b]].forEach(r=>e.add(r)),this._localeService.load({zhCN:R})}},f(O,"type",c.PluginType.Univer),O);exports.UniverUniscriptPlugin=fe([D(1,u.Inject(u.Injector)),D(2,u.Inject(c.LocaleService))],exports.UniverUniscriptPlugin);exports.enUS=Y;exports.zhCN=R;
9
+ */var K=v,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 A(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=A;I.jsxs=A;N.exports=I;var g=N.exports;class b 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,re=Object.getOwnPropertyDescriptor,ne=(n,e,t,r)=>{for(var i=r>1?void 0:r?re(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},w=(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=G.FUniver.newAPI(this._injector),t=new Function("univerAPI",`(() => {${n}})()`);try{return t(e),!0}catch(r){return this._logService.error(r),!1}}};x=ne([w(0,c.ILogService),w(1,u.Inject(u.Injector))],x);const ie="univer-script-editor-panel",se="univer-script-editor-content",oe="univer-script-editor-actions",E={scriptEditorPanel:ie,scriptEditorContent:se,scriptEditorActions:oe};function ce(){const n=v.useRef(null),e=v.useRef(null),t=v.useRef(null),r=h.useDependency(c.LocaleService),i=h.useDependency(x),s=h.useDependency(d.IShortcutService),o=h.useDependency(b),U=h.useDependency(d.IMessageService);v.useEffect(()=>{const _=e.current,l=n.current;let p=null,S=null;if(_&&l){o.requireVscodeEditor();const m=t.current=V.editor.create(_,{value:"",language:"javascript"});S=new ResizeObserver(()=>{let C=requestIdleCallback(()=>{if(!C)return;const{height:F,width:B}=l.getBoundingClientRect();m.layout({width:B,height:F}),C=void 0})}),S.observe(l);let a;p=new c.DisposableCollection,p.add(o.setEditorInstance(m)),p.add(m.onDidFocusEditorWidget(()=>{a=s.forceEscape()})),p.add(m.onDidBlurEditorWidget(()=>{a==null||a.dispose(),a=void 0})),p.add(c.toDisposable(()=>a==null?void 0:a.dispose()))}return()=>{S&&l&&S.unobserve(l),p==null||p.dispose()}},[]);const L=v.useCallback(()=>{var l;const _=(l=t.current)==null?void 0:l.getModel();_&&i.execute(_.getValue()).then(()=>{U.show({content:r.t("uniscript.message.success"),type:O.MessageType.Success})}).catch(()=>{U.show({content:r.t("uniscript.message.failed"),type:O.MessageType.Error})})},[i]);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:L,children:r.t("script-panel.panel.execute")})})]})}function le(n){return{id:q.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:d.MenuItemType.BUTTON,positions:[d.MenuPosition.TOOLBAR_START]}}var pe=Object.defineProperty,ae=Object.getOwnPropertyDescriptor,ue=(n,e,t,r)=>{for(var i=r>1?void 0:r?ae(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&&pe(e,t,i),i},P=(n,e)=>(t,r)=>e(t,r,n);let y=class extends c.Disposable{constructor(n,e,t,r){super(),this._injector=n,this.disposeWithMe(e.addMenuItem(this._injector.invoke(le))),this.disposeWithMe(r.register(T,ce)),this.disposeWithMe(t.registerCommand(q))}};y=ue([c.OnLifecycle(c.LifecycleStages.Steady,y),P(0,u.Inject(u.Injector)),P(1,d.IMenuService),P(2,c.ICommandService),P(3,u.Inject(d.ComponentManager))],y);var de=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,_e=(n,e,t,r)=>{for(var i=r>1?void 0:r?ve(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&&de(e,t,i),i},D=(n,e)=>(t,r)=>e(t,r,n);const fe="uniscript";var j;exports.UniverUniscriptPlugin=(j=class extends c.Plugin{constructor(e,t,r){super(fe),this._config=e,this._injector=t,this._localeService=r}onStarting(e){[[y],[b,{useFactory:()=>e.createInstance(b,this._config)}],[M],[x]].forEach(r=>e.add(r)),this._localeService.load({zhCN:R})}},f(j,"type",c.PluginType.Univer),j);exports.UniverUniscriptPlugin=_e([D(1,u.Inject(u.Injector)),D(2,u.Inject(c.LocaleService))],exports.UniverUniscriptPlugin);exports.enUS=Y;exports.zhCN=R;
package/lib/es/index.js CHANGED
@@ -1,17 +1,16 @@
1
1
  var z = Object.defineProperty;
2
2
  var V = (t, e, r) => e in t ? z(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
3
  var u = (t, e, r) => (V(t, typeof e != "symbol" ? e + "" : e, r), r);
4
- import { Disposable as P, CommandType as H, toDisposable as T, ILogService as G, LocaleService as M, DisposableCollection as J, UniverInstanceType as Y, OnLifecycle as K, LifecycleStages as Q, ICommandService as X, Plugin as Z, PluginType as k } from "@univerjs/core";
5
- import { Inject as f, Injector as I } from "@wendellhu/redi";
6
- import { ISidebarService as ee, IShortcutService as te, IMessageService as re, MenuItemType as ne, MenuPosition as ie, getMenuHiddenObservable as oe, ComponentManager as se, IMenuService as ce } from "@univerjs/ui";
7
- import { BehaviorSubject as le, distinctUntilChanged as pe } from "rxjs";
8
- import ae, { useRef as O, useEffect as ue, useCallback as de } from "react";
9
- import { MessageType as j, Button as ve } from "@univerjs/design";
4
+ import { Disposable as P, CommandType as G, toDisposable as M, ILogService as J, LocaleService as T, DisposableCollection as Y, OnLifecycle as H, LifecycleStages as K, ICommandService as Q, Plugin as X, PluginType as Z } from "@univerjs/core";
5
+ import { Inject as f, Injector as b } from "@wendellhu/redi";
6
+ import { ISidebarService as k, IShortcutService as ee, IMessageService as te, MenuItemType as re, MenuPosition as ne, ComponentManager as ie, IMenuService as oe } from "@univerjs/ui";
7
+ import { BehaviorSubject as se, distinctUntilChanged as ce } from "rxjs";
8
+ import le, { useRef as O, useEffect as pe, useCallback as ae } from "react";
9
+ import { MessageType as w, Button as ue } from "@univerjs/design";
10
10
  import { useDependency as d } from "@wendellhu/redi/react-bindings";
11
- import { editor as fe } from "monaco-editor";
12
- import { FUniver as _e } from "@univerjs/facade";
13
- import { getCurrentSheetDisabled$ as me } from "@univerjs/sheets";
14
- const he = {
11
+ import { editor as de } from "monaco-editor";
12
+ import { FUniver as ve } from "@univerjs/facade";
13
+ const fe = {
15
14
  "script-panel": {
16
15
  title: "Uniscript",
17
16
  tooltip: {
@@ -27,7 +26,7 @@ const he = {
27
26
  failed: "Execution Failed"
28
27
  }
29
28
  }
30
- }, Ze = he, ge = {
29
+ }, He = fe, _e = {
31
30
  "script-panel": {
32
31
  title: "Uniscript",
33
32
  tooltip: {
@@ -43,12 +42,12 @@ const he = {
43
42
  failed: "执行失败"
44
43
  }
45
44
  }
46
- }, Se = ge;
45
+ }, me = _e;
47
46
  class D extends P {
48
47
  constructor() {
49
48
  super(...arguments);
50
- u(this, "_open$", new le(!1));
51
- u(this, "open$", this._open$.pipe(pe()));
49
+ u(this, "_open$", new se(!1));
50
+ u(this, "open$", this._open$.pipe(ce()));
52
51
  }
53
52
  get isOpen() {
54
53
  return this._open$.getValue();
@@ -64,10 +63,10 @@ class D extends P {
64
63
  }
65
64
  }
66
65
  const N = "ScriptPanel", A = {
67
- type: H.OPERATION,
66
+ type: G.OPERATION,
68
67
  id: "univer.operation.toggle-script-panel",
69
68
  handler: (t) => {
70
- const e = t.get(D), r = t.get(ee);
69
+ const e = t.get(D), r = t.get(k);
71
70
  return e.isOpen ? (e.close(), r.close()) : (e.open(), r.open({
72
71
  header: { title: "script-panel.title" },
73
72
  children: { label: N },
@@ -85,30 +84,30 @@ var F = { exports: {} }, x = {};
85
84
  * This source code is licensed under the MIT license found in the
86
85
  * LICENSE file in the root directory of this source tree.
87
86
  */
88
- var Ee = ae, Pe = Symbol.for("react.element"), xe = Symbol.for("react.fragment"), Oe = Object.prototype.hasOwnProperty, ye = Ee.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, be = { key: !0, ref: !0, __self: !0, __source: !0 };
87
+ var he = le, ge = Symbol.for("react.element"), Se = Symbol.for("react.fragment"), Ee = Object.prototype.hasOwnProperty, Pe = he.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, xe = { key: !0, ref: !0, __self: !0, __source: !0 };
89
88
  function L(t, e, r) {
90
89
  var n, i = {}, o = null, s = null;
91
90
  r !== void 0 && (o = "" + r), e.key !== void 0 && (o = "" + e.key), e.ref !== void 0 && (s = e.ref);
92
91
  for (n in e)
93
- Oe.call(e, n) && !be.hasOwnProperty(n) && (i[n] = e[n]);
92
+ Ee.call(e, n) && !xe.hasOwnProperty(n) && (i[n] = e[n]);
94
93
  if (t && t.defaultProps)
95
94
  for (n in e = t.defaultProps, e)
96
95
  i[n] === void 0 && (i[n] = e[n]);
97
- return { $$typeof: Pe, type: t, key: o, ref: s, props: i, _owner: ye.current };
96
+ return { $$typeof: ge, type: t, key: o, ref: s, props: i, _owner: Pe.current };
98
97
  }
99
- x.Fragment = xe;
98
+ x.Fragment = Se;
100
99
  x.jsx = L;
101
100
  x.jsxs = L;
102
101
  F.exports = x;
103
102
  var v = F.exports;
104
- class b extends P {
103
+ class I extends P {
105
104
  constructor(r) {
106
105
  super();
107
106
  u(this, "_editorInstance", null);
108
107
  this._config = r;
109
108
  }
110
109
  setEditorInstance(r) {
111
- return this._editorInstance = r, T(() => this._editorInstance = null);
110
+ return this._editorInstance = r, M(() => this._editorInstance = null);
112
111
  }
113
112
  getEditorInstance() {
114
113
  return this._editorInstance;
@@ -119,18 +118,18 @@ class b extends P {
119
118
  });
120
119
  }
121
120
  }
122
- var Ie = Object.defineProperty, $e = Object.getOwnPropertyDescriptor, Ce = (t, e, r, n) => {
123
- for (var i = n > 1 ? void 0 : n ? $e(e, r) : e, o = t.length - 1, s; o >= 0; o--)
121
+ var Oe = Object.defineProperty, ye = Object.getOwnPropertyDescriptor, Ie = (t, e, r, n) => {
122
+ for (var i = n > 1 ? void 0 : n ? ye(e, r) : e, o = t.length - 1, s; o >= 0; o--)
124
123
  (s = t[o]) && (i = (n ? s(e, r, i) : s(i)) || i);
125
- return n && i && Ie(e, r, i), i;
126
- }, w = (t, e) => (r, n) => e(r, n, t);
124
+ return n && i && Oe(e, r, i), i;
125
+ }, $ = (t, e) => (r, n) => e(r, n, t);
127
126
  let E = class extends P {
128
127
  constructor(t, e) {
129
128
  super(), this._logService = t, this._injector = e;
130
129
  }
131
130
  async execute(t) {
132
131
  this._logService.log("[UniscriptExecutionService]", "executing Uniscript...");
133
- const e = _e.newAPI(this._injector), r = new Function("univerAPI", `(() => {${t}})()`);
132
+ const e = ve.newAPI(this._injector), r = new Function("univerAPI", `(() => {${t}})()`);
134
133
  try {
135
134
  return r(e), !0;
136
135
  } catch (n) {
@@ -138,23 +137,23 @@ let E = class extends P {
138
137
  }
139
138
  }
140
139
  };
141
- E = Ce([
142
- w(0, G),
143
- w(1, f(I))
140
+ E = Ie([
141
+ $(0, J),
142
+ $(1, f(b))
144
143
  ], E);
145
- const je = "univer-script-editor-panel", we = "univer-script-editor-content", Ue = "univer-script-editor-actions", h = {
146
- scriptEditorPanel: je,
147
- scriptEditorContent: we,
148
- scriptEditorActions: Ue
144
+ const be = "univer-script-editor-panel", je = "univer-script-editor-content", Ce = "univer-script-editor-actions", h = {
145
+ scriptEditorPanel: be,
146
+ scriptEditorContent: je,
147
+ scriptEditorActions: Ce
149
148
  };
150
- function Re() {
151
- const t = O(null), e = O(null), r = O(null), n = d(M), i = d(E), o = d(te), s = d(b), $ = d(re);
152
- ue(() => {
149
+ function we() {
150
+ const t = O(null), e = O(null), r = O(null), n = d(T), i = d(E), o = d(ee), s = d(I), j = d(te);
151
+ pe(() => {
153
152
  const a = e.current, c = t.current;
154
153
  let l = null, _ = null;
155
154
  if (a && c) {
156
155
  s.requireVscodeEditor();
157
- const m = r.current = fe.create(a, {
156
+ const m = r.current = de.create(a, {
158
157
  value: "",
159
158
  language: "javascript"
160
159
  });
@@ -167,7 +166,7 @@ function Re() {
167
166
  });
168
167
  }), _.observe(c);
169
168
  let p;
170
- l = new J(), l.add(s.setEditorInstance(m)), l.add(
169
+ l = new Y(), l.add(s.setEditorInstance(m)), l.add(
171
170
  m.onDidFocusEditorWidget(() => {
172
171
  p = o.forceEscape();
173
172
  })
@@ -175,91 +174,92 @@ function Re() {
175
174
  m.onDidBlurEditorWidget(() => {
176
175
  p == null || p.dispose(), p = void 0;
177
176
  })
178
- ), l.add(T(() => p == null ? void 0 : p.dispose()));
177
+ ), l.add(M(() => p == null ? void 0 : p.dispose()));
179
178
  }
180
179
  return () => {
181
180
  _ && c && _.unobserve(c), l == null || l.dispose();
182
181
  };
183
182
  }, []);
184
- const W = de(() => {
183
+ const W = ae(() => {
185
184
  var c;
186
185
  const a = (c = r.current) == null ? void 0 : c.getModel();
187
186
  a && i.execute(a.getValue()).then(() => {
188
- $.show({
187
+ j.show({
189
188
  content: n.t("uniscript.message.success"),
190
- type: j.Success
189
+ type: w.Success
191
190
  });
192
191
  }).catch(() => {
193
- $.show({
192
+ j.show({
194
193
  content: n.t("uniscript.message.failed"),
195
- type: j.Error
194
+ type: w.Error
196
195
  });
197
196
  });
198
197
  }, [i]);
199
198
  return /* @__PURE__ */ v.jsxs("div", { className: h.scriptEditorPanel, children: [
200
199
  /* @__PURE__ */ v.jsx("div", { className: h.scriptEditorContent, ref: t, children: /* @__PURE__ */ v.jsx("div", { className: h.scriptEditorContainer, ref: e }) }),
201
- /* @__PURE__ */ v.jsx("div", { className: h.scriptEditorActions, children: /* @__PURE__ */ v.jsx(ve, { type: "primary", size: "small", onClick: W, children: n.t("script-panel.panel.execute") }) })
200
+ /* @__PURE__ */ v.jsx("div", { className: h.scriptEditorActions, children: /* @__PURE__ */ v.jsx(ue, { type: "primary", size: "small", onClick: W, children: n.t("script-panel.panel.execute") }) })
202
201
  ] });
203
202
  }
204
- function Te(t) {
203
+ function $e(t) {
205
204
  return {
206
205
  id: A.id,
207
206
  title: "toggle-script-panel",
208
207
  tooltip: "script-panel.tooltip.menu-button",
209
208
  icon: "CodeSingle",
210
- type: ne.BUTTON,
211
- positions: [ie.TOOLBAR_START],
212
- hidden$: oe(t, Y.SHEET),
213
- disabled$: me(t)
209
+ type: re.BUTTON,
210
+ positions: [ne.TOOLBAR_START]
211
+ // FIXME hidden$ and disabled$ are not correctly in doc
212
+ // hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.SHEET),
213
+ // disabled$: getCurrentSheetDisabled$(accessor),
214
214
  };
215
215
  }
216
- var Me = Object.defineProperty, De = Object.getOwnPropertyDescriptor, Ne = (t, e, r, n) => {
217
- for (var i = n > 1 ? void 0 : n ? De(e, r) : e, o = t.length - 1, s; o >= 0; o--)
216
+ var Ue = Object.defineProperty, Re = Object.getOwnPropertyDescriptor, Me = (t, e, r, n) => {
217
+ for (var i = n > 1 ? void 0 : n ? Re(e, r) : e, o = t.length - 1, s; o >= 0; o--)
218
218
  (s = t[o]) && (i = (n ? s(e, r, i) : s(i)) || i);
219
- return n && i && Me(e, r, i), i;
219
+ return n && i && Ue(e, r, i), i;
220
220
  }, g = (t, e) => (r, n) => e(r, n, t);
221
221
  let S = class extends P {
222
222
  constructor(t, e, r, n) {
223
- super(), this._injector = t, this.disposeWithMe(e.addMenuItem(this._injector.invoke(Te))), this.disposeWithMe(n.register(N, Re)), this.disposeWithMe(r.registerCommand(A));
223
+ super(), this._injector = t, this.disposeWithMe(e.addMenuItem(this._injector.invoke($e))), this.disposeWithMe(n.register(N, we)), this.disposeWithMe(r.registerCommand(A));
224
224
  }
225
225
  };
226
- S = Ne([
227
- K(Q.Steady, S),
228
- g(0, f(I)),
229
- g(1, ce),
230
- g(2, X),
231
- g(3, f(se))
226
+ S = Me([
227
+ H(K.Steady, S),
228
+ g(0, f(b)),
229
+ g(1, oe),
230
+ g(2, Q),
231
+ g(3, f(ie))
232
232
  ], S);
233
- var Ae = Object.defineProperty, Fe = Object.getOwnPropertyDescriptor, Le = (t, e, r, n) => {
234
- for (var i = n > 1 ? void 0 : n ? Fe(e, r) : e, o = t.length - 1, s; o >= 0; o--)
233
+ var Te = Object.defineProperty, De = Object.getOwnPropertyDescriptor, Ne = (t, e, r, n) => {
234
+ for (var i = n > 1 ? void 0 : n ? De(e, r) : e, o = t.length - 1, s; o >= 0; o--)
235
235
  (s = t[o]) && (i = (n ? s(e, r, i) : s(i)) || i);
236
- return n && i && Ae(e, r, i), i;
236
+ return n && i && Te(e, r, i), i;
237
237
  }, U = (t, e) => (r, n) => e(r, n, t);
238
- const We = "uniscript";
238
+ const Ae = "uniscript";
239
239
  var y;
240
- let R = (y = class extends Z {
240
+ let R = (y = class extends X {
241
241
  constructor(t, e, r) {
242
- super(We), this._config = t, this._injector = e, this._localeService = r;
242
+ super(Ae), this._config = t, this._injector = e, this._localeService = r;
243
243
  }
244
244
  onStarting(t) {
245
245
  [
246
246
  // controllers
247
247
  [S],
248
248
  // services
249
- [b, { useFactory: () => t.createInstance(b, this._config) }],
249
+ [I, { useFactory: () => t.createInstance(I, this._config) }],
250
250
  [D],
251
251
  [E]
252
252
  ].forEach((r) => t.add(r)), this._localeService.load({
253
- zhCN: Se
253
+ zhCN: me
254
254
  });
255
255
  }
256
- }, u(y, "type", k.Univer), y);
257
- R = Le([
258
- U(1, f(I)),
259
- U(2, f(M))
256
+ }, u(y, "type", Z.Univer), y);
257
+ R = Ne([
258
+ U(1, f(b)),
259
+ U(2, f(T))
260
260
  ], R);
261
261
  export {
262
262
  R as UniverUniscriptPlugin,
263
- Ze as enUS,
264
- Se as zhCN
263
+ He as enUS,
264
+ me as zhCN
265
265
  };
package/lib/umd/index.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(o,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"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/ui","rxjs","react","@univerjs/design","@wendellhu/redi/react-bindings","monaco-editor","@univerjs/facade","@univerjs/sheets"],s):(o=typeof globalThis<"u"?globalThis:o||self,s(o.UniverUniscript={},o.UniverCore,o["@wendellhu/redi"],o.UniverUi,o.rxjs,o.React,o.UniverDesign,o["@wendellhu/redi/react-bindings"],o.monaco,o.UniverFacade,o.UniverSheets))})(this,function(o,s,p,a,w,f,O,h,q,W,z){"use strict";var ue=Object.defineProperty;var de=(o,s,p)=>s in o?ue(o,s,{enumerable:!0,configurable:!0,writable:!0,value:p}):o[s]=p;var m=(o,s,p)=>(de(o,typeof s!="symbol"?s+"":s,p),p);var b;const V={"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:"执行失败"}}};class D extends s.Disposable{constructor(){super(...arguments);m(this,"_open$",new w.BehaviorSubject(!1));m(this,"open$",this._open$.pipe(w.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const T="ScriptPanel",R={type:s.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:n=>{const e=n.get(D),i=n.get(a.ISidebarService);return e.isOpen?(e.close(),i.close()):(e.open(),i.open({header:{title:"script-panel.title"},children:{label:T},width:600})),!0}};var M={exports:{}},g={};/**
1
+ (function(o,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):(o=typeof globalThis<"u"?globalThis:o||self,s(o.UniverUniscript={},o.UniverCore,o["@wendellhu/redi"],o.UniverUi,o.rxjs,o.React,o.UniverDesign,o["@wendellhu/redi/react-bindings"],o.monaco,o.UniverFacade))})(this,function(o,s,p,v,C,f,I,_,q,W){"use strict";var ae=Object.defineProperty;var ue=(o,s,p)=>s in o?ae(o,s,{enumerable:!0,configurable:!0,writable:!0,value:p}):o[s]=p;var S=(o,s,p)=>(ue(o,typeof s!="symbol"?s+"":s,p),p);var w;const z={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"Toggle Uniscript Panel"},panel:{execute:"Execute Script"}},uniscript:{message:{success:"Execution Success",failed:"Execution Failed"}}},b={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}};class D extends s.Disposable{constructor(){super(...arguments);S(this,"_open$",new C.BehaviorSubject(!1));S(this,"open$",this._open$.pipe(C.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const R="ScriptPanel",T={type:s.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:i=>{const e=i.get(D),n=i.get(v.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:{}},g={};/**
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 B=f,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 $(n,e,i){var t,r={},c=null,l=null;i!==void 0&&(c=""+i),e.key!==void 0&&(c=""+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(n&&n.defaultProps)for(t in e=n.defaultProps,e)r[t]===void 0&&(r[t]=e[t]);return{$$typeof:H,type:n,key:c,ref:l,props:r,_owner:Y.current}}g.Fragment=G,g.jsx=$,g.jsxs=$,M.exports=g;var _=M.exports;class x extends s.Disposable{constructor(i){super();m(this,"_editorInstance",null);this._config=i}setEditorInstance(i){return this._editorInstance=i,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=(n,e,i,t)=>{for(var r=t>1?void 0:t?X(e,i):e,c=n.length-1,l;c>=0;c--)(l=n[c])&&(r=(t?l(e,i,r):l(r))||r);return t&&r&&Q(e,i,r),r},N=(n,e)=>(i,t)=>e(i,t,n);let E=class extends s.Disposable{constructor(n,e){super(),this._logService=n,this._injector=e}async execute(n){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=W.FUniver.newAPI(this._injector),i=new Function("univerAPI",`(() => {${n}})()`);try{return i(e),!0}catch(t){return this._logService.error(t),!1}}};E=Z([N(0,s.ILogService),N(1,p.Inject(p.Injector))],E);const j={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function k(){const n=f.useRef(null),e=f.useRef(null),i=f.useRef(null),t=h.useDependency(s.LocaleService),r=h.useDependency(E),c=h.useDependency(a.IShortcutService),l=h.useDependency(x),F=h.useDependency(a.IMessageService);f.useEffect(()=>{const S=e.current,u=n.current;let d=null,U=null;if(S&&u){l.requireVscodeEditor();const I=i.current=q.editor.create(S,{value:"",language:"javascript"});U=new ResizeObserver(()=>{let L=requestIdleCallback(()=>{if(!L)return;const{height:pe,width:ae}=u.getBoundingClientRect();I.layout({width:ae,height:pe}),L=void 0})}),U.observe(u);let v;d=new s.DisposableCollection,d.add(l.setEditorInstance(I)),d.add(I.onDidFocusEditorWidget(()=>{v=c.forceEscape()})),d.add(I.onDidBlurEditorWidget(()=>{v==null||v.dispose(),v=void 0})),d.add(s.toDisposable(()=>v==null?void 0:v.dispose()))}return()=>{U&&u&&U.unobserve(u),d==null||d.dispose()}},[]);const le=f.useCallback(()=>{var u;const S=(u=i.current)==null?void 0:u.getModel();S&&r.execute(S.getValue()).then(()=>{F.show({content:t.t("uniscript.message.success"),type:O.MessageType.Success})}).catch(()=>{F.show({content:t.t("uniscript.message.failed"),type:O.MessageType.Error})})},[r]);return _.jsxs("div",{className:j.scriptEditorPanel,children:[_.jsx("div",{className:j.scriptEditorContent,ref:n,children:_.jsx("div",{className:j.scriptEditorContainer,ref:e})}),_.jsx("div",{className:j.scriptEditorActions,children:_.jsx(O.Button,{type:"primary",size:"small",onClick:le,children:t.t("script-panel.panel.execute")})})]})}function ee(n){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(n,s.UniverInstanceType.SHEET),disabled$:z.getCurrentSheetDisabled$(n)}}var te=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,ie=(n,e,i,t)=>{for(var r=t>1?void 0:t?ne(e,i):e,c=n.length-1,l;c>=0;c--)(l=n[c])&&(r=(t?l(e,i,r):l(r))||r);return t&&r&&te(e,i,r),r},y=(n,e)=>(i,t)=>e(i,t,n);let P=class extends s.Disposable{constructor(n,e,i,t){super(),this._injector=n,this.disposeWithMe(e.addMenuItem(this._injector.invoke(ee))),this.disposeWithMe(t.register(T,k)),this.disposeWithMe(i.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,oe=(n,e,i,t)=>{for(var r=t>1?void 0:t?se(e,i):e,c=n.length-1,l;c>=0;c--)(l=n[c])&&(r=(t?l(e,i,r):l(r))||r);return t&&r&&re(e,i,r),r},A=(n,e)=>(i,t)=>e(i,t,n);const ce="uniscript";o.UniverUniscriptPlugin=(b=class extends s.Plugin{constructor(e,i,t){super(ce),this._config=e,this._injector=i,this._localeService=t}onStarting(e){[[P],[x,{useFactory:()=>e.createInstance(x,this._config)}],[D],[E]].forEach(t=>e.add(t)),this._localeService.load({zhCN:C})}},m(b,"type",s.PluginType.Univer),b),o.UniverUniscriptPlugin=oe([A(1,p.Inject(p.Injector)),A(2,p.Inject(s.LocaleService))],o.UniverUniscriptPlugin),o.enUS=V,o.zhCN=C,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
9
+ */var V=f,B=Symbol.for("react.element"),G=Symbol.for("react.fragment"),J=Object.prototype.hasOwnProperty,Y=V.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,H={key:!0,ref:!0,__self:!0,__source:!0};function N(i,e,n){var t,r={},c=null,l=null;n!==void 0&&(c=""+n),e.key!==void 0&&(c=""+e.key),e.ref!==void 0&&(l=e.ref);for(t in e)J.call(e,t)&&!H.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:c,ref:l,props:r,_owner:Y.current}}g.Fragment=G,g.jsx=N,g.jsxs=N,M.exports=g;var h=M.exports;class O 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,c=i.length-1,l;c>=0;c--)(l=i[c])&&(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 E=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}}};E=X([$(0,s.ILogService),$(1,p.Inject(p.Injector))],E);const j={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function Z(){const i=f.useRef(null),e=f.useRef(null),n=f.useRef(null),t=_.useDependency(s.LocaleService),r=_.useDependency(E),c=_.useDependency(v.IShortcutService),l=_.useDependency(O),F=_.useDependency(v.IMessageService);f.useEffect(()=>{const m=e.current,a=i.current;let u=null,U=null;if(m&&a){l.requireVscodeEditor();const x=n.current=q.editor.create(m,{value:"",language:"javascript"});U=new ResizeObserver(()=>{let L=requestIdleCallback(()=>{if(!L)return;const{height:le,width:pe}=a.getBoundingClientRect();x.layout({width:pe,height:le}),L=void 0})}),U.observe(a);let d;u=new s.DisposableCollection,u.add(l.setEditorInstance(x)),u.add(x.onDidFocusEditorWidget(()=>{d=c.forceEscape()})),u.add(x.onDidBlurEditorWidget(()=>{d==null||d.dispose(),d=void 0})),u.add(s.toDisposable(()=>d==null?void 0:d.dispose()))}return()=>{U&&a&&U.unobserve(a),u==null||u.dispose()}},[]);const ce=f.useCallback(()=>{var a;const m=(a=n.current)==null?void 0:a.getModel();m&&r.execute(m.getValue()).then(()=>{F.show({content:t.t("uniscript.message.success"),type:I.MessageType.Success})}).catch(()=>{F.show({content:t.t("uniscript.message.failed"),type:I.MessageType.Error})})},[r]);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(I.Button,{type:"primary",size:"small",onClick:ce,children:t.t("script-panel.panel.execute")})})]})}function k(i){return{id:T.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:v.MenuItemType.BUTTON,positions:[v.MenuPosition.TOOLBAR_START]}}var ee=Object.defineProperty,te=Object.getOwnPropertyDescriptor,ne=(i,e,n,t)=>{for(var r=t>1?void 0:t?te(e,n):e,c=i.length-1,l;c>=0;c--)(l=i[c])&&(r=(t?l(e,n,r):l(r))||r);return t&&r&&ee(e,n,r),r},P=(i,e)=>(n,t)=>e(n,t,i);let y=class extends s.Disposable{constructor(i,e,n,t){super(),this._injector=i,this.disposeWithMe(e.addMenuItem(this._injector.invoke(k))),this.disposeWithMe(t.register(R,Z)),this.disposeWithMe(n.registerCommand(T))}};y=ne([s.OnLifecycle(s.LifecycleStages.Steady,y),P(0,p.Inject(p.Injector)),P(1,v.IMenuService),P(2,s.ICommandService),P(3,p.Inject(v.ComponentManager))],y);var ie=Object.defineProperty,re=Object.getOwnPropertyDescriptor,se=(i,e,n,t)=>{for(var r=t>1?void 0:t?re(e,n):e,c=i.length-1,l;c>=0;c--)(l=i[c])&&(r=(t?l(e,n,r):l(r))||r);return t&&r&&ie(e,n,r),r},A=(i,e)=>(n,t)=>e(n,t,i);const oe="uniscript";o.UniverUniscriptPlugin=(w=class extends s.Plugin{constructor(e,n,t){super(oe),this._config=e,this._injector=n,this._localeService=t}onStarting(e){[[y],[O,{useFactory:()=>e.createInstance(O,this._config)}],[D],[E]].forEach(t=>e.add(t)),this._localeService.load({zhCN:b})}},S(w,"type",s.PluginType.Univer),w),o.UniverUniscriptPlugin=se([A(1,p.Inject(p.Injector)),A(2,p.Inject(s.LocaleService))],o.UniverUniscriptPlugin),o.enUS=z,o.zhCN=b,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/uniscript",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "private": false,
5
5
  "description": "UI component library for building exceptional Univer.",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -51,31 +51,30 @@
51
51
  "npm": ">=8.0.0"
52
52
  },
53
53
  "peerDependencies": {
54
- "@wendellhu/redi": "^0.13.0",
54
+ "@wendellhu/redi": "0.13.0",
55
55
  "monaco-editor": ">=0.44.0",
56
56
  "react": ">=16.9.0",
57
57
  "rxjs": ">=7.0.0",
58
- "@univerjs/core": "0.1.1",
59
- "@univerjs/design": "0.1.1",
60
- "@univerjs/facade": "0.1.1",
61
- "@univerjs/ui": "0.1.1",
62
- "@univerjs/sheets": "0.1.1"
58
+ "@univerjs/core": "0.1.3",
59
+ "@univerjs/facade": "0.1.3",
60
+ "@univerjs/design": "0.1.3",
61
+ "@univerjs/ui": "0.1.3"
63
62
  },
64
63
  "devDependencies": {
65
- "@types/react": "^18.2.57",
64
+ "@types/react": "^18.2.66",
66
65
  "@wendellhu/redi": "^0.13.0",
67
66
  "less": "^4.2.0",
68
- "monaco-editor": "0.46.0",
67
+ "monaco-editor": "0.47.0",
69
68
  "rxjs": "^7.8.1",
70
- "typescript": "^5.3.3",
71
- "vite": "^5.1.4",
69
+ "typescript": "^5.4.2",
70
+ "vite": "^5.1.6",
72
71
  "vitest": "^1.3.1",
73
- "@univerjs/core": "0.1.1",
74
- "@univerjs/design": "0.1.1",
75
- "@univerjs/facade": "0.1.1",
76
- "@univerjs/sheets": "0.1.1",
77
- "@univerjs/shared": "0.1.1",
78
- "@univerjs/ui": "0.1.1"
72
+ "@univerjs/core": "0.1.3",
73
+ "@univerjs/design": "0.1.3",
74
+ "@univerjs/facade": "0.1.3",
75
+ "@univerjs/shared": "0.1.3",
76
+ "@univerjs/sheets": "0.1.3",
77
+ "@univerjs/ui": "0.1.3"
79
78
  },
80
79
  "scripts": {
81
80
  "test": "vitest run",