@univerjs/uniscript 0.2.4-alpha.0 → 0.2.4

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 L=Object.defineProperty;var A=(r,e,t)=>e in r?L(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var v=(r,e,t)=>A(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),p=require("@univerjs/ui"),w=require("rxjs"),u=require("react"),b=require("@univerjs/design"),F=require("monaco-editor"),B=require("@univerjs/facade"),V=require("@univerjs/sheets-ui"),_=require("@univerjs/sheets");class T extends s.Disposable{constructor(){super(...arguments);v(this,"_open$",new w.BehaviorSubject(!1));v(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",O={type:s.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:r=>{const e=r.get(T),t=r.get(p.ISidebarService);return e.isOpen?(e.close(),t.close()):(e.open(),t.open({header:{title:"script-panel.title"},children:{label:R},width:600})),!0}};var M={exports:{}},y={};/**
1
+ "use strict";var F=Object.defineProperty;var B=(r,e,t)=>e in r?F(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var f=(r,e,t)=>B(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=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"),V=require("monaco-editor"),k=require("@univerjs/facade"),z=require("@univerjs/sheets-ui"),h=require("@univerjs/sheets");class M extends o.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 q="ScriptPanel",C={type:o.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:r=>{const e=r.get(M),t=r.get(u.ISidebarService);return e.isOpen?(e.close(),t.close()):(e.open(),t.open({header:{title:"script-panel.title"},children:{label:q},width:600})),!0}};var N={exports:{}},b={};/**
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=u,z=Symbol.for("react.element"),H=Symbol.for("react.fragment"),G=Object.prototype.hasOwnProperty,J=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Y={key:!0,ref:!0,__self:!0,__source:!0};function q(r,e,t){var n,i={},o=null,c=null;t!==void 0&&(o=""+t),e.key!==void 0&&(o=""+e.key),e.ref!==void 0&&(c=e.ref);for(n in e)G.call(e,n)&&!Y.hasOwnProperty(n)&&(i[n]=e[n]);if(r&&r.defaultProps)for(n in e=r.defaultProps,e)i[n]===void 0&&(i[n]=e[n]);return{$$typeof:z,type:r,key:o,ref:c,props:i,_owner:J.current}}y.Fragment=H;y.jsx=q;y.jsxs=q;M.exports=y;var f=M.exports;class P extends s.Disposable{constructor(t){super();v(this,"_editorInstance",null);this._config=t}setEditorInstance(t){return this._editorInstance=t,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=(r,e,t,n)=>{for(var i=n>1?void 0:n?Q(e,t):e,o=r.length-1,c;o>=0;o--)(c=r[o])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&K(e,t,i),i},D=(r,e)=>(t,n)=>e(t,n,r);const j=s.createIdentifier("univer.uniscript.execution-service");let x=class extends s.Disposable{constructor(r,e){super(),this._logService=r,this._injector=e}async execute(r){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=B.FUniver.newAPI(this._injector),t=new Function("univerAPI",`(() => {${r}})()`);try{return t(e),!0}catch(n){return this._logService.error(n),!1}}};x=X([D(0,s.ILogService),D(1,s.Inject(s.Injector))],x);const Z="univer-script-editor-panel",ee="univer-script-editor-content",te="univer-script-editor-actions",E={scriptEditorPanel:Z,scriptEditorContent:ee,scriptEditorActions:te};function re(){const r=u.useRef(null),e=u.useRef(null),t=u.useRef(null),n=s.useDependency(s.LocaleService),i=s.useDependency(p.IShortcutService),o=s.useDependency(P);u.useEffect(()=>{const C=e.current,d=r.current;let l=null,g=null;if(C&&d){o.requireVscodeEditor();const S=t.current=F.editor.create(C,{value:"",language:"javascript"});g=new ResizeObserver(()=>{let U=requestIdleCallback(()=>{if(!U)return;const{height:N,width:W}=d.getBoundingClientRect();S.layout({width:W,height:N}),U=void 0})}),g.observe(d);let a;l=new s.DisposableCollection,l.add(o.setEditorInstance(S)),l.add(S.onDidFocusEditorWidget(()=>{a=i.forceEscape()})),l.add(S.onDidBlurEditorWidget(()=>{a==null||a.dispose(),a=void 0})),l.add(s.toDisposable(()=>a==null?void 0:a.dispose()))}return()=>{g&&d&&g.unobserve(d),l==null||l.dispose()}},[o,i]);const c=ne(t);return f.jsxs("div",{className:E.scriptEditorPanel,children:[f.jsx("div",{className:E.scriptEditorContent,ref:r,children:f.jsx("div",{className:E.scriptEditorContainer,ref:e})}),f.jsx("div",{className:E.scriptEditorActions,children:f.jsx(b.Button,{type:"primary",size:"small",onClick:c,children:n.t("script-panel.panel.execute")})})]})}function ne(r){const e=s.useDependency(j),t=s.useDependency(p.IMessageService),n=s.useDependency(s.LocaleService);return u.useCallback(()=>{var o;const i=(o=r.current)==null?void 0:o.getModel();i&&e.execute(i.getValue()).then(()=>{t.show({content:n.t("uniscript.message.success"),type:b.MessageType.Success})}).catch(()=>{t.show({content:n.t("uniscript.message.failed"),type:b.MessageType.Error})})},[n,t,r,e])}function ie(r){return{id:O.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:p.MenuItemType.BUTTON,positions:[p.MenuPosition.TOOLBAR_START],hidden$:p.getMenuHiddenObservable(r,s.UniverInstanceType.UNIVER_SHEET),disabled$:V.getCurrentRangeDisable$(r,{workbookTypes:[_.WorkbookEditablePermission],worksheetTypes:[_.WorksheetEditPermission,_.WorksheetSetCellStylePermission,_.WorksheetSetCellValuePermission],rangeTypes:[_.RangeProtectionPermissionEditPoint]})}}var se=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,ce=(r,e,t,n)=>{for(var i=n>1?void 0:n?oe(e,t):e,o=r.length-1,c;o>=0;o--)(c=r[o])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&se(e,t,i),i},m=(r,e)=>(t,n)=>e(t,n,r);const le={};let h=class extends s.Disposable{constructor(r,e,t,n,i){super(),this._config=r,this._injector=e,this._menuService=t;const{menu:o={}}=this._config;this.disposeWithMe(t.addMenuItem(this._injector.invoke(ie),o)),this.disposeWithMe(i.register(R,re)),this.disposeWithMe(n.registerCommand(O))}};h=ce([s.OnLifecycle(s.LifecycleStages.Steady,h),m(1,s.Inject(s.Injector)),m(2,p.IMenuService),m(3,s.ICommandService),m(4,s.Inject(p.ComponentManager))],h);var ae=Object.defineProperty,pe=Object.getOwnPropertyDescriptor,ue=(r,e,t,n)=>{for(var i=n>1?void 0:n?pe(e,t):e,o=r.length-1,c;o>=0;o--)(c=r[o])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&ae(e,t,i),i},$=(r,e)=>(t,n)=>e(t,n,r);const de="uniscript";var I;exports.UniverUniscriptPlugin=(I=class extends s.Plugin{constructor(e={},t,n){super(),this._config=e,this._injector=t,this._localeService=n,this._config=s.Tools.deepMerge({},le,this._config)}onStarting(e){[[h,{useFactory:()=>e.createInstance(h,this._config)}],[P,{useFactory:()=>e.createInstance(P,this._config)}],[T]].forEach(n=>e.add(n)),this.registerExecution()}registerExecution(){this._injector.add([j,{useClass:x}])}},v(I,"pluginName",de),I);exports.UniverUniscriptPlugin=ue([$(1,s.Inject(s.Injector)),$(2,s.Inject(s.LocaleService))],exports.UniverUniscriptPlugin);exports.IUniscriptExecutionService=j;exports.ScriptEditorService=P;exports.ToggleScriptPanelOperation=O;
9
+ */var H=d,G=Symbol.for("react.element"),J=Symbol.for("react.fragment"),Y=Object.prototype.hasOwnProperty,K=H.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Q={key:!0,ref:!0,__self:!0,__source:!0};function W(r,e,t){var n,i={},s=null,c=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(c=e.ref);for(n in e)Y.call(e,n)&&!Q.hasOwnProperty(n)&&(i[n]=e[n]);if(r&&r.defaultProps)for(n in e=r.defaultProps,e)i[n]===void 0&&(i[n]=e[n]);return{$$typeof:G,type:r,key:s,ref:c,props:i,_owner:K.current}}b.Fragment=J;b.jsx=W;b.jsxs=W;N.exports=b;var g=N.exports;class I extends o.Disposable{constructor(t){super();f(this,"_editorInstance",null);this._config=t}setEditorInstance(t){return this._editorInstance=t,o.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var X=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,ee=(r,e,t,n)=>{for(var i=n>1?void 0:n?Z(e,t):e,s=r.length-1,c;s>=0;s--)(c=r[s])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&X(e,t,i),i},T=(r,e)=>(t,n)=>e(t,n,r);const U=l.createIdentifier("univer.uniscript.execution-service");let j=class extends o.Disposable{constructor(r,e){super(),this._logService=r,this._injector=e}async execute(r){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=k.FUniver.newAPI(this._injector),t=new Function("univerAPI",`(() => {${r}})()`);try{return t(e),!0}catch(n){return this._logService.error(n),!1}}};j=ee([T(0,o.ILogService),T(1,l.Inject(l.Injector))],j);const te="univer-script-editor-panel",re="univer-script-editor-content",ne="univer-script-editor-actions",P={scriptEditorPanel:te,scriptEditorContent:re,scriptEditorActions:ne};function ie(){const r=d.useRef(null),e=d.useRef(null),t=d.useRef(null),n=v.useDependency(o.LocaleService),i=v.useDependency(u.IShortcutService),s=v.useDependency(I);d.useEffect(()=>{const w=e.current,_=r.current;let a=null,E=null;if(w&&_){s.requireVscodeEditor();const m=t.current=V.editor.create(w,{value:"",language:"javascript"});E=new ResizeObserver(()=>{let D=requestIdleCallback(()=>{if(!D)return;const{height:L,width:A}=_.getBoundingClientRect();m.layout({width:A,height:L}),D=void 0})}),E.observe(_);let p;a=new o.DisposableCollection,a.add(s.setEditorInstance(m)),a.add(m.onDidFocusEditorWidget(()=>{p=i.forceEscape()})),a.add(m.onDidBlurEditorWidget(()=>{p==null||p.dispose(),p=void 0})),a.add(o.toDisposable(()=>p==null?void 0:p.dispose()))}return()=>{E&&_&&E.unobserve(_),a==null||a.dispose()}},[s,i]);const c=se(t);return g.jsxs("div",{className:P.scriptEditorPanel,children:[g.jsx("div",{className:P.scriptEditorContent,ref:r,children:g.jsx("div",{className:P.scriptEditorContainer,ref:e})}),g.jsx("div",{className:P.scriptEditorActions,children:g.jsx(O.Button,{type:"primary",size:"small",onClick:c,children:n.t("script-panel.panel.execute")})})]})}function se(r){const e=v.useDependency(U),t=v.useDependency(u.IMessageService),n=v.useDependency(o.LocaleService);return d.useCallback(()=>{var s;const i=(s=r.current)==null?void 0:s.getModel();i&&e.execute(i.getValue()).then(()=>{t.show({content:n.t("uniscript.message.success"),type:O.MessageType.Success})}).catch(()=>{t.show({content:n.t("uniscript.message.failed"),type:O.MessageType.Error})})},[n,t,r,e])}function oe(r){return{id:C.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(r,o.UniverInstanceType.UNIVER_SHEET),disabled$:z.getCurrentRangeDisable$(r,{workbookTypes:[h.WorkbookEditablePermission],worksheetTypes:[h.WorksheetEditPermission,h.WorksheetSetCellStylePermission,h.WorksheetSetCellValuePermission],rangeTypes:[h.RangeProtectionPermissionEditPoint]})}}var ce=Object.defineProperty,le=Object.getOwnPropertyDescriptor,ae=(r,e,t,n)=>{for(var i=n>1?void 0:n?le(e,t):e,s=r.length-1,c;s>=0;s--)(c=r[s])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&ce(e,t,i),i},y=(r,e)=>(t,n)=>e(t,n,r);const pe={};let S=class extends o.Disposable{constructor(r,e,t,n,i){super(),this._config=r,this._injector=e,this._menuService=t;const{menu:s={}}=this._config;this.disposeWithMe(t.addMenuItem(this._injector.invoke(oe),s)),this.disposeWithMe(i.register(q,ie)),this.disposeWithMe(n.registerCommand(C))}};S=ae([o.OnLifecycle(o.LifecycleStages.Steady,S),y(1,l.Inject(l.Injector)),y(2,u.IMenuService),y(3,o.ICommandService),y(4,l.Inject(u.ComponentManager))],S);var ue=Object.defineProperty,de=Object.getOwnPropertyDescriptor,ve=(r,e,t,n)=>{for(var i=n>1?void 0:n?de(e,t):e,s=r.length-1,c;s>=0;s--)(c=r[s])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&ue(e,t,i),i},R=(r,e)=>(t,n)=>e(t,n,r);const _e="uniscript";var x;exports.UniverUniscriptPlugin=(x=class extends o.Plugin{constructor(e={},t,n){super(),this._config=e,this._injector=t,this._localeService=n,this._config=o.Tools.deepMerge({},pe,this._config)}onStarting(e){[[S,{useFactory:()=>e.createInstance(S,this._config)}],[I,{useFactory:()=>e.createInstance(I,this._config)}],[M]].forEach(n=>e.add(n)),this.registerExecution()}registerExecution(){this._injector.add([U,{useClass:j}])}},f(x,"pluginName",_e),x);exports.UniverUniscriptPlugin=ve([R(1,l.Inject(l.Injector)),R(2,l.Inject(o.LocaleService))],exports.UniverUniscriptPlugin);exports.IUniscriptExecutionService=U;exports.ScriptEditorService=I;exports.ToggleScriptPanelOperation=C;
package/lib/es/index.js CHANGED
@@ -1,15 +1,17 @@
1
1
  var V = Object.defineProperty;
2
2
  var q = (t, e, r) => e in t ? V(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
3
  var u = (t, e, r) => q(t, typeof e != "symbol" ? e + "" : e, r);
4
- import { Disposable as S, CommandType as k, toDisposable as U, createIdentifier as z, Inject as f, Injector as I, ILogService as H, useDependency as p, LocaleService as b, DisposableCollection as G, UniverInstanceType as J, OnLifecycle as Y, LifecycleStages as K, ICommandService as Q, Plugin as X, Tools as Z } from "@univerjs/core";
4
+ import { Disposable as S, CommandType as k, toDisposable as U, ILogService as z, LocaleService as I, DisposableCollection as H, UniverInstanceType as G, OnLifecycle as J, LifecycleStages as Y, ICommandService as K, Plugin as Q, Tools as X } from "@univerjs/core";
5
+ import { createIdentifier as Z, Inject as f, Injector as b } from "@wendellhu/redi";
5
6
  import { ISidebarService as ee, IShortcutService as te, IMessageService as re, MenuItemType as ie, MenuPosition as ne, getMenuHiddenObservable as oe, ComponentManager as se, IMenuService as ce } from "@univerjs/ui";
6
7
  import { BehaviorSubject as le, distinctUntilChanged as pe } from "rxjs";
7
8
  import ae, { useRef as P, useEffect as ue, useCallback as de } from "react";
8
9
  import { Button as ve, MessageType as j } from "@univerjs/design";
10
+ import { useDependency as p } from "@wendellhu/redi/react-bindings";
9
11
  import { editor as fe } from "monaco-editor";
10
12
  import { FUniver as _e } from "@univerjs/facade";
11
- import { getCurrentRangeDisable$ as he } from "@univerjs/sheets-ui";
12
- import { WorkbookEditablePermission as me, WorksheetEditPermission as ge, WorksheetSetCellStylePermission as Se, WorksheetSetCellValuePermission as Ee, RangeProtectionPermissionEditPoint as Pe } from "@univerjs/sheets";
13
+ import { getCurrentRangeDisable$ as me } from "@univerjs/sheets-ui";
14
+ import { WorkbookEditablePermission as he, WorksheetEditPermission as ge, WorksheetSetCellStylePermission as Se, WorksheetSetCellValuePermission as Ee, RangeProtectionPermissionEditPoint as Pe } from "@univerjs/sheets";
13
15
  class M extends S {
14
16
  constructor() {
15
17
  super(...arguments);
@@ -87,7 +89,7 @@ var we = Object.defineProperty, je = Object.getOwnPropertyDescriptor, $e = (t, e
87
89
  (s = t[o]) && (n = (i ? s(e, r, n) : s(n)) || n);
88
90
  return i && n && we(e, r, n), n;
89
91
  }, $ = (t, e) => (r, i) => e(r, i, t);
90
- const F = z("univer.uniscript.execution-service");
92
+ const F = Z("univer.uniscript.execution-service");
91
93
  let O = class extends S {
92
94
  constructor(t, e) {
93
95
  super(), this._logService = t, this._injector = e;
@@ -103,22 +105,22 @@ let O = class extends S {
103
105
  }
104
106
  };
105
107
  O = $e([
106
- $(0, H),
107
- $(1, f(I))
108
+ $(0, z),
109
+ $(1, f(b))
108
110
  ], O);
109
- const Re = "univer-script-editor-panel", Te = "univer-script-editor-content", Ue = "univer-script-editor-actions", m = {
111
+ const Re = "univer-script-editor-panel", Te = "univer-script-editor-content", Ue = "univer-script-editor-actions", h = {
110
112
  scriptEditorPanel: Re,
111
113
  scriptEditorContent: Te,
112
114
  scriptEditorActions: Ue
113
115
  };
114
116
  function Me() {
115
- const t = P(null), e = P(null), r = P(null), i = p(b), n = p(te), o = p(x);
117
+ const t = P(null), e = P(null), r = P(null), i = p(I), n = p(te), o = p(x);
116
118
  ue(() => {
117
119
  const C = e.current, a = t.current;
118
120
  let c = null, _ = null;
119
121
  if (C && a) {
120
122
  o.requireVscodeEditor();
121
- const h = r.current = fe.create(C, {
123
+ const m = r.current = fe.create(C, {
122
124
  value: "",
123
125
  language: "javascript"
124
126
  });
@@ -126,16 +128,16 @@ function Me() {
126
128
  let w = requestIdleCallback(() => {
127
129
  if (!w) return;
128
130
  const { height: L, width: B } = a.getBoundingClientRect();
129
- h.layout({ width: B, height: L }), w = void 0;
131
+ m.layout({ width: B, height: L }), w = void 0;
130
132
  });
131
133
  }), _.observe(a);
132
134
  let l;
133
- c = new G(), c.add(o.setEditorInstance(h)), c.add(
134
- h.onDidFocusEditorWidget(() => {
135
+ c = new H(), c.add(o.setEditorInstance(m)), c.add(
136
+ m.onDidFocusEditorWidget(() => {
135
137
  l = n.forceEscape();
136
138
  })
137
139
  ), c.add(
138
- h.onDidBlurEditorWidget(() => {
140
+ m.onDidBlurEditorWidget(() => {
139
141
  l == null || l.dispose(), l = void 0;
140
142
  })
141
143
  ), c.add(U(() => l == null ? void 0 : l.dispose()));
@@ -145,13 +147,13 @@ function Me() {
145
147
  };
146
148
  }, [o, n]);
147
149
  const s = De(r);
148
- return /* @__PURE__ */ d.jsxs("div", { className: m.scriptEditorPanel, children: [
149
- /* @__PURE__ */ d.jsx("div", { className: m.scriptEditorContent, ref: t, children: /* @__PURE__ */ d.jsx("div", { className: m.scriptEditorContainer, ref: e }) }),
150
- /* @__PURE__ */ d.jsx("div", { className: m.scriptEditorActions, children: /* @__PURE__ */ d.jsx(ve, { type: "primary", size: "small", onClick: s, children: i.t("script-panel.panel.execute") }) })
150
+ return /* @__PURE__ */ d.jsxs("div", { className: h.scriptEditorPanel, children: [
151
+ /* @__PURE__ */ d.jsx("div", { className: h.scriptEditorContent, ref: t, children: /* @__PURE__ */ d.jsx("div", { className: h.scriptEditorContainer, ref: e }) }),
152
+ /* @__PURE__ */ d.jsx("div", { className: h.scriptEditorActions, children: /* @__PURE__ */ d.jsx(ve, { type: "primary", size: "small", onClick: s, children: i.t("script-panel.panel.execute") }) })
151
153
  ] });
152
154
  }
153
155
  function De(t) {
154
- const e = p(F), r = p(re), i = p(b);
156
+ const e = p(F), r = p(re), i = p(I);
155
157
  return de(() => {
156
158
  var o;
157
159
  const n = (o = t.current) == null ? void 0 : o.getModel();
@@ -177,8 +179,8 @@ function Ne(t) {
177
179
  type: ie.BUTTON,
178
180
  positions: [ne.TOOLBAR_START],
179
181
  // FIXME hidden$ and disabled$ are not correctly in doc
180
- hidden$: oe(t, J.UNIVER_SHEET),
181
- disabled$: he(t, { workbookTypes: [me], worksheetTypes: [ge, Se, Ee], rangeTypes: [Pe] })
182
+ hidden$: oe(t, G.UNIVER_SHEET),
183
+ disabled$: me(t, { workbookTypes: [he], worksheetTypes: [ge, Se, Ee], rangeTypes: [Pe] })
182
184
  };
183
185
  }
184
186
  var We = Object.defineProperty, Ae = Object.getOwnPropertyDescriptor, Fe = (t, e, r, i) => {
@@ -195,10 +197,10 @@ let v = class extends S {
195
197
  }
196
198
  };
197
199
  v = Fe([
198
- Y(K.Steady, v),
199
- g(1, f(I)),
200
+ J(Y.Steady, v),
201
+ g(1, f(b)),
200
202
  g(2, ce),
201
- g(3, Q),
203
+ g(3, K),
202
204
  g(4, f(se))
203
205
  ], v);
204
206
  var Be = Object.defineProperty, Ve = Object.getOwnPropertyDescriptor, qe = (t, e, r, i) => {
@@ -208,9 +210,9 @@ var Be = Object.defineProperty, Ve = Object.getOwnPropertyDescriptor, qe = (t, e
208
210
  }, R = (t, e) => (r, i) => e(r, i, t);
209
211
  const ke = "uniscript";
210
212
  var y;
211
- let T = (y = class extends X {
213
+ let T = (y = class extends Q {
212
214
  constructor(t = {}, e, r) {
213
- super(), this._config = t, this._injector = e, this._localeService = r, this._config = Z.deepMerge({}, Le, this._config);
215
+ super(), this._config = t, this._injector = e, this._localeService = r, this._config = X.deepMerge({}, Le, this._config);
214
216
  }
215
217
  onStarting(t) {
216
218
  [
@@ -229,8 +231,8 @@ let T = (y = class extends X {
229
231
  }
230
232
  }, u(y, "pluginName", ke), y);
231
233
  T = qe([
232
- R(1, f(I)),
233
- R(2, f(b))
234
+ R(1, f(b)),
235
+ R(2, f(I))
234
236
  ], T);
235
237
  export {
236
238
  F as IUniscriptExecutionService,
@@ -1,4 +1,4 @@
1
1
  import { IMenuButtonItem } from '@univerjs/ui';
2
- import { IAccessor } from '@univerjs/core';
2
+ import { IAccessor } from '@wendellhu/redi';
3
3
 
4
4
  export declare function UniscriptMenuItemFactory(accessor: IAccessor): IMenuButtonItem;
@@ -1,5 +1,6 @@
1
- import { Disposable, ICommandService, Injector } from '@univerjs/core';
1
+ import { Disposable, ICommandService } from '@univerjs/core';
2
2
  import { MenuConfig, ComponentManager, IMenuService } from '@univerjs/ui';
3
+ import { Injector } from '@wendellhu/redi';
3
4
 
4
5
  export interface IUniverUniscriptConfig {
5
6
  getWorkerUrl(moduleID: string, label: string): string;
@@ -1,4 +1,5 @@
1
- import { Injector, LocaleService, Plugin } from '@univerjs/core';
1
+ import { LocaleService, Plugin } from '@univerjs/core';
2
+ import { Injector } from '@wendellhu/redi';
2
3
  import { IUniverUniscriptConfig } from './controllers/uniscript.controller';
3
4
 
4
5
  export declare class UniverUniscriptPlugin extends Plugin {
@@ -1,4 +1,5 @@
1
- import { Disposable, IDisposable } from '@univerjs/core';
1
+ import { Disposable } from '@univerjs/core';
2
+ import { IDisposable } from '@wendellhu/redi';
2
3
  import { editor } from 'monaco-editor';
3
4
  import { IUniverUniscriptConfig } from '../controllers/uniscript.controller';
4
5
 
@@ -1,6 +1,7 @@
1
- import { Disposable, ILogService, Injector } from '@univerjs/core';
1
+ import { Disposable, ILogService } from '@univerjs/core';
2
+ import { Injector } from '@wendellhu/redi';
2
3
 
3
- export declare const IUniscriptExecutionService: import('@univerjs/core').IdentifierDecorator<IUniscriptExecutionService>;
4
+ export declare const IUniscriptExecutionService: import('@wendellhu/redi').IdentifierDecorator<IUniscriptExecutionService>;
4
5
  export interface IUniscriptExecutionService {
5
6
  execute(code: string): Promise<boolean>;
6
7
  }
package/lib/umd/index.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(o,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("@univerjs/core"),require("@univerjs/ui"),require("rxjs"),require("react"),require("@univerjs/design"),require("monaco-editor"),require("@univerjs/facade"),require("@univerjs/sheets-ui"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/ui","rxjs","react","@univerjs/design","monaco-editor","@univerjs/facade","@univerjs/sheets-ui","@univerjs/sheets"],t):(o=typeof globalThis<"u"?globalThis:o||self,t(o.UniverUniscript={},o.UniverCore,o.UniverUi,o.rxjs,o.React,o.UniverDesign,o.monaco,o.UniverFacade,o.UniverSheetsUi,o.UniverSheets))})(this,function(o,t,a,b,d,I,A,L,F,v){"use strict";var ae=Object.defineProperty;var ue=(o,t,a)=>t in o?ae(o,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[t]=a;var g=(o,t,a)=>ue(o,typeof t!="symbol"?t+"":t,a);var C;class D extends t.Disposable{constructor(){super(...arguments);g(this,"_open$",new b.BehaviorSubject(!1));g(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 w="ScriptPanel",O={type:t.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:r=>{const e=r.get(D),i=r.get(a.ISidebarService);return e.isOpen?(e.close(),i.close()):(e.open(),i.open({header:{title:"script-panel.title"},children:{label:w},width:600})),!0}};var T={exports:{}},S={};/**
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-ui"),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-ui","@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.UniverSheetsUi,o.UniverSheets))})(this,function(o,s,p,l,D,v,U,f,q,F,V,h){"use strict";var ae=Object.defineProperty;var de=(o,s,p)=>s in o?ae(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);var b;class T extends s.Disposable{constructor(){super(...arguments);m(this,"_open$",new D.BehaviorSubject(!1));m(this,"open$",this._open$.pipe(D.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",x={type:s.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:i=>{const e=i.get(T),n=i.get(l.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:{}},E={};/**
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=d,B=Symbol.for("react.element"),V=Symbol.for("react.fragment"),k=Object.prototype.hasOwnProperty,z=q.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,H={key:!0,ref:!0,__self:!0,__source:!0};function R(r,e,i){var n,s={},c=null,p=null;i!==void 0&&(c=""+i),e.key!==void 0&&(c=""+e.key),e.ref!==void 0&&(p=e.ref);for(n in e)k.call(e,n)&&!H.hasOwnProperty(n)&&(s[n]=e[n]);if(r&&r.defaultProps)for(n in e=r.defaultProps,e)s[n]===void 0&&(s[n]=e[n]);return{$$typeof:B,type:r,key:c,ref:p,props:s,_owner:z.current}}S.Fragment=V,S.jsx=R,S.jsxs=R,T.exports=S;var f=T.exports;class m extends t.Disposable{constructor(i){super();g(this,"_editorInstance",null);this._config=i}setEditorInstance(i){return this._editorInstance=i,t.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var G=Object.defineProperty,J=Object.getOwnPropertyDescriptor,Y=(r,e,i,n)=>{for(var s=n>1?void 0:n?J(e,i):e,c=r.length-1,p;c>=0;c--)(p=r[c])&&(s=(n?p(e,i,s):p(s))||s);return n&&s&&G(e,i,s),s},M=(r,e)=>(i,n)=>e(i,n,r);const U=t.createIdentifier("univer.uniscript.execution-service");let x=class extends t.Disposable{constructor(r,e){super(),this._logService=r,this._injector=e}async execute(r){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=L.FUniver.newAPI(this._injector),i=new Function("univerAPI",`(() => {${r}})()`);try{return i(e),!0}catch(n){return this._logService.error(n),!1}}};x=Y([M(0,t.ILogService),M(1,t.Inject(t.Injector))],x);const E={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function K(){const r=d.useRef(null),e=d.useRef(null),i=d.useRef(null),n=t.useDependency(t.LocaleService),s=t.useDependency(a.IShortcutService),c=t.useDependency(m);d.useEffect(()=>{const $=e.current,h=r.current;let u=null,j=null;if($&&h){c.requireVscodeEditor();const y=i.current=A.editor.create($,{value:"",language:"javascript"});j=new ResizeObserver(()=>{let W=requestIdleCallback(()=>{if(!W)return;const{height:ce,width:pe}=h.getBoundingClientRect();y.layout({width:pe,height:ce}),W=void 0})}),j.observe(h);let l;u=new t.DisposableCollection,u.add(c.setEditorInstance(y)),u.add(y.onDidFocusEditorWidget(()=>{l=s.forceEscape()})),u.add(y.onDidBlurEditorWidget(()=>{l==null||l.dispose(),l=void 0})),u.add(t.toDisposable(()=>l==null?void 0:l.dispose()))}return()=>{j&&h&&j.unobserve(h),u==null||u.dispose()}},[c,s]);const p=Q(i);return f.jsxs("div",{className:E.scriptEditorPanel,children:[f.jsx("div",{className:E.scriptEditorContent,ref:r,children:f.jsx("div",{className:E.scriptEditorContainer,ref:e})}),f.jsx("div",{className:E.scriptEditorActions,children:f.jsx(I.Button,{type:"primary",size:"small",onClick:p,children:n.t("script-panel.panel.execute")})})]})}function Q(r){const e=t.useDependency(U),i=t.useDependency(a.IMessageService),n=t.useDependency(t.LocaleService);return d.useCallback(()=>{var c;const s=(c=r.current)==null?void 0:c.getModel();s&&e.execute(s.getValue()).then(()=>{i.show({content:n.t("uniscript.message.success"),type:I.MessageType.Success})}).catch(()=>{i.show({content:n.t("uniscript.message.failed"),type:I.MessageType.Error})})},[n,i,r,e])}function X(r){return{id:O.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(r,t.UniverInstanceType.UNIVER_SHEET),disabled$:F.getCurrentRangeDisable$(r,{workbookTypes:[v.WorkbookEditablePermission],worksheetTypes:[v.WorksheetEditPermission,v.WorksheetSetCellStylePermission,v.WorksheetSetCellValuePermission],rangeTypes:[v.RangeProtectionPermissionEditPoint]})}}var Z=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=(r,e,i,n)=>{for(var s=n>1?void 0:n?ee(e,i):e,c=r.length-1,p;c>=0;c--)(p=r[c])&&(s=(n?p(e,i,s):p(s))||s);return n&&s&&Z(e,i,s),s},P=(r,e)=>(i,n)=>e(i,n,r);const ne={};let _=class extends t.Disposable{constructor(r,e,i,n,s){super(),this._config=r,this._injector=e,this._menuService=i;const{menu:c={}}=this._config;this.disposeWithMe(i.addMenuItem(this._injector.invoke(X),c)),this.disposeWithMe(s.register(w,K)),this.disposeWithMe(n.registerCommand(O))}};_=te([t.OnLifecycle(t.LifecycleStages.Steady,_),P(1,t.Inject(t.Injector)),P(2,a.IMenuService),P(3,t.ICommandService),P(4,t.Inject(a.ComponentManager))],_);var ie=Object.defineProperty,re=Object.getOwnPropertyDescriptor,se=(r,e,i,n)=>{for(var s=n>1?void 0:n?re(e,i):e,c=r.length-1,p;c>=0;c--)(p=r[c])&&(s=(n?p(e,i,s):p(s))||s);return n&&s&&ie(e,i,s),s},N=(r,e)=>(i,n)=>e(i,n,r);const oe="uniscript";o.UniverUniscriptPlugin=(C=class extends t.Plugin{constructor(e={},i,n){super(),this._config=e,this._injector=i,this._localeService=n,this._config=t.Tools.deepMerge({},ne,this._config)}onStarting(e){[[_,{useFactory:()=>e.createInstance(_,this._config)}],[m,{useFactory:()=>e.createInstance(m,this._config)}],[D]].forEach(n=>e.add(n)),this.registerExecution()}registerExecution(){this._injector.add([U,{useClass:x}])}},g(C,"pluginName",oe),C),o.UniverUniscriptPlugin=se([N(1,t.Inject(t.Injector)),N(2,t.Inject(t.LocaleService))],o.UniverUniscriptPlugin),o.IUniscriptExecutionService=U,o.ScriptEditorService=m,o.ToggleScriptPanelOperation=O,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
9
+ */var k=v,z=Symbol.for("react.element"),B=Symbol.for("react.fragment"),H=Object.prototype.hasOwnProperty,G=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,J={key:!0,ref:!0,__self:!0,__source:!0};function N(i,e,n){var t,r={},c=null,u=null;n!==void 0&&(c=""+n),e.key!==void 0&&(c=""+e.key),e.ref!==void 0&&(u=e.ref);for(t in e)H.call(e,t)&&!J.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:z,type:i,key:c,ref:u,props:r,_owner:G.current}}E.Fragment=B,E.jsx=N,E.jsxs=N,M.exports=E;var _=M.exports;class P extends s.Disposable{constructor(n){super();m(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 Y=Object.defineProperty,K=Object.getOwnPropertyDescriptor,Q=(i,e,n,t)=>{for(var r=t>1?void 0:t?K(e,n):e,c=i.length-1,u;c>=0;c--)(u=i[c])&&(r=(t?u(e,n,r):u(r))||r);return t&&r&&Y(e,n,r),r},$=(i,e)=>(n,t)=>e(n,t,i);const w=p.createIdentifier("univer.uniscript.execution-service");let C=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=F.FUniver.newAPI(this._injector),n=new Function("univerAPI",`(() => {${i}})()`);try{return n(e),!0}catch(t){return this._logService.error(t),!1}}};C=Q([$(0,s.ILogService),$(1,p.Inject(p.Injector))],C);const j={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function X(){const i=v.useRef(null),e=v.useRef(null),n=v.useRef(null),t=f.useDependency(s.LocaleService),r=f.useDependency(l.IShortcutService),c=f.useDependency(P);v.useEffect(()=>{const A=e.current,g=i.current;let a=null,I=null;if(A&&g){c.requireVscodeEditor();const O=n.current=q.editor.create(A,{value:"",language:"javascript"});I=new ResizeObserver(()=>{let L=requestIdleCallback(()=>{if(!L)return;const{height:pe,width:le}=g.getBoundingClientRect();O.layout({width:le,height:pe}),L=void 0})}),I.observe(g);let d;a=new s.DisposableCollection,a.add(c.setEditorInstance(O)),a.add(O.onDidFocusEditorWidget(()=>{d=r.forceEscape()})),a.add(O.onDidBlurEditorWidget(()=>{d==null||d.dispose(),d=void 0})),a.add(s.toDisposable(()=>d==null?void 0:d.dispose()))}return()=>{I&&g&&I.unobserve(g),a==null||a.dispose()}},[c,r]);const u=Z(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(U.Button,{type:"primary",size:"small",onClick:u,children:t.t("script-panel.panel.execute")})})]})}function Z(i){const e=f.useDependency(w),n=f.useDependency(l.IMessageService),t=f.useDependency(s.LocaleService);return v.useCallback(()=>{var c;const r=(c=i.current)==null?void 0:c.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 ee(i){return{id:x.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:l.MenuItemType.BUTTON,positions:[l.MenuPosition.TOOLBAR_START],hidden$:l.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_SHEET),disabled$:V.getCurrentRangeDisable$(i,{workbookTypes:[h.WorkbookEditablePermission],worksheetTypes:[h.WorksheetEditPermission,h.WorksheetSetCellStylePermission,h.WorksheetSetCellValuePermission],rangeTypes:[h.RangeProtectionPermissionEditPoint]})}}var te=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,ie=(i,e,n,t)=>{for(var r=t>1?void 0:t?ne(e,n):e,c=i.length-1,u;c>=0;c--)(u=i[c])&&(r=(t?u(e,n,r):u(r))||r);return t&&r&&te(e,n,r),r},y=(i,e)=>(n,t)=>e(n,t,i);const re={};let S=class extends s.Disposable{constructor(i,e,n,t,r){super(),this._config=i,this._injector=e,this._menuService=n;const{menu:c={}}=this._config;this.disposeWithMe(n.addMenuItem(this._injector.invoke(ee),c)),this.disposeWithMe(r.register(R,X)),this.disposeWithMe(t.registerCommand(x))}};S=ie([s.OnLifecycle(s.LifecycleStages.Steady,S),y(1,p.Inject(p.Injector)),y(2,l.IMenuService),y(3,s.ICommandService),y(4,p.Inject(l.ComponentManager))],S);var se=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,ce=(i,e,n,t)=>{for(var r=t>1?void 0:t?oe(e,n):e,c=i.length-1,u;c>=0;c--)(u=i[c])&&(r=(t?u(e,n,r):u(r))||r);return t&&r&&se(e,n,r),r},W=(i,e)=>(n,t)=>e(n,t,i);const ue="uniscript";o.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({},re,this._config)}onStarting(e){[[S,{useFactory:()=>e.createInstance(S,this._config)}],[P,{useFactory:()=>e.createInstance(P,this._config)}],[T]].forEach(t=>e.add(t)),this.registerExecution()}registerExecution(){this._injector.add([w,{useClass:C}])}},m(b,"pluginName",ue),b),o.UniverUniscriptPlugin=ce([W(1,p.Inject(p.Injector)),W(2,p.Inject(s.LocaleService))],o.UniverUniscriptPlugin),o.IUniscriptExecutionService=w,o.ScriptEditorService=P,o.ToggleScriptPanelOperation=x,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.2.4-alpha.0",
3
+ "version": "0.2.4",
4
4
  "private": false,
5
5
  "description": "UI component library for building exceptional Univer.",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -50,34 +50,36 @@
50
50
  "lib"
51
51
  ],
52
52
  "peerDependencies": {
53
+ "@wendellhu/redi": "0.16.0",
53
54
  "monaco-editor": ">=0.44.0",
54
55
  "react": "^16.9.0 || ^17.0.0 || ^18.0.0",
55
56
  "rxjs": ">=7.0.0",
56
- "@univerjs/core": "0.2.4-alpha.0",
57
- "@univerjs/design": "0.2.4-alpha.0",
58
- "@univerjs/sheets": "0.2.4-alpha.0",
59
- "@univerjs/facade": "0.2.4-alpha.0",
60
- "@univerjs/ui": "0.2.4-alpha.0",
61
- "@univerjs/sheets-ui": "0.2.4-alpha.0"
57
+ "@univerjs/core": "0.2.4",
58
+ "@univerjs/sheets": "0.2.4",
59
+ "@univerjs/design": "0.2.4",
60
+ "@univerjs/facade": "0.2.4",
61
+ "@univerjs/sheets-ui": "0.2.4",
62
+ "@univerjs/ui": "0.2.4"
62
63
  },
63
64
  "dependencies": {
64
65
  "@univerjs/protocol": "0.1.38-alpha.23"
65
66
  },
66
67
  "devDependencies": {
67
68
  "@types/react": "^18.3.3",
69
+ "@wendellhu/redi": "0.16.0",
68
70
  "less": "^4.2.0",
69
71
  "monaco-editor": "0.50.0",
70
72
  "rxjs": "^7.8.1",
71
73
  "typescript": "^5.5.3",
72
74
  "vite": "^5.3.4",
73
75
  "vitest": "^2.0.3",
74
- "@univerjs/core": "0.2.4-alpha.0",
75
- "@univerjs/facade": "0.2.4-alpha.0",
76
- "@univerjs/design": "0.2.4-alpha.0",
77
- "@univerjs/shared": "0.2.4-alpha.0",
78
- "@univerjs/sheets": "0.2.4-alpha.0",
79
- "@univerjs/sheets-ui": "0.2.4-alpha.0",
80
- "@univerjs/ui": "0.2.4-alpha.0"
76
+ "@univerjs/core": "0.2.4",
77
+ "@univerjs/facade": "0.2.4",
78
+ "@univerjs/sheets": "0.2.4",
79
+ "@univerjs/sheets-ui": "0.2.4",
80
+ "@univerjs/shared": "0.2.4",
81
+ "@univerjs/ui": "0.2.4",
82
+ "@univerjs/design": "0.2.4"
81
83
  },
82
84
  "univerSpace": {
83
85
  ".": {