@univerjs/sheets 0.21.0 → 0.21.1

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/facade.js CHANGED
@@ -85,15 +85,14 @@ function getDefinedNameFieldName(unitId, localeService, definedNamesService) {
85
85
  i++;
86
86
  }
87
87
  }
88
- /**
89
- * @hideconstructor
90
- */
91
- var FDefinedNameBuilder = class {
92
- constructor() {
88
+ let FDefinedNameBuilder = class FDefinedNameBuilder {
89
+ constructor(unitId, _injector) {
90
+ this.unitId = unitId;
91
+ this._injector = _injector;
93
92
  _defineProperty(this, "_definedNameParam", void 0);
94
93
  this._definedNameParam = {
95
94
  id: (0, _univerjs_core.generateRandomId)(10),
96
- unitId: "",
95
+ unitId,
97
96
  name: "",
98
97
  formulaOrRefString: "",
99
98
  localSheetId: _univerjs_sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME
@@ -106,11 +105,11 @@ var FDefinedNameBuilder = class {
106
105
  * @example
107
106
  * ```ts
108
107
  * const fWorkbook = univerAPI.getActiveWorkbook();
109
- * const definedNameBuilder = univerAPI.newDefinedName()
108
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
110
109
  * .setName('MyDefinedName')
111
110
  * .setRef('Sheet1!$A$1')
112
111
  * .build();
113
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
112
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
114
113
  * ```
115
114
  */
116
115
  setName(name) {
@@ -124,11 +123,11 @@ var FDefinedNameBuilder = class {
124
123
  * @example
125
124
  * ```ts
126
125
  * const fWorkbook = univerAPI.getActiveWorkbook();
127
- * const definedNameBuilder = univerAPI.newDefinedName()
126
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
128
127
  * .setName('MyDefinedName')
129
128
  * .setFormula('SUM(Sheet1!$A$1)')
130
129
  * .build();
131
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
130
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
132
131
  * ```
133
132
  */
134
133
  setFormula(formula) {
@@ -142,11 +141,11 @@ var FDefinedNameBuilder = class {
142
141
  * @example
143
142
  * ```ts
144
143
  * const fWorkbook = univerAPI.getActiveWorkbook();
145
- * const definedNameBuilder = univerAPI.newDefinedName()
144
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
146
145
  * .setName('MyDefinedName')
147
146
  * .setRef('Sheet1!$A$1')
148
147
  * .build();
149
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
148
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
150
149
  * ```
151
150
  */
152
151
  setRef(a1Notation) {
@@ -163,11 +162,11 @@ var FDefinedNameBuilder = class {
163
162
  * @example
164
163
  * ```ts
165
164
  * const fWorkbook = univerAPI.getActiveWorkbook();
166
- * const definedNameBuilder = univerAPI.newDefinedName()
165
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
167
166
  * .setName('MyDefinedName')
168
167
  * .setRefByRange(1, 3, 2, 5) // D2:H3
169
168
  * .build();
170
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
169
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
171
170
  * ```
172
171
  */
173
172
  setRefByRange(row, column, numRows, numColumns) {
@@ -186,12 +185,12 @@ var FDefinedNameBuilder = class {
186
185
  * @example
187
186
  * ```ts
188
187
  * const fWorkbook = univerAPI.getActiveWorkbook();
189
- * const definedNameBuilder = univerAPI.newDefinedName()
188
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
190
189
  * .setName('MyDefinedName')
191
190
  * .setRef('Sheet1!$A$1')
192
191
  * .setComment('A reference to A1 cell in Sheet1')
193
192
  * .build();
194
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
193
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
195
194
  * ```
196
195
  */
197
196
  setComment(comment) {
@@ -208,12 +207,12 @@ var FDefinedNameBuilder = class {
208
207
  * const sheets = fWorkbook.getSheets();
209
208
  *
210
209
  * // Create a defined name and make it available only in the second worksheet
211
- * const definedNameBuilder = univerAPI.newDefinedName()
210
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
212
211
  * .setName('MyDefinedName')
213
212
  * .setRef('Sheet1!$A$1')
214
213
  * .setScopeToWorksheet(sheets[1])
215
214
  * .build();
216
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
215
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
217
216
  * ```
218
217
  */
219
218
  setScopeToWorksheet(worksheet) {
@@ -228,12 +227,12 @@ var FDefinedNameBuilder = class {
228
227
  * const fWorkbook = univerAPI.getActiveWorkbook();
229
228
  *
230
229
  * // Create a defined name and make it available in the entire workbook
231
- * const definedNameBuilder = univerAPI.newDefinedName()
230
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
232
231
  * .setName('MyDefinedName')
233
232
  * .setRef('Sheet1!$A$1')
234
233
  * .setScopeToWorkbook()
235
234
  * .build();
236
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
235
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
237
236
  * ```
238
237
  */
239
238
  setScopeToWorkbook() {
@@ -247,12 +246,12 @@ var FDefinedNameBuilder = class {
247
246
  * @example
248
247
  * ```ts
249
248
  * const fWorkbook = univerAPI.getActiveWorkbook();
250
- * const definedNameBuilder = univerAPI.newDefinedName()
249
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
251
250
  * .setName('MyDefinedName')
252
251
  * .setRef('Sheet1!$A$1')
253
252
  * .setHidden(true)
254
253
  * .build();
255
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
254
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
256
255
  * ```
257
256
  */
258
257
  setHidden(hidden) {
@@ -265,15 +264,26 @@ var FDefinedNameBuilder = class {
265
264
  * @example
266
265
  * ```ts
267
266
  * const fWorkbook = univerAPI.getActiveWorkbook();
268
- * const definedNameBuilder = univerAPI.newDefinedName()
267
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
269
268
  * .setName('MyDefinedName')
270
269
  * .setRef('Sheet1!$A$1')
271
270
  * .setComment('A reference to A1 cell in Sheet1')
272
271
  * .build();
273
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
272
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
274
273
  * ```
275
274
  */
276
275
  build() {
276
+ const { unitId, name, formulaOrRefString, id } = this._definedNameParam;
277
+ const validationResult = (0, _univerjs_sheets.validateDefinedName)(name, {
278
+ unitId,
279
+ formulaOrRefString,
280
+ univerInstanceService: this._injector.get(_univerjs_core.IUniverInstanceService),
281
+ definedNamesService: this._injector.get(_univerjs_engine_formula.IDefinedNamesService),
282
+ superTableService: this._injector.get(_univerjs_engine_formula.ISuperTableService),
283
+ functionService: this._injector.get(_univerjs_engine_formula.IFunctionService),
284
+ id
285
+ });
286
+ if (typeof validationResult === "string") throw new TypeError(this._injector.get(_univerjs_core.LocaleService).t(validationResult));
277
287
  return this._definedNameParam;
278
288
  }
279
289
  /**
@@ -283,23 +293,25 @@ var FDefinedNameBuilder = class {
283
293
  * @example
284
294
  * ```ts
285
295
  * const fWorkbook = univerAPI.getActiveWorkbook();
286
- * const definedNameParam = {
287
- * id: '4TMPceoqg8',
288
- * unitId: fWorkbook.getId(),
289
- * name: 'MyDefinedName',
290
- * formulaOrRefString: 'Sheet1!$A$1',
291
- * }
292
- * const definedNameBuilder = univerAPI.newDefinedName()
293
- * .load(definedNameParam)
296
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
297
+ * .load({
298
+ * id: '4TMPceoqg8',
299
+ * name: 'MyDefinedName',
300
+ * formulaOrRefString: 'Sheet1!$A$1',
301
+ * })
294
302
  * .build();
295
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
303
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
296
304
  * ```
297
305
  */
298
306
  load(param) {
299
- this._definedNameParam = param;
307
+ this._definedNameParam = {
308
+ ...this._definedNameParam,
309
+ ...param
310
+ };
300
311
  return this;
301
312
  }
302
313
  };
314
+ FDefinedNameBuilder = __decorate([__decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_core.Injector))], FDefinedNameBuilder);
303
315
  let FDefinedName = class FDefinedName extends _univerjs_core_facade.FBase {
304
316
  constructor(_definedNameParam, _injector, _commandService, _permissionService, _worksheetProtectionRuleModel, _rangeProtectionRuleModel, _worksheetProtectionPointRuleModel, _authzIoService, _localeService, _definedNamesService) {
305
317
  super();
@@ -525,15 +537,16 @@ let FDefinedName = class FDefinedName extends _univerjs_core_facade.FBase {
525
537
  * const fWorkbook = univerAPI.getActiveWorkbook();
526
538
  * const definedName = fWorkbook.getDefinedNames()[0];
527
539
  * if (!definedName) return;
528
- * const definedNameBuilder = definedName
540
+ * const definedNameParam = definedName
529
541
  * .toBuilder()
530
542
  * .setName('NewDefinedName')
531
543
  * .setFormula('SUM(Sheet1!$A$1)')
532
544
  * .build();
533
- * fWorkbook.updateDefinedNameBuilder(definedNameBuilder);
545
+ * fWorkbook.updateDefinedNameBuilder(definedNameParam);
534
546
  * ```
535
547
  */
536
548
  toBuilder() {
549
+ if (!this._definedNameParam.unitId) throw new Error("unitId is required to convert to FDefinedNameBuilder");
537
550
  const builder = this._injector.createInstance(FDefinedNameBuilder);
538
551
  builder.load(this._definedNameParam);
539
552
  return builder;
@@ -945,7 +958,7 @@ function determineScope(editState, viewState) {
945
958
  function handleWorksheetRangePermissionIsEmpty(injector, unitId, subUnitId) {
946
959
  const rangeProtectionRuleModel = injector.get(_univerjs_sheets.RangeProtectionRuleModel);
947
960
  const worksheetProtectionPointModel = injector.get(_univerjs_sheets.WorksheetProtectionPointModel);
948
- const permissionService = injector.get(_univerjs_core.PermissionService);
961
+ const permissionService = injector.get(_univerjs_core.IPermissionService);
949
962
  if (rangeProtectionRuleModel.getSubunitRuleList(unitId, subUnitId).length > 0) return;
950
963
  worksheetProtectionPointModel.deleteRule(unitId, subUnitId);
951
964
  [...(0, _univerjs_sheets.getAllWorksheetPermissionPointByPointPanel)()].forEach((F) => {
@@ -994,7 +1007,7 @@ async function getListRangeProtectionRules(injector, unitId, subUnitId, options)
994
1007
  //#endregion
995
1008
  //#region src/facade/permission/f-range-protection-rule.ts
996
1009
  let FRangeProtectionRule = class FRangeProtectionRule {
997
- constructor(_unitId, _subUnitId, _ruleId, _permissionId, _ranges, _options, _injector, _commandService, _permissionService, _authzIoService, _rangeProtectionRuleModel) {
1010
+ constructor(_unitId, _subUnitId, _ruleId, _permissionId, _ranges, _options, _injector, _permissionService, _authzIoService, _commandService, _rangeProtectionRuleModel) {
998
1011
  this._unitId = _unitId;
999
1012
  this._subUnitId = _subUnitId;
1000
1013
  this._ruleId = _ruleId;
@@ -1002,9 +1015,9 @@ let FRangeProtectionRule = class FRangeProtectionRule {
1002
1015
  this._ranges = _ranges;
1003
1016
  this._options = _options;
1004
1017
  this._injector = _injector;
1005
- this._commandService = _commandService;
1006
1018
  this._permissionService = _permissionService;
1007
1019
  this._authzIoService = _authzIoService;
1020
+ this._commandService = _commandService;
1008
1021
  this._rangeProtectionRuleModel = _rangeProtectionRuleModel;
1009
1022
  }
1010
1023
  /**
@@ -1270,9 +1283,9 @@ let FRangeProtectionRule = class FRangeProtectionRule {
1270
1283
  };
1271
1284
  FRangeProtectionRule = __decorate([
1272
1285
  __decorateParam(6, (0, _univerjs_core.Inject)(_univerjs_core.Injector)),
1273
- __decorateParam(7, (0, _univerjs_core.Inject)(_univerjs_core.ICommandService)),
1274
- __decorateParam(8, (0, _univerjs_core.Inject)(_univerjs_core.IPermissionService)),
1275
- __decorateParam(9, (0, _univerjs_core.Inject)(_univerjs_core.IAuthzIoService)),
1286
+ __decorateParam(7, _univerjs_core.IPermissionService),
1287
+ __decorateParam(8, _univerjs_core.IAuthzIoService),
1288
+ __decorateParam(9, _univerjs_core.ICommandService),
1276
1289
  __decorateParam(10, (0, _univerjs_core.Inject)(_univerjs_sheets.RangeProtectionRuleModel))
1277
1290
  ], FRangeProtectionRule);
1278
1291
 
@@ -3901,9 +3914,8 @@ let FWorksheet = _FWorksheet = class FWorksheet extends _univerjs_core_facade.FB
3901
3914
  * ```
3902
3915
  */
3903
3916
  insertDefinedName(name, formulaOrRefString) {
3904
- const param = this._injector.createInstance(FDefinedNameBuilder).setName(name).setRef(formulaOrRefString).build();
3905
- param.localSheetId = this.getSheetId();
3906
- this._fWorkbook.insertDefinedNameBuilder(param);
3917
+ const definedNameParam = this._injector.createInstance(FDefinedNameBuilder, this._fWorkbook.getId()).setName(name).setRef(formulaOrRefString).setScopeToWorksheet(this).build();
3918
+ this._fWorkbook.insertDefinedNameBuilder(definedNameParam);
3907
3919
  }
3908
3920
  /**
3909
3921
  * Get all the defined names in the worksheet.
@@ -7510,10 +7522,6 @@ let FWorkbook = class FWorkbook extends _univerjs_core_facade.FBaseInitialable {
7510
7522
  * const fWorkbook = univerAPI.getActiveWorkbook();
7511
7523
  * const definedName = fWorkbook.getDefinedName('MyDefinedName');
7512
7524
  * console.log(definedName?.getFormulaOrRefString());
7513
- *
7514
- * if (definedName) {
7515
- * definedName.setName('NewDefinedName');
7516
- * }
7517
7525
  * ```
7518
7526
  */
7519
7527
  getDefinedName(name) {
@@ -7546,41 +7554,22 @@ let FWorkbook = class FWorkbook extends _univerjs_core_facade.FBaseInitialable {
7546
7554
  });
7547
7555
  }
7548
7556
  /**
7549
- * Insert a defined name.
7550
- * @param {string} name The name of the defined name to insert
7551
- * @param {string} formulaOrRefString The formula(=sum(A2:b10)) or reference(A1) string of the defined name to insert
7552
- * @returns {FWorkbook} The current FWorkbook instance
7557
+ * Create a new defined name builder.
7558
+ * @returns {FDefinedNameBuilder} - The defined name builder.
7553
7559
  * @example
7554
7560
  * ```ts
7555
- * // The code below inserts a defined name
7556
7561
  * const fWorkbook = univerAPI.getActiveWorkbook();
7557
- * fWorkbook.insertDefinedName('MyDefinedName', 'Sheet1!$A$1');
7562
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
7563
+ * .setRef('Sheet1!$A$1')
7564
+ * .setName('MyDefinedName')
7565
+ * .setComment('This is a comment');
7566
+ * .build();
7567
+ * console.log(definedNameParam);
7568
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
7558
7569
  * ```
7559
7570
  */
7560
- insertDefinedName(name, formulaOrRefString) {
7561
- const param = this._injector.createInstance(FDefinedNameBuilder).setName(name).setRef(formulaOrRefString).build();
7562
- param.localSheetId = _univerjs_sheets.SCOPE_WORKBOOK_VALUE_DEFINED_NAME;
7563
- this.insertDefinedNameBuilder(param);
7564
- return this;
7565
- }
7566
- /**
7567
- * Delete the defined name with the given name.
7568
- * @param {string} name The name of the defined name to delete
7569
- * @returns {boolean} true if the defined name was deleted, false otherwise
7570
- * @example
7571
- * ```ts
7572
- * // The code below deletes the defined name with the given name
7573
- * const fWorkbook = univerAPI.getActiveWorkbook();
7574
- * fWorkbook.deleteDefinedName('MyDefinedName');
7575
- * ```
7576
- */
7577
- deleteDefinedName(name) {
7578
- const definedName = this.getDefinedName(name);
7579
- if (definedName) {
7580
- definedName.delete();
7581
- return true;
7582
- }
7583
- return false;
7571
+ newDefinedNameBuilder() {
7572
+ return this._injector.createInstance(FDefinedNameBuilder, this.id);
7584
7573
  }
7585
7574
  /**
7586
7575
  * Insert a defined name by builder param.
@@ -7590,16 +7579,15 @@ let FWorkbook = class FWorkbook extends _univerjs_core_facade.FBaseInitialable {
7590
7579
  * ```ts
7591
7580
  * // The code below inserts a defined name by builder param
7592
7581
  * const fWorkbook = univerAPI.getActiveWorkbook();
7593
- * const definedNameBuilder = univerAPI.newDefinedName()
7582
+ * const definedNameParam = fWorkbook.newDefinedNameBuilder()
7594
7583
  * .setRef('Sheet1!$A$1')
7595
7584
  * .setName('MyDefinedName')
7596
7585
  * .setComment('This is a comment')
7597
7586
  * .build();
7598
- * fWorkbook.insertDefinedNameBuilder(definedNameBuilder);
7587
+ * fWorkbook.insertDefinedNameBuilder(definedNameParam);
7599
7588
  * ```
7600
7589
  */
7601
7590
  insertDefinedNameBuilder(param) {
7602
- param.unitId = this.getId();
7603
7591
  this._commandService.syncExecuteCommand(_univerjs_sheets.SetDefinedNameCommand.id, param);
7604
7592
  }
7605
7593
  /**
@@ -7627,6 +7615,42 @@ let FWorkbook = class FWorkbook extends _univerjs_core_facade.FBaseInitialable {
7627
7615
  this._commandService.syncExecuteCommand(_univerjs_sheets.SetDefinedNameCommand.id, param);
7628
7616
  }
7629
7617
  /**
7618
+ * Insert a defined name.
7619
+ * @param {string} name The name of the defined name to insert
7620
+ * @param {string} formulaOrRefString The formula(=sum(A2:b10)) or reference(A1) string of the defined name to insert
7621
+ * @returns {FWorkbook} The current FWorkbook instance
7622
+ * @example
7623
+ * ```ts
7624
+ * // The code below inserts a defined name
7625
+ * const fWorkbook = univerAPI.getActiveWorkbook();
7626
+ * fWorkbook.insertDefinedName('MyDefinedName', 'Sheet1!$A$1');
7627
+ * ```
7628
+ */
7629
+ insertDefinedName(name, formulaOrRefString) {
7630
+ const definedNameParam = this.newDefinedNameBuilder().setName(name).setRef(formulaOrRefString).setScopeToWorkbook().build();
7631
+ this.insertDefinedNameBuilder(definedNameParam);
7632
+ return this;
7633
+ }
7634
+ /**
7635
+ * Delete the defined name with the given name.
7636
+ * @param {string} name The name of the defined name to delete
7637
+ * @returns {boolean} true if the defined name was deleted, false otherwise
7638
+ * @example
7639
+ * ```ts
7640
+ * // The code below deletes the defined name with the given name
7641
+ * const fWorkbook = univerAPI.getActiveWorkbook();
7642
+ * fWorkbook.deleteDefinedName('MyDefinedName');
7643
+ * ```
7644
+ */
7645
+ deleteDefinedName(name) {
7646
+ const definedName = this.getDefinedName(name);
7647
+ if (definedName) {
7648
+ definedName.delete();
7649
+ return true;
7650
+ }
7651
+ return false;
7652
+ }
7653
+ /**
7630
7654
  * Gets the registered range themes.
7631
7655
  * @returns {string[]} The name list of registered range themes.
7632
7656
  * @example
@@ -7854,7 +7878,8 @@ var FUniverSheetsMixin = class extends _univerjs_core_facade.FUniver {
7854
7878
  this.fireEvent(this.Event.WorkbookDisposed, eventParams);
7855
7879
  }
7856
7880
  })));
7857
- this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookCreated, () => univerInstanceService.unitAdded$.subscribe((unit) => {
7881
+ this.disposeWithMe(this.registerEventHandler(this.Event.WorkbookCreated, () => univerInstanceService.unitAdded$.subscribe((event) => {
7882
+ const { unit } = event;
7858
7883
  if (unit.type === _univerjs_core.UniverInstanceType.UNIVER_SHEET) {
7859
7884
  const workbook = unit;
7860
7885
  const workbookUnit = injector.createInstance(FWorkbook, workbook);
@@ -8155,13 +8180,10 @@ var FUniverSheetsMixin = class extends _univerjs_core_facade.FUniver {
8155
8180
  return this.getUniverSheet(id);
8156
8181
  }
8157
8182
  onUniverSheetCreated(callback) {
8158
- return (0, _univerjs_core.toDisposable)(this._univerInstanceService.getTypeOfUnitAdded$(_univerjs_core.UniverInstanceType.UNIVER_SHEET).subscribe((workbook) => {
8159
- callback(this._injector.createInstance(FWorkbook, workbook));
8183
+ return (0, _univerjs_core.toDisposable)(this._univerInstanceService.getTypeOfUnitAdded$(_univerjs_core.UniverInstanceType.UNIVER_SHEET).subscribe((event) => {
8184
+ callback(this._injector.createInstance(FWorkbook, event.unit));
8160
8185
  }));
8161
8186
  }
8162
- newDefinedName() {
8163
- return this._injector.createInstance(FDefinedNameBuilder);
8164
- }
8165
8187
  getActiveSheet() {
8166
8188
  const workbook = this.getActiveWorkbook();
8167
8189
  if (!workbook) return null;