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