@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.
- package/lib/cjs/facade.js +8352 -1
- package/lib/cjs/index.js +21494 -2
- package/lib/cjs/locale/ca-ES.js +17 -1
- package/lib/cjs/locale/en-US.js +32 -1
- package/lib/cjs/locale/es-ES.js +17 -1
- package/lib/cjs/locale/fa-IR.js +17 -1
- package/lib/cjs/locale/fr-FR.js +17 -1
- package/lib/cjs/locale/ja-JP.js +17 -1
- package/lib/cjs/locale/ko-KR.js +17 -1
- package/lib/cjs/locale/ru-RU.js +17 -1
- package/lib/cjs/locale/sk-SK.js +17 -1
- package/lib/cjs/locale/vi-VN.js +17 -1
- package/lib/cjs/locale/zh-CN.js +17 -1
- package/lib/cjs/locale/zh-TW.js +17 -1
- package/lib/es/facade.js +8314 -1
- package/lib/es/index.js +20973 -2
- package/lib/es/locale/ca-ES.js +16 -1
- package/lib/es/locale/en-US.js +31 -1
- package/lib/es/locale/es-ES.js +16 -1
- package/lib/es/locale/fa-IR.js +16 -1
- package/lib/es/locale/fr-FR.js +16 -1
- package/lib/es/locale/ja-JP.js +16 -1
- package/lib/es/locale/ko-KR.js +16 -1
- package/lib/es/locale/ru-RU.js +16 -1
- package/lib/es/locale/sk-SK.js +16 -1
- package/lib/es/locale/vi-VN.js +16 -1
- package/lib/es/locale/zh-CN.js +16 -1
- package/lib/es/locale/zh-TW.js +16 -1
- package/lib/facade.js +8314 -1
- package/lib/index.js +20973 -2
- package/lib/locale/ca-ES.js +16 -1
- package/lib/locale/en-US.js +31 -1
- package/lib/locale/es-ES.js +16 -1
- package/lib/locale/fa-IR.js +16 -1
- package/lib/locale/fr-FR.js +16 -1
- package/lib/locale/ja-JP.js +16 -1
- package/lib/locale/ko-KR.js +16 -1
- package/lib/locale/ru-RU.js +16 -1
- package/lib/locale/sk-SK.js +16 -1
- package/lib/locale/vi-VN.js +16 -1
- package/lib/locale/zh-CN.js +16 -1
- package/lib/locale/zh-TW.js +16 -1
- package/lib/types/commands/commands/remove-row-col.command.d.ts +2 -1
- package/lib/types/controllers/permission/sheet-permission-check.controller.d.ts +11 -12
- package/lib/types/facade/f-univer.d.ts +0 -7
- package/lib/types/facade/f-workbook.d.ts +0 -13
- package/lib/types/facade/index.d.ts +2 -2
- package/lib/types/facade/permission/f-range-permission.d.ts +31 -228
- package/lib/types/facade/permission/f-range-protection-rule.d.ts +157 -46
- package/lib/types/facade/permission/f-workbook-permission.d.ts +51 -129
- package/lib/types/facade/permission/f-worksheet-permission.d.ts +111 -199
- package/lib/types/facade/permission/permission-types.d.ts +20 -125
- package/lib/types/facade/permission/util.d.ts +40 -0
- package/lib/types/services/permission/range-permission/util.d.ts +2 -1
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +2 -2
- package/package.json +9 -9
- 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 {
|
|
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
|
|
26
|
+
export declare class FWorkbookPermission extends FBase {
|
|
28
27
|
private readonly _unitId;
|
|
29
28
|
private readonly _injector;
|
|
30
|
-
|
|
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
|
|
87
|
-
*
|
|
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
|
|
108
|
-
*
|
|
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
|
|
119
|
-
*
|
|
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
|
|
145
|
-
* const permission =
|
|
146
|
-
* await permission
|
|
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
|
|
157
|
-
* const permission =
|
|
158
|
-
* const canPrint = permission
|
|
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
|
|
169
|
-
* const
|
|
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
|
|
182
|
-
* const permission =
|
|
183
|
-
* await permission
|
|
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:
|
|
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
|
|
207
|
-
* const permission =
|
|
208
|
-
* await permission
|
|
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:
|
|
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
|
|
223
|
-
* const permission =
|
|
224
|
-
* await permission
|
|
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:
|
|
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
|
|
238
|
-
* const permission =
|
|
239
|
-
* await permission
|
|
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
|
|
250
|
-
* const permission =
|
|
251
|
-
* await permission
|
|
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
|
|
261
|
-
* const permission =
|
|
262
|
-
* const collaborators = await permission
|
|
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
|
}
|