@sinequa/atomic-angular 1.16.0 → 1.17.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/document-workspaces/i18n/de.json +4 -2
- package/document-workspaces/i18n/en.json +4 -2
- package/document-workspaces/i18n/fr.json +4 -2
- package/document-workspaces/i18n/ja.json +4 -2
- package/document-workspaces/index.d.ts +64 -21
- package/fesm2022/sinequa-atomic-angular-document-workspaces.mjs +247 -203
- package/fesm2022/sinequa-atomic-angular-document-workspaces.mjs.map +1 -1
- package/fesm2022/sinequa-atomic-angular-workspace-elements.mjs +2 -2
- package/fesm2022/sinequa-atomic-angular-workspace-elements.mjs.map +1 -1
- package/package.json +1 -5
- package/elements/index.d.ts +0 -346
- package/fesm2022/sinequa-atomic-angular-elements.mjs +0 -7526
- package/fesm2022/sinequa-atomic-angular-elements.mjs.map +0 -1
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"roleShared": "Geteilt",
|
|
43
43
|
"searchPlaceholder": "Arbeitsbereich suchen...",
|
|
44
44
|
"selectedCount": "{count, plural, one {{count} ausgewählt} other {{count} ausgewählt}}",
|
|
45
|
-
"subtitle": "
|
|
45
|
+
"subtitle": "Laden Sie Ihre Dokumente hoch, indizieren und teilen Sie sie.",
|
|
46
46
|
"tabAll": "Alle Arbeitsbereiche",
|
|
47
47
|
"tabEditor": "Bearbeiter",
|
|
48
48
|
"tabReader": "Leser",
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
},
|
|
127
127
|
"share": {
|
|
128
128
|
"accessCount": "{count, plural, one {{count} Person hat Zugriff} other {{count} Personen haben Zugriff}}",
|
|
129
|
-
"accessNotice": "
|
|
129
|
+
"accessNotice": "Benutzer, die zu diesem Arbeitsbereich hinzugefügt werden, erhalten Zugriff auf alle hochgeladenen Dokumente, die auch in ihren Suchergebnissen erscheinen.",
|
|
130
130
|
"addPeople": "Personen hinzufügen",
|
|
131
131
|
"adding": "Wird hinzugefügt…",
|
|
132
132
|
"changeRole": "Rolle von {name} ändern",
|
|
@@ -197,6 +197,8 @@
|
|
|
197
197
|
"cancelUpload": "Hochladen abbrechen",
|
|
198
198
|
"retryUpload": "Hochladen erneut versuchen",
|
|
199
199
|
"retryAll": "Alle erneut versuchen",
|
|
200
|
+
"remoteUpload": "Upload eines anderen Benutzers",
|
|
201
|
+
"ownUpload": "Ihr Upload",
|
|
200
202
|
"workspaceIndexed": "{name}: indiziert"
|
|
201
203
|
},
|
|
202
204
|
"picker": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"roleShared": "Shared",
|
|
43
43
|
"searchPlaceholder": "Search workspace...",
|
|
44
44
|
"selectedCount": "{count, plural, one {{count} selected} other {{count} selected}}",
|
|
45
|
-
"subtitle": "
|
|
45
|
+
"subtitle": "Upload, index and share your documents.",
|
|
46
46
|
"tabAll": "All Workspaces",
|
|
47
47
|
"tabEditor": "Editor",
|
|
48
48
|
"tabReader": "Reader",
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
},
|
|
127
127
|
"share": {
|
|
128
128
|
"accessCount": "{count, plural, one {{count} person has access} other {{count} people have access}}",
|
|
129
|
-
"accessNotice": "
|
|
129
|
+
"accessNotice": "Users added to this workspace get access to all its uploaded documents, which will also appear in their search results.",
|
|
130
130
|
"addPeople": "Add people",
|
|
131
131
|
"adding": "Adding…",
|
|
132
132
|
"changeRole": "Change the role of {name}",
|
|
@@ -197,6 +197,8 @@
|
|
|
197
197
|
"cancelUpload": "Cancel upload",
|
|
198
198
|
"retryUpload": "Retry upload",
|
|
199
199
|
"retryAll": "Retry all",
|
|
200
|
+
"remoteUpload": "Upload by another user",
|
|
201
|
+
"ownUpload": "Your upload",
|
|
200
202
|
"workspaceIndexed": "{name}: indexed"
|
|
201
203
|
},
|
|
202
204
|
"picker": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"roleShared": "Partagée",
|
|
43
43
|
"searchPlaceholder": "Rechercher un espace de travail...",
|
|
44
44
|
"selectedCount": "{count, plural, one {{count} sélectionnée} many {{count} sélectionnées} other {{count} sélectionnées}}",
|
|
45
|
-
"subtitle": "
|
|
45
|
+
"subtitle": "Téléversez, indexez et partagez vos documents.",
|
|
46
46
|
"tabAll": "Tous les espaces de travail",
|
|
47
47
|
"tabEditor": "Éditeur",
|
|
48
48
|
"tabReader": "Lecteur",
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
},
|
|
127
127
|
"share": {
|
|
128
128
|
"accessCount": "{count, plural, one {{count} personne a accès} many {{count} personnes ont accès} other {{count} personnes ont accès}}",
|
|
129
|
-
"accessNotice": "
|
|
129
|
+
"accessNotice": "Les utilisateurs ajoutés à cet espace de travail ont accès à tous ses documents téléversés, qui apparaîtront aussi dans leurs résultats de recherche.",
|
|
130
130
|
"addPeople": "Ajouter des personnes",
|
|
131
131
|
"adding": "Ajout…",
|
|
132
132
|
"changeRole": "Changer le rôle de {name}",
|
|
@@ -197,6 +197,8 @@
|
|
|
197
197
|
"cancelUpload": "Annuler le téléversement",
|
|
198
198
|
"retryUpload": "Réessayer le téléversement",
|
|
199
199
|
"retryAll": "Tout réessayer",
|
|
200
|
+
"remoteUpload": "Envoi d'un autre utilisateur",
|
|
201
|
+
"ownUpload": "Votre envoi",
|
|
200
202
|
"workspaceIndexed": "{name} : indexé"
|
|
201
203
|
},
|
|
202
204
|
"picker": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"roleShared": "共有",
|
|
43
43
|
"searchPlaceholder": "ワークスペースを検索...",
|
|
44
44
|
"selectedCount": "{count, plural, other {{count} 件選択中}}",
|
|
45
|
-
"subtitle": "
|
|
45
|
+
"subtitle": "ドキュメントをアップロードし、インデックス化して共有します。",
|
|
46
46
|
"tabAll": "すべてのワークスペース",
|
|
47
47
|
"tabEditor": "編集者",
|
|
48
48
|
"tabReader": "閲覧者",
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
},
|
|
127
127
|
"share": {
|
|
128
128
|
"accessCount": "{count, plural, other {{count} 人がアクセスできます}}",
|
|
129
|
-
"accessNotice": "
|
|
129
|
+
"accessNotice": "このワークスペースに追加されたユーザーは、アップロードされたすべてのドキュメントにアクセスでき、それらは検索結果にも表示されます。",
|
|
130
130
|
"addPeople": "ユーザーを追加",
|
|
131
131
|
"adding": "追加しています…",
|
|
132
132
|
"changeRole": "{name} のロールを変更",
|
|
@@ -197,6 +197,8 @@
|
|
|
197
197
|
"cancelUpload": "アップロードをキャンセル",
|
|
198
198
|
"retryUpload": "アップロードを再試行",
|
|
199
199
|
"retryAll": "すべて再試行",
|
|
200
|
+
"remoteUpload": "他のユーザーによるアップロード",
|
|
201
|
+
"ownUpload": "あなたのアップロード",
|
|
200
202
|
"workspaceIndexed": "{name}: インデックス済み"
|
|
201
203
|
},
|
|
202
204
|
"picker": {
|
|
@@ -39,9 +39,8 @@ interface WorkspaceDocument {
|
|
|
39
39
|
*/
|
|
40
40
|
createdAt?: string;
|
|
41
41
|
/**
|
|
42
|
-
* Bytes.
|
|
43
|
-
*
|
|
44
|
-
* serves a size (swagger `ContainerDocumentViewModel`, checked 2026-09-30).
|
|
42
|
+
* Bytes. Neither the documents listing nor the upload-status endpoint serves a
|
|
43
|
+
* size (swagger `ContainerDocumentViewModel`, checked 2026-09-30): unset for now.
|
|
45
44
|
*/
|
|
46
45
|
size?: number;
|
|
47
46
|
/** Not served by the listing either; kept for a "source" column when a backend provides one. */
|
|
@@ -105,6 +104,18 @@ interface TrackedUpload {
|
|
|
105
104
|
message?: string;
|
|
106
105
|
/** An `error` that sending the file again could fix (a lost connection), as opposed to one the server will keep refusing. */
|
|
107
106
|
retryable: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Set on a row that does not come from this client's own transfers but from the
|
|
109
|
+
* status API: a job (or one of its failed files) started elsewhere. A job row is
|
|
110
|
+
* the whole job — the API gives no list of its files — so it has no `name`, and
|
|
111
|
+
* nothing here can cancel or retry it.
|
|
112
|
+
*/
|
|
113
|
+
remote?: RemoteUpload;
|
|
114
|
+
}
|
|
115
|
+
/** What the tracker knows about a row it only learned from the status API. */
|
|
116
|
+
interface RemoteUpload {
|
|
117
|
+
/** The current user started this job (from another tab, or before a page reload). */
|
|
118
|
+
mine: boolean;
|
|
108
119
|
}
|
|
109
120
|
/** What to tell the tracker when files start. */
|
|
110
121
|
interface TrackFileInput {
|
|
@@ -186,8 +197,8 @@ interface RemoveWorkspacesResult {
|
|
|
186
197
|
* touches the cache once the server has answered, so a rejected call leaves
|
|
187
198
|
* the state as it was — the call site reports the error.
|
|
188
199
|
*
|
|
189
|
-
* `addDocuments`
|
|
190
|
-
*
|
|
200
|
+
* `addDocuments`, `discardDocuments` and `patchDocument` stay purely local. The upload
|
|
201
|
+
* flow no longer uses them: the list is the index, and only the listing writes to it.
|
|
191
202
|
*/
|
|
192
203
|
declare const WorkspacesStore: _angular_core.Type<{
|
|
193
204
|
workspaces: _angular_core.Signal<Workspace[]>;
|
|
@@ -245,6 +256,20 @@ interface UploadTrackerState {
|
|
|
245
256
|
clearedCount: number;
|
|
246
257
|
/** What the server last said about each job's indexing, 0-100: indexed files / files of the job. */
|
|
247
258
|
jobIndexing: Record<string, number>;
|
|
259
|
+
/**
|
|
260
|
+
* Jobs the user got rid of — closed, cancelled, cleared. The status API keeps listing a
|
|
261
|
+
* job for a while after it ends, so without this a job closed by hand would come
|
|
262
|
+
* straight back as an upload started elsewhere. Survives `reset()`, on purpose.
|
|
263
|
+
*/
|
|
264
|
+
ignoredJobs: Record<string, true>;
|
|
265
|
+
}
|
|
266
|
+
/** A job the status API reports that this client did not start — or no longer remembers starting. */
|
|
267
|
+
interface RemoteJobEntry {
|
|
268
|
+
job: UploadJobStatus;
|
|
269
|
+
workspaceId: string;
|
|
270
|
+
workspaceName: string;
|
|
271
|
+
/** The current user started the job (`initiatedBy` is the current user's id). */
|
|
272
|
+
mine: boolean;
|
|
248
273
|
}
|
|
249
274
|
declare const isFinished: (upload: TrackedUpload) => boolean;
|
|
250
275
|
declare const isFailed: (upload: TrackedUpload) => boolean;
|
|
@@ -268,10 +293,13 @@ declare const UploadTrackerStore: _angular_core.Type<{
|
|
|
268
293
|
connection: _angular_core.Signal<ConnectionNotice | null>;
|
|
269
294
|
clearedCount: _angular_core.Signal<number>;
|
|
270
295
|
jobIndexing: _angular_core.Signal<Record<string, number>>;
|
|
296
|
+
ignoredJobs: _angular_core.Signal<Record<string, true>>;
|
|
271
297
|
active: _angular_core.Signal<boolean>;
|
|
272
298
|
failed: _angular_core.Signal<TrackedUpload[]>;
|
|
273
299
|
byStatus: _angular_core.Signal<Record<UploadStatus, TrackedUpload[]>>;
|
|
274
300
|
allDone: _angular_core.Signal<boolean>;
|
|
301
|
+
settled: _angular_core.Signal<boolean>;
|
|
302
|
+
authorFailed: _angular_core.Signal<boolean>;
|
|
275
303
|
progress: _angular_core.Signal<Record<string, PhaseProgress>>;
|
|
276
304
|
indexedCount: _angular_core.Signal<number>;
|
|
277
305
|
track: (files: TrackFileInput[], workspaceId: string, workspaceName: string) => void;
|
|
@@ -284,6 +312,7 @@ declare const UploadTrackerStore: _angular_core.Type<{
|
|
|
284
312
|
}) => void;
|
|
285
313
|
restart: (id: string) => void;
|
|
286
314
|
applyJobs: (jobs: UploadJobStatus[]) => boolean;
|
|
315
|
+
applyRemoteJobs: (entries: RemoteJobEntry[]) => boolean;
|
|
287
316
|
setConnection: (connection: ConnectionNotice | null) => void;
|
|
288
317
|
remove: (id: string) => void;
|
|
289
318
|
removeWorkspace: (workspaceId: string) => void;
|
|
@@ -294,6 +323,7 @@ declare const UploadTrackerStore: _angular_core.Type<{
|
|
|
294
323
|
connection: ConnectionNotice | null;
|
|
295
324
|
clearedCount: number;
|
|
296
325
|
jobIndexing: Record<string, number>;
|
|
326
|
+
ignoredJobs: Record<string, true>;
|
|
297
327
|
}>>;
|
|
298
328
|
|
|
299
329
|
interface UploadTarget {
|
|
@@ -318,6 +348,10 @@ interface AddFilesOptions {
|
|
|
318
348
|
* speaks for both. What the user sees lives in `UploadTrackerStore`; this
|
|
319
349
|
* service only writes to it.
|
|
320
350
|
*
|
|
351
|
+
* It never writes a file into a workspace's list: the list is the index, and a file
|
|
352
|
+
* enters it only once the container listing returns it. What the service does for the
|
|
353
|
+
* list is re-read that listing while something is in progress.
|
|
354
|
+
*
|
|
321
355
|
* Root-scoped: an upload must outlive the view that started it. It registers its
|
|
322
356
|
* window and auth listeners once, and removes them when the application is destroyed.
|
|
323
357
|
*/
|
|
@@ -359,7 +393,7 @@ declare class UploadService {
|
|
|
359
393
|
addFiles(workspace: UploadTarget, files: File[], options: AddFilesOptions): string[];
|
|
360
394
|
/**
|
|
361
395
|
* Abandons a transfer and forgets it: stops it, and drops the file from the
|
|
362
|
-
* tracker
|
|
396
|
+
* tracker. Works while it is sending
|
|
363
397
|
* and once it has failed; once the bytes are in, indexing is the server's and
|
|
364
398
|
* there is nothing left to cancel.
|
|
365
399
|
*
|
|
@@ -379,32 +413,33 @@ declare class UploadService {
|
|
|
379
413
|
resumeStalled(): void;
|
|
380
414
|
/**
|
|
381
415
|
* Tells the service which workspace is open, so the status polling can be
|
|
382
|
-
* scoped to it (the API documents that as the cheaper lookup) and
|
|
383
|
-
*
|
|
384
|
-
*
|
|
385
|
-
*
|
|
416
|
+
* scoped to it (the API documents that as the cheaper lookup) and re-read its
|
|
417
|
+
* listing. `null` when none is. Starts the polling: a page reload loses every
|
|
418
|
+
* local tus handle and the listing no longer says what is in progress, so the
|
|
419
|
+
* status API is the only way to know. The loop stops by itself after one tick
|
|
420
|
+
* when nothing is.
|
|
386
421
|
*/
|
|
387
422
|
watch(workspaceId: string | null): void;
|
|
388
423
|
startPolling(): void;
|
|
389
424
|
stopPolling(): void;
|
|
390
425
|
private startUpload;
|
|
391
|
-
/** The key a cached document is followed by in the tracker. */
|
|
392
|
-
private keyOf;
|
|
393
|
-
/** The id the workspace store holds for the file followed under `key`. */
|
|
394
|
-
private storedId;
|
|
395
|
-
private patchStored;
|
|
396
426
|
private markIndexing;
|
|
397
|
-
private markComplete;
|
|
398
427
|
private markError;
|
|
399
428
|
private pollUploadStatus;
|
|
400
429
|
private runPollTick;
|
|
401
430
|
/**
|
|
402
|
-
* The
|
|
403
|
-
*
|
|
404
|
-
*
|
|
431
|
+
* The jobs of the response the panel should show although this client did not send
|
|
432
|
+
* them. The server decides which ones the response holds — those in progress or just
|
|
433
|
+
* ended, on the workspaces the user can write to — so none is filtered by role or date
|
|
434
|
+
* here; only, with a workspace open, those that belong to it are kept. Whether the user
|
|
435
|
+
* started one is read from `initiatedBy`, which is their `userId`, so it holds after a
|
|
436
|
+
* page reload too.
|
|
405
437
|
*/
|
|
438
|
+
private remoteJobs;
|
|
439
|
+
/** Re-reads the workspace's listing. @returns Whether it differs from what was shown. */
|
|
440
|
+
private refreshListing;
|
|
441
|
+
/** The job-level status can finish a file this client was still holding the poller for: release it. */
|
|
406
442
|
private settleFinishedUploads;
|
|
407
|
-
private applyDocumentStatuses;
|
|
408
443
|
/** Transfers that spent their whole budget and are parked in the error state: what "N uploads paused" counts once retrying has stopped. */
|
|
409
444
|
private stalledUploadCount;
|
|
410
445
|
private publishConnection;
|
|
@@ -921,6 +956,7 @@ declare class WorkspaceList {
|
|
|
921
956
|
selectedIds: string[];
|
|
922
957
|
}>;
|
|
923
958
|
private readonly dialogs;
|
|
959
|
+
private readonly uploads;
|
|
924
960
|
private readonly transloco;
|
|
925
961
|
protected readonly tabs: readonly {
|
|
926
962
|
tab: WorkspaceTab;
|
|
@@ -1871,10 +1907,13 @@ declare class UploadTracker {
|
|
|
1871
1907
|
connection: _angular_core.Signal<_sinequa_atomic_angular_document_workspaces.ConnectionNotice | null>;
|
|
1872
1908
|
clearedCount: _angular_core.Signal<number>;
|
|
1873
1909
|
jobIndexing: _angular_core.Signal<Record<string, number>>;
|
|
1910
|
+
ignoredJobs: _angular_core.Signal<Record<string, true>>;
|
|
1874
1911
|
active: _angular_core.Signal<boolean>;
|
|
1875
1912
|
failed: _angular_core.Signal<TrackedUpload[]>;
|
|
1876
1913
|
byStatus: _angular_core.Signal<Record<UploadStatus, TrackedUpload[]>>;
|
|
1877
1914
|
allDone: _angular_core.Signal<boolean>;
|
|
1915
|
+
settled: _angular_core.Signal<boolean>;
|
|
1916
|
+
authorFailed: _angular_core.Signal<boolean>;
|
|
1878
1917
|
progress: _angular_core.Signal<Record<string, PhaseProgress>>;
|
|
1879
1918
|
indexedCount: _angular_core.Signal<number>;
|
|
1880
1919
|
track: (files: _sinequa_atomic_angular_document_workspaces.TrackFileInput[], workspaceId: string, workspaceName: string) => void;
|
|
@@ -1887,6 +1926,7 @@ declare class UploadTracker {
|
|
|
1887
1926
|
}) => void;
|
|
1888
1927
|
restart: (id: string) => void;
|
|
1889
1928
|
applyJobs: (jobs: _sinequa_atomic.UploadJobStatus[]) => boolean;
|
|
1929
|
+
applyRemoteJobs: (entries: RemoteJobEntry[]) => boolean;
|
|
1890
1930
|
setConnection: (connection: _sinequa_atomic_angular_document_workspaces.ConnectionNotice | null) => void;
|
|
1891
1931
|
remove: (id: string) => void;
|
|
1892
1932
|
removeWorkspace: (workspaceId: string) => void;
|
|
@@ -1897,6 +1937,7 @@ declare class UploadTracker {
|
|
|
1897
1937
|
connection: _sinequa_atomic_angular_document_workspaces.ConnectionNotice | null;
|
|
1898
1938
|
clearedCount: number;
|
|
1899
1939
|
jobIndexing: Record<string, number>;
|
|
1940
|
+
ignoredJobs: Record<string, true>;
|
|
1900
1941
|
}>;
|
|
1901
1942
|
private readonly service;
|
|
1902
1943
|
protected readonly mode: _angular_core.WritableSignal<Mode>;
|
|
@@ -1960,7 +2001,7 @@ declare class UploadTracker {
|
|
|
1960
2001
|
protected onTransitionEnd(event: TransitionEvent): void;
|
|
1961
2002
|
private clearHover;
|
|
1962
2003
|
protected toggleExpanded(): void;
|
|
1963
|
-
/** Minimizes while there is work going on; once everything is over, closes for good. */
|
|
2004
|
+
/** Minimizes while there is work going on; once everything is over (failures included), closes for good. */
|
|
1964
2005
|
protected dismiss(): void;
|
|
1965
2006
|
protected moveWorkspace(step: -1 | 1): void;
|
|
1966
2007
|
protected isOpen(status: UploadStatus): boolean;
|
|
@@ -2024,6 +2065,8 @@ declare class UploadTrackerSection {
|
|
|
2024
2065
|
protected readonly failed: _angular_core.Signal<boolean>;
|
|
2025
2066
|
/** The bar: the phase's overall progress, or else the mean progress of the files in the section. */
|
|
2026
2067
|
protected readonly average: _angular_core.Signal<number>;
|
|
2068
|
+
/** The translation key standing for a row with no file name: a job started elsewhere. Only read when `name` is empty. */
|
|
2069
|
+
protected label(upload: TrackedUpload): string;
|
|
2027
2070
|
protected round(value: number): number;
|
|
2028
2071
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UploadTrackerSection, never>;
|
|
2029
2072
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UploadTrackerSection, "upload-tracker-section", never, { "status": { "alias": "status"; "required": true; "isSignal": true; }; "uploads": { "alias": "uploads"; "required": true; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; }, { "toggle": "toggle"; "discard": "discard"; "retry": "retry"; }, never, never, true, never>;
|