import type {HomePageTab} from '../../../routes'; import type {ValueOf} from '../../../types/common'; import {AclSyntax} from '../../../utils/constants'; import {Lang} from '../../../utils/i18n'; import {DEFAULT_QUERY_SETTINGS, QUERY_ACTIONS} from '../../../utils/query'; import {STORAGE_TYPES} from '../storage/constants'; import {TENANT_PAGES_IDS} from '../tenant/constants'; import type {SettingOptions} from './types'; export const SETTING_KEYS = { THEME: 'theme', LANGUAGE: 'language', INVERTED_DISKS: 'invertedDisks', BINARY_DATA_IN_PLAIN_TEXT_DISPLAY: 'binaryDataInPlainTextDisplay', SAVED_QUERIES: 'saved_queries', QUERIES_HISTORY: 'queries_history', TENANT_INITIAL_PAGE: 'saved_tenant_initial_tab', HOME_PAGE_TAB: 'homePageTab', DATABASES_PAGE_ENVIRONMENT: 'databasesPageEnvironment', LAST_USED_QUERY_ACTION: 'last_used_query_action', ASIDE_HEADER_COMPACT: 'asideHeaderCompact', PARTITIONS_HIDDEN_COLUMNS: 'partitionsHiddenColumns', ENABLE_NEW_STORAGE_VIEW: 'enableNewStorageView', USE_CLUSTER_BALANCER_AS_BACKEND: 'useClusterBalancerAsBacked', ENABLE_AUTOCOMPLETE: 'enableAutocomplete', ENABLE_CODE_ASSISTANT: 'enableCodeAssistant', ENABLE_QUERY_STREAMING: 'enableQueryStreaming', EXPAND_CLUSTER_DASHBOARD: 'expandClusterDashboard', AUTOCOMPLETE_ON_ENTER: 'autocompleteOnEnter', IS_HOTKEYS_HELP_HIDDEN: 'isHotKeysHelpHidden', AUTO_REFRESH_INTERVAL: 'auto-refresh-interval', CASE_SENSITIVE_JSON_SEARCH: 'caseSensitiveJsonSearch', SHOW_DOMAIN_DATABASE: 'showDomainDatabase', QUERY_STOPPED_BANNER_CLOSED: 'queryStoppedBannerClosed', LAST_QUERY_EXECUTION_SETTINGS: 'last_query_execution_settings', QUERY_SETTINGS_BANNER_LAST_CLOSED: 'querySettingsBannerLastClosed', QUERY_EXECUTION_SETTINGS: 'queryExecutionSettings', ACL_SYNTAX: 'aclSyntax', STORAGE_TYPE: 'storageType', ENABLE_BLOB_STORAGE_CAPACITY_METRICS: 'blobStorageCapacityMetrics', ENABLE_TENANT_NAVIGATION_V2: 'enableTenantNavigationV2', IS_V2_NAVIGATION_ALERT_SEEN: 'isV2NavigationAlertSeen', ENABLE_STORAGE_EXPERT_MODE: 'enableStorageExpertMode', STORAGE_EXPERT_MODE: 'storageExpertMode', STORAGE_VDISKS_GROUP_BY: 'storageVDisksGroupBy', STORAGE_PDISKS_GROUP_BY: 'storagePDisksGroupBy', STORAGE_NODES_VDISKS_GROUP_BY: 'storageNodesVDisksGroupBy', STORAGE_NODES_PDISKS_GROUP_BY: 'storageNodesPDisksGroupBy', } as const; export type SettingKey = ValueOf; /** User settings keys and their default values */ export const DEFAULT_USER_SETTINGS = { [SETTING_KEYS.THEME]: 'system', [SETTING_KEYS.LANGUAGE]: Lang.En, [SETTING_KEYS.INVERTED_DISKS]: false, [SETTING_KEYS.BINARY_DATA_IN_PLAIN_TEXT_DISPLAY]: true, [SETTING_KEYS.SAVED_QUERIES]: [], [SETTING_KEYS.QUERIES_HISTORY]: [], [SETTING_KEYS.TENANT_INITIAL_PAGE]: TENANT_PAGES_IDS.query, [SETTING_KEYS.HOME_PAGE_TAB]: 'clusters' satisfies HomePageTab, [SETTING_KEYS.DATABASES_PAGE_ENVIRONMENT]: undefined, [SETTING_KEYS.LAST_USED_QUERY_ACTION]: QUERY_ACTIONS.execute, [SETTING_KEYS.ASIDE_HEADER_COMPACT]: true, [SETTING_KEYS.PARTITIONS_HIDDEN_COLUMNS]: [], [SETTING_KEYS.ENABLE_NEW_STORAGE_VIEW]: false, [SETTING_KEYS.USE_CLUSTER_BALANCER_AS_BACKEND]: true, [SETTING_KEYS.ENABLE_AUTOCOMPLETE]: true, [SETTING_KEYS.ENABLE_CODE_ASSISTANT]: true, [SETTING_KEYS.ENABLE_QUERY_STREAMING]: true, [SETTING_KEYS.EXPAND_CLUSTER_DASHBOARD]: true, [SETTING_KEYS.AUTOCOMPLETE_ON_ENTER]: true, [SETTING_KEYS.IS_HOTKEYS_HELP_HIDDEN]: false, [SETTING_KEYS.AUTO_REFRESH_INTERVAL]: 0, [SETTING_KEYS.CASE_SENSITIVE_JSON_SEARCH]: false, [SETTING_KEYS.SHOW_DOMAIN_DATABASE]: false, [SETTING_KEYS.QUERY_STOPPED_BANNER_CLOSED]: false, [SETTING_KEYS.LAST_QUERY_EXECUTION_SETTINGS]: undefined, [SETTING_KEYS.QUERY_SETTINGS_BANNER_LAST_CLOSED]: undefined, [SETTING_KEYS.QUERY_EXECUTION_SETTINGS]: DEFAULT_QUERY_SETTINGS, [SETTING_KEYS.ACL_SYNTAX]: AclSyntax.YdbShort, [SETTING_KEYS.STORAGE_TYPE]: STORAGE_TYPES.groups, [SETTING_KEYS.ENABLE_BLOB_STORAGE_CAPACITY_METRICS]: false, [SETTING_KEYS.ENABLE_TENANT_NAVIGATION_V2]: true, [SETTING_KEYS.IS_V2_NAVIGATION_ALERT_SEEN]: false, [SETTING_KEYS.ENABLE_STORAGE_EXPERT_MODE]: false, [SETTING_KEYS.STORAGE_EXPERT_MODE]: false, [SETTING_KEYS.STORAGE_VDISKS_GROUP_BY]: 'State', [SETTING_KEYS.STORAGE_PDISKS_GROUP_BY]: 'State', [SETTING_KEYS.STORAGE_NODES_VDISKS_GROUP_BY]: 'State', [SETTING_KEYS.STORAGE_NODES_PDISKS_GROUP_BY]: 'State', } as const satisfies Record; export const SETTINGS_OPTIONS: Record = { [SETTING_KEYS.THEME]: { preventBatching: true, }, } as const;