using AIStudio.Settings; namespace AIStudio.Components; /// /// A data structure to map a name to a value. /// /// The name of the value, to be displayed in the UI. /// The value to be stored. /// The type of the value to store. public readonly record struct ConfigurationSelectData(string Name, T Value); /// /// A static factory class to get the lists of selectable values. /// public static class ConfigurationSelectDataFactory { public static IEnumerable> GetSendBehaviorData() { yield return new("No key is sending the input", SendBehavior.NO_KEY_IS_SENDING); yield return new("Modifier key + enter is sending the input", SendBehavior.MODIFER_ENTER_IS_SENDING); yield return new("Enter is sending the input", SendBehavior.ENTER_IS_SENDING); } public static IEnumerable> GetUpdateBehaviorData() { yield return new("No automatic update checks", UpdateBehavior.NO_CHECK); yield return new("Once at startup", UpdateBehavior.ONCE_STARTUP); yield return new("Check every hour", UpdateBehavior.HOURLY); yield return new("Check every day", UpdateBehavior.DAILY); yield return new ("Check every week", UpdateBehavior.WEEKLY); } public static IEnumerable> GetWorkspaceStorageBehaviorData() { yield return new("Disable workspaces", WorkspaceStorageBehavior.DISABLE_WORKSPACES); yield return new("Store chats automatically", WorkspaceStorageBehavior.STORE_CHATS_AUTOMATICALLY); yield return new("Store chats manually", WorkspaceStorageBehavior.STORE_CHATS_MANUALLY); } public static IEnumerable> GetWorkspaceStorageTemporaryMaintenancePolicyData() { yield return new("No automatic maintenance for temporary chats", WorkspaceStorageTemporaryMaintenancePolicy.NO_AUTOMATIC_MAINTENANCE); yield return new("Delete temporary chats older than 7 days", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_7_DAYS); yield return new("Delete temporary chats older than 30 days", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_30_DAYS); yield return new("Delete temporary chats older than 90 days", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_90_DAYS); yield return new("Delete temporary chats older than 180 days", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_180_DAYS); yield return new("Delete temporary chats older than 1 year", WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_365_DAYS); } public static IEnumerable> GetNavBehaviorData() { yield return new("Navigation expands on mouse hover", NavBehavior.EXPAND_ON_HOVER); yield return new("Navigation never expands, but there are tooltips", NavBehavior.NEVER_EXPAND_USE_TOOLTIPS); yield return new("Navigation never expands, no tooltips", NavBehavior.NEVER_EXPAND_NO_TOOLTIPS); yield return new("Always expand navigation", NavBehavior.ALWAYS_EXPAND); } }