diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-refactor-navigation-commands.command.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-refactor-navigation-commands.command.ts index d58782da06..465bf9e8d3 100644 --- a/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-refactor-navigation-commands.command.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-refactor-navigation-commands.command.ts @@ -13,7 +13,6 @@ import { } from 'src/database/commands/command-runners/workspace.command-runner'; import { addPayloadCheckConstraintToCommandMenuItem } from 'src/database/typeorm/core/migrations/utils/1775129635528-add-payload-to-command-menu-item.util'; import { ApplicationService } from 'src/engine/core-modules/application/application.service'; -import { CommandMenuItemAvailabilityType } from 'src/engine/metadata-modules/command-menu-item/enums/command-menu-item-availability-type.enum'; import { EngineComponentKey } from 'src/engine/metadata-modules/command-menu-item/enums/engine-component-key.enum'; import { type FlatCommandMenuItem } from 'src/engine/metadata-modules/flat-command-menu-item/types/flat-command-menu-item.type'; import { @@ -21,9 +20,9 @@ import { NAVIGATION_COMMAND_UUID_NAMESPACE, } from 'src/engine/metadata-modules/flat-command-menu-item/utils/build-navigation-flat-command-menu-item.util'; import { seedCompareObjectMetadataForNavigationPosition } from 'src/engine/metadata-modules/flat-command-menu-item/utils/seed-compare-object-metadata-for-navigation-position.util'; +import { WorkspaceCacheService } from 'src/engine/workspace-cache/services/workspace-cache.service'; import { STANDARD_COMMAND_MENU_ITEMS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-command-menu-item.constant'; import { TWENTY_STANDARD_APPLICATION } from 'src/engine/workspace-manager/twenty-standard-application/constants/twenty-standard-applications'; -import { WorkspaceCacheService } from 'src/engine/workspace-cache/services/workspace-cache.service'; import { WorkspaceMigrationValidateBuildAndRunService } from 'src/engine/workspace-manager/workspace-migration/services/workspace-migration-validate-build-and-run-service'; const GO_TO_ENGINE_KEYS = [ @@ -38,6 +37,26 @@ const GO_TO_ENGINE_KEYS = [ 'GO_TO_RUNS', ]; +const SETTINGS_NAVIGATION_ITEM_KEYS = [ + 'goToSettings', + 'goToSettingsExperience', + 'goToSettingsAccounts', + 'goToSettingsAccountsEmails', + 'goToSettingsAccountsCalendars', + 'goToSettingsGeneral', + 'goToSettingsObjects', + 'goToSettingsMembers', + 'goToSettingsRoles', + 'goToSettingsDomains', + 'goToSettingsBilling', + 'goToSettingsApiWebhooks', + 'goToSettingsApplications', + 'goToSettingsAI', + 'goToSettingsSecurity', + 'goToSettingsAdminPanel', + 'goToSettingsUpdates', +] as const satisfies ReadonlyArray; + @Command({ name: 'upgrade:1-21:refactor-navigation-commands', description: @@ -179,31 +198,37 @@ export class RefactorNavigationCommandsCommand extends ActiveOrSuspendedWorkspac ); } - const settingsUniversalIdentifier = - STANDARD_COMMAND_MENU_ITEMS.goToSettings.universalIdentifier; + for (const settingsItemKey of SETTINGS_NAVIGATION_ITEM_KEYS) { + const commandMenuItem = STANDARD_COMMAND_MENU_ITEMS[settingsItemKey]; + + if ( + existingNavigationUniversalIdentifiers.has( + commandMenuItem.universalIdentifier, + ) + ) { + continue; + } - if ( - !existingNavigationUniversalIdentifiers.has(settingsUniversalIdentifier) - ) { flatCommandMenuItemsToCreate.push({ id: v4(), - universalIdentifier: settingsUniversalIdentifier, + universalIdentifier: commandMenuItem.universalIdentifier, applicationId: twentyStandardFlatApplication.id, applicationUniversalIdentifier: TWENTY_STANDARD_APPLICATION.universalIdentifier, workspaceId, - label: 'Go to Settings', - shortLabel: 'Settings', - icon: 'IconSettings', + label: commandMenuItem.label, + shortLabel: commandMenuItem.shortLabel, + icon: commandMenuItem.icon, position: nextPosition++, - isPinned: false, - availabilityType: CommandMenuItemAvailabilityType.GLOBAL, - conditionalAvailabilityExpression: null, + isPinned: commandMenuItem.isPinned, + availabilityType: commandMenuItem.availabilityType, + conditionalAvailabilityExpression: + commandMenuItem.conditionalAvailabilityExpression ?? null, frontComponentId: null, frontComponentUniversalIdentifier: null, engineComponentKey: EngineComponentKey.NAVIGATION, - payload: { path: '/settings/profile' }, - hotKeys: ['G', 'S'], + payload: { ...commandMenuItem.payload }, + hotKeys: commandMenuItem.hotKeys ? [...commandMenuItem.hotKeys] : null, workflowVersionId: null, availabilityObjectMetadataId: null, availabilityObjectMetadataUniversalIdentifier: null, diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/constants/standard-command-menu-item.constant.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/constants/standard-command-menu-item.constant.ts index 1f40d40db0..f0c5ff04f1 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/constants/standard-command-menu-item.constant.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/constants/standard-command-menu-item.constant.ts @@ -9,7 +9,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Navigate to next ${capitalize(objectMetadataItem.labelSingular)}', icon: 'IconChevronDown', isPinned: true, - position: 0, + position: 1, shortLabel: null, availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -25,7 +25,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { 'Navigate to previous ${capitalize(objectMetadataItem.labelSingular)}', icon: 'IconChevronUp', isPinned: true, - position: 1, + position: 2, shortLabel: null, availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -40,7 +40,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Create new ${capitalize(objectMetadataItem.labelSingular)}', icon: 'IconPlus', isPinned: true, - position: 2, + position: 3, shortLabel: 'New ${capitalize(objectMetadataItem.labelSingular)}', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: @@ -55,7 +55,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Delete ${capitalize(objectMetadataLabel)}', icon: 'IconTrash', isPinned: false, - position: 3, + position: 4, shortLabel: 'Delete', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -85,7 +85,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Permanently destroy ${capitalize(objectMetadataLabel)}', icon: 'IconTrashX', isPinned: false, - position: 7, + position: 6, shortLabel: 'Destroy', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -100,7 +100,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Add to Favorites', icon: 'IconHeart', isPinned: true, - position: 9, + position: 7, shortLabel: null, availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -115,7 +115,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Remove from Favorites', icon: 'IconHeartOff', isPinned: true, - position: 10, + position: 8, shortLabel: null, availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -130,7 +130,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Export to PDF', icon: 'IconFileExport', isPinned: false, - position: 11, + position: 9, shortLabel: 'Export', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -145,7 +145,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Export ${capitalize(objectMetadataLabel)}', icon: 'IconFileExport', isPinned: false, - position: 12, + position: 10, shortLabel: 'Export', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: null, @@ -159,7 +159,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Update ${capitalize(objectMetadataItem.labelPlural)}', icon: 'IconEdit', isPinned: true, - position: 14, + position: 11, shortLabel: 'Update', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -174,7 +174,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Merge ${capitalize(objectMetadataItem.labelPlural)}', icon: 'IconArrowMerge', isPinned: false, - position: 15, + position: 12, shortLabel: 'Merge', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -189,7 +189,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Import ${capitalize(objectMetadataItem.labelPlural)}', icon: 'IconFileImport', isPinned: false, - position: 17, + position: 13, shortLabel: 'Import', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: 'not hasAnySoftDeleteFilterOnView', @@ -203,7 +203,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Export View', icon: 'IconFileExport', isPinned: false, - position: 18, + position: 14, shortLabel: 'Export', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: null, @@ -217,7 +217,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See deleted ${capitalize(objectMetadataItem.labelPlural)}', icon: 'IconRotate2', isPinned: false, - position: 19, + position: 15, shortLabel: 'Deleted ${capitalize(objectMetadataItem.labelPlural)}', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: 'not hasAnySoftDeleteFilterOnView', @@ -231,7 +231,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Create View', icon: 'IconLayout', isPinned: false, - position: 20, + position: 16, shortLabel: 'Create View', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: 'not hasAnySoftDeleteFilterOnView', @@ -245,7 +245,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Hide deleted ${capitalize(objectMetadataItem.labelPlural)}', icon: 'IconEyeOff', isPinned: false, - position: 21, + position: 17, shortLabel: 'Hide deleted', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: 'hasAnySoftDeleteFilterOnView', @@ -259,7 +259,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Edit Layout', icon: 'IconPencil', isPinned: false, - position: 30, + position: 18, shortLabel: 'Edit Layout', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -274,7 +274,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Edit Dashboard', icon: 'IconPencil', isPinned: true, - position: 33, + position: 19, shortLabel: 'Edit', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -290,7 +290,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Save Dashboard', icon: 'IconDeviceFloppy', isPinned: true, - position: 34, + position: 20, shortLabel: 'Save', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -306,7 +306,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Cancel Edition', icon: 'IconCancel', isPinned: true, - position: 35, + position: 21, shortLabel: 'Cancel', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -322,7 +322,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Duplicate Dashboard', icon: 'IconCopyPlus', isPinned: false, - position: 36, + position: 22, shortLabel: 'Duplicate', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -338,7 +338,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Activate Workflow', icon: 'IconPower', isPinned: true, - position: 42, + position: 23, shortLabel: 'Activate', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -354,7 +354,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Deactivate Workflow', icon: 'IconPlayerPause', isPinned: true, - position: 43, + position: 24, shortLabel: 'Deactivate', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -370,7 +370,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Discard Draft', icon: 'IconNoteOff', isPinned: true, - position: 44, + position: 25, shortLabel: 'Discard Draft', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -386,7 +386,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Test Workflow', icon: 'IconPlayerPlay', isPinned: true, - position: 45, + position: 26, shortLabel: 'Test', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -402,7 +402,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See Active Version', icon: 'IconVersions', isPinned: false, - position: 46, + position: 27, shortLabel: 'See Active Version', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -418,7 +418,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See Runs', icon: 'IconHistoryToggle', isPinned: true, - position: 47, + position: 28, shortLabel: 'See Runs', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -434,7 +434,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See Versions History', icon: 'IconVersions', isPinned: false, - position: 48, + position: 29, shortLabel: 'See Versions', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -450,7 +450,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Add a Node', icon: 'IconPlus', isPinned: true, - position: 49, + position: 30, shortLabel: 'Add a Node', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -466,7 +466,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Tidy up Workflow', icon: 'IconReorder', isPinned: false, - position: 50, + position: 31, shortLabel: 'Tidy up', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -482,7 +482,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Duplicate Workflow', icon: 'IconCopy', isPinned: false, - position: 51, + position: 32, shortLabel: 'Duplicate', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -498,7 +498,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See Version', icon: 'IconVersions', isPinned: true, - position: 53, + position: 33, shortLabel: 'See Version', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: null, @@ -513,7 +513,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See Workflow', icon: 'IconSettingsAutomation', isPinned: true, - position: 54, + position: 34, shortLabel: 'See Workflow', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: null, @@ -528,7 +528,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Stop', icon: 'IconPlayerStop', isPinned: true, - position: 55, + position: 35, shortLabel: 'Stop', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -544,7 +544,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See Runs', icon: 'IconHistoryToggle', isPinned: true, - position: 56, + position: 36, shortLabel: 'See Runs', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -560,7 +560,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See Workflow', icon: 'IconSettingsAutomation', isPinned: true, - position: 57, + position: 37, shortLabel: 'See Workflow', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -576,7 +576,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Use as Draft', icon: 'IconPencil', isPinned: true, - position: 58, + position: 38, shortLabel: 'Use as Draft', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -592,7 +592,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'See Versions History', icon: 'IconVersions', isPinned: false, - position: 59, + position: 39, shortLabel: 'See Versions', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: @@ -608,7 +608,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Search ${capitalize(objectMetadataItem.labelPlural)}', icon: 'IconSearch', isPinned: false, - position: 60, + position: 40, shortLabel: 'Search', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: null, @@ -622,7 +622,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Search ${capitalize(objectMetadataItem.labelPlural)}', icon: 'IconSearch', isPinned: false, - position: 61, + position: 41, shortLabel: 'Search', availabilityType: CommandMenuItemAvailabilityType.FALLBACK, conditionalAvailabilityExpression: null, @@ -636,7 +636,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Ask AI', icon: 'IconSparkles', isPinned: false, - position: 62, + position: 42, shortLabel: 'Ask AI', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: null, @@ -650,7 +650,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'View Previous AI Chats', icon: 'IconHistory', isPinned: false, - position: 63, + position: 43, shortLabel: 'Previous AI Chats', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: null, @@ -664,7 +664,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Reply', icon: 'IconArrowBackUp', isPinned: true, - position: 70, + position: 44, shortLabel: 'Reply', availabilityType: CommandMenuItemAvailabilityType.RECORD_SELECTION, conditionalAvailabilityExpression: 'numberOfSelectedRecords == 1', @@ -679,7 +679,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Compose Email', icon: 'IconMail', isPinned: false, - position: 71, + position: 45, shortLabel: 'Compose', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: null, @@ -693,7 +693,7 @@ export const STANDARD_COMMAND_MENU_ITEMS = { label: 'Go to Settings', icon: 'IconSettings', isPinned: false, - position: 27, + position: 46, shortLabel: 'Settings', availabilityType: CommandMenuItemAvailabilityType.GLOBAL, conditionalAvailabilityExpression: null, @@ -703,4 +703,244 @@ export const STANDARD_COMMAND_MENU_ITEMS = { hotKeys: ['G', 'S'], payload: { path: '/settings/profile' }, }, + goToSettingsExperience: { + universalIdentifier: 'bceb0328-c018-48ba-80d8-a1a97dc0a8ba', + label: 'Go to Experience Settings', + icon: 'IconColorSwatch', + isPinned: false, + position: 47, + shortLabel: 'Experience', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/experience' }, + }, + goToSettingsAccounts: { + universalIdentifier: '447a65cc-8535-408e-9c48-db24affb7530', + label: 'Go to Accounts Settings', + icon: 'IconAt', + isPinned: false, + position: 48, + shortLabel: 'Accounts', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/accounts' }, + }, + goToSettingsAccountsEmails: { + universalIdentifier: '4feab22c-165f-4d13-81ca-c9eb6082ca50', + label: 'Go to Emails Settings', + icon: 'IconMail', + isPinned: false, + position: 49, + shortLabel: 'Emails', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/accounts/emails' }, + }, + goToSettingsAccountsCalendars: { + universalIdentifier: '3267ec0e-9dee-4d9b-8f1b-6005bfd90202', + label: 'Go to Calendars Settings', + icon: 'IconCalendarEvent', + isPinned: false, + position: 50, + shortLabel: 'Calendars', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/accounts/calendars' }, + }, + goToSettingsGeneral: { + universalIdentifier: 'ad68e516-96ea-455a-a838-c59788e88c23', + label: 'Go to General Settings', + icon: 'IconSettings', + isPinned: false, + position: 51, + shortLabel: 'General', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/general' }, + }, + goToSettingsObjects: { + universalIdentifier: '9302bfeb-f6cd-4858-ab5b-5f70f4d358c4', + label: 'Go to Data Model Settings', + icon: 'IconHierarchy2', + isPinned: false, + position: 52, + shortLabel: 'Data Model', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/objects' }, + }, + goToSettingsMembers: { + universalIdentifier: 'fb4d9f1b-5b13-49d9-8353-80041719d411', + label: 'Go to Members Settings', + icon: 'IconUsers', + isPinned: false, + position: 53, + shortLabel: 'Members', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/members' }, + }, + goToSettingsRoles: { + universalIdentifier: '4050f307-c592-4c9f-ad91-89cde330fbf7', + label: 'Go to Roles Settings', + icon: 'IconLock', + isPinned: false, + position: 54, + shortLabel: 'Roles', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/roles' }, + }, + goToSettingsDomains: { + universalIdentifier: '2d071684-fb5e-4222-b560-4c7ab2597fb4', + label: 'Go to Domains Settings', + icon: 'IconWorld', + isPinned: false, + position: 55, + shortLabel: 'Domains', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/domains' }, + }, + goToSettingsBilling: { + universalIdentifier: 'f46a0fb9-14e9-4d48-801d-c33bdd543f74', + label: 'Go to Billing Settings', + icon: 'IconCurrencyDollar', + isPinned: false, + position: 56, + shortLabel: 'Billing', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/billing' }, + }, + goToSettingsApiWebhooks: { + universalIdentifier: 'ed2c2fde-1e7a-4a42-ba63-221eaa7c9759', + label: 'Go to APIs & Webhooks Settings', + icon: 'IconApi', + isPinned: false, + position: 57, + shortLabel: 'APIs & Webhooks', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/api-webhooks' }, + }, + goToSettingsApplications: { + universalIdentifier: '44db6d7a-79ac-485e-b3da-da8776bd7777', + label: 'Go to Apps Settings', + icon: 'IconPlug', + isPinned: false, + position: 58, + shortLabel: 'Apps', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/applications' }, + }, + goToSettingsAI: { + universalIdentifier: '3eaec228-809d-452d-b5ef-7b777398c538', + label: 'Go to AI Settings', + icon: 'IconSparkles', + isPinned: false, + position: 59, + shortLabel: 'AI', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/ai' }, + }, + goToSettingsSecurity: { + universalIdentifier: '358e69b2-0789-44e2-add7-bdef68413be8', + label: 'Go to Security Settings', + icon: 'IconKey', + isPinned: false, + position: 60, + shortLabel: 'Security', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/security' }, + }, + goToSettingsAdminPanel: { + universalIdentifier: 'dd22798b-fca6-42af-ba3b-0d48f263afbd', + label: 'Go to Admin Panel Settings', + icon: 'IconServer', + isPinned: false, + position: 61, + shortLabel: 'Admin Panel', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/admin-panel' }, + }, + goToSettingsUpdates: { + universalIdentifier: '5d1ba354-0090-4a42-9a43-601461b26068', + label: 'Go to Updates Settings', + icon: 'IconRocket', + isPinned: false, + position: 62, + shortLabel: 'Updates', + availabilityType: CommandMenuItemAvailabilityType.GLOBAL, + conditionalAvailabilityExpression: null, + availabilityObjectMetadataUniversalIdentifier: null, + frontComponentUniversalIdentifier: null, + engineComponentKey: EngineComponentKey.NAVIGATION, + hotKeys: null, + payload: { path: '/settings/updates' }, + }, } as const;