diff --git a/packages/ketcher-core/src/application/formatters/formatProperties.ts b/packages/ketcher-core/src/application/formatters/formatProperties.ts index 17ca6c2ca0..b1b09e7bde 100644 --- a/packages/ketcher-core/src/application/formatters/formatProperties.ts +++ b/packages/ketcher-core/src/application/formatters/formatProperties.ts @@ -132,6 +132,12 @@ const formatProperties: FormatPropertiesMap = { ['.fasta'], true, ), + idt: new SupportedFormatProperties( + 'IDT', + ChemicalMimeType.IDT, + ['.idt'], + false, + ), sequence: new SupportedFormatProperties( 'SEQUENCE', ChemicalMimeType.SEQUENCE, diff --git a/packages/ketcher-core/src/application/formatters/structFormatter.types.ts b/packages/ketcher-core/src/application/formatters/structFormatter.types.ts index bbdadb54b0..52e79160eb 100644 --- a/packages/ketcher-core/src/application/formatters/structFormatter.types.ts +++ b/packages/ketcher-core/src/application/formatters/structFormatter.types.ts @@ -51,6 +51,7 @@ export enum SupportedFormat { sdfV3000 = 'sdfV3000', fasta = 'fasta', sequence = 'sequence', + idt = 'idt', unknown = 'unknown', } diff --git a/packages/ketcher-core/src/application/ketcher.ts b/packages/ketcher-core/src/application/ketcher.ts index af8f854c03..57dc6f1ff0 100644 --- a/packages/ketcher-core/src/application/ketcher.ts +++ b/packages/ketcher-core/src/application/ketcher.ts @@ -162,6 +162,15 @@ export class Ketcher { return molfile; } + getIdt(): Promise { + return getStructure( + SupportedFormat.idt, + this.#formatterFactory, + this.#editor.struct(), + CoreEditor.provideEditorInstance()?.drawingEntitiesManager, + ); + } + async getRxn(molfileFormat: MolfileFormat = 'v2000'): Promise { if (window.isPolymerEditorTurnedOn) { throw new Error('RXN format is not available in macro mode'); diff --git a/packages/ketcher-core/src/domain/services/struct/structService.types.ts b/packages/ketcher-core/src/domain/services/struct/structService.types.ts index 4e652d2da5..617b1bdb0d 100644 --- a/packages/ketcher-core/src/domain/services/struct/structService.types.ts +++ b/packages/ketcher-core/src/domain/services/struct/structService.types.ts @@ -34,6 +34,7 @@ export enum ChemicalMimeType { RNA = 'chemical/x-rna-sequence', DNA = 'chemical/x-dna-sequence', PEPTIDE = 'chemical/x-peptide-sequence', + IDT = 'chemical/x-idt', } export interface WithStruct { diff --git a/packages/ketcher-macromolecules/src/components/modal/Open/Open.tsx b/packages/ketcher-macromolecules/src/components/modal/Open/Open.tsx index 6f9a5581b5..4280f476a1 100644 --- a/packages/ketcher-macromolecules/src/components/modal/Open/Open.tsx +++ b/packages/ketcher-macromolecules/src/components/modal/Open/Open.tsx @@ -95,6 +95,7 @@ const options: Array