@rippling/rippling-sdk 0.2.0-alpha.39 → 0.2.0-alpha.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/examples/manifest/existing-manifest-mutations/existing-manifest-mutations.ts +240 -0
  2. package/lib/manifest/custom-object-page-layout.d.mts +185 -0
  3. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
  4. package/lib/manifest/custom-object-page-layout.d.ts +185 -0
  5. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
  6. package/lib/manifest/custom-object-page-layout.js +569 -0
  7. package/lib/manifest/custom-object-page-layout.js.map +1 -1
  8. package/lib/manifest/custom-object-page-layout.mjs +569 -0
  9. package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
  10. package/lib/manifest/existing-manifest-context.d.mts.map +1 -1
  11. package/lib/manifest/existing-manifest-context.d.ts.map +1 -1
  12. package/lib/manifest/existing-manifest-context.js +1 -0
  13. package/lib/manifest/existing-manifest-context.js.map +1 -1
  14. package/lib/manifest/existing-manifest-context.mjs +1 -0
  15. package/lib/manifest/existing-manifest-context.mjs.map +1 -1
  16. package/lib/manifest/field.d.mts +2 -2
  17. package/lib/manifest/field.d.mts.map +1 -1
  18. package/lib/manifest/field.d.ts +2 -2
  19. package/lib/manifest/field.d.ts.map +1 -1
  20. package/lib/manifest/field.js +14 -7
  21. package/lib/manifest/field.js.map +1 -1
  22. package/lib/manifest/field.mjs +14 -7
  23. package/lib/manifest/field.mjs.map +1 -1
  24. package/lib/manifest/index.d.mts +1 -1
  25. package/lib/manifest/index.d.mts.map +1 -1
  26. package/lib/manifest/index.d.ts +1 -1
  27. package/lib/manifest/index.d.ts.map +1 -1
  28. package/lib/manifest/index.js.map +1 -1
  29. package/lib/manifest/index.mjs.map +1 -1
  30. package/package.json +1 -1
  31. package/src/lib/manifest/custom-object-page-layout.ts +830 -0
  32. package/src/lib/manifest/existing-manifest-context.ts +1 -0
  33. package/src/lib/manifest/field.ts +18 -9
  34. package/src/lib/manifest/index.ts +10 -0
  35. package/src/version.ts +1 -1
  36. package/version.d.mts +1 -1
  37. package/version.d.ts +1 -1
  38. package/version.js +1 -1
  39. package/version.mjs +1 -1
