@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 CHANGED
@@ -1 +1 @@
1
- "use strict";var q=Object.defineProperty;var k=(t,e,r)=>e in t?q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var d=(t,e,r)=>k(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"),F=require("@univerjs/core/facade"),g=require("@univerjs/sheets"),V=require("@univerjs/sheets-ui");class D 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 $="ScriptPanel",m={type:o.CommandType.OPERATION,id:"univer.operation.toggle-script-panel",handler:t=>{const e=t.get(D),r=t.get(c.ISidebarService);return e.isOpen?(e.close(),r.close()):(e.open(),r.open({header:{title:"script-panel.title"},children:{label:$},width:600})),!0}},M="uniscript.config",O={};var L=Object.getOwnPropertyDescriptor,B=(t,e,r,i)=>{for(var n=i>1?void 0:i?L(e,r):e,s=t.length-1,a;s>=0;s--)(a=t[s])&&(n=a(n)||n);return n},G=(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(M);window.MonacoEnvironment={getWorkerUrl:r==null?void 0:r.getWorkerUrl}}}};exports.ScriptEditorService=B([G(0,o.IConfigService)],exports.ScriptEditorService);var A=Object.getOwnPropertyDescriptor,H=(t,e,r,i)=>{for(var n=i>1?void 0:i?A(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=F.FUniver.newAPI(this._injector),r=new Function("univerAPI",`(() => {${t}})()`);try{return r(e),!0}catch(i){return this._logService.error(i),!1}}};y=H([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),a=c.useDependency(o.ThemeService);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",theme:a.darkMode?"vs-dark":"vs-light"});S=new ResizeObserver(()=>{let x=requestIdleCallback(()=>{if(!x)return;const{height:R,width:N}=p.getBoundingClientRect();_.layout({width:N,height:R}),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 T=K(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,{variant:"primary",onClick:T,children:i.t("script-panel.panel.execute")})})]})}function K(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 Y(t){return{id:m.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$:V.getCurrentRangeDisable$(t,{workbookTypes:[g.WorkbookEditablePermission],worksheetTypes:[g.WorksheetEditPermission,g.WorksheetSetCellStylePermission,g.WorksheetSetCellValuePermission],rangeTypes:[g.RangeProtectionPermissionEditPoint]})}}const J={[c.RibbonOthersGroup.OTHERS]:{[m.id]:{order:0,menuItemFactory:Y}}};var Q=Object.getOwnPropertyDescriptor,X=(t,e,r,i)=>{for(var n=i>1?void 0:i?Q(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(J),this.disposeWithMe(r.register($,z)),this.disposeWithMe(e.registerCommand(m))}};f=X([I(0,c.IMenuManagerService),I(1,o.ICommandService),I(2,o.Inject(c.ComponentManager))],f);var Z=Object.getOwnPropertyDescriptor,ee=(t,e,r,i)=>{for(var n=i>1?void 0:i?Z(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 te="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(M,s)}onStarting(){const e=this._injector;[[f],[exports.ScriptEditorService],[D]].forEach(i=>e.add(i)),this.registerExecution()}onSteady(){this._injector.get(f)}registerExecution(){this._injector.add([b,{useClass:y}])}},d(P,"pluginName",te),P);exports.UniverUniscriptPlugin=ee([w(1,o.Inject(o.Injector)),w(2,o.IConfigService)],exports.UniverUniscriptPlugin);exports.IUniscriptExecutionService=b;exports.ToggleScriptPanelOperation=m;
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 G = Object.defineProperty;
2
- var L = (t, e, r) => e in t ? G(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
- var p = (t, e, r) => L(t, typeof e != "symbol" ? e + "" : e, r);
4
- import { Disposable as _, CommandType as A, toDisposable as M, IConfigService as j, createIdentifier as q, ILogService as H, Inject as E, Injector as N, LocaleService as T, ThemeService as z, DisposableCollection as K, UniverInstanceType as Y, ICommandService as J, Plugin as Q, merge as X } from "@univerjs/core";
5
- import { ISidebarService as Z, useDependency as l, IShortcutService as ee, IMessageService as te, getMenuHiddenObservable as re, MenuItemType as ne, RibbonOthersGroup as ie, IMenuManagerService as oe, ComponentManager as se } from "@univerjs/ui";
6
- import { BehaviorSubject as ce, distinctUntilChanged as ae } from "rxjs";
7
- import { jsxs as le, jsx as g } from "react/jsx-runtime";
8
- import { Button as ue, MessageType as w } from "@univerjs/design";
9
- import { editor as pe } from "monaco-editor";
10
- import { useRef as f, useEffect as de, useCallback as ve } from "react";
11
- import { FUniver as ge } from "@univerjs/core/facade";
12
- import { RangeProtectionPermissionEditPoint as he, WorksheetEditPermission as me, WorksheetSetCellStylePermission as _e, WorksheetSetCellValuePermission as fe, WorkbookEditablePermission as Se } from "@univerjs/sheets";
13
- import { getCurrentRangeDisable$ as Ie } from "@univerjs/sheets-ui";
14
- class D extends _ {
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
- p(this, "_open$", new ce(!1));
18
- p(this, "open$", this._open$.pipe(ae()));
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 R = "ScriptPanel", C = {
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(D), r = t.get(Z);
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: R },
40
+ children: { label: k },
41
41
  width: 600
42
42
  })), !0;
43
43
  }
44
- }, k = "uniscript.config", x = {};
45
- var Pe = Object.getOwnPropertyDescriptor, Ee = (t, e, r, n) => {
46
- for (var i = n > 1 ? void 0 : n ? Pe(e, r) : e, o = t.length - 1, s; o >= 0; o--)
47
- (s = t[o]) && (i = s(i) || i);
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
- }, Ce = (t, e) => (r, n) => e(r, n, t);
50
- let h = class extends _ {
72
+ }, ye = (t, e) => (r, n) => e(r, n, t);
73
+ let m = class extends f {
51
74
  constructor(e) {
52
75
  super();
53
- p(this, "_editorInstance", null);
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(k);
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
- h = Ee([
73
- Ce(0, j)
74
- ], h);
75
- var be = Object.getOwnPropertyDescriptor, Oe = (t, e, r, n) => {
76
- for (var i = n > 1 ? void 0 : n ? be(e, r) : e, o = t.length - 1, s; o >= 0; o--)
77
- (s = t[o]) && (i = s(i) || i);
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
- }, y = (t, e) => (r, n) => e(r, n, t);
80
- const W = q("univer.uniscript.execution-service");
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 = ge.newAPI(this._injector), r = new Function("univerAPI", `(() => {${t}})()`);
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 = Oe([
96
- y(0, H),
97
- y(1, E(N))
118
+ P = Ue([
119
+ $(0, K),
120
+ $(1, E(D))
98
121
  ], P);
99
- function we() {
100
- const t = f(null), e = f(null), r = f(null), n = l(T), i = l(ee), o = l(h), s = l(z);
101
- de(() => {
102
- const b = e.current, u = t.current;
103
- let c = null, d = null;
104
- if (b && u) {
105
- o.requireVscodeEditor();
106
- const v = r.current = pe.create(b, {
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: s.darkMode ? "vs-dark" : "vs-light"
132
+ theme: o.darkMode ? "vs-dark" : "vs-light"
110
133
  });
111
- d = new ResizeObserver(() => {
134
+ v = new ResizeObserver(() => {
112
135
  let O = requestIdleCallback(() => {
113
136
  if (!O) return;
114
- const { height: V, width: B } = u.getBoundingClientRect();
115
- v.layout({ width: B, height: V }), O = void 0;
137
+ const { height: B, width: G } = p.getBoundingClientRect();
138
+ g.layout({ width: G, height: B }), O = void 0;
116
139
  });
117
- }), d.observe(u);
140
+ }), v.observe(p);
118
141
  let a;
119
- c = new K(), c.add(o.setEditorInstance(v)), c.add(
120
- v.onDidFocusEditorWidget(() => {
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
- v.onDidBlurEditorWidget(() => {
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
- d && u && d.unobserve(u), c == null || c.dispose();
153
+ v && p && v.unobserve(p), c == null || c.dispose();
131
154
  };
132
- }, [o, i]);
133
- const F = xe(r);
134
- return /* @__PURE__ */ le("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(ue, { variant: "primary", onClick: F, children: n.t("script-panel.panel.execute") }) })
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 xe(t) {
140
- const e = l(W), r = l(te), n = l(T);
141
- return ve(() => {
142
- var o;
143
- const i = (o = t.current) == null ? void 0 : o.getModel();
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
- function ye(t) {
158
- return {
159
- id: C.id,
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
- }, S = (t, e) => (r, n) => e(r, n, t);
182
- let m = class extends _ {
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(Ue), this.disposeWithMe(r.register(R, we)), this.disposeWithMe(e.registerCommand(C));
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
- m = Me([
188
- S(0, oe),
189
- S(1, J),
190
- S(2, E(se))
191
- ], m);
192
- var je = Object.getOwnPropertyDescriptor, Ne = (t, e, r, n) => {
193
- for (var i = n > 1 ? void 0 : n ? je(e, r) : e, o = t.length - 1, s; o >= 0; o--)
194
- (s = t[o]) && (i = s(i) || i);
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
- const Te = "UNIVER_UNISCRIPT_PLUGIN";
198
- var I;
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 } = X(
203
+ const { menu: n, ...i } = Z(
203
204
  {},
204
- x,
205
+ y,
205
206
  this._config
206
207
  );
207
- n && this._configService.setConfig("menu", n, { merge: !0 }), this._configService.setConfig(k, i);
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
- [h],
214
- [D]
215
+ [R]
215
216
  ].forEach((r) => t.add(r)), this.registerExecution();
216
217
  }
217
218
  onSteady() {
218
- this._injector.get(m);
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([W, { useClass: P }]);
225
+ this._injector.add([F, { useClass: P }]);
225
226
  }
226
- }, p(I, "pluginName", Te), I);
227
- $ = Ne([
228
- U(1, E(N)),
229
- U(2, j)
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
- W as IUniscriptExecutionService,
233
- h as ScriptEditorService,
233
+ F as IUniscriptExecutionService,
234
+ m as ScriptEditorService,
234
235
  C as ToggleScriptPanelOperation,
235
- $ as UniverUniscriptPlugin
236
+ j as UniverUniscriptPlugin
236
237
  };
package/lib/index.js CHANGED
@@ -1,21 +1,21 @@
1
- var G = Object.defineProperty;
2
- var L = (t, e, r) => e in t ? G(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
- var p = (t, e, r) => L(t, typeof e != "symbol" ? e + "" : e, r);
4
- import { Disposable as _, CommandType as A, toDisposable as M, IConfigService as j, createIdentifier as q, ILogService as H, Inject as E, Injector as N, LocaleService as T, ThemeService as z, DisposableCollection as K, UniverInstanceType as Y, ICommandService as J, Plugin as Q, merge as X } from "@univerjs/core";
5
- import { ISidebarService as Z, useDependency as l, IShortcutService as ee, IMessageService as te, getMenuHiddenObservable as re, MenuItemType as ne, RibbonOthersGroup as ie, IMenuManagerService as oe, ComponentManager as se } from "@univerjs/ui";
6
- import { BehaviorSubject as ce, distinctUntilChanged as ae } from "rxjs";
7
- import { jsxs as le, jsx as g } from "react/jsx-runtime";
8
- import { Button as ue, MessageType as w } from "@univerjs/design";
9
- import { editor as pe } from "monaco-editor";
10
- import { useRef as f, useEffect as de, useCallback as ve } from "react";
11
- import { FUniver as ge } from "@univerjs/core/facade";
12
- import { RangeProtectionPermissionEditPoint as he, WorksheetEditPermission as me, WorksheetSetCellStylePermission as _e, WorksheetSetCellValuePermission as fe, WorkbookEditablePermission as Se } from "@univerjs/sheets";
13
- import { getCurrentRangeDisable$ as Ie } from "@univerjs/sheets-ui";
14
- class D extends _ {
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
- p(this, "_open$", new ce(!1));
18
- p(this, "open$", this._open$.pipe(ae()));
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 R = "ScriptPanel", C = {
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(D), r = t.get(Z);
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: R },
40
+ children: { label: k },
41
41
  width: 600
42
42
  })), !0;
43
43
  }
44
- }, k = "uniscript.config", x = {};
45
- var Pe = Object.getOwnPropertyDescriptor, Ee = (t, e, r, n) => {
46
- for (var i = n > 1 ? void 0 : n ? Pe(e, r) : e, o = t.length - 1, s; o >= 0; o--)
47
- (s = t[o]) && (i = s(i) || i);
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
- }, Ce = (t, e) => (r, n) => e(r, n, t);
50
- let h = class extends _ {
72
+ }, ye = (t, e) => (r, n) => e(r, n, t);
73
+ let m = class extends f {
51
74
  constructor(e) {
52
75
  super();
53
- p(this, "_editorInstance", null);
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(k);
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
- h = Ee([
73
- Ce(0, j)
74
- ], h);
75
- var be = Object.getOwnPropertyDescriptor, Oe = (t, e, r, n) => {
76
- for (var i = n > 1 ? void 0 : n ? be(e, r) : e, o = t.length - 1, s; o >= 0; o--)
77
- (s = t[o]) && (i = s(i) || i);
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
- }, y = (t, e) => (r, n) => e(r, n, t);
80
- const W = q("univer.uniscript.execution-service");
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 = ge.newAPI(this._injector), r = new Function("univerAPI", `(() => {${t}})()`);
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 = Oe([
96
- y(0, H),
97
- y(1, E(N))
118
+ P = Ue([
119
+ $(0, K),
120
+ $(1, E(D))
98
121
  ], P);
99
- function we() {
100
- const t = f(null), e = f(null), r = f(null), n = l(T), i = l(ee), o = l(h), s = l(z);
101
- de(() => {
102
- const b = e.current, u = t.current;
103
- let c = null, d = null;
104
- if (b && u) {
105
- o.requireVscodeEditor();
106
- const v = r.current = pe.create(b, {
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: s.darkMode ? "vs-dark" : "vs-light"
132
+ theme: o.darkMode ? "vs-dark" : "vs-light"
110
133
  });
111
- d = new ResizeObserver(() => {
134
+ v = new ResizeObserver(() => {
112
135
  let O = requestIdleCallback(() => {
113
136
  if (!O) return;
114
- const { height: V, width: B } = u.getBoundingClientRect();
115
- v.layout({ width: B, height: V }), O = void 0;
137
+ const { height: B, width: G } = p.getBoundingClientRect();
138
+ g.layout({ width: G, height: B }), O = void 0;
116
139
  });
117
- }), d.observe(u);
140
+ }), v.observe(p);
118
141
  let a;
119
- c = new K(), c.add(o.setEditorInstance(v)), c.add(
120
- v.onDidFocusEditorWidget(() => {
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
- v.onDidBlurEditorWidget(() => {
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
- d && u && d.unobserve(u), c == null || c.dispose();
153
+ v && p && v.unobserve(p), c == null || c.dispose();
131
154
  };
132
- }, [o, i]);
133
- const F = xe(r);
134
- return /* @__PURE__ */ le("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(ue, { variant: "primary", onClick: F, children: n.t("script-panel.panel.execute") }) })
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 xe(t) {
140
- const e = l(W), r = l(te), n = l(T);
141
- return ve(() => {
142
- var o;
143
- const i = (o = t.current) == null ? void 0 : o.getModel();
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
- function ye(t) {
158
- return {
159
- id: C.id,
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
- }, S = (t, e) => (r, n) => e(r, n, t);
182
- let m = class extends _ {
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(Ue), this.disposeWithMe(r.register(R, we)), this.disposeWithMe(e.registerCommand(C));
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
- m = Me([
188
- S(0, oe),
189
- S(1, J),
190
- S(2, E(se))
191
- ], m);
192
- var je = Object.getOwnPropertyDescriptor, Ne = (t, e, r, n) => {
193
- for (var i = n > 1 ? void 0 : n ? je(e, r) : e, o = t.length - 1, s; o >= 0; o--)
194
- (s = t[o]) && (i = s(i) || i);
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
- const Te = "UNIVER_UNISCRIPT_PLUGIN";
198
- var I;
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 } = X(
203
+ const { menu: n, ...i } = Z(
203
204
  {},
204
- x,
205
+ y,
205
206
  this._config
206
207
  );
207
- n && this._configService.setConfig("menu", n, { merge: !0 }), this._configService.setConfig(k, i);
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
- [h],
214
- [D]
215
+ [R]
215
216
  ].forEach((r) => t.add(r)), this.registerExecution();
216
217
  }
217
218
  onSteady() {
218
- this._injector.get(m);
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([W, { useClass: P }]);
225
+ this._injector.add([F, { useClass: P }]);
225
226
  }
226
- }, p(I, "pluginName", Te), I);
227
- $ = Ne([
228
- U(1, E(N)),
229
- U(2, j)
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
- W as IUniscriptExecutionService,
233
- h as ScriptEditorService,
233
+ F as IUniscriptExecutionService,
234
+ m as ScriptEditorService,
234
235
  C as ToggleScriptPanelOperation,
235
- $ as UniverUniscriptPlugin
236
+ j as UniverUniscriptPlugin
236
237
  };
@@ -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 './controllers/config.schema';
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';
@@ -1,10 +1,12 @@
1
- import { IUniverUniscriptConfig } from './controllers/config.schema';
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("react/jsx-runtime"),require("@univerjs/design"),require("monaco-editor"),require("react"),require("@univerjs/core/facade"),require("@univerjs/sheets"),require("@univerjs/sheets-ui")):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","@univerjs/sheets-ui"],i):(s=typeof globalThis<"u"?globalThis:s||self,i(s.UniverUniscript={},s.UniverCore,s.UniverUi,s.rxjs,s.React,s.UniverDesign,s.monaco,s.React,s.UniverCoreFacade,s.UniverSheets,s.UniverSheetsUi))})(this,(function(s,i,a,C,p,P,N,v,R,h,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 S=(s,i,a)=>ne(s,typeof i!="symbol"?i+"":i,a);var y;class O extends i.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 D="ScriptPanel",f={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="uniscript.config",b={};var k=Object.getOwnPropertyDescriptor,W=(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},F=(t,e)=>(n,r)=>e(n,r,t);s.ScriptEditorService=class extends i.Disposable{constructor(n){super();S(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(w);window.MonacoEnvironment={getWorkerUrl:n==null?void 0:n.getWorkerUrl}}}},s.ScriptEditorService=W([F(0,i.IConfigService)],s.ScriptEditorService);var V=Object.getOwnPropertyDescriptor,L=(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},$=(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=R.FUniver.newAPI(this._injector),n=new Function("univerAPI",`(() => {${t}})()`);try{return n(e),!0}catch(r){return this._logService.error(r),!1}}};U=L([$(0,i.ILogService),$(1,i.Inject(i.Injector))],U);function B(){const t=v.useRef(null),e=v.useRef(null),n=v.useRef(null),r=a.useDependency(i.LocaleService),c=a.useDependency(a.IShortcutService),o=a.useDependency(s.ScriptEditorService),u=a.useDependency(i.ThemeService);v.useEffect(()=>{const x=e.current,g=t.current;let d=null,m=null;if(x&&g){o.requireVscodeEditor();const I=n.current=N.editor.create(x,{value:"",language:"javascript",theme:u.darkMode?"vs-dark":"vs-light"});m=new ResizeObserver(()=>{let M=requestIdleCallback(()=>{if(!M)return;const{height:Z,width:ee}=g.getBoundingClientRect();I.layout({width:ee,height:Z}),M=void 0})}),m.observe(g);let l;d=new i.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(i.toDisposable(()=>l==null?void 0:l.dispose()))}return()=>{m&&g&&m.unobserve(g),d==null||d.dispose()}},[o,c]);const X=G(n);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,{variant:"primary",onClick:X,children:r.t("script-panel.panel.execute")})})]})}function G(t){const e=a.useDependency(E),n=a.useDependency(a.IMessageService),r=a.useDependency(i.LocaleService);return v.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:P.MessageType.Success})}).catch(()=>{n.show({content:r.t("uniscript.message.failed"),type:P.MessageType.Error})})},[r,n,t,e])}function A(t){return{id:f.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$:q.getCurrentRangeDisable$(t,{workbookTypes:[h.WorkbookEditablePermission],worksheetTypes:[h.WorksheetEditPermission,h.WorksheetSetCellStylePermission,h.WorksheetSetCellValuePermission],rangeTypes:[h.RangeProtectionPermissionEditPoint]})}}const H={[a.RibbonOthersGroup.OTHERS]:{[f.id]:{order:0,menuItemFactory:A}}};var z=Object.getOwnPropertyDescriptor,K=(t,e,n,r)=>{for(var c=r>1?void 0:r?z(e,n):e,o=t.length-1,u;o>=0;o--)(u=t[o])&&(c=u(c)||c);return c},j=(t,e)=>(n,r)=>e(n,r,t);let _=class extends i.Disposable{constructor(t,e,n){super(),this._menuManagerService=t,this._menuManagerService.mergeMenu(H),this.disposeWithMe(n.register(D,B)),this.disposeWithMe(e.registerCommand(f))}};_=K([j(0,a.IMenuManagerService),j(1,i.ICommandService),j(2,i.Inject(a.ComponentManager))],_);var Y=Object.getOwnPropertyDescriptor,J=(t,e,n,r)=>{for(var c=r>1?void 0:r?Y(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 Q="UNIVER_UNISCRIPT_PLUGIN";s.UniverUniscriptPlugin=(y=class extends i.Plugin{constructor(e=b,n,r){super(),this._config=e,this._injector=n,this._configService=r;const{menu:c,...o}=i.merge({},b,this._config);c&&this._configService.setConfig("menu",c,{merge:!0}),this._configService.setConfig(w,o)}onStarting(){const e=this._injector;[[_],[s.ScriptEditorService],[O]].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([T(1,i.Inject(i.Injector)),T(2,i.IConfigService)],s.UniverUniscriptPlugin),s.IUniscriptExecutionService=E,s.ToggleScriptPanelOperation=f,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));
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.16.1",
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/core": "0.16.1",
60
- "@univerjs/design": "0.16.1",
61
- "@univerjs/ui": "0.16.1",
62
- "@univerjs/sheets": "0.16.1",
63
- "@univerjs/sheets-ui": "0.16.1"
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.6",
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.16.1"
73
+ "@univerjs-infra/shared": "0.17.0"
74
74
  },
75
75
  "scripts": {
76
76
  "test": "vitest run",
File without changes