@univerjs/uniscript 0.2.4-alpha.0 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/cjs/index.js +2 -2
- package/lib/es/index.js +28 -26
- package/lib/types/controllers/menu.d.ts +1 -1
- package/lib/types/controllers/uniscript.controller.d.ts +2 -1
- package/lib/types/plugin.d.ts +2 -1
- package/lib/types/services/script-editor.service.d.ts +2 -1
- package/lib/types/services/script-execution.service.d.ts +3 -2
- package/lib/umd/index.js +2 -2
- package/package.json +16 -14
package/lib/cjs/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";var
|
1
|
+
"use strict";var F=Object.defineProperty;var B=(r,e,t)=>e in r?F(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var f=(r,e,t)=>B(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@univerjs/core"),l=require("@wendellhu/redi"),u=require("@univerjs/ui"),$=require("rxjs"),d=require("react"),O=require("@univerjs/design"),v=require("@wendellhu/redi/react-bindings"),V=require("monaco-editor"),k=require("@univerjs/facade"),z=require("@univerjs/sheets-ui"),h=require("@univerjs/sheets");class M extends o.Disposable{constructor(){super(...arguments);f(this,"_open$",new $.BehaviorSubject(!1));f(this,"open$",this._open$.pipe($.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 q="ScriptPanel",C={type:o.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:r=>{const e=r.get(M),t=r.get(u.ISidebarService);return e.isOpen?(e.close(),t.close()):(e.open(),t.open({header:{title:"script-panel.title"},children:{label:q},width:600})),!0}};var N={exports:{}},b={};/**
|
2
2
|
* @license React
|
3
3
|
* react-jsx-runtime.production.min.js
|
4
4
|
*
|
@@ -6,4 +6,4 @@
|
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
9
|
-
*/var
|
9
|
+
*/var H=d,G=Symbol.for("react.element"),J=Symbol.for("react.fragment"),Y=Object.prototype.hasOwnProperty,K=H.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Q={key:!0,ref:!0,__self:!0,__source:!0};function W(r,e,t){var n,i={},s=null,c=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(c=e.ref);for(n in e)Y.call(e,n)&&!Q.hasOwnProperty(n)&&(i[n]=e[n]);if(r&&r.defaultProps)for(n in e=r.defaultProps,e)i[n]===void 0&&(i[n]=e[n]);return{$$typeof:G,type:r,key:s,ref:c,props:i,_owner:K.current}}b.Fragment=J;b.jsx=W;b.jsxs=W;N.exports=b;var g=N.exports;class I extends o.Disposable{constructor(t){super();f(this,"_editorInstance",null);this._config=t}setEditorInstance(t){return this._editorInstance=t,o.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var X=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,ee=(r,e,t,n)=>{for(var i=n>1?void 0:n?Z(e,t):e,s=r.length-1,c;s>=0;s--)(c=r[s])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&X(e,t,i),i},T=(r,e)=>(t,n)=>e(t,n,r);const U=l.createIdentifier("univer.uniscript.execution-service");let j=class extends o.Disposable{constructor(r,e){super(),this._logService=r,this._injector=e}async execute(r){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=k.FUniver.newAPI(this._injector),t=new Function("univerAPI",`(() => {${r}})()`);try{return t(e),!0}catch(n){return this._logService.error(n),!1}}};j=ee([T(0,o.ILogService),T(1,l.Inject(l.Injector))],j);const te="univer-script-editor-panel",re="univer-script-editor-content",ne="univer-script-editor-actions",P={scriptEditorPanel:te,scriptEditorContent:re,scriptEditorActions:ne};function ie(){const r=d.useRef(null),e=d.useRef(null),t=d.useRef(null),n=v.useDependency(o.LocaleService),i=v.useDependency(u.IShortcutService),s=v.useDependency(I);d.useEffect(()=>{const w=e.current,_=r.current;let a=null,E=null;if(w&&_){s.requireVscodeEditor();const m=t.current=V.editor.create(w,{value:"",language:"javascript"});E=new ResizeObserver(()=>{let D=requestIdleCallback(()=>{if(!D)return;const{height:L,width:A}=_.getBoundingClientRect();m.layout({width:A,height:L}),D=void 0})}),E.observe(_);let p;a=new o.DisposableCollection,a.add(s.setEditorInstance(m)),a.add(m.onDidFocusEditorWidget(()=>{p=i.forceEscape()})),a.add(m.onDidBlurEditorWidget(()=>{p==null||p.dispose(),p=void 0})),a.add(o.toDisposable(()=>p==null?void 0:p.dispose()))}return()=>{E&&_&&E.unobserve(_),a==null||a.dispose()}},[s,i]);const c=se(t);return g.jsxs("div",{className:P.scriptEditorPanel,children:[g.jsx("div",{className:P.scriptEditorContent,ref:r,children:g.jsx("div",{className:P.scriptEditorContainer,ref:e})}),g.jsx("div",{className:P.scriptEditorActions,children:g.jsx(O.Button,{type:"primary",size:"small",onClick:c,children:n.t("script-panel.panel.execute")})})]})}function se(r){const e=v.useDependency(U),t=v.useDependency(u.IMessageService),n=v.useDependency(o.LocaleService);return d.useCallback(()=>{var s;const i=(s=r.current)==null?void 0:s.getModel();i&&e.execute(i.getValue()).then(()=>{t.show({content:n.t("uniscript.message.success"),type:O.MessageType.Success})}).catch(()=>{t.show({content:n.t("uniscript.message.failed"),type:O.MessageType.Error})})},[n,t,r,e])}function oe(r){return{id:C.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:u.MenuItemType.BUTTON,positions:[u.MenuPosition.TOOLBAR_START],hidden$:u.getMenuHiddenObservable(r,o.UniverInstanceType.UNIVER_SHEET),disabled$:z.getCurrentRangeDisable$(r,{workbookTypes:[h.WorkbookEditablePermission],worksheetTypes:[h.WorksheetEditPermission,h.WorksheetSetCellStylePermission,h.WorksheetSetCellValuePermission],rangeTypes:[h.RangeProtectionPermissionEditPoint]})}}var ce=Object.defineProperty,le=Object.getOwnPropertyDescriptor,ae=(r,e,t,n)=>{for(var i=n>1?void 0:n?le(e,t):e,s=r.length-1,c;s>=0;s--)(c=r[s])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&ce(e,t,i),i},y=(r,e)=>(t,n)=>e(t,n,r);const pe={};let S=class extends o.Disposable{constructor(r,e,t,n,i){super(),this._config=r,this._injector=e,this._menuService=t;const{menu:s={}}=this._config;this.disposeWithMe(t.addMenuItem(this._injector.invoke(oe),s)),this.disposeWithMe(i.register(q,ie)),this.disposeWithMe(n.registerCommand(C))}};S=ae([o.OnLifecycle(o.LifecycleStages.Steady,S),y(1,l.Inject(l.Injector)),y(2,u.IMenuService),y(3,o.ICommandService),y(4,l.Inject(u.ComponentManager))],S);var ue=Object.defineProperty,de=Object.getOwnPropertyDescriptor,ve=(r,e,t,n)=>{for(var i=n>1?void 0:n?de(e,t):e,s=r.length-1,c;s>=0;s--)(c=r[s])&&(i=(n?c(e,t,i):c(i))||i);return n&&i&&ue(e,t,i),i},R=(r,e)=>(t,n)=>e(t,n,r);const _e="uniscript";var x;exports.UniverUniscriptPlugin=(x=class extends o.Plugin{constructor(e={},t,n){super(),this._config=e,this._injector=t,this._localeService=n,this._config=o.Tools.deepMerge({},pe,this._config)}onStarting(e){[[S,{useFactory:()=>e.createInstance(S,this._config)}],[I,{useFactory:()=>e.createInstance(I,this._config)}],[M]].forEach(n=>e.add(n)),this.registerExecution()}registerExecution(){this._injector.add([U,{useClass:j}])}},f(x,"pluginName",_e),x);exports.UniverUniscriptPlugin=ve([R(1,l.Inject(l.Injector)),R(2,l.Inject(o.LocaleService))],exports.UniverUniscriptPlugin);exports.IUniscriptExecutionService=U;exports.ScriptEditorService=I;exports.ToggleScriptPanelOperation=C;
|
package/lib/es/index.js
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
var V = Object.defineProperty;
|
2
2
|
var q = (t, e, r) => e in t ? V(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
|
3
3
|
var u = (t, e, r) => q(t, typeof e != "symbol" ? e + "" : e, r);
|
4
|
-
import { Disposable as S, CommandType as k, toDisposable as U,
|
4
|
+
import { Disposable as S, CommandType as k, toDisposable as U, ILogService as z, LocaleService as I, DisposableCollection as H, UniverInstanceType as G, OnLifecycle as J, LifecycleStages as Y, ICommandService as K, Plugin as Q, Tools as X } from "@univerjs/core";
|
5
|
+
import { createIdentifier as Z, Inject as f, Injector as b } from "@wendellhu/redi";
|
5
6
|
import { ISidebarService as ee, IShortcutService as te, IMessageService as re, MenuItemType as ie, MenuPosition as ne, getMenuHiddenObservable as oe, ComponentManager as se, IMenuService as ce } from "@univerjs/ui";
|
6
7
|
import { BehaviorSubject as le, distinctUntilChanged as pe } from "rxjs";
|
7
8
|
import ae, { useRef as P, useEffect as ue, useCallback as de } from "react";
|
8
9
|
import { Button as ve, MessageType as j } from "@univerjs/design";
|
10
|
+
import { useDependency as p } from "@wendellhu/redi/react-bindings";
|
9
11
|
import { editor as fe } from "monaco-editor";
|
10
12
|
import { FUniver as _e } from "@univerjs/facade";
|
11
|
-
import { getCurrentRangeDisable$ as
|
12
|
-
import { WorkbookEditablePermission as
|
13
|
+
import { getCurrentRangeDisable$ as me } from "@univerjs/sheets-ui";
|
14
|
+
import { WorkbookEditablePermission as he, WorksheetEditPermission as ge, WorksheetSetCellStylePermission as Se, WorksheetSetCellValuePermission as Ee, RangeProtectionPermissionEditPoint as Pe } from "@univerjs/sheets";
|
13
15
|
class M extends S {
|
14
16
|
constructor() {
|
15
17
|
super(...arguments);
|
@@ -87,7 +89,7 @@ var we = Object.defineProperty, je = Object.getOwnPropertyDescriptor, $e = (t, e
|
|
87
89
|
(s = t[o]) && (n = (i ? s(e, r, n) : s(n)) || n);
|
88
90
|
return i && n && we(e, r, n), n;
|
89
91
|
}, $ = (t, e) => (r, i) => e(r, i, t);
|
90
|
-
const F =
|
92
|
+
const F = Z("univer.uniscript.execution-service");
|
91
93
|
let O = class extends S {
|
92
94
|
constructor(t, e) {
|
93
95
|
super(), this._logService = t, this._injector = e;
|
@@ -103,22 +105,22 @@ let O = class extends S {
|
|
103
105
|
}
|
104
106
|
};
|
105
107
|
O = $e([
|
106
|
-
$(0,
|
107
|
-
$(1, f(
|
108
|
+
$(0, z),
|
109
|
+
$(1, f(b))
|
108
110
|
], O);
|
109
|
-
const Re = "univer-script-editor-panel", Te = "univer-script-editor-content", Ue = "univer-script-editor-actions",
|
111
|
+
const Re = "univer-script-editor-panel", Te = "univer-script-editor-content", Ue = "univer-script-editor-actions", h = {
|
110
112
|
scriptEditorPanel: Re,
|
111
113
|
scriptEditorContent: Te,
|
112
114
|
scriptEditorActions: Ue
|
113
115
|
};
|
114
116
|
function Me() {
|
115
|
-
const t = P(null), e = P(null), r = P(null), i = p(
|
117
|
+
const t = P(null), e = P(null), r = P(null), i = p(I), n = p(te), o = p(x);
|
116
118
|
ue(() => {
|
117
119
|
const C = e.current, a = t.current;
|
118
120
|
let c = null, _ = null;
|
119
121
|
if (C && a) {
|
120
122
|
o.requireVscodeEditor();
|
121
|
-
const
|
123
|
+
const m = r.current = fe.create(C, {
|
122
124
|
value: "",
|
123
125
|
language: "javascript"
|
124
126
|
});
|
@@ -126,16 +128,16 @@ function Me() {
|
|
126
128
|
let w = requestIdleCallback(() => {
|
127
129
|
if (!w) return;
|
128
130
|
const { height: L, width: B } = a.getBoundingClientRect();
|
129
|
-
|
131
|
+
m.layout({ width: B, height: L }), w = void 0;
|
130
132
|
});
|
131
133
|
}), _.observe(a);
|
132
134
|
let l;
|
133
|
-
c = new
|
134
|
-
|
135
|
+
c = new H(), c.add(o.setEditorInstance(m)), c.add(
|
136
|
+
m.onDidFocusEditorWidget(() => {
|
135
137
|
l = n.forceEscape();
|
136
138
|
})
|
137
139
|
), c.add(
|
138
|
-
|
140
|
+
m.onDidBlurEditorWidget(() => {
|
139
141
|
l == null || l.dispose(), l = void 0;
|
140
142
|
})
|
141
143
|
), c.add(U(() => l == null ? void 0 : l.dispose()));
|
@@ -145,13 +147,13 @@ function Me() {
|
|
145
147
|
};
|
146
148
|
}, [o, n]);
|
147
149
|
const s = De(r);
|
148
|
-
return /* @__PURE__ */ d.jsxs("div", { className:
|
149
|
-
/* @__PURE__ */ d.jsx("div", { className:
|
150
|
-
/* @__PURE__ */ d.jsx("div", { className:
|
150
|
+
return /* @__PURE__ */ d.jsxs("div", { className: h.scriptEditorPanel, children: [
|
151
|
+
/* @__PURE__ */ d.jsx("div", { className: h.scriptEditorContent, ref: t, children: /* @__PURE__ */ d.jsx("div", { className: h.scriptEditorContainer, ref: e }) }),
|
152
|
+
/* @__PURE__ */ d.jsx("div", { className: h.scriptEditorActions, children: /* @__PURE__ */ d.jsx(ve, { type: "primary", size: "small", onClick: s, children: i.t("script-panel.panel.execute") }) })
|
151
153
|
] });
|
152
154
|
}
|
153
155
|
function De(t) {
|
154
|
-
const e = p(F), r = p(re), i = p(
|
156
|
+
const e = p(F), r = p(re), i = p(I);
|
155
157
|
return de(() => {
|
156
158
|
var o;
|
157
159
|
const n = (o = t.current) == null ? void 0 : o.getModel();
|
@@ -177,8 +179,8 @@ function Ne(t) {
|
|
177
179
|
type: ie.BUTTON,
|
178
180
|
positions: [ne.TOOLBAR_START],
|
179
181
|
// FIXME hidden$ and disabled$ are not correctly in doc
|
180
|
-
hidden$: oe(t,
|
181
|
-
disabled$:
|
182
|
+
hidden$: oe(t, G.UNIVER_SHEET),
|
183
|
+
disabled$: me(t, { workbookTypes: [he], worksheetTypes: [ge, Se, Ee], rangeTypes: [Pe] })
|
182
184
|
};
|
183
185
|
}
|
184
186
|
var We = Object.defineProperty, Ae = Object.getOwnPropertyDescriptor, Fe = (t, e, r, i) => {
|
@@ -195,10 +197,10 @@ let v = class extends S {
|
|
195
197
|
}
|
196
198
|
};
|
197
199
|
v = Fe([
|
198
|
-
Y
|
199
|
-
g(1, f(
|
200
|
+
J(Y.Steady, v),
|
201
|
+
g(1, f(b)),
|
200
202
|
g(2, ce),
|
201
|
-
g(3,
|
203
|
+
g(3, K),
|
202
204
|
g(4, f(se))
|
203
205
|
], v);
|
204
206
|
var Be = Object.defineProperty, Ve = Object.getOwnPropertyDescriptor, qe = (t, e, r, i) => {
|
@@ -208,9 +210,9 @@ var Be = Object.defineProperty, Ve = Object.getOwnPropertyDescriptor, qe = (t, e
|
|
208
210
|
}, R = (t, e) => (r, i) => e(r, i, t);
|
209
211
|
const ke = "uniscript";
|
210
212
|
var y;
|
211
|
-
let T = (y = class extends
|
213
|
+
let T = (y = class extends Q {
|
212
214
|
constructor(t = {}, e, r) {
|
213
|
-
super(), this._config = t, this._injector = e, this._localeService = r, this._config =
|
215
|
+
super(), this._config = t, this._injector = e, this._localeService = r, this._config = X.deepMerge({}, Le, this._config);
|
214
216
|
}
|
215
217
|
onStarting(t) {
|
216
218
|
[
|
@@ -229,8 +231,8 @@ let T = (y = class extends X {
|
|
229
231
|
}
|
230
232
|
}, u(y, "pluginName", ke), y);
|
231
233
|
T = qe([
|
232
|
-
R(1, f(
|
233
|
-
R(2, f(
|
234
|
+
R(1, f(b)),
|
235
|
+
R(2, f(I))
|
234
236
|
], T);
|
235
237
|
export {
|
236
238
|
F as IUniscriptExecutionService,
|
@@ -1,5 +1,6 @@
|
|
1
|
-
import { Disposable, ICommandService
|
1
|
+
import { Disposable, ICommandService } from '@univerjs/core';
|
2
2
|
import { MenuConfig, ComponentManager, IMenuService } from '@univerjs/ui';
|
3
|
+
import { Injector } from '@wendellhu/redi';
|
3
4
|
|
4
5
|
export interface IUniverUniscriptConfig {
|
5
6
|
getWorkerUrl(moduleID: string, label: string): string;
|
package/lib/types/plugin.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { LocaleService, Plugin } from '@univerjs/core';
|
2
|
+
import { Injector } from '@wendellhu/redi';
|
2
3
|
import { IUniverUniscriptConfig } from './controllers/uniscript.controller';
|
3
4
|
|
4
5
|
export declare class UniverUniscriptPlugin extends Plugin {
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import { Disposable
|
1
|
+
import { Disposable } from '@univerjs/core';
|
2
|
+
import { IDisposable } from '@wendellhu/redi';
|
2
3
|
import { editor } from 'monaco-editor';
|
3
4
|
import { IUniverUniscriptConfig } from '../controllers/uniscript.controller';
|
4
5
|
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import { Disposable, ILogService
|
1
|
+
import { Disposable, ILogService } from '@univerjs/core';
|
2
|
+
import { Injector } from '@wendellhu/redi';
|
2
3
|
|
3
|
-
export declare const IUniscriptExecutionService: import('@
|
4
|
+
export declare const IUniscriptExecutionService: import('@wendellhu/redi').IdentifierDecorator<IUniscriptExecutionService>;
|
4
5
|
export interface IUniscriptExecutionService {
|
5
6
|
execute(code: string): Promise<boolean>;
|
6
7
|
}
|
package/lib/umd/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
(function(o,
|
1
|
+
(function(o,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("@univerjs/ui"),require("rxjs"),require("react"),require("@univerjs/design"),require("@wendellhu/redi/react-bindings"),require("monaco-editor"),require("@univerjs/facade"),require("@univerjs/sheets-ui"),require("@univerjs/sheets")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","@univerjs/ui","rxjs","react","@univerjs/design","@wendellhu/redi/react-bindings","monaco-editor","@univerjs/facade","@univerjs/sheets-ui","@univerjs/sheets"],s):(o=typeof globalThis<"u"?globalThis:o||self,s(o.UniverUniscript={},o.UniverCore,o["@wendellhu/redi"],o.UniverUi,o.rxjs,o.React,o.UniverDesign,o["@wendellhu/redi/react-bindings"],o.monaco,o.UniverFacade,o.UniverSheetsUi,o.UniverSheets))})(this,function(o,s,p,l,D,v,U,f,q,F,V,h){"use strict";var ae=Object.defineProperty;var de=(o,s,p)=>s in o?ae(o,s,{enumerable:!0,configurable:!0,writable:!0,value:p}):o[s]=p;var m=(o,s,p)=>de(o,typeof s!="symbol"?s+"":s,p);var b;class T extends s.Disposable{constructor(){super(...arguments);m(this,"_open$",new D.BehaviorSubject(!1));m(this,"open$",this._open$.pipe(D.distinctUntilChanged()))}get isOpen(){return this._open$.getValue()}dispose(){super.dispose(),this._open$.next(!1),this._open$.complete()}open(){this._open$.next(!0)}close(){this._open$.next(!1)}}const R="ScriptPanel",x={type:s.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:i=>{const e=i.get(T),n=i.get(l.ISidebarService);return e.isOpen?(e.close(),n.close()):(e.open(),n.open({header:{title:"script-panel.title"},children:{label:R},width:600})),!0}};var M={exports:{}},E={};/**
|
2
2
|
* @license React
|
3
3
|
* react-jsx-runtime.production.min.js
|
4
4
|
*
|
@@ -6,4 +6,4 @@
|
|
6
6
|
*
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
9
|
-
*/var
|
9
|
+
*/var k=v,z=Symbol.for("react.element"),B=Symbol.for("react.fragment"),H=Object.prototype.hasOwnProperty,G=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,J={key:!0,ref:!0,__self:!0,__source:!0};function N(i,e,n){var t,r={},c=null,u=null;n!==void 0&&(c=""+n),e.key!==void 0&&(c=""+e.key),e.ref!==void 0&&(u=e.ref);for(t in e)H.call(e,t)&&!J.hasOwnProperty(t)&&(r[t]=e[t]);if(i&&i.defaultProps)for(t in e=i.defaultProps,e)r[t]===void 0&&(r[t]=e[t]);return{$$typeof:z,type:i,key:c,ref:u,props:r,_owner:G.current}}E.Fragment=B,E.jsx=N,E.jsxs=N,M.exports=E;var _=M.exports;class P extends s.Disposable{constructor(n){super();m(this,"_editorInstance",null);this._config=n}setEditorInstance(n){return this._editorInstance=n,s.toDisposable(()=>this._editorInstance=null)}getEditorInstance(){return this._editorInstance}requireVscodeEditor(){window.MonacoEnvironment||(window.MonacoEnvironment={getWorkerUrl:this._config.getWorkerUrl})}}var Y=Object.defineProperty,K=Object.getOwnPropertyDescriptor,Q=(i,e,n,t)=>{for(var r=t>1?void 0:t?K(e,n):e,c=i.length-1,u;c>=0;c--)(u=i[c])&&(r=(t?u(e,n,r):u(r))||r);return t&&r&&Y(e,n,r),r},$=(i,e)=>(n,t)=>e(n,t,i);const w=p.createIdentifier("univer.uniscript.execution-service");let C=class extends s.Disposable{constructor(i,e){super(),this._logService=i,this._injector=e}async execute(i){this._logService.log("[UniscriptExecutionService]","executing Uniscript...");const e=F.FUniver.newAPI(this._injector),n=new Function("univerAPI",`(() => {${i}})()`);try{return n(e),!0}catch(t){return this._logService.error(t),!1}}};C=Q([$(0,s.ILogService),$(1,p.Inject(p.Injector))],C);const j={scriptEditorPanel:"univer-script-editor-panel",scriptEditorContent:"univer-script-editor-content",scriptEditorActions:"univer-script-editor-actions"};function X(){const i=v.useRef(null),e=v.useRef(null),n=v.useRef(null),t=f.useDependency(s.LocaleService),r=f.useDependency(l.IShortcutService),c=f.useDependency(P);v.useEffect(()=>{const A=e.current,g=i.current;let a=null,I=null;if(A&&g){c.requireVscodeEditor();const O=n.current=q.editor.create(A,{value:"",language:"javascript"});I=new ResizeObserver(()=>{let L=requestIdleCallback(()=>{if(!L)return;const{height:pe,width:le}=g.getBoundingClientRect();O.layout({width:le,height:pe}),L=void 0})}),I.observe(g);let d;a=new s.DisposableCollection,a.add(c.setEditorInstance(O)),a.add(O.onDidFocusEditorWidget(()=>{d=r.forceEscape()})),a.add(O.onDidBlurEditorWidget(()=>{d==null||d.dispose(),d=void 0})),a.add(s.toDisposable(()=>d==null?void 0:d.dispose()))}return()=>{I&&g&&I.unobserve(g),a==null||a.dispose()}},[c,r]);const u=Z(n);return _.jsxs("div",{className:j.scriptEditorPanel,children:[_.jsx("div",{className:j.scriptEditorContent,ref:i,children:_.jsx("div",{className:j.scriptEditorContainer,ref:e})}),_.jsx("div",{className:j.scriptEditorActions,children:_.jsx(U.Button,{type:"primary",size:"small",onClick:u,children:t.t("script-panel.panel.execute")})})]})}function Z(i){const e=f.useDependency(w),n=f.useDependency(l.IMessageService),t=f.useDependency(s.LocaleService);return v.useCallback(()=>{var c;const r=(c=i.current)==null?void 0:c.getModel();r&&e.execute(r.getValue()).then(()=>{n.show({content:t.t("uniscript.message.success"),type:U.MessageType.Success})}).catch(()=>{n.show({content:t.t("uniscript.message.failed"),type:U.MessageType.Error})})},[t,n,i,e])}function ee(i){return{id:x.id,title:"toggle-script-panel",tooltip:"script-panel.tooltip.menu-button",icon:"CodeSingle",type:l.MenuItemType.BUTTON,positions:[l.MenuPosition.TOOLBAR_START],hidden$:l.getMenuHiddenObservable(i,s.UniverInstanceType.UNIVER_SHEET),disabled$:V.getCurrentRangeDisable$(i,{workbookTypes:[h.WorkbookEditablePermission],worksheetTypes:[h.WorksheetEditPermission,h.WorksheetSetCellStylePermission,h.WorksheetSetCellValuePermission],rangeTypes:[h.RangeProtectionPermissionEditPoint]})}}var te=Object.defineProperty,ne=Object.getOwnPropertyDescriptor,ie=(i,e,n,t)=>{for(var r=t>1?void 0:t?ne(e,n):e,c=i.length-1,u;c>=0;c--)(u=i[c])&&(r=(t?u(e,n,r):u(r))||r);return t&&r&&te(e,n,r),r},y=(i,e)=>(n,t)=>e(n,t,i);const re={};let S=class extends s.Disposable{constructor(i,e,n,t,r){super(),this._config=i,this._injector=e,this._menuService=n;const{menu:c={}}=this._config;this.disposeWithMe(n.addMenuItem(this._injector.invoke(ee),c)),this.disposeWithMe(r.register(R,X)),this.disposeWithMe(t.registerCommand(x))}};S=ie([s.OnLifecycle(s.LifecycleStages.Steady,S),y(1,p.Inject(p.Injector)),y(2,l.IMenuService),y(3,s.ICommandService),y(4,p.Inject(l.ComponentManager))],S);var se=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,ce=(i,e,n,t)=>{for(var r=t>1?void 0:t?oe(e,n):e,c=i.length-1,u;c>=0;c--)(u=i[c])&&(r=(t?u(e,n,r):u(r))||r);return t&&r&&se(e,n,r),r},W=(i,e)=>(n,t)=>e(n,t,i);const ue="uniscript";o.UniverUniscriptPlugin=(b=class extends s.Plugin{constructor(e={},n,t){super(),this._config=e,this._injector=n,this._localeService=t,this._config=s.Tools.deepMerge({},re,this._config)}onStarting(e){[[S,{useFactory:()=>e.createInstance(S,this._config)}],[P,{useFactory:()=>e.createInstance(P,this._config)}],[T]].forEach(t=>e.add(t)),this.registerExecution()}registerExecution(){this._injector.add([w,{useClass:C}])}},m(b,"pluginName",ue),b),o.UniverUniscriptPlugin=ce([W(1,p.Inject(p.Injector)),W(2,p.Inject(s.LocaleService))],o.UniverUniscriptPlugin),o.IUniscriptExecutionService=w,o.ScriptEditorService=P,o.ToggleScriptPanelOperation=x,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@univerjs/uniscript",
|
3
|
-
"version": "0.2.4
|
3
|
+
"version": "0.2.4",
|
4
4
|
"private": false,
|
5
5
|
"description": "UI component library for building exceptional Univer.",
|
6
6
|
"author": "DreamNum <developer@univer.ai>",
|
@@ -50,34 +50,36 @@
|
|
50
50
|
"lib"
|
51
51
|
],
|
52
52
|
"peerDependencies": {
|
53
|
+
"@wendellhu/redi": "0.16.0",
|
53
54
|
"monaco-editor": ">=0.44.0",
|
54
55
|
"react": "^16.9.0 || ^17.0.0 || ^18.0.0",
|
55
56
|
"rxjs": ">=7.0.0",
|
56
|
-
"@univerjs/core": "0.2.4
|
57
|
-
"@univerjs/
|
58
|
-
"@univerjs/
|
59
|
-
"@univerjs/facade": "0.2.4
|
60
|
-
"@univerjs/ui": "0.2.4
|
61
|
-
"@univerjs/
|
57
|
+
"@univerjs/core": "0.2.4",
|
58
|
+
"@univerjs/sheets": "0.2.4",
|
59
|
+
"@univerjs/design": "0.2.4",
|
60
|
+
"@univerjs/facade": "0.2.4",
|
61
|
+
"@univerjs/sheets-ui": "0.2.4",
|
62
|
+
"@univerjs/ui": "0.2.4"
|
62
63
|
},
|
63
64
|
"dependencies": {
|
64
65
|
"@univerjs/protocol": "0.1.38-alpha.23"
|
65
66
|
},
|
66
67
|
"devDependencies": {
|
67
68
|
"@types/react": "^18.3.3",
|
69
|
+
"@wendellhu/redi": "0.16.0",
|
68
70
|
"less": "^4.2.0",
|
69
71
|
"monaco-editor": "0.50.0",
|
70
72
|
"rxjs": "^7.8.1",
|
71
73
|
"typescript": "^5.5.3",
|
72
74
|
"vite": "^5.3.4",
|
73
75
|
"vitest": "^2.0.3",
|
74
|
-
"@univerjs/core": "0.2.4
|
75
|
-
"@univerjs/facade": "0.2.4
|
76
|
-
"@univerjs/
|
77
|
-
"@univerjs/
|
78
|
-
"@univerjs/
|
79
|
-
"@univerjs/
|
80
|
-
"@univerjs/
|
76
|
+
"@univerjs/core": "0.2.4",
|
77
|
+
"@univerjs/facade": "0.2.4",
|
78
|
+
"@univerjs/sheets": "0.2.4",
|
79
|
+
"@univerjs/sheets-ui": "0.2.4",
|
80
|
+
"@univerjs/shared": "0.2.4",
|
81
|
+
"@univerjs/ui": "0.2.4",
|
82
|
+
"@univerjs/design": "0.2.4"
|
81
83
|
},
|
82
84
|
"univerSpace": {
|
83
85
|
".": {
|