@@ -0,0 +1,240 @@
1
+ /*
2
+ * Existing manifest mutations.
3
+ *
4
+ * This example keeps the existing manifest JSON inline, hydrates it back into
5
+ * SDK objects, removes layout content, adds different layout content, and
6
+ * prints the updated manifest JSON.
7
+ *
8
+ * Run:
9
+ * yarn -s tsn examples/manifest/existing-manifest-mutations/existing-manifest-mutations.ts \
10
+ * > examples/manifest/existing-manifest-mutations/manifest.updated.json
11
+ */
12
+
13
+ import {
14
+ CustomObject,
15
+ CustomObjectFieldSection,
16
+ CustomObjectPageLayout,
17
+ type ExistingManifest,
18
+ ManifestBuilder,
19
+ SelectField,
20
+ TextField,
21
+ } from '@rippling/rippling-sdk/lib/manifest';
22
+
23
+ const existingManifestJson: ExistingManifest = {
24
+ metadata: {
25
+ key: 'gym_membership_management',
26
+ name: 'Gym Membership Management',
27
+ description: 'Small inline manifest used by the existing-manifest mutation example',
28
+ },
29
+ components: [
30
+ {
31
+ type: 'CUSTOM_CATEGORY',
32
+ api_name: 'gym__c',
33
+ name: 'Gym',
34
+ description: 'Memberships, staff, schedules, and attendance',
35
+ },
36
+ {
37
+ type: 'CUSTOM_OBJECT',
38
+ api_name: 'gym_member__c',
39
+ name: 'Member',
40
+ plural_label: 'Members',
41
+ category_api_name: 'gym__c',
42
+ description: 'Gym member profile, contact, and membership status',
43
+ },
44
+ {
45
+ type: 'CUSTOM_OBJECT_FIELD_SECTION',
46
+ section_id: 'sec_gm_profile',
47
+ model_name: 'gym_member__c',
48
+ name: 'Profile',
49
+ },
50
+ {
51
+ type: 'CUSTOM_OBJECT_FIELD_SECTION',
52
+ section_id: 'sec_gm_membership',
53
+ model_name: 'gym_member__c',
54
+ name: 'Membership',
55
+ },
56
+ {
57
+ type: 'CUSTOM_OBJECT_FIELD',
58
+ custom_object_api_name: 'gym_member__c',
59
+ field_api_name: 'first_name__c',
60
+ field_display_name: 'First name',
61
+ data_type: { field_type: 'TEXT', max_length: 80 },
62
+ is_required: true,
63
+ is_unique: false,
64
+ is_indexed: false,
65
+ is_standard: false,
66
+ section: 'sec_gm_profile',
67
+ },
68
+ {
69
+ type: 'CUSTOM_OBJECT_FIELD',
70
+ custom_object_api_name: 'gym_member__c',
71
+ field_api_name: 'last_name__c',
72
+ field_display_name: 'Last name',
73
+ data_type: { field_type: 'TEXT', max_length: 80 },
74
+ is_required: true,
75
+ is_unique: false,
76
+ is_indexed: false,
77
+ is_standard: false,
78
+ section: 'sec_gm_profile',
79
+ },
80
+ {
81
+ type: 'CUSTOM_OBJECT_FIELD',
82
+ custom_object_api_name: 'gym_member__c',
83
+ field_api_name: 'phone__c',
84
+ field_display_name: 'Phone',
85
+ data_type: { field_type: 'PHONE_NUMBER' },
86
+ is_required: false,
87
+ is_unique: false,
88
+ is_indexed: false,
89
+ is_standard: false,
90
+ section: 'sec_gm_profile',
91
+ },
92
+ {
93
+ type: 'CUSTOM_OBJECT_FIELD',
94
+ custom_object_api_name: 'gym_member__c',
95
+ field_api_name: 'membership_status__c',
96
+ field_display_name: 'Membership status',
97
+ data_type: { field_type: 'SELECT', options_list: ['Active', 'Frozen', 'Cancelled', 'Trial'] },
98
+ is_required: true,
99
+ is_unique: false,
100
+ is_indexed: false,
101
+ is_standard: false,
102
+ section: 'sec_gm_membership',
103
+ },
104
+ {
105
+ type: 'CUSTOM_OBJECT_FIELD',
106
+ custom_object_api_name: 'gym_member__c',
107
+ field_api_name: 'join_date__c',
108
+ field_display_name: 'Join date',
109
+ data_type: { field_type: 'DATE' },
110
+ is_required: false,
111
+ is_unique: false,
112
+ is_indexed: false,
113
+ is_standard: false,
114
+ section: 'sec_gm_membership',
115
+ },
116
+ {
117
+ type: 'CUSTOM_OBJECT_PAGE_LAYOUT',
118
+ layout_id: 'layout_gym_member',
119
+ api_name: 'default',
120
+ object_rql_name: 'gym_member__c',
121
+ name: 'Member',
122
+ system_created: false,
123
+ tab_edits: {
124
+ newTabs: [
125
+ {
126
+ key: 'member',
127
+ name: 'Member',
128
+ type: 'tab_with_sections',
129
+ sections: [
130
+ {
131
+ key: 'profile',
132
+ name: 'Profile',
133
+ type: 'fields_section',
134
+ fields: [
135
+ { fieldRqlName: 'first_name__c' },
136
+ { fieldRqlName: 'last_name__c' },
137
+ { fieldRqlName: 'phone__c' },
138
+ ],
139
+ },
140
+ {
141
+ key: 'membership',
142
+ name: 'Membership',
143
+ type: 'fields_section',
144
+ fields: [{ fieldRqlName: 'membership_status__c' }, { fieldRqlName: 'join_date__c' }],
145
+ },
146
+ ],
147
+ },
148
+ ],
149
+ systemTabEdits: {},
150
+ tabsOrder: ['member'],
151
+ },
152
+ header_edits: {
153
+ newTitleField: 'first_name__c',
154
+ newDescriptionField: 'membership_status__c',
155
+ },
156
+ visibility_conditions: {},
157
+ blueprint_key: 'gym_member__c',
158
+ },
159
+ ],
160
+ };
161
+
162
+ const manifest = ManifestBuilder.loadFromExistingJson(existingManifestJson);
163
+ const memberObj = CustomObject.loadFromExisting('gym_member__c');
164
+ const profileSection = CustomObjectFieldSection.loadFromExisting('sec_gm_profile', {
165
+ customObjectApiName: memberObj.getApiName(),
166
+ });
167
+ const memberLayout = CustomObjectPageLayout.loadFromExisting('layout_gym_member', {
168
+ customObjectApiName: memberObj.getApiName(),
169
+ });
170
+
171
+ const preferredName = new TextField(memberObj, {
172
+ apiName: 'preferred_name__c',
173
+ displayName: 'Preferred name',
174
+ maxLength: 80,
175
+ section: profileSection,
176
+ });
177
+
178
+ // Remove an existing field from one section, then add a different field there.
179
+ // The removed field component remains in the manifest; only this layout stops
180
+ // rendering it.
181
+ memberLayout
182
+ .removeField('phone__c', {
183
+ tabKey: 'member',
184
+ sectionKey: 'profile',
185
+ removeAll: false,
186
+ })
187
+ .addField(preferredName, {
188
+ tabKey: 'member',
189
+ sectionKey: 'profile',
190
+ fieldSection: profileSection,
191
+ position: 2,
192
+ });
193
+
194
+ const marketingSection = new CustomObjectFieldSection(memberObj, {
195
+ sectionId: 'sec_gm_marketing',
196
+ name: 'Marketing',
197
+ });
198
+ const marketingOptIn = new SelectField(memberObj, {
199
+ apiName: 'marketing_opt_in__c',
200
+ displayName: 'Marketing opt-in',
201
+ options: ['Yes', 'No', 'Unknown'],
202
+ section: marketingSection,
203
+ });
204
+ const referralSource = new TextField(memberObj, {
205
+ apiName: 'referral_source__c',
206
+ displayName: 'Referral source',
207
+ maxLength: 120,
208
+ section: marketingSection,
209
+ });
210
+
211
+ // Remove one existing section from the layout, then add a different one.
212
+ // The removed section component and its fields remain in the manifest.
213
+ memberLayout
214
+ .removeSection('membership', {
215
+ tabKey: 'member',
216
+ removeAll: false,
217
+ })
218
+ .addSection(
219
+ {
220
+ key: 'marketing',
221
+ name: 'Marketing',
222
+ type: 'fields_section',
223
+ section: marketingSection,
224
+ fields: [marketingOptIn, referralSource],
225
+ layout: 'two_column',
226
+ },
227
+ {
228
+ tabKey: 'member',
229
+ position: 'end',
230
+ },
231
+ )
232
+ .addHeaderField(preferredName, {
233
+ key: 'preferred_name_header',
234
+ canBeDeleted: true,
235
+ canBeMoved: true,
236
+ })
237
+ .setTitleField(preferredName)
238
+ .removeDescriptionField();
239
+
240
+ console.log(manifest.preview());
@@ -187,6 +187,116 @@ export interface VisibilityConditions {
187
187
  /** Per-tab visibility conditions, keyed by tab key. Optional. */
188
188
  tabs?: Record<string, VisibilityCondition>;
189
189
  }
