@univerjs/uniscript 0.1.0-alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +20 -0
  3. package/lib/cjs/index.js +863 -0
  4. package/lib/cjs/locale/en-US.js +36 -0
  5. package/lib/cjs/locale/zh-CN.js +26 -0
  6. package/lib/esm/index.js +855 -0
  7. package/lib/esm/locale/en-US.js +15 -0
  8. package/lib/esm/locale/zh-CN.js +5 -0
  9. package/lib/index.css +9 -0
  10. package/lib/types/commands/operations/panel.operation.d.ts +4 -0
  11. package/lib/types/commands/operations/panel.operation.d.ts.map +1 -0
  12. package/lib/types/controllers/menu.d.ts +3 -0
  13. package/lib/types/controllers/menu.d.ts.map +1 -0
  14. package/lib/types/controllers/uniscript.controller.d.ts +6 -0
  15. package/lib/types/controllers/uniscript.controller.d.ts.map +1 -0
  16. package/lib/types/facade/facade.d.ts +11 -0
  17. package/lib/types/facade/facade.d.ts.map +1 -0
  18. package/lib/types/facade/sheet/f-range.d.ts +18 -0
  19. package/lib/types/facade/sheet/f-range.d.ts.map +1 -0
  20. package/lib/types/facade/sheet/f-selection.d.ts +13 -0
  21. package/lib/types/facade/sheet/f-selection.d.ts.map +1 -0
  22. package/lib/types/facade/sheet/f-workbook.d.ts +10 -0
  23. package/lib/types/facade/sheet/f-workbook.d.ts.map +1 -0
  24. package/lib/types/facade/sheet/f-worksheet.d.ts +15 -0
  25. package/lib/types/facade/sheet/f-worksheet.d.ts.map +1 -0
  26. package/lib/types/index.d.ts +2 -0
  27. package/lib/types/index.d.ts.map +1 -0
  28. package/lib/types/locale/en-US.d.ts +13 -0
  29. package/lib/types/locale/en-US.d.ts.map +1 -0
  30. package/lib/types/locale/index.d.ts +3 -0
  31. package/lib/types/locale/index.d.ts.map +1 -0
  32. package/lib/types/locale/zh-CN.d.ts +3 -0
  33. package/lib/types/locale/zh-CN.d.ts.map +1 -0
  34. package/lib/types/models/model.d.ts +1 -0
  35. package/lib/types/models/model.d.ts.map +1 -0
  36. package/lib/types/plugin.d.ts +14 -0
  37. package/lib/types/plugin.d.ts.map +1 -0
  38. package/lib/types/services/command/batch-command.service.d.ts +10 -0
  39. package/lib/types/services/command/batch-command.service.d.ts.map +1 -0
  40. package/lib/types/services/script-editor.service.d.ts +13 -0
  41. package/lib/types/services/script-editor.service.d.ts.map +1 -0
  42. package/lib/types/services/script-execution.service.d.ts +12 -0
  43. package/lib/types/services/script-execution.service.d.ts.map +1 -0
  44. package/lib/types/services/script-panel.service.d.ts +10 -0
  45. package/lib/types/services/script-panel.service.d.ts.map +1 -0
  46. package/lib/types/views/components/ScriptEditorPanel.d.ts +3 -0
  47. package/lib/types/views/components/ScriptEditorPanel.d.ts.map +1 -0
  48. package/lib/types/views/parts/render.part.d.ts +1 -0
  49. package/lib/types/views/parts/render.part.d.ts.map +1 -0
  50. package/package.json +66 -0
@@ -0,0 +1,855 @@
1
+ function _assert_this_initialized(self) {
2
+ if (self === void 0) {
3
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
4
+ }
5
+ return self;
6
+ }
7
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
8
+ try {
9
+ var info = gen[key](arg);
10
+ var value = info.value;
11
+ } catch (error) {
12
+ reject(error);
13
+ return;
14
+ }
15
+ if (info.done) {
16
+ resolve(value);
17
+ } else {
18
+ Promise.resolve(value).then(_next, _throw);
19
+ }
20
+ }
21
+ function _async_to_generator(fn) {
22
+ return function() {
23
+ var self = this, args = arguments;
24
+ return new Promise(function(resolve, reject) {
25
+ var gen = fn.apply(self, args);
26
+ function _next(value) {
27
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
28
+ }
29
+ function _throw(err) {
30
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
31
+ }
32
+ _next(undefined);
33
+ });
34
+ };
35
+ }
36
+ function _class_call_check(instance, Constructor) {
37
+ if (!(instance instanceof Constructor)) {
38
+ throw new TypeError("Cannot call a class as a function");
39
+ }
40
+ }
41
+ function _construct(Parent, args, Class) {
42
+ if (_is_native_reflect_construct()) {
43
+ _construct = Reflect.construct;
44
+ } else {
45
+ _construct = function construct(Parent, args, Class) {
46
+ var a = [
47
+ null
48
+ ];
49
+ a.push.apply(a, args);
50
+ var Constructor = Function.bind.apply(Parent, a);
51
+ var instance = new Constructor();
52
+ if (Class) _set_prototype_of(instance, Class.prototype);
53
+ return instance;
54
+ };
55
+ }
56
+ return _construct.apply(null, arguments);
57
+ }
58
+ function _defineProperties(target, props) {
59
+ for(var i = 0; i < props.length; i++){
60
+ var descriptor = props[i];
61
+ descriptor.enumerable = descriptor.enumerable || false;
62
+ descriptor.configurable = true;
63
+ if ("value" in descriptor) descriptor.writable = true;
64
+ Object.defineProperty(target, descriptor.key, descriptor);
65
+ }
66
+ }
67
+ function _create_class(Constructor, protoProps, staticProps) {
68
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
69
+ if (staticProps) _defineProperties(Constructor, staticProps);
70
+ return Constructor;
71
+ }
72
+ function _define_property(obj, key, value) {
73
+ if (key in obj) {
74
+ Object.defineProperty(obj, key, {
75
+ value: value,
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true
79
+ });
80
+ } else {
81
+ obj[key] = value;
82
+ }
83
+ return obj;
84
+ }
85
+ function _get_prototype_of(o) {
86
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
87
+ return o.__proto__ || Object.getPrototypeOf(o);
88
+ };
89
+ return _get_prototype_of(o);
90
+ }
91
+ function _inherits(subClass, superClass) {
92
+ if (typeof superClass !== "function" && superClass !== null) {
93
+ throw new TypeError("Super expression must either be null or a function");
94
+ }
95
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
96
+ constructor: {
97
+ value: subClass,
98
+ writable: true,
99
+ configurable: true
100
+ }
101
+ });
102
+ if (superClass) _set_prototype_of(subClass, superClass);
103
+ }
104
+ function _is_native_function(fn) {
105
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
106
+ }
107
+ function _possible_constructor_return(self, call) {
108
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
109
+ return call;
110
+ }
111
+ return _assert_this_initialized(self);
112
+ }
113
+ function _set_prototype_of(o, p) {
114
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
115
+ o.__proto__ = p;
116
+ return o;
117
+ };
118
+ return _set_prototype_of(o, p);
119
+ }
120
+ function _type_of(obj) {
121
+ "@swc/helpers - typeof";
122
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
123
+ }
124
+ function _wrap_native_super(Class) {
125
+ var _cache = typeof Map === "function" ? new Map() : undefined;
126
+ _wrap_native_super = function wrapNativeSuper(Class) {
127
+ if (Class === null || !_is_native_function(Class)) return Class;
128
+ if (typeof Class !== "function") {
129
+ throw new TypeError("Super expression must either be null or a function");
130
+ }
131
+ if (typeof _cache !== "undefined") {
132
+ if (_cache.has(Class)) return _cache.get(Class);
133
+ _cache.set(Class, Wrapper);
134
+ }
135
+ function Wrapper() {
136
+ return _construct(Class, arguments, _get_prototype_of(this).constructor);
137
+ }
138
+ Wrapper.prototype = Object.create(Class.prototype, {
139
+ constructor: {
140
+ value: Wrapper,
141
+ enumerable: false,
142
+ writable: true,
143
+ configurable: true
144
+ }
145
+ });
146
+ return _set_prototype_of(Wrapper, Class);
147
+ };
148
+ return _wrap_native_super(Class);
149
+ }
150
+ function _is_native_reflect_construct() {
151
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
152
+ if (Reflect.construct.sham) return false;
153
+ if (typeof Proxy === "function") return true;
154
+ try {
155
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
156
+ return true;
157
+ } catch (e) {
158
+ return false;
159
+ }
160
+ }
161
+ function _create_super(Derived) {
162
+ var hasNativeReflectConstruct = _is_native_reflect_construct();
163
+ return function _createSuperInternal() {
164
+ var Super = _get_prototype_of(Derived), result;
165
+ if (hasNativeReflectConstruct) {
166
+ var NewTarget = _get_prototype_of(this).constructor;
167
+ result = Reflect.construct(Super, arguments, NewTarget);
168
+ } else {
169
+ result = Super.apply(this, arguments);
170
+ }
171
+ return _possible_constructor_return(this, result);
172
+ };
173
+ }
174
+ function _ts_generator(thisArg, body) {
175
+ var f, y, t, g, _ = {
176
+ label: 0,
177
+ sent: function() {
178
+ if (t[0] & 1) throw t[1];
179
+ return t[1];
180
+ },
181
+ trys: [],
182
+ ops: []
183
+ };
184
+ return g = {
185
+ next: verb(0),
186
+ "throw": verb(1),
187
+ "return": verb(2)
188
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
189
+ return this;
190
+ }), g;
191
+ function verb(n) {
192
+ return function(v) {
193
+ return step([
194
+ n,
195
+ v
196
+ ]);
197
+ };
198
+ }
199
+ function step(op) {
200
+ if (f) throw new TypeError("Generator is already executing.");
201
+ while(_)try {
202
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
203
+ if (y = 0, t) op = [
204
+ op[0] & 2,
205
+ t.value
206
+ ];
207
+ switch(op[0]){
208
+ case 0:
209
+ case 1:
210
+ t = op;
211
+ break;
212
+ case 4:
213
+ _.label++;
214
+ return {
215
+ value: op[1],
216
+ done: false
217
+ };
218
+ case 5:
219
+ _.label++;
220
+ y = op[1];
221
+ op = [
222
+ 0
223
+ ];
224
+ continue;
225
+ case 7:
226
+ op = _.ops.pop();
227
+ _.trys.pop();
228
+ continue;
229
+ default:
230
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
231
+ _ = 0;
232
+ continue;
233
+ }
234
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
235
+ _.label = op[1];
236
+ break;
237
+ }
238
+ if (op[0] === 6 && _.label < t[1]) {
239
+ _.label = t[1];
240
+ t = op;
241
+ break;
242
+ }
243
+ if (t && _.label < t[2]) {
244
+ _.label = t[2];
245
+ _.ops.push(op);
246
+ break;
247
+ }
248
+ if (t[2]) _.ops.pop();
249
+ _.trys.pop();
250
+ continue;
251
+ }
252
+ op = body.call(thisArg, _);
253
+ } catch (e) {
254
+ op = [
255
+ 6,
256
+ e
257
+ ];
258
+ y = 0;
259
+ } finally{
260
+ f = t = 0;
261
+ }
262
+ if (op[0] & 5) throw op[1];
263
+ return {
264
+ value: op[0] ? op[1] : void 0,
265
+ done: true
266
+ };
267
+ }
268
+ }
269
+ var _class;
270
+ var __defProp = Object.defineProperty;
271
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
272
+ var __decorateClass = function(decorators, target, key, kind) {
273
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
274
+ for(var i = decorators.length - 1, decorator; i >= 0; i--)if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
275
+ if (kind && result) __defProp(target, key, result);
276
+ return result;
277
+ };
278
+ var __decorateParam = function(index, decorator) {
279
+ return function(target, key) {
280
+ return decorator(target, key, index);
281
+ };
282
+ };
283
+ // src/plugin.ts
284
+ import { LocaleService as LocaleService2, Plugin, PluginType } from "@univerjs/core";
285
+ import { Inject as Inject8, Injector as Injector7 } from "@wendellhu/redi";
286
+ // src/controllers/uniscript.controller.ts
287
+ import { Disposable as Disposable4, ICommandService as ICommandService2, LifecycleStages, OnLifecycle } from "@univerjs/core";
288
+ import { ComponentManager, IMenuService } from "@univerjs/ui";
289
+ import { Inject as Inject7 } from "@wendellhu/redi";
290
+ // src/commands/operations/panel.operation.ts
291
+ import { CommandType } from "@univerjs/core";
292
+ import { ISidebarService } from "@univerjs/ui";
293
+ // src/services/script-panel.service.ts
294
+ import { Disposable } from "@univerjs/core";
295
+ import { BehaviorSubject, distinctUntilChanged } from "rxjs";
296
+ var ScriptPanelService = /*#__PURE__*/ function(Disposable) {
297
+ "use strict";
298
+ _inherits(ScriptPanelService, Disposable);
299
+ var _super = _create_super(ScriptPanelService);
300
+ function ScriptPanelService() {
301
+ _class_call_check(this, ScriptPanelService);
302
+ var _this;
303
+ _this = _super.apply(this, arguments);
304
+ _define_property(_assert_this_initialized(_this), "_open$", new BehaviorSubject(false));
305
+ _define_property(_assert_this_initialized(_this), "open$", _this._open$.pipe(distinctUntilChanged()));
306
+ return _this;
307
+ }
308
+ _create_class(ScriptPanelService, [
309
+ {
310
+ key: "isOpen",
311
+ get: function get() {
312
+ return this._open$.getValue();
313
+ }
314
+ },
315
+ {
316
+ key: "dispose",
317
+ value: function dispose() {
318
+ this._open$.next(false);
319
+ this._open$.complete();
320
+ }
321
+ },
322
+ {
323
+ key: "open",
324
+ value: function open() {
325
+ this._open$.next(true);
326
+ }
327
+ },
328
+ {
329
+ key: "close",
330
+ value: function close() {
331
+ this._open$.next(false);
332
+ }
333
+ }
334
+ ]);
335
+ return ScriptPanelService;
336
+ }(Disposable);
337
+ // src/commands/operations/panel.operation.ts
338
+ var ScriptPanelComponentName = "ScriptPanel";
339
+ var ToggleScriptPanelOperation = {
340
+ type: CommandType.OPERATION,
341
+ id: "univer.operation.toggle-sscript-panel",
342
+ handler: function(accessor) {
343
+ var scriptPanelService = accessor.get(ScriptPanelService);
344
+ var sidebarService = accessor.get(ISidebarService);
345
+ var isOpen = scriptPanelService.isOpen;
346
+ if (isOpen) {
347
+ scriptPanelService.close();
348
+ sidebarService.close();
349
+ } else {
350
+ scriptPanelService.open();
351
+ sidebarService.open({
352
+ header: {
353
+ title: "script-panel.title"
354
+ },
355
+ children: {
356
+ label: ScriptPanelComponentName
357
+ },
358
+ width: 600
359
+ });
360
+ }
361
+ return true;
362
+ }
363
+ };
364
+ // src/views/components/ScriptEditorPanel.tsx
365
+ import { DisposableCollection, LocaleService, toDisposable } from "@univerjs/core";
366
+ import { Button, MessageType } from "@univerjs/design";
367
+ import { IMessageService, IShortcutService } from "@univerjs/ui";
368
+ import { useDependency } from "@wendellhu/redi/react-bindings";
369
+ import { editor } from "monaco-editor";
370
+ import React, { useCallback, useEffect, useRef } from "react";
371
+ // src/services/script-editor.service.ts
372
+ import { Disposable as Disposable2 } from "@univerjs/core";
373
+ var ScriptEditorService = /*#__PURE__*/ function(Disposable2) {
374
+ "use strict";
375
+ _inherits(ScriptEditorService, Disposable2);
376
+ var _super = _create_super(ScriptEditorService);
377
+ function ScriptEditorService(_config) {
378
+ _class_call_check(this, ScriptEditorService);
379
+ var _this;
380
+ _this = _super.call(this);
381
+ _this._config = _config;
382
+ return _this;
383
+ }
384
+ _create_class(ScriptEditorService, [
385
+ {
386
+ key: "requireVscodeEditor",
387
+ value: function requireVscodeEditor() {
388
+ if (!window.MonacoEnvironment) {
389
+ window.MonacoEnvironment = {
390
+ getWorkerUrl: this._config.getWorkerUrl
391
+ };
392
+ }
393
+ }
394
+ }
395
+ ]);
396
+ return ScriptEditorService;
397
+ }(Disposable2);
398
+ // src/services/script-execution.service.ts
399
+ import { Disposable as Disposable3, ILogService } from "@univerjs/core";
400
+ import { Inject as Inject6, Injector as Injector6 } from "@wendellhu/redi";
401
+ // src/facade/facade.ts
402
+ import { IUniverInstanceService } from "@univerjs/core";
403
+ import { Inject as Inject5, Injector as Injector5 } from "@wendellhu/redi";
404
+ // src/facade/sheet/f-workbook.ts
405
+ import { Inject as Inject4, Injector as Injector4 } from "@wendellhu/redi";
406
+ // src/facade/sheet/f-worksheet.ts
407
+ import { SelectionManagerService } from "@univerjs/sheets";
408
+ import { Inject as Inject3, Injector as Injector3 } from "@wendellhu/redi";
409
+ // src/facade/sheet/f-range.ts
410
+ import { ICommandService } from "@univerjs/core";
411
+ import { SetStyleCommand } from "@univerjs/sheets";
412
+ import { Inject, Injector } from "@wendellhu/redi";
413
+ var FRange = /*#__PURE__*/ function() {
414
+ "use strict";
415
+ function FRange(_workbook, _worksheet, _range, _injector, _commandService) {
416
+ _class_call_check(this, FRange);
417
+ this._workbook = _workbook;
418
+ this._worksheet = _worksheet;
419
+ this._range = _range;
420
+ this._injector = _injector;
421
+ this._commandService = _commandService;
422
+ }
423
+ _create_class(FRange, [
424
+ {
425
+ key: "getRow",
426
+ value: function getRow() {
427
+ return this._range.startRow;
428
+ }
429
+ },
430
+ {
431
+ key: "getColumn",
432
+ value: function getColumn() {
433
+ return this._range.startColumn;
434
+ }
435
+ },
436
+ {
437
+ key: "getWidth",
438
+ value: function getWidth() {
439
+ return this._range.endColumn - this._range.startColumn + 1;
440
+ }
441
+ },
442
+ {
443
+ key: "getHeight",
444
+ value: function getHeight() {
445
+ return this._range.endRow - this._range.startRow + 1;
446
+ }
447
+ },
448
+ {
449
+ key: "getValue",
450
+ value: function getValue() {
451
+ var _this__worksheet_getCell;
452
+ var _this__worksheet_getCell_v;
453
+ return (_this__worksheet_getCell_v = (_this__worksheet_getCell = this._worksheet.getCell(this._range.startRow, this._range.startColumn)) === null || _this__worksheet_getCell === void 0 ? void 0 : _this__worksheet_getCell.v) !== null && _this__worksheet_getCell_v !== void 0 ? _this__worksheet_getCell_v : null;
454
+ }
455
+ },
456
+ {
457
+ key: "setBackgroundColor",
458
+ value: function setBackgroundColor(color) {
459
+ this._commandService.executeCommand(SetStyleCommand.id, {
460
+ workbookId: this._workbook.getUnitId(),
461
+ worksheetId: this._worksheet.getSheetId(),
462
+ range: this._range,
463
+ style: {
464
+ type: "bg",
465
+ value: {
466
+ rgb: color
467
+ }
468
+ }
469
+ });
470
+ }
471
+ }
472
+ ]);
473
+ return FRange;
474
+ }();
475
+ FRange = __decorateClass([
476
+ __decorateParam(3, Inject(Injector)),
477
+ __decorateParam(4, ICommandService)
478
+ ], FRange);
479
+ // src/facade/sheet/f-selection.ts
480
+ import { Inject as Inject2, Injector as Injector2 } from "@wendellhu/redi";
481
+ var FSelection = /*#__PURE__*/ function() {
482
+ "use strict";
483
+ function FSelection(_workbook, _worksheet, _selections, _injector) {
484
+ _class_call_check(this, FSelection);
485
+ this._workbook = _workbook;
486
+ this._worksheet = _worksheet;
487
+ this._selections = _selections;
488
+ this._injector = _injector;
489
+ }
490
+ _create_class(FSelection, [
491
+ {
492
+ key: "getActiveRange",
493
+ value: function getActiveRange() {
494
+ var active = this._selections.find(function(selection) {
495
+ return !!selection.primary;
496
+ });
497
+ if (!active) {
498
+ return null;
499
+ }
500
+ return this._injector.createInstance(FRange, this._workbook, this._worksheet, active.range);
501
+ }
502
+ }
503
+ ]);
504
+ return FSelection;
505
+ }();
506
+ FSelection = __decorateClass([
507
+ __decorateParam(3, Inject2(Injector2))
508
+ ], FSelection);
509
+ // src/facade/sheet/f-worksheet.ts
510
+ var FWorksheet = /*#__PURE__*/ function() {
511
+ "use strict";
512
+ function FWorksheet(_workbook, _worksheet, _injector, _selectionManagerService) {
513
+ _class_call_check(this, FWorksheet);
514
+ this._workbook = _workbook;
515
+ this._worksheet = _worksheet;
516
+ this._injector = _injector;
517
+ this._selectionManagerService = _selectionManagerService;
518
+ }
519
+ _create_class(FWorksheet, [
520
+ {
521
+ key: "getSelection",
522
+ value: function getSelection() {
523
+ var selections = this._selectionManagerService.getSelections();
524
+ if (!selections) {
525
+ return null;
526
+ }
527
+ return this._injector.createInstance(FSelection, this._workbook, this._worksheet, selections);
528
+ }
529
+ },
530
+ {
531
+ key: "getRange",
532
+ value: function getRange(row, col) {
533
+ var range = {
534
+ startRow: row,
535
+ endRow: row,
536
+ startColumn: col,
537
+ endColumn: col
538
+ };
539
+ return this._injector.createInstance(FRange, this._workbook, this._worksheet, range);
540
+ }
541
+ }
542
+ ]);
543
+ return FWorksheet;
544
+ }();
545
+ FWorksheet = __decorateClass([
546
+ __decorateParam(2, Inject3(Injector3)),
547
+ __decorateParam(3, Inject3(SelectionManagerService))
548
+ ], FWorksheet);
549
+ // src/facade/sheet/f-workbook.ts
550
+ var FWorkbook = /*#__PURE__*/ function() {
551
+ "use strict";
552
+ function FWorkbook(_workbook, _injector) {
553
+ _class_call_check(this, FWorkbook);
554
+ this._workbook = _workbook;
555
+ this._injector = _injector;
556
+ }
557
+ _create_class(FWorkbook, [
558
+ {
559
+ key: "getActiveSheet",
560
+ value: function getActiveSheet() {
561
+ var activeSheet = this._workbook.getActiveSheet();
562
+ if (!activeSheet) {
563
+ return null;
564
+ }
565
+ return this._injector.createInstance(FWorksheet, this._workbook, activeSheet);
566
+ }
567
+ }
568
+ ]);
569
+ return FWorkbook;
570
+ }();
571
+ FWorkbook = __decorateClass([
572
+ __decorateParam(1, Inject4(Injector4))
573
+ ], FWorkbook);
574
+ // src/facade/facade.ts
575
+ var FUniver = /*#__PURE__*/ function() {
576
+ "use strict";
577
+ function FUniver1(_injector, _univerInstanceService) {
578
+ _class_call_check(this, FUniver1);
579
+ this._injector = _injector;
580
+ this._univerInstanceService = _univerInstanceService;
581
+ }
582
+ _create_class(FUniver1, [
583
+ {
584
+ key: "getCurrentSheet",
585
+ value: function getCurrentSheet() {
586
+ var workbook = this._univerInstanceService.getCurrentUniverSheetInstance();
587
+ if (!workbook) {
588
+ return null;
589
+ }
590
+ return this._injector.createInstance(FWorkbook, workbook);
591
+ }
592
+ }
593
+ ], [
594
+ {
595
+ key: "newInstance",
596
+ value: function newInstance(injector) {
597
+ return injector.createInstance(FUniver);
598
+ }
599
+ }
600
+ ]);
601
+ return FUniver1;
602
+ }();
603
+ FUniver = __decorateClass([
604
+ __decorateParam(0, Inject5(Injector5)),
605
+ __decorateParam(1, IUniverInstanceService)
606
+ ], FUniver);
607
+ // src/services/script-execution.service.ts
608
+ var UniscriptExecutionService = /*#__PURE__*/ function(Disposable3) {
609
+ "use strict";
610
+ _inherits(UniscriptExecutionService, Disposable3);
611
+ var _super = _create_super(UniscriptExecutionService);
612
+ function UniscriptExecutionService(_logService, _injector) {
613
+ _class_call_check(this, UniscriptExecutionService);
614
+ var _this;
615
+ _this = _super.call(this);
616
+ _this._logService = _logService;
617
+ _this._injector = _injector;
618
+ return _this;
619
+ }
620
+ _create_class(UniscriptExecutionService, [
621
+ {
622
+ key: "execute",
623
+ value: function execute(code) {
624
+ var _this = this;
625
+ return _async_to_generator(function() {
626
+ var facadeInstance, scriptFunction;
627
+ return _ts_generator(this, function(_state) {
628
+ _this._logService.log("[UniscriptExecutionService]", "executing Uniscript...");
629
+ facadeInstance = FUniver.newInstance(_this._injector);
630
+ scriptFunction = new Function("Univer", "(() => {".concat(code, "})()"));
631
+ try {
632
+ scriptFunction(facadeInstance);
633
+ return [
634
+ 2,
635
+ true
636
+ ];
637
+ } catch (e) {
638
+ _this._logService.error(e);
639
+ return [
640
+ 2,
641
+ false
642
+ ];
643
+ }
644
+ return [
645
+ 2
646
+ ];
647
+ });
648
+ })();
649
+ }
650
+ }
651
+ ]);
652
+ return UniscriptExecutionService;
653
+ }(Disposable3);
654
+ UniscriptExecutionService = __decorateClass([
655
+ __decorateParam(0, ILogService),
656
+ __decorateParam(1, Inject6(Injector6))
657
+ ], UniscriptExecutionService);
658
+ // stylePlugin:/Users/jikkaixiao/dev/univer/packages/uniscript/src/views/components/index.module.less
659
+ var index_module_default = {
660
+ "scriptEditorPanel": "univer-script-editor-panel",
661
+ "scriptEditorContent": "univer-script-editor-content"
662
+ };
663
+ // src/views/components/ScriptEditorPanel.tsx
664
+ function ScriptEditorPanel() {
665
+ var editorContentRef = useRef(null);
666
+ var editorContainerRef = useRef(null);
667
+ var monacoEditorRef = useRef(null);
668
+ var localeService = useDependency(LocaleService);
669
+ var scriptService = useDependency(UniscriptExecutionService);
670
+ var shortcutService = useDependency(IShortcutService);
671
+ var editorService = useDependency(ScriptEditorService);
672
+ var messageService = useDependency(IMessageService);
673
+ useEffect(function() {
674
+ var containerElement = editorContainerRef.current;
675
+ var contentElement = editorContentRef.current;
676
+ var disposableCollection = null;
677
+ var resizeObserver = null;
678
+ if (containerElement && contentElement) {
679
+ editorService.requireVscodeEditor();
680
+ var monacoEditor = monacoEditorRef.current = editor.create(containerElement, {
681
+ value: "",
682
+ language: "javascript"
683
+ });
684
+ resizeObserver = new ResizeObserver(function() {
685
+ var timer = requestIdleCallback(function() {
686
+ if (!timer) return;
687
+ var _contentElement_getBoundingClientRect = contentElement.getBoundingClientRect(), height = _contentElement_getBoundingClientRect.height, width = _contentElement_getBoundingClientRect.width;
688
+ monacoEditor.layout({
689
+ width: width,
690
+ height: height
691
+ });
692
+ timer = void 0;
693
+ });
694
+ });
695
+ resizeObserver.observe(contentElement);
696
+ var terminateEscaping;
697
+ disposableCollection = new DisposableCollection();
698
+ disposableCollection.add(monacoEditor.onDidFocusEditorWidget(function() {
699
+ terminateEscaping = shortcutService.forceEscape();
700
+ }));
701
+ disposableCollection.add(monacoEditor.onDidBlurEditorWidget(function() {
702
+ terminateEscaping === null || terminateEscaping === void 0 ? void 0 : terminateEscaping.dispose();
703
+ terminateEscaping = void 0;
704
+ }));
705
+ disposableCollection.add(toDisposable(function() {
706
+ return terminateEscaping === null || terminateEscaping === void 0 ? void 0 : terminateEscaping.dispose();
707
+ }));
708
+ }
709
+ return function() {
710
+ if (resizeObserver && contentElement) {
711
+ resizeObserver.unobserve(contentElement);
712
+ }
713
+ disposableCollection === null || disposableCollection === void 0 ? void 0 : disposableCollection.dispose();
714
+ };
715
+ }, []);
716
+ var startExecution = useCallback(function() {
717
+ var _monacoEditorRef_current;
718
+ var model = (_monacoEditorRef_current = monacoEditorRef.current) === null || _monacoEditorRef_current === void 0 ? void 0 : _monacoEditorRef_current.getModel();
719
+ if (model) {
720
+ scriptService.execute(model.getValue()).then(function() {
721
+ messageService.show({
722
+ content: "Execution completed",
723
+ type: MessageType.Success
724
+ });
725
+ }).catch(function() {
726
+ messageService.show({
727
+ content: "Execution failed",
728
+ type: MessageType.Error
729
+ });
730
+ });
731
+ }
732
+ }, [
733
+ scriptService
734
+ ]);
735
+ return /* @__PURE__ */ React.createElement("div", {
736
+ className: index_module_default.scriptEditorPanel
737
+ }, /* @__PURE__ */ React.createElement("div", {
738
+ className: index_module_default.scriptEditorContent,
739
+ ref: editorContentRef
740
+ }, /* @__PURE__ */ React.createElement("div", {
741
+ className: index_module_default.scriptEditorContainer,
742
+ ref: editorContainerRef
743
+ })), /* @__PURE__ */ React.createElement("div", {
744
+ className: index_module_default.scriptEditorActions
745
+ }, /* @__PURE__ */ React.createElement(Button, {
746
+ type: "primary",
747
+ size: "small",
748
+ onClick: startExecution
749
+ }, localeService.t("script-panel.panel.execute"))));
750
+ }
751
+ // src/controllers/menu.ts
752
+ import { MenuItemType, MenuPosition } from "@univerjs/ui";
753
+ function UniscriptMenuItemFactory() {
754
+ return {
755
+ id: ToggleScriptPanelOperation.id,
756
+ title: "toggle-script-panel",
757
+ tooltip: "script-panel.tooltip.menu-button",
758
+ icon: "CodeSingle",
759
+ type: MenuItemType.BUTTON,
760
+ positions: [
761
+ MenuPosition.TOOLBAR_START
762
+ ]
763
+ };
764
+ }
765
+ // src/controllers/uniscript.controller.ts
766
+ var UniscriptController = /*#__PURE__*/ function(Disposable4) {
767
+ "use strict";
768
+ _inherits(UniscriptController, Disposable4);
769
+ var _super = _create_super(UniscriptController);
770
+ function UniscriptController(menuService, commandService, componentManager) {
771
+ _class_call_check(this, UniscriptController);
772
+ var _this;
773
+ _this = _super.call(this);
774
+ _this.disposeWithMe(menuService.addMenuItem(UniscriptMenuItemFactory()));
775
+ _this.disposeWithMe(componentManager.register(ScriptPanelComponentName, ScriptEditorPanel));
776
+ _this.disposeWithMe(commandService.registerCommand(ToggleScriptPanelOperation));
777
+ return _this;
778
+ }
779
+ return UniscriptController;
780
+ }(Disposable4);
781
+ UniscriptController = __decorateClass([
782
+ OnLifecycle(LifecycleStages.Steady, UniscriptController),
783
+ __decorateParam(0, IMenuService),
784
+ __decorateParam(1, ICommandService2),
785
+ __decorateParam(2, Inject7(ComponentManager))
786
+ ], UniscriptController);
787
+ // src/locale/en-US.ts
788
+ var en_US_default = {
789
+ "script-panel": {
790
+ title: "Uniscript",
791
+ tooltip: {
792
+ "menu-button": "Toggle Uniscript Panel"
793
+ },
794
+ panel: {
795
+ execute: "Execute Script"
796
+ }
797
+ }
798
+ };
799
+ // src/plugin.ts
800
+ var PLUGIN_NAME = "uniscript";
801
+ var UniscriptPlugin = (_class = /*#__PURE__*/ function(Plugin) {
802
+ "use strict";
803
+ _inherits(_class, Plugin);
804
+ var _super = _create_super(_class);
805
+ function _class(_config, _injector, _localeService) {
806
+ _class_call_check(this, _class);
807
+ var _this;
808
+ _this = _super.call(this, PLUGIN_NAME);
809
+ _this._config = _config;
810
+ _this._injector = _injector;
811
+ _this._localeService = _localeService;
812
+ return _this;
813
+ }
814
+ _create_class(_class, [
815
+ {
816
+ key: "onStarting",
817
+ value: function onStarting(injector) {
818
+ var _this = this;
819
+ var dependencies = [
820
+ // controllers
821
+ [
822
+ UniscriptController
823
+ ],
824
+ // services
825
+ [
826
+ ScriptEditorService,
827
+ {
828
+ useFactory: function() {
829
+ return injector.createInstance(ScriptEditorService, _this._config);
830
+ }
831
+ }
832
+ ],
833
+ [
834
+ ScriptPanelService
835
+ ],
836
+ [
837
+ UniscriptExecutionService
838
+ ]
839
+ ];
840
+ dependencies.forEach(function(d) {
841
+ return injector.add(d);
842
+ });
843
+ this._localeService.load({
844
+ enUS: en_US_default
845
+ });
846
+ }
847
+ }
848
+ ]);
849
+ return _class;
850
+ }(_wrap_native_super(Plugin)), _define_property(_class, "type", PluginType.Univer), _class);
851
+ UniscriptPlugin = __decorateClass([
852
+ __decorateParam(1, Inject8(Injector7)),
853
+ __decorateParam(2, Inject8(LocaleService2))
854
+ ], UniscriptPlugin);
855
+ export { UniscriptPlugin };