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