190
+ /** Where to insert a new layout item. Defaults to `'end'`. */
191
+ export type PageLayoutMutationPosition = 'start' | 'end' | number;
192
+ /** Options for adding a field to an existing layout section. */
193
+ export interface AddPageLayoutFieldOptions extends SectionFieldOptions {
194
+ /**
195
+ * Tab key containing the target section. Optional when `sectionKey` is unique
196
+ * across the layout.
197
+ */
198
+ tabKey?: string;
199
+ /** Section key to add the field to. Required. */
200
+ sectionKey: string;
201
+ /**
202
+ * Field-section metadata to assign to the field component.
203
+ *
204
+ * Existing layouts often use layout section keys that differ from field section
205
+ * ids. Pass this when the field was not constructed with a `section`.
206
+ */
207
+ fieldSection?: CustomObjectFieldSection;
208
+ /** Insert position inside the section field list. Optional. @default `'end'` */
209
+ position?: PageLayoutMutationPosition;
210
+ /** Allow the same field to appear twice in the same section. Optional. @default false */
211
+ allowDuplicate?: boolean;
212
+ /**
213
+ * Add to a built-in system section via `systemTabEdits`.
214
+ *
215
+ * When true, `tabKey` is required and the edit is created if it does not
216
+ * already exist.
217
+ */
218
+ systemSection?: boolean;
219
+ }
220
+ /** Options for adding multiple fields to an existing layout section. */
221
+ export type AddPageLayoutFieldsOptions = AddPageLayoutFieldOptions;
222
+ /** Options for removing fields from a layout. */
223
+ export interface RemovePageLayoutFieldOptions {
224
+ /** Limit removal to one tab. Optional. */
225
+ tabKey?: string;
226
+ /** Limit removal to one section. Optional. */
227
+ sectionKey?: string;
228
+ /**
229
+ * Remove all matching occurrences. When false, removing a field that appears
230
+ * more than once throws. Optional. @default true
231
+ */
232
+ removeAll?: boolean;
233
+ /** Remove from a built-in system section edit. Optional. */
234
+ systemSection?: boolean;
235
+ }
236
+ /** Options for adding a section to an existing tab. */
237
+ export interface AddPageLayoutSectionOptions {
238
+ /** Tab key to add the section to. Required. */
239
+ tabKey: string;
240
+ /** Insert position inside the tab. Optional. @default `'end'` */
241
+ position?: PageLayoutMutationPosition;
242
+ /** Allow another section with the same key in the same tab. Optional. @default false */
243
+ allowDuplicate?: boolean;
244
+ /**
245
+ * Add to a built-in system tab via `systemTabEdits.newSections`.
246
+ *
247
+ * When false, the tab must already be present in `newTabs`.
248
+ */
249
+ systemTab?: boolean;
250
+ }
251
+ /** Options for removing sections from a layout. */
252
+ export interface RemovePageLayoutSectionOptions {
253
+ /** Limit removal to one tab. Optional. */
254
+ tabKey?: string;
255
+ /**
256
+ * Remove all matching occurrences. When false, removing a section that appears
257
+ * more than once throws. Optional. @default true
258
+ */
259
+ removeAll?: boolean;
260
+ /** Delete a built-in system section via `systemSectionEdits`. Requires `tabKey`. */
261
+ systemSection?: boolean;
262
+ }
263
+ /** Options for adding a tab to a layout. */
264
+ export interface AddPageLayoutTabOptions {
265
+ /** Insert position inside `newTabs`. Optional. @default `'end'` */
266
+ position?: PageLayoutMutationPosition;
267
+ /** Allow another tab with the same key. Optional. @default false */
268
+ allowDuplicate?: boolean;
269
+ }
270
+ /** Options for removing a tab from a layout. */
271
+ export interface RemovePageLayoutTabOptions {
272
+ /**
273
+ * Remove all matching occurrences. When false, removing a tab that appears
274
+ * more than once throws. Optional. @default true
275
+ */
276
+ removeAll?: boolean;
277
+ /** Delete a built-in system tab via `systemTabEdits`. */
278
+ systemTab?: boolean;
279
+ }
280
+ /** Options for adding a custom header field. */
281
+ export interface AddHeaderFieldOptions extends Omit<NewHeaderField, 'rqlName' | 'key'> {
282
+ /**
283
+ * Stable header key. Defaults to the field api_name when adding a `Field`.
284
+ * Required when adding a raw `NewHeaderField`.
285
+ */
286
+ key?: string;
287
+ /** Insert position inside `newFields` and `headerFieldsOrder`. Optional. @default `'end'` */
288
+ position?: PageLayoutMutationPosition;
289
+ /** Allow another custom header field with the same key. Optional. @default false */
290
+ allowDuplicate?: boolean;
291
+ }
292
+ /** Options for removing custom header fields. */
293
+ export interface RemoveHeaderFieldOptions {
294
+ /**
295
+ * Remove all matching occurrences. When false, removing a header field that
296
+ * appears more than once throws. Optional. @default true
297
+ */
298
+ removeAll?: boolean;
299
+ }
190
300
  /**
191
301
  * Initialization properties for {@link CustomObjectPageLayout}.
192
302
  */
