import { Settings_Chronologys, Settings_General, Settings_Minigame, Settings_Project, Settings_TextEditor, SettingsData_V1 } from "./settings-types.mjs"; export const SETTINGS_ATOM = 'settings'; // #region SettingsType enum export const SETTINGS_TYPE_GENERAL = 'general'; export const SETTINGS_TYPE_TEXTEDITOR = 'text-editor'; export const SETTINGS_TYPE_PROJECTS = 'projects'; export const SETTINGS_TYPE_PROJECTSEXPLORER = 'projects-explorer'; export const SETTINGS_TYPE_PROJECTSDROPDOWN = 'projects-dropdown'; export const SETTINGS_TYPE_PROJECT = 'project'; export const SETTINGS_TYPE_MINIGAME = 'minigame'; export const SETTINGS_TYPE_CHRONOLOGYS = 'chronologys'; export const SETTINGS_TYPE_IDENTITY_MANAGER = 'identity-manager'; /** * Discriminator for Settings info */ export type SettingsType = | typeof SETTINGS_TYPE_GENERAL | typeof SETTINGS_TYPE_TEXTEDITOR | typeof SETTINGS_TYPE_PROJECTS | typeof SETTINGS_TYPE_PROJECTSEXPLORER | typeof SETTINGS_TYPE_PROJECTSDROPDOWN | typeof SETTINGS_TYPE_PROJECT | typeof SETTINGS_TYPE_MINIGAME | typeof SETTINGS_TYPE_CHRONOLOGYS | typeof SETTINGS_TYPE_IDENTITY_MANAGER | (string & {}) ; export const SettingsType = { general: SETTINGS_TYPE_GENERAL, textEditor: SETTINGS_TYPE_TEXTEDITOR, projects: SETTINGS_TYPE_PROJECTS, projectsExplorer: SETTINGS_TYPE_PROJECTSEXPLORER, projectsDropdown: SETTINGS_TYPE_PROJECTSDROPDOWN, project: SETTINGS_TYPE_PROJECT, minigame: SETTINGS_TYPE_MINIGAME, chronologys: SETTINGS_TYPE_CHRONOLOGYS, identityManager: SETTINGS_TYPE_IDENTITY_MANAGER, } as const; export const SETTINGS_TYPE_VALID_VALUES: readonly string[] = Object.values(SettingsType); export function isSettingsType(value: any): value is SettingsType { return typeof value === 'string' && value.length > 0; } // #endregion SettingsType enum export const DEFAULT_SETTINGS_GENERAL: Settings_General = { type: SettingsType.general, editor: undefined, readonly: true, viewer: 'ibgib-raw-viewer', } export const DEFAULT_SETTINGS_TEXTEDITOR: Settings_TextEditor = { type: SettingsType.textEditor, wrap: 'wrap', } export const DEFAULT_SETTINGS_PROJECT: Settings_Project = { type: SettingsType.project, openChildTjpAddrs: [], activeChildTjpAddr: undefined, lensMode: 'raw', } export const DEFAULT_SETTINGS_MINIGAME: Settings_Minigame = { type: SettingsType.minigame, } export const DEFAULT_SETTINGS_CHRONOLOGYS: Settings_Chronologys = { type: SettingsType.chronologys, openChildTjpAddrs: [], activeChildTjpAddr: undefined, } export const DEFAULT_SETTINGS_IDENTITY_MANAGER = { type: SettingsType.identityManager, openChildTjpAddrs: [], activeChildTjpAddr: undefined, } export const DEFAULT_SETTINGS_DATA_V1: SettingsData_V1 = { sections: {}, children: {}, }