@noatgnu/cupcake-vanilla 1.0.0 → 1.2.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/fesm2022/noatgnu-cupcake-vanilla.mjs +5028 -148
- package/fesm2022/noatgnu-cupcake-vanilla.mjs.map +1 -1
- package/index.d.ts +1043 -60
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { OnInit, EventEmitter, OnDestroy } from '@angular/core';
|
|
3
|
+
import { Observable, OperatorFunction } from 'rxjs';
|
|
4
|
+
import { BaseApiService, WebSocketService, AuthService, WebSocketMessage, NotificationService as NotificationService$1, ToastService, User, LabGroupService, LabGroup, LabGroupQueryResponse, ResourceVisibility } from '@noatgnu/cupcake-core';
|
|
5
|
+
export { WebSocketMessage } from '@noatgnu/cupcake-core';
|
|
6
|
+
import * as _angular_forms from '@angular/forms';
|
|
7
|
+
import { FormGroup, FormBuilder } from '@angular/forms';
|
|
8
|
+
import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
|
9
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
4
10
|
|
|
5
11
|
interface BaseTimestampedModel {
|
|
6
12
|
createdAt: string;
|
|
@@ -30,6 +36,7 @@ interface MetadataQueryParams {
|
|
|
30
36
|
}
|
|
31
37
|
|
|
32
38
|
declare enum OntologyType {
|
|
39
|
+
NONE = "",
|
|
33
40
|
SPECIES = "species",
|
|
34
41
|
TISSUE = "tissue",
|
|
35
42
|
HUMAN_DISEASE = "human_disease",
|
|
@@ -50,6 +57,13 @@ declare enum TemplatePermissionLevel {
|
|
|
50
57
|
ADMIN = "admin"
|
|
51
58
|
}
|
|
52
59
|
declare const TemplatePermissionLabels: Record<TemplatePermissionLevel, string>;
|
|
60
|
+
declare enum ColumnType {
|
|
61
|
+
CHARACTERISTICS = "characteristics",
|
|
62
|
+
COMMENT = "comment",
|
|
63
|
+
FACTOR_VALUE = "factor_value",
|
|
64
|
+
SOURCE_NAME = "source_name",
|
|
65
|
+
SPECIAL = "special"
|
|
66
|
+
}
|
|
53
67
|
|
|
54
68
|
interface MetadataTable extends BaseTimestampedModel {
|
|
55
69
|
id: number;
|
|
@@ -86,10 +100,46 @@ interface MetadataTableUpdateRequest {
|
|
|
86
100
|
name?: string;
|
|
87
101
|
description?: string;
|
|
88
102
|
sampleCount?: number;
|
|
103
|
+
sampleCountConfirmed?: boolean;
|
|
89
104
|
version?: string;
|
|
105
|
+
labGroup?: number;
|
|
90
106
|
isLocked?: boolean;
|
|
91
107
|
isPublished?: boolean;
|
|
92
108
|
}
|
|
109
|
+
interface SampleCountValidationRequest {
|
|
110
|
+
newSampleCount: number;
|
|
111
|
+
}
|
|
112
|
+
interface SampleCountValidationResult {
|
|
113
|
+
valid: boolean;
|
|
114
|
+
warnings: string[];
|
|
115
|
+
affectedModifiers: Array<{
|
|
116
|
+
modifierIndex: number;
|
|
117
|
+
columnName: string;
|
|
118
|
+
samples: string;
|
|
119
|
+
invalidIndices: number[];
|
|
120
|
+
value: string;
|
|
121
|
+
}>;
|
|
122
|
+
affectedPools: Array<{
|
|
123
|
+
poolName: string;
|
|
124
|
+
invalidPooledOnly: number[];
|
|
125
|
+
invalidPooledAndIndependent: number[];
|
|
126
|
+
}>;
|
|
127
|
+
samplesToRemove: number[];
|
|
128
|
+
}
|
|
129
|
+
interface SampleCountValidationResponse {
|
|
130
|
+
currentSampleCount: number;
|
|
131
|
+
newSampleCount: number;
|
|
132
|
+
validationResult: SampleCountValidationResult;
|
|
133
|
+
}
|
|
134
|
+
interface SampleCountConfirmationError {
|
|
135
|
+
sampleCount: string[];
|
|
136
|
+
sampleCountConfirmationDetails: {
|
|
137
|
+
currentSampleCount: number;
|
|
138
|
+
newSampleCount: number;
|
|
139
|
+
requiresConfirmation: true;
|
|
140
|
+
validationResult: SampleCountValidationResult;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
93
143
|
interface MetadataTableQueryResponse {
|
|
94
144
|
count: number;
|
|
95
145
|
next?: string;
|
|
@@ -417,6 +467,7 @@ interface CellOntology {
|
|
|
417
467
|
interface Schema {
|
|
418
468
|
id: number;
|
|
419
469
|
name: string;
|
|
470
|
+
displayName?: string;
|
|
420
471
|
description?: string;
|
|
421
472
|
category?: string;
|
|
422
473
|
version?: string;
|
|
@@ -427,10 +478,10 @@ interface Schema {
|
|
|
427
478
|
interface OntologySuggestion {
|
|
428
479
|
id: string;
|
|
429
480
|
value: string;
|
|
430
|
-
|
|
481
|
+
displayName: string;
|
|
431
482
|
description?: string;
|
|
432
|
-
|
|
433
|
-
|
|
483
|
+
ontologyType: string;
|
|
484
|
+
fullData?: any;
|
|
434
485
|
}
|
|
435
486
|
interface OntologySuggestionResponse {
|
|
436
487
|
count: number;
|
|
@@ -443,34 +494,34 @@ interface UnimodSpecification {
|
|
|
443
494
|
accession: string;
|
|
444
495
|
name: string;
|
|
445
496
|
definition: string;
|
|
446
|
-
|
|
497
|
+
additionalData: Array<{
|
|
447
498
|
id: string;
|
|
448
499
|
description: string;
|
|
449
500
|
}>;
|
|
450
|
-
|
|
501
|
+
generalProperties: Record<string, string>;
|
|
451
502
|
specifications: Record<string, UnimodSpecification>;
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
503
|
+
deltaMonoMass: string;
|
|
504
|
+
deltaAvgeMass: string;
|
|
505
|
+
deltaComposition: string;
|
|
455
506
|
[key: string]: any;
|
|
456
507
|
}
|
|
457
508
|
interface UnimodFullData {
|
|
458
509
|
accession: string;
|
|
459
510
|
name: string;
|
|
460
511
|
definition: string;
|
|
461
|
-
|
|
512
|
+
additionalData: Array<{
|
|
462
513
|
id: string;
|
|
463
514
|
description: string;
|
|
464
515
|
}>;
|
|
465
|
-
|
|
516
|
+
generalProperties: Record<string, string>;
|
|
466
517
|
specifications: Record<string, UnimodSpecification>;
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
518
|
+
deltaMonoMass: string;
|
|
519
|
+
deltaAvgeMass: string;
|
|
520
|
+
deltaComposition: string;
|
|
470
521
|
[key: string]: any;
|
|
471
522
|
}
|
|
472
523
|
declare function isUnimodFullData(suggestion: any): suggestion is {
|
|
473
|
-
|
|
524
|
+
fullData: UnimodFullData;
|
|
474
525
|
};
|
|
475
526
|
declare class OntologyUtils {
|
|
476
527
|
static getUnimodSpecifications(suggestion: any): (UnimodSpecification & {
|
|
@@ -482,8 +533,65 @@ declare class OntologyUtils {
|
|
|
482
533
|
static formatUnimodName(data: UnimodFullData): string;
|
|
483
534
|
}
|
|
484
535
|
|
|
536
|
+
interface OntologyCustomFilter {
|
|
537
|
+
[ontologyType: string]: {
|
|
538
|
+
[filterKey: string]: string | number | boolean;
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
interface OntologyTypeConfig {
|
|
542
|
+
value: string;
|
|
543
|
+
label: string;
|
|
544
|
+
customFilters?: OntologyCustomFilter;
|
|
545
|
+
}
|
|
546
|
+
interface ColumnTypeConfig {
|
|
547
|
+
value: string;
|
|
548
|
+
label: string;
|
|
549
|
+
}
|
|
550
|
+
declare enum MSTermType {
|
|
551
|
+
INSTRUMENT = "instrument",
|
|
552
|
+
CLEAVAGE_AGENT = "cleavage agent",
|
|
553
|
+
DISSOCIATION_METHOD = "dissociation method",
|
|
554
|
+
SAMPLE_ATTRIBUTE = "sample attribute",
|
|
555
|
+
CELL_LINE = "cell line",
|
|
556
|
+
ENRICHMENT_PROCESS = "enrichment process",
|
|
557
|
+
FRACTIONATION_METHOD = "fractionation method",
|
|
558
|
+
DATA_ACQUISITION_METHOD = "proteomics data acquisition method",
|
|
559
|
+
REDUCTION_REAGENT = "reduction reagent",
|
|
560
|
+
ALKYLATION_REAGENT = "alkylation reagent",
|
|
561
|
+
MASS_ANALYZER_TYPE = "mass analyzer type",
|
|
562
|
+
ANCESTRAL_CATEGORY = "ancestral category",
|
|
563
|
+
SEX = "sex",
|
|
564
|
+
DEVELOPMENTAL_STAGE = "developmental stage"
|
|
565
|
+
}
|
|
566
|
+
declare const ONTOLOGY_TYPE_CONFIGS: OntologyTypeConfig[];
|
|
567
|
+
declare const COLUMN_TYPE_CONFIGS: ColumnTypeConfig[];
|
|
568
|
+
|
|
569
|
+
interface SdrfColumnConfig {
|
|
570
|
+
name: string;
|
|
571
|
+
type: string;
|
|
572
|
+
description: string;
|
|
573
|
+
category?: SdrfColumnCategory;
|
|
574
|
+
isRequired?: boolean;
|
|
575
|
+
}
|
|
576
|
+
declare enum SdrfColumnCategory {
|
|
577
|
+
CORE_SAMPLE = "Core Sample Metadata",
|
|
578
|
+
CHARACTERISTICS = "Characteristics",
|
|
579
|
+
ASSAY = "Assay Information",
|
|
580
|
+
COMMENTS = "Comments",
|
|
581
|
+
MODIFICATIONS = "Modifications & Enzymes",
|
|
582
|
+
MASS_TOLERANCES = "Mass Tolerances",
|
|
583
|
+
TECHNICAL_PARAMS = "Technical Parameters",
|
|
584
|
+
SAMPLE_PREP = "Sample Preparation",
|
|
585
|
+
FILE_PROJECT = "File & Project Information"
|
|
586
|
+
}
|
|
587
|
+
declare const OFFICIAL_SDRF_COLUMNS: SdrfColumnConfig[];
|
|
588
|
+
declare function getSdrfColumnsByCategory(category?: SdrfColumnCategory): SdrfColumnConfig[];
|
|
589
|
+
declare function getRequiredSdrfColumns(): SdrfColumnConfig[];
|
|
590
|
+
declare function getSdrfColumnByName(name: string): SdrfColumnConfig | undefined;
|
|
591
|
+
declare function isSdrfColumnRequired(name: string): boolean;
|
|
592
|
+
|
|
485
593
|
type TaskStatus = 'QUEUED' | 'STARTED' | 'SUCCESS' | 'FAILURE' | 'CANCELLED';
|
|
486
|
-
type TaskType = 'EXPORT_EXCEL' | 'EXPORT_SDRF' | 'IMPORT_SDRF' | 'IMPORT_EXCEL' | 'EXPORT_MULTIPLE_SDRF' | 'EXPORT_MULTIPLE_EXCEL' | 'VALIDATE_TABLE';
|
|
594
|
+
type TaskType = 'EXPORT_EXCEL' | 'EXPORT_SDRF' | 'IMPORT_SDRF' | 'IMPORT_EXCEL' | 'EXPORT_MULTIPLE_SDRF' | 'EXPORT_MULTIPLE_EXCEL' | 'VALIDATE_TABLE' | 'REORDER_TABLE_COLUMNS' | 'REORDER_TEMPLATE_COLUMNS';
|
|
487
595
|
interface AsyncTaskStatus {
|
|
488
596
|
id: string;
|
|
489
597
|
taskType: TaskType;
|
|
@@ -562,6 +670,13 @@ interface MetadataImportRequest {
|
|
|
562
670
|
replaceExisting?: boolean;
|
|
563
671
|
validateOntologies?: boolean;
|
|
564
672
|
}
|
|
673
|
+
interface ChunkedImportRequest {
|
|
674
|
+
metadataTableId: number;
|
|
675
|
+
chunkedUploadId: string;
|
|
676
|
+
replaceExisting?: boolean;
|
|
677
|
+
validateOntologies?: boolean;
|
|
678
|
+
createPools?: boolean;
|
|
679
|
+
}
|
|
565
680
|
interface MetadataValidationRequest {
|
|
566
681
|
metadataTableId: number;
|
|
567
682
|
validateSdrfFormat?: boolean;
|
|
@@ -633,25 +748,11 @@ interface ChunkedUploadCompletionRequest {
|
|
|
633
748
|
replaceExisting?: boolean;
|
|
634
749
|
}
|
|
635
750
|
interface ChunkedUploadCompletionResponse {
|
|
636
|
-
message
|
|
751
|
+
message?: string;
|
|
637
752
|
filename?: string;
|
|
638
753
|
warning?: string;
|
|
639
754
|
error?: string;
|
|
640
|
-
|
|
641
|
-
createdPools?: number;
|
|
642
|
-
sampleRows?: number;
|
|
643
|
-
metadataColumns?: Array<{
|
|
644
|
-
id: number;
|
|
645
|
-
name: string;
|
|
646
|
-
type: string;
|
|
647
|
-
position: number;
|
|
648
|
-
}>;
|
|
649
|
-
samplePools?: Array<{
|
|
650
|
-
id: number;
|
|
651
|
-
name: string;
|
|
652
|
-
totalSamples: number;
|
|
653
|
-
isReference: boolean;
|
|
654
|
-
}>;
|
|
755
|
+
taskId?: string;
|
|
655
756
|
}
|
|
656
757
|
|
|
657
758
|
interface MetadataTableQueryParams {
|
|
@@ -726,6 +827,15 @@ declare class MetadataTableService extends BaseApiService {
|
|
|
726
827
|
normalizeColumnPositions(id: number): Observable<{
|
|
727
828
|
message: string;
|
|
728
829
|
}>;
|
|
830
|
+
/**
|
|
831
|
+
* Start async reordering of table columns by schema
|
|
832
|
+
*/
|
|
833
|
+
reorderColumnsBySchemaAsync(id: number, schemaIds?: number[]): Observable<{
|
|
834
|
+
taskId: string;
|
|
835
|
+
message: string;
|
|
836
|
+
metadataTableId: number;
|
|
837
|
+
schemaIds: number[];
|
|
838
|
+
}>;
|
|
729
839
|
/**
|
|
730
840
|
* Get all tables (admin only)
|
|
731
841
|
*/
|
|
@@ -760,6 +870,13 @@ declare class MetadataTableService extends BaseApiService {
|
|
|
760
870
|
message: string;
|
|
761
871
|
combinedColumn: any;
|
|
762
872
|
}>;
|
|
873
|
+
validateSampleCountChange(id: number, request: SampleCountValidationRequest): Observable<SampleCountValidationResponse>;
|
|
874
|
+
updateSampleCount(id: number, newSampleCount: number, confirmed?: boolean): Observable<{
|
|
875
|
+
message: string;
|
|
876
|
+
oldSampleCount: number;
|
|
877
|
+
newSampleCount: number;
|
|
878
|
+
cleanupPerformed: boolean;
|
|
879
|
+
}>;
|
|
763
880
|
static ɵfac: i0.ɵɵFactoryDeclaration<MetadataTableService, never>;
|
|
764
881
|
static ɵprov: i0.ɵɵInjectableDeclaration<MetadataTableService>;
|
|
765
882
|
}
|
|
@@ -1011,6 +1128,15 @@ declare class MetadataTableTemplateService extends BaseApiService {
|
|
|
1011
1128
|
normalizeColumnPositions(id: number): Observable<{
|
|
1012
1129
|
message: string;
|
|
1013
1130
|
}>;
|
|
1131
|
+
/**
|
|
1132
|
+
* Start async reordering of template columns by schema
|
|
1133
|
+
*/
|
|
1134
|
+
reorderColumnsBySchemaAsync(id: number, schemaIds?: number[]): Observable<{
|
|
1135
|
+
taskId: string;
|
|
1136
|
+
message: string;
|
|
1137
|
+
templateId: number;
|
|
1138
|
+
schemaIds: number[];
|
|
1139
|
+
}>;
|
|
1014
1140
|
/**
|
|
1015
1141
|
* Apply this template to a metadata table
|
|
1016
1142
|
*/
|
|
@@ -1064,10 +1190,7 @@ declare class MetadataTableTemplateService extends BaseApiService {
|
|
|
1064
1190
|
name: string;
|
|
1065
1191
|
description?: string;
|
|
1066
1192
|
sampleCount: number;
|
|
1067
|
-
}): Observable<
|
|
1068
|
-
message: string;
|
|
1069
|
-
table: MetadataTable;
|
|
1070
|
-
}>;
|
|
1193
|
+
}): Observable<MetadataTable>;
|
|
1071
1194
|
/**
|
|
1072
1195
|
* Create a new metadata table directly from schema definitions
|
|
1073
1196
|
*/
|
|
@@ -1076,16 +1199,14 @@ declare class MetadataTableTemplateService extends BaseApiService {
|
|
|
1076
1199
|
name: string;
|
|
1077
1200
|
description?: string;
|
|
1078
1201
|
sampleCount: number;
|
|
1079
|
-
}): Observable<
|
|
1080
|
-
message: string;
|
|
1081
|
-
table: MetadataTable;
|
|
1082
|
-
}>;
|
|
1202
|
+
}): Observable<MetadataTable>;
|
|
1083
1203
|
static ɵfac: i0.ɵɵFactoryDeclaration<MetadataTableTemplateService, never>;
|
|
1084
1204
|
static ɵprov: i0.ɵɵInjectableDeclaration<MetadataTableTemplateService>;
|
|
1085
1205
|
}
|
|
1086
1206
|
|
|
1087
1207
|
interface FavouriteMetadataOptionQueryParams {
|
|
1088
1208
|
search?: string;
|
|
1209
|
+
name?: string;
|
|
1089
1210
|
type?: string;
|
|
1090
1211
|
userId?: number;
|
|
1091
1212
|
labGroupId?: number;
|
|
@@ -1280,6 +1401,56 @@ declare class MetadataManagementService extends BaseApiService {
|
|
|
1280
1401
|
static ɵprov: i0.ɵɵInjectableDeclaration<MetadataManagementService>;
|
|
1281
1402
|
}
|
|
1282
1403
|
|
|
1404
|
+
declare class Websocket extends WebSocketService {
|
|
1405
|
+
constructor(authService: AuthService);
|
|
1406
|
+
getMetadataTableUpdates(): Observable<WebSocketMessage>;
|
|
1407
|
+
getLabGroupUpdates(): Observable<WebSocketMessage>;
|
|
1408
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Websocket, never>;
|
|
1409
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<Websocket>;
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1412
|
+
declare class AdminWebSocketService extends WebSocketService {
|
|
1413
|
+
constructor(authService: AuthService);
|
|
1414
|
+
getAdminNotifications(): Observable<WebSocketMessage>;
|
|
1415
|
+
getSystemNotifications(): Observable<WebSocketMessage>;
|
|
1416
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AdminWebSocketService, never>;
|
|
1417
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AdminWebSocketService>;
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
declare enum NotificationType {
|
|
1421
|
+
SYSTEM = "system",
|
|
1422
|
+
METADATA_TABLE = "metadata_table",
|
|
1423
|
+
LAB_GROUP = "lab_group",
|
|
1424
|
+
FILE_UPLOAD = "file_upload",
|
|
1425
|
+
DATA_PROCESSING = "data_processing",
|
|
1426
|
+
ASYNC_TASK = "async_task",
|
|
1427
|
+
USER = "user"
|
|
1428
|
+
}
|
|
1429
|
+
declare class NotificationService extends NotificationService$1 {
|
|
1430
|
+
private websocketService;
|
|
1431
|
+
private adminWebSocketService;
|
|
1432
|
+
private isConnected;
|
|
1433
|
+
private isAdminConnected;
|
|
1434
|
+
readonly isWebSocketConnected: i0.Signal<boolean>;
|
|
1435
|
+
readonly isAdminWebSocketConnected: i0.Signal<boolean>;
|
|
1436
|
+
constructor(websocketService: Websocket, adminWebSocketService: AdminWebSocketService, toastService: ToastService);
|
|
1437
|
+
private initializeWebSocket;
|
|
1438
|
+
private setupNotificationHandlers;
|
|
1439
|
+
private handleWebSocketMessage;
|
|
1440
|
+
private createNotificationFromWebSocket;
|
|
1441
|
+
private getAsyncTaskTitle;
|
|
1442
|
+
private getAsyncTaskLevel;
|
|
1443
|
+
private handleAdminWebSocketMessage;
|
|
1444
|
+
connect(): void;
|
|
1445
|
+
connectAdmin(): void;
|
|
1446
|
+
disconnect(): void;
|
|
1447
|
+
disconnectAdmin(): void;
|
|
1448
|
+
subscribeToMetadataTable(tableId: number): void;
|
|
1449
|
+
createVanillaNotification(type: NotificationType, title: string, message: string, level?: 'info' | 'success' | 'warning' | 'error', autoClose?: boolean): void;
|
|
1450
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationService, never>;
|
|
1451
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NotificationService>;
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1283
1454
|
declare class OntologySearchService extends BaseApiService {
|
|
1284
1455
|
/**
|
|
1285
1456
|
* Get ontology suggestions across all sources for SDRF validation
|
|
@@ -1433,23 +1604,6 @@ declare class AsyncExportService extends BaseApiService {
|
|
|
1433
1604
|
static ɵprov: i0.ɵɵInjectableDeclaration<AsyncExportService>;
|
|
1434
1605
|
}
|
|
1435
1606
|
|
|
1436
|
-
declare class AsyncImportService extends BaseApiService {
|
|
1437
|
-
/**
|
|
1438
|
-
* Calculate SHA256 hash of a file
|
|
1439
|
-
*/
|
|
1440
|
-
private calculateSHA256;
|
|
1441
|
-
sdrfFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1442
|
-
excelFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1443
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AsyncImportService, never>;
|
|
1444
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AsyncImportService>;
|
|
1445
|
-
}
|
|
1446
|
-
|
|
1447
|
-
declare class AsyncValidationService extends BaseApiService {
|
|
1448
|
-
metadataTable(request: MetadataValidationRequest): Observable<AsyncTaskCreateResponse>;
|
|
1449
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AsyncValidationService, never>;
|
|
1450
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AsyncValidationService>;
|
|
1451
|
-
}
|
|
1452
|
-
|
|
1453
1607
|
declare class ChunkedUploadService extends BaseApiService {
|
|
1454
1608
|
/**
|
|
1455
1609
|
* Initialize or continue a chunked upload
|
|
@@ -1463,6 +1617,10 @@ declare class ChunkedUploadService extends BaseApiService {
|
|
|
1463
1617
|
* Complete the chunked upload and process the file
|
|
1464
1618
|
*/
|
|
1465
1619
|
completeUpload(uploadId: string, request?: ChunkedUploadCompletionRequest): Observable<ChunkedUploadCompletionResponse>;
|
|
1620
|
+
/**
|
|
1621
|
+
* Complete the chunked upload by uploading the entire file at once
|
|
1622
|
+
*/
|
|
1623
|
+
completeUploadWithFile(request: ChunkedUploadRequest): Observable<ChunkedUploadCompletionResponse>;
|
|
1466
1624
|
/**
|
|
1467
1625
|
* Delete/cancel a chunked upload
|
|
1468
1626
|
*/
|
|
@@ -1482,10 +1640,835 @@ declare class ChunkedUploadService extends BaseApiService {
|
|
|
1482
1640
|
static ɵprov: i0.ɵɵInjectableDeclaration<ChunkedUploadService>;
|
|
1483
1641
|
}
|
|
1484
1642
|
|
|
1643
|
+
declare class AsyncImportService extends BaseApiService {
|
|
1644
|
+
private chunkedUploadService;
|
|
1645
|
+
constructor(chunkedUploadService: ChunkedUploadService);
|
|
1646
|
+
sdrfFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1647
|
+
excelFile(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1648
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AsyncImportService, never>;
|
|
1649
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AsyncImportService>;
|
|
1650
|
+
}
|
|
1651
|
+
|
|
1652
|
+
declare class AsyncValidationService extends BaseApiService {
|
|
1653
|
+
metadataTable(request: MetadataValidationRequest): Observable<AsyncTaskCreateResponse>;
|
|
1654
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AsyncValidationService, never>;
|
|
1655
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AsyncValidationService>;
|
|
1656
|
+
}
|
|
1657
|
+
|
|
1658
|
+
interface ChunkedFileImportRequest {
|
|
1659
|
+
file: File;
|
|
1660
|
+
metadataTableId: number;
|
|
1661
|
+
replaceExisting?: boolean;
|
|
1662
|
+
validateOntologies?: boolean;
|
|
1663
|
+
createPools?: boolean;
|
|
1664
|
+
}
|
|
1665
|
+
interface ChunkedImportProgress {
|
|
1666
|
+
uploadProgress: number;
|
|
1667
|
+
phase: 'uploading' | 'processing' | 'completed' | 'failed';
|
|
1668
|
+
taskId?: string;
|
|
1669
|
+
}
|
|
1670
|
+
declare class ChunkedImportService extends BaseApiService {
|
|
1671
|
+
private chunkedUploadService;
|
|
1672
|
+
constructor(chunkedUploadService: ChunkedUploadService);
|
|
1673
|
+
/**
|
|
1674
|
+
* Import SDRF file using chunked upload for better performance with large files
|
|
1675
|
+
*/
|
|
1676
|
+
importSdrfFileChunked(request: ChunkedFileImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1677
|
+
/**
|
|
1678
|
+
* Import Excel file using chunked upload for better performance with large files
|
|
1679
|
+
*/
|
|
1680
|
+
importExcelFileChunked(request: ChunkedFileImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1681
|
+
/**
|
|
1682
|
+
* Generic chunked import that auto-detects file type
|
|
1683
|
+
*/
|
|
1684
|
+
importFileChunked(request: ChunkedFileImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1685
|
+
/**
|
|
1686
|
+
* Upload file using chunked upload with metadata processing
|
|
1687
|
+
*/
|
|
1688
|
+
private uploadFileChunked;
|
|
1689
|
+
/**
|
|
1690
|
+
* Trigger async import processing after chunked upload completion
|
|
1691
|
+
* This uses the existing async-import endpoints but with chunked upload completion
|
|
1692
|
+
*/
|
|
1693
|
+
private triggerAsyncImport;
|
|
1694
|
+
/**
|
|
1695
|
+
* Validate file type
|
|
1696
|
+
*/
|
|
1697
|
+
private validateFileType;
|
|
1698
|
+
/**
|
|
1699
|
+
* Get file extension from filename
|
|
1700
|
+
*/
|
|
1701
|
+
private getFileExtension;
|
|
1702
|
+
/**
|
|
1703
|
+
* Create progress observable for UI updates
|
|
1704
|
+
*/
|
|
1705
|
+
createProgressObservable(request: ChunkedFileImportRequest, onProgress?: (progress: ChunkedImportProgress) => void): Observable<AsyncTaskCreateResponse>;
|
|
1706
|
+
/**
|
|
1707
|
+
* Queue chunked file import task using completed chunked upload
|
|
1708
|
+
* This uses the new backend endpoint that processes already uploaded chunks
|
|
1709
|
+
*/
|
|
1710
|
+
processChunkedUpload(request: ChunkedImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
1711
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChunkedImportService, never>;
|
|
1712
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ChunkedImportService>;
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
interface AgeFormat {
|
|
1716
|
+
years?: number;
|
|
1717
|
+
months?: number;
|
|
1718
|
+
days?: number;
|
|
1719
|
+
isRange?: boolean;
|
|
1720
|
+
rangeStart?: AgeFormat;
|
|
1721
|
+
rangeEnd?: AgeFormat;
|
|
1722
|
+
}
|
|
1723
|
+
interface ModificationParameters {
|
|
1724
|
+
NT?: string;
|
|
1725
|
+
AC?: string;
|
|
1726
|
+
CF?: string;
|
|
1727
|
+
MT?: string;
|
|
1728
|
+
PP?: string;
|
|
1729
|
+
TA?: string;
|
|
1730
|
+
MM?: string;
|
|
1731
|
+
TS?: string;
|
|
1732
|
+
}
|
|
1733
|
+
interface CleavageAgentDetails {
|
|
1734
|
+
NT?: string;
|
|
1735
|
+
AC?: string;
|
|
1736
|
+
CS?: string;
|
|
1737
|
+
}
|
|
1738
|
+
interface SpikedCompound {
|
|
1739
|
+
SP?: string;
|
|
1740
|
+
CT?: string;
|
|
1741
|
+
QY?: string;
|
|
1742
|
+
PS?: string;
|
|
1743
|
+
AC?: string;
|
|
1744
|
+
CN?: string;
|
|
1745
|
+
CV?: string;
|
|
1746
|
+
CS?: string;
|
|
1747
|
+
CF?: string;
|
|
1748
|
+
}
|
|
1749
|
+
interface PooledSample {
|
|
1750
|
+
value: 'not pooled' | 'pooled' | string;
|
|
1751
|
+
sourceNames?: string[];
|
|
1752
|
+
}
|
|
1753
|
+
interface SyntheticPeptide {
|
|
1754
|
+
value: 'synthetic' | 'not synthetic';
|
|
1755
|
+
}
|
|
1756
|
+
interface ValidationResult {
|
|
1757
|
+
isValid: boolean;
|
|
1758
|
+
errors: string[];
|
|
1759
|
+
warnings?: string[];
|
|
1760
|
+
}
|
|
1761
|
+
type SyntaxType = 'age' | 'modification' | 'cleavage' | 'spiked_compound' | 'pooled_sample' | 'synthetic_peptide';
|
|
1762
|
+
declare class SdrfSyntaxService {
|
|
1763
|
+
private readonly SPECIAL_COLUMN_PATTERNS;
|
|
1764
|
+
private readonly MODIFICATION_KEYS;
|
|
1765
|
+
private readonly CLEAVAGE_KEYS;
|
|
1766
|
+
private readonly SPIKED_COMPOUND_KEYS;
|
|
1767
|
+
private readonly POOLED_SAMPLE_VALUES;
|
|
1768
|
+
private readonly SYNTHETIC_PEPTIDE_VALUES;
|
|
1769
|
+
/**
|
|
1770
|
+
* Detects if a column requires special SDRF syntax handling
|
|
1771
|
+
*/
|
|
1772
|
+
detectSpecialSyntax(columnName: string, columnType: string): SyntaxType | null;
|
|
1773
|
+
/**
|
|
1774
|
+
* Parses a value based on the syntax type
|
|
1775
|
+
*/
|
|
1776
|
+
parseValue(syntaxType: SyntaxType, value: string): any;
|
|
1777
|
+
/**
|
|
1778
|
+
* Formats parsed data back to string format
|
|
1779
|
+
*/
|
|
1780
|
+
formatValue(syntaxType: SyntaxType, data: any): string;
|
|
1781
|
+
/**
|
|
1782
|
+
* Validates parsed data
|
|
1783
|
+
*/
|
|
1784
|
+
validateValue(syntaxType: SyntaxType, data: any): ValidationResult;
|
|
1785
|
+
private parseAgeFormat;
|
|
1786
|
+
private parseSingleAge;
|
|
1787
|
+
private formatAgeFormat;
|
|
1788
|
+
private formatSingleAge;
|
|
1789
|
+
private parseKeyValuePairs;
|
|
1790
|
+
private formatKeyValuePairs;
|
|
1791
|
+
private validateAgeFormat;
|
|
1792
|
+
private validateSingleAge;
|
|
1793
|
+
private validateModificationParameters;
|
|
1794
|
+
private validateCleavageAgentDetails;
|
|
1795
|
+
private validateSpikedCompound;
|
|
1796
|
+
getPooledSampleValues(): string[];
|
|
1797
|
+
getSyntheticPeptideValues(): string[];
|
|
1798
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdrfSyntaxService, never>;
|
|
1799
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SdrfSyntaxService>;
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
interface ElectronAPI {
|
|
1803
|
+
platform: string;
|
|
1804
|
+
isElectron: boolean;
|
|
1805
|
+
getAppVersion(): Promise<string>;
|
|
1806
|
+
getElectronVersion(): Promise<string>;
|
|
1807
|
+
minimize(): void;
|
|
1808
|
+
maximize(): void;
|
|
1809
|
+
close(): void;
|
|
1810
|
+
isMaximized(): Promise<boolean>;
|
|
1811
|
+
showOpenDialog(options?: any): Promise<any>;
|
|
1812
|
+
showSaveDialog(options?: any): Promise<any>;
|
|
1813
|
+
showMessageBox(options: any): Promise<any>;
|
|
1814
|
+
downloadFile(url: string, filename?: string): Promise<string>;
|
|
1815
|
+
getBackendPort(): Promise<number>;
|
|
1816
|
+
isBackendReady(): Promise<boolean>;
|
|
1817
|
+
onBackendStatusChange(callback: (status: any) => void): () => void;
|
|
1818
|
+
onWindowStateChange(callback: (state: 'maximized' | 'unmaximized') => void): () => void;
|
|
1819
|
+
}
|
|
1820
|
+
declare global {
|
|
1821
|
+
interface Window {
|
|
1822
|
+
electronAPI?: ElectronAPI;
|
|
1823
|
+
}
|
|
1824
|
+
}
|
|
1825
|
+
declare class ElectronService {
|
|
1826
|
+
private electronAPI;
|
|
1827
|
+
constructor();
|
|
1828
|
+
get isElectron(): boolean;
|
|
1829
|
+
get platform(): string;
|
|
1830
|
+
getAppVersion(): Promise<string>;
|
|
1831
|
+
getElectronVersion(): Promise<string>;
|
|
1832
|
+
minimize(): void;
|
|
1833
|
+
maximize(): void;
|
|
1834
|
+
close(): void;
|
|
1835
|
+
isMaximized(): Promise<boolean>;
|
|
1836
|
+
showOpenDialog(options?: any): Promise<any>;
|
|
1837
|
+
showSaveDialog(options?: any): Promise<any>;
|
|
1838
|
+
showMessageBox(options: any): Promise<any>;
|
|
1839
|
+
downloadFile(url: string, filename?: string): Promise<string>;
|
|
1840
|
+
getBackendPort(): Promise<number>;
|
|
1841
|
+
isBackendReady(): Promise<boolean>;
|
|
1842
|
+
onBackendStatusChange(): Observable<any>;
|
|
1843
|
+
onWindowStateChange(): Observable<'maximized' | 'unmaximized'>;
|
|
1844
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ElectronService, never>;
|
|
1845
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ElectronService>;
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
declare class SdrfAgeInput implements OnInit {
|
|
1849
|
+
value: string;
|
|
1850
|
+
valueChange: EventEmitter<string>;
|
|
1851
|
+
private fb;
|
|
1852
|
+
private sdrfSyntax;
|
|
1853
|
+
ageForm: FormGroup;
|
|
1854
|
+
isRange: boolean;
|
|
1855
|
+
ngOnInit(): void;
|
|
1856
|
+
private parseAndSetValue;
|
|
1857
|
+
private updateValue;
|
|
1858
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdrfAgeInput, never>;
|
|
1859
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdrfAgeInput, "ccv-sdrf-age-input", never, { "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1862
|
+
declare class SdrfModificationInput implements OnInit {
|
|
1863
|
+
value: string;
|
|
1864
|
+
templateId: number | null;
|
|
1865
|
+
columnId: number | null;
|
|
1866
|
+
valueChange: EventEmitter<string>;
|
|
1867
|
+
searchType: i0.WritableSignal<"icontains" | "istartswith">;
|
|
1868
|
+
private fb;
|
|
1869
|
+
private sdrfSyntax;
|
|
1870
|
+
private metadataColumnService;
|
|
1871
|
+
private metadataColumnTemplateService;
|
|
1872
|
+
modificationForm: FormGroup;
|
|
1873
|
+
modificationTypes: string[];
|
|
1874
|
+
positions: string[];
|
|
1875
|
+
selectedUnimodData: i0.WritableSignal<UnimodFullData | null>;
|
|
1876
|
+
availableSpecifications: i0.WritableSignal<(UnimodSpecification & {
|
|
1877
|
+
specNumber: string;
|
|
1878
|
+
})[]>;
|
|
1879
|
+
selectedSpecification: i0.WritableSignal<string | null>;
|
|
1880
|
+
showSpecifications: i0.WritableSignal<boolean>;
|
|
1881
|
+
showHiddenSpecifications: i0.WritableSignal<boolean>;
|
|
1882
|
+
hiddenSpecificationCount: i0.WritableSignal<number>;
|
|
1883
|
+
ngOnInit(): void;
|
|
1884
|
+
private parseAndSetValue;
|
|
1885
|
+
private getStringValue;
|
|
1886
|
+
private updateValue;
|
|
1887
|
+
searchModificationTerms: OperatorFunction<string, readonly OntologySuggestion[]>;
|
|
1888
|
+
formatOntologySuggestion: (suggestion: OntologySuggestion) => string;
|
|
1889
|
+
onOntologySuggestionSelected: (event: any) => void;
|
|
1890
|
+
formatTargetAminoAcids(value: string): string;
|
|
1891
|
+
onTargetAminoAcidChange(event: any): void;
|
|
1892
|
+
onSpecificationSelected(specNumber: string): void;
|
|
1893
|
+
private mapUnimodPosition;
|
|
1894
|
+
private mapClassificationToType;
|
|
1895
|
+
getSpecificationDisplay(spec: UnimodSpecification & {
|
|
1896
|
+
specNumber: string;
|
|
1897
|
+
}): string;
|
|
1898
|
+
onSearchTypeChange(type: 'icontains' | 'istartswith'): void;
|
|
1899
|
+
private updateAvailableSpecifications;
|
|
1900
|
+
toggleHiddenSpecifications(): void;
|
|
1901
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdrfModificationInput, never>;
|
|
1902
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdrfModificationInput, "ccv-sdrf-modification-input", never, { "value": { "alias": "value"; "required": false; }; "templateId": { "alias": "templateId"; "required": false; }; "columnId": { "alias": "columnId"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1903
|
+
}
|
|
1904
|
+
|
|
1905
|
+
declare class SdrfSpikedCompoundInput implements OnInit {
|
|
1906
|
+
value: string;
|
|
1907
|
+
valueChange: EventEmitter<string>;
|
|
1908
|
+
private fb;
|
|
1909
|
+
private sdrfSyntax;
|
|
1910
|
+
spikedForm: FormGroup;
|
|
1911
|
+
compoundTypes: string[];
|
|
1912
|
+
ngOnInit(): void;
|
|
1913
|
+
private parseAndSetValue;
|
|
1914
|
+
private getStringValue;
|
|
1915
|
+
private updateValue;
|
|
1916
|
+
get showProteinFields(): boolean;
|
|
1917
|
+
get showPeptideFields(): boolean;
|
|
1918
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdrfSpikedCompoundInput, never>;
|
|
1919
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SdrfSpikedCompoundInput, "ccv-sdrf-spiked-compound-input", never, { "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1920
|
+
}
|
|
1921
|
+
|
|
1922
|
+
declare class SdrfCleavageInput implements OnInit {
|
|
1923
|
+
value: string;
|
|
1924
|
+
templateId: number | null;
|
|
1925
|
+
columnId: number | null;
|
|
1926
|
+
valueChange: EventEmitter<string>;
|
|
1927
|
+
searchType: i0.WritableSignal<"icontains" | "istartswith">;
|
|
1928
|
+
private fb;
|
|
1929
|
+
private sdrfSyntax;
|
|
1930
|
+
private metadataColumnService;
|
|
1931
|
+
private metadataColumnTemplateService;
|
|
1932
|
+
cleavageForm: FormGroup;
|
|
1933
|
+
ngOnInit(): void;
|
|
1934
|
+
private parseAndSetValue;
|
|
1935
|
+
private getStringValue;
|
|
1936
|
+
private updateValue;
|
|
1937
|
+
searchCleavageTerms: OperatorFunction<string, readonly OntologySuggestion[]>;
|
|
1938
|
+
formatOntologySuggestion: (suggestion: OntologySuggestion) => string;
|
|
1939
|
+
onOntologySuggestionSelected: (event: any) => void;
|
|
1940
|
+
onSearchTypeChange(type: 'icontains' | 'istartswith'): void;
|
|
1941
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdrfCleavageInput, never>;
|
|
1942
|
+
static ɵcmp: i0.ɵɵ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>;
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
interface MetadataValueEditConfig {
|
|
1946
|
+
columnId?: number;
|
|
1947
|
+
columnName: string;
|
|
1948
|
+
columnType: string;
|
|
1949
|
+
ontologyType?: string;
|
|
1950
|
+
enableTypeahead?: boolean;
|
|
1951
|
+
currentValue?: string;
|
|
1952
|
+
context: 'template' | 'table' | 'pool' | 'favorite_management';
|
|
1953
|
+
templateId?: number;
|
|
1954
|
+
tableId?: number;
|
|
1955
|
+
poolId?: number;
|
|
1956
|
+
customOntologyFilters?: Record<string, any>;
|
|
1957
|
+
enableMultiSampleEdit?: boolean;
|
|
1958
|
+
sampleData?: {
|
|
1959
|
+
index: number;
|
|
1960
|
+
value: string;
|
|
1961
|
+
sourceName?: string;
|
|
1962
|
+
}[];
|
|
1963
|
+
maxSampleCount?: number;
|
|
1964
|
+
}
|
|
1965
|
+
declare class MetadataValueEditModal implements OnInit {
|
|
1966
|
+
private fb;
|
|
1967
|
+
private activeModal;
|
|
1968
|
+
private authService;
|
|
1969
|
+
private favouriteMetadataOptionService;
|
|
1970
|
+
private metadataColumnService;
|
|
1971
|
+
private metadataColumnTemplateService;
|
|
1972
|
+
private labGroupService;
|
|
1973
|
+
config: MetadataValueEditConfig;
|
|
1974
|
+
valueSaved: EventEmitter<string | {
|
|
1975
|
+
value: string;
|
|
1976
|
+
sampleIndices: number[];
|
|
1977
|
+
}>;
|
|
1978
|
+
editForm: FormGroup;
|
|
1979
|
+
isLoading: i0.WritableSignal<boolean>;
|
|
1980
|
+
isLoadingSuggestions: i0.WritableSignal<boolean>;
|
|
1981
|
+
searchType: i0.WritableSignal<"icontains" | "istartswith">;
|
|
1982
|
+
isLoadingFavorites: i0.WritableSignal<boolean>;
|
|
1983
|
+
userFavorites: i0.WritableSignal<FavouriteMetadataOption[]>;
|
|
1984
|
+
labGroupFavorites: i0.WritableSignal<FavouriteMetadataOption[]>;
|
|
1985
|
+
globalFavorites: i0.WritableSignal<FavouriteMetadataOption[]>;
|
|
1986
|
+
selectedFavorite: i0.WritableSignal<FavouriteMetadataOption | null>;
|
|
1987
|
+
currentUser: i0.WritableSignal<User | null>;
|
|
1988
|
+
userLabGroups: i0.WritableSignal<number[]>;
|
|
1989
|
+
activeFavoritesTab: 'user' | 'lab_group' | 'global';
|
|
1990
|
+
private sdrfSyntaxService;
|
|
1991
|
+
specialSyntaxType: i0.WritableSignal<SyntaxType | null>;
|
|
1992
|
+
showSpecialInput: i0.WritableSignal<boolean>;
|
|
1993
|
+
specialInputValue: i0.WritableSignal<string>;
|
|
1994
|
+
selectedSampleIndices: i0.WritableSignal<Set<number>>;
|
|
1995
|
+
showSamplePanel: i0.WritableSignal<boolean>;
|
|
1996
|
+
constructor(fb: FormBuilder, activeModal: NgbActiveModal, authService: AuthService, favouriteMetadataOptionService: FavouriteMetadataOptionService, metadataColumnService: MetadataColumnService, metadataColumnTemplateService: MetadataColumnTemplateService, labGroupService: LabGroupService);
|
|
1997
|
+
ngOnInit(): void;
|
|
1998
|
+
onCancel(): void;
|
|
1999
|
+
onClose(): void;
|
|
2000
|
+
get title(): string;
|
|
2001
|
+
get hasOntologyType(): boolean;
|
|
2002
|
+
get ontologyTypeLabel(): string;
|
|
2003
|
+
get isFromFavoriteManagement(): boolean;
|
|
2004
|
+
searchOntology: (text$: Observable<string>) => Observable<OntologySuggestion[]>;
|
|
2005
|
+
formatSuggestion: (suggestion: OntologySuggestion) => string;
|
|
2006
|
+
inputFormatter: (suggestion: OntologySuggestion) => string;
|
|
2007
|
+
onSuggestionSelected: (event: any) => void;
|
|
2008
|
+
onSearchTypeChange(type: 'icontains' | 'istartswith'): void;
|
|
2009
|
+
clearValue(): void;
|
|
2010
|
+
loadFavoriteOptions(): void;
|
|
2011
|
+
selectFavorite(favorite: FavouriteMetadataOption): void;
|
|
2012
|
+
onFavoriteSelected(event: Event, favoritesList: FavouriteMetadataOption[]): void;
|
|
2013
|
+
setActiveFavoritesTab(tab: 'user' | 'lab_group' | 'global'): void;
|
|
2014
|
+
setInitialActiveFavoritesTab(): void;
|
|
2015
|
+
addToFavorites(scope?: 'user' | 'lab_group' | 'global'): void;
|
|
2016
|
+
get hasFavorites(): boolean;
|
|
2017
|
+
getFavoriteDisplayValue(favorite: FavouriteMetadataOption): string;
|
|
2018
|
+
getFavoriteTooltip(favorite: FavouriteMetadataOption): string;
|
|
2019
|
+
hasCustomDisplayValue(favorite: FavouriteMetadataOption): boolean;
|
|
2020
|
+
getSelectedFavoriteInfo(): string;
|
|
2021
|
+
loadUserLabGroups(): void;
|
|
2022
|
+
onSpecialInputChange(value: string): void;
|
|
2023
|
+
toggleSpecialInput(): void;
|
|
2024
|
+
getSpecialInputTitle(): string;
|
|
2025
|
+
get hasMultiSampleEdit(): boolean;
|
|
2026
|
+
get sampleData(): {
|
|
2027
|
+
index: number;
|
|
2028
|
+
value: string;
|
|
2029
|
+
sourceName?: string;
|
|
2030
|
+
}[];
|
|
2031
|
+
toggleSampleSelection(sampleIndex: number): void;
|
|
2032
|
+
selectAllSamples(): void;
|
|
2033
|
+
clearSampleSelection(): void;
|
|
2034
|
+
get selectedSampleCount(): number;
|
|
2035
|
+
get totalSampleCount(): number;
|
|
2036
|
+
isSampleSelected(sampleIndex: number): boolean;
|
|
2037
|
+
onSubmit(): void;
|
|
2038
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MetadataValueEditModal, never>;
|
|
2039
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MetadataValueEditModal, "ccv-metadata-value-edit-modal", never, { "config": { "alias": "config"; "required": false; }; }, { "valueSaved": "valueSaved"; }, never, never, true, never>;
|
|
2040
|
+
}
|
|
2041
|
+
|
|
2042
|
+
interface ExcelExportOptions {
|
|
2043
|
+
includeLabGroups: 'none' | 'selected' | 'all';
|
|
2044
|
+
selectedLabGroupIds: number[];
|
|
2045
|
+
includePools: boolean;
|
|
2046
|
+
}
|
|
2047
|
+
declare class ExcelExportModalComponent implements OnInit {
|
|
2048
|
+
activeModal: NgbActiveModal;
|
|
2049
|
+
labGroupService: LabGroupService;
|
|
2050
|
+
isLoadingLabGroups: i0.WritableSignal<boolean>;
|
|
2051
|
+
availableLabGroups: i0.WritableSignal<LabGroup[]>;
|
|
2052
|
+
includeLabGroups: i0.WritableSignal<"none" | "selected" | "all">;
|
|
2053
|
+
selectedLabGroupIds: i0.WritableSignal<number[]>;
|
|
2054
|
+
includePools: i0.WritableSignal<boolean>;
|
|
2055
|
+
showLabGroupSelection: i0.Signal<boolean>;
|
|
2056
|
+
canConfirm: i0.Signal<boolean>;
|
|
2057
|
+
ngOnInit(): void;
|
|
2058
|
+
private loadLabGroups;
|
|
2059
|
+
onLabGroupToggle(labGroupId: number, checked: boolean): void;
|
|
2060
|
+
isLabGroupSelected(labGroupId: number): boolean;
|
|
2061
|
+
onIncludeLabGroupsChange(value: 'none' | 'selected' | 'all'): void;
|
|
2062
|
+
selectAllLabGroups(): void;
|
|
2063
|
+
deselectAllLabGroups(): void;
|
|
2064
|
+
confirm(): void;
|
|
2065
|
+
cancel(): void;
|
|
2066
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ExcelExportModalComponent, never>;
|
|
2067
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ExcelExportModalComponent, "ccv-excel-export-modal", never, {}, {}, never, never, true, never>;
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
interface ValidationResults {
|
|
2071
|
+
success: boolean;
|
|
2072
|
+
metadata_table_id: number;
|
|
2073
|
+
metadata_table_name: string;
|
|
2074
|
+
validation_timestamp: string;
|
|
2075
|
+
errors: string[];
|
|
2076
|
+
warnings: string[];
|
|
2077
|
+
}
|
|
2078
|
+
declare class ValidationResultsModal {
|
|
2079
|
+
results?: ValidationResults;
|
|
2080
|
+
activeModal: NgbActiveModal;
|
|
2081
|
+
formatTimestamp(timestamp: string): string;
|
|
2082
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ValidationResultsModal, never>;
|
|
2083
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ValidationResultsModal, "ccv-validation-results-modal", never, { "results": { "alias": "results"; "required": false; }; }, {}, never, never, true, never>;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
declare class MetadataValidationModal {
|
|
2087
|
+
config?: MetadataValidationConfig;
|
|
2088
|
+
private fb;
|
|
2089
|
+
private asyncTaskService;
|
|
2090
|
+
private toastService;
|
|
2091
|
+
activeModal: NgbActiveModal;
|
|
2092
|
+
isValidating: i0.WritableSignal<boolean>;
|
|
2093
|
+
validationError: i0.WritableSignal<string | null>;
|
|
2094
|
+
validationForm: _angular_forms.FormGroup<{
|
|
2095
|
+
validate_sdrf_format: _angular_forms.FormControl<boolean | null>;
|
|
2096
|
+
}>;
|
|
2097
|
+
onSubmit(): void;
|
|
2098
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MetadataValidationModal, never>;
|
|
2099
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MetadataValidationModal, "ccv-metadata-validation-modal", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
declare class MetadataTableEditModal implements OnInit {
|
|
2103
|
+
private fb;
|
|
2104
|
+
private activeModal;
|
|
2105
|
+
private modalService;
|
|
2106
|
+
private metadataTableService;
|
|
2107
|
+
private labGroupService;
|
|
2108
|
+
table?: MetadataTable;
|
|
2109
|
+
isCreateMode: boolean;
|
|
2110
|
+
tableSaved: EventEmitter<MetadataTable>;
|
|
2111
|
+
editForm: FormGroup;
|
|
2112
|
+
isLoading: i0.WritableSignal<boolean>;
|
|
2113
|
+
availableLabGroups: i0.WritableSignal<LabGroup[]>;
|
|
2114
|
+
isLoadingLabGroups: i0.WritableSignal<boolean>;
|
|
2115
|
+
constructor(fb: FormBuilder, activeModal: NgbActiveModal, modalService: NgbModal, metadataTableService: MetadataTableService, labGroupService: LabGroupService);
|
|
2116
|
+
ngOnInit(): void;
|
|
2117
|
+
loadLabGroups(): void;
|
|
2118
|
+
onSubmit(): void;
|
|
2119
|
+
private performCreate;
|
|
2120
|
+
private performUpdate;
|
|
2121
|
+
private handleSampleCountConfirmation;
|
|
2122
|
+
private formatAffectedData;
|
|
2123
|
+
private isSampleCountConfirmationError;
|
|
2124
|
+
onCancel(): void;
|
|
2125
|
+
get title(): string;
|
|
2126
|
+
get hasChanges(): boolean;
|
|
2127
|
+
isFieldInvalid(fieldName: string): boolean;
|
|
2128
|
+
getFieldError(fieldName: string): string;
|
|
2129
|
+
private getFieldDisplayName;
|
|
2130
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MetadataTableEditModal, never>;
|
|
2131
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MetadataTableEditModal, "ccv-metadata-table-edit-modal", never, { "table": { "alias": "table"; "required": false; }; "isCreateMode": { "alias": "isCreateMode"; "required": false; }; }, { "tableSaved": "tableSaved"; }, never, never, true, never>;
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
declare class AsyncTaskUIService implements OnDestroy {
|
|
2135
|
+
private destroy$;
|
|
2136
|
+
private tasksSubject;
|
|
2137
|
+
private isSubscribed;
|
|
2138
|
+
private metadataTableRefreshSubject;
|
|
2139
|
+
private taskCompletedSubject;
|
|
2140
|
+
private exportTaskCompletedSubject;
|
|
2141
|
+
private readonly sessionId;
|
|
2142
|
+
private initiatedTasks;
|
|
2143
|
+
private libraryAsyncTaskService;
|
|
2144
|
+
private asyncExportService;
|
|
2145
|
+
private asyncImportService;
|
|
2146
|
+
private asyncValidationService;
|
|
2147
|
+
private toastService;
|
|
2148
|
+
private websocket;
|
|
2149
|
+
private modalService;
|
|
2150
|
+
private electronService;
|
|
2151
|
+
tasks$: Observable<AsyncTaskStatus[]>;
|
|
2152
|
+
activeTasks$: Observable<AsyncTaskStatus[]>;
|
|
2153
|
+
metadataTableRefresh$: Observable<number>;
|
|
2154
|
+
taskCompleted$: Observable<AsyncTaskStatus>;
|
|
2155
|
+
exportTaskCompleted$: Observable<AsyncTaskStatus>;
|
|
2156
|
+
constructor();
|
|
2157
|
+
ngOnDestroy(): void;
|
|
2158
|
+
private initializeService;
|
|
2159
|
+
startRealtimeUpdates(): void;
|
|
2160
|
+
stopRealtimeUpdates(): void;
|
|
2161
|
+
getTasks(): Observable<AsyncTaskStatus[]>;
|
|
2162
|
+
getTask(taskId: string): Observable<AsyncTaskStatus>;
|
|
2163
|
+
cancelTask(taskId: string): Observable<{
|
|
2164
|
+
message: string;
|
|
2165
|
+
}>;
|
|
2166
|
+
private generateSessionId;
|
|
2167
|
+
private isTaskInitiatedByThisTab;
|
|
2168
|
+
/**
|
|
2169
|
+
* Mark a task as initiated by this tab for tracking purposes
|
|
2170
|
+
*/
|
|
2171
|
+
monitorTask(taskId: string): void;
|
|
2172
|
+
queueExcelExport(request: MetadataExportRequest): Observable<AsyncTaskCreateResponse>;
|
|
2173
|
+
queueSdrfExport(request: MetadataExportRequest): Observable<AsyncTaskCreateResponse>;
|
|
2174
|
+
queueSdrfImport(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
2175
|
+
queueExcelImport(request: MetadataImportRequest): Observable<AsyncTaskCreateResponse>;
|
|
2176
|
+
queueBulkSdrfExport(request: BulkExportRequest): Observable<AsyncTaskCreateResponse>;
|
|
2177
|
+
queueBulkExcelExport(request: BulkExcelExportRequest): Observable<AsyncTaskCreateResponse>;
|
|
2178
|
+
downloadTaskResult(taskId: string): void;
|
|
2179
|
+
validateMetadataTable(validationRequest: MetadataValidationRequest): Observable<AsyncTaskCreateResponse>;
|
|
2180
|
+
private handleTaskUpdate;
|
|
2181
|
+
private showTaskProgressNotification;
|
|
2182
|
+
private showTaskCompletionNotification;
|
|
2183
|
+
getTaskDisplayName(taskType: string): string;
|
|
2184
|
+
getTaskStatusClass(status: string): string;
|
|
2185
|
+
formatDuration(duration: number | null): string;
|
|
2186
|
+
canCancelTask(status: string): boolean;
|
|
2187
|
+
canDownloadResult(task: AsyncTaskStatus): boolean;
|
|
2188
|
+
private isImportTask;
|
|
2189
|
+
private isExportTask;
|
|
2190
|
+
private handleExportTaskCompletion;
|
|
2191
|
+
private handleValidationTaskCompletion;
|
|
2192
|
+
private showValidationResultsModal;
|
|
2193
|
+
private handleImportTaskCompletion;
|
|
2194
|
+
private handleReorderTaskCompletion;
|
|
2195
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AsyncTaskUIService, never>;
|
|
2196
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AsyncTaskUIService>;
|
|
2197
|
+
}
|
|
2198
|
+
|
|
2199
|
+
declare class MetadataTableTemplates implements OnInit {
|
|
2200
|
+
private fb;
|
|
2201
|
+
private metadataTableTemplateService;
|
|
2202
|
+
private labGroupService;
|
|
2203
|
+
private modalService;
|
|
2204
|
+
private toastService;
|
|
2205
|
+
private asyncTaskService;
|
|
2206
|
+
searchForm: FormGroup;
|
|
2207
|
+
private searchParams;
|
|
2208
|
+
private labGroupParams;
|
|
2209
|
+
isLoading: i0.WritableSignal<boolean>;
|
|
2210
|
+
selectedLabGroup: i0.WritableSignal<LabGroup | null>;
|
|
2211
|
+
currentPage: i0.WritableSignal<number>;
|
|
2212
|
+
pageSize: i0.WritableSignal<number>;
|
|
2213
|
+
totalItems: i0.WritableSignal<number>;
|
|
2214
|
+
labGroupsCurrentPage: i0.WritableSignal<number>;
|
|
2215
|
+
labGroupsPageSize: i0.WritableSignal<number>;
|
|
2216
|
+
labGroupsTotalItems: i0.WritableSignal<number>;
|
|
2217
|
+
templatesData: i0.WritableSignal<MetadataTableTemplateQueryResponse>;
|
|
2218
|
+
labGroupsData: i0.WritableSignal<LabGroupQueryResponse>;
|
|
2219
|
+
hasTemplates: i0.Signal<boolean>;
|
|
2220
|
+
hasLabGroups: i0.Signal<boolean>;
|
|
2221
|
+
showTemplatesPagination: i0.Signal<boolean>;
|
|
2222
|
+
showLabGroupsPagination: i0.Signal<boolean>;
|
|
2223
|
+
availableSchemas: i0.WritableSignal<any[]>;
|
|
2224
|
+
isLoadingSchemas: i0.WritableSignal<boolean>;
|
|
2225
|
+
constructor(fb: FormBuilder, metadataTableTemplateService: MetadataTableTemplateService, labGroupService: LabGroupService, modalService: NgbModal, toastService: ToastService, asyncTaskService: AsyncTaskUIService);
|
|
2226
|
+
ngOnInit(): void;
|
|
2227
|
+
private loadInitialData;
|
|
2228
|
+
private loadLabGroupsWithParams;
|
|
2229
|
+
private setupSearch;
|
|
2230
|
+
private loadTemplatesWithParams;
|
|
2231
|
+
onLabGroupChange(event: Event): void;
|
|
2232
|
+
private findLabGroupById;
|
|
2233
|
+
getLabGroupName(labGroupId: number | undefined): string;
|
|
2234
|
+
onPageChange(page: number): void;
|
|
2235
|
+
onLabGroupsPageChange(page: number): void;
|
|
2236
|
+
createTemplate(): void;
|
|
2237
|
+
editTemplate(template: MetadataTableTemplate): void;
|
|
2238
|
+
deleteTemplate(template: MetadataTableTemplate): void;
|
|
2239
|
+
duplicateTemplate(template: MetadataTableTemplate): void;
|
|
2240
|
+
private openTemplateModal;
|
|
2241
|
+
private handleTemplateSave;
|
|
2242
|
+
private refreshTemplates;
|
|
2243
|
+
private loadAvailableSchemas;
|
|
2244
|
+
createTemplateWithCustomSchemas(): void;
|
|
2245
|
+
private openSchemaSelectionModal;
|
|
2246
|
+
private handleSchemaTemplateCreation;
|
|
2247
|
+
createTableFromTemplate(template: MetadataTableTemplate): void;
|
|
2248
|
+
private openTableCreationModal;
|
|
2249
|
+
private handleTableCreation;
|
|
2250
|
+
/**
|
|
2251
|
+
* Reorder template columns by schema selection
|
|
2252
|
+
*/
|
|
2253
|
+
reorderTemplateColumns(template: MetadataTableTemplate): void;
|
|
2254
|
+
/**
|
|
2255
|
+
* Perform the actual template column reordering with async task monitoring
|
|
2256
|
+
*/
|
|
2257
|
+
private performTemplateColumnReorder;
|
|
2258
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MetadataTableTemplates, never>;
|
|
2259
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MetadataTableTemplates, "ccv-metadata-table-templates", never, {}, {}, never, never, true, never>;
|
|
2260
|
+
}
|
|
2261
|
+
|
|
2262
|
+
declare class MetadataTableTemplateEditModal implements OnInit {
|
|
2263
|
+
private fb;
|
|
2264
|
+
private activeModal;
|
|
2265
|
+
private modalService;
|
|
2266
|
+
private metadataTableTemplateService;
|
|
2267
|
+
private toastService;
|
|
2268
|
+
template: MetadataTableTemplate | null;
|
|
2269
|
+
labGroups: LabGroup[];
|
|
2270
|
+
isEdit: boolean;
|
|
2271
|
+
templateSaved: EventEmitter<Partial<MetadataTableTemplate>>;
|
|
2272
|
+
editForm: FormGroup;
|
|
2273
|
+
isLoading: i0.WritableSignal<boolean>;
|
|
2274
|
+
_templateColumns: i0.WritableSignal<MetadataColumn[]>;
|
|
2275
|
+
templateColumns: i0.Signal<MetadataColumn[]>;
|
|
2276
|
+
visibilityOptions: {
|
|
2277
|
+
value: ResourceVisibility;
|
|
2278
|
+
label: string;
|
|
2279
|
+
}[];
|
|
2280
|
+
constructor(fb: FormBuilder, activeModal: NgbActiveModal, modalService: NgbModal, metadataTableTemplateService: MetadataTableTemplateService, toastService: ToastService);
|
|
2281
|
+
ngOnInit(): void;
|
|
2282
|
+
private populateForm;
|
|
2283
|
+
onSubmit(): void;
|
|
2284
|
+
private markFormGroupTouched;
|
|
2285
|
+
onCancel(): void;
|
|
2286
|
+
onClose(): void;
|
|
2287
|
+
getFieldError(fieldName: string): string;
|
|
2288
|
+
get title(): string;
|
|
2289
|
+
addColumn(): void;
|
|
2290
|
+
addColumnWithAutoReorder(): void;
|
|
2291
|
+
editColumn(column: MetadataColumn): void;
|
|
2292
|
+
duplicateColumn(column: MetadataColumn): void;
|
|
2293
|
+
removeColumn(column: MetadataColumn): void;
|
|
2294
|
+
onColumnDrop(event: CdkDragDrop<MetadataColumn[]>): void;
|
|
2295
|
+
private openColumnModal;
|
|
2296
|
+
private handleColumnSave;
|
|
2297
|
+
private handleColumnSaveWithAutoReorder;
|
|
2298
|
+
private reloadTemplateColumns;
|
|
2299
|
+
private generateTempId;
|
|
2300
|
+
private getNextPositionForSameType;
|
|
2301
|
+
private getNextPositionForNameType;
|
|
2302
|
+
private normalizeColumnPositions;
|
|
2303
|
+
private enforceGrouping;
|
|
2304
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MetadataTableTemplateEditModal, never>;
|
|
2305
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MetadataTableTemplateEditModal, "ccv-metadata-table-template-edit-modal", never, { "template": { "alias": "template"; "required": false; }; "labGroups": { "alias": "labGroups"; "required": false; }; "isEdit": { "alias": "isEdit"; "required": false; }; }, { "templateSaved": "templateSaved"; }, never, never, true, never>;
|
|
2306
|
+
}
|
|
2307
|
+
|
|
2308
|
+
declare class ColumnEditModal implements OnInit {
|
|
2309
|
+
private fb;
|
|
2310
|
+
private activeModal;
|
|
2311
|
+
private modalService;
|
|
2312
|
+
private metadataColumnTemplateService;
|
|
2313
|
+
private sdrfSyntaxService;
|
|
2314
|
+
column: MetadataColumn | null;
|
|
2315
|
+
templateId: number | null;
|
|
2316
|
+
isEdit: boolean;
|
|
2317
|
+
columnSaved: EventEmitter<Partial<MetadataColumn>>;
|
|
2318
|
+
editForm: FormGroup;
|
|
2319
|
+
isLoading: i0.WritableSignal<boolean>;
|
|
2320
|
+
showAdvancedMode: i0.WritableSignal<boolean>;
|
|
2321
|
+
selectedOntologyConfig: OntologyTypeConfig | null;
|
|
2322
|
+
columnTypes: ColumnTypeConfig[];
|
|
2323
|
+
ontologyTypes: OntologyTypeConfig[];
|
|
2324
|
+
templateFilter: string;
|
|
2325
|
+
selectedTemplateId: number | string;
|
|
2326
|
+
selectedTemplate: MetadataColumnTemplate | null;
|
|
2327
|
+
templates: MetadataColumnTemplate[];
|
|
2328
|
+
isLoadingTemplates: boolean;
|
|
2329
|
+
currentTemplatePage: number;
|
|
2330
|
+
templatePageSize: number;
|
|
2331
|
+
totalTemplates: number;
|
|
2332
|
+
totalTemplatePages: number;
|
|
2333
|
+
Math: Math;
|
|
2334
|
+
officialSdrfColumns: SdrfColumnConfig[];
|
|
2335
|
+
showOfficialColumns: boolean;
|
|
2336
|
+
selectedOfficialColumn: SdrfColumnConfig | null;
|
|
2337
|
+
availableOfficialColumns: SdrfColumnConfig[];
|
|
2338
|
+
showTemplateSwap: boolean;
|
|
2339
|
+
showCreateCustomTemplate: boolean;
|
|
2340
|
+
constructor(fb: FormBuilder, activeModal: NgbActiveModal, modalService: NgbModal, metadataColumnTemplateService: MetadataColumnTemplateService, sdrfSyntaxService: SdrfSyntaxService);
|
|
2341
|
+
ngOnInit(): void;
|
|
2342
|
+
private populateForm;
|
|
2343
|
+
onSubmit(): void;
|
|
2344
|
+
private markFormGroupTouched;
|
|
2345
|
+
onCancel(): void;
|
|
2346
|
+
onClose(): void;
|
|
2347
|
+
getFieldError(fieldName: string): string;
|
|
2348
|
+
get title(): string;
|
|
2349
|
+
get hasOntologyType(): boolean;
|
|
2350
|
+
get hasTypeaheadEnabled(): boolean;
|
|
2351
|
+
openValueEditModal(): void;
|
|
2352
|
+
private loadColumnTemplates;
|
|
2353
|
+
onTemplateFilterChange(): void;
|
|
2354
|
+
clearTemplateFilter(): void;
|
|
2355
|
+
onTemplatePageChange(page: number): void;
|
|
2356
|
+
onTemplateSelectionChange(): void;
|
|
2357
|
+
clearTemplate(): void;
|
|
2358
|
+
getOntologyTypeLabel(ontologyType: string): string;
|
|
2359
|
+
toggleOfficialColumns(): void;
|
|
2360
|
+
selectOfficialColumn(column: SdrfColumnConfig): void;
|
|
2361
|
+
private filterOfficialColumns;
|
|
2362
|
+
private getDefaultOntologyTypeForColumn;
|
|
2363
|
+
private shouldEnableTypeaheadForColumn;
|
|
2364
|
+
private isColumnMandatory;
|
|
2365
|
+
showTemplateSwapOptions(): void;
|
|
2366
|
+
swapToTemplate(template: MetadataColumnTemplate): void;
|
|
2367
|
+
showCreateCustomTemplateOption(): void;
|
|
2368
|
+
createCustomTemplate(): void;
|
|
2369
|
+
cancelTemplateSwap(): void;
|
|
2370
|
+
toggleAdvancedMode(): void;
|
|
2371
|
+
onOntologyTypeChange(event: Event): void;
|
|
2372
|
+
private getCorrectedColumnType;
|
|
2373
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnEditModal, never>;
|
|
2374
|
+
static ɵcmp: i0.ɵɵ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>;
|
|
2375
|
+
}
|
|
2376
|
+
|
|
2377
|
+
interface TemplateSchemaSelectionResult {
|
|
2378
|
+
name: string;
|
|
2379
|
+
description: string;
|
|
2380
|
+
schemaIds: number[];
|
|
2381
|
+
labGroupId?: number;
|
|
2382
|
+
visibility: ResourceVisibility;
|
|
2383
|
+
isDefault: boolean;
|
|
2384
|
+
}
|
|
2385
|
+
declare class TemplateSchemaSelectionModal {
|
|
2386
|
+
private fb;
|
|
2387
|
+
activeModal: NgbActiveModal;
|
|
2388
|
+
availableSchemas: any[];
|
|
2389
|
+
labGroups: any[];
|
|
2390
|
+
templateCreated: EventEmitter<TemplateSchemaSelectionResult>;
|
|
2391
|
+
templateForm: FormGroup;
|
|
2392
|
+
selectedSchemas: i0.WritableSignal<Set<number>>;
|
|
2393
|
+
selectedSchemasCount: i0.Signal<number>;
|
|
2394
|
+
constructor(fb: FormBuilder, activeModal: NgbActiveModal);
|
|
2395
|
+
toggleSchema(schemaId: number): void;
|
|
2396
|
+
onSchemaCheckChange(event: Event, schemaId: number): void;
|
|
2397
|
+
isSchemaSelected(schemaId: number): boolean;
|
|
2398
|
+
getSelectedSchemas(): number[];
|
|
2399
|
+
removeSchema(schemaId: number): void;
|
|
2400
|
+
getSchemaDisplayName(schemaId: number): string;
|
|
2401
|
+
private updateDescription;
|
|
2402
|
+
canCreateTemplate(): boolean;
|
|
2403
|
+
onCreateTemplate(): void;
|
|
2404
|
+
onCancel(): void;
|
|
2405
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TemplateSchemaSelectionModal, never>;
|
|
2406
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TemplateSchemaSelectionModal, "ccv-template-schema-selection-modal", never, { "availableSchemas": { "alias": "availableSchemas"; "required": false; }; "labGroups": { "alias": "labGroups"; "required": false; }; }, { "templateCreated": "templateCreated"; }, never, never, true, never>;
|
|
2407
|
+
}
|
|
2408
|
+
|
|
2409
|
+
interface TableCreationData {
|
|
2410
|
+
name: string;
|
|
2411
|
+
templateId: number;
|
|
2412
|
+
sampleCount?: number;
|
|
2413
|
+
description?: string;
|
|
2414
|
+
labGroupId?: number;
|
|
2415
|
+
}
|
|
2416
|
+
declare class TableCreationModalComponent implements OnInit {
|
|
2417
|
+
private fb;
|
|
2418
|
+
activeModal: NgbActiveModal;
|
|
2419
|
+
template: MetadataTableTemplate;
|
|
2420
|
+
labGroups: LabGroup[];
|
|
2421
|
+
selectedLabGroupId?: number;
|
|
2422
|
+
tableCreated: EventEmitter<TableCreationData>;
|
|
2423
|
+
tableForm: FormGroup;
|
|
2424
|
+
isCreating: boolean;
|
|
2425
|
+
errorMessage: string | null;
|
|
2426
|
+
constructor(fb: FormBuilder, activeModal: NgbActiveModal);
|
|
2427
|
+
ngOnInit(): void;
|
|
2428
|
+
onSubmit(): void;
|
|
2429
|
+
onClose(): void;
|
|
2430
|
+
setCreatingState(isCreating: boolean): void;
|
|
2431
|
+
setErrorMessage(message: string | null): void;
|
|
2432
|
+
getFieldError(fieldName: string): string | null;
|
|
2433
|
+
private getFieldLabel;
|
|
2434
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableCreationModalComponent, never>;
|
|
2435
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableCreationModalComponent, "ccv-table-creation-modal", never, { "template": { "alias": "template"; "required": false; }; "labGroups": { "alias": "labGroups"; "required": false; }; "selectedLabGroupId": { "alias": "selectedLabGroupId"; "required": false; }; }, { "tableCreated": "tableCreated"; }, never, never, true, never>;
|
|
2436
|
+
}
|
|
2437
|
+
|
|
2438
|
+
interface SchemaSelectionResult {
|
|
2439
|
+
selectedSchemaIds: number[];
|
|
2440
|
+
}
|
|
2441
|
+
declare class SchemaSelectionModal implements OnInit, OnDestroy {
|
|
2442
|
+
activeModal: NgbActiveModal;
|
|
2443
|
+
private schemaService;
|
|
2444
|
+
private toastService;
|
|
2445
|
+
private destroy$;
|
|
2446
|
+
title: string;
|
|
2447
|
+
description: string;
|
|
2448
|
+
isLoading: i0.WritableSignal<boolean>;
|
|
2449
|
+
availableSchemas: i0.WritableSignal<Schema[]>;
|
|
2450
|
+
selectedSchemaIds: i0.WritableSignal<Set<number>>;
|
|
2451
|
+
searchTerm: i0.WritableSignal<string>;
|
|
2452
|
+
constructor(activeModal: NgbActiveModal, schemaService: SchemaService, toastService: ToastService);
|
|
2453
|
+
ngOnInit(): void;
|
|
2454
|
+
ngOnDestroy(): void;
|
|
2455
|
+
private loadAvailableSchemas;
|
|
2456
|
+
get filteredSchemas(): Schema[];
|
|
2457
|
+
toggleSchemaSelection(schemaId: number): void;
|
|
2458
|
+
isSchemaSelected(schemaId: number): boolean;
|
|
2459
|
+
selectAll(): void;
|
|
2460
|
+
clearSelection(): void;
|
|
2461
|
+
onCancel(): void;
|
|
2462
|
+
onConfirm(): void;
|
|
2463
|
+
getBadgeClass(category?: string): string;
|
|
2464
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SchemaSelectionModal, never>;
|
|
2465
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SchemaSelectionModal, "ccv-schema-selection-modal", never, {}, {}, never, never, true, never>;
|
|
2466
|
+
}
|
|
2467
|
+
|
|
1485
2468
|
declare class CupcakeVanilla {
|
|
1486
2469
|
static ɵfac: i0.ɵɵFactoryDeclaration<CupcakeVanilla, never>;
|
|
1487
2470
|
static ɵcmp: i0.ɵɵComponentDeclaration<CupcakeVanilla, "ccv-cupcake-vanilla", never, {}, {}, never, never, true, never>;
|
|
1488
2471
|
}
|
|
1489
2472
|
|
|
1490
|
-
export { AsyncExportService, AsyncImportService, AsyncTaskService, AsyncValidationService, ChunkedUploadService, CupcakeVanilla, FavouriteMetadataOptionService, MetadataColumnService, MetadataColumnTemplateService, MetadataColumnTemplateShareService, MetadataManagementService, MetadataTableService, MetadataTableTemplateService, OntologySearchService, OntologyType, OntologyTypeLabels, OntologyUtils, SDRFDefaultsService, SamplePoolService, SchemaService, TASK_STATUS_COLORS, TASK_STATUS_LABELS, TASK_TYPE_LABELS, TemplatePermissionLabels, TemplatePermissionLevel, isUnimodFullData };
|
|
1491
|
-
export type { ApiResponse, AsyncTaskCreateResponse, AsyncTaskQueryParams, AsyncTaskStatus, BaseTimestampedModel, BulkExcelExportRequest, BulkExportRequest, CellOntology, ChEBICompound, ChunkedUploadCompletionRequest, ChunkedUploadCompletionResponse, ChunkedUploadRequest, ChunkedUploadResponse, ChunkedUploadStatus, DownloadUrlResponse, FavouriteMetadataOption, FavouriteMetadataOptionCreateRequest, FavouriteMetadataOptionQueryParams, FavouriteMetadataOptionUpdateRequest, HumanDisease, MSUniqueVocabularies, MetadataColumn, MetadataColumnCreateRequest, MetadataColumnModifier, MetadataColumnQueryParams, MetadataColumnTemplate, MetadataColumnTemplateCreateRequest, MetadataColumnTemplateQueryParams, MetadataColumnTemplateShare, MetadataColumnTemplateShareCreateRequest, MetadataColumnTemplateShareQueryParams, MetadataColumnTemplateUpdateRequest, MetadataColumnUpdateRequest, MetadataExportRequest, MetadataImportRequest, MetadataQueryParams, MetadataTable, MetadataTableCreateRequest, MetadataTableQueryParams, MetadataTableQueryResponse, MetadataTableTemplate, MetadataTableTemplateCreateRequest, MetadataTableTemplateQueryParams, MetadataTableTemplateQueryResponse, MetadataTableTemplateUpdateRequest, MetadataTableUpdateRequest, MetadataValidationConfig, MetadataValidationRequest, MondoDisease, NCBITaxonomy, OntologySuggestion, OntologySuggestionResponse, PSIMSOntology, PaginatedResponse, SamplePool, SamplePoolCreateRequest, SamplePoolQueryParams, SamplePoolUpdateRequest, Schema, SchemaQueryParams, Species, SubcellularLocation, TaskListItem, TaskResult, TaskStatus, TaskType, Tissue, UberonAnatomy, Unimod, UnimodFullData, UnimodSpecification };
|
|
2473
|
+
export { AdminWebSocketService, AsyncExportService, AsyncImportService, AsyncTaskService, AsyncTaskUIService, AsyncValidationService, COLUMN_TYPE_CONFIGS, ChunkedImportService, ChunkedUploadService, ColumnEditModal, ColumnType, CupcakeVanilla, ElectronService, ExcelExportModalComponent, FavouriteMetadataOptionService, MSTermType, MetadataColumnService, MetadataColumnTemplateService, MetadataColumnTemplateShareService, MetadataManagementService, MetadataTableEditModal, MetadataTableService, MetadataTableTemplateEditModal, MetadataTableTemplateService, MetadataTableTemplates, MetadataValidationModal, MetadataValueEditModal, NotificationService, NotificationType, OFFICIAL_SDRF_COLUMNS, ONTOLOGY_TYPE_CONFIGS, OntologySearchService, OntologyType, OntologyTypeLabels, OntologyUtils, SDRFDefaultsService, SamplePoolService, SchemaSelectionModal, SchemaService, SdrfAgeInput, SdrfCleavageInput, SdrfColumnCategory, SdrfModificationInput, SdrfSpikedCompoundInput, SdrfSyntaxService, TASK_STATUS_COLORS, TASK_STATUS_LABELS, TASK_TYPE_LABELS, TableCreationModalComponent, TemplatePermissionLabels, TemplatePermissionLevel, TemplateSchemaSelectionModal, ValidationResultsModal, Websocket, getRequiredSdrfColumns, getSdrfColumnByName, getSdrfColumnsByCategory, isSdrfColumnRequired, isUnimodFullData };
|
|
2474
|
+
export type { AgeFormat, ApiResponse, AsyncTaskCreateResponse, AsyncTaskQueryParams, AsyncTaskStatus, BaseTimestampedModel, BulkExcelExportRequest, BulkExportRequest, CellOntology, ChEBICompound, ChunkedFileImportRequest, ChunkedImportProgress, ChunkedImportRequest, ChunkedUploadCompletionRequest, ChunkedUploadCompletionResponse, ChunkedUploadRequest, ChunkedUploadResponse, ChunkedUploadStatus, CleavageAgentDetails, ColumnTypeConfig, DownloadUrlResponse, ElectronAPI, ExcelExportOptions, FavouriteMetadataOption, FavouriteMetadataOptionCreateRequest, FavouriteMetadataOptionQueryParams, FavouriteMetadataOptionUpdateRequest, HumanDisease, MSUniqueVocabularies, MetadataColumn, MetadataColumnCreateRequest, MetadataColumnModifier, MetadataColumnQueryParams, MetadataColumnTemplate, MetadataColumnTemplateCreateRequest, MetadataColumnTemplateQueryParams, MetadataColumnTemplateShare, MetadataColumnTemplateShareCreateRequest, MetadataColumnTemplateShareQueryParams, MetadataColumnTemplateUpdateRequest, MetadataColumnUpdateRequest, MetadataExportRequest, MetadataImportRequest, MetadataQueryParams, MetadataTable, MetadataTableCreateRequest, MetadataTableQueryParams, MetadataTableQueryResponse, MetadataTableTemplate, MetadataTableTemplateCreateRequest, MetadataTableTemplateQueryParams, MetadataTableTemplateQueryResponse, MetadataTableTemplateUpdateRequest, MetadataTableUpdateRequest, MetadataValidationConfig, MetadataValidationRequest, MetadataValueEditConfig, ModificationParameters, MondoDisease, NCBITaxonomy, OntologyCustomFilter, OntologySuggestion, OntologySuggestionResponse, OntologyTypeConfig, PSIMSOntology, PaginatedResponse, PooledSample, SampleCountConfirmationError, SampleCountValidationRequest, SampleCountValidationResponse, SampleCountValidationResult, SamplePool, SamplePoolCreateRequest, SamplePoolQueryParams, SamplePoolUpdateRequest, Schema, SchemaQueryParams, SchemaSelectionResult, SdrfColumnConfig, Species, SpikedCompound, SubcellularLocation, SyntaxType, SyntheticPeptide, TableCreationData, TaskListItem, TaskResult, TaskStatus, TaskType, TemplateSchemaSelectionResult, Tissue, UberonAnatomy, Unimod, UnimodFullData, UnimodSpecification, ValidationResult, ValidationResults };
|