@univerjs/uniscript 0.1.12 → 0.1.13
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 +100 -150
- package/lib/locale/en-US.json +17 -0
- package/lib/locale/ru-RU.json +17 -0
- package/lib/locale/zh-CN.json +17 -0
- package/lib/types/index.d.ts +0 -1
- package/lib/umd/index.js +2 -2
- package/package.json +20 -12
- package/lib/types/locale/index.d.ts +0 -18
package/lib/cjs/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";var
|
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),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),l=require("@wendellhu/redi"),u=require("@univerjs/ui"),D=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 T extends o.Disposable{constructor(){super(...arguments);f(this,"_open$",new D.BehaviorSubject(!1));f(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 M="ScriptPanel",q={type:o.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:r=>{const e=r.get(T),t=r.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 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
|
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},$=(r,e)=>(t,n)=>e(t,n,r);const C=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([$(0,o.ILogService),$(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 U=e.current,_=r.current;let a=null,E=null;if(U&&_){s.requireVscodeEditor();const m=t.current=V.editor.create(U,{value:"",language:"javascript"});E=new ResizeObserver(()=>{let w=requestIdleCallback(()=>{if(!w)return;const{height:L,width:A}=_.getBoundingClientRect();m.layout({width:A,height:L}),w=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(C),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:q.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(M,ie)),this.disposeWithMe(n.registerCommand(q))}};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)}],[T]].forEach(n=>e.add(n)),this.registerExecution()}registerExecution(){this._injector.add([C,{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=C;exports.ScriptEditorService=I;
|
package/lib/es/index.js
CHANGED
@@ -1,65 +1,18 @@
|
|
1
|
-
var
|
2
|
-
var
|
3
|
-
var u = (t, e, r) => (
|
4
|
-
import { Disposable as S, CommandType as
|
5
|
-
import { createIdentifier as
|
6
|
-
import { ISidebarService as ee, IShortcutService as te, IMessageService as re, MenuItemType as ie, MenuPosition as ne, getMenuHiddenObservable as
|
1
|
+
var V = Object.defineProperty;
|
2
|
+
var q = (t, e, r) => e in t ? V(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 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";
|
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";
|
7
7
|
import { BehaviorSubject as le, distinctUntilChanged as pe } from "rxjs";
|
8
|
-
import ae, { useRef as
|
9
|
-
import { Button as ve, MessageType as
|
8
|
+
import ae, { useRef as P, useEffect as ue, useCallback as de } from "react";
|
9
|
+
import { Button as ve, MessageType as j } from "@univerjs/design";
|
10
10
|
import { useDependency as p } from "@wendellhu/redi/react-bindings";
|
11
11
|
import { editor as fe } from "monaco-editor";
|
12
12
|
import { FUniver as _e } from "@univerjs/facade";
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
tooltip: {
|
17
|
-
"menu-button": "Toggle Uniscript Panel"
|
18
|
-
},
|
19
|
-
panel: {
|
20
|
-
execute: "Execute Script"
|
21
|
-
}
|
22
|
-
},
|
23
|
-
uniscript: {
|
24
|
-
message: {
|
25
|
-
success: "Execution Success",
|
26
|
-
failed: "Execution Failed"
|
27
|
-
}
|
28
|
-
}
|
29
|
-
}, ke = he, me = {
|
30
|
-
"script-panel": {
|
31
|
-
title: "Uniscript",
|
32
|
-
tooltip: {
|
33
|
-
"menu-button": "打开收起 Uniscript 面板"
|
34
|
-
},
|
35
|
-
panel: {
|
36
|
-
execute: "执行 Uniscript"
|
37
|
-
}
|
38
|
-
},
|
39
|
-
uniscript: {
|
40
|
-
message: {
|
41
|
-
success: "执行成功",
|
42
|
-
failed: "执行失败"
|
43
|
-
}
|
44
|
-
}
|
45
|
-
}, ge = me, Se = {
|
46
|
-
"script-panel": {
|
47
|
-
title: "Юнискрипт",
|
48
|
-
tooltip: {
|
49
|
-
"menu-button": "Переключить панель Юнискрипт"
|
50
|
-
},
|
51
|
-
panel: {
|
52
|
-
execute: "Выполнить скрипт"
|
53
|
-
}
|
54
|
-
},
|
55
|
-
uniscript: {
|
56
|
-
message: {
|
57
|
-
success: "Выполнение успешно",
|
58
|
-
failed: "Выполнение не удалось"
|
59
|
-
}
|
60
|
-
}
|
61
|
-
}, et = Se;
|
62
|
-
class T extends S {
|
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";
|
15
|
+
class M extends S {
|
63
16
|
constructor() {
|
64
17
|
super(...arguments);
|
65
18
|
u(this, "_open$", new le(!1));
|
@@ -79,10 +32,10 @@ class T extends S {
|
|
79
32
|
}
|
80
33
|
}
|
81
34
|
const D = "ScriptPanel", N = {
|
82
|
-
type:
|
35
|
+
type: k.OPERATION,
|
83
36
|
id: "univer.operation.toggle-script-panel",
|
84
37
|
handler: (t) => {
|
85
|
-
const e = t.get(
|
38
|
+
const e = t.get(M), r = t.get(ee);
|
86
39
|
return e.isOpen ? (e.close(), r.close()) : (e.open(), r.open({
|
87
40
|
header: { title: "script-panel.title" },
|
88
41
|
children: { label: D },
|
@@ -90,7 +43,7 @@ const D = "ScriptPanel", N = {
|
|
90
43
|
})), !0;
|
91
44
|
}
|
92
45
|
};
|
93
|
-
var
|
46
|
+
var W = { exports: {} }, E = {};
|
94
47
|
/**
|
95
48
|
* @license React
|
96
49
|
* react-jsx-runtime.production.min.js
|
@@ -100,30 +53,30 @@ var A = { exports: {} }, E = {};
|
|
100
53
|
* This source code is licensed under the MIT license found in the
|
101
54
|
* LICENSE file in the root directory of this source tree.
|
102
55
|
*/
|
103
|
-
var
|
104
|
-
function
|
105
|
-
var i, n = {},
|
106
|
-
r !== void 0 && (
|
56
|
+
var ye = ae, xe = Symbol.for("react.element"), Oe = Symbol.for("react.fragment"), Ie = Object.prototype.hasOwnProperty, be = ye.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, Ce = { key: !0, ref: !0, __self: !0, __source: !0 };
|
57
|
+
function A(t, e, r) {
|
58
|
+
var i, n = {}, o = null, s = null;
|
59
|
+
r !== void 0 && (o = "" + r), e.key !== void 0 && (o = "" + e.key), e.ref !== void 0 && (s = e.ref);
|
107
60
|
for (i in e)
|
108
|
-
|
61
|
+
Ie.call(e, i) && !Ce.hasOwnProperty(i) && (n[i] = e[i]);
|
109
62
|
if (t && t.defaultProps)
|
110
63
|
for (i in e = t.defaultProps, e)
|
111
64
|
n[i] === void 0 && (n[i] = e[i]);
|
112
|
-
return { $$typeof: xe, type: t, key:
|
65
|
+
return { $$typeof: xe, type: t, key: o, ref: s, props: n, _owner: be.current };
|
113
66
|
}
|
114
|
-
E.Fragment =
|
115
|
-
E.jsx =
|
116
|
-
E.jsxs =
|
117
|
-
|
118
|
-
var d =
|
119
|
-
class
|
67
|
+
E.Fragment = Oe;
|
68
|
+
E.jsx = A;
|
69
|
+
E.jsxs = A;
|
70
|
+
W.exports = E;
|
71
|
+
var d = W.exports;
|
72
|
+
class x extends S {
|
120
73
|
constructor(r) {
|
121
74
|
super();
|
122
75
|
u(this, "_editorInstance", null);
|
123
76
|
this._config = r;
|
124
77
|
}
|
125
78
|
setEditorInstance(r) {
|
126
|
-
return this._editorInstance = r,
|
79
|
+
return this._editorInstance = r, U(() => this._editorInstance = null);
|
127
80
|
}
|
128
81
|
getEditorInstance() {
|
129
82
|
return this._editorInstance;
|
@@ -134,13 +87,13 @@ class O extends S {
|
|
134
87
|
});
|
135
88
|
}
|
136
89
|
}
|
137
|
-
var
|
138
|
-
for (var n = i > 1 ? void 0 : i ?
|
139
|
-
(
|
140
|
-
return i && n &&
|
141
|
-
},
|
142
|
-
const
|
143
|
-
let
|
90
|
+
var we = Object.defineProperty, je = Object.getOwnPropertyDescriptor, $e = (t, e, r, i) => {
|
91
|
+
for (var n = i > 1 ? void 0 : i ? je(e, r) : e, o = t.length - 1, s; o >= 0; o--)
|
92
|
+
(s = t[o]) && (n = (i ? s(e, r, n) : s(n)) || n);
|
93
|
+
return i && n && we(e, r, n), n;
|
94
|
+
}, $ = (t, e) => (r, i) => e(r, i, t);
|
95
|
+
const F = Z("univer.uniscript.execution-service");
|
96
|
+
let O = class extends S {
|
144
97
|
constructor(t, e) {
|
145
98
|
super(), this._logService = t, this._injector = e;
|
146
99
|
}
|
@@ -154,74 +107,74 @@ let I = class extends S {
|
|
154
107
|
}
|
155
108
|
}
|
156
109
|
};
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
],
|
161
|
-
const
|
162
|
-
scriptEditorPanel:
|
163
|
-
scriptEditorContent:
|
164
|
-
scriptEditorActions:
|
110
|
+
O = $e([
|
111
|
+
$(0, z),
|
112
|
+
$(1, f(b))
|
113
|
+
], O);
|
114
|
+
const Re = "univer-script-editor-panel", Te = "univer-script-editor-content", Ue = "univer-script-editor-actions", h = {
|
115
|
+
scriptEditorPanel: Re,
|
116
|
+
scriptEditorContent: Te,
|
117
|
+
scriptEditorActions: Ue
|
165
118
|
};
|
166
|
-
function
|
167
|
-
const t =
|
119
|
+
function Me() {
|
120
|
+
const t = P(null), e = P(null), r = P(null), i = p(I), n = p(te), o = p(x);
|
168
121
|
ue(() => {
|
169
122
|
const C = e.current, a = t.current;
|
170
123
|
let c = null, _ = null;
|
171
124
|
if (C && a) {
|
172
|
-
|
173
|
-
const
|
125
|
+
o.requireVscodeEditor();
|
126
|
+
const m = r.current = fe.create(C, {
|
174
127
|
value: "",
|
175
128
|
language: "javascript"
|
176
129
|
});
|
177
130
|
_ = new ResizeObserver(() => {
|
178
|
-
let
|
179
|
-
if (!
|
131
|
+
let w = requestIdleCallback(() => {
|
132
|
+
if (!w)
|
180
133
|
return;
|
181
|
-
const { height:
|
182
|
-
|
134
|
+
const { height: L, width: B } = a.getBoundingClientRect();
|
135
|
+
m.layout({ width: B, height: L }), w = void 0;
|
183
136
|
});
|
184
137
|
}), _.observe(a);
|
185
138
|
let l;
|
186
|
-
c = new
|
187
|
-
|
139
|
+
c = new H(), c.add(o.setEditorInstance(m)), c.add(
|
140
|
+
m.onDidFocusEditorWidget(() => {
|
188
141
|
l = n.forceEscape();
|
189
142
|
})
|
190
143
|
), c.add(
|
191
|
-
|
144
|
+
m.onDidBlurEditorWidget(() => {
|
192
145
|
l == null || l.dispose(), l = void 0;
|
193
146
|
})
|
194
|
-
), c.add(
|
147
|
+
), c.add(U(() => l == null ? void 0 : l.dispose()));
|
195
148
|
}
|
196
149
|
return () => {
|
197
150
|
_ && a && _.unobserve(a), c == null || c.dispose();
|
198
151
|
};
|
199
|
-
}, [
|
200
|
-
const
|
201
|
-
return /* @__PURE__ */ d.jsxs("div", { className:
|
202
|
-
/* @__PURE__ */ d.jsx("div", { className:
|
203
|
-
/* @__PURE__ */ d.jsx("div", { className:
|
152
|
+
}, [o, n]);
|
153
|
+
const s = De(r);
|
154
|
+
return /* @__PURE__ */ d.jsxs("div", { className: h.scriptEditorPanel, children: [
|
155
|
+
/* @__PURE__ */ d.jsx("div", { className: h.scriptEditorContent, ref: t, children: /* @__PURE__ */ d.jsx("div", { className: h.scriptEditorContainer, ref: e }) }),
|
156
|
+
/* @__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") }) })
|
204
157
|
] });
|
205
158
|
}
|
206
|
-
function
|
207
|
-
const e = p(
|
159
|
+
function De(t) {
|
160
|
+
const e = p(F), r = p(re), i = p(I);
|
208
161
|
return de(() => {
|
209
|
-
var
|
210
|
-
const n = (
|
162
|
+
var o;
|
163
|
+
const n = (o = t.current) == null ? void 0 : o.getModel();
|
211
164
|
n && e.execute(n.getValue()).then(() => {
|
212
165
|
r.show({
|
213
166
|
content: i.t("uniscript.message.success"),
|
214
|
-
type:
|
167
|
+
type: j.Success
|
215
168
|
});
|
216
169
|
}).catch(() => {
|
217
170
|
r.show({
|
218
171
|
content: i.t("uniscript.message.failed"),
|
219
|
-
type:
|
172
|
+
type: j.Error
|
220
173
|
});
|
221
174
|
});
|
222
175
|
}, [i, r, t, e]);
|
223
176
|
}
|
224
|
-
function
|
177
|
+
function Ne(t) {
|
225
178
|
return {
|
226
179
|
id: N.id,
|
227
180
|
title: "toggle-script-panel",
|
@@ -230,66 +183,63 @@ function Te(t) {
|
|
230
183
|
type: ie.BUTTON,
|
231
184
|
positions: [ne.TOOLBAR_START],
|
232
185
|
// FIXME hidden$ and disabled$ are not correctly in doc
|
233
|
-
hidden$:
|
234
|
-
|
186
|
+
hidden$: oe(t, G.UNIVER_SHEET),
|
187
|
+
disabled$: me(t, { workbookTypes: [he], worksheetTypes: [ge, Se, Ee], rangeTypes: [Pe] })
|
235
188
|
};
|
236
189
|
}
|
237
|
-
var
|
238
|
-
for (var n = i > 1 ? void 0 : i ?
|
239
|
-
(
|
240
|
-
return i && n &&
|
190
|
+
var We = Object.defineProperty, Ae = Object.getOwnPropertyDescriptor, Fe = (t, e, r, i) => {
|
191
|
+
for (var n = i > 1 ? void 0 : i ? Ae(e, r) : e, o = t.length - 1, s; o >= 0; o--)
|
192
|
+
(s = t[o]) && (n = (i ? s(e, r, n) : s(n)) || n);
|
193
|
+
return i && n && We(e, r, n), n;
|
241
194
|
}, g = (t, e) => (r, i) => e(r, i, t);
|
242
|
-
const
|
195
|
+
const Le = {};
|
243
196
|
let v = class extends S {
|
244
197
|
constructor(t, e, r, i, n) {
|
245
198
|
super(), this._config = t, this._injector = e, this._menuService = r;
|
246
|
-
const { menu:
|
247
|
-
this.disposeWithMe(r.addMenuItem(this._injector.invoke(
|
199
|
+
const { menu: o = {} } = this._config;
|
200
|
+
this.disposeWithMe(r.addMenuItem(this._injector.invoke(Ne), o)), this.disposeWithMe(n.register(D, Me)), this.disposeWithMe(i.registerCommand(N));
|
248
201
|
}
|
249
202
|
};
|
250
|
-
v =
|
251
|
-
Y
|
203
|
+
v = Fe([
|
204
|
+
J(Y.Steady, v),
|
252
205
|
g(1, f(b)),
|
253
206
|
g(2, ce),
|
254
|
-
g(3,
|
255
|
-
g(4, f(
|
207
|
+
g(3, K),
|
208
|
+
g(4, f(se))
|
256
209
|
], v);
|
257
|
-
var
|
258
|
-
for (var n = i > 1 ? void 0 : i ?
|
259
|
-
(
|
260
|
-
return i && n &&
|
261
|
-
},
|
262
|
-
const
|
263
|
-
var
|
264
|
-
let
|
210
|
+
var Be = Object.defineProperty, Ve = Object.getOwnPropertyDescriptor, qe = (t, e, r, i) => {
|
211
|
+
for (var n = i > 1 ? void 0 : i ? Ve(e, r) : e, o = t.length - 1, s; o >= 0; o--)
|
212
|
+
(s = t[o]) && (n = (i ? s(e, r, n) : s(n)) || n);
|
213
|
+
return i && n && Be(e, r, n), n;
|
214
|
+
}, R = (t, e) => (r, i) => e(r, i, t);
|
215
|
+
const ke = "uniscript";
|
216
|
+
var y;
|
217
|
+
let T = (y = class extends Q {
|
265
218
|
constructor(t = {}, e, r) {
|
266
|
-
super(), this._config = t, this._injector = e, this._localeService = r, this._config =
|
219
|
+
super(), this._config = t, this._injector = e, this._localeService = r, this._config = X.deepMerge({}, Le, this._config);
|
267
220
|
}
|
268
221
|
onStarting(t) {
|
269
222
|
[
|
270
223
|
// controllers
|
271
224
|
[v, { useFactory: () => t.createInstance(v, this._config) }],
|
272
225
|
// services
|
273
|
-
[
|
274
|
-
[
|
275
|
-
].forEach((r) => t.add(r)), this.registerExecution()
|
226
|
+
[x, { useFactory: () => t.createInstance(x, this._config) }],
|
227
|
+
[M]
|
228
|
+
].forEach((r) => t.add(r)), this.registerExecution();
|
276
229
|
}
|
277
230
|
/**
|
278
231
|
* Allows being overridden, replacing with a new UniscriptExecutionService.
|
279
232
|
*/
|
280
233
|
registerExecution() {
|
281
|
-
this._injector.add([
|
234
|
+
this._injector.add([F, { useClass: O }]);
|
282
235
|
}
|
283
|
-
}, u(
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
],
|
236
|
+
}, u(y, "pluginName", ke), y);
|
237
|
+
T = qe([
|
238
|
+
R(1, f(b)),
|
239
|
+
R(2, f(I))
|
240
|
+
], T);
|
288
241
|
export {
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
ke as enUS,
|
293
|
-
et as ruRU,
|
294
|
-
ge as zhCN
|
242
|
+
F as IUniscriptExecutionService,
|
243
|
+
x as ScriptEditorService,
|
244
|
+
T as UniverUniscriptPlugin
|
295
245
|
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"script-panel": {
|
3
|
+
"title": "Uniscript",
|
4
|
+
"tooltip": {
|
5
|
+
"menu-button": "Toggle Uniscript Panel"
|
6
|
+
},
|
7
|
+
"panel": {
|
8
|
+
"execute": "Execute Script"
|
9
|
+
}
|
10
|
+
},
|
11
|
+
"uniscript": {
|
12
|
+
"message": {
|
13
|
+
"success": "Execution Success",
|
14
|
+
"failed": "Execution Failed"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"script-panel": {
|
3
|
+
"title": "Юнискрипт",
|
4
|
+
"tooltip": {
|
5
|
+
"menu-button": "Переключить панель Юнискрипт"
|
6
|
+
},
|
7
|
+
"panel": {
|
8
|
+
"execute": "Выполнить скрипт"
|
9
|
+
}
|
10
|
+
},
|
11
|
+
"uniscript": {
|
12
|
+
"message": {
|
13
|
+
"success": "Выполнение успешно",
|
14
|
+
"failed": "Выполнение не удалось"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
package/lib/types/index.d.ts
CHANGED
@@ -13,7 +13,6 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
-
export { enUS, zhCN, ruRU } from './locale';
|
17
16
|
export { UniverUniscriptPlugin } from './plugin';
|
18
17
|
export { ScriptEditorService } from './services/script-editor.service';
|
19
18
|
export { IUniscriptExecutionService } from './services/script-execution.service';
|
package/lib/umd/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
(function(
|
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,b,v,x,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),p);var C;class D extends s.Disposable{constructor(){super(...arguments);m(this,"_open$",new b.BehaviorSubject(!1));m(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 T="ScriptPanel",R={type:s.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:i=>{const e=i.get(D),n=i.get(l.ISidebarService);return e.isOpen?(e.close(),n.close()):(e.open(),n.open({header:{title:"script-panel.title"},children:{label:T},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
|
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 O=p.createIdentifier("univer.uniscript.execution-service");let w=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}}};w=Q([$(0,s.ILogService),$(1,p.Inject(p.Injector))],w);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 U=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();U.layout({width:le,height:pe}),L=void 0})}),I.observe(g);let d;a=new s.DisposableCollection,a.add(c.setEditorInstance(U)),a.add(U.onDidFocusEditorWidget(()=>{d=r.forceEscape()})),a.add(U.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(x.Button,{type:"primary",size:"small",onClick:u,children:t.t("script-panel.panel.execute")})})]})}function Z(i){const e=f.useDependency(O),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:x.MessageType.Success})}).catch(()=>{n.show({content:t.t("uniscript.message.failed"),type:x.MessageType.Error})})},[t,n,i,e])}function ee(i){return{id:R.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(T,X)),this.disposeWithMe(t.registerCommand(R))}};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=(C=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)}],[D]].forEach(t=>e.add(t)),this.registerExecution()}registerExecution(){this._injector.add([O,{useClass:w}])}},m(C,"pluginName",ue),C),o.UniverUniscriptPlugin=ce([W(1,p.Inject(p.Injector)),W(2,p.Inject(s.LocaleService))],o.UniverUniscriptPlugin),o.IUniscriptExecutionService=O,o.ScriptEditorService=P,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.13",
|
4
4
|
"private": false,
|
5
5
|
"description": "UI component library for building exceptional Univer.",
|
6
6
|
"author": "DreamNum <developer@univer.ai>",
|
@@ -34,6 +34,7 @@
|
|
34
34
|
"require": "./lib/cjs/*",
|
35
35
|
"types": "./lib/types/index.d.ts"
|
36
36
|
},
|
37
|
+
"./locale/*": "./lib/locale/*.json",
|
37
38
|
"./lib/*": "./lib/*"
|
38
39
|
},
|
39
40
|
"main": "./lib/cjs/index.js",
|
@@ -57,25 +58,32 @@
|
|
57
58
|
"monaco-editor": ">=0.44.0",
|
58
59
|
"react": "^16.9.0 || ^17.0.0 || ^18.0.0",
|
59
60
|
"rxjs": ">=7.0.0",
|
60
|
-
"@univerjs/core": "0.1.
|
61
|
-
"@univerjs/design": "0.1.
|
62
|
-
"@univerjs/
|
63
|
-
"@univerjs/ui": "0.1.
|
61
|
+
"@univerjs/core": "0.1.13",
|
62
|
+
"@univerjs/design": "0.1.13",
|
63
|
+
"@univerjs/sheets": "0.1.13",
|
64
|
+
"@univerjs/ui": "0.1.13",
|
65
|
+
"@univerjs/sheets-ui": "0.1.13",
|
66
|
+
"@univerjs/facade": "0.1.13"
|
67
|
+
},
|
68
|
+
"dependencies": {
|
69
|
+
"@univerjs/protocol": "^0.1.34",
|
70
|
+
"@univerjs/sheets": "0.1.13"
|
64
71
|
},
|
65
72
|
"devDependencies": {
|
66
73
|
"@types/react": "^18.2.79",
|
67
74
|
"@wendellhu/redi": "0.15.2",
|
68
75
|
"less": "^4.2.0",
|
69
|
-
"monaco-editor": "0.
|
76
|
+
"monaco-editor": "0.49.0",
|
70
77
|
"rxjs": "^7.8.1",
|
71
78
|
"typescript": "^5.4.5",
|
72
|
-
"vite": "^5.2.
|
79
|
+
"vite": "^5.2.12",
|
73
80
|
"vitest": "^1.6.0",
|
74
|
-
"@univerjs/
|
75
|
-
"@univerjs/
|
76
|
-
"@univerjs/
|
77
|
-
"@univerjs/ui": "0.1.
|
78
|
-
"@univerjs/
|
81
|
+
"@univerjs/design": "0.1.13",
|
82
|
+
"@univerjs/facade": "0.1.13",
|
83
|
+
"@univerjs/core": "0.1.13",
|
84
|
+
"@univerjs/sheets-ui": "0.1.13",
|
85
|
+
"@univerjs/ui": "0.1.13",
|
86
|
+
"@univerjs/shared": "0.1.13"
|
79
87
|
},
|
80
88
|
"scripts": {
|
81
89
|
"test": "vitest run",
|
@@ -1,18 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright 2023-present DreamNum Inc.
|
3
|
-
*
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
* you may not use this file except in compliance with the License.
|
6
|
-
* You may obtain a copy of the License at
|
7
|
-
*
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
*
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
* See the License for the specific language governing permissions and
|
14
|
-
* limitations under the License.
|
15
|
-
*/
|
16
|
-
export { default as enUS } from './en-US';
|
17
|
-
export { default as zhCN } from './zh-CN';
|
18
|
-
export { default as ruRU } from './ru-RU';
|