@univerjs/sheets 0.20.1 → 0.21.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.
Files changed (58) hide show
  1. package/lib/cjs/facade.js +8352 -1
  2. package/lib/cjs/index.js +21494 -2
  3. package/lib/cjs/locale/ca-ES.js +17 -1
  4. package/lib/cjs/locale/en-US.js +32 -1
  5. package/lib/cjs/locale/es-ES.js +17 -1
  6. package/lib/cjs/locale/fa-IR.js +17 -1
  7. package/lib/cjs/locale/fr-FR.js +17 -1
  8. package/lib/cjs/locale/ja-JP.js +17 -1
  9. package/lib/cjs/locale/ko-KR.js +17 -1
  10. package/lib/cjs/locale/ru-RU.js +17 -1
  11. package/lib/cjs/locale/sk-SK.js +17 -1
  12. package/lib/cjs/locale/vi-VN.js +17 -1
  13. package/lib/cjs/locale/zh-CN.js +17 -1
  14. package/lib/cjs/locale/zh-TW.js +17 -1
  15. package/lib/es/facade.js +8314 -1
  16. package/lib/es/index.js +20973 -2
  17. package/lib/es/locale/ca-ES.js +16 -1
  18. package/lib/es/locale/en-US.js +31 -1
  19. package/lib/es/locale/es-ES.js +16 -1
  20. package/lib/es/locale/fa-IR.js +16 -1
  21. package/lib/es/locale/fr-FR.js +16 -1
  22. package/lib/es/locale/ja-JP.js +16 -1
  23. package/lib/es/locale/ko-KR.js +16 -1
  24. package/lib/es/locale/ru-RU.js +16 -1
  25. package/lib/es/locale/sk-SK.js +16 -1
  26. package/lib/es/locale/vi-VN.js +16 -1
  27. package/lib/es/locale/zh-CN.js +16 -1
  28. package/lib/es/locale/zh-TW.js +16 -1
  29. package/lib/facade.js +8314 -1
  30. package/lib/index.js +20973 -2
  31. package/lib/locale/ca-ES.js +16 -1
  32. package/lib/locale/en-US.js +31 -1
  33. package/lib/locale/es-ES.js +16 -1
  34. package/lib/locale/fa-IR.js +16 -1
  35. package/lib/locale/fr-FR.js +16 -1
  36. package/lib/locale/ja-JP.js +16 -1
  37. package/lib/locale/ko-KR.js +16 -1
  38. package/lib/locale/ru-RU.js +16 -1
  39. package/lib/locale/sk-SK.js +16 -1
  40. package/lib/locale/vi-VN.js +16 -1
  41. package/lib/locale/zh-CN.js +16 -1
  42. package/lib/locale/zh-TW.js +16 -1
  43. package/lib/types/commands/commands/remove-row-col.command.d.ts +2 -1
  44. package/lib/types/controllers/permission/sheet-permission-check.controller.d.ts +11 -12
  45. package/lib/types/facade/f-univer.d.ts +0 -7
  46. package/lib/types/facade/f-workbook.d.ts +0 -13
  47. package/lib/types/facade/index.d.ts +2 -2
  48. package/lib/types/facade/permission/f-range-permission.d.ts +31 -228
  49. package/lib/types/facade/permission/f-range-protection-rule.d.ts +157 -46
  50. package/lib/types/facade/permission/f-workbook-permission.d.ts +51 -129
  51. package/lib/types/facade/permission/f-worksheet-permission.d.ts +111 -199
  52. package/lib/types/facade/permission/permission-types.d.ts +20 -125
  53. package/lib/types/facade/permission/util.d.ts +40 -0
  54. package/lib/types/services/permission/range-permission/util.d.ts +2 -1
  55. package/lib/umd/facade.js +1 -1
  56. package/lib/umd/index.js +2 -2
  57. package/package.json +9 -9
  58. package/lib/types/facade/f-permission.d.ts +0 -426
@@ -13,10 +13,9 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IUser } from '@univerjs/protocol';
17
- import type { Observable } from 'rxjs';
18
- import type { ICollaborator, IWorkbookPermission, UnsubscribeFn, WorkbookMode, WorkbookPermissionSnapshot } from './permission-types';
16
+ import type { ICollaborator, ICollaboratorUser, WorkbookMode, WorkbookPermissionSnapshot } from './permission-types';
19
17
  import { IAuthzIoService, Injector, IPermissionService } from '@univerjs/core';
18
+ import { FBase } from '@univerjs/core/facade';
20
19
  import { UnitRole, WorkbookPermissionPoint } from './permission-types';
