@univerjs/uniscript 0.1.5 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/cjs/index.js +2 -2
- package/lib/es/index.js +105 -100
- package/lib/types/index.d.ts +1 -0
- package/lib/types/services/command/batch-command.service.d.ts +1 -0
- package/lib/umd/index.js +2 -2
- package/package.json +14 -15
package/lib/cjs/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";var
|
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"),C=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;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",R={type:c.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:n=>{const e=n.get(T),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 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
|
9
|
+
*/var J=d,Y=Symbol.for("react.element"),K=Symbol.for("react.fragment"),Q=Object.prototype.hasOwnProperty,X=J.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Z={key:!0,ref:!0,__self:!0,__source:!0};function N(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)Q.call(e,r)&&!Z.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:Y,type:n,key:s,ref:o,props:i,_owner:X.current}}I.Fragment=K;I.jsx=N;I.jsxs=N;q.exports=I;var h=q.exports;class P 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 k=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=(n,e,t,r)=>{for(var i=r>1?void 0:r?ee(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&&k(e,t,i),i},$=(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=te([$(0,c.ILogService),$(1,a.Inject(a.Injector))],x);const ne="univer-script-editor-panel",re="univer-script-editor-content",ie="univer-script-editor-actions",m={scriptEditorPanel:ne,scriptEditorContent:re,scriptEditorActions:ie};function se(){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(P);d.useEffect(()=>{const j=e.current,_=n.current;let l=null,g=null;if(j&&_){s.requireVscodeEditor();const S=t.current=W.editor.create(j,{value:"",language:"javascript"});g=new ResizeObserver(()=>{let U=requestIdleCallback(()=>{if(!U)return;const{height:L,width:A}=_.getBoundingClientRect();S.layout({width:A,height:L}),U=void 0})}),g.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()=>{g&&_&&g.unobserve(_),l==null||l.dispose()}},[s,i]);const o=ce(t);return h.jsxs("div",{className:m.scriptEditorPanel,children:[h.jsx("div",{className:m.scriptEditorContent,ref:n,children:h.jsx("div",{className:m.scriptEditorContainer,ref:e})}),h.jsx("div",{className:m.scriptEditorActions,children:h.jsx(b.Button,{type:"primary",size:"small",onClick:o,children:r.t("script-panel.panel.execute")})})]})}function ce(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 oe(n){return{id:R.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.SHEET)}}var le=Object.defineProperty,pe=Object.getOwnPropertyDescriptor,ae=(n,e,t,r)=>{for(var i=r>1?void 0:r?pe(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&&le(e,t,i),i},E=(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(oe))),this.disposeWithMe(r.register(M,se)),this.disposeWithMe(t.registerCommand(R))}};y=ae([c.OnLifecycle(c.LifecycleStages.Steady,y),E(0,a.Inject(a.Injector)),E(1,u.IMenuService),E(2,c.ICommandService),E(3,a.Inject(u.ComponentManager))],y);var ue=Object.defineProperty,de=Object.getOwnPropertyDescriptor,ve=(n,e,t,r)=>{for(var i=r>1?void 0:r?de(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&&ue(e,t,i),i},w=(n,e)=>(t,r)=>e(t,r,n);const _e="uniscript";var O;exports.UniverUniscriptPlugin=(O=class extends c.Plugin{constructor(e,t,r){super(_e),this._config=e,this._injector=t,this._localeService=r}onStarting(e){[[y],[P,{useFactory:()=>e.createInstance(P,this._config)}],[T],[x]].forEach(r=>e.add(r)),this._localeService.load({zhCN:D})}},f(O,"type",c.PluginType.Univer),O);exports.UniverUniscriptPlugin=ve([w(1,a.Inject(a.Injector)),w(2,a.Inject(c.LocaleService))],exports.UniverUniscriptPlugin);exports.ScriptEditorService=P;exports.enUS=H;exports.zhCN=D;
|
package/lib/es/index.js
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
var
|
2
|
-
var
|
3
|
-
var u = (t, e, r) => (
|
4
|
-
import { Disposable as
|
5
|
-
import { Inject as
|
6
|
-
import { ISidebarService as
|
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 z, toDisposable as M, ILogService as V, LocaleService as I, DisposableCollection as H, UniverInstanceType as G, OnLifecycle as J, LifecycleStages as Y, ICommandService as K, Plugin as Q, PluginType as X } from "@univerjs/core";
|
5
|
+
import { Inject as v, Injector as b } from "@wendellhu/redi";
|
6
|
+
import { ISidebarService as Z, IShortcutService as k, IMessageService as ee, MenuItemType as te, MenuPosition as re, getMenuHiddenObservable as ne, ComponentManager as ie, IMenuService as oe } from "@univerjs/ui";
|
7
7
|
import { BehaviorSubject as se, distinctUntilChanged as ce } from "rxjs";
|
8
|
-
import le, { useRef as
|
9
|
-
import {
|
10
|
-
import { useDependency as
|
8
|
+
import le, { useRef as x, useEffect as pe, useCallback as ae } from "react";
|
9
|
+
import { Button as ue, MessageType as $ } from "@univerjs/design";
|
10
|
+
import { useDependency as p } from "@wendellhu/redi/react-bindings";
|
11
11
|
import { editor as de } from "monaco-editor";
|
12
12
|
import { FUniver as ve } from "@univerjs/facade";
|
13
13
|
const fe = {
|
@@ -26,7 +26,7 @@ const fe = {
|
|
26
26
|
failed: "Execution Failed"
|
27
27
|
}
|
28
28
|
}
|
29
|
-
},
|
29
|
+
}, Ke = fe, _e = {
|
30
30
|
"script-panel": {
|
31
31
|
title: "Uniscript",
|
32
32
|
tooltip: {
|
@@ -43,7 +43,7 @@ const fe = {
|
|
43
43
|
}
|
44
44
|
}
|
45
45
|
}, me = _e;
|
46
|
-
class
|
46
|
+
class R extends E {
|
47
47
|
constructor() {
|
48
48
|
super(...arguments);
|
49
49
|
u(this, "_open$", new se(!1));
|
@@ -62,19 +62,19 @@ class D extends P {
|
|
62
62
|
this._open$.next(!1);
|
63
63
|
}
|
64
64
|
}
|
65
|
-
const
|
66
|
-
type:
|
65
|
+
const D = "ScriptPanel", N = {
|
66
|
+
type: z.OPERATION,
|
67
67
|
id: "univer.operation.toggle-script-panel",
|
68
68
|
handler: (t) => {
|
69
|
-
const e = t.get(
|
69
|
+
const e = t.get(R), r = t.get(Z);
|
70
70
|
return e.isOpen ? (e.close(), r.close()) : (e.open(), r.open({
|
71
71
|
header: { title: "script-panel.title" },
|
72
|
-
children: { label:
|
72
|
+
children: { label: D },
|
73
73
|
width: 600
|
74
74
|
})), !0;
|
75
75
|
}
|
76
76
|
};
|
77
|
-
var
|
77
|
+
var A = { exports: {} }, P = {};
|
78
78
|
/**
|
79
79
|
* @license React
|
80
80
|
* react-jsx-runtime.production.min.js
|
@@ -85,7 +85,7 @@ var F = { exports: {} }, x = {};
|
|
85
85
|
* LICENSE file in the root directory of this source tree.
|
86
86
|
*/
|
87
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 };
|
88
|
-
function
|
88
|
+
function F(t, e, r) {
|
89
89
|
var n, i = {}, o = null, s = null;
|
90
90
|
r !== void 0 && (o = "" + r), e.key !== void 0 && (o = "" + e.key), e.ref !== void 0 && (s = e.ref);
|
91
91
|
for (n in e)
|
@@ -95,12 +95,12 @@ function L(t, e, r) {
|
|
95
95
|
i[n] === void 0 && (i[n] = e[n]);
|
96
96
|
return { $$typeof: ge, type: t, key: o, ref: s, props: i, _owner: Pe.current };
|
97
97
|
}
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
var
|
103
|
-
class
|
98
|
+
P.Fragment = Se;
|
99
|
+
P.jsx = F;
|
100
|
+
P.jsxs = F;
|
101
|
+
A.exports = P;
|
102
|
+
var d = A.exports;
|
103
|
+
class y extends E {
|
104
104
|
constructor(r) {
|
105
105
|
super();
|
106
106
|
u(this, "_editorInstance", null);
|
@@ -122,8 +122,8 @@ var Oe = Object.defineProperty, ye = Object.getOwnPropertyDescriptor, Ie = (t, e
|
|
122
122
|
for (var i = n > 1 ? void 0 : n ? ye(e, r) : e, o = t.length - 1, s; o >= 0; o--)
|
123
123
|
(s = t[o]) && (i = (n ? s(e, r, i) : s(i)) || i);
|
124
124
|
return n && i && Oe(e, r, i), i;
|
125
|
-
},
|
126
|
-
let
|
125
|
+
}, w = (t, e) => (r, n) => e(r, n, t);
|
126
|
+
let S = class extends E {
|
127
127
|
constructor(t, e) {
|
128
128
|
super(), this._logService = t, this._injector = e;
|
129
129
|
}
|
@@ -137,129 +137,134 @@ let E = class extends P {
|
|
137
137
|
}
|
138
138
|
}
|
139
139
|
};
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
],
|
144
|
-
const be = "univer-script-editor-panel", je = "univer-script-editor-content", Ce = "univer-script-editor-actions",
|
140
|
+
S = Ie([
|
141
|
+
w(0, V),
|
142
|
+
w(1, v(b))
|
143
|
+
], S);
|
144
|
+
const be = "univer-script-editor-panel", je = "univer-script-editor-content", Ce = "univer-script-editor-actions", m = {
|
145
145
|
scriptEditorPanel: be,
|
146
146
|
scriptEditorContent: je,
|
147
147
|
scriptEditorActions: Ce
|
148
148
|
};
|
149
|
-
function
|
150
|
-
const t =
|
149
|
+
function $e() {
|
150
|
+
const t = x(null), e = x(null), r = x(null), n = p(I), i = p(k), o = p(y);
|
151
151
|
pe(() => {
|
152
|
-
const
|
153
|
-
let
|
154
|
-
if (
|
155
|
-
|
156
|
-
const
|
152
|
+
const j = e.current, a = t.current;
|
153
|
+
let c = null, f = null;
|
154
|
+
if (j && a) {
|
155
|
+
o.requireVscodeEditor();
|
156
|
+
const _ = r.current = de.create(j, {
|
157
157
|
value: "",
|
158
158
|
language: "javascript"
|
159
159
|
});
|
160
|
-
|
160
|
+
f = new ResizeObserver(() => {
|
161
161
|
let C = requestIdleCallback(() => {
|
162
162
|
if (!C)
|
163
163
|
return;
|
164
|
-
const { height:
|
165
|
-
|
164
|
+
const { height: L, width: W } = a.getBoundingClientRect();
|
165
|
+
_.layout({ width: W, height: L }), C = void 0;
|
166
166
|
});
|
167
|
-
}),
|
168
|
-
let
|
169
|
-
|
170
|
-
|
171
|
-
|
167
|
+
}), f.observe(a);
|
168
|
+
let l;
|
169
|
+
c = new H(), c.add(o.setEditorInstance(_)), c.add(
|
170
|
+
_.onDidFocusEditorWidget(() => {
|
171
|
+
l = i.forceEscape();
|
172
172
|
})
|
173
|
-
),
|
174
|
-
|
175
|
-
|
173
|
+
), c.add(
|
174
|
+
_.onDidBlurEditorWidget(() => {
|
175
|
+
l == null || l.dispose(), l = void 0;
|
176
176
|
})
|
177
|
-
),
|
177
|
+
), c.add(M(() => l == null ? void 0 : l.dispose()));
|
178
178
|
}
|
179
179
|
return () => {
|
180
|
-
|
180
|
+
f && a && f.unobserve(a), c == null || c.dispose();
|
181
181
|
};
|
182
|
-
}, []);
|
183
|
-
const
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
182
|
+
}, [o, i]);
|
183
|
+
const s = we(r);
|
184
|
+
return /* @__PURE__ */ d.jsxs("div", { className: m.scriptEditorPanel, children: [
|
185
|
+
/* @__PURE__ */ d.jsx("div", { className: m.scriptEditorContent, ref: t, children: /* @__PURE__ */ d.jsx("div", { className: m.scriptEditorContainer, ref: e }) }),
|
186
|
+
/* @__PURE__ */ d.jsx("div", { className: m.scriptEditorActions, children: /* @__PURE__ */ d.jsx(ue, { type: "primary", size: "small", onClick: s, children: n.t("script-panel.panel.execute") }) })
|
187
|
+
] });
|
188
|
+
}
|
189
|
+
function we(t) {
|
190
|
+
const e = p(S), r = p(ee), n = p(I);
|
191
|
+
return ae(() => {
|
192
|
+
var o;
|
193
|
+
const i = (o = t.current) == null ? void 0 : o.getModel();
|
194
|
+
i && e.execute(i.getValue()).then(() => {
|
195
|
+
r.show({
|
188
196
|
content: n.t("uniscript.message.success"),
|
189
|
-
type:
|
197
|
+
type: $.Success
|
190
198
|
});
|
191
199
|
}).catch(() => {
|
192
|
-
|
200
|
+
r.show({
|
193
201
|
content: n.t("uniscript.message.failed"),
|
194
|
-
type:
|
202
|
+
type: $.Error
|
195
203
|
});
|
196
204
|
});
|
197
|
-
}, [
|
198
|
-
return /* @__PURE__ */ v.jsxs("div", { className: h.scriptEditorPanel, children: [
|
199
|
-
/* @__PURE__ */ v.jsx("div", { className: h.scriptEditorContent, ref: t, children: /* @__PURE__ */ v.jsx("div", { className: h.scriptEditorContainer, ref: e }) }),
|
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") }) })
|
201
|
-
] });
|
205
|
+
}, [n, r, t, e]);
|
202
206
|
}
|
203
|
-
function
|
207
|
+
function Ue(t) {
|
204
208
|
return {
|
205
|
-
id:
|
209
|
+
id: N.id,
|
206
210
|
title: "toggle-script-panel",
|
207
211
|
tooltip: "script-panel.tooltip.menu-button",
|
208
212
|
icon: "CodeSingle",
|
209
|
-
type:
|
210
|
-
positions: [
|
213
|
+
type: te.BUTTON,
|
214
|
+
positions: [re.TOOLBAR_START],
|
211
215
|
// FIXME hidden$ and disabled$ are not correctly in doc
|
212
|
-
|
216
|
+
hidden$: ne(t, G.SHEET)
|
213
217
|
// disabled$: getCurrentSheetDisabled$(accessor),
|
214
218
|
};
|
215
219
|
}
|
216
|
-
var
|
217
|
-
for (var i = n > 1 ? void 0 : n ?
|
220
|
+
var Te = Object.defineProperty, Me = Object.getOwnPropertyDescriptor, Re = (t, e, r, n) => {
|
221
|
+
for (var i = n > 1 ? void 0 : n ? Me(e, r) : e, o = t.length - 1, s; o >= 0; o--)
|
218
222
|
(s = t[o]) && (i = (n ? s(e, r, i) : s(i)) || i);
|
219
|
-
return n && i &&
|
220
|
-
},
|
221
|
-
let
|
223
|
+
return n && i && Te(e, r, i), i;
|
224
|
+
}, h = (t, e) => (r, n) => e(r, n, t);
|
225
|
+
let g = class extends E {
|
222
226
|
constructor(t, e, r, n) {
|
223
|
-
super(), this._injector = t, this.disposeWithMe(e.addMenuItem(this._injector.invoke(
|
227
|
+
super(), this._injector = t, this.disposeWithMe(e.addMenuItem(this._injector.invoke(Ue))), this.disposeWithMe(n.register(D, $e)), this.disposeWithMe(r.registerCommand(N));
|
224
228
|
}
|
225
229
|
};
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
],
|
233
|
-
var
|
234
|
-
for (var i = n > 1 ? void 0 : n ?
|
230
|
+
g = Re([
|
231
|
+
J(Y.Steady, g),
|
232
|
+
h(0, v(b)),
|
233
|
+
h(1, oe),
|
234
|
+
h(2, K),
|
235
|
+
h(3, v(ie))
|
236
|
+
], g);
|
237
|
+
var De = Object.defineProperty, Ne = Object.getOwnPropertyDescriptor, Ae = (t, e, r, n) => {
|
238
|
+
for (var i = n > 1 ? void 0 : n ? Ne(e, r) : e, o = t.length - 1, s; o >= 0; o--)
|
235
239
|
(s = t[o]) && (i = (n ? s(e, r, i) : s(i)) || i);
|
236
|
-
return n && i &&
|
240
|
+
return n && i && De(e, r, i), i;
|
237
241
|
}, U = (t, e) => (r, n) => e(r, n, t);
|
238
|
-
const
|
239
|
-
var
|
240
|
-
let
|
242
|
+
const Fe = "uniscript";
|
243
|
+
var O;
|
244
|
+
let T = (O = class extends Q {
|
241
245
|
constructor(t, e, r) {
|
242
|
-
super(
|
246
|
+
super(Fe), this._config = t, this._injector = e, this._localeService = r;
|
243
247
|
}
|
244
248
|
onStarting(t) {
|
245
249
|
[
|
246
250
|
// controllers
|
247
|
-
[
|
251
|
+
[g],
|
248
252
|
// services
|
249
|
-
[
|
250
|
-
[
|
251
|
-
[
|
253
|
+
[y, { useFactory: () => t.createInstance(y, this._config) }],
|
254
|
+
[R],
|
255
|
+
[S]
|
252
256
|
].forEach((r) => t.add(r)), this._localeService.load({
|
253
257
|
zhCN: me
|
254
258
|
});
|
255
259
|
}
|
256
|
-
}, u(
|
257
|
-
|
258
|
-
U(1,
|
259
|
-
U(2,
|
260
|
-
],
|
260
|
+
}, u(O, "type", X.Univer), O);
|
261
|
+
T = Ae([
|
262
|
+
U(1, v(b)),
|
263
|
+
U(2, v(I))
|
264
|
+
], T);
|
261
265
|
export {
|
262
|
-
|
263
|
-
|
266
|
+
y as ScriptEditorService,
|
267
|
+
T as UniverUniscriptPlugin,
|
268
|
+
Ke as enUS,
|
264
269
|
me as zhCN
|
265
270
|
};
|
package/lib/types/index.d.ts
CHANGED
@@ -2,6 +2,7 @@ import { IDisposable } from '@wendellhu/redi';
|
|
2
2
|
import { CommandListener, ICommand, ICommandService, IExecutionOptions } from '@univerjs/core';
|
3
3
|
|
4
4
|
export declare class BatchCommandService implements ICommandService {
|
5
|
+
hasCommand(commandId: string): boolean;
|
5
6
|
beforeCommandExecuted(listener: CommandListener): IDisposable;
|
6
7
|
registerCommand(command: ICommand<object, boolean>): IDisposable;
|
7
8
|
registerMultipleCommand(command: ICommand<object, boolean>): IDisposable;
|
package/lib/umd/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
(function(
|
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,w,v,O,f,F,q){"use strict";var pe=Object.defineProperty;var ae=(c,s,p)=>s in c?pe(c,s,{enumerable:!0,configurable:!0,writable:!0,value:p}):c[s]=p;var S=(c,s,p)=>(ae(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"}}},b={"script-panel":{title:"Uniscript",tooltip:{"menu-button":"打开收起 Uniscript 面板"},panel:{execute:"执行 Uniscript"}},uniscript:{message:{success:"执行成功",failed:"执行失败"}}};class C 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(){this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const D="ScriptPanel",T={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 R={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
|
9
|
+
*/var z=v,V=Symbol.for("react.element"),B=Symbol.for("react.fragment"),H=Object.prototype.hasOwnProperty,G=z.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,J={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)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:V,type:i,key:o,ref:l,props:r,_owner:G.current}}m.Fragment=B,m.jsx=M,m.jsxs=M,R.exports=m;var _=R.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 Y=Object.defineProperty,K=Object.getOwnPropertyDescriptor,Q=(i,e,n,t)=>{for(var r=t>1?void 0:t?K(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&&Y(e,n,r),r},N=(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=Q([N(0,s.ILogService),N(1,p.Inject(p.Injector))],g);const y={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(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:oe,width:le}=h.getBoundingClientRect();I.layout({width:le,height:oe}),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=Z(n);return _.jsxs("div",{className:y.scriptEditorPanel,children:[_.jsx("div",{className:y.scriptEditorContent,ref:i,children:_.jsx("div",{className:y.scriptEditorContainer,ref:e})}),_.jsx("div",{className:y.scriptEditorActions,children:_.jsx(O.Button,{type:"primary",size:"small",onClick:l,children:t.t("script-panel.panel.execute")})})]})}function Z(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 k(i){return{id:T.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.SHEET)}}var ee=Object.defineProperty,te=Object.getOwnPropertyDescriptor,ne=(i,e,n,t)=>{for(var r=t>1?void 0:t?te(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&&ee(e,n,r),r},j=(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(k))),this.disposeWithMe(t.register(D,X)),this.disposeWithMe(n.registerCommand(T))}};P=ne([s.OnLifecycle(s.LifecycleStages.Steady,P),j(0,p.Inject(p.Injector)),j(1,a.IMenuService),j(2,s.ICommandService),j(3,p.Inject(a.ComponentManager))],P);var ie=Object.defineProperty,re=Object.getOwnPropertyDescriptor,se=(i,e,n,t)=>{for(var r=t>1?void 0:t?re(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&&ie(e,n,r),r},$=(i,e)=>(n,t)=>e(n,t,i);const ce="uniscript";c.UniverUniscriptPlugin=(x=class extends s.Plugin{constructor(e,n,t){super(ce),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:b})}},S(x,"type",s.PluginType.Univer),x),c.UniverUniscriptPlugin=se([$(1,p.Inject(p.Injector)),$(2,p.Inject(s.LocaleService))],c.UniverUniscriptPlugin),c.ScriptEditorService=E,c.enUS=W,c.zhCN=b,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.
|
3
|
+
"version": "0.1.7",
|
4
4
|
"private": false,
|
5
5
|
"description": "UI component library for building exceptional Univer.",
|
6
6
|
"author": "DreamNum <developer@univer.ai>",
|
@@ -55,28 +55,27 @@
|
|
55
55
|
"peerDependencies": {
|
56
56
|
"@wendellhu/redi": "0.13.0",
|
57
57
|
"monaco-editor": ">=0.44.0",
|
58
|
-
"react": "
|
58
|
+
"react": "^16.9.0 || ^17.0.0 || ^18.0.0",
|
59
59
|
"rxjs": ">=7.0.0",
|
60
|
-
"@univerjs/core": "0.1.
|
61
|
-
"@univerjs/design": "0.1.
|
62
|
-
"@univerjs/
|
63
|
-
"@univerjs/
|
60
|
+
"@univerjs/core": "0.1.7",
|
61
|
+
"@univerjs/design": "0.1.7",
|
62
|
+
"@univerjs/ui": "0.1.7",
|
63
|
+
"@univerjs/facade": "0.1.7"
|
64
64
|
},
|
65
65
|
"devDependencies": {
|
66
|
-
"@types/react": "^18.2.
|
66
|
+
"@types/react": "^18.2.75",
|
67
67
|
"@wendellhu/redi": "^0.13.0",
|
68
68
|
"less": "^4.2.0",
|
69
69
|
"monaco-editor": "0.47.0",
|
70
70
|
"rxjs": "^7.8.1",
|
71
|
-
"typescript": "^5.4.
|
72
|
-
"vite": "^5.2.
|
71
|
+
"typescript": "^5.4.5",
|
72
|
+
"vite": "^5.2.8",
|
73
73
|
"vitest": "^1.4.0",
|
74
|
-
"@univerjs/core": "0.1.
|
75
|
-
"@univerjs/design": "0.1.
|
76
|
-
"@univerjs/
|
77
|
-
"@univerjs/
|
78
|
-
"@univerjs/ui": "0.1.
|
79
|
-
"@univerjs/shared": "0.1.5"
|
74
|
+
"@univerjs/core": "0.1.7",
|
75
|
+
"@univerjs/design": "0.1.7",
|
76
|
+
"@univerjs/facade": "0.1.7",
|
77
|
+
"@univerjs/shared": "0.1.7",
|
78
|
+
"@univerjs/ui": "0.1.7"
|
80
79
|
},
|
81
80
|
"scripts": {
|
82
81
|
"test": "vitest run",
|