mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	chore(client/ts): port options_widget
This commit is contained in:
		
							
								
								
									
										99
									
								
								src/services/options_interface.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								src/services/options_interface.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
import { KeyboardActionNames } from "./keyboard_actions_interface.js";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * A dictionary where the keys are the option keys (e.g. `theme`) and their corresponding values.
 | 
			
		||||
 */
 | 
			
		||||
export type OptionMap = Record<OptionNames, string>;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * For each keyboard action, there is a corresponding option which identifies the key combination defined by the user.
 | 
			
		||||
 */
 | 
			
		||||
type KeyboardShortcutsOptions<T extends KeyboardActionNames> = {
 | 
			
		||||
    [key in T as `keyboardShortcuts${Capitalize<key>}`]: string
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export interface OptionDefinitions extends KeyboardShortcutsOptions<KeyboardActionNames> {
 | 
			
		||||
    "openNoteContexts": string;
 | 
			
		||||
    "lastDailyBackupDate": string;
 | 
			
		||||
    "lastWeeklyBackupDate": string;
 | 
			
		||||
    "lastMonthlyBackupDate": string;
 | 
			
		||||
    "dbVersion": string;
 | 
			
		||||
    "theme": string;
 | 
			
		||||
    "syncServerHost": string;
 | 
			
		||||
    "syncServerTimeout": string;
 | 
			
		||||
    "syncProxy": string;
 | 
			
		||||
    "mainFontFamily": string;
 | 
			
		||||
    "treeFontFamily": string;
 | 
			
		||||
    "detailFontFamily": string;
 | 
			
		||||
    "monospaceFontFamily": string;
 | 
			
		||||
    "spellCheckLanguageCode": string;
 | 
			
		||||
    "codeNotesMimeTypes": string;
 | 
			
		||||
    "headingStyle": string;
 | 
			
		||||
    "highlightsList": string;
 | 
			
		||||
    "customSearchEngineName": string;
 | 
			
		||||
    "customSearchEngineUrl": string;
 | 
			
		||||
    "locale": string;
 | 
			
		||||
    "codeBlockTheme": string;
 | 
			
		||||
    "textNoteEditorType": string;
 | 
			
		||||
    "layoutOrientation": string;
 | 
			
		||||
    "allowedHtmlTags": string;
 | 
			
		||||
    "documentId": string;
 | 
			
		||||
    "documentSecret": string;
 | 
			
		||||
    "passwordVerificationHash": string;
 | 
			
		||||
    "passwordVerificationSalt": string;
 | 
			
		||||
    "passwordDerivedKeySalt": string;
 | 
			
		||||
    "encryptedDataKey": string;
 | 
			
		||||
 | 
			
		||||
    "lastSyncedPull": number;
 | 
			
		||||
    "lastSyncedPush": number;
 | 
			
		||||
    "revisionSnapshotTimeInterval": number;
 | 
			
		||||
    "revisionSnapshotNumberLimit": number;
 | 
			
		||||
    "protectedSessionTimeout": number;
 | 
			
		||||
    "zoomFactor": number;
 | 
			
		||||
    "mainFontSize": number;
 | 
			
		||||
    "treeFontSize": number;
 | 
			
		||||
    "detailFontSize": number;
 | 
			
		||||
    "monospaceFontSize": number;
 | 
			
		||||
    "imageMaxWidthHeight": number;
 | 
			
		||||
    "imageJpegQuality": number;
 | 
			
		||||
    "leftPaneWidth": number;
 | 
			
		||||
    "rightPaneWidth": number;
 | 
			
		||||
    "eraseEntitiesAfterTimeInSeconds": number;
 | 
			
		||||
    "autoReadonlySizeText": number;
 | 
			
		||||
    "autoReadonlySizeCode": number;
 | 
			
		||||
    "maxContentWidth": number;
 | 
			
		||||
    "minTocHeadings": number;
 | 
			
		||||
    "eraseUnusedAttachmentsAfterSeconds": number;
 | 
			
		||||
    "firstDayOfWeek": number;
 | 
			
		||||
 | 
			
		||||
    "initialized": boolean;
 | 
			
		||||
    "overrideThemeFonts": boolean;
 | 
			
		||||
    "spellCheckEnabled": boolean;
 | 
			
		||||
    "autoFixConsistencyIssues": boolean;
 | 
			
		||||
    "vimKeymapEnabled": boolean;
 | 
			
		||||
    "codeLineWrapEnabled": boolean;
 | 
			
		||||
    "leftPaneVisible": boolean;
 | 
			
		||||
    "rightPaneVisible": boolean;
 | 
			
		||||
    "nativeTitleBarVisible": boolean;
 | 
			
		||||
    "hideArchivedNotes_main": boolean;
 | 
			
		||||
    "debugModeEnabled": boolean;
 | 
			
		||||
    "autoCollapseNoteTree": boolean;
 | 
			
		||||
    "dailyBackupEnabled": boolean;
 | 
			
		||||
    "weeklyBackupEnabled": boolean;
 | 
			
		||||
    "monthlyBackupEnabled": boolean;
 | 
			
		||||
    "compressImages": boolean;
 | 
			
		||||
    "downloadImagesAutomatically": boolean;
 | 
			
		||||
    "checkForUpdates": boolean;
 | 
			
		||||
    "disableTray": boolean;
 | 
			
		||||
    "promotedAttributesOpenInRibbon": boolean;
 | 
			
		||||
    "editedNotesOpenInRibbon": boolean;
 | 
			
		||||
    "codeBlockWordWrap": boolean;
 | 
			
		||||
    "textNoteEditorMultilineToolbar": boolean;
 | 
			
		||||
    "backgroundEffects": boolean;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export type OptionNames = keyof OptionDefinitions;
 | 
			
		||||
 | 
			
		||||
export type FilterOptionsByType<U> = {
 | 
			
		||||
    [K in keyof OptionDefinitions]: OptionDefinitions[K] extends U ? K : never;
 | 
			
		||||
}[keyof OptionDefinitions];
 | 
			
		||||
		Reference in New Issue
	
	Block a user