@@ -319,6 +429,81 @@ export declare class CustomObjectPageLayout {
319
429
  * Returns the api_name of the custom object this layout belongs to.
320
430
  */
321
431
  getCustomObjectApiName(): string;
432
+ /**
433
+ * Adds one field to an existing layout section.
434
+ *
435
+ * For loaded layouts, this mutates the preserved `tab_edits` JSON in place
436
+ * and normalizes only the inserted field entry.
437
+ */
438
+ addField(field: Field, options: AddPageLayoutFieldOptions): this;
439
+ /**
440
+ * Adds multiple fields to an existing layout section.
441
+ *
442
+ * Fields are inserted in the order provided. If a field does not already have
443
+ * field-section metadata, pass `options.fieldSection` so the corresponding
444
+ * `CUSTOM_OBJECT_FIELD_SECTION` component is registered in the manifest.
445
+ */
446
+ addFields(fields: Field[], options: AddPageLayoutFieldsOptions): this;
447
+ /**
448
+ * Removes a field from the layout's field sections.
449
+ *
450
+ * This only removes the field from the page layout. It does not delete the
451
+ * `CUSTOM_OBJECT_FIELD` component from the manifest.
452
+ */
453
+ removeField(field: Field | string, options?: RemovePageLayoutFieldOptions): this;
454
+ /** Removes multiple fields from the layout's field sections. */
455
+ removeFields(fields: Array<Field | string>, options?: RemovePageLayoutFieldOptions): this;
456
+ /**
457
+ * Adds a section to an existing tab.
458
+ *
459
+ * Pass `systemTab: true` to add a new section to a built-in tab via
460
+ * `systemTabEdits.newSections`.
461
+ */
462
+ addSection(section: PageLayoutSection, options: AddPageLayoutSectionOptions): this;
463
+ /**
464
+ * Removes a section from `newTabs` / `systemTabEdits.newSections`.
465
+ *
466
+ * Pass `systemSection: true` with `tabKey` to delete a built-in section via
467
+ * `systemSectionEdits[sectionKey].deleted`.
468
+ */
469
+ removeSection(sectionKey: string, options?: RemovePageLayoutSectionOptions): this;
470
+ /** Adds a new tab to `tab_edits.newTabs`. */
471
+ addTab(tab: PageLayoutTab, options?: AddPageLayoutTabOptions): this;
472
+ /**
473
+ * Removes a tab from `newTabs`.
474
+ *
475
+ * Pass `systemTab: true` to delete a built-in tab via `systemTabEdits[tabKey].deleted`.
476
+ */
477
+ removeTab(tabKey: string, options?: RemovePageLayoutTabOptions): this;
478
+ /** Adds a custom header field to `header_edits.newFields`. */
479
+ addHeaderField(field: Field | NewHeaderField, options?: AddHeaderFieldOptions): this;
480
+ /** Removes custom header fields from `header_edits.newFields`. */
481
+ removeHeaderField(fieldOrKey: Field | string, options?: RemoveHeaderFieldOptions): this;
482
+ /** Sets the record title field in `header_edits`. */
483
+ setTitleField(field: Field | string | null): this;
484
+ /** Removes the record title field from the header. */
485
+ removeTitleField(): this;
486
+ /** Sets the record description field in `header_edits`. */
487
+ setDescriptionField(field: Field | string | null): this;
488
+ /** Removes the record description field from the header. */
489
+ removeDescriptionField(): this;
490
+ private serializeFieldForMutation;
491
+ private normalizeSectionFieldForMutation;
492
+ private normalizeSectionForMutation;
493
+ private normalizeTabForMutation;
494
+ private assignFieldSectionForMutation;
495
+ private assertFieldBelongsToLayout;
496
+ private requireOneFieldContainer;
497
+ private findFieldContainers;
498
+ private ensureSystemSectionFieldContainer;
499
+ private ensureSystemTabEdit;
500
+ private ensureSystemSectionEdit;
501
+ private findNewTabWithSections;
502
+ private assertSectionKeyAvailable;
503
+ private normalizeHeaderFieldForMutation;
504
+ private headerFieldApiName;
505
+ private removeSectionVisibility;
506
+ private removeTabVisibility;
322
507
  /**
323
508
  * Serializes this layout to the wire format consumed by the manifest install endpoint.
324
509
  *
@@ -1 +1 @@
1
- {"version":3,"file":"custom-object-page-layout.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-object-page-layout.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":"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"}
@@ -187,6 +187,116 @@ export interface VisibilityConditions {
187
187
  /** Per-tab visibility conditions, keyed by tab key. Optional. */
188
188
  tabs?: Record<string, VisibilityCondition>;
189
189
  }
