@univerjs/uniscript 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +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",
|