@sinequa/atomic-angular 2.14.0 → 2.16.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/components/multi-selection-toolbar/i18n/de.json +2 -1
- package/components/multi-selection-toolbar/i18n/en.json +2 -1
- package/components/multi-selection-toolbar/i18n/fr.json +2 -1
- package/document-workspaces/i18n/de.json +2 -0
- package/document-workspaces/i18n/en.json +2 -0
- package/document-workspaces/i18n/fr.json +2 -0
- package/document-workspaces/i18n/ja.json +2 -0
- package/features/auth/i18n/de.json +1 -0
- package/features/auth/i18n/en.json +1 -0
- package/features/auth/i18n/fr.json +1 -0
- package/features/collections/i18n/de.json +53 -1
- package/features/collections/i18n/en.json +53 -1
- package/features/collections/i18n/fr.json +53 -1
- package/features/user-profile/i18n/de.json +12 -3
- package/features/user-profile/i18n/en.json +12 -3
- package/features/user-profile/i18n/fr.json +12 -3
- package/fesm2022/sinequa-atomic-angular-charts.mjs.map +1 -1
- package/fesm2022/sinequa-atomic-angular-document-workspaces.mjs +263 -54
- package/fesm2022/sinequa-atomic-angular-document-workspaces.mjs.map +1 -1
- package/fesm2022/sinequa-atomic-angular.mjs +8145 -1910
- package/fesm2022/sinequa-atomic-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/types/sinequa-atomic-angular-document-workspaces.d.ts +54 -4
- package/types/sinequa-atomic-angular.d.ts +1003 -210
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sinequa/atomic-angular",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.16.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@angular/core": "^22.0.0",
|
|
36
36
|
"@angular/aria": "^22.2.0",
|
|
37
37
|
"@sinequa/galactik": "^2.0.0",
|
|
38
|
-
"@sinequa/atomic": ">=2.
|
|
38
|
+
"@sinequa/atomic": ">=2.16.0",
|
|
39
39
|
"vanilla-calendar-pro": "^3.4.0",
|
|
40
40
|
"chart.js": "^4.4.0",
|
|
41
41
|
"chartjs-chart-matrix": "^3.0.0",
|
|
@@ -16,11 +16,21 @@ interface Workspace {
|
|
|
16
16
|
color: WorkspaceColor;
|
|
17
17
|
description: string;
|
|
18
18
|
tags: string[];
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Documents in the workspace. `undefined` until known: the search that lists the workspaces
|
|
21
|
+
* does not count them, the one that lists a workspace's content does.
|
|
22
|
+
*/
|
|
23
|
+
documentCount?: number;
|
|
20
24
|
creatorId: string;
|
|
21
25
|
ownerIds: string[];
|
|
22
26
|
readerIds: string[];
|
|
23
27
|
currentUserRole: WorkspaceRole;
|
|
28
|
+
/**
|
|
29
|
+
* Whether `creatorId`, `ownerIds` and `readerIds` hold the real lists. The search that lists
|
|
30
|
+
* workspaces does not return them (only the create/update calls do), so a workspace read that
|
|
31
|
+
* way has them empty: sending those empty lists back would wipe the real ones.
|
|
32
|
+
*/
|
|
33
|
+
membersKnown: boolean;
|
|
24
34
|
}
|
|
25
35
|
/** Lifecycle of a document being added: `null` (or absent) once it is indexed. */
|
|
26
36
|
type DocumentStatus = "uploading" | "indexing" | "error";
|
|
@@ -148,6 +158,11 @@ interface ConnectionNotice {
|
|
|
148
158
|
*/
|
|
149
159
|
retry?(): void;
|
|
150
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Query web service the agent-workspace search runs on. The server answers with its own
|
|
163
|
+
* document-upload query whatever name is sent, but the request still has to carry one.
|
|
164
|
+
*/
|
|
165
|
+
declare const WORKSPACES_QUERY_NAME = "query_Web";
|
|
151
166
|
/**
|
|
152
167
|
* Most workspaces the list keeps loaded: "load more" stops there, so the list never puts an
|
|
153
168
|
* unbounded number of cards in the DOM. Past it, {@link WorkspacesStore.truncated} is true.
|
|
@@ -168,6 +183,10 @@ interface WorkspacesState {
|
|
|
168
183
|
documentPagination: Record<string, Pagination>;
|
|
169
184
|
/** Ids ticked in the "+"/"@" mention pickers — shared between every picker instance. */
|
|
170
185
|
selectedIds: string[];
|
|
186
|
+
/** What the list's search box asked the server for ("" = every workspace). Reloads and "load more" keep it. */
|
|
187
|
+
searchText: string;
|
|
188
|
+
/** What each open workspace's search box asked the server for, by workspace id. Refreshes keep it. */
|
|
189
|
+
documentSearch: Record<string, string>;
|
|
171
190
|
}
|
|
172
191
|
interface CreateWorkspaceInput {
|
|
173
192
|
name: string;
|
|
@@ -185,8 +204,9 @@ interface RemoveWorkspacesResult {
|
|
|
185
204
|
}[];
|
|
186
205
|
}
|
|
187
206
|
/**
|
|
188
|
-
* Workspaces and their documents
|
|
189
|
-
* (`@sinequa/atomic`
|
|
207
|
+
* Workspaces and their documents. They are read through the agent-workspace search
|
|
208
|
+
* (`fetchWorkspaces`, `fetchWorkspace`, `fetchWorkspaceContent` of `@sinequa/atomic`) and written
|
|
209
|
+
* through the workspace management endpoints (create, update, delete, documents).
|
|
190
210
|
*
|
|
191
211
|
* Root-scoped on purpose: the workspace list, the mention picker and the
|
|
192
212
|
* save/move picker are separate components that have to see the same cache and
|
|
@@ -207,6 +227,8 @@ export declare const WorkspacesStore: import("@angular/core").Type<{
|
|
|
207
227
|
documents: import("@angular/core").Signal<Record<string, WorkspaceDocument[]>>;
|
|
208
228
|
documentPagination: import("@angular/core").Signal<Record<string, Pagination>>;
|
|
209
229
|
selectedIds: import("@angular/core").Signal<string[]>;
|
|
230
|
+
searchText: import("@angular/core").Signal<string>;
|
|
231
|
+
documentSearch: import("@angular/core").Signal<Record<string, string>>;
|
|
210
232
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
211
233
|
truncated: import("@angular/core").Signal<boolean>;
|
|
212
234
|
selectedCount: import("@angular/core").Signal<number>;
|
|
@@ -216,6 +238,7 @@ export declare const WorkspacesStore: import("@angular/core").Type<{
|
|
|
216
238
|
hasMoreDocuments: (workspaceId: string) => boolean;
|
|
217
239
|
ensureLoaded: () => Promise<Workspace[]>;
|
|
218
240
|
reload: () => Promise<Workspace[]>;
|
|
241
|
+
search: (text: string) => Promise<Workspace[]>;
|
|
219
242
|
loadMore: () => Promise<Workspace[]>;
|
|
220
243
|
fetch: (id: string) => Promise<Workspace>;
|
|
221
244
|
create: ({ name, description, tags, owners, readers }: CreateWorkspaceInput) => Promise<Workspace>;
|
|
@@ -223,6 +246,8 @@ export declare const WorkspacesStore: import("@angular/core").Type<{
|
|
|
223
246
|
remove: (ids: string[]) => Promise<RemoveWorkspacesResult>;
|
|
224
247
|
forget: (id: string) => void;
|
|
225
248
|
loadDocuments: (workspaceId: string, signal?: AbortSignal) => Promise<WorkspaceDocument[]>;
|
|
249
|
+
searchDocuments: (workspaceId: string, text: string, signal?: AbortSignal) => Promise<WorkspaceDocument[]>;
|
|
250
|
+
resetDocumentSearch: (workspaceId: string) => void;
|
|
226
251
|
loadMoreDocuments: (workspaceId: string) => Promise<WorkspaceDocument[]>;
|
|
227
252
|
addDocuments: (workspaceId: string, documents: WorkspaceDocument[]) => void;
|
|
228
253
|
discardDocuments: (workspaceId: string, documentIds: string[]) => void;
|
|
@@ -240,6 +265,8 @@ export declare const WorkspacesStore: import("@angular/core").Type<{
|
|
|
240
265
|
documents: Record<string, WorkspaceDocument[]>;
|
|
241
266
|
documentPagination: Record<string, Pagination>;
|
|
242
267
|
selectedIds: string[];
|
|
268
|
+
searchText: string;
|
|
269
|
+
documentSearch: Record<string, string>;
|
|
243
270
|
}>>;
|
|
244
271
|
interface TrackerWorkspace {
|
|
245
272
|
id: string;
|
|
@@ -968,6 +995,11 @@ type WorkspaceSearchFields = "name" | "name+description";
|
|
|
968
995
|
interface WorkspaceFilterOptions {
|
|
969
996
|
/** What the query is matched against. Read reactively; the name only when absent. */
|
|
970
997
|
fields?: () => WorkspaceSearchFields;
|
|
998
|
+
/**
|
|
999
|
+
* The server does the searching: `filtered` then keeps only the tab and does not narrow by the query itself
|
|
1000
|
+
* (the list it reads is already the answer). The query is still there for the search box and the highlighting.
|
|
1001
|
+
*/
|
|
1002
|
+
serverSide?: boolean;
|
|
971
1003
|
}
|
|
972
1004
|
/**
|
|
973
1005
|
* The workspace list's tab and search box, and the list they produce.
|
|
@@ -1509,6 +1541,8 @@ export declare class WorkspaceList {
|
|
|
1509
1541
|
documents: import("@angular/core").Signal<Record<string, import("@sinequa/atomic-angular/document-workspaces").WorkspaceDocument[]>>;
|
|
1510
1542
|
documentPagination: import("@angular/core").Signal<Record<string, import("@sinequa/atomic-angular/document-workspaces").Pagination>>;
|
|
1511
1543
|
selectedIds: import("@angular/core").Signal<string[]>;
|
|
1544
|
+
searchText: import("@angular/core").Signal<string>;
|
|
1545
|
+
documentSearch: import("@angular/core").Signal<Record<string, string>>;
|
|
1512
1546
|
hasMore: import("@angular/core").Signal<boolean>;
|
|
1513
1547
|
truncated: import("@angular/core").Signal<boolean>;
|
|
1514
1548
|
selectedCount: import("@angular/core").Signal<number>;
|
|
@@ -1518,6 +1552,7 @@ export declare class WorkspaceList {
|
|
|
1518
1552
|
hasMoreDocuments: (workspaceId: string) => boolean;
|
|
1519
1553
|
ensureLoaded: () => Promise<Workspace[]>;
|
|
1520
1554
|
reload: () => Promise<Workspace[]>;
|
|
1555
|
+
search: (text: string) => Promise<Workspace[]>;
|
|
1521
1556
|
loadMore: () => Promise<Workspace[]>;
|
|
1522
1557
|
fetch: (id: string) => Promise<Workspace>;
|
|
1523
1558
|
create: ({ name, description, tags, owners, readers }: import("@sinequa/atomic-angular/document-workspaces").CreateWorkspaceInput) => Promise<Workspace>;
|
|
@@ -1525,6 +1560,8 @@ export declare class WorkspaceList {
|
|
|
1525
1560
|
remove: (ids: string[]) => Promise<import("@sinequa/atomic-angular/document-workspaces").RemoveWorkspacesResult>;
|
|
1526
1561
|
forget: (id: string) => void;
|
|
1527
1562
|
loadDocuments: (workspaceId: string, signal?: AbortSignal) => Promise<import("@sinequa/atomic-angular/document-workspaces").WorkspaceDocument[]>;
|
|
1563
|
+
searchDocuments: (workspaceId: string, text: string, signal?: AbortSignal) => Promise<import("@sinequa/atomic-angular/document-workspaces").WorkspaceDocument[]>;
|
|
1564
|
+
resetDocumentSearch: (workspaceId: string) => void;
|
|
1528
1565
|
loadMoreDocuments: (workspaceId: string) => Promise<import("@sinequa/atomic-angular/document-workspaces").WorkspaceDocument[]>;
|
|
1529
1566
|
addDocuments: (workspaceId: string, documents: import("@sinequa/atomic-angular/document-workspaces").WorkspaceDocument[]) => void;
|
|
1530
1567
|
discardDocuments: (workspaceId: string, documentIds: string[]) => void;
|
|
@@ -1542,6 +1579,8 @@ export declare class WorkspaceList {
|
|
|
1542
1579
|
documents: Record<string, import("@sinequa/atomic-angular/document-workspaces").WorkspaceDocument[]>;
|
|
1543
1580
|
documentPagination: Record<string, import("@sinequa/atomic-angular/document-workspaces").Pagination>;
|
|
1544
1581
|
selectedIds: string[];
|
|
1582
|
+
searchText: string;
|
|
1583
|
+
documentSearch: Record<string, string>;
|
|
1545
1584
|
}>;
|
|
1546
1585
|
private readonly uploads;
|
|
1547
1586
|
private readonly injector;
|
|
@@ -1568,6 +1607,7 @@ export declare class WorkspaceList {
|
|
|
1568
1607
|
protected readonly selection: import("@sinequa/atomic-angular/document-workspaces").Selection<Workspace>;
|
|
1569
1608
|
private readonly liveRefresh;
|
|
1570
1609
|
constructor();
|
|
1610
|
+
private search;
|
|
1571
1611
|
/** Shows what is cached at once and refreshes behind it, or loads for the first time. */
|
|
1572
1612
|
protected load(): Promise<void>;
|
|
1573
1613
|
private refresh;
|
|
@@ -2005,8 +2045,17 @@ export declare class ShareDialog {
|
|
|
2005
2045
|
protected readonly staged: import("@angular/core").WritableSignal<PickedPrincipal[]>;
|
|
2006
2046
|
protected readonly adding: import("@angular/core").WritableSignal<boolean>;
|
|
2007
2047
|
protected readonly busy: import("@angular/core").WritableSignal<boolean>;
|
|
2048
|
+
/** The people with access are being read: the search that lists workspaces does not return them. */
|
|
2049
|
+
protected readonly loadingMembers: import("@angular/core").WritableSignal<boolean>;
|
|
2008
2050
|
protected readonly error: import("@angular/core").WritableSignal<WorkspaceErrorMessage | null>;
|
|
2009
2051
|
constructor();
|
|
2052
|
+
/**
|
|
2053
|
+
* The search that lists the workspaces returns who the caller is, not who else has access. An update
|
|
2054
|
+
* that changes nothing answers with the whole workspace: that is where the people come from.
|
|
2055
|
+
* Until then the dialog writes nothing, since the API replaces the owners and readers wholesale.
|
|
2056
|
+
*/
|
|
2057
|
+
private loadMembers;
|
|
2058
|
+
protected reloadMembers(): void;
|
|
2010
2059
|
protected add(): Promise<void>;
|
|
2011
2060
|
protected change(id: string, role: AssignableRole | "remove"): Promise<void>;
|
|
2012
2061
|
/** One write at a time: the arrays it sends are built from the workspace as it is now. */
|
|
@@ -2216,6 +2265,7 @@ export declare class WorkspaceDetail {
|
|
|
2216
2265
|
protected readonly selection: import("@sinequa/atomic-angular/document-workspaces").Selection<WorkspaceDocument>;
|
|
2217
2266
|
private readonly liveRefresh;
|
|
2218
2267
|
constructor();
|
|
2268
|
+
private search;
|
|
2219
2269
|
private open;
|
|
2220
2270
|
/**
|
|
2221
2271
|
* Leaving from here: once the background refresh found the workspace gone,
|
|
@@ -2278,7 +2328,7 @@ interface MentionItem {
|
|
|
2278
2328
|
name: string;
|
|
2279
2329
|
description: string;
|
|
2280
2330
|
color: WorkspaceColor;
|
|
2281
|
-
documentCount
|
|
2331
|
+
documentCount?: number;
|
|
2282
2332
|
/** The current user's role on it: a host can mark the read-only rows (`reader`) without hiding them. */
|
|
2283
2333
|
currentUserRole: WorkspaceRole;
|
|
2284
2334
|
selected: boolean;
|