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