190
+ /** Where to insert a new layout item. Defaults to `'end'`. */
191
+ export type PageLayoutMutationPosition = 'start' | 'end' | number;
192
+ /** Options for adding a field to an existing layout section. */
193
+ export interface AddPageLayoutFieldOptions extends SectionFieldOptions {
194
+ /**
195
+ * Tab key containing the target section. Optional when `sectionKey` is unique
196
+ * across the layout.
197
+ */
198
+ tabKey?: string;
199
+ /** Section key to add the field to. Required. */
200
+ sectionKey: string;
201
+ /**
202
+ * Field-section metadata to assign to the field component.
203
+ *
204
+ * Existing layouts often use layout section keys that differ from field section
205
+ * ids. Pass this when the field was not constructed with a `section`.
206
+ */
207
+ fieldSection?: CustomObjectFieldSection;
208
+ /** Insert position inside the section field list. Optional. @default `'end'` */
209
+ position?: PageLayoutMutationPosition;
210
+ /** Allow the same field to appear twice in the same section. Optional. @default false */
211
+ allowDuplicate?: boolean;
212
+ /**
213
+ * Add to a built-in system section via `systemTabEdits`.
214
+ *
215
+ * When true, `tabKey` is required and the edit is created if it does not
216
+ * already exist.
217
+ */
218
+ systemSection?: boolean;
219
+ }
220
+ /** Options for adding multiple fields to an existing layout section. */
221
+ export type AddPageLayoutFieldsOptions = AddPageLayoutFieldOptions;
222
+ /** Options for removing fields from a layout. */
223
+ export interface RemovePageLayoutFieldOptions {
224
+ /** Limit removal to one tab. Optional. */
225
+ tabKey?: string;
226
+ /** Limit removal to one section. Optional. */
227
+ sectionKey?: string;
228
+ /**
229
+ * Remove all matching occurrences. When false, removing a field that appears
230
+ * more than once throws. Optional. @default true
231
+ */
232
+ removeAll?: boolean;
233
+ /** Remove from a built-in system section edit. Optional. */
234
+ systemSection?: boolean;
235
+ }
236
+ /** Options for adding a section to an existing tab. */
237
+ export interface AddPageLayoutSectionOptions {
238
+ /** Tab key to add the section to. Required. */
239
+ tabKey: string;
240
+ /** Insert position inside the tab. Optional. @default `'end'` */
241
+ position?: PageLayoutMutationPosition;
242
+ /** Allow another section with the same key in the same tab. Optional. @default false */
243
+ allowDuplicate?: boolean;
244
+ /**
245
+ * Add to a built-in system tab via `systemTabEdits.newSections`.
246
+ *
247
+ * When false, the tab must already be present in `newTabs`.
248
+ */
249
+ systemTab?: boolean;
250
+ }
251
+ /** Options for removing sections from a layout. */
252
+ export interface RemovePageLayoutSectionOptions {
253
+ /** Limit removal to one tab. Optional. */
254
+ tabKey?: string;
255
+ /**
256
+ * Remove all matching occurrences. When false, removing a section that appears
257
+ * more than once throws. Optional. @default true
258
+ */
259
+ removeAll?: boolean;
260
+ /** Delete a built-in system section via `systemSectionEdits`. Requires `tabKey`. */
261
+ systemSection?: boolean;
262
+ }
263
+ /** Options for adding a tab to a layout. */
264
+ export interface AddPageLayoutTabOptions {
265
+ /** Insert position inside `newTabs`. Optional. @default `'end'` */
266
+ position?: PageLayoutMutationPosition;
267
+ /** Allow another tab with the same key. Optional. @default false */
268
+ allowDuplicate?: boolean;
269
+ }
270
+ /** Options for removing a tab from a layout. */
271
+ export interface RemovePageLayoutTabOptions {
272
+ /**
273
+ * Remove all matching occurrences. When false, removing a tab that appears
274
+ * more than once throws. Optional. @default true
275
+ */
276
+ removeAll?: boolean;
277
+ /** Delete a built-in system tab via `systemTabEdits`. */
278
+ systemTab?: boolean;
279
+ }
280
+ /** Options for adding a custom header field. */
281
+ export interface AddHeaderFieldOptions extends Omit<NewHeaderField, 'rqlName' | 'key'> {
282
+ /**
283
+ * Stable header key. Defaults to the field api_name when adding a `Field`.
284
+ * Required when adding a raw `NewHeaderField`.
285
+ */
286
+ key?: string;
287
+ /** Insert position inside `newFields` and `headerFieldsOrder`. Optional. @default `'end'` */
288
+ position?: PageLayoutMutationPosition;
289
+ /** Allow another custom header field with the same key. Optional. @default false */
290
+ allowDuplicate?: boolean;
291
+ }
292
+ /** Options for removing custom header fields. */
293
+ export interface RemoveHeaderFieldOptions {
294
+ /**
295
+ * Remove all matching occurrences. When false, removing a header field that
296
+ * appears more than once throws. Optional. @default true
297
+ */
298
+ removeAll?: boolean;
299
+ }
190
300
  /**
191
301
  * Initialization properties for {@link CustomObjectPageLayout}.
192
302
  */
