@noatgnu/cupcake-vanilla 1.3.13 → 1.3.15
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { OnInit, EventEmitter, OnDestroy, ElementRef } from '@angular/core';
|
|
2
|
+
import { OnInit, EventEmitter, OnChanges, SimpleChanges, OnDestroy, ElementRef, AfterViewInit, Renderer2 } from '@angular/core';
|
|
3
3
|
import { Observable, OperatorFunction } from 'rxjs';
|
|
4
|
-
import { BaseApiService,
|
|
4
|
+
import { BaseApiService, NotificationService as NotificationService$1, AsyncTaskQueryParams, PaginatedResponse as PaginatedResponse$1, AsyncTaskStatus, DownloadUrlResponse, MetadataExportRequest, AsyncTaskCreateResponse, BulkExportRequest, BulkExcelExportRequest, MetadataImportRequest, ValidationSchema, MetadataValidationRequest, SdrfFileValidationRequest, ChunkedImportRequest, WebSocketService, WebSocketMessage, DesktopRuntime, User, AuthService, LabGroupService, LabGroup, MetadataValidationConfig, TaskType, TaskStatus, LabGroupQueryResponse, ToastService, ResourceVisibility } from '@noatgnu/cupcake-core';
|
|
5
5
|
export { WebSocketMessage } from '@noatgnu/cupcake-core';
|
|
6
6
|
import * as _angular_forms from '@angular/forms';
|
|
7
7
|
import { FormGroup, FormBuilder } from '@angular/forms';
|
|
@@ -19,9 +19,15 @@ interface PaginatedResponse<T> {
|
|
|
19
19
|
previous?: string;
|
|
20
20
|
results: T[];
|
|
21
21
|
}
|
|
22
|
-
interface
|
|
22
|
+
interface ApiError {
|
|
23
|
+
message?: string;
|
|
24
|
+
code?: string;
|
|
25
|
+
details?: Record<string, string[]>;
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
interface ApiResponse<T = unknown> {
|
|
23
29
|
data?: T;
|
|
24
|
-
error?:
|
|
30
|
+
error?: ApiError;
|
|
25
31
|
status: number;
|
|
26
32
|
success: boolean;
|
|
27
33
|
}
|
|
@@ -49,7 +55,9 @@ declare enum OntologyType {
|
|
|
49
55
|
CHEBI = "chebi",
|
|
50
56
|
CELL_ONTOLOGY = "cell_ontology",
|
|
51
57
|
MS_UNIQUE_VOCABULARIES = "ms_unique_vocabularies",
|
|
52
|
-
PSI_MS = "psi_ms"
|
|
58
|
+
PSI_MS = "psi_ms",
|
|
59
|
+
BTO = "bto",
|
|
60
|
+
DOID = "doid"
|
|
53
61
|
}
|
|
54
62
|
declare const OntologyTypeLabels: Record<OntologyType, string>;
|
|
55
63
|
declare enum TemplatePermissionLevel {
|
|
@@ -66,6 +74,125 @@ declare enum ColumnType {
|
|
|
66
74
|
SPECIAL = "special"
|
|
67
75
|
}
|
|
68
76
|
|
|
77
|
+
type ColumnInputType = 'text' | 'select' | 'number_with_unit' | 'pattern' | 'ontology' | 'semver' | 'accession' | 'identifier';
|
|
78
|
+
interface ColumnValidator {
|
|
79
|
+
type: string;
|
|
80
|
+
params: {
|
|
81
|
+
values?: string[];
|
|
82
|
+
units?: string[];
|
|
83
|
+
pattern?: string;
|
|
84
|
+
ontologies?: string[];
|
|
85
|
+
examples?: (string | number)[];
|
|
86
|
+
description?: string;
|
|
87
|
+
error_level?: string;
|
|
88
|
+
format?: string;
|
|
89
|
+
special_values?: string[];
|
|
90
|
+
[key: string]: unknown;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
interface MetadataColumnTemplate extends BaseTimestampedModel {
|
|
94
|
+
id: number;
|
|
95
|
+
name: string;
|
|
96
|
+
description?: string;
|
|
97
|
+
columnName: string;
|
|
98
|
+
columnType: string;
|
|
99
|
+
defaultValue?: string;
|
|
100
|
+
defaultPosition?: number;
|
|
101
|
+
ontologyType?: string;
|
|
102
|
+
customOntologyFilters?: any;
|
|
103
|
+
enableTypeahead: boolean;
|
|
104
|
+
notApplicable: boolean;
|
|
105
|
+
notAvailable: boolean;
|
|
106
|
+
excelValidation?: any;
|
|
107
|
+
customValidationRules?: any;
|
|
108
|
+
apiEnhancements?: any;
|
|
109
|
+
visibility: string;
|
|
110
|
+
owner?: number;
|
|
111
|
+
ownerUsername?: string;
|
|
112
|
+
labGroup?: number;
|
|
113
|
+
labGroupName?: string;
|
|
114
|
+
schema?: number;
|
|
115
|
+
schemaName?: string;
|
|
116
|
+
sourceSchema?: string;
|
|
117
|
+
isSystemTemplate: boolean;
|
|
118
|
+
isActive: boolean;
|
|
119
|
+
usageCount?: number;
|
|
120
|
+
tags?: string[];
|
|
121
|
+
category?: string;
|
|
122
|
+
lastUsedAt?: string;
|
|
123
|
+
canEdit?: boolean;
|
|
124
|
+
canDelete?: boolean;
|
|
125
|
+
validators?: ColumnValidator[];
|
|
126
|
+
inputType?: ColumnInputType;
|
|
127
|
+
units?: string[];
|
|
128
|
+
possibleDefaultValues?: (string | number)[];
|
|
129
|
+
ontologyOptions?: string[];
|
|
130
|
+
baseColumn?: boolean;
|
|
131
|
+
}
|
|
132
|
+
interface MetadataColumnTemplateShare extends BaseTimestampedModel {
|
|
133
|
+
id: number;
|
|
134
|
+
template: number;
|
|
135
|
+
templateName?: string;
|
|
136
|
+
sharedWith: number;
|
|
137
|
+
sharedWithUsername?: string;
|
|
138
|
+
sharedBy: number;
|
|
139
|
+
sharedByUsername?: string;
|
|
140
|
+
canEdit: boolean;
|
|
141
|
+
}
|
|
142
|
+
interface MetadataColumnTemplateCreateRequest {
|
|
143
|
+
name: string;
|
|
144
|
+
description?: string;
|
|
145
|
+
columnName: string;
|
|
146
|
+
columnType: string;
|
|
147
|
+
defaultValue?: string;
|
|
148
|
+
defaultPosition?: number;
|
|
149
|
+
ontologyType?: string;
|
|
150
|
+
customOntologyFilters?: any;
|
|
151
|
+
enableTypeahead?: boolean;
|
|
152
|
+
notApplicable?: boolean;
|
|
153
|
+
notAvailable?: boolean;
|
|
154
|
+
excelValidation?: any;
|
|
155
|
+
customValidationRules?: any;
|
|
156
|
+
apiEnhancements?: any;
|
|
157
|
+
visibility?: string;
|
|
158
|
+
labGroup?: number;
|
|
159
|
+
tags?: string[];
|
|
160
|
+
category?: string;
|
|
161
|
+
}
|
|
162
|
+
interface MetadataColumnTemplateUpdateRequest {
|
|
163
|
+
name?: string;
|
|
164
|
+
description?: string;
|
|
165
|
+
columnName?: string;
|
|
166
|
+
columnType?: string;
|
|
167
|
+
defaultValue?: string;
|
|
168
|
+
defaultPosition?: number;
|
|
169
|
+
ontologyType?: string;
|
|
170
|
+
customOntologyFilters?: any;
|
|
171
|
+
enableTypeahead?: boolean;
|
|
172
|
+
notApplicable?: boolean;
|
|
173
|
+
notAvailable?: boolean;
|
|
174
|
+
excelValidation?: any;
|
|
175
|
+
customValidationRules?: any;
|
|
176
|
+
apiEnhancements?: any;
|
|
177
|
+
visibility?: string;
|
|
178
|
+
isActive?: boolean;
|
|
179
|
+
tags?: string[];
|
|
180
|
+
category?: string;
|
|
181
|
+
}
|
|
182
|
+
interface MetadataColumnTemplateShareCreateRequest {
|
|
183
|
+
template: number;
|
|
184
|
+
sharedWith: number;
|
|
185
|
+
canEdit?: boolean;
|
|
186
|
+
}
|
|
187
|
+
interface GroupedColumnTemplate {
|
|
188
|
+
columnName: string;
|
|
189
|
+
columnType: string;
|
|
190
|
+
schemaCount: number;
|
|
191
|
+
schemas: string[];
|
|
192
|
+
templateIds: number[];
|
|
193
|
+
sampleTemplate?: MetadataColumnTemplate;
|
|
194
|
+
}
|
|
195
|
+
|
|
69
196
|
interface MetadataColumnModifier {
|
|
70
197
|
samples: string;
|
|
71
198
|
value: string;
|
|
@@ -96,6 +223,12 @@ interface MetadataColumn extends BaseTimestampedModel {
|
|
|
96
223
|
possibleDefaultValues: any[];
|
|
97
224
|
staffOnly: boolean;
|
|
98
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* A synthetic MetadataColumn with id=0 derived from a template, used for ontology search
|
|
228
|
+
* in sheet mode where no backend table is loaded. id=0 is falsy so column-specific
|
|
229
|
+
* endpoints are not used; only the ontologyType and customOntologyFilters matter.
|
|
230
|
+
*/
|
|
231
|
+
declare function createSyntheticColumnFromTemplate(header: string, template: MetadataColumnTemplate): MetadataColumn;
|
|
99
232
|
interface MetadataColumnCreateRequest {
|
|
100
233
|
metadataTable: number;
|
|
101
234
|
template?: number;
|
|
@@ -314,94 +447,72 @@ interface AdvancedAutofillResponse {
|
|
|
314
447
|
variationsCombinations: number;
|
|
315
448
|
strategy: string;
|
|
316
449
|
}
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
name: string;
|
|
321
|
-
description?: string;
|
|
322
|
-
columnName: string;
|
|
323
|
-
columnType: string;
|
|
324
|
-
defaultValue?: string;
|
|
325
|
-
defaultPosition?: number;
|
|
326
|
-
ontologyType?: string;
|
|
327
|
-
customOntologyFilters?: any;
|
|
328
|
-
enableTypeahead: boolean;
|
|
329
|
-
notApplicable: boolean;
|
|
330
|
-
notAvailable: boolean;
|
|
331
|
-
excelValidation?: any;
|
|
332
|
-
customValidationRules?: any;
|
|
333
|
-
apiEnhancements?: any;
|
|
334
|
-
visibility: string;
|
|
335
|
-
owner?: number;
|
|
336
|
-
ownerUsername?: string;
|
|
337
|
-
labGroup?: number;
|
|
338
|
-
labGroupName?: string;
|
|
339
|
-
schema?: number;
|
|
340
|
-
schemaName?: string;
|
|
341
|
-
sourceSchema?: string;
|
|
342
|
-
isSystemTemplate: boolean;
|
|
343
|
-
isActive: boolean;
|
|
344
|
-
usageCount?: number;
|
|
345
|
-
tags?: string[];
|
|
346
|
-
category?: string;
|
|
347
|
-
lastUsedAt?: string;
|
|
348
|
-
canEdit?: boolean;
|
|
349
|
-
canDelete?: boolean;
|
|
450
|
+
interface ColumnOverrideMappingEntry {
|
|
451
|
+
fileColIndex: number;
|
|
452
|
+
columnId: number | null;
|
|
350
453
|
}
|
|
351
|
-
interface
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
sharedWith: number;
|
|
356
|
-
sharedWithUsername?: string;
|
|
357
|
-
sharedBy: number;
|
|
358
|
-
sharedByUsername?: string;
|
|
359
|
-
canEdit: boolean;
|
|
454
|
+
interface ColumnOverrideImportOptions {
|
|
455
|
+
updateValue: boolean;
|
|
456
|
+
updateModifiers: boolean;
|
|
457
|
+
normalizeOntology?: boolean;
|
|
360
458
|
}
|
|
361
|
-
interface
|
|
362
|
-
|
|
363
|
-
|
|
459
|
+
interface ColumnOverrideSuggestResult {
|
|
460
|
+
fileHeaders: {
|
|
461
|
+
fileColIndex: number;
|
|
462
|
+
header: string;
|
|
463
|
+
}[];
|
|
464
|
+
tableColumns: {
|
|
465
|
+
columnId: number;
|
|
466
|
+
columnName: string;
|
|
467
|
+
columnPosition: number;
|
|
468
|
+
}[];
|
|
469
|
+
suggestedMapping: ColumnOverrideMappingEntry[];
|
|
470
|
+
fileRowCount: number;
|
|
471
|
+
tableSampleCount: number;
|
|
472
|
+
}
|
|
473
|
+
interface ColumnOverrideMatchedColumn {
|
|
474
|
+
columnId: number;
|
|
364
475
|
columnName: string;
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
tags?: string[];
|
|
379
|
-
category?: string;
|
|
476
|
+
fileHeader: string;
|
|
477
|
+
fileColIndex: number;
|
|
478
|
+
currentValue: string | null;
|
|
479
|
+
newValue: string | null;
|
|
480
|
+
currentModifiers: {
|
|
481
|
+
samples: string;
|
|
482
|
+
value: string;
|
|
483
|
+
}[];
|
|
484
|
+
newModifiers: {
|
|
485
|
+
samples: string;
|
|
486
|
+
value: string;
|
|
487
|
+
}[];
|
|
488
|
+
rowsChanged: number;
|
|
380
489
|
}
|
|
381
|
-
interface
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
isActive?: boolean;
|
|
398
|
-
tags?: string[];
|
|
399
|
-
category?: string;
|
|
490
|
+
interface ColumnOverridePreviewResult {
|
|
491
|
+
columnsMatched: ColumnOverrideMatchedColumn[];
|
|
492
|
+
columnsToAdd: {
|
|
493
|
+
fileHeader: string;
|
|
494
|
+
fileColIndex: number;
|
|
495
|
+
columnType: string;
|
|
496
|
+
newValue: string | null;
|
|
497
|
+
newModifiers: {
|
|
498
|
+
samples: string;
|
|
499
|
+
value: string;
|
|
500
|
+
}[];
|
|
501
|
+
warning: string;
|
|
502
|
+
}[];
|
|
503
|
+
warnings: string[];
|
|
504
|
+
sampleCountMismatch: boolean;
|
|
505
|
+
fileRowCount: number;
|
|
400
506
|
}
|
|
401
|
-
interface
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
507
|
+
interface ColumnOverrideCommitResult {
|
|
508
|
+
message: string;
|
|
509
|
+
columnsUpdated: number;
|
|
510
|
+
columnsAdded: number;
|
|
511
|
+
warnings: string[];
|
|
512
|
+
updatedColumns: {
|
|
513
|
+
id: number;
|
|
514
|
+
name: string;
|
|
515
|
+
}[];
|
|
405
516
|
}
|
|
406
517
|
|
|
407
518
|
interface MetadataTableTemplate extends BaseTimestampedModel {
|
|
@@ -441,6 +552,19 @@ interface MetadataTableTemplateQueryResponse {
|
|
|
441
552
|
previous?: string;
|
|
442
553
|
results: MetadataTableTemplate[];
|
|
443
554
|
}
|
|
555
|
+
interface MetadataTableTemplateSyncRequest {
|
|
556
|
+
add_new?: boolean;
|
|
557
|
+
update_existing?: boolean;
|
|
558
|
+
remove_orphans?: boolean;
|
|
559
|
+
}
|
|
560
|
+
interface MetadataTableTemplateSyncResponse {
|
|
561
|
+
message: string;
|
|
562
|
+
added: number;
|
|
563
|
+
updated: number;
|
|
564
|
+
removed: number;
|
|
565
|
+
errors: string[];
|
|
566
|
+
schemas: string[];
|
|
567
|
+
}
|
|
444
568
|
|
|
445
569
|
interface FavouriteMetadataOption extends BaseTimestampedModel {
|
|
446
570
|
id: number;
|
|
@@ -547,6 +671,21 @@ interface CellOntology {
|
|
|
547
671
|
synonyms?: any;
|
|
548
672
|
crossReferences?: any;
|
|
549
673
|
}
|
|
674
|
+
interface BTOTerm {
|
|
675
|
+
identifier: string;
|
|
676
|
+
name: string;
|
|
677
|
+
synonyms?: any;
|
|
678
|
+
definition?: string;
|
|
679
|
+
xrefs?: any;
|
|
680
|
+
}
|
|
681
|
+
interface DiseaseOntologyTerm {
|
|
682
|
+
identifier: string;
|
|
683
|
+
name: string;
|
|
684
|
+
synonyms?: any;
|
|
685
|
+
definition?: string;
|
|
686
|
+
xrefs?: any;
|
|
687
|
+
}
|
|
688
|
+
type SchemaLayer = 'technology' | 'sample' | 'experiment' | '';
|
|
550
689
|
interface Schema {
|
|
551
690
|
id: number;
|
|
552
691
|
name: string;
|
|
@@ -554,6 +693,12 @@ interface Schema {
|
|
|
554
693
|
description?: string;
|
|
555
694
|
category?: string;
|
|
556
695
|
version?: string;
|
|
696
|
+
extends?: string;
|
|
697
|
+
usableAlone?: boolean;
|
|
698
|
+
layer?: SchemaLayer;
|
|
699
|
+
requires?: any[];
|
|
700
|
+
excludes?: any;
|
|
701
|
+
tags?: string[];
|
|
557
702
|
url?: string;
|
|
558
703
|
isActive: boolean;
|
|
559
704
|
isBuiltin: boolean;
|
|
@@ -561,6 +706,23 @@ interface Schema {
|
|
|
561
706
|
creator?: number;
|
|
562
707
|
creatorUsername?: string;
|
|
563
708
|
columnsCount?: number;
|
|
709
|
+
usageCount?: number;
|
|
710
|
+
}
|
|
711
|
+
interface SchemaColumn {
|
|
712
|
+
id: number;
|
|
713
|
+
columnName: string;
|
|
714
|
+
columnType: string;
|
|
715
|
+
name: string;
|
|
716
|
+
ontologyType: string | null;
|
|
717
|
+
ontologyOptions: string[];
|
|
718
|
+
customOntologyFilters: Record<string, unknown>;
|
|
719
|
+
enableTypeahead: boolean;
|
|
720
|
+
inputType: string;
|
|
721
|
+
possibleDefaultValues: string[];
|
|
722
|
+
units: string[];
|
|
723
|
+
notApplicable: boolean;
|
|
724
|
+
notAvailable: boolean;
|
|
725
|
+
validators: unknown[];
|
|
564
726
|
}
|
|
565
727
|
interface OntologySuggestion {
|
|
566
728
|
id: string;
|
|
@@ -692,6 +854,12 @@ interface ChunkedUploadRequest {
|
|
|
692
854
|
metadataTableId?: number;
|
|
693
855
|
createPools?: boolean;
|
|
694
856
|
replaceExisting?: boolean;
|
|
857
|
+
overrideSampleCount?: boolean;
|
|
858
|
+
validateOnly?: boolean;
|
|
859
|
+
schemaNames?: string[];
|
|
860
|
+
skipOntology?: boolean;
|
|
861
|
+
useOlsCacheOnly?: boolean;
|
|
862
|
+
applySchemaTemplates?: boolean;
|
|
695
863
|
}
|
|
696
864
|
interface ChunkedUploadResponse {
|
|
697
865
|
id: string;
|
|
@@ -706,6 +874,12 @@ interface ChunkedUploadCompletionRequest {
|
|
|
706
874
|
metadataTableId?: number;
|
|
707
875
|
createPools?: boolean;
|
|
708
876
|
replaceExisting?: boolean;
|
|
877
|
+
overrideSampleCount?: boolean;
|
|
878
|
+
validateOnly?: boolean;
|
|
879
|
+
schemaNames?: string[];
|
|
880
|
+
skipOntology?: boolean;
|
|
881
|
+
useOlsCacheOnly?: boolean;
|
|
882
|
+
applySchemaTemplates?: boolean;
|
|
709
883
|
}
|
|
710
884
|
interface ChunkedUploadCompletionResponse {
|
|
711
885
|
message?: string;
|
|
@@ -715,6 +889,31 @@ interface ChunkedUploadCompletionResponse {
|
|
|
715
889
|
taskId?: string;
|
|
716
890
|
}
|
|
717
891
|
|
|
892
|
+
interface ExcelLaunchRequest {
|
|
893
|
+
tableId: number;
|
|
894
|
+
tableName?: string;
|
|
895
|
+
}
|
|
896
|
+
interface ExcelLaunchCode {
|
|
897
|
+
code: string;
|
|
898
|
+
tableId: number;
|
|
899
|
+
tableName?: string;
|
|
900
|
+
expiresIn: number;
|
|
901
|
+
}
|
|
902
|
+
interface ExcelLaunchClaimRequest {
|
|
903
|
+
code: string;
|
|
904
|
+
}
|
|
905
|
+
interface ExcelLaunchClaimResponse {
|
|
906
|
+
accessToken: string;
|
|
907
|
+
refreshToken: string;
|
|
908
|
+
tableId: number;
|
|
909
|
+
tableName?: string;
|
|
910
|
+
user: {
|
|
911
|
+
id: number;
|
|
912
|
+
username: string;
|
|
913
|
+
email: string;
|
|
914
|
+
};
|
|
915
|
+
}
|
|
916
|
+
|
|
718
917
|
interface MetadataTableQueryParams {
|
|
719
918
|
search?: string;
|
|
720
919
|
ownerId?: number;
|
|
@@ -725,6 +924,10 @@ interface MetadataTableQueryParams {
|
|
|
725
924
|
limit?: number;
|
|
726
925
|
offset?: number;
|
|
727
926
|
ordering?: string;
|
|
927
|
+
columnName?: string;
|
|
928
|
+
columnValue?: string;
|
|
929
|
+
columnType?: string;
|
|
930
|
+
columnMatch?: 'contains' | 'exact';
|
|
728
931
|
}
|
|
729
932
|
declare class MetadataTableService extends BaseApiService {
|
|
730
933
|
/**
|
|
@@ -804,6 +1007,18 @@ declare class MetadataTableService extends BaseApiService {
|
|
|
804
1007
|
* Search metadata tables
|
|
805
1008
|
*/
|
|
806
1009
|
searchMetadataTables(query: string): Observable<MetadataTableQueryResponse>;
|
|
1010
|
+
/**
|
|
1011
|
+
* Find tables that contain a column matching the given name and/or value
|
|
1012
|
+
*/
|
|
1013
|
+
findByColumnContent(params: {
|
|
1014
|
+
columnName?: string;
|
|
1015
|
+
columnValue?: string;
|
|
1016
|
+
columnType?: string;
|
|
1017
|
+
columnMatch?: 'contains' | 'exact';
|
|
1018
|
+
showShared?: boolean;
|
|
1019
|
+
limit?: number;
|
|
1020
|
+
offset?: number;
|
|
1021
|
+
}): Observable<MetadataTableQueryResponse>;
|
|
807
1022
|
/**
|
|
808
1023
|
* Get metadata tables by owner
|
|
809
1024
|
*/
|
|
@@ -895,6 +1110,9 @@ declare class MetadataTableService extends BaseApiService {
|
|
|
895
1110
|
staffOnly: boolean;
|
|
896
1111
|
}>;
|
|
897
1112
|
advancedAutofill(id: number, request: AdvancedAutofillRequest): Observable<AdvancedAutofillResponse>;
|
|
1113
|
+
suggestColumnMapping(tableId: number, file: File, algorithm: 'name' | 'position' | 'none'): Observable<ColumnOverrideSuggestResult>;
|
|
1114
|
+
previewColumnOverride(tableId: number, file: File, mapping: ColumnOverrideMappingEntry[], options: ColumnOverrideImportOptions): Observable<ColumnOverridePreviewResult>;
|
|
1115
|
+
commitColumnOverride(tableId: number, file: File, mapping: ColumnOverrideMappingEntry[], options: ColumnOverrideImportOptions): Observable<ColumnOverrideCommitResult>;
|
|
898
1116
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetadataTableService, never>;
|
|
899
1117
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MetadataTableService>;
|
|
900
1118
|
}
|
|
@@ -1236,6 +1454,9 @@ declare class MetadataTableTemplateService extends BaseApiService {
|
|
|
1236
1454
|
schemaIds: number[];
|
|
1237
1455
|
name: string;
|
|
1238
1456
|
description?: string;
|
|
1457
|
+
labGroup?: number | null;
|
|
1458
|
+
visibility?: string;
|
|
1459
|
+
isDefault?: boolean;
|
|
1239
1460
|
}): Observable<{
|
|
1240
1461
|
message: string;
|
|
1241
1462
|
template: MetadataTableTemplate;
|
|
@@ -1248,6 +1469,7 @@ declare class MetadataTableTemplateService extends BaseApiService {
|
|
|
1248
1469
|
name: string;
|
|
1249
1470
|
description?: string;
|
|
1250
1471
|
sampleCount: number;
|
|
1472
|
+
labGroup?: number;
|
|
1251
1473
|
}): Observable<MetadataTable>;
|
|
1252
1474
|
/**
|
|
1253
1475
|
* Create a new metadata table directly from schema definitions
|
|
@@ -1287,6 +1509,11 @@ declare class MetadataTableTemplateService extends BaseApiService {
|
|
|
1287
1509
|
}>;
|
|
1288
1510
|
staffOnly: boolean;
|
|
1289
1511
|
}>;
|
|
1512
|
+
/**
|
|
1513
|
+
* Sync template columns from linked schemas.
|
|
1514
|
+
* Updates existing columns with latest ontology settings and optionally adds new columns.
|
|
1515
|
+
*/
|
|
1516
|
+
syncFromSchemas(id: number, request?: MetadataTableTemplateSyncRequest): Observable<MetadataTableTemplateSyncResponse>;
|
|
1290
1517
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetadataTableTemplateService, never>;
|
|
1291
1518
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MetadataTableTemplateService>;
|
|
1292
1519
|
}
|
|
@@ -1341,12 +1568,20 @@ interface MetadataColumnTemplateQueryParams {
|
|
|
1341
1568
|
labGroupId?: number;
|
|
1342
1569
|
visibility?: string;
|
|
1343
1570
|
isActive?: boolean;
|
|
1571
|
+
isSystemTemplate?: boolean;
|
|
1344
1572
|
schemaId?: number;
|
|
1345
1573
|
sourceSchema?: string;
|
|
1574
|
+
inputType?: string;
|
|
1346
1575
|
limit?: number;
|
|
1347
1576
|
offset?: number;
|
|
1348
1577
|
ordering?: string;
|
|
1349
1578
|
}
|
|
1579
|
+
interface GroupedColumnTemplateQueryParams {
|
|
1580
|
+
search?: string;
|
|
1581
|
+
isSystemTemplate?: boolean;
|
|
1582
|
+
limit?: number;
|
|
1583
|
+
offset?: number;
|
|
1584
|
+
}
|
|
1350
1585
|
declare class MetadataColumnTemplateService extends BaseApiService {
|
|
1351
1586
|
/**
|
|
1352
1587
|
* Get all metadata column templates with optional filtering
|
|
@@ -1425,6 +1660,14 @@ declare class MetadataColumnTemplateService extends BaseApiService {
|
|
|
1425
1660
|
customFilters: any;
|
|
1426
1661
|
hasMore: boolean;
|
|
1427
1662
|
}>;
|
|
1663
|
+
/**
|
|
1664
|
+
* Get column templates grouped by (column_name, column_type)
|
|
1665
|
+
*/
|
|
1666
|
+
getGroupedColumnTemplates(params?: GroupedColumnTemplateQueryParams): Observable<PaginatedResponse<GroupedColumnTemplate>>;
|
|
1667
|
+
/**
|
|
1668
|
+
* Get all templates for a specific column name and type
|
|
1669
|
+
*/
|
|
1670
|
+
getTemplatesByColumnNameAndType(columnName: string, columnType: string): Observable<MetadataColumnTemplate[]>;
|
|
1428
1671
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetadataColumnTemplateService, never>;
|
|
1429
1672
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MetadataColumnTemplateService>;
|
|
1430
1673
|
}
|
|
@@ -1490,14 +1733,6 @@ declare class MetadataManagementService extends BaseApiService {
|
|
|
1490
1733
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MetadataManagementService>;
|
|
1491
1734
|
}
|
|
1492
1735
|
|
|
1493
|
-
declare class Websocket extends WebSocketService {
|
|
1494
|
-
constructor(authService: AuthService);
|
|
1495
|
-
getMetadataTableUpdates(): Observable<WebSocketMessage>;
|
|
1496
|
-
getLabGroupUpdates(): Observable<WebSocketMessage>;
|
|
1497
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Websocket, never>;
|
|
1498
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<Websocket>;
|
|
1499
|
-
}
|
|
1500
|
-
|
|
1501
1736
|
declare enum NotificationType {
|
|
1502
1737
|
SYSTEM = "system",
|
|
1503
1738
|
METADATA_TABLE = "metadata_table",
|
|
@@ -1511,7 +1746,7 @@ declare class NotificationService extends NotificationService$1 {
|
|
|
1511
1746
|
private websocketService;
|
|
1512
1747
|
private isConnected;
|
|
1513
1748
|
readonly isWebSocketConnected: _angular_core.Signal<boolean>;
|
|
1514
|
-
constructor(
|
|
1749
|
+
constructor();
|
|
1515
1750
|
private initializeWebSocket;
|
|
1516
1751
|
private setupNotificationHandlers;
|
|
1517
1752
|
private handleWebSocketMessage;
|
|
@@ -1595,6 +1830,10 @@ declare class SchemaService extends BaseApiService {
|
|
|
1595
1830
|
* Get list of available schemas for creating templates
|
|
1596
1831
|
*/
|
|
1597
1832
|
getAvailableSchemas(): Observable<Schema[]>;
|
|
1833
|
+
/**
|
|
1834
|
+
* Get columns for a schema by its integer ID
|
|
1835
|
+
*/
|
|
1836
|
+
getSchemaColumns(id: number): Observable<SchemaColumn[]>;
|
|
1598
1837
|
/**
|
|
1599
1838
|
* Sync builtin schemas from sdrf-pipelines package (admin only)
|
|
1600
1839
|
*/
|
|
@@ -1679,6 +1918,98 @@ declare class SDRFDefaultsService extends BaseApiService {
|
|
|
1679
1918
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<SDRFDefaultsService>;
|
|
1680
1919
|
}
|
|
1681
1920
|
|
|
1921
|
+
interface ColumnConfig {
|
|
1922
|
+
columnName: string;
|
|
1923
|
+
inputType: ColumnInputType;
|
|
1924
|
+
validators: ColumnValidator[];
|
|
1925
|
+
units: string[];
|
|
1926
|
+
possibleValues: (string | number)[];
|
|
1927
|
+
description: string;
|
|
1928
|
+
schemaName?: string;
|
|
1929
|
+
}
|
|
1930
|
+
declare class OfficialColumnCacheService {
|
|
1931
|
+
private columnTemplateService;
|
|
1932
|
+
private columnsByName;
|
|
1933
|
+
private columnsBySchema;
|
|
1934
|
+
private columnsByKey;
|
|
1935
|
+
private isLoaded;
|
|
1936
|
+
private isLoading;
|
|
1937
|
+
readonly loaded: _angular_core.Signal<boolean>;
|
|
1938
|
+
readonly loading: _angular_core.Signal<boolean>;
|
|
1939
|
+
readonly columnCount: _angular_core.Signal<number>;
|
|
1940
|
+
readonly uniqueColumnNames: _angular_core.Signal<number>;
|
|
1941
|
+
constructor(columnTemplateService: MetadataColumnTemplateService);
|
|
1942
|
+
/**
|
|
1943
|
+
* Initialize the cache by loading all official (system) column templates.
|
|
1944
|
+
* Call this on app initialization or when first needed.
|
|
1945
|
+
*/
|
|
1946
|
+
initialize(): Observable<boolean>;
|
|
1947
|
+
private fetchAllSystemTemplates;
|
|
1948
|
+
/**
|
|
1949
|
+
* Get all column templates with a given name (may exist in multiple schemas).
|
|
1950
|
+
*/
|
|
1951
|
+
getColumns(columnName: string): MetadataColumnTemplate[];
|
|
1952
|
+
/**
|
|
1953
|
+
* Get column template by name and schema.
|
|
1954
|
+
* Use this when you need the exact configuration for a specific schema.
|
|
1955
|
+
*/
|
|
1956
|
+
getColumn(columnName: string, schemaName?: string): MetadataColumnTemplate | undefined;
|
|
1957
|
+
/**
|
|
1958
|
+
* Get column configuration with a simplified interface.
|
|
1959
|
+
* If schema is specified, returns that specific config.
|
|
1960
|
+
* Otherwise returns the first found (typically base schema).
|
|
1961
|
+
*/
|
|
1962
|
+
getColumnConfig(columnName: string, schemaName?: string): ColumnConfig | undefined;
|
|
1963
|
+
/**
|
|
1964
|
+
* Get merged configuration from all schemas for a column.
|
|
1965
|
+
* Combines possible values and units from all schema variants.
|
|
1966
|
+
*/
|
|
1967
|
+
getMergedColumnConfig(columnName: string): ColumnConfig | undefined;
|
|
1968
|
+
/**
|
|
1969
|
+
* Get all columns for a specific schema.
|
|
1970
|
+
*/
|
|
1971
|
+
getColumnsBySchema(schemaName: string): MetadataColumnTemplate[];
|
|
1972
|
+
/**
|
|
1973
|
+
* Get all available schema names.
|
|
1974
|
+
*/
|
|
1975
|
+
getSchemaNames(): string[];
|
|
1976
|
+
/**
|
|
1977
|
+
* Search for columns by partial name match.
|
|
1978
|
+
* Returns all variants across all schemas.
|
|
1979
|
+
*/
|
|
1980
|
+
searchColumns(query: string): MetadataColumnTemplate[];
|
|
1981
|
+
/**
|
|
1982
|
+
* Get columns filtered by input type.
|
|
1983
|
+
*/
|
|
1984
|
+
getColumnsByInputType(inputType: ColumnInputType): MetadataColumnTemplate[];
|
|
1985
|
+
/**
|
|
1986
|
+
* Check if a column exists in official schemas.
|
|
1987
|
+
*/
|
|
1988
|
+
hasColumn(columnName: string): boolean;
|
|
1989
|
+
/**
|
|
1990
|
+
* Get all schemas that define a specific column.
|
|
1991
|
+
*/
|
|
1992
|
+
getSchemasForColumn(columnName: string): string[];
|
|
1993
|
+
/**
|
|
1994
|
+
* Get possible values for a column, merged from all schemas.
|
|
1995
|
+
*/
|
|
1996
|
+
getPossibleValues(columnName: string): (string | number)[];
|
|
1997
|
+
/**
|
|
1998
|
+
* Get units for a number_with_unit column, merged from all schemas.
|
|
1999
|
+
*/
|
|
2000
|
+
getUnits(columnName: string): string[];
|
|
2001
|
+
/**
|
|
2002
|
+
* Clear the cache (useful for testing or forced refresh).
|
|
2003
|
+
*/
|
|
2004
|
+
clear(): void;
|
|
2005
|
+
/**
|
|
2006
|
+
* Force refresh the cache.
|
|
2007
|
+
*/
|
|
2008
|
+
refresh(): Observable<boolean>;
|
|
2009
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OfficialColumnCacheService, never>;
|
|
2010
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<OfficialColumnCacheService>;
|
|
2011
|
+
}
|
|
2012
|
+
|
|
1682
2013
|
declare class AsyncTaskService extends BaseApiService {
|
|
1683
2014
|
/**
|
|
1684
2015
|
* Get all async tasks for the current user with optional filtering
|
|
@@ -1715,6 +2046,24 @@ declare class AsyncExportService extends BaseApiService {
|
|
|
1715
2046
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AsyncExportService>;
|
|
1716
2047
|
}
|
|
1717
2048
|
|
|
2049
|
+
declare class AsyncImportService extends BaseApiService {
|
|
2050
|
+
private chunkedUploadService;
|
|
2051
|
+
constructor();
|
|
2052
|
+
sdrfFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
2053
|
+
excelFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
2054
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AsyncImportService, never>;
|
|
2055
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AsyncImportService>;
|
|
2056
|
+
}
|
|
2057
|
+
|
|
2058
|
+
declare class AsyncValidationService extends BaseApiService {
|
|
2059
|
+
private chunkedUploadService;
|
|
2060
|
+
getAvailableSchemas(): Observable<ValidationSchema[]>;
|
|
2061
|
+
metadataTable(request: MetadataValidationRequest): Observable<AsyncTaskCreateResponse>;
|
|
2062
|
+
sdrfFile(request: SdrfFileValidationRequest): Observable<AsyncTaskCreateResponse>;
|
|
2063
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AsyncValidationService, never>;
|
|
2064
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AsyncValidationService>;
|
|
2065
|
+
}
|
|
2066
|
+
|
|
1718
2067
|
declare class ChunkedUploadService extends BaseApiService {
|
|
1719
2068
|
private siteConfigService;
|
|
1720
2069
|
/**
|
|
@@ -1740,40 +2089,30 @@ declare class ChunkedUploadService extends BaseApiService {
|
|
|
1740
2089
|
/**
|
|
1741
2090
|
* Helper method to upload a file in chunks with progress tracking
|
|
1742
2091
|
*/
|
|
1743
|
-
uploadFileInChunks(file: File, chunkSize?: number,
|
|
1744
|
-
options?: {
|
|
2092
|
+
uploadFileInChunks(file: File, chunkSize?: number, options?: {
|
|
1745
2093
|
metadataTableId?: number;
|
|
1746
2094
|
createPools?: boolean;
|
|
1747
2095
|
replaceExisting?: boolean;
|
|
2096
|
+
overrideSampleCount?: boolean;
|
|
1748
2097
|
uploadSessionId?: string;
|
|
2098
|
+
validateOnly?: boolean;
|
|
2099
|
+
schemaNames?: string[];
|
|
2100
|
+
skipOntology?: boolean;
|
|
2101
|
+
useOlsCacheOnly?: boolean;
|
|
2102
|
+
applySchemaTemplates?: boolean;
|
|
1749
2103
|
onProgress?: (progress: number) => void;
|
|
1750
2104
|
}): Observable<ChunkedUploadCompletionResponse>;
|
|
1751
2105
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChunkedUploadService, never>;
|
|
1752
2106
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ChunkedUploadService>;
|
|
1753
2107
|
}
|
|
1754
2108
|
|
|
1755
|
-
declare class AsyncImportService extends BaseApiService {
|
|
1756
|
-
private chunkedUploadService;
|
|
1757
|
-
constructor(chunkedUploadService: ChunkedUploadService);
|
|
1758
|
-
sdrfFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1759
|
-
excelFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1760
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AsyncImportService, never>;
|
|
1761
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AsyncImportService>;
|
|
1762
|
-
}
|
|
1763
|
-
|
|
1764
|
-
declare class AsyncValidationService extends BaseApiService {
|
|
1765
|
-
getAvailableSchemas(): Observable<ValidationSchema[]>;
|
|
1766
|
-
metadataTable(request: MetadataValidationRequest): Observable<AsyncTaskCreateResponse>;
|
|
1767
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AsyncValidationService, never>;
|
|
1768
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AsyncValidationService>;
|
|
1769
|
-
}
|
|
1770
|
-
|
|
1771
2109
|
interface ChunkedFileImportRequest {
|
|
1772
2110
|
file: File;
|
|
1773
2111
|
metadataTableId: number;
|
|
1774
2112
|
replaceExisting?: boolean;
|
|
1775
2113
|
validateOntologies?: boolean;
|
|
1776
2114
|
createPools?: boolean;
|
|
2115
|
+
applySchemaTemplates?: boolean;
|
|
1777
2116
|
}
|
|
1778
2117
|
interface ChunkedImportProgress {
|
|
1779
2118
|
uploadProgress: number;
|
|
@@ -1782,7 +2121,7 @@ interface ChunkedImportProgress {
|
|
|
1782
2121
|
}
|
|
1783
2122
|
declare class ChunkedImportService extends BaseApiService {
|
|
1784
2123
|
private chunkedUploadService;
|
|
1785
|
-
constructor(
|
|
2124
|
+
constructor();
|
|
1786
2125
|
/**
|
|
1787
2126
|
* Import SDRF file using chunked upload for better performance with large files
|
|
1788
2127
|
*/
|
|
@@ -1912,9 +2251,23 @@ declare class SdrfSyntaxService {
|
|
|
1912
2251
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<SdrfSyntaxService>;
|
|
1913
2252
|
}
|
|
1914
2253
|
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
2254
|
+
declare class Websocket extends WebSocketService {
|
|
2255
|
+
constructor();
|
|
2256
|
+
getMetadataTableUpdates(): Observable<WebSocketMessage>;
|
|
2257
|
+
getLabGroupUpdates(): Observable<WebSocketMessage>;
|
|
2258
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Websocket, never>;
|
|
2259
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<Websocket>;
|
|
2260
|
+
}
|
|
2261
|
+
|
|
2262
|
+
/**
|
|
2263
|
+
* @deprecated Use DesktopService instead. ElectronService is kept for backwards compatibility.
|
|
2264
|
+
*/
|
|
2265
|
+
declare class ElectronService {
|
|
2266
|
+
private desktop;
|
|
2267
|
+
get isElectron(): boolean;
|
|
2268
|
+
get isWails(): boolean;
|
|
2269
|
+
get isDesktop(): boolean;
|
|
2270
|
+
get platform(): string;
|
|
1918
2271
|
getAppVersion(): Promise<string>;
|
|
1919
2272
|
getElectronVersion(): Promise<string>;
|
|
1920
2273
|
minimize(): void;
|
|
@@ -1927,16 +2280,30 @@ interface ElectronAPI {
|
|
|
1927
2280
|
downloadFile(url: string, filename?: string): Promise<string>;
|
|
1928
2281
|
getBackendPort(): Promise<number>;
|
|
1929
2282
|
isBackendReady(): Promise<boolean>;
|
|
1930
|
-
onBackendStatusChange(
|
|
1931
|
-
onWindowStateChange(
|
|
2283
|
+
onBackendStatusChange(): Observable<any>;
|
|
2284
|
+
onWindowStateChange(): Observable<'maximized' | 'unmaximized'>;
|
|
2285
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ElectronService, never>;
|
|
2286
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ElectronService>;
|
|
1932
2287
|
}
|
|
1933
|
-
|
|
1934
|
-
|
|
2288
|
+
|
|
2289
|
+
declare class DesktopService {
|
|
2290
|
+
private ngZone;
|
|
2291
|
+
private readonly _runtime;
|
|
2292
|
+
private backendStatusSubject;
|
|
2293
|
+
private windowStateSubject;
|
|
2294
|
+
private wailsRuntime;
|
|
1935
2295
|
constructor();
|
|
2296
|
+
private loadWailsRuntime;
|
|
2297
|
+
private hasElectron;
|
|
2298
|
+
private hasWails;
|
|
2299
|
+
get runtime(): DesktopRuntime;
|
|
2300
|
+
get isDesktop(): boolean;
|
|
1936
2301
|
get isElectron(): boolean;
|
|
2302
|
+
get isWails(): boolean;
|
|
1937
2303
|
get platform(): string;
|
|
2304
|
+
private setupWailsListeners;
|
|
1938
2305
|
getAppVersion(): Promise<string>;
|
|
1939
|
-
|
|
2306
|
+
getRuntimeVersion(): Promise<string>;
|
|
1940
2307
|
minimize(): void;
|
|
1941
2308
|
maximize(): void;
|
|
1942
2309
|
close(): void;
|
|
@@ -1949,8 +2316,16 @@ declare class ElectronService {
|
|
|
1949
2316
|
isBackendReady(): Promise<boolean>;
|
|
1950
2317
|
onBackendStatusChange(): Observable<any>;
|
|
1951
2318
|
onWindowStateChange(): Observable<'maximized' | 'unmaximized'>;
|
|
1952
|
-
|
|
1953
|
-
static
|
|
2319
|
+
logToFile(message: string): Promise<void>;
|
|
2320
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DesktopService, never>;
|
|
2321
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DesktopService>;
|
|
2322
|
+
}
|
|
2323
|
+
|
|
2324
|
+
declare class ExcelLaunchService extends BaseApiService {
|
|
2325
|
+
createLaunchCode(request: ExcelLaunchRequest): Observable<ExcelLaunchCode>;
|
|
2326
|
+
claimLaunchCode(code: string): Observable<ExcelLaunchClaimResponse>;
|
|
2327
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ExcelLaunchService, never>;
|
|
2328
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ExcelLaunchService>;
|
|
1954
2329
|
}
|
|
1955
2330
|
|
|
1956
2331
|
declare class SdrfAgeInput implements OnInit {
|
|
@@ -1960,6 +2335,7 @@ declare class SdrfAgeInput implements OnInit {
|
|
|
1960
2335
|
private sdrfSyntax;
|
|
1961
2336
|
ageForm: FormGroup;
|
|
1962
2337
|
isRange: boolean;
|
|
2338
|
+
constructor();
|
|
1963
2339
|
ngOnInit(): void;
|
|
1964
2340
|
private parseAndSetValue;
|
|
1965
2341
|
private updateValue;
|
|
@@ -1988,6 +2364,7 @@ declare class SdrfModificationInput implements OnInit {
|
|
|
1988
2364
|
showSpecifications: _angular_core.WritableSignal<boolean>;
|
|
1989
2365
|
showHiddenSpecifications: _angular_core.WritableSignal<boolean>;
|
|
1990
2366
|
hiddenSpecificationCount: _angular_core.WritableSignal<number>;
|
|
2367
|
+
constructor();
|
|
1991
2368
|
ngOnInit(): void;
|
|
1992
2369
|
private parseAndSetValue;
|
|
1993
2370
|
private getStringValue;
|
|
@@ -2017,6 +2394,7 @@ declare class SdrfSpikedCompoundInput implements OnInit {
|
|
|
2017
2394
|
private sdrfSyntax;
|
|
2018
2395
|
spikedForm: FormGroup;
|
|
2019
2396
|
compoundTypes: string[];
|
|
2397
|
+
constructor();
|
|
2020
2398
|
ngOnInit(): void;
|
|
2021
2399
|
private parseAndSetValue;
|
|
2022
2400
|
private getStringValue;
|
|
@@ -2038,6 +2416,7 @@ declare class SdrfCleavageInput implements OnInit {
|
|
|
2038
2416
|
private metadataColumnService;
|
|
2039
2417
|
private metadataColumnTemplateService;
|
|
2040
2418
|
cleavageForm: FormGroup;
|
|
2419
|
+
constructor();
|
|
2041
2420
|
ngOnInit(): void;
|
|
2042
2421
|
private parseAndSetValue;
|
|
2043
2422
|
private getStringValue;
|
|
@@ -2050,6 +2429,45 @@ declare class SdrfCleavageInput implements OnInit {
|
|
|
2050
2429
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdrfCleavageInput, "ccv-sdrf-cleavage-input", never, { "value": { "alias": "value"; "required": false; }; "templateId": { "alias": "templateId"; "required": false; }; "columnId": { "alias": "columnId"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2051
2430
|
}
|
|
2052
2431
|
|
|
2432
|
+
declare class SdrfNumberWithUnitInput implements OnInit, OnChanges {
|
|
2433
|
+
private fb;
|
|
2434
|
+
value: string;
|
|
2435
|
+
units: string[];
|
|
2436
|
+
placeholder: string;
|
|
2437
|
+
description: string;
|
|
2438
|
+
examples: (string | number)[];
|
|
2439
|
+
valueChange: EventEmitter<string>;
|
|
2440
|
+
form: FormGroup;
|
|
2441
|
+
constructor(fb: FormBuilder);
|
|
2442
|
+
ngOnInit(): void;
|
|
2443
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2444
|
+
private parseAndSetValue;
|
|
2445
|
+
private updateValue;
|
|
2446
|
+
selectExample(example: string | number): void;
|
|
2447
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdrfNumberWithUnitInput, never>;
|
|
2448
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdrfNumberWithUnitInput, "ccv-sdrf-number-with-unit-input", never, { "value": { "alias": "value"; "required": false; }; "units": { "alias": "units"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "description": { "alias": "description"; "required": false; }; "examples": { "alias": "examples"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2449
|
+
}
|
|
2450
|
+
|
|
2451
|
+
declare class SdrfSelectInput implements OnInit, OnChanges {
|
|
2452
|
+
value: string;
|
|
2453
|
+
options: string[];
|
|
2454
|
+
placeholder: string;
|
|
2455
|
+
description: string;
|
|
2456
|
+
allowCustom: boolean;
|
|
2457
|
+
valueChange: EventEmitter<string>;
|
|
2458
|
+
selectedValue: _angular_core.WritableSignal<string>;
|
|
2459
|
+
isCustomMode: _angular_core.WritableSignal<boolean>;
|
|
2460
|
+
customValue: _angular_core.WritableSignal<string>;
|
|
2461
|
+
ngOnInit(): void;
|
|
2462
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2463
|
+
private initializeValue;
|
|
2464
|
+
onSelectionChange(value: string): void;
|
|
2465
|
+
onCustomValueChange(value: string): void;
|
|
2466
|
+
toggleCustomMode(): void;
|
|
2467
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdrfSelectInput, never>;
|
|
2468
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdrfSelectInput, "ccv-sdrf-select-input", never, { "value": { "alias": "value"; "required": false; }; "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "description": { "alias": "description"; "required": false; }; "allowCustom": { "alias": "allowCustom"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2469
|
+
}
|
|
2470
|
+
|
|
2053
2471
|
interface MetadataValueEditConfig {
|
|
2054
2472
|
columnId?: number;
|
|
2055
2473
|
columnName: string;
|
|
@@ -2071,6 +2489,10 @@ interface MetadataValueEditConfig {
|
|
|
2071
2489
|
maxSampleCount?: number;
|
|
2072
2490
|
allowNotApplicable?: boolean;
|
|
2073
2491
|
allowNotAvailable?: boolean;
|
|
2492
|
+
inputType?: ColumnInputType;
|
|
2493
|
+
validators?: ColumnValidator[];
|
|
2494
|
+
units?: string[];
|
|
2495
|
+
possibleDefaultValues?: (string | number)[];
|
|
2074
2496
|
}
|
|
2075
2497
|
declare class MetadataValueEditModal implements OnInit {
|
|
2076
2498
|
private fb;
|
|
@@ -2102,10 +2524,17 @@ declare class MetadataValueEditModal implements OnInit {
|
|
|
2102
2524
|
specialSyntaxType: _angular_core.WritableSignal<SyntaxType | null>;
|
|
2103
2525
|
showSpecialInput: _angular_core.WritableSignal<boolean>;
|
|
2104
2526
|
specialInputValue: _angular_core.WritableSignal<string>;
|
|
2527
|
+
validatorInputType: _angular_core.WritableSignal<ColumnInputType | null>;
|
|
2528
|
+
validatorUnits: _angular_core.WritableSignal<string[]>;
|
|
2529
|
+
validatorOptions: _angular_core.WritableSignal<string[]>;
|
|
2530
|
+
validatorDescription: _angular_core.WritableSignal<string>;
|
|
2531
|
+
validatorExamples: _angular_core.WritableSignal<(string | number)[]>;
|
|
2105
2532
|
selectedSampleIndices: _angular_core.WritableSignal<Set<number>>;
|
|
2106
2533
|
showSamplePanel: _angular_core.WritableSignal<boolean>;
|
|
2107
2534
|
constructor(fb: FormBuilder, activeModal: NgbActiveModal, authService: AuthService, favouriteMetadataOptionService: FavouriteMetadataOptionService, metadataColumnService: MetadataColumnService, metadataColumnTemplateService: MetadataColumnTemplateService, labGroupService: LabGroupService, ontologySearchService: OntologySearchService);
|
|
2108
2535
|
ngOnInit(): void;
|
|
2536
|
+
private initializeValidatorInputType;
|
|
2537
|
+
onValidatorInputChange(value: string): void;
|
|
2109
2538
|
onCancel(): void;
|
|
2110
2539
|
onClose(): void;
|
|
2111
2540
|
get title(): string;
|
|
@@ -2270,9 +2699,9 @@ declare class AsyncTaskUIService implements OnDestroy {
|
|
|
2270
2699
|
private toastService;
|
|
2271
2700
|
private asyncTaskMonitor;
|
|
2272
2701
|
private modalService;
|
|
2273
|
-
private
|
|
2274
|
-
tasks
|
|
2275
|
-
activeTasks
|
|
2702
|
+
private desktopService;
|
|
2703
|
+
tasks: _angular_core.Signal<AsyncTaskStatus[]>;
|
|
2704
|
+
activeTasks: _angular_core.Signal<AsyncTaskStatus[]>;
|
|
2276
2705
|
metadataTableRefresh$: Observable<number>;
|
|
2277
2706
|
taskCompleted$: Observable<AsyncTaskStatus>;
|
|
2278
2707
|
exportTaskCompleted$: Observable<AsyncTaskStatus>;
|
|
@@ -2370,6 +2799,11 @@ declare class MetadataTableTemplates implements OnInit {
|
|
|
2370
2799
|
* Perform the actual template column reordering with async task monitoring
|
|
2371
2800
|
*/
|
|
2372
2801
|
private performTemplateColumnReorder;
|
|
2802
|
+
/**
|
|
2803
|
+
* Sync template columns from linked schemas.
|
|
2804
|
+
* Updates columns with latest ontology settings and adds new columns from schemas.
|
|
2805
|
+
*/
|
|
2806
|
+
syncTemplateFromSchemas(template: MetadataTableTemplate): void;
|
|
2373
2807
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetadataTableTemplates, never>;
|
|
2374
2808
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetadataTableTemplates, "ccv-metadata-table-templates", never, {}, {}, never, never, true, never>;
|
|
2375
2809
|
}
|
|
@@ -2434,7 +2868,9 @@ declare class ColumnEditModal implements OnInit {
|
|
|
2434
2868
|
private activeModal;
|
|
2435
2869
|
private modalService;
|
|
2436
2870
|
private metadataColumnTemplateService;
|
|
2871
|
+
private schemaService;
|
|
2437
2872
|
private sdrfSyntaxService;
|
|
2873
|
+
private officialColumnCache;
|
|
2438
2874
|
column: MetadataColumn | null;
|
|
2439
2875
|
templateId: number | null;
|
|
2440
2876
|
isEdit: boolean;
|
|
@@ -2455,13 +2891,13 @@ declare class ColumnEditModal implements OnInit {
|
|
|
2455
2891
|
totalTemplates: number;
|
|
2456
2892
|
totalTemplatePages: number;
|
|
2457
2893
|
Math: Math;
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2894
|
+
showSystemTemplatesOnly: boolean;
|
|
2895
|
+
selectedSchemaFilter: string;
|
|
2896
|
+
availableSchemas: Schema[];
|
|
2897
|
+
validationError: _angular_core.WritableSignal<string | null>;
|
|
2462
2898
|
showTemplateSwap: boolean;
|
|
2463
2899
|
showCreateCustomTemplate: boolean;
|
|
2464
|
-
constructor(fb: FormBuilder, activeModal: NgbActiveModal, modalService: NgbModal, metadataColumnTemplateService: MetadataColumnTemplateService, sdrfSyntaxService: SdrfSyntaxService);
|
|
2900
|
+
constructor(fb: FormBuilder, activeModal: NgbActiveModal, modalService: NgbModal, metadataColumnTemplateService: MetadataColumnTemplateService, schemaService: SchemaService, sdrfSyntaxService: SdrfSyntaxService, officialColumnCache: OfficialColumnCacheService);
|
|
2465
2901
|
ngOnInit(): void;
|
|
2466
2902
|
private populateForm;
|
|
2467
2903
|
private getOntologyTypeIndex;
|
|
@@ -2476,17 +2912,15 @@ declare class ColumnEditModal implements OnInit {
|
|
|
2476
2912
|
openValueEditModal(): void;
|
|
2477
2913
|
setDefaultValue(value: string): void;
|
|
2478
2914
|
private loadColumnTemplates;
|
|
2915
|
+
private loadAvailableSchemas;
|
|
2916
|
+
toggleSystemTemplatesFilter(systemOnly: boolean): void;
|
|
2917
|
+
onSchemaFilterChange(schema: string): void;
|
|
2479
2918
|
onTemplateFilterChange(): void;
|
|
2480
2919
|
clearTemplateFilter(): void;
|
|
2481
2920
|
onTemplatePageChange(page: number): void;
|
|
2482
2921
|
onTemplateSelectionChange(): void;
|
|
2483
2922
|
clearTemplate(): void;
|
|
2484
2923
|
getOntologyTypeLabel(ontologyType: string): string;
|
|
2485
|
-
toggleOfficialColumns(): void;
|
|
2486
|
-
selectOfficialColumn(column: SdrfColumnConfig): void;
|
|
2487
|
-
private filterOfficialColumns;
|
|
2488
|
-
private getOntologyConfigForColumn;
|
|
2489
|
-
private isColumnMandatory;
|
|
2490
2924
|
showTemplateSwapOptions(): void;
|
|
2491
2925
|
swapToTemplate(template: MetadataColumnTemplate): void;
|
|
2492
2926
|
showCreateCustomTemplateOption(): void;
|
|
@@ -2495,6 +2929,7 @@ declare class ColumnEditModal implements OnInit {
|
|
|
2495
2929
|
toggleAdvancedMode(): void;
|
|
2496
2930
|
onOntologyTypeChange(event: Event): void;
|
|
2497
2931
|
private getCorrectedColumnType;
|
|
2932
|
+
private getOntologyConfigForColumn;
|
|
2498
2933
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColumnEditModal, never>;
|
|
2499
2934
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColumnEditModal, "ccv-column-edit-modal", never, { "column": { "alias": "column"; "required": false; }; "templateId": { "alias": "templateId"; "required": false; }; "isEdit": { "alias": "isEdit"; "required": false; }; }, { "columnSaved": "columnSaved"; }, never, never, true, never>;
|
|
2500
2935
|
}
|
|
@@ -2503,26 +2938,48 @@ interface TemplateSchemaSelectionResult {
|
|
|
2503
2938
|
name: string;
|
|
2504
2939
|
description: string;
|
|
2505
2940
|
schemaIds: number[];
|
|
2506
|
-
|
|
2941
|
+
labGroup?: number;
|
|
2507
2942
|
visibility: ResourceVisibility;
|
|
2508
2943
|
isDefault: boolean;
|
|
2509
2944
|
}
|
|
2510
|
-
|
|
2945
|
+
interface SchemasByLayer {
|
|
2946
|
+
technology: Schema[];
|
|
2947
|
+
sample: Schema[];
|
|
2948
|
+
experiment: Schema[];
|
|
2949
|
+
other: Schema[];
|
|
2950
|
+
}
|
|
2951
|
+
declare class TemplateSchemaSelectionModal implements OnInit {
|
|
2511
2952
|
private fb;
|
|
2512
2953
|
activeModal: NgbActiveModal;
|
|
2513
|
-
|
|
2954
|
+
private _availableSchemas;
|
|
2955
|
+
set availableSchemas(value: Schema[]);
|
|
2956
|
+
get availableSchemas(): Schema[];
|
|
2514
2957
|
labGroups: any[];
|
|
2515
2958
|
templateCreated: EventEmitter<TemplateSchemaSelectionResult>;
|
|
2516
2959
|
templateForm: FormGroup;
|
|
2517
2960
|
selectedSchemas: _angular_core.WritableSignal<Set<number>>;
|
|
2961
|
+
schemasByLayer: _angular_core.WritableSignal<SchemasByLayer>;
|
|
2962
|
+
layerInfo: Record<string, {
|
|
2963
|
+
label: string;
|
|
2964
|
+
icon: string;
|
|
2965
|
+
description: string;
|
|
2966
|
+
color: string;
|
|
2967
|
+
}>;
|
|
2518
2968
|
selectedSchemasCount: _angular_core.Signal<number>;
|
|
2519
2969
|
constructor(fb: FormBuilder, activeModal: NgbActiveModal);
|
|
2970
|
+
ngOnInit(): void;
|
|
2971
|
+
private groupSchemasByLayer;
|
|
2972
|
+
getLayerKeys(): string[];
|
|
2973
|
+
hasLayerSchemas(layer: string): boolean;
|
|
2974
|
+
getLayerSchemas(layer: string): Schema[];
|
|
2520
2975
|
toggleSchema(schemaId: number): void;
|
|
2521
2976
|
onSchemaCheckChange(event: Event, schemaId: number): void;
|
|
2522
2977
|
isSchemaSelected(schemaId: number): boolean;
|
|
2523
2978
|
getSelectedSchemas(): number[];
|
|
2524
2979
|
removeSchema(schemaId: number): void;
|
|
2980
|
+
getSchemaById(schemaId: number): Schema | undefined;
|
|
2525
2981
|
getSchemaDisplayName(schemaId: number): string;
|
|
2982
|
+
getSchemaLayer(schemaId: number): string;
|
|
2526
2983
|
private updateDescription;
|
|
2527
2984
|
canCreateTemplate(): boolean;
|
|
2528
2985
|
onCreateTemplate(): void;
|
|
@@ -2536,14 +2993,14 @@ interface TableCreationData {
|
|
|
2536
2993
|
templateId: number;
|
|
2537
2994
|
sampleCount?: number;
|
|
2538
2995
|
description?: string;
|
|
2539
|
-
|
|
2996
|
+
labGroup?: number;
|
|
2540
2997
|
}
|
|
2541
2998
|
declare class TableCreationModalComponent implements OnInit {
|
|
2542
2999
|
private fb;
|
|
2543
3000
|
activeModal: NgbActiveModal;
|
|
2544
3001
|
template: MetadataTableTemplate;
|
|
2545
3002
|
labGroups: LabGroup[];
|
|
2546
|
-
|
|
3003
|
+
selectedLabGroup?: number;
|
|
2547
3004
|
tableCreated: EventEmitter<TableCreationData>;
|
|
2548
3005
|
tableForm: FormGroup;
|
|
2549
3006
|
isCreating: boolean;
|
|
@@ -2557,7 +3014,7 @@ declare class TableCreationModalComponent implements OnInit {
|
|
|
2557
3014
|
getFieldError(fieldName: string): string | null;
|
|
2558
3015
|
private getFieldLabel;
|
|
2559
3016
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableCreationModalComponent, never>;
|
|
2560
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableCreationModalComponent, "ccv-table-creation-modal", never, { "template": { "alias": "template"; "required": false; }; "labGroups": { "alias": "labGroups"; "required": false; }; "
|
|
3017
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableCreationModalComponent, "ccv-table-creation-modal", never, { "template": { "alias": "template"; "required": false; }; "labGroups": { "alias": "labGroups"; "required": false; }; "selectedLabGroup": { "alias": "selectedLabGroup"; "required": false; }; }, { "tableCreated": "tableCreated"; }, never, never, true, never>;
|
|
2561
3018
|
}
|
|
2562
3019
|
|
|
2563
3020
|
interface SchemaSelectionResult {
|
|
@@ -2610,6 +3067,7 @@ declare class ColumnTemplates implements OnInit {
|
|
|
2610
3067
|
columnFilter: _angular_core.WritableSignal<string>;
|
|
2611
3068
|
sortField: _angular_core.WritableSignal<string>;
|
|
2612
3069
|
sortDirection: _angular_core.WritableSignal<"asc" | "desc">;
|
|
3070
|
+
viewMode: _angular_core.WritableSignal<"flat" | "grouped">;
|
|
2613
3071
|
templatesData: _angular_core.WritableSignal<{
|
|
2614
3072
|
count: number;
|
|
2615
3073
|
results: MetadataColumnTemplate[];
|
|
@@ -2619,11 +3077,23 @@ declare class ColumnTemplates implements OnInit {
|
|
|
2619
3077
|
selectedSchema: _angular_core.WritableSignal<Schema | null>;
|
|
2620
3078
|
schemaSearchText: string;
|
|
2621
3079
|
schemaTypeFilter: _angular_core.WritableSignal<"user" | "all" | "builtin">;
|
|
3080
|
+
groupedTemplatesData: _angular_core.WritableSignal<{
|
|
3081
|
+
count: number;
|
|
3082
|
+
results: GroupedColumnTemplate[];
|
|
3083
|
+
}>;
|
|
3084
|
+
expandedGroups: _angular_core.WritableSignal<Set<string>>;
|
|
3085
|
+
groupTemplatesCache: _angular_core.WritableSignal<Map<string, MetadataColumnTemplate[]>>;
|
|
3086
|
+
loadingGroups: _angular_core.WritableSignal<Set<string>>;
|
|
3087
|
+
isLoadingGrouped: _angular_core.WritableSignal<boolean>;
|
|
3088
|
+
groupedCurrentPage: _angular_core.WritableSignal<number>;
|
|
3089
|
+
groupedPageSize: _angular_core.WritableSignal<number>;
|
|
2622
3090
|
hasTemplates: _angular_core.Signal<boolean>;
|
|
2623
3091
|
hasLabGroups: _angular_core.Signal<boolean>;
|
|
2624
3092
|
hasSchemas: _angular_core.Signal<boolean>;
|
|
2625
3093
|
showTemplatesPagination: _angular_core.Signal<boolean>;
|
|
2626
3094
|
showLabGroupsPagination: _angular_core.Signal<boolean>;
|
|
3095
|
+
hasGroupedTemplates: _angular_core.Signal<boolean>;
|
|
3096
|
+
showGroupedPagination: _angular_core.Signal<boolean>;
|
|
2627
3097
|
filteredTemplates: _angular_core.Signal<MetadataColumnTemplate[]>;
|
|
2628
3098
|
constructor(fb: FormBuilder, metadataColumnTemplateService: MetadataColumnTemplateService, labGroupService: LabGroupService, schemaService: SchemaService, modalService: NgbModal);
|
|
2629
3099
|
ngOnInit(): void;
|
|
@@ -2658,6 +3128,17 @@ declare class ColumnTemplates implements OnInit {
|
|
|
2658
3128
|
deleteTemplate(template: MetadataColumnTemplate): void;
|
|
2659
3129
|
duplicateTemplate(template: MetadataColumnTemplate): void;
|
|
2660
3130
|
private refreshTemplates;
|
|
3131
|
+
setViewMode(mode: 'flat' | 'grouped'): void;
|
|
3132
|
+
private loadGroupedTemplates;
|
|
3133
|
+
onGroupedPageChange(page: number): void;
|
|
3134
|
+
getGroupKey(group: GroupedColumnTemplate): string;
|
|
3135
|
+
isGroupExpanded(group: GroupedColumnTemplate): boolean;
|
|
3136
|
+
isGroupLoading(group: GroupedColumnTemplate): boolean;
|
|
3137
|
+
toggleGroup(group: GroupedColumnTemplate): void;
|
|
3138
|
+
private loadGroupTemplates;
|
|
3139
|
+
getGroupTemplates(group: GroupedColumnTemplate): MetadataColumnTemplate[];
|
|
3140
|
+
collapseAllGroups(): void;
|
|
3141
|
+
expandAllGroups(): void;
|
|
2661
3142
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColumnTemplates, never>;
|
|
2662
3143
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColumnTemplates, "ccv-column-templates", never, {}, {}, never, never, true, never>;
|
|
2663
3144
|
}
|
|
@@ -2705,13 +3186,6 @@ declare class ColumnTemplateEditModal implements OnInit {
|
|
|
2705
3186
|
}
|
|
2706
3187
|
|
|
2707
3188
|
declare class FavoriteManagement implements OnInit {
|
|
2708
|
-
private fb;
|
|
2709
|
-
private favouriteMetadataOptionService;
|
|
2710
|
-
private metadataColumnTemplateService;
|
|
2711
|
-
private labGroupService;
|
|
2712
|
-
private toastService;
|
|
2713
|
-
private modalService;
|
|
2714
|
-
private authService;
|
|
2715
3189
|
Math: Math;
|
|
2716
3190
|
isLoading: _angular_core.WritableSignal<boolean>;
|
|
2717
3191
|
favorites: _angular_core.WritableSignal<FavouriteMetadataOption[]>;
|
|
@@ -2731,10 +3205,17 @@ declare class FavoriteManagement implements OnInit {
|
|
|
2731
3205
|
editingFavorite: _angular_core.WritableSignal<FavouriteMetadataOption | null>;
|
|
2732
3206
|
showEditModal: _angular_core.WritableSignal<boolean>;
|
|
2733
3207
|
private sdrfSyntaxService;
|
|
3208
|
+
private fb;
|
|
3209
|
+
private favouriteMetadataOptionService;
|
|
3210
|
+
private metadataColumnTemplateService;
|
|
3211
|
+
private labGroupService;
|
|
3212
|
+
private toastService;
|
|
3213
|
+
private modalService;
|
|
3214
|
+
private authService;
|
|
2734
3215
|
specialSyntaxType: _angular_core.WritableSignal<SyntaxType | null>;
|
|
2735
3216
|
showSpecialInput: _angular_core.WritableSignal<boolean>;
|
|
2736
3217
|
specialInputValue: _angular_core.WritableSignal<string>;
|
|
2737
|
-
currentUser: _angular_core.
|
|
3218
|
+
currentUser: _angular_core.Signal<User | null>;
|
|
2738
3219
|
isAdmin: _angular_core.Signal<boolean>;
|
|
2739
3220
|
currentUserId: _angular_core.Signal<number | null>;
|
|
2740
3221
|
userLabGroups: _angular_core.WritableSignal<LabGroup[]>;
|
|
@@ -2754,7 +3235,7 @@ declare class FavoriteManagement implements OnInit {
|
|
|
2754
3235
|
value: string;
|
|
2755
3236
|
label: string;
|
|
2756
3237
|
}[];
|
|
2757
|
-
constructor(
|
|
3238
|
+
constructor();
|
|
2758
3239
|
ngOnInit(): void;
|
|
2759
3240
|
loadFavorites(): void;
|
|
2760
3241
|
canEditFavorite(favorite: FavouriteMetadataOption): boolean;
|
|
@@ -2857,6 +3338,7 @@ declare class MetadataTableDetails implements OnInit, OnDestroy {
|
|
|
2857
3338
|
private toastService;
|
|
2858
3339
|
private asyncTaskService;
|
|
2859
3340
|
private modalService;
|
|
3341
|
+
private officialColumnCache;
|
|
2860
3342
|
private destroy$;
|
|
2861
3343
|
fileInput: ElementRef<HTMLInputElement>;
|
|
2862
3344
|
excelInput: ElementRef<HTMLInputElement>;
|
|
@@ -2869,6 +3351,8 @@ declare class MetadataTableDetails implements OnInit, OnDestroy {
|
|
|
2869
3351
|
getSortIcon(field: string): string;
|
|
2870
3352
|
isSorted(field: string): boolean;
|
|
2871
3353
|
isLoading: _angular_core.WritableSignal<boolean>;
|
|
3354
|
+
overrideSampleCount: _angular_core.WritableSignal<boolean>;
|
|
3355
|
+
applySchemaTemplates: _angular_core.WritableSignal<boolean>;
|
|
2872
3356
|
table: _angular_core.WritableSignal<MetadataTable | null>;
|
|
2873
3357
|
tableId: _angular_core.WritableSignal<number | null>;
|
|
2874
3358
|
viewMode: _angular_core.WritableSignal<"list" | "table">;
|
|
@@ -2886,7 +3370,7 @@ declare class MetadataTableDetails implements OnInit, OnDestroy {
|
|
|
2886
3370
|
poolTableRows: _angular_core.Signal<any[]>;
|
|
2887
3371
|
paginatedRows: _angular_core.Signal<any[]>;
|
|
2888
3372
|
totalPages: _angular_core.Signal<number>;
|
|
2889
|
-
constructor(route: ActivatedRoute, router: Router, metadataTableService: MetadataTableService, asyncExportService: AsyncExportService, chunkedUploadService: ChunkedUploadService, samplePoolService: SamplePoolService, metadataColumnService: MetadataColumnService, toastService: ToastService, asyncTaskService: AsyncTaskUIService, modalService: NgbModal);
|
|
3373
|
+
constructor(route: ActivatedRoute, router: Router, metadataTableService: MetadataTableService, asyncExportService: AsyncExportService, chunkedUploadService: ChunkedUploadService, samplePoolService: SamplePoolService, metadataColumnService: MetadataColumnService, toastService: ToastService, asyncTaskService: AsyncTaskUIService, modalService: NgbModal, officialColumnCache: OfficialColumnCacheService);
|
|
2890
3374
|
ngOnInit(): void;
|
|
2891
3375
|
ngOnDestroy(): void;
|
|
2892
3376
|
private setupAsyncTaskRefreshListener;
|
|
@@ -2931,6 +3415,7 @@ declare class MetadataTableDetails implements OnInit, OnDestroy {
|
|
|
2931
3415
|
viewColumnDetails(column: MetadataColumn): void;
|
|
2932
3416
|
editColumnSettings(column: MetadataColumn): void;
|
|
2933
3417
|
openColumnHistory(column: MetadataColumn): void;
|
|
3418
|
+
openColumnOverrideImportModal(): void;
|
|
2934
3419
|
private updateColumnSettings;
|
|
2935
3420
|
editPoolColumnValue(pool: SamplePool, column: any): void;
|
|
2936
3421
|
editSampleColumnValue(column: MetadataColumn, sampleIndex: number): void;
|
|
@@ -3103,18 +3588,17 @@ interface ColumnHistoryModalConfig {
|
|
|
3103
3588
|
columnName: string;
|
|
3104
3589
|
}
|
|
3105
3590
|
declare class MetadataColumnHistoryModal implements OnInit {
|
|
3106
|
-
activeModal: NgbActiveModal;
|
|
3107
|
-
private columnService;
|
|
3108
3591
|
config: ColumnHistoryModalConfig;
|
|
3109
3592
|
closed: EventEmitter<void>;
|
|
3110
|
-
history: MetadataColumnHistoryRecord[]
|
|
3111
|
-
loading: boolean
|
|
3112
|
-
error: string | null
|
|
3113
|
-
totalCount: number
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3593
|
+
readonly history: _angular_core.WritableSignal<MetadataColumnHistoryRecord[]>;
|
|
3594
|
+
readonly loading: _angular_core.WritableSignal<boolean>;
|
|
3595
|
+
readonly error: _angular_core.WritableSignal<string | null>;
|
|
3596
|
+
readonly totalCount: _angular_core.WritableSignal<number>;
|
|
3597
|
+
readonly hasMore: _angular_core.WritableSignal<boolean>;
|
|
3598
|
+
private limit;
|
|
3599
|
+
private offset;
|
|
3600
|
+
readonly activeModal: NgbActiveModal;
|
|
3601
|
+
private columnService;
|
|
3118
3602
|
ngOnInit(): void;
|
|
3119
3603
|
loadHistory(): void;
|
|
3120
3604
|
loadMore(): void;
|
|
@@ -3126,10 +3610,88 @@ declare class MetadataColumnHistoryModal implements OnInit {
|
|
|
3126
3610
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetadataColumnHistoryModal, "ccv-metadata-column-history-modal", never, { "config": { "alias": "config"; "required": false; }; }, { "closed": "closed"; }, never, never, true, never>;
|
|
3127
3611
|
}
|
|
3128
3612
|
|
|
3613
|
+
declare class OpenInExcel {
|
|
3614
|
+
private launchService;
|
|
3615
|
+
readonly tableId: _angular_core.InputSignal<number>;
|
|
3616
|
+
readonly tableName: _angular_core.InputSignal<string>;
|
|
3617
|
+
readonly buttonClass: _angular_core.InputSignal<string>;
|
|
3618
|
+
readonly showIcon: _angular_core.InputSignal<boolean>;
|
|
3619
|
+
readonly buttonText: _angular_core.InputSignal<string>;
|
|
3620
|
+
readonly launched: _angular_core.OutputEmitterRef<ExcelLaunchCode>;
|
|
3621
|
+
readonly error: _angular_core.OutputEmitterRef<string>;
|
|
3622
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
3623
|
+
readonly launchCode: _angular_core.WritableSignal<ExcelLaunchCode | null>;
|
|
3624
|
+
readonly showModal: _angular_core.WritableSignal<boolean>;
|
|
3625
|
+
readonly copySuccess: _angular_core.WritableSignal<boolean>;
|
|
3626
|
+
createLaunchCode(): void;
|
|
3627
|
+
copyCode(): void;
|
|
3628
|
+
closeModal(): void;
|
|
3629
|
+
getExpiryTime(): string;
|
|
3630
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OpenInExcel, never>;
|
|
3631
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OpenInExcel, "ccv-open-in-excel", never, { "tableId": { "alias": "tableId"; "required": true; "isSignal": true; }; "tableName": { "alias": "tableName"; "required": false; "isSignal": true; }; "buttonClass": { "alias": "buttonClass"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "buttonText": { "alias": "buttonText"; "required": false; "isSignal": true; }; }, { "launched": "launched"; "error": "error"; }, never, never, true, never>;
|
|
3632
|
+
}
|
|
3633
|
+
|
|
3634
|
+
interface ColumnOverrideImportModalConfig {
|
|
3635
|
+
tableId: number;
|
|
3636
|
+
tableName: string;
|
|
3637
|
+
sampleCount: number;
|
|
3638
|
+
}
|
|
3639
|
+
type Step = 'upload' | 'map' | 'preview' | 'confirming' | 'done';
|
|
3640
|
+
declare class ColumnOverrideImportModal {
|
|
3641
|
+
config: ColumnOverrideImportModalConfig;
|
|
3642
|
+
private activeModal;
|
|
3643
|
+
private tableService;
|
|
3644
|
+
private fb;
|
|
3645
|
+
readonly step: _angular_core.WritableSignal<Step>;
|
|
3646
|
+
readonly selectedFile: _angular_core.WritableSignal<File | null>;
|
|
3647
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
3648
|
+
readonly error: _angular_core.WritableSignal<string | null>;
|
|
3649
|
+
readonly suggestResult: _angular_core.WritableSignal<ColumnOverrideSuggestResult | null>;
|
|
3650
|
+
readonly userMapping: _angular_core.WritableSignal<ColumnOverrideMappingEntry[]>;
|
|
3651
|
+
readonly previewResult: _angular_core.WritableSignal<ColumnOverridePreviewResult | null>;
|
|
3652
|
+
readonly commitResult: _angular_core.WritableSignal<ColumnOverrideCommitResult | null>;
|
|
3653
|
+
readonly optionsForm: FormGroup;
|
|
3654
|
+
readonly mappedColumnIds: _angular_core.Signal<Set<number>>;
|
|
3655
|
+
readonly newColumnCount: _angular_core.Signal<number>;
|
|
3656
|
+
onFileChange(event: Event): void;
|
|
3657
|
+
generateMapping(): void;
|
|
3658
|
+
updateMappingEntry(fileColIndex: number, value: string): void;
|
|
3659
|
+
removeMappingEntry(fileColIndex: number): void;
|
|
3660
|
+
restoreMappingEntry(fileColIndex: number): void;
|
|
3661
|
+
isIgnored(fileColIndex: number): boolean;
|
|
3662
|
+
getColumnIdForFileCol(fileColIndex: number): string;
|
|
3663
|
+
reapplyAlgorithm(): void;
|
|
3664
|
+
preview(): void;
|
|
3665
|
+
confirm(): void;
|
|
3666
|
+
backToUpload(): void;
|
|
3667
|
+
backToMap(): void;
|
|
3668
|
+
close(): void;
|
|
3669
|
+
dismiss(): void;
|
|
3670
|
+
private buildOptions;
|
|
3671
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColumnOverrideImportModal, never>;
|
|
3672
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColumnOverrideImportModal, "ccv-column-override-import-modal", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
3673
|
+
}
|
|
3674
|
+
|
|
3129
3675
|
declare class CupcakeVanilla {
|
|
3130
3676
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CupcakeVanilla, never>;
|
|
3131
3677
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CupcakeVanilla, "ccv-cupcake-vanilla", never, {}, {}, never, never, true, never>;
|
|
3132
3678
|
}
|
|
3133
3679
|
|
|
3134
|
-
|
|
3135
|
-
|
|
3680
|
+
declare class DualScrollDirective implements AfterViewInit, OnDestroy {
|
|
3681
|
+
private el;
|
|
3682
|
+
private renderer;
|
|
3683
|
+
private topBar;
|
|
3684
|
+
private topBarInner;
|
|
3685
|
+
private resizeObserver;
|
|
3686
|
+
private readonly onHostScroll;
|
|
3687
|
+
private readonly onTopScroll;
|
|
3688
|
+
constructor(el: ElementRef<HTMLElement>, renderer: Renderer2);
|
|
3689
|
+
ngAfterViewInit(): void;
|
|
3690
|
+
private syncWidth;
|
|
3691
|
+
ngOnDestroy(): void;
|
|
3692
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DualScrollDirective, never>;
|
|
3693
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DualScrollDirective, "[appDualScroll]", never, {}, {}, never, never, true, never>;
|
|
3694
|
+
}
|
|
3695
|
+
|
|
3696
|
+
export { AsyncExportService, AsyncImportService, AsyncTaskService, AsyncTaskUIService, AsyncValidationService, COLUMN_TYPE_CONFIGS, ChunkedImportService, ChunkedUploadService, ColumnEditModal, ColumnOverrideImportModal, ColumnTemplateEditModal, ColumnTemplates, ColumnType, CupcakeVanilla, DesktopService, DualScrollDirective, ElectronService, ExcelExportModalComponent, ExcelLaunchService, FavoriteManagement, FavouriteMetadataOptionService, MSTermType, MetadataColumnAutofillModal, MetadataColumnHistoryModal, MetadataColumnService, MetadataColumnTemplateService, MetadataColumnTemplateShareService, MetadataManagementService, MetadataTableDetails, MetadataTableEditModal, MetadataTableService, MetadataTableTemplateEditModal, MetadataTableTemplateService, MetadataTableTemplates, MetadataValidationModal, MetadataValueEditModal, NotificationService, NotificationType, OFFICIAL_SDRF_COLUMNS, ONTOLOGY_TYPE_CONFIGS, OfficialColumnCacheService, OntologySearchService, OntologyType, OntologyTypeLabels, OntologyUtils, OpenInExcel, SDRFDefaultsService, SamplePoolCreateModal, SamplePoolDetailsModal, SamplePoolEditModal, SamplePoolService, SchemaSelectionModal, SchemaService, SdrfAgeInput, SdrfCleavageInput, SdrfColumnCategory, SdrfModificationInput, SdrfNumberWithUnitInput, SdrfSelectInput, SdrfSpikedCompoundInput, SdrfSyntaxService, SearchReplaceModal, TableCreationModalComponent, TemplatePermissionLabels, TemplatePermissionLevel, TemplateSchemaSelectionModal, ValidationResultsModal, Websocket, createSyntheticColumnFromTemplate, getRequiredSdrfColumns, getSdrfColumnByName, getSdrfColumnsByCategory, isSdrfColumnRequired, isUnimodFullData };
|
|
3697
|
+
export type { AdvancedAutofillRequest, AdvancedAutofillResponse, AgeFormat, ApiError, ApiResponse, BTOTerm, BaseTimestampedModel, CellOntology, ChEBICompound, ChunkedFileImportRequest, ChunkedImportProgress, ChunkedUploadCompletionRequest, ChunkedUploadCompletionResponse, ChunkedUploadRequest, ChunkedUploadResponse, ChunkedUploadStatus, CleavageAgentDetails, ColumnConfig, ColumnHistoryModalConfig, ColumnInputType, ColumnOverrideCommitResult, ColumnOverrideImportModalConfig, ColumnOverrideImportOptions, ColumnOverrideMappingEntry, ColumnOverrideMatchedColumn, ColumnOverridePreviewResult, ColumnOverrideSuggestResult, ColumnTypeConfig, ColumnValidator, DiseaseOntologyTerm, ExcelExportOptions, ExcelLaunchClaimRequest, ExcelLaunchClaimResponse, ExcelLaunchCode, ExcelLaunchRequest, FavouriteMetadataOption, FavouriteMetadataOptionCreateRequest, FavouriteMetadataOptionQueryParams, FavouriteMetadataOptionUpdateRequest, GroupedColumnTemplate, GroupedColumnTemplateQueryParams, HumanDisease, MSUniqueVocabularies, MetadataColumn, MetadataColumnAutofillConfig, MetadataColumnCreateRequest, MetadataColumnHistoryChange, MetadataColumnHistoryRecord, MetadataColumnHistoryResponse, MetadataColumnHistorySnapshot, MetadataColumnModifier, MetadataColumnQueryParams, MetadataColumnTemplate, MetadataColumnTemplateCreateRequest, MetadataColumnTemplateQueryParams, MetadataColumnTemplateShare, MetadataColumnTemplateShareCreateRequest, MetadataColumnTemplateShareQueryParams, MetadataColumnTemplateUpdateRequest, MetadataColumnUpdateRequest, MetadataQueryParams, MetadataTable, MetadataTableCreateRequest, MetadataTableQueryParams, MetadataTableQueryResponse, MetadataTableTemplate, MetadataTableTemplateCreateRequest, MetadataTableTemplateQueryParams, MetadataTableTemplateQueryResponse, MetadataTableTemplateSyncRequest, MetadataTableTemplateSyncResponse, MetadataTableTemplateUpdateRequest, MetadataTableUpdateRequest, MetadataValueEditConfig, ModificationParameters, MondoDisease, NCBITaxonomy, OntologyCustomFilter, OntologySuggestParams, OntologySuggestResponse, OntologySuggestion, OntologyTypeConfig, PSIMSOntology, PaginatedResponse, PooledSample, SampleCountConfirmationError, SampleCountValidationRequest, SampleCountValidationResponse, SampleCountValidationResult, SamplePool, SamplePoolCreateRequest, SamplePoolQueryParams, SamplePoolUpdateRequest, Schema, SchemaColumn, SchemaLayer, SchemaQueryParams, SchemaSelectionResult, SchemasByLayer, SdrfColumnConfig, SearchReplaceConfig, Species, SpikedCompound, SubcellularLocation, SyntaxType, SyntheticPeptide, TableCreationData, TemplateSchemaSelectionResult, Tissue, UberonAnatomy, Unimod, UnimodFullData, UnimodSpecification, ValidationResult, ValidationResults, VariationSpec, VariationSpecList, VariationSpecPattern, VariationSpecRange };
|