@univerjs/uniscript 0.6.6 → 0.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +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 +9 -10
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.
|
3
|
+
"version": "0.6.7",
|
4
4
|
"private": false,
|
5
5
|
"description": "UI component library for building exceptional Univer.",
|
6
6
|
"author": "DreamNum <developer@univer.ai>",
|
@@ -56,22 +56,21 @@
|
|
56
56
|
},
|
57
57
|
"dependencies": {
|
58
58
|
"monaco-editor": "0.52.2",
|
59
|
-
"@univerjs/core": "0.6.
|
60
|
-
"@univerjs/design": "0.6.
|
61
|
-
"@univerjs/sheets": "0.6.
|
62
|
-
"@univerjs/sheets
|
63
|
-
"@univerjs/ui": "0.6.
|
59
|
+
"@univerjs/core": "0.6.7",
|
60
|
+
"@univerjs/design": "0.6.7",
|
61
|
+
"@univerjs/sheets-ui": "0.6.7",
|
62
|
+
"@univerjs/sheets": "0.6.7",
|
63
|
+
"@univerjs/ui": "0.6.7"
|
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.
|
74
|
-
"@univerjs-infra/shared": "0.6.
|
71
|
+
"vite": "^6.2.3",
|
72
|
+
"vitest": "^3.0.9",
|
73
|
+
"@univerjs-infra/shared": "0.6.7"
|
75
74
|
},
|
76
75
|
"scripts": {
|
77
76
|
"test": "vitest run",
|