@@ -319,6 +429,81 @@ export declare class CustomObjectPageLayout {
319
429
  * Returns the api_name of the custom object this layout belongs to.
320
430
  */
321
431
  getCustomObjectApiName(): string;
432
+ /**
433
+ * Adds one field to an existing layout section.
434
+ *
435
+ * For loaded layouts, this mutates the preserved `tab_edits` JSON in place
436
+ * and normalizes only the inserted field entry.
437
+ */
438
+ addField(field: Field, options: AddPageLayoutFieldOptions): this;
439
+ /**
440
+ * Adds multiple fields to an existing layout section.
441
+ *
442
+ * Fields are inserted in the order provided. If a field does not already have
443
+ * field-section metadata, pass `options.fieldSection` so the corresponding
444
+ * `CUSTOM_OBJECT_FIELD_SECTION` component is registered in the manifest.
445
+ */
446
+ addFields(fields: Field[], options: AddPageLayoutFieldsOptions): this;
447
+ /**
448
+ * Removes a field from the layout's field sections.
449
+ *
450
+ * This only removes the field from the page layout. It does not delete the
451
+ * `CUSTOM_OBJECT_FIELD` component from the manifest.
452
+ */
453
+ removeField(field: Field | string, options?: RemovePageLayoutFieldOptions): this;
454
+ /** Removes multiple fields from the layout's field sections. */
455
+ removeFields(fields: Array<Field | string>, options?: RemovePageLayoutFieldOptions): this;
456
+ /**
457
+ * Adds a section to an existing tab.
458
+ *
459
+ * Pass `systemTab: true` to add a new section to a built-in tab via
460
+ * `systemTabEdits.newSections`.
461
+ */
462
+ addSection(section: PageLayoutSection, options: AddPageLayoutSectionOptions): this;
463
+ /**
464
+ * Removes a section from `newTabs` / `systemTabEdits.newSections`.
465
+ *
466
+ * Pass `systemSection: true` with `tabKey` to delete a built-in section via
467
+ * `systemSectionEdits[sectionKey].deleted`.
468
+ */
469
+ removeSection(sectionKey: string, options?: RemovePageLayoutSectionOptions): this;
470
+ /** Adds a new tab to `tab_edits.newTabs`. */
471
+ addTab(tab: PageLayoutTab, options?: AddPageLayoutTabOptions): this;
472
+ /**
473
+ * Removes a tab from `newTabs`.
474
+ *
475
+ * Pass `systemTab: true` to delete a built-in tab via `systemTabEdits[tabKey].deleted`.
476
+ */
477
+ removeTab(tabKey: string, options?: RemovePageLayoutTabOptions): this;
478
+ /** Adds a custom header field to `header_edits.newFields`. */
479
+ addHeaderField(field: Field | NewHeaderField, options?: AddHeaderFieldOptions): this;
480
+ /** Removes custom header fields from `header_edits.newFields`. */
481
+ removeHeaderField(fieldOrKey: Field | string, options?: RemoveHeaderFieldOptions): this;
482
+ /** Sets the record title field in `header_edits`. */
483
+ setTitleField(field: Field | string | null): this;
484
+ /** Removes the record title field from the header. */
485
+ removeTitleField(): this;
486
+ /** Sets the record description field in `header_edits`. */
487
+ setDescriptionField(field: Field | string | null): this;
488
+ /** Removes the record description field from the header. */
489
+ removeDescriptionField(): this;
490
+ private serializeFieldForMutation;
491
+ private normalizeSectionFieldForMutation;
492
+ private normalizeSectionForMutation;
493
+ private normalizeTabForMutation;
494
+ private assignFieldSectionForMutation;
495
+ private assertFieldBelongsToLayout;
496
+ private requireOneFieldContainer;
497
+ private findFieldContainers;
498
+ private ensureSystemSectionFieldContainer;
499
+ private ensureSystemTabEdit;
500
+ private ensureSystemSectionEdit;
501
+ private findNewTabWithSections;
502
+ private assertSectionKeyAvailable;
503
+ private normalizeHeaderFieldForMutation;
504
+ private headerFieldApiName;
505
+ private removeSectionVisibility;
506
+ private removeTabVisibility;
322
507
  /**
323
508
  * Serializes this layout to the wire format consumed by the manifest install endpoint.
324
509
  *