@univerjs/uniscript 0.16.1 → 0.17.0
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 +1 -1
- package/lib/es/index.js +122 -121
- package/lib/index.js +122 -121
- package/lib/types/index.d.ts +1 -1
- package/lib/types/plugin.d.ts +3 -1
- package/lib/umd/index.js +1 -1
- package/package.json +8 -8
- /package/lib/types/{controllers/config.schema.d.ts → config/config.d.ts} +0 -0
- /package/lib/types/{controllers → menu}/menu.d.ts +0 -0
- /package/lib/types/{controllers/menu.schema.d.ts → menu/schema.d.ts} +0 -0
package/lib/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var q=Object.defineProperty;var
|
|
1
|
+
"use strict";var q=Object.defineProperty;var W=(t,e,r)=>e in t?q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var p=(t,e,r)=>W(t,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),c=require("@univerjs/ui"),O=require("rxjs"),v=require("@univerjs/sheets"),F=require("@univerjs/sheets-ui"),g=require("react/jsx-runtime"),E=require("@univerjs/design"),V=require("monaco-editor"),S=require("react"),B=require("@univerjs/core/facade");class $ extends o.Disposable{constructor(){super(...arguments);p(this,"_open$",new O.BehaviorSubject(!1));p(this,"open$",this._open$.pipe(O.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",I={type:o.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get($),r=t.get(c.ISidebarService);return e.isOpen?(e.close(),r.close()):(e.open(),r.open({header:{title:"script-panel.title"},children:{label:M},width:600})),!0}},L="@univerjs/uniscript",G="0.17.0",U={name:L,version:G},T="uniscript.config",j={};function A(t){return{id:I.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeIcon",type:c.MenuItemType.BUTTON,hidden$:c.getMenuHiddenObservable(t,o.UniverInstanceType.UNIVER_SHEET),disabled$:F.getCurrentRangeDisable$(t,{workbookTypes:[v.WorkbookEditablePermission],worksheetTypes:[v.WorksheetEditPermission,v.WorksheetSetCellStylePermission,v.WorksheetSetCellValuePermission],rangeTypes:[v.RangeProtectionPermissionEditPoint]})}}const H={[c.RibbonOthersGroup.OTHERS]:{[I.id]:{order:0,menuItemFactory:A}}};var z=Object.getOwnPropertyDescriptor,K=(t,e,r,n)=>{for(var i=n>1?void 0:n?z(e,r):e,s=t.length-1,a;s>=0;s--)(a=t[s])&&(i=a(i)||i);return i},Y=(t,e)=>(r,n)=>e(r,n,t);exports.ScriptEditorService=class extends o.Disposable{constructor(r){super();p(this,"_editorInstance",null);this._configService=r}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(r){return this._editorInstance=r,o.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){const r=this._configService.getConfig(T);window.MonacoEnvironment={getWorkerUrl:r==null?void 0:r.getWorkerUrl}}}};exports.ScriptEditorService=K([Y(0,o.IConfigService)],exports.ScriptEditorService);var J=Object.getOwnPropertyDescriptor,Q=(t,e,r,n)=>{for(var i=n>1?void 0:n?J(e,r):e,s=t.length-1,a;s>=0;s--)(a=t[s])&&(i=a(i)||i);return i},w=(t,e)=>(r,n)=>e(r,n,t);const b=o.createIdentifier("univer.uniscript.execution-service");let y=class extends o.Disposable{constructor(t,e){super(),this._logService=t,this._injector=e}async execute(t){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=B.FUniver.newAPI(this._injector),r=new Function("univerAPI",`(() => {${t}})()`);try{return r(e),!0}catch(n){return this._logService.error(n),!1}}};y=Q([w(0,o.ILogService),w(1,o.Inject(o.Injector))],y);function X(){const t=S.useRef(null),e=S.useRef(null),r=S.useRef(null),n=c.useDependency(o.LocaleService),i=c.useDependency(c.IShortcutService),s=c.useDependency(exports.ScriptEditorService),a=c.useDependency(o.ThemeService);S.useEffect(()=>{const C=e.current,d=t.current;let u=null,_=null;if(C&&d){s.requireVscodeEditor();const f=r.current=V.editor.create(C,{value:"",language:"javascript",theme:a.darkMode?"vs-dark":"vs-light"});_=new ResizeObserver(()=>{let x=requestIdleCallback(()=>{if(!x)return;const{height:N,width:k}=d.getBoundingClientRect();f.layout({width:k,height:N}),x=void 0})}),_.observe(d);let l;u=new o.DisposableCollection,u.add(s.setEditorInstance(f)),u.add(f.onDidFocusEditorWidget(()=>{l=i.forceEscape()})),u.add(f.onDidBlurEditorWidget(()=>{l==null||l.dispose(),l=void 0})),u.add(o.toDisposable(()=>l==null?void 0:l.dispose()))}return()=>{_&&d&&_.unobserve(d),u==null||u.dispose()}},[s,i]);const R=Z(r);return g.jsxs("div",{className:"univer-h-full",children:[g.jsx("div",{ref:t,className:"univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden",children:g.jsx("div",{ref:e})}),g.jsx("div",{className:"univer-mt-2.5",children:g.jsx(E.Button,{variant:"primary",onClick:R,children:n.t("script-panel.panel.execute")})})]})}function Z(t){const e=c.useDependency(b),r=c.useDependency(c.IMessageService),n=c.useDependency(o.LocaleService);return S.useCallback(()=>{var s;const i=(s=t.current)==null?void 0:s.getModel();i&&e.execute(i.getValue()).then(()=>{r.show({content:n.t("uniscript.message.success"),type:E.MessageType.Success})}).catch(()=>{r.show({content:n.t("uniscript.message.failed"),type:E.MessageType.Error})})},[n,r,t,e])}var ee=Object.getOwnPropertyDescriptor,te=(t,e,r,n)=>{for(var i=n>1?void 0:n?ee(e,r):e,s=t.length-1,a;s>=0;s--)(a=t[s])&&(i=a(i)||i);return i},P=(t,e)=>(r,n)=>e(r,n,t);let m=class extends o.Disposable{constructor(t,e,r){super(),this._menuManagerService=t,this._menuManagerService.mergeMenu(H),this.disposeWithMe(r.register(M,X)),this.disposeWithMe(e.registerCommand(I))}};m=te([P(0,c.IMenuManagerService),P(1,o.ICommandService),P(2,o.Inject(c.ComponentManager))],m);var re=Object.getOwnPropertyDescriptor,ne=(t,e,r,n)=>{for(var i=n>1?void 0:n?re(e,r):e,s=t.length-1,a;s>=0;s--)(a=t[s])&&(i=a(i)||i);return i},D=(t,e)=>(r,n)=>e(r,n,t),h;exports.UniverUniscriptPlugin=(h=class extends o.Plugin{constructor(e=j,r,n){super(),this._config=e,this._injector=r,this._configService=n;const{menu:i,...s}=o.merge({},j,this._config);i&&this._configService.setConfig("menu",i,{merge:!0}),this._configService.setConfig(T,s)}onStarting(){const e=this._injector;[[m],[exports.ScriptEditorService],[$]].forEach(n=>e.add(n)),this.registerExecution()}onSteady(){this._injector.get(m)}registerExecution(){this._injector.add([b,{useClass:y}])}},p(h,"pluginName","UNIVER_UNISCRIPT_PLUGIN"),p(h,"packageName",U.name),p(h,"version",U.version),h);exports.UniverUniscriptPlugin=ne([D(1,o.Inject(o.Injector)),D(2,o.IConfigService)],exports.UniverUniscriptPlugin);exports.IUniscriptExecutionService=b;exports.ToggleScriptPanelOperation=I;
|
package/lib/es/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { Disposable as
|
|
5
|
-
import { ISidebarService as
|
|
6
|
-
import { BehaviorSubject as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
class
|
|
1
|
+
var L = Object.defineProperty;
|
|
2
|
+
var q = (t, e, r) => e in t ? L(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
|
|
3
|
+
var l = (t, e, r) => q(t, typeof e != "symbol" ? e + "" : e, r);
|
|
4
|
+
import { Disposable as f, CommandType as A, UniverInstanceType as H, toDisposable as M, IConfigService as T, createIdentifier as z, ILogService as K, Inject as E, Injector as D, LocaleService as N, ThemeService as Y, DisposableCollection as J, ICommandService as Q, Plugin as X, merge as Z } from "@univerjs/core";
|
|
5
|
+
import { ISidebarService as ee, getMenuHiddenObservable as te, MenuItemType as re, RibbonOthersGroup as ne, useDependency as u, IShortcutService as ie, IMessageService as se, IMenuManagerService as oe, ComponentManager as ce } from "@univerjs/ui";
|
|
6
|
+
import { BehaviorSubject as ae, distinctUntilChanged as le } from "rxjs";
|
|
7
|
+
import { RangeProtectionPermissionEditPoint as ue, WorksheetEditPermission as pe, WorksheetSetCellStylePermission as de, WorksheetSetCellValuePermission as ve, WorkbookEditablePermission as ge } from "@univerjs/sheets";
|
|
8
|
+
import { getCurrentRangeDisable$ as he } from "@univerjs/sheets-ui";
|
|
9
|
+
import { jsxs as me, jsx as h } from "react/jsx-runtime";
|
|
10
|
+
import { Button as _e, MessageType as w } from "@univerjs/design";
|
|
11
|
+
import { editor as fe } from "monaco-editor";
|
|
12
|
+
import { useRef as S, useEffect as Se, useCallback as Ie } from "react";
|
|
13
|
+
import { FUniver as Pe } from "@univerjs/core/facade";
|
|
14
|
+
class R extends f {
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
l(this, "_open$", new ae(!1));
|
|
18
|
+
l(this, "open$", this._open$.pipe(le()));
|
|
19
19
|
}
|
|
20
20
|
get isOpen() {
|
|
21
21
|
return this._open$.getValue();
|
|
@@ -30,27 +30,50 @@ class D extends _ {
|
|
|
30
30
|
this._open$.next(!1);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
const
|
|
33
|
+
const k = "ScriptPanel", C = {
|
|
34
34
|
type: A.OPERATION,
|
|
35
35
|
id: "univer.operation.toggle-script-panel",
|
|
36
36
|
handler: (t) => {
|
|
37
|
-
const e = t.get(
|
|
37
|
+
const e = t.get(R), r = t.get(ee);
|
|
38
38
|
return e.isOpen ? (e.close(), r.close()) : (e.open(), r.open({
|
|
39
39
|
header: { title: "script-panel.title" },
|
|
40
|
-
children: { label:
|
|
40
|
+
children: { label: k },
|
|
41
41
|
width: 600
|
|
42
42
|
})), !0;
|
|
43
43
|
}
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
}, Ee = "@univerjs/uniscript", Ce = "0.17.0", x = {
|
|
45
|
+
name: Ee,
|
|
46
|
+
version: Ce
|
|
47
|
+
}, W = "uniscript.config", y = {};
|
|
48
|
+
function be(t) {
|
|
49
|
+
return {
|
|
50
|
+
id: C.id,
|
|
51
|
+
title: "toggle-script-panel",
|
|
52
|
+
tooltip: "script-panel.tooltip.menu-button",
|
|
53
|
+
icon: "CodeIcon",
|
|
54
|
+
type: re.BUTTON,
|
|
55
|
+
// FIXME hidden$ and disabled$ are not correctly in doc
|
|
56
|
+
hidden$: te(t, H.UNIVER_SHEET),
|
|
57
|
+
disabled$: he(t, { workbookTypes: [ge], worksheetTypes: [pe, de, ve], rangeTypes: [ue] })
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const Oe = {
|
|
61
|
+
[ne.OTHERS]: {
|
|
62
|
+
[C.id]: {
|
|
63
|
+
order: 0,
|
|
64
|
+
menuItemFactory: be
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var we = Object.getOwnPropertyDescriptor, xe = (t, e, r, n) => {
|
|
69
|
+
for (var i = n > 1 ? void 0 : n ? we(e, r) : e, s = t.length - 1, o; s >= 0; s--)
|
|
70
|
+
(o = t[s]) && (i = o(i) || i);
|
|
48
71
|
return i;
|
|
49
|
-
},
|
|
50
|
-
let
|
|
72
|
+
}, ye = (t, e) => (r, n) => e(r, n, t);
|
|
73
|
+
let m = class extends f {
|
|
51
74
|
constructor(e) {
|
|
52
75
|
super();
|
|
53
|
-
|
|
76
|
+
l(this, "_editorInstance", null);
|
|
54
77
|
this._configService = e;
|
|
55
78
|
}
|
|
56
79
|
dispose() {
|
|
@@ -64,27 +87,27 @@ let h = class extends _ {
|
|
|
64
87
|
}
|
|
65
88
|
requireVscodeEditor() {
|
|
66
89
|
if (!window.MonacoEnvironment) {
|
|
67
|
-
const e = this._configService.getConfig(
|
|
90
|
+
const e = this._configService.getConfig(W);
|
|
68
91
|
window.MonacoEnvironment = { getWorkerUrl: e == null ? void 0 : e.getWorkerUrl };
|
|
69
92
|
}
|
|
70
93
|
}
|
|
71
94
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
],
|
|
75
|
-
var
|
|
76
|
-
for (var i = n > 1 ? void 0 : n ?
|
|
77
|
-
(
|
|
95
|
+
m = xe([
|
|
96
|
+
ye(0, T)
|
|
97
|
+
], m);
|
|
98
|
+
var $e = Object.getOwnPropertyDescriptor, Ue = (t, e, r, n) => {
|
|
99
|
+
for (var i = n > 1 ? void 0 : n ? $e(e, r) : e, s = t.length - 1, o; s >= 0; s--)
|
|
100
|
+
(o = t[s]) && (i = o(i) || i);
|
|
78
101
|
return i;
|
|
79
|
-
},
|
|
80
|
-
const
|
|
81
|
-
let P = class extends
|
|
102
|
+
}, $ = (t, e) => (r, n) => e(r, n, t);
|
|
103
|
+
const F = z("univer.uniscript.execution-service");
|
|
104
|
+
let P = class extends f {
|
|
82
105
|
constructor(t, e) {
|
|
83
106
|
super(), this._logService = t, this._injector = e;
|
|
84
107
|
}
|
|
85
108
|
async execute(t) {
|
|
86
109
|
this._logService.log("[UniscriptExecutionService]", "executing Uniscript...");
|
|
87
|
-
const e =
|
|
110
|
+
const e = Pe.newAPI(this._injector), r = new Function("univerAPI", `(() => {${t}})()`);
|
|
88
111
|
try {
|
|
89
112
|
return r(e), !0;
|
|
90
113
|
} catch (n) {
|
|
@@ -92,55 +115,55 @@ let P = class extends _ {
|
|
|
92
115
|
}
|
|
93
116
|
}
|
|
94
117
|
};
|
|
95
|
-
P =
|
|
96
|
-
|
|
97
|
-
|
|
118
|
+
P = Ue([
|
|
119
|
+
$(0, K),
|
|
120
|
+
$(1, E(D))
|
|
98
121
|
], P);
|
|
99
|
-
function
|
|
100
|
-
const t =
|
|
101
|
-
|
|
102
|
-
const b = e.current,
|
|
103
|
-
let c = null,
|
|
104
|
-
if (b &&
|
|
105
|
-
|
|
106
|
-
const
|
|
122
|
+
function je() {
|
|
123
|
+
const t = S(null), e = S(null), r = S(null), n = u(N), i = u(ie), s = u(m), o = u(Y);
|
|
124
|
+
Se(() => {
|
|
125
|
+
const b = e.current, p = t.current;
|
|
126
|
+
let c = null, v = null;
|
|
127
|
+
if (b && p) {
|
|
128
|
+
s.requireVscodeEditor();
|
|
129
|
+
const g = r.current = fe.create(b, {
|
|
107
130
|
value: "",
|
|
108
131
|
language: "javascript",
|
|
109
|
-
theme:
|
|
132
|
+
theme: o.darkMode ? "vs-dark" : "vs-light"
|
|
110
133
|
});
|
|
111
|
-
|
|
134
|
+
v = new ResizeObserver(() => {
|
|
112
135
|
let O = requestIdleCallback(() => {
|
|
113
136
|
if (!O) return;
|
|
114
|
-
const { height:
|
|
115
|
-
|
|
137
|
+
const { height: B, width: G } = p.getBoundingClientRect();
|
|
138
|
+
g.layout({ width: G, height: B }), O = void 0;
|
|
116
139
|
});
|
|
117
|
-
}),
|
|
140
|
+
}), v.observe(p);
|
|
118
141
|
let a;
|
|
119
|
-
c = new
|
|
120
|
-
|
|
142
|
+
c = new J(), c.add(s.setEditorInstance(g)), c.add(
|
|
143
|
+
g.onDidFocusEditorWidget(() => {
|
|
121
144
|
a = i.forceEscape();
|
|
122
145
|
})
|
|
123
146
|
), c.add(
|
|
124
|
-
|
|
147
|
+
g.onDidBlurEditorWidget(() => {
|
|
125
148
|
a == null || a.dispose(), a = void 0;
|
|
126
149
|
})
|
|
127
150
|
), c.add(M(() => a == null ? void 0 : a.dispose()));
|
|
128
151
|
}
|
|
129
152
|
return () => {
|
|
130
|
-
|
|
153
|
+
v && p && v.unobserve(p), c == null || c.dispose();
|
|
131
154
|
};
|
|
132
|
-
}, [
|
|
133
|
-
const
|
|
134
|
-
return /* @__PURE__ */
|
|
135
|
-
/* @__PURE__ */
|
|
136
|
-
/* @__PURE__ */
|
|
155
|
+
}, [s, i]);
|
|
156
|
+
const V = Me(r);
|
|
157
|
+
return /* @__PURE__ */ me("div", { className: "univer-h-full", children: [
|
|
158
|
+
/* @__PURE__ */ h("div", { ref: t, className: "univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden", children: /* @__PURE__ */ h("div", { ref: e }) }),
|
|
159
|
+
/* @__PURE__ */ h("div", { className: "univer-mt-2.5", children: /* @__PURE__ */ h(_e, { variant: "primary", onClick: V, children: n.t("script-panel.panel.execute") }) })
|
|
137
160
|
] });
|
|
138
161
|
}
|
|
139
|
-
function
|
|
140
|
-
const e =
|
|
141
|
-
return
|
|
142
|
-
var
|
|
143
|
-
const i = (
|
|
162
|
+
function Me(t) {
|
|
163
|
+
const e = u(F), r = u(se), n = u(N);
|
|
164
|
+
return Ie(() => {
|
|
165
|
+
var s;
|
|
166
|
+
const i = (s = t.current) == null ? void 0 : s.getModel();
|
|
144
167
|
i && e.execute(i.getValue()).then(() => {
|
|
145
168
|
r.show({
|
|
146
169
|
content: n.t("uniscript.message.success"),
|
|
@@ -154,83 +177,61 @@ function xe(t) {
|
|
|
154
177
|
});
|
|
155
178
|
}, [n, r, t, e]);
|
|
156
179
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
title: "toggle-script-panel",
|
|
161
|
-
tooltip: "script-panel.tooltip.menu-button",
|
|
162
|
-
icon: "CodeIcon",
|
|
163
|
-
type: ne.BUTTON,
|
|
164
|
-
// FIXME hidden$ and disabled$ are not correctly in doc
|
|
165
|
-
hidden$: re(t, Y.UNIVER_SHEET),
|
|
166
|
-
disabled$: Ie(t, { workbookTypes: [Se], worksheetTypes: [me, _e, fe], rangeTypes: [he] })
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
const Ue = {
|
|
170
|
-
[ie.OTHERS]: {
|
|
171
|
-
[C.id]: {
|
|
172
|
-
order: 0,
|
|
173
|
-
menuItemFactory: ye
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
var $e = Object.getOwnPropertyDescriptor, Me = (t, e, r, n) => {
|
|
178
|
-
for (var i = n > 1 ? void 0 : n ? $e(e, r) : e, o = t.length - 1, s; o >= 0; o--)
|
|
179
|
-
(s = t[o]) && (i = s(i) || i);
|
|
180
|
+
var Te = Object.getOwnPropertyDescriptor, De = (t, e, r, n) => {
|
|
181
|
+
for (var i = n > 1 ? void 0 : n ? Te(e, r) : e, s = t.length - 1, o; s >= 0; s--)
|
|
182
|
+
(o = t[s]) && (i = o(i) || i);
|
|
180
183
|
return i;
|
|
181
|
-
},
|
|
182
|
-
let
|
|
184
|
+
}, I = (t, e) => (r, n) => e(r, n, t);
|
|
185
|
+
let _ = class extends f {
|
|
183
186
|
constructor(t, e, r) {
|
|
184
|
-
super(), this._menuManagerService = t, this._menuManagerService.mergeMenu(
|
|
187
|
+
super(), this._menuManagerService = t, this._menuManagerService.mergeMenu(Oe), this.disposeWithMe(r.register(k, je)), this.disposeWithMe(e.registerCommand(C));
|
|
185
188
|
}
|
|
186
189
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
],
|
|
192
|
-
var
|
|
193
|
-
for (var i = n > 1 ? void 0 : n ?
|
|
194
|
-
(
|
|
190
|
+
_ = De([
|
|
191
|
+
I(0, oe),
|
|
192
|
+
I(1, Q),
|
|
193
|
+
I(2, E(ce))
|
|
194
|
+
], _);
|
|
195
|
+
var Ne = Object.getOwnPropertyDescriptor, Re = (t, e, r, n) => {
|
|
196
|
+
for (var i = n > 1 ? void 0 : n ? Ne(e, r) : e, s = t.length - 1, o; s >= 0; s--)
|
|
197
|
+
(o = t[s]) && (i = o(i) || i);
|
|
195
198
|
return i;
|
|
196
|
-
}, U = (t, e) => (r, n) => e(r, n, t);
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
let $ = (I = class extends Q {
|
|
200
|
-
constructor(t = x, e, r) {
|
|
199
|
+
}, U = (t, e) => (r, n) => e(r, n, t), d;
|
|
200
|
+
let j = (d = class extends X {
|
|
201
|
+
constructor(t = y, e, r) {
|
|
201
202
|
super(), this._config = t, this._injector = e, this._configService = r;
|
|
202
|
-
const { menu: n, ...i } =
|
|
203
|
+
const { menu: n, ...i } = Z(
|
|
203
204
|
{},
|
|
204
|
-
|
|
205
|
+
y,
|
|
205
206
|
this._config
|
|
206
207
|
);
|
|
207
|
-
n && this._configService.setConfig("menu", n, { merge: !0 }), this._configService.setConfig(
|
|
208
|
+
n && this._configService.setConfig("menu", n, { merge: !0 }), this._configService.setConfig(W, i);
|
|
208
209
|
}
|
|
209
210
|
onStarting() {
|
|
210
211
|
const t = this._injector;
|
|
211
212
|
[
|
|
213
|
+
[_],
|
|
212
214
|
[m],
|
|
213
|
-
[
|
|
214
|
-
[D]
|
|
215
|
+
[R]
|
|
215
216
|
].forEach((r) => t.add(r)), this.registerExecution();
|
|
216
217
|
}
|
|
217
218
|
onSteady() {
|
|
218
|
-
this._injector.get(
|
|
219
|
+
this._injector.get(_);
|
|
219
220
|
}
|
|
220
221
|
/**
|
|
221
222
|
* Allows being overridden, replacing with a new UniscriptExecutionService.
|
|
222
223
|
*/
|
|
223
224
|
registerExecution() {
|
|
224
|
-
this._injector.add([
|
|
225
|
+
this._injector.add([F, { useClass: P }]);
|
|
225
226
|
}
|
|
226
|
-
},
|
|
227
|
-
|
|
228
|
-
U(1, E(
|
|
229
|
-
U(2,
|
|
230
|
-
],
|
|
227
|
+
}, l(d, "pluginName", "UNIVER_UNISCRIPT_PLUGIN"), l(d, "packageName", x.name), l(d, "version", x.version), d);
|
|
228
|
+
j = Re([
|
|
229
|
+
U(1, E(D)),
|
|
230
|
+
U(2, T)
|
|
231
|
+
], j);
|
|
231
232
|
export {
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
F as IUniscriptExecutionService,
|
|
234
|
+
m as ScriptEditorService,
|
|
234
235
|
C as ToggleScriptPanelOperation,
|
|
235
|
-
|
|
236
|
+
j as UniverUniscriptPlugin
|
|
236
237
|
};
|
package/lib/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { Disposable as
|
|
5
|
-
import { ISidebarService as
|
|
6
|
-
import { BehaviorSubject as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
class
|
|
1
|
+
var L = Object.defineProperty;
|
|
2
|
+
var q = (t, e, r) => e in t ? L(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
|
|
3
|
+
var l = (t, e, r) => q(t, typeof e != "symbol" ? e + "" : e, r);
|
|
4
|
+
import { Disposable as f, CommandType as A, UniverInstanceType as H, toDisposable as M, IConfigService as T, createIdentifier as z, ILogService as K, Inject as E, Injector as D, LocaleService as N, ThemeService as Y, DisposableCollection as J, ICommandService as Q, Plugin as X, merge as Z } from "@univerjs/core";
|
|
5
|
+
import { ISidebarService as ee, getMenuHiddenObservable as te, MenuItemType as re, RibbonOthersGroup as ne, useDependency as u, IShortcutService as ie, IMessageService as se, IMenuManagerService as oe, ComponentManager as ce } from "@univerjs/ui";
|
|
6
|
+
import { BehaviorSubject as ae, distinctUntilChanged as le } from "rxjs";
|
|
7
|
+
import { RangeProtectionPermissionEditPoint as ue, WorksheetEditPermission as pe, WorksheetSetCellStylePermission as de, WorksheetSetCellValuePermission as ve, WorkbookEditablePermission as ge } from "@univerjs/sheets";
|
|
8
|
+
import { getCurrentRangeDisable$ as he } from "@univerjs/sheets-ui";
|
|
9
|
+
import { jsxs as me, jsx as h } from "react/jsx-runtime";
|
|
10
|
+
import { Button as _e, MessageType as w } from "@univerjs/design";
|
|
11
|
+
import { editor as fe } from "monaco-editor";
|
|
12
|
+
import { useRef as S, useEffect as Se, useCallback as Ie } from "react";
|
|
13
|
+
import { FUniver as Pe } from "@univerjs/core/facade";
|
|
14
|
+
class R extends f {
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
l(this, "_open$", new ae(!1));
|
|
18
|
+
l(this, "open$", this._open$.pipe(le()));
|
|
19
19
|
}
|
|
20
20
|
get isOpen() {
|
|
21
21
|
return this._open$.getValue();
|
|
@@ -30,27 +30,50 @@ class D extends _ {
|
|
|
30
30
|
this._open$.next(!1);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
const
|
|
33
|
+
const k = "ScriptPanel", C = {
|
|
34
34
|
type: A.OPERATION,
|
|
35
35
|
id: "univer.operation.toggle-script-panel",
|
|
36
36
|
handler: (t) => {
|
|
37
|
-
const e = t.get(
|
|
37
|
+
const e = t.get(R), r = t.get(ee);
|
|
38
38
|
return e.isOpen ? (e.close(), r.close()) : (e.open(), r.open({
|
|
39
39
|
header: { title: "script-panel.title" },
|
|
40
|
-
children: { label:
|
|
40
|
+
children: { label: k },
|
|
41
41
|
width: 600
|
|
42
42
|
})), !0;
|
|
43
43
|
}
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
}, Ee = "@univerjs/uniscript", Ce = "0.17.0", x = {
|
|
45
|
+
name: Ee,
|
|
46
|
+
version: Ce
|
|
47
|
+
}, W = "uniscript.config", y = {};
|
|
48
|
+
function be(t) {
|
|
49
|
+
return {
|
|
50
|
+
id: C.id,
|
|
51
|
+
title: "toggle-script-panel",
|
|
52
|
+
tooltip: "script-panel.tooltip.menu-button",
|
|
53
|
+
icon: "CodeIcon",
|
|
54
|
+
type: re.BUTTON,
|
|
55
|
+
// FIXME hidden$ and disabled$ are not correctly in doc
|
|
56
|
+
hidden$: te(t, H.UNIVER_SHEET),
|
|
57
|
+
disabled$: he(t, { workbookTypes: [ge], worksheetTypes: [pe, de, ve], rangeTypes: [ue] })
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const Oe = {
|
|
61
|
+
[ne.OTHERS]: {
|
|
62
|
+
[C.id]: {
|
|
63
|
+
order: 0,
|
|
64
|
+
menuItemFactory: be
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var we = Object.getOwnPropertyDescriptor, xe = (t, e, r, n) => {
|
|
69
|
+
for (var i = n > 1 ? void 0 : n ? we(e, r) : e, s = t.length - 1, o; s >= 0; s--)
|
|
70
|
+
(o = t[s]) && (i = o(i) || i);
|
|
48
71
|
return i;
|
|
49
|
-
},
|
|
50
|
-
let
|
|
72
|
+
}, ye = (t, e) => (r, n) => e(r, n, t);
|
|
73
|
+
let m = class extends f {
|
|
51
74
|
constructor(e) {
|
|
52
75
|
super();
|
|
53
|
-
|
|
76
|
+
l(this, "_editorInstance", null);
|
|
54
77
|
this._configService = e;
|
|
55
78
|
}
|
|
56
79
|
dispose() {
|
|
@@ -64,27 +87,27 @@ let h = class extends _ {
|
|
|
64
87
|
}
|
|
65
88
|
requireVscodeEditor() {
|
|
66
89
|
if (!window.MonacoEnvironment) {
|
|
67
|
-
const e = this._configService.getConfig(
|
|
90
|
+
const e = this._configService.getConfig(W);
|
|
68
91
|
window.MonacoEnvironment = { getWorkerUrl: e == null ? void 0 : e.getWorkerUrl };
|
|
69
92
|
}
|
|
70
93
|
}
|
|
71
94
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
],
|
|
75
|
-
var
|
|
76
|
-
for (var i = n > 1 ? void 0 : n ?
|
|
77
|
-
(
|
|
95
|
+
m = xe([
|
|
96
|
+
ye(0, T)
|
|
97
|
+
], m);
|
|
98
|
+
var $e = Object.getOwnPropertyDescriptor, Ue = (t, e, r, n) => {
|
|
99
|
+
for (var i = n > 1 ? void 0 : n ? $e(e, r) : e, s = t.length - 1, o; s >= 0; s--)
|
|
100
|
+
(o = t[s]) && (i = o(i) || i);
|
|
78
101
|
return i;
|
|
79
|
-
},
|
|
80
|
-
const
|
|
81
|
-
let P = class extends
|
|
102
|
+
}, $ = (t, e) => (r, n) => e(r, n, t);
|
|
103
|
+
const F = z("univer.uniscript.execution-service");
|
|
104
|
+
let P = class extends f {
|
|
82
105
|
constructor(t, e) {
|
|
83
106
|
super(), this._logService = t, this._injector = e;
|
|
84
107
|
}
|
|
85
108
|
async execute(t) {
|
|
86
109
|
this._logService.log("[UniscriptExecutionService]", "executing Uniscript...");
|
|
87
|
-
const e =
|
|
110
|
+
const e = Pe.newAPI(this._injector), r = new Function("univerAPI", `(() => {${t}})()`);
|
|
88
111
|
try {
|
|
89
112
|
return r(e), !0;
|
|
90
113
|
} catch (n) {
|
|
@@ -92,55 +115,55 @@ let P = class extends _ {
|
|
|
92
115
|
}
|
|
93
116
|
}
|
|
94
117
|
};
|
|
95
|
-
P =
|
|
96
|
-
|
|
97
|
-
|
|
118
|
+
P = Ue([
|
|
119
|
+
$(0, K),
|
|
120
|
+
$(1, E(D))
|
|
98
121
|
], P);
|
|
99
|
-
function
|
|
100
|
-
const t =
|
|
101
|
-
|
|
102
|
-
const b = e.current,
|
|
103
|
-
let c = null,
|
|
104
|
-
if (b &&
|
|
105
|
-
|
|
106
|
-
const
|
|
122
|
+
function je() {
|
|
123
|
+
const t = S(null), e = S(null), r = S(null), n = u(N), i = u(ie), s = u(m), o = u(Y);
|
|
124
|
+
Se(() => {
|
|
125
|
+
const b = e.current, p = t.current;
|
|
126
|
+
let c = null, v = null;
|
|
127
|
+
if (b && p) {
|
|
128
|
+
s.requireVscodeEditor();
|
|
129
|
+
const g = r.current = fe.create(b, {
|
|
107
130
|
value: "",
|
|
108
131
|
language: "javascript",
|
|
109
|
-
theme:
|
|
132
|
+
theme: o.darkMode ? "vs-dark" : "vs-light"
|
|
110
133
|
});
|
|
111
|
-
|
|
134
|
+
v = new ResizeObserver(() => {
|
|
112
135
|
let O = requestIdleCallback(() => {
|
|
113
136
|
if (!O) return;
|
|
114
|
-
const { height:
|
|
115
|
-
|
|
137
|
+
const { height: B, width: G } = p.getBoundingClientRect();
|
|
138
|
+
g.layout({ width: G, height: B }), O = void 0;
|
|
116
139
|
});
|
|
117
|
-
}),
|
|
140
|
+
}), v.observe(p);
|
|
118
141
|
let a;
|
|
119
|
-
c = new
|
|
120
|
-
|
|
142
|
+
c = new J(), c.add(s.setEditorInstance(g)), c.add(
|
|
143
|
+
g.onDidFocusEditorWidget(() => {
|
|
121
144
|
a = i.forceEscape();
|
|
122
145
|
})
|
|
123
146
|
), c.add(
|
|
124
|
-
|
|
147
|
+
g.onDidBlurEditorWidget(() => {
|
|
125
148
|
a == null || a.dispose(), a = void 0;
|
|
126
149
|
})
|
|
127
150
|
), c.add(M(() => a == null ? void 0 : a.dispose()));
|
|
128
151
|
}
|
|
129
152
|
return () => {
|
|
130
|
-
|
|
153
|
+
v && p && v.unobserve(p), c == null || c.dispose();
|
|
131
154
|
};
|
|
132
|
-
}, [
|
|
133
|
-
const
|
|
134
|
-
return /* @__PURE__ */
|
|
135
|
-
/* @__PURE__ */
|
|
136
|
-
/* @__PURE__ */
|
|
155
|
+
}, [s, i]);
|
|
156
|
+
const V = Me(r);
|
|
157
|
+
return /* @__PURE__ */ me("div", { className: "univer-h-full", children: [
|
|
158
|
+
/* @__PURE__ */ h("div", { ref: t, className: "univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden", children: /* @__PURE__ */ h("div", { ref: e }) }),
|
|
159
|
+
/* @__PURE__ */ h("div", { className: "univer-mt-2.5", children: /* @__PURE__ */ h(_e, { variant: "primary", onClick: V, children: n.t("script-panel.panel.execute") }) })
|
|
137
160
|
] });
|
|
138
161
|
}
|
|
139
|
-
function
|
|
140
|
-
const e =
|
|
141
|
-
return
|
|
142
|
-
var
|
|
143
|
-
const i = (
|
|
162
|
+
function Me(t) {
|
|
163
|
+
const e = u(F), r = u(se), n = u(N);
|
|
164
|
+
return Ie(() => {
|
|
165
|
+
var s;
|
|
166
|
+
const i = (s = t.current) == null ? void 0 : s.getModel();
|
|
144
167
|
i && e.execute(i.getValue()).then(() => {
|
|
145
168
|
r.show({
|
|
146
169
|
content: n.t("uniscript.message.success"),
|
|
@@ -154,83 +177,61 @@ function xe(t) {
|
|
|
154
177
|
});
|
|
155
178
|
}, [n, r, t, e]);
|
|
156
179
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
title: "toggle-script-panel",
|
|
161
|
-
tooltip: "script-panel.tooltip.menu-button",
|
|
162
|
-
icon: "CodeIcon",
|
|
163
|
-
type: ne.BUTTON,
|
|
164
|
-
// FIXME hidden$ and disabled$ are not correctly in doc
|
|
165
|
-
hidden$: re(t, Y.UNIVER_SHEET),
|
|
166
|
-
disabled$: Ie(t, { workbookTypes: [Se], worksheetTypes: [me, _e, fe], rangeTypes: [he] })
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
const Ue = {
|
|
170
|
-
[ie.OTHERS]: {
|
|
171
|
-
[C.id]: {
|
|
172
|
-
order: 0,
|
|
173
|
-
menuItemFactory: ye
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
var $e = Object.getOwnPropertyDescriptor, Me = (t, e, r, n) => {
|
|
178
|
-
for (var i = n > 1 ? void 0 : n ? $e(e, r) : e, o = t.length - 1, s; o >= 0; o--)
|
|
179
|
-
(s = t[o]) && (i = s(i) || i);
|
|
180
|
+
var Te = Object.getOwnPropertyDescriptor, De = (t, e, r, n) => {
|
|
181
|
+
for (var i = n > 1 ? void 0 : n ? Te(e, r) : e, s = t.length - 1, o; s >= 0; s--)
|
|
182
|
+
(o = t[s]) && (i = o(i) || i);
|
|
180
183
|
return i;
|
|
181
|
-
},
|
|
182
|
-
let
|
|
184
|
+
}, I = (t, e) => (r, n) => e(r, n, t);
|
|
185
|
+
let _ = class extends f {
|
|
183
186
|
constructor(t, e, r) {
|
|
184
|
-
super(), this._menuManagerService = t, this._menuManagerService.mergeMenu(
|
|
187
|
+
super(), this._menuManagerService = t, this._menuManagerService.mergeMenu(Oe), this.disposeWithMe(r.register(k, je)), this.disposeWithMe(e.registerCommand(C));
|
|
185
188
|
}
|
|
186
189
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
],
|
|
192
|
-
var
|
|
193
|
-
for (var i = n > 1 ? void 0 : n ?
|
|
194
|
-
(
|
|
190
|
+
_ = De([
|
|
191
|
+
I(0, oe),
|
|
192
|
+
I(1, Q),
|
|
193
|
+
I(2, E(ce))
|
|
194
|
+
], _);
|
|
195
|
+
var Ne = Object.getOwnPropertyDescriptor, Re = (t, e, r, n) => {
|
|
196
|
+
for (var i = n > 1 ? void 0 : n ? Ne(e, r) : e, s = t.length - 1, o; s >= 0; s--)
|
|
197
|
+
(o = t[s]) && (i = o(i) || i);
|
|
195
198
|
return i;
|
|
196
|
-
}, U = (t, e) => (r, n) => e(r, n, t);
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
let $ = (I = class extends Q {
|
|
200
|
-
constructor(t = x, e, r) {
|
|
199
|
+
}, U = (t, e) => (r, n) => e(r, n, t), d;
|
|
200
|
+
let j = (d = class extends X {
|
|
201
|
+
constructor(t = y, e, r) {
|
|
201
202
|
super(), this._config = t, this._injector = e, this._configService = r;
|
|
202
|
-
const { menu: n, ...i } =
|
|
203
|
+
const { menu: n, ...i } = Z(
|
|
203
204
|
{},
|
|
204
|
-
|
|
205
|
+
y,
|
|
205
206
|
this._config
|
|
206
207
|
);
|
|
207
|
-
n && this._configService.setConfig("menu", n, { merge: !0 }), this._configService.setConfig(
|
|
208
|
+
n && this._configService.setConfig("menu", n, { merge: !0 }), this._configService.setConfig(W, i);
|
|
208
209
|
}
|
|
209
210
|
onStarting() {
|
|
210
211
|
const t = this._injector;
|
|
211
212
|
[
|
|
213
|
+
[_],
|
|
212
214
|
[m],
|
|
213
|
-
[
|
|
214
|
-
[D]
|
|
215
|
+
[R]
|
|
215
216
|
].forEach((r) => t.add(r)), this.registerExecution();
|
|
216
217
|
}
|
|
217
218
|
onSteady() {
|
|
218
|
-
this._injector.get(
|
|
219
|
+
this._injector.get(_);
|
|
219
220
|
}
|
|
220
221
|
/**
|
|
221
222
|
* Allows being overridden, replacing with a new UniscriptExecutionService.
|
|
222
223
|
*/
|
|
223
224
|
registerExecution() {
|
|
224
|
-
this._injector.add([
|
|
225
|
+
this._injector.add([F, { useClass: P }]);
|
|
225
226
|
}
|
|
226
|
-
},
|
|
227
|
-
|
|
228
|
-
U(1, E(
|
|
229
|
-
U(2,
|
|
230
|
-
],
|
|
227
|
+
}, l(d, "pluginName", "UNIVER_UNISCRIPT_PLUGIN"), l(d, "packageName", x.name), l(d, "version", x.version), d);
|
|
228
|
+
j = Re([
|
|
229
|
+
U(1, E(D)),
|
|
230
|
+
U(2, T)
|
|
231
|
+
], j);
|
|
231
232
|
export {
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
F as IUniscriptExecutionService,
|
|
234
|
+
m as ScriptEditorService,
|
|
234
235
|
C as ToggleScriptPanelOperation,
|
|
235
|
-
|
|
236
|
+
j as UniverUniscriptPlugin
|
|
236
237
|
};
|
package/lib/types/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import './global.css';
|
|
17
17
|
export { ToggleScriptPanelOperation } from './commands/operations/panel.operation';
|
|
18
|
-
export type { IUniverUniscriptConfig } from './
|
|
18
|
+
export type { IUniverUniscriptConfig } from './config/config';
|
|
19
19
|
export { UniverUniscriptPlugin } from './plugin';
|
|
20
20
|
export { ScriptEditorService } from './services/script-editor.service';
|
|
21
21
|
export { IUniscriptExecutionService } from './services/script-execution.service';
|
package/lib/types/plugin.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { IUniverUniscriptConfig } from './
|
|
1
|
+
import { IUniverUniscriptConfig } from './config/config';
|
|
2
2
|
import { IConfigService, Injector, Plugin } from '@univerjs/core';
|
|
3
3
|
export declare class UniverUniscriptPlugin extends Plugin {
|
|
4
4
|
private readonly _config;
|
|
5
5
|
protected _injector: Injector;
|
|
6
6
|
private readonly _configService;
|
|
7
7
|
static pluginName: string;
|
|
8
|
+
static packageName: string;
|
|
9
|
+
static version: string;
|
|
8
10
|
constructor(_config: Partial<IUniverUniscriptConfig> | undefined, _injector: Injector, _configService: IConfigService);
|
|
9
11
|
onStarting(): void;
|
|
10
12
|
onSteady(): void;
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(s,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("@univerjs/ui"),require("rxjs"),require("
|
|
1
|
+
(function(s,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("@univerjs/ui"),require("rxjs"),require("@univerjs/sheets"),require("@univerjs/sheets-ui"),require("react/jsx-runtime"),require("@univerjs/design"),require("monaco-editor"),require("react"),require("@univerjs/core/facade")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/ui","rxjs","@univerjs/sheets","@univerjs/sheets-ui","react/jsx-runtime","@univerjs/design","monaco-editor","react","@univerjs/core/facade"],i):(s=typeof globalThis<"u"?globalThis:s||self,i(s.UniverUniscript={},s.UniverCore,s.UniverUi,s.rxjs,s.UniverSheets,s.UniverSheetsUi,s.React,s.UniverDesign,s.monaco,s.React,s.UniverCoreFacade))})(this,(function(s,i,a,C,v,R,h,j,k,g,q){"use strict";var te=Object.defineProperty;var ne=(s,i,a)=>i in s?te(s,i,{enumerable:!0,configurable:!0,writable:!0,value:a}):s[i]=a;var p=(s,i,a)=>ne(s,typeof i!="symbol"?i+"":i,a);var S;class O extends i.Disposable{constructor(){super(...arguments);p(this,"_open$",new C.BehaviorSubject(!1));p(this,"open$",this._open$.pipe(C.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 D="ScriptPanel",_={type:i.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(O),n=t.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}},w={name:"@univerjs/uniscript",version:"0.17.0"},b="uniscript.config",$={};function W(t){return{id:_.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeIcon",type:a.MenuItemType.BUTTON,hidden$:a.getMenuHiddenObservable(t,i.UniverInstanceType.UNIVER_SHEET),disabled$:R.getCurrentRangeDisable$(t,{workbookTypes:[v.WorkbookEditablePermission],worksheetTypes:[v.WorksheetEditPermission,v.WorksheetSetCellStylePermission,v.WorksheetSetCellValuePermission],rangeTypes:[v.RangeProtectionPermissionEditPoint]})}}const F={[a.RibbonOthersGroup.OTHERS]:{[_.id]:{order:0,menuItemFactory:W}}};var V=Object.getOwnPropertyDescriptor,B=(t,e,n,r)=>{for(var c=r>1?void 0:r?V(e,n):e,o=t.length-1,u;o>=0;o--)(u=t[o])&&(c=u(c)||c);return c},L=(t,e)=>(n,r)=>e(n,r,t);s.ScriptEditorService=class extends i.Disposable{constructor(n){super();p(this,"_editorInstance",null);this._configService=n}dispose(){super.dispose(),this._editorInstance&&this._editorInstance.dispose()}setEditorInstance(n){return this._editorInstance=n,i.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){if(!window.MonacoEnvironment){const n=this._configService.getConfig(b);window.MonacoEnvironment={getWorkerUrl:n==null?void 0:n.getWorkerUrl}}}},s.ScriptEditorService=B([L(0,i.IConfigService)],s.ScriptEditorService);var G=Object.getOwnPropertyDescriptor,A=(t,e,n,r)=>{for(var c=r>1?void 0:r?G(e,n):e,o=t.length-1,u;o>=0;o--)(u=t[o])&&(c=u(c)||c);return c},T=(t,e)=>(n,r)=>e(n,r,t);const E=i.createIdentifier("univer.uniscript.execution-service");let U=class extends i.Disposable{constructor(t,e){super(),this._logService=t,this._injector=e}async execute(t){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=q.FUniver.newAPI(this._injector),n=new Function("univerAPI",`(() => {${t}})()`);try{return n(e),!0}catch(r){return this._logService.error(r),!1}}};U=A([T(0,i.ILogService),T(1,i.Inject(i.Injector))],U);function H(){const t=g.useRef(null),e=g.useRef(null),n=g.useRef(null),r=a.useDependency(i.LocaleService),c=a.useDependency(a.IShortcutService),o=a.useDependency(s.ScriptEditorService),u=a.useDependency(i.ThemeService);g.useEffect(()=>{const M=e.current,f=t.current;let d=null,I=null;if(M&&f){o.requireVscodeEditor();const P=n.current=k.editor.create(M,{value:"",language:"javascript",theme:u.darkMode?"vs-dark":"vs-light"});I=new ResizeObserver(()=>{let N=requestIdleCallback(()=>{if(!N)return;const{height:Z,width:ee}=f.getBoundingClientRect();P.layout({width:ee,height:Z}),N=void 0})}),I.observe(f);let l;d=new i.DisposableCollection,d.add(o.setEditorInstance(P)),d.add(P.onDidFocusEditorWidget(()=>{l=c.forceEscape()})),d.add(P.onDidBlurEditorWidget(()=>{l==null||l.dispose(),l=void 0})),d.add(i.toDisposable(()=>l==null?void 0:l.dispose()))}return()=>{I&&f&&I.unobserve(f),d==null||d.dispose()}},[o,c]);const X=z(n);return h.jsxs("div",{className:"univer-h-full",children:[h.jsx("div",{ref:t,className:"univer-h-[calc(100%-60px)] univer-w-full univer-overflow-hidden",children:h.jsx("div",{ref:e})}),h.jsx("div",{className:"univer-mt-2.5",children:h.jsx(j.Button,{variant:"primary",onClick:X,children:r.t("script-panel.panel.execute")})})]})}function z(t){const e=a.useDependency(E),n=a.useDependency(a.IMessageService),r=a.useDependency(i.LocaleService);return g.useCallback(()=>{var o;const c=(o=t.current)==null?void 0:o.getModel();c&&e.execute(c.getValue()).then(()=>{n.show({content:r.t("uniscript.message.success"),type:j.MessageType.Success})}).catch(()=>{n.show({content:r.t("uniscript.message.failed"),type:j.MessageType.Error})})},[r,n,t,e])}var K=Object.getOwnPropertyDescriptor,Y=(t,e,n,r)=>{for(var c=r>1?void 0:r?K(e,n):e,o=t.length-1,u;o>=0;o--)(u=t[o])&&(c=u(c)||c);return c},y=(t,e)=>(n,r)=>e(n,r,t);let m=class extends i.Disposable{constructor(t,e,n){super(),this._menuManagerService=t,this._menuManagerService.mergeMenu(F),this.disposeWithMe(n.register(D,H)),this.disposeWithMe(e.registerCommand(_))}};m=Y([y(0,a.IMenuManagerService),y(1,i.ICommandService),y(2,i.Inject(a.ComponentManager))],m);var J=Object.getOwnPropertyDescriptor,Q=(t,e,n,r)=>{for(var c=r>1?void 0:r?J(e,n):e,o=t.length-1,u;o>=0;o--)(u=t[o])&&(c=u(c)||c);return c},x=(t,e)=>(n,r)=>e(n,r,t);s.UniverUniscriptPlugin=(S=class extends i.Plugin{constructor(e=$,n,r){super(),this._config=e,this._injector=n,this._configService=r;const{menu:c,...o}=i.merge({},$,this._config);c&&this._configService.setConfig("menu",c,{merge:!0}),this._configService.setConfig(b,o)}onStarting(){const e=this._injector;[[m],[s.ScriptEditorService],[O]].forEach(r=>e.add(r)),this.registerExecution()}onSteady(){this._injector.get(m)}registerExecution(){this._injector.add([E,{useClass:U}])}},p(S,"pluginName","UNIVER_UNISCRIPT_PLUGIN"),p(S,"packageName",w.name),p(S,"version",w.version),S),s.UniverUniscriptPlugin=Q([x(1,i.Inject(i.Injector)),x(2,i.IConfigService)],s.UniverUniscriptPlugin),s.IUniscriptExecutionService=E,s.ToggleScriptPanelOperation=_,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/uniscript",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "UI component library for building exceptional Univer.",
|
|
6
6
|
"author": "DreamNum <developer@univer.ai>",
|
|
@@ -56,21 +56,21 @@
|
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"monaco-editor": "0.55.1",
|
|
59
|
-
"@univerjs/
|
|
60
|
-
"@univerjs/
|
|
61
|
-
"@univerjs/
|
|
62
|
-
"@univerjs/
|
|
63
|
-
"@univerjs/sheets
|
|
59
|
+
"@univerjs/design": "0.17.0",
|
|
60
|
+
"@univerjs/sheets-ui": "0.17.0",
|
|
61
|
+
"@univerjs/core": "0.17.0",
|
|
62
|
+
"@univerjs/ui": "0.17.0",
|
|
63
|
+
"@univerjs/sheets": "0.17.0"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"postcss": "^8.5.
|
|
66
|
+
"postcss": "^8.5.8",
|
|
67
67
|
"react": "18.3.1",
|
|
68
68
|
"rxjs": "^7.8.2",
|
|
69
69
|
"tailwindcss": "3.4.18",
|
|
70
70
|
"typescript": "^5.9.3",
|
|
71
71
|
"vite": "^7.3.1",
|
|
72
72
|
"vitest": "^4.0.18",
|
|
73
|
-
"@univerjs-infra/shared": "0.
|
|
73
|
+
"@univerjs-infra/shared": "0.17.0"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
76
|
"test": "vitest run",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|