Export STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS (#21010)

fix https://discord.com/channels/1130383047699738754/1509086323464474705
This commit is contained in:
martmull
2026-05-28 12:51:01 +00:00
committed by GitHub
parent 531410f64a
commit 6ea637d6c5
24 changed files with 1073 additions and 155 deletions
@@ -40,6 +40,7 @@ export default defineField({
- When defining fields **inline inside `defineObject()`**, you do **not** need `objectUniversalIdentifier` — it's inherited from the parent object.
- `defineField()` is the only way to add fields to objects you didn't create with `defineObject()`.
- File location is up to you. The convention is `src/fields/<name>.field.ts`, but the SDK detects fields anywhere in `src/`.
- To add a tab to a standard page layout (e.g. the Task or Company detail page), use [`definePageLayoutTab`](/developers/extend/apps/layout/page-layouts#definepagelayouttab) with `STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS` from `twenty-sdk/define`.
## Adding a relation to an existing object
@@ -65,16 +65,15 @@ Use this when you only want to **add** a tab to an existing layout — for examp
import {
definePageLayoutTab,
PageLayoutTabLayoutMode,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-sdk/define';
import { HELLO_WORLD_FRONT_COMPONENT_UNIVERSAL_IDENTIFIER } from '../front-components/hello-world';
const COMPANY_RECORD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIER =
'20202020-ab01-4001-8001-c0aba11c0100';
export default definePageLayoutTab({
universalIdentifier: 'b1b2b3b4-b5b6-4000-8000-000000000001',
pageLayoutUniversalIdentifier:
COMPANY_RECORD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIER,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage
.universalIdentifier,
title: 'Hello World',
position: 1000,
icon: 'IconWorld',
@@ -97,6 +96,34 @@ export default definePageLayoutTab({
### Key points
- `pageLayoutUniversalIdentifier` is **required** and must point to a page layout that already exists at install time — either a standard Twenty layout or one defined by your own app. Cross-app references to layouts owned by another installed app are not supported today. When the parent layout is missing, installation fails with a clear validation error.
- For standard Twenty layouts, import identifiers from `twenty-sdk/define`:
```ts
import { STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS } from 'twenty-sdk/define';
// STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.universalIdentifier
// STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.universalIdentifier
// STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.universalIdentifier
// STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.universalIdentifier
// STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.universalIdentifier
// …
```
Each layout entry also exposes its `tabs` and their `widgets`, so you can reference any level:
```ts
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.home.universalIdentifier
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.home.widgets.fields.universalIdentifier
```
A short alias `STANDARD_PAGE_LAYOUT` is also available:
```ts
import { STANDARD_PAGE_LAYOUT } from 'twenty-sdk/define';
STANDARD_PAGE_LAYOUT.companyRecordPage.universalIdentifier;
```
- `widgets` are scoped to this tab only — they reference [front components](/developers/extend/apps/layout/front-components), views, etc. exactly like widgets defined inline in `definePageLayout`.
- `position` controls ordering against existing tabs on the targeted layout. Pick a value that places your tab where you want it relative to built-in tabs.
- Use this instead of `definePageLayout` when you only want to add to an existing layout. Use `definePageLayout` when you own the entire layout.
@@ -16,6 +16,8 @@ exports[`stub-twenty-sdk-define plugin > matches the recorded export partition 1
"RelationType",
"STANDARD_OBJECT",
"STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS",
"STANDARD_PAGE_LAYOUT",
"STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS",
"SystemPermissionFlag",
"ViewCalendarLayout",
"ViewFilterGroupLogicalOperator",
@@ -85,6 +85,10 @@ export { definePageLayout } from '@/sdk/define/page-layouts/define-page-layout';
export { definePageLayoutTab } from '@/sdk/define/page-layouts/define-page-layout-tab';
export type { PageLayoutConfig } from '@/sdk/define/page-layouts/page-layout-config';
export type { PageLayoutTabConfig } from '@/sdk/define/page-layouts/page-layout-tab-config';
export {
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS as STANDARD_PAGE_LAYOUT,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from '@/sdk/define/page-layouts/standard-page-layout-ids';
export type {
PageLayoutManifest,
PageLayoutTabManifest,
@@ -0,0 +1 @@
export { STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS } from 'twenty-shared/metadata';
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,21 +15,29 @@ import {
const BLOCKLIST_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab09-4009-8009-b10c115b0901',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.blocklistRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac09-4009-8009-b10c115b0911',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.blocklistRecordPage.tabs
.home.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab09-4009-8009-b10c115b0902',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.blocklistRecordPage.tabs
.timeline.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac09-4009-8009-b10c115b0921',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.blocklistRecordPage.tabs
.timeline.widgets.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
@@ -37,7 +48,9 @@ export const STANDARD_BLOCKLIST_PAGE_LAYOUT_CONFIG = {
name: 'Default Blocklist Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.blocklist.universalIdentifier,
universalIdentifier: '20202020-a109-4009-8009-b10c115b0001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.blocklistRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: BLOCKLIST_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,21 +15,33 @@ import {
const CALENDAR_CHANNEL_EVENT_ASSOCIATION_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab0b-400b-800b-ca1c4e0b0b01',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarChannelEventAssociationRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac0b-400b-800b-ca1c4e0b0b11',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarChannelEventAssociationRecordPage.tabs.home.widgets.fields
.universalIdentifier,
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab0b-400b-800b-ca1c4e0b0b02',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarChannelEventAssociationRecordPage.tabs.timeline
.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac0b-400b-800b-ca1c4e0b0b21',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarChannelEventAssociationRecordPage.tabs.timeline.widgets
.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
@@ -38,7 +53,9 @@ export const STANDARD_CALENDAR_CHANNEL_EVENT_ASSOCIATION_PAGE_LAYOUT_CONFIG = {
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier:
STANDARD_OBJECTS.calendarChannelEventAssociation.universalIdentifier,
universalIdentifier: '20202020-a10b-400b-800b-ca1c4e0b0001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarChannelEventAssociationRecordPage.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: CALENDAR_CHANNEL_EVENT_ASSOCIATION_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,21 +15,31 @@ import {
const CALENDAR_EVENT_PARTICIPANT_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab0c-400c-800c-ca1e0a0c0c01',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarEventParticipantRecordPage.tabs.home.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac0c-400c-800c-ca1e0a0c0c11',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarEventParticipantRecordPage.tabs.home.widgets.fields
.universalIdentifier,
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab0c-400c-800c-ca1e0a0c0c02',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarEventParticipantRecordPage.tabs.timeline.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac0c-400c-800c-ca1e0a0c0c21',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarEventParticipantRecordPage.tabs.timeline.widgets.timeline
.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
@@ -38,7 +51,9 @@ export const STANDARD_CALENDAR_EVENT_PARTICIPANT_PAGE_LAYOUT_CONFIG = {
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier:
STANDARD_OBJECTS.calendarEventParticipant.universalIdentifier,
universalIdentifier: '20202020-a10c-400c-800c-ca1e0a0c0001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.calendarEventParticipantRecordPage.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: CALENDAR_EVENT_PARTICIPANT_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { WidgetType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-type.enum';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
@@ -15,15 +18,21 @@ import {
const COMPANY_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0101',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0111',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.home
.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
people: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0112',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.home
.widgets.people.universalIdentifier,
title: 'People',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -32,7 +41,9 @@ const COMPANY_PAGE_TABS = {
STANDARD_OBJECTS.company.fields.people.universalIdentifier,
},
opportunities: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0114',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.home
.widgets.opportunities.universalIdentifier,
title: 'Opportunities',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -43,61 +54,85 @@ const COMPANY_PAGE_TABS = {
},
},
timeline: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0102',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.timeline
.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0121',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs
.timeline.widgets.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
},
tasks: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0103',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.tasks
.universalIdentifier,
...TAB_PROPS.tasks,
widgets: {
tasks: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0131',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs
.tasks.widgets.tasks.universalIdentifier,
...WIDGET_PROPS.tasks,
},
},
},
notes: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0104',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.notes
.universalIdentifier,
...TAB_PROPS.notes,
widgets: {
notes: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0141',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs
.notes.widgets.notes.universalIdentifier,
...WIDGET_PROPS.notes,
},
},
},
files: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0105',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.files
.universalIdentifier,
...TAB_PROPS.files,
widgets: {
files: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0151',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs
.files.widgets.files.universalIdentifier,
...WIDGET_PROPS.files,
},
},
},
emails: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0106',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.emails
.universalIdentifier,
...TAB_PROPS.emails,
widgets: {
emails: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0161',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs
.emails.widgets.emails.universalIdentifier,
...WIDGET_PROPS.emails,
},
},
},
calendar: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0107',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs.calendar
.universalIdentifier,
...TAB_PROPS.calendar,
widgets: {
calendar: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0171',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage.tabs
.calendar.widgets.calendar.universalIdentifier,
...WIDGET_PROPS.calendar,
},
},
@@ -108,7 +143,9 @@ export const STANDARD_COMPANY_PAGE_LAYOUT_CONFIG = {
name: 'Default Company Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.company.universalIdentifier,
universalIdentifier: '20202020-a101-4001-8001-c0aba11c0001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.companyRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: COMPANY_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,3 +1,4 @@
import { STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS } from 'twenty-shared/metadata';
import { PageLayoutTabLayoutMode } from 'twenty-shared/types';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
@@ -8,35 +9,53 @@ import {
const DASHBOARD_PAGE_TABS = {
tab1: {
universalIdentifier: '20202020-d011-4d11-8d11-da5ab0a01001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.universalIdentifier,
title: 'Tab 1',
position: 0,
icon: null,
layoutMode: PageLayoutTabLayoutMode.GRID,
widgets: {
welcomeRichText: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.widgets.welcomeRichText.universalIdentifier,
},
dealsByCompany: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11002',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.widgets.dealsByCompany.universalIdentifier,
},
pipelineValueByStage: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11003',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.widgets.pipelineValueByStage.universalIdentifier,
},
revenueTimeline: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11004',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.widgets.revenueTimeline.universalIdentifier,
},
opportunitiesByOwner: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11005',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.widgets.opportunitiesByOwner.universalIdentifier,
},
stockMarketIframe: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11006',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.widgets.stockMarketIframe.universalIdentifier,
},
dealsCreatedThisMonth: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11007',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.widgets.dealsCreatedThisMonth.universalIdentifier,
},
dealValueCreatedThisMonth: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11008',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard.tabs.tab1
.widgets.dealValueCreatedThisMonth.universalIdentifier,
},
},
},
@@ -46,7 +65,9 @@ export const STANDARD_DASHBOARD_PAGE_LAYOUT_CONFIG = {
name: 'My First Dashboard',
type: PageLayoutType.DASHBOARD,
objectUniversalIdentifier: null,
universalIdentifier: '20202020-d001-4d01-8d01-da5ab0a00001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.myFirstDashboard
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: DASHBOARD_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,21 +15,33 @@ import {
const MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_MESSAGE_FOLDER_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab12-4012-8012-a5c4a6121201',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationMessageFolderRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac12-4012-8012-a5c4a6121211',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationMessageFolderRecordPage.tabs.home
.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab12-4012-8012-a5c4a6121202',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationMessageFolderRecordPage.tabs.timeline
.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac12-4012-8012-a5c4a6121221',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationMessageFolderRecordPage.tabs
.timeline.widgets.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
@@ -40,7 +55,10 @@ export const STANDARD_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_MESSAGE_FOLDER_PAGE_LA
objectUniversalIdentifier:
STANDARD_OBJECTS.messageChannelMessageAssociationMessageFolder
.universalIdentifier,
universalIdentifier: '20202020-a112-4012-8012-a5c4a6120001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationMessageFolderRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_MESSAGE_FOLDER_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,21 +15,33 @@ import {
const MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab11-4011-8011-a5c4a5111101',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac11-4011-8011-a5c4a5111111',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationRecordPage.tabs.home.widgets.fields
.universalIdentifier,
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab11-4011-8011-a5c4a5111102',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationRecordPage.tabs.timeline
.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac11-4011-8011-a5c4a5111121',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationRecordPage.tabs.timeline.widgets
.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
@@ -38,7 +53,9 @@ export const STANDARD_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_PAGE_LAYOUT_CONFIG = {
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier:
STANDARD_OBJECTS.messageChannelMessageAssociation.universalIdentifier,
universalIdentifier: '20202020-a111-4011-8011-a5c4a5110001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageChannelMessageAssociationRecordPage.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,21 +15,31 @@ import {
const MESSAGE_PARTICIPANT_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab14-4014-8014-a5ea10141401',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.messageParticipantRecordPage
.tabs.home.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac14-4014-8014-a5ea10141411',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageParticipantRecordPage.tabs.home.widgets.fields
.universalIdentifier,
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab14-4014-8014-a5ea10141402',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.messageParticipantRecordPage
.tabs.timeline.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac14-4014-8014-a5ea10141421',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.messageParticipantRecordPage.tabs.timeline.widgets.timeline
.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
@@ -38,7 +51,9 @@ export const STANDARD_MESSAGE_PARTICIPANT_PAGE_LAYOUT_CONFIG = {
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier:
STANDARD_OBJECTS.messageParticipant.universalIdentifier,
universalIdentifier: '20202020-a114-4014-8014-a5ea10140001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.messageParticipantRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: MESSAGE_PARTICIPANT_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,11 +15,15 @@ import {
const MESSAGE_THREAD_PAGE_TABS = {
home: {
universalIdentifier: '20202020-f639-48a0-9a44-027cf4e3cd15',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.messageThreadRecordPage.tabs
.home.universalIdentifier,
...TAB_PROPS.home,
widgets: {
emailThread: {
universalIdentifier: '20202020-d57e-44cb-b220-69a881feb9c3',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.messageThreadRecordPage
.tabs.home.widgets.emailThread.universalIdentifier,
...WIDGET_PROPS.emailThread,
},
},
@@ -27,7 +34,9 @@ export const STANDARD_MESSAGE_THREAD_PAGE_LAYOUT_CONFIG = {
name: 'Default Message Thread Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.messageThread.universalIdentifier,
universalIdentifier: '20202020-95bb-40eb-a699-70e7ea02a79e',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.messageThreadRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: MESSAGE_THREAD_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -16,15 +19,21 @@ import {
const NOTE_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab04-4004-8004-a0be5a11a401',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a411',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs.home
.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
noteRichText: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a412',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs.home
.widgets.noteRichText.universalIdentifier,
title: WIDGET_PROPS.noteRichText.title,
type: WIDGET_PROPS.noteRichText.type,
gridPosition: WIDGET_PROPS.noteRichText.gridPosition,
@@ -36,11 +45,15 @@ const NOTE_PAGE_TABS = {
},
},
note: {
universalIdentifier: '20202020-ab04-4004-8004-a0be5a11a402',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs.note
.universalIdentifier,
...TAB_PROPS.note,
widgets: {
noteRichText: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a421',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs.note
.widgets.noteRichText.universalIdentifier,
...WIDGET_PROPS.noteRichText,
conditionalDisplay: CONDITIONAL_DISPLAY_DEVICE_DESKTOP,
conditionalAvailabilityExpression:
@@ -49,21 +62,29 @@ const NOTE_PAGE_TABS = {
},
},
timeline: {
universalIdentifier: '20202020-ab04-4004-8004-a0be5a11a403',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs.timeline
.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a431',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs
.timeline.widgets.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
},
files: {
universalIdentifier: '20202020-ab04-4004-8004-a0be5a11a404',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs.files
.universalIdentifier,
...TAB_PROPS.files,
widgets: {
files: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a441',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage.tabs.files
.widgets.files.universalIdentifier,
...WIDGET_PROPS.files,
},
},
@@ -74,7 +95,9 @@ export const STANDARD_NOTE_PAGE_LAYOUT_CONFIG = {
name: 'Default Note Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.note.universalIdentifier,
universalIdentifier: '20202020-a104-4004-8004-a0be5a11a004',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.noteRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: NOTE_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { WidgetType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-type.enum';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
@@ -15,15 +18,21 @@ import {
const OPPORTUNITY_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1301',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1311',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.home.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
pointOfContact: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1312',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.home.widgets.pointOfContact.universalIdentifier,
title: 'Point of Contact',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -33,7 +42,9 @@ const OPPORTUNITY_PAGE_TABS = {
.universalIdentifier,
},
company: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1313',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.home.widgets.company.universalIdentifier,
title: 'Company',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -42,7 +53,9 @@ const OPPORTUNITY_PAGE_TABS = {
STANDARD_OBJECTS.opportunity.fields.company.universalIdentifier,
},
owner: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1314',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.home.widgets.owner.universalIdentifier,
title: 'Owner',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -53,61 +66,85 @@ const OPPORTUNITY_PAGE_TABS = {
},
},
timeline: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1302',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.timeline.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1321',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.timeline.widgets.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
},
tasks: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1303',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.tasks.universalIdentifier,
...TAB_PROPS.tasks,
widgets: {
tasks: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1331',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.tasks.widgets.tasks.universalIdentifier,
...WIDGET_PROPS.tasks,
},
},
},
notes: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1304',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.notes.universalIdentifier,
...TAB_PROPS.notes,
widgets: {
notes: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1341',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.notes.widgets.notes.universalIdentifier,
...WIDGET_PROPS.notes,
},
},
},
files: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1305',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.files.universalIdentifier,
...TAB_PROPS.files,
widgets: {
files: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1351',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.files.widgets.files.universalIdentifier,
...WIDGET_PROPS.files,
},
},
},
emails: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1306',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.emails.universalIdentifier,
...TAB_PROPS.emails,
widgets: {
emails: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1361',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.emails.widgets.emails.universalIdentifier,
...WIDGET_PROPS.emails,
},
},
},
calendar: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1307',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.calendar.universalIdentifier,
...TAB_PROPS.calendar,
widgets: {
calendar: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1371',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage.tabs
.calendar.widgets.calendar.universalIdentifier,
...WIDGET_PROPS.calendar,
},
},
@@ -118,7 +155,9 @@ export const STANDARD_OPPORTUNITY_PAGE_LAYOUT_CONFIG = {
name: 'Default Opportunity Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.opportunity.universalIdentifier,
universalIdentifier: '20202020-a103-4003-8003-0aa0b1ca1003',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.opportunityRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: OPPORTUNITY_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { WidgetType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-type.enum';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
@@ -15,15 +18,21 @@ import {
const PERSON_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11201',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11211',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.home
.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
company: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11212',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.home
.widgets.company.universalIdentifier,
title: 'Company',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -32,7 +41,9 @@ const PERSON_PAGE_TABS = {
STANDARD_OBJECTS.person.fields.company.universalIdentifier,
},
pointOfContactForOpportunities: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11213',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.home
.widgets.pointOfContactForOpportunities.universalIdentifier,
title: 'Opportunities',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -44,61 +55,85 @@ const PERSON_PAGE_TABS = {
},
},
timeline: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11202',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.timeline
.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11221',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs
.timeline.widgets.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
},
tasks: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11203',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.tasks
.universalIdentifier,
...TAB_PROPS.tasks,
widgets: {
tasks: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11231',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.tasks
.widgets.tasks.universalIdentifier,
...WIDGET_PROPS.tasks,
},
},
},
notes: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11204',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.notes
.universalIdentifier,
...TAB_PROPS.notes,
widgets: {
notes: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11241',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.notes
.widgets.notes.universalIdentifier,
...WIDGET_PROPS.notes,
},
},
},
files: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11205',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.files
.universalIdentifier,
...TAB_PROPS.files,
widgets: {
files: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11251',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.files
.widgets.files.universalIdentifier,
...WIDGET_PROPS.files,
},
},
},
emails: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11206',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.emails
.universalIdentifier,
...TAB_PROPS.emails,
widgets: {
emails: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11261',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs
.emails.widgets.emails.universalIdentifier,
...WIDGET_PROPS.emails,
},
},
},
calendar: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11207',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs.calendar
.universalIdentifier,
...TAB_PROPS.calendar,
widgets: {
calendar: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11271',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage.tabs
.calendar.widgets.calendar.universalIdentifier,
...WIDGET_PROPS.calendar,
},
},
@@ -109,7 +144,9 @@ export const STANDARD_PERSON_PAGE_LAYOUT_CONFIG = {
name: 'Default Person Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.person.universalIdentifier,
universalIdentifier: '20202020-a102-4002-8002-ae0a1ea11002',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.personRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: PERSON_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -16,15 +19,21 @@ import {
const TASK_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab05-4005-8005-ba5ca11a5501',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5511',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.home
.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
taskRichText: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5512',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.home
.widgets.taskRichText.universalIdentifier,
title: WIDGET_PROPS.taskRichText.title,
type: WIDGET_PROPS.taskRichText.type,
gridPosition: WIDGET_PROPS.taskRichText.gridPosition,
@@ -36,11 +45,15 @@ const TASK_PAGE_TABS = {
},
},
note: {
universalIdentifier: '20202020-ab05-4005-8005-ba5ca11a5502',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.note
.universalIdentifier,
...TAB_PROPS.note,
widgets: {
taskRichText: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5521',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.note
.widgets.taskRichText.universalIdentifier,
...WIDGET_PROPS.taskRichText,
conditionalDisplay: CONDITIONAL_DISPLAY_DEVICE_DESKTOP,
conditionalAvailabilityExpression:
@@ -49,21 +62,29 @@ const TASK_PAGE_TABS = {
},
},
timeline: {
universalIdentifier: '20202020-ab05-4005-8005-ba5ca11a5503',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.timeline
.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5531',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs
.timeline.widgets.timeline.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
},
files: {
universalIdentifier: '20202020-ab05-4005-8005-ba5ca11a5504',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.files
.universalIdentifier,
...TAB_PROPS.files,
widgets: {
files: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5541',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage.tabs.files
.widgets.files.universalIdentifier,
...WIDGET_PROPS.files,
},
},
@@ -74,7 +95,9 @@ export const STANDARD_TASK_PAGE_LAYOUT_CONFIG = {
name: 'Default Task Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.task.universalIdentifier,
universalIdentifier: '20202020-a105-4005-8005-ba5ca11a1005',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.taskRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: TASK_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,21 +15,31 @@ import {
const WORKFLOW_AUTOMATED_TRIGGER_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab15-4015-8015-a0bcf1151501',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.workflowAutomatedTriggerRecordPage.tabs.home.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac15-4015-8015-a0bcf1151511',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.workflowAutomatedTriggerRecordPage.tabs.home.widgets.fields
.universalIdentifier,
...WIDGET_PROPS.fields,
},
},
},
timeline: {
universalIdentifier: '20202020-ab15-4015-8015-a0bcf1151502',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.workflowAutomatedTriggerRecordPage.tabs.timeline.universalIdentifier,
...TAB_PROPS.timeline,
widgets: {
timeline: {
universalIdentifier: '20202020-ac15-4015-8015-a0bcf1151521',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.workflowAutomatedTriggerRecordPage.tabs.timeline.widgets.timeline
.universalIdentifier,
...WIDGET_PROPS.timeline,
},
},
@@ -38,7 +51,9 @@ export const STANDARD_WORKFLOW_AUTOMATED_TRIGGER_PAGE_LAYOUT_CONFIG = {
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier:
STANDARD_OBJECTS.workflowAutomatedTrigger.universalIdentifier,
universalIdentifier: '20202020-a115-4015-8015-a0bcf1150001',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS
.workflowAutomatedTriggerRecordPage.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: WORKFLOW_AUTOMATED_TRIGGER_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
import {
@@ -12,11 +15,15 @@ import {
const WORKFLOW_PAGE_TABS = {
flow: {
universalIdentifier: '20202020-ab06-4006-8006-a0bcf10a6601',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRecordPage.tabs.flow
.universalIdentifier,
...TAB_PROPS.flow,
widgets: {
workflow: {
universalIdentifier: '20202020-ac06-4006-8006-a0bcf10a6611',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRecordPage.tabs
.flow.widgets.workflow.universalIdentifier,
...WIDGET_PROPS.workflow,
},
},
@@ -27,7 +34,9 @@ export const STANDARD_WORKFLOW_PAGE_LAYOUT_CONFIG = {
name: 'Default Workflow Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.workflow.universalIdentifier,
universalIdentifier: '20202020-a106-4006-8006-a0bcf10aa006',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier: null,
tabs: WORKFLOW_PAGE_TABS,
} as const satisfies StandardPageLayoutConfig;
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { WidgetType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-type.enum';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
@@ -15,15 +18,21 @@ import {
const WORKFLOW_RUN_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab08-4008-8008-a0bcf10a8801',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRunRecordPage.tabs.home
.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac08-4008-8008-a0bcf10a8811',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRunRecordPage.tabs
.home.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
workflow: {
universalIdentifier: '20202020-ac08-4008-8008-a0bcf10a8813',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRunRecordPage.tabs
.home.widgets.workflow.universalIdentifier,
title: 'Workflow',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -34,11 +43,15 @@ const WORKFLOW_RUN_PAGE_TABS = {
},
},
flow: {
universalIdentifier: '20202020-ab08-4008-8008-a0bcf10a8802',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRunRecordPage.tabs.flow
.universalIdentifier,
...TAB_PROPS.flowSecondary,
widgets: {
workflowRun: {
universalIdentifier: '20202020-ac08-4008-8008-a0bcf10a8821',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRunRecordPage.tabs
.flow.widgets.workflowRun.universalIdentifier,
...WIDGET_PROPS.workflowRun,
},
},
@@ -49,7 +62,9 @@ export const STANDARD_WORKFLOW_RUN_PAGE_LAYOUT_CONFIG = {
name: 'Default Workflow Run Layout',
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier: STANDARD_OBJECTS.workflowRun.universalIdentifier,
universalIdentifier: '20202020-a108-4008-8008-a0bcf10ac008',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowRunRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier:
WORKFLOW_RUN_PAGE_TABS.flow.universalIdentifier,
tabs: WORKFLOW_RUN_PAGE_TABS,
@@ -1,4 +1,7 @@
import { STANDARD_OBJECTS } from 'twenty-shared/metadata';
import {
STANDARD_OBJECTS,
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS,
} from 'twenty-shared/metadata';
import { WidgetType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-type.enum';
import { PageLayoutType } from 'src/engine/metadata-modules/page-layout/enums/page-layout-type.enum';
@@ -15,15 +18,21 @@ import {
const WORKFLOW_VERSION_PAGE_TABS = {
home: {
universalIdentifier: '20202020-ab07-4007-8007-a0bcf10a7701',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowVersionRecordPage.tabs
.home.universalIdentifier,
...TAB_PROPS.home,
widgets: {
fields: {
universalIdentifier: '20202020-ac07-4007-8007-a0bcf10a7711',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowVersionRecordPage
.tabs.home.widgets.fields.universalIdentifier,
...WIDGET_PROPS.fields,
},
workflow: {
universalIdentifier: '20202020-ac07-4007-8007-a0bcf10a7712',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowVersionRecordPage
.tabs.home.widgets.workflow.universalIdentifier,
title: 'Workflow',
type: WidgetType.FIELD,
gridPosition: GRID_POSITIONS.FULL_WIDTH,
@@ -34,11 +43,15 @@ const WORKFLOW_VERSION_PAGE_TABS = {
},
},
flow: {
universalIdentifier: '20202020-ab07-4007-8007-a0bcf10a7702',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowVersionRecordPage.tabs
.flow.universalIdentifier,
...TAB_PROPS.flowSecondary,
widgets: {
workflowVersion: {
universalIdentifier: '20202020-ac07-4007-8007-a0bcf10a7721',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowVersionRecordPage
.tabs.flow.widgets.workflowVersion.universalIdentifier,
...WIDGET_PROPS.workflowVersion,
},
},
@@ -50,7 +63,9 @@ export const STANDARD_WORKFLOW_VERSION_PAGE_LAYOUT_CONFIG = {
type: PageLayoutType.RECORD_PAGE,
objectUniversalIdentifier:
STANDARD_OBJECTS.workflowVersion.universalIdentifier,
universalIdentifier: '20202020-a107-4007-8007-a0bcf10ab007',
universalIdentifier:
STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS.workflowVersionRecordPage
.universalIdentifier,
defaultTabUniversalIdentifier:
WORKFLOW_VERSION_PAGE_TABS.flow.universalIdentifier,
tabs: WORKFLOW_VERSION_PAGE_TABS,
@@ -0,0 +1,544 @@
// Never mutate an existing universal identifier
// Deleting an existing universal identifier should be very rare
export const STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS = {
myFirstDashboard: {
universalIdentifier: '20202020-d001-4d01-8d01-da5ab0a00001',
tabs: {
tab1: {
universalIdentifier: '20202020-d011-4d11-8d11-da5ab0a01001',
widgets: {
welcomeRichText: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11001',
},
dealsByCompany: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11002',
},
pipelineValueByStage: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11003',
},
revenueTimeline: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11004',
},
opportunitiesByOwner: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11005',
},
stockMarketIframe: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11006',
},
dealsCreatedThisMonth: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11007',
},
dealValueCreatedThisMonth: {
universalIdentifier: '20202020-d111-4d11-8d11-da5ab0a11008',
},
},
},
},
},
companyRecordPage: {
universalIdentifier: '20202020-a101-4001-8001-c0aba11c0001',
tabs: {
home: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0101',
widgets: {
fields: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0111',
},
people: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0112',
},
opportunities: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0114',
},
},
},
timeline: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0102',
widgets: {
timeline: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0121',
},
},
},
tasks: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0103',
widgets: {
tasks: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0131',
},
},
},
notes: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0104',
widgets: {
notes: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0141',
},
},
},
files: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0105',
widgets: {
files: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0151',
},
},
},
emails: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0106',
widgets: {
emails: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0161',
},
},
},
calendar: {
universalIdentifier: '20202020-ab01-4001-8001-c0aba11c0107',
widgets: {
calendar: {
universalIdentifier: '20202020-ac01-4001-8001-c0aba11c0171',
},
},
},
},
},
personRecordPage: {
universalIdentifier: '20202020-a102-4002-8002-ae0a1ea11002',
tabs: {
home: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11201',
widgets: {
fields: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11211',
},
company: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11212',
},
pointOfContactForOpportunities: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11213',
},
},
},
timeline: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11202',
widgets: {
timeline: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11221',
},
},
},
tasks: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11203',
widgets: {
tasks: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11231',
},
},
},
notes: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11204',
widgets: {
notes: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11241',
},
},
},
files: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11205',
widgets: {
files: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11251',
},
},
},
emails: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11206',
widgets: {
emails: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11261',
},
},
},
calendar: {
universalIdentifier: '20202020-ab02-4002-8002-ae0a1ea11207',
widgets: {
calendar: {
universalIdentifier: '20202020-ac02-4002-8002-ae0a1ea11271',
},
},
},
},
},
opportunityRecordPage: {
universalIdentifier: '20202020-a103-4003-8003-0aa0b1ca1003',
tabs: {
home: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1301',
widgets: {
fields: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1311',
},
pointOfContact: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1312',
},
company: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1313',
},
owner: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1314',
},
},
},
timeline: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1302',
widgets: {
timeline: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1321',
},
},
},
tasks: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1303',
widgets: {
tasks: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1331',
},
},
},
notes: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1304',
widgets: {
notes: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1341',
},
},
},
files: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1305',
widgets: {
files: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1351',
},
},
},
emails: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1306',
widgets: {
emails: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1361',
},
},
},
calendar: {
universalIdentifier: '20202020-ab03-4003-8003-0aa0b1ca1307',
widgets: {
calendar: {
universalIdentifier: '20202020-ac03-4003-8003-0aa0b1ca1371',
},
},
},
},
},
noteRecordPage: {
universalIdentifier: '20202020-a104-4004-8004-a0be5a11a004',
tabs: {
home: {
universalIdentifier: '20202020-ab04-4004-8004-a0be5a11a401',
widgets: {
fields: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a411',
},
noteRichText: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a412',
},
},
},
note: {
universalIdentifier: '20202020-ab04-4004-8004-a0be5a11a402',
widgets: {
noteRichText: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a421',
},
},
},
timeline: {
universalIdentifier: '20202020-ab04-4004-8004-a0be5a11a403',
widgets: {
timeline: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a431',
},
},
},
files: {
universalIdentifier: '20202020-ab04-4004-8004-a0be5a11a404',
widgets: {
files: {
universalIdentifier: '20202020-ac04-4004-8004-a0be5a11a441',
},
},
},
},
},
taskRecordPage: {
universalIdentifier: '20202020-a105-4005-8005-ba5ca11a1005',
tabs: {
home: {
universalIdentifier: '20202020-ab05-4005-8005-ba5ca11a5501',
widgets: {
fields: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5511',
},
taskRichText: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5512',
},
},
},
note: {
universalIdentifier: '20202020-ab05-4005-8005-ba5ca11a5502',
widgets: {
taskRichText: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5521',
},
},
},
timeline: {
universalIdentifier: '20202020-ab05-4005-8005-ba5ca11a5503',
widgets: {
timeline: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5531',
},
},
},
files: {
universalIdentifier: '20202020-ab05-4005-8005-ba5ca11a5504',
widgets: {
files: {
universalIdentifier: '20202020-ac05-4005-8005-ba5ca11a5541',
},
},
},
},
},
workflowRecordPage: {
universalIdentifier: '20202020-a106-4006-8006-a0bcf10aa006',
tabs: {
flow: {
universalIdentifier: '20202020-ab06-4006-8006-a0bcf10a6601',
widgets: {
workflow: {
universalIdentifier: '20202020-ac06-4006-8006-a0bcf10a6611',
},
},
},
},
},
workflowVersionRecordPage: {
universalIdentifier: '20202020-a107-4007-8007-a0bcf10ab007',
tabs: {
home: {
universalIdentifier: '20202020-ab07-4007-8007-a0bcf10a7701',
widgets: {
fields: {
universalIdentifier: '20202020-ac07-4007-8007-a0bcf10a7711',
},
workflow: {
universalIdentifier: '20202020-ac07-4007-8007-a0bcf10a7712',
},
},
},
flow: {
universalIdentifier: '20202020-ab07-4007-8007-a0bcf10a7702',
widgets: {
workflowVersion: {
universalIdentifier: '20202020-ac07-4007-8007-a0bcf10a7721',
},
},
},
},
},
workflowRunRecordPage: {
universalIdentifier: '20202020-a108-4008-8008-a0bcf10ac008',
tabs: {
home: {
universalIdentifier: '20202020-ab08-4008-8008-a0bcf10a8801',
widgets: {
fields: {
universalIdentifier: '20202020-ac08-4008-8008-a0bcf10a8811',
},
workflow: {
universalIdentifier: '20202020-ac08-4008-8008-a0bcf10a8813',
},
},
},
flow: {
universalIdentifier: '20202020-ab08-4008-8008-a0bcf10a8802',
widgets: {
workflowRun: {
universalIdentifier: '20202020-ac08-4008-8008-a0bcf10a8821',
},
},
},
},
},
blocklistRecordPage: {
universalIdentifier: '20202020-a109-4009-8009-b10c115b0001',
tabs: {
home: {
universalIdentifier: '20202020-ab09-4009-8009-b10c115b0901',
widgets: {
fields: {
universalIdentifier: '20202020-ac09-4009-8009-b10c115b0911',
},
},
},
timeline: {
universalIdentifier: '20202020-ab09-4009-8009-b10c115b0902',
widgets: {
timeline: {
universalIdentifier: '20202020-ac09-4009-8009-b10c115b0921',
},
},
},
},
},
calendarChannelEventAssociationRecordPage: {
universalIdentifier: '20202020-a10b-400b-800b-ca1c4e0b0001',
tabs: {
home: {
universalIdentifier: '20202020-ab0b-400b-800b-ca1c4e0b0b01',
widgets: {
fields: {
universalIdentifier: '20202020-ac0b-400b-800b-ca1c4e0b0b11',
},
},
},
timeline: {
universalIdentifier: '20202020-ab0b-400b-800b-ca1c4e0b0b02',
widgets: {
timeline: {
universalIdentifier: '20202020-ac0b-400b-800b-ca1c4e0b0b21',
},
},
},
},
},
calendarEventParticipantRecordPage: {
universalIdentifier: '20202020-a10c-400c-800c-ca1e0a0c0001',
tabs: {
home: {
universalIdentifier: '20202020-ab0c-400c-800c-ca1e0a0c0c01',
widgets: {
fields: {
universalIdentifier: '20202020-ac0c-400c-800c-ca1e0a0c0c11',
},
},
},
timeline: {
universalIdentifier: '20202020-ab0c-400c-800c-ca1e0a0c0c02',
widgets: {
timeline: {
universalIdentifier: '20202020-ac0c-400c-800c-ca1e0a0c0c21',
},
},
},
},
},
messageChannelMessageAssociationRecordPage: {
universalIdentifier: '20202020-a111-4011-8011-a5c4a5110001',
tabs: {
home: {
universalIdentifier: '20202020-ab11-4011-8011-a5c4a5111101',
widgets: {
fields: {
universalIdentifier: '20202020-ac11-4011-8011-a5c4a5111111',
},
},
},
timeline: {
universalIdentifier: '20202020-ab11-4011-8011-a5c4a5111102',
widgets: {
timeline: {
universalIdentifier: '20202020-ac11-4011-8011-a5c4a5111121',
},
},
},
},
},
messageChannelMessageAssociationMessageFolderRecordPage: {
universalIdentifier: '20202020-a112-4012-8012-a5c4a6120001',
tabs: {
home: {
universalIdentifier: '20202020-ab12-4012-8012-a5c4a6121201',
widgets: {
fields: {
universalIdentifier: '20202020-ac12-4012-8012-a5c4a6121211',
},
},
},
timeline: {
universalIdentifier: '20202020-ab12-4012-8012-a5c4a6121202',
widgets: {
timeline: {
universalIdentifier: '20202020-ac12-4012-8012-a5c4a6121221',
},
},
},
},
},
messageParticipantRecordPage: {
universalIdentifier: '20202020-a114-4014-8014-a5ea10140001',
tabs: {
home: {
universalIdentifier: '20202020-ab14-4014-8014-a5ea10141401',
widgets: {
fields: {
universalIdentifier: '20202020-ac14-4014-8014-a5ea10141411',
},
},
},
timeline: {
universalIdentifier: '20202020-ab14-4014-8014-a5ea10141402',
widgets: {
timeline: {
universalIdentifier: '20202020-ac14-4014-8014-a5ea10141421',
},
},
},
},
},
workflowAutomatedTriggerRecordPage: {
universalIdentifier: '20202020-a115-4015-8015-a0bcf1150001',
tabs: {
home: {
universalIdentifier: '20202020-ab15-4015-8015-a0bcf1151501',
widgets: {
fields: {
universalIdentifier: '20202020-ac15-4015-8015-a0bcf1151511',
},
},
},
timeline: {
universalIdentifier: '20202020-ab15-4015-8015-a0bcf1151502',
widgets: {
timeline: {
universalIdentifier: '20202020-ac15-4015-8015-a0bcf1151521',
},
},
},
},
},
messageThreadRecordPage: {
universalIdentifier: '20202020-95bb-40eb-a699-70e7ea02a79e',
tabs: {
home: {
universalIdentifier: '20202020-f639-48a0-9a44-027cf4e3cd15',
widgets: {
emailThread: {
universalIdentifier: '20202020-d57e-44cb-b220-69a881feb9c3',
},
},
},
},
},
};
@@ -17,6 +17,7 @@ export { DEFAULT_RELATIONS_OBJECTS_STANDARD_IDS } from './constants/default-rela
export { IDENTIFIER_MAX_CHAR_LENGTH } from './constants/identifier-max-char-length.constant';
export { RESERVED_METADATA_NAME_KEYWORDS } from './constants/reserved-metadata-name-keywords.constant';
export { STANDARD_OBJECTS } from './constants/standard-object.constant';
export { STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS } from './constants/standard-page-layout-universal-identifiers.constant';
export type { AllMetadataName } from './types/all-metadata-name.type';
export type {
FailedMetadataValidationError,