21
20
  /**
22
21
  * Implementation class for WorkbookPermission
@@ -24,68 +23,20 @@ import { UnitRole, WorkbookPermissionPoint } from './permission-types';
24
23
  *
25
24
  * @hideconstructor
26
25
  */
27
- export declare class FWorkbookPermission implements IWorkbookPermission {
26
+ export declare class FWorkbookPermission extends FBase {
28
27
  private readonly _unitId;
29
28
  private readonly _injector;
30
- private readonly _permissionService;
29
+ protected readonly _permissionService: IPermissionService;
31
30
  private readonly _authzIoService;
32
- private readonly _permissionSubject;
33
- private readonly _collaboratorChangeSubject;
34
- /**
35
- * Observable stream of permission snapshot changes (BehaviorSubject)
36
- * Emits immediately on subscription with current state, then on any permission point change
37
- */
38
- readonly permission$: Observable<WorkbookPermissionSnapshot>;
39
- /**
40
- * Observable stream of individual permission point changes
41
- * Emits when a specific permission point value changes
42
- */
43
- readonly pointChange$: Observable<{
44
- point: WorkbookPermissionPoint;
45
- value: boolean;
46
- oldValue: boolean;
47
- }>;
48
- /**
49
- * Observable stream of collaborator changes
50
- * Emits when collaborators are added, updated, or removed
51
- */
52
- readonly collaboratorChange$: Observable<{
53
- type: 'add' | 'update' | 'delete';
54
- collaborator: ICollaborator;
55
- }>;
56
- private _subscriptions;
57
- private readonly _fPermission;
58
31
  constructor(_unitId: string, _injector: Injector, _permissionService: IPermissionService, _authzIoService: IAuthzIoService);
59
- /**
60
- * Create permission snapshot stream from IPermissionService
61
- * @private
62
- */
63
- private _createPermissionStream;
64
- /**
65
- * Create point change stream from IPermissionService
66
- * @private
67
- */
68
- private _createPointChangeStream;
69
- /**
70
- * Extract WorkbookPermissionPoint type from permission point ID
71
- * @private
72
- */
73
- private _extractWorkbookPointType;
74
- /**
75
- * Build permission snapshot
76
- */
77
- private _buildSnapshot;
78
- /**
79
- * Listen to permission point changes
80
32
  /**
81
33
  * Set permission mode for the workbook.
82
34
  * @param {WorkbookMode} mode The permission mode to set ('owner' | 'editor' | 'viewer' | 'commenter').
83
35
  * @returns {Promise<void>} A promise that resolves when the mode is set.
84
36
  * @example
85
37
  * ```ts
86
- * const workbook = univerAPI.getActiveWorkbook();
87
- * const permission = workbook?.getWorkbookPermission();
88
- * await permission?.setMode('editor');
38
+ * const fWorkbook = univerAPI.getActiveWorkbook();
39
+ * await fWorkbook.getWorkbookPermission().setMode('editor');
89
40
  * ```
90
41
  */
91
42
  setMode(mode: WorkbookMode): Promise<void>;
@@ -94,19 +45,13 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
94
45
  * @private
95
46
  */
96
47
  private _getModePermissions;
97
- /**
98
- * Batch set multiple permission points efficiently
99
- * @private
100
- */
101
- private _batchSetPermissionPoints;
102
48
  /**
103
49
  * Set the workbook to read-only mode (viewer mode).
104
50
  * @returns {Promise<void>} A promise that resolves when the mode is set.
105
51
  * @example
106
52
  * ```ts
107
- * const workbook = univerAPI.getActiveWorkbook();
108
- * const permission = workbook?.getWorkbookPermission();
109
- * await permission?.setReadOnly();
53
+ * const fWorkbook = univerAPI.getActiveWorkbook();
54
+ * await fWorkbook.getWorkbookPermission().setReadOnly();
110
55
  * ```
111
56
  */
112
57
  setReadOnly(): Promise<void>;
@@ -115,25 +60,11 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
115
60
  * @returns {Promise<void>} A promise that resolves when the mode is set.
116
61
  * @example
117
62
  * ```ts
118
- * const workbook = univerAPI.getActiveWorkbook();
119
- * const permission = workbook?.getWorkbookPermission();
120
- * await permission?.setEditable();
63
+ * const fWorkbook = univerAPI.getActiveWorkbook();
64
+ * await fWorkbook.getWorkbookPermission().setEditable();
121
65
  * ```
122
66
  */
123
67
  setEditable(): Promise<void>;
124
- /**
125
- * Check if the workbook is editable.
126
- * @returns {boolean} true if the workbook can be edited, false otherwise.
127
- * @example
128
- * ```ts
129
- * const workbook = univerAPI.getActiveWorkbook();
130
- * const permission = workbook?.getWorkbookPermission();
131
- * if (permission?.canEdit()) {
132
- * console.log('Workbook is editable');
133
- * }
134
- * ```
135
- */
136
- canEdit(): boolean;
137
68
  /**
138
69
  * Set a specific permission point.
139
70
  * @param {WorkbookPermissionPoint} point The permission point to set.
@@ -141,21 +72,33 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
141
72
  * @returns {Promise<void>} A promise that resolves when the point is set.
142
73
  * @example
143
74
  * ```ts
144
- * const workbook = univerAPI.getActiveWorkbook();
145
- * const permission = workbook?.getWorkbookPermission();
146
- * await permission?.setPoint(univerAPI.Enum.WorkbookPermissionPoint.Print, false);
75
+ * const fWorkbook = univerAPI.getActiveWorkbook();
76
+ * const permission = fWorkbook.getWorkbookPermission();
77
+ * await permission.setPoint(univerAPI.Enum.WorkbookPermissionPoint.Print, false);
147
78
  * ```
148
79
  */
149
80
  setPoint(point: WorkbookPermissionPoint, value: boolean): Promise<void>;
81
+ /**
82
+ * Check if the workbook is editable.
83
+ * @returns {boolean} true if the workbook can be edited, false otherwise.
84
+ * @example
85
+ * ```ts
86
+ * const fWorkbook = univerAPI.getActiveWorkbook();
87
+ * if (fWorkbook.getWorkbookPermission().canEdit()) {
88
+ * console.log('Workbook is editable');
89
+ * }
90
+ * ```
91
+ */
92
+ canEdit(): boolean;
150
93
  /**
151
94
  * Get the value of a specific permission point.
152
95
  * @param {WorkbookPermissionPoint} point The permission point to query.
153
96
  * @returns {boolean} true if allowed, false if denied.
154
97
  * @example
155
98
  * ```ts
156
- * const workbook = univerAPI.getActiveWorkbook();
157
- * const permission = workbook?.getWorkbookPermission();
158
- * const canPrint = permission?.getPoint(univerAPI.Enum.WorkbookPermissionPoint.Print);
99
+ * const fWorkbook = univerAPI.getActiveWorkbook();
100
+ * const permission = fWorkbook.getWorkbookPermission();
101
+ * const canPrint = permission.getPoint(univerAPI.Enum.WorkbookPermissionPoint.Print);
159
102
  * console.log(canPrint);
160
103
  * ```
161
104
  */
@@ -165,9 +108,8 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
165
108
  * @returns {WorkbookPermissionSnapshot} An object containing all permission point values.
166
109
  * @example
167
110
  * ```ts
168
- * const workbook = univerAPI.getActiveWorkbook();
169
- * const permission = workbook?.getWorkbookPermission();
170
- * const snapshot = permission?.getSnapshot();
111
+ * const fWorkbook = univerAPI.getActiveWorkbook();
112
+ * const snapshot = fWorkbook.getWorkbookPermission().getSnapshot();
171
113
  * console.log(snapshot);
172
114
  * ```
173
115
  */
@@ -178,9 +120,9 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
178
120
  * @returns {Promise<void>} A promise that resolves when the collaborators are set.
179
121
  * @example
180
122
  * ```ts
181
- * const workbook = univerAPI.getActiveWorkbook();
182
- * const permission = workbook?.getWorkbookPermission();
183
- * await permission?.setCollaborators([
123
+ * const fWorkbook = univerAPI.getActiveWorkbook();
124
+ * const permission = fWorkbook.getWorkbookPermission();
125
+ * await permission.setCollaborators([
184
126
  * {
185
127
  * user: { userID: 'user1', name: 'John Doe', avatar: 'https://...' },
186
128
  * role: univerAPI.Enum.UnitRole.Editor
@@ -193,7 +135,7 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
193
135
  * ```
194
136
  */
195
137
  setCollaborators(collaborators: Array<{
196
- user: IUser;
138
+ user: ICollaboratorUser;
197
139
  role: UnitRole;
198
140
  }>): Promise<void>;
199
141
  /**
@@ -203,15 +145,15 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
203
145
  * @returns {Promise<void>} A promise that resolves when the collaborator is added.
204
146
  * @example
205
147
  * ```ts
206
- * const workbook = univerAPI.getActiveWorkbook();
207
- * const permission = workbook?.getWorkbookPermission();
208
- * await permission?.addCollaborator(
148
+ * const fWorkbook = univerAPI.getActiveWorkbook();
149
+ * const permission = fWorkbook.getWorkbookPermission();
150
+ * await permission.addCollaborator(
209
151
  * { userID: 'user1', name: 'John Doe', avatar: 'https://...' },
210
152
  * univerAPI.Enum.UnitRole.Editor
211
153
  * );
212
154
  * ```
213
155
  */
214
- addCollaborator(user: IUser, role: UnitRole): Promise<void>;
156
+ addCollaborator(user: ICollaboratorUser, role: UnitRole): Promise<void>;
215
157
  /**
216
158
  * Update an existing collaborator's role and information.
217
159
  * @param {IUser} user The updated user information (userID, name, avatar).
@@ -219,24 +161,24 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
219
161
  * @returns {Promise<void>} A promise that resolves when the collaborator is updated.
220
162
  * @example
221
163
  * ```ts
222
- * const workbook = univerAPI.getActiveWorkbook();
223
- * const permission = workbook?.getWorkbookPermission();
224
- * await permission?.updateCollaborator(
164
+ * const fWorkbook = univerAPI.getActiveWorkbook();
165
+ * const permission = fWorkbook.getWorkbookPermission();
166
+ * await permission.updateCollaborator(
225
167
  * { userID: 'user1', name: 'John Doe Updated', avatar: 'https://...' },
226
168
  * univerAPI.Enum.UnitRole.Reader
227
169
  * );
228
170
  * ```
229
171
  */
230
- updateCollaborator(user: IUser, role: UnitRole): Promise<void>;
172
+ updateCollaborator(user: ICollaboratorUser, role: UnitRole): Promise<void>;
231
173
  /**
232
174
  * Remove a collaborator from the workbook.
233
175
  * @param {string} userId The user ID to remove.
234
176
  * @returns {Promise<void>} A promise that resolves when the collaborator is removed.
235
177
  * @example
236
178
  * ```ts
237
- * const workbook = univerAPI.getActiveWorkbook();
238
- * const permission = workbook?.getWorkbookPermission();
239
- * await permission?.removeCollaborator('user1');
179
+ * const fWorkbook = univerAPI.getActiveWorkbook();
180
+ * const permission = fWorkbook.getWorkbookPermission();
181
+ * await permission.removeCollaborator('user1');
240
182
  * ```
241
183
  */
242
184
  removeCollaborator(userId: string): Promise<void>;
@@ -246,9 +188,9 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
246
188
  * @returns {Promise<void>} A promise that resolves when the collaborators are removed.
247
189
  * @example
248
190
  * ```ts
249
- * const workbook = univerAPI.getActiveWorkbook();
250
- * const permission = workbook?.getWorkbookPermission();
251
- * await permission?.removeCollaborators(['user1', 'user2']);
191
+ * const fWorkbook = univerAPI.getActiveWorkbook();
192
+ * const permission = fWorkbook.getWorkbookPermission();
193
+ * await permission.removeCollaborators(['user1', 'user2']);
252
194
  * ```
253
195
  */
254
196
  removeCollaborators(userIds: string[]): Promise<void>;
@@ -257,31 +199,11 @@ export declare class FWorkbookPermission implements IWorkbookPermission {
257
199
  * @returns {Promise<ICollaborator[]>} Array of collaborators with their roles.
258
200
  * @example
259
201
  * ```ts
260
- * const workbook = univerAPI.getActiveWorkbook();
261
- * const permission = workbook?.getWorkbookPermission();
262
- * const collaborators = await permission?.listCollaborators();
202
+ * const fWorkbook = univerAPI.getActiveWorkbook();
203
+ * const permission = fWorkbook.getWorkbookPermission();
204
+ * const collaborators = await permission.listCollaborators();
263
205
  * console.log(collaborators);
264
206
  * ```
265
207
  */
266
208
  listCollaborators(): Promise<ICollaborator[]>;
267
- /**
268
- * Subscribe to permission changes (simplified interface for users not familiar with RxJS).
269
- * @param {Function} listener Callback function to be called when permissions change.
270
- * @returns {UnsubscribeFn} Unsubscribe function.
271
- * @example
272
- * ```ts
273
- * const workbook = univerAPI.getActiveWorkbook();
274
- * const permission = workbook?.getWorkbookPermission();
275
- * const unsubscribe = permission?.subscribe((snapshot) => {
276
- * console.log('Permission changed:', snapshot);
277
- * });
278
- * // Later, to stop listening:
279
- * unsubscribe?.();
280
- * ```
281
- */
282
- subscribe(listener: (snapshot: WorkbookPermissionSnapshot) => void): UnsubscribeFn;
283
- /**
284
- * Clean up resources
285
- */
286
- dispose(): void;
287
209
  }