@rippling/rippling-sdk 0.2.0-alpha.37 → 0.2.0-alpha.39
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.
- package/examples/sdui/sdui-crud-todo/sdui-crud-todo.ts +3 -3
- package/examples/sdui/sdui-showcase/sdui-showcase.ts +6 -11
- package/examples/sdui/sdui-tab-multi-view/sdui-tab-multi-view.ts +14 -24
- package/examples/sdui/vote/vote.ts +7 -11
- package/lib/manifest/app.d.mts +11 -1
- package/lib/manifest/app.d.mts.map +1 -1
- package/lib/manifest/app.d.ts +11 -1
- package/lib/manifest/app.d.ts.map +1 -1
- package/lib/manifest/app.js +42 -1
- package/lib/manifest/app.js.map +1 -1
- package/lib/manifest/app.mjs +42 -1
- package/lib/manifest/app.mjs.map +1 -1
- package/lib/manifest/category.d.mts +14 -3
- package/lib/manifest/category.d.mts.map +1 -1
- package/lib/manifest/category.d.ts +14 -3
- package/lib/manifest/category.d.ts.map +1 -1
- package/lib/manifest/category.js +25 -3
- package/lib/manifest/category.js.map +1 -1
- package/lib/manifest/category.mjs +25 -3
- package/lib/manifest/category.mjs.map +1 -1
- package/lib/manifest/custom-object-field-section.d.mts +13 -0
- package/lib/manifest/custom-object-field-section.d.mts.map +1 -1
- package/lib/manifest/custom-object-field-section.d.ts +13 -0
- package/lib/manifest/custom-object-field-section.d.ts.map +1 -1
- package/lib/manifest/custom-object-field-section.js +22 -1
- package/lib/manifest/custom-object-field-section.js.map +1 -1
- package/lib/manifest/custom-object-field-section.mjs +22 -1
- package/lib/manifest/custom-object-field-section.mjs.map +1 -1
- package/lib/manifest/custom-object-page-layout.d.mts +23 -0
- package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
- package/lib/manifest/custom-object-page-layout.d.ts +23 -0
- package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
- package/lib/manifest/custom-object-page-layout.js +45 -2
- package/lib/manifest/custom-object-page-layout.js.map +1 -1
- package/lib/manifest/custom-object-page-layout.mjs +45 -2
- package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
- package/lib/manifest/custom-object.d.mts +41 -2
- package/lib/manifest/custom-object.d.mts.map +1 -1
- package/lib/manifest/custom-object.d.ts +41 -2
- package/lib/manifest/custom-object.d.ts.map +1 -1
- package/lib/manifest/custom-object.js +70 -3
- package/lib/manifest/custom-object.js.map +1 -1
- package/lib/manifest/custom-object.mjs +70 -3
- package/lib/manifest/custom-object.mjs.map +1 -1
- package/lib/manifest/existing-manifest-context.d.mts +87 -0
- package/lib/manifest/existing-manifest-context.d.mts.map +1 -0
- package/lib/manifest/existing-manifest-context.d.ts +87 -0
- package/lib/manifest/existing-manifest-context.d.ts.map +1 -0
- package/lib/manifest/existing-manifest-context.js +511 -0
- package/lib/manifest/existing-manifest-context.js.map +1 -0
- package/lib/manifest/existing-manifest-context.mjs +506 -0
- package/lib/manifest/existing-manifest-context.mjs.map +1 -0
- package/lib/manifest/field.d.mts +44 -2
- package/lib/manifest/field.d.mts.map +1 -1
- package/lib/manifest/field.d.ts +44 -2
- package/lib/manifest/field.d.ts.map +1 -1
- package/lib/manifest/field.js +134 -3
- package/lib/manifest/field.js.map +1 -1
- package/lib/manifest/field.mjs +134 -3
- package/lib/manifest/field.mjs.map +1 -1
- package/lib/manifest/index.d.mts +8 -7
- package/lib/manifest/index.d.mts.map +1 -1
- package/lib/manifest/index.d.ts +8 -7
- package/lib/manifest/index.d.ts.map +1 -1
- package/lib/manifest/index.js +3 -1
- package/lib/manifest/index.js.map +1 -1
- package/lib/manifest/index.mjs +5 -4
- package/lib/manifest/index.mjs.map +1 -1
- package/lib/manifest/list-view.d.mts +17 -0
- package/lib/manifest/list-view.d.mts.map +1 -1
- package/lib/manifest/list-view.d.ts +17 -0
- package/lib/manifest/list-view.d.ts.map +1 -1
- package/lib/manifest/list-view.js +38 -1
- package/lib/manifest/list-view.js.map +1 -1
- package/lib/manifest/list-view.mjs +38 -1
- package/lib/manifest/list-view.mjs.map +1 -1
- package/lib/manifest/manifest-builder.d.mts +60 -7
- package/lib/manifest/manifest-builder.d.mts.map +1 -1
- package/lib/manifest/manifest-builder.d.ts +60 -7
- package/lib/manifest/manifest-builder.d.ts.map +1 -1
- package/lib/manifest/manifest-builder.js +62 -4
- package/lib/manifest/manifest-builder.js.map +1 -1
- package/lib/manifest/manifest-builder.mjs +62 -4
- package/lib/manifest/manifest-builder.mjs.map +1 -1
- package/lib/manifest/manifest-function.d.mts +18 -3
- package/lib/manifest/manifest-function.d.mts.map +1 -1
- package/lib/manifest/manifest-function.d.ts +18 -3
- package/lib/manifest/manifest-function.d.ts.map +1 -1
- package/lib/manifest/manifest-function.js +44 -3
- package/lib/manifest/manifest-function.js.map +1 -1
- package/lib/manifest/manifest-function.mjs +44 -3
- package/lib/manifest/manifest-function.mjs.map +1 -1
- package/lib/manifest/rule.d.mts +17 -0
- package/lib/manifest/rule.d.mts.map +1 -1
- package/lib/manifest/rule.d.ts +17 -0
- package/lib/manifest/rule.d.ts.map +1 -1
- package/lib/manifest/rule.js +45 -1
- package/lib/manifest/rule.js.map +1 -1
- package/lib/manifest/rule.mjs +45 -1
- package/lib/manifest/rule.mjs.map +1 -1
- package/lib/manifest/sdui-page.d.mts +10 -1
- package/lib/manifest/sdui-page.d.mts.map +1 -1
- package/lib/manifest/sdui-page.d.ts +10 -1
- package/lib/manifest/sdui-page.d.ts.map +1 -1
- package/lib/manifest/sdui-page.js +28 -1
- package/lib/manifest/sdui-page.js.map +1 -1
- package/lib/manifest/sdui-page.mjs +28 -1
- package/lib/manifest/sdui-page.mjs.map +1 -1
- package/lib/manifest/validation.d.mts +17 -0
- package/lib/manifest/validation.d.mts.map +1 -1
- package/lib/manifest/validation.d.ts +17 -0
- package/lib/manifest/validation.d.ts.map +1 -1
- package/lib/manifest/validation.js +31 -1
- package/lib/manifest/validation.js.map +1 -1
- package/lib/manifest/validation.mjs +31 -1
- package/lib/manifest/validation.mjs.map +1 -1
- package/lib/sdui/actions.d.mts.map +1 -1
- package/lib/sdui/actions.d.ts.map +1 -1
- package/lib/sdui/actions.js +23 -13
- package/lib/sdui/actions.js.map +1 -1
- package/lib/sdui/actions.mjs +23 -13
- package/lib/sdui/actions.mjs.map +1 -1
- package/lib/sdui/component.d.mts +28 -11
- package/lib/sdui/component.d.mts.map +1 -1
- package/lib/sdui/component.d.ts +28 -11
- package/lib/sdui/component.d.ts.map +1 -1
- package/lib/sdui/component.js +69 -36
- package/lib/sdui/component.js.map +1 -1
- package/lib/sdui/component.mjs +69 -36
- package/lib/sdui/component.mjs.map +1 -1
- package/lib/sdui/components.d.mts +1141 -132
- package/lib/sdui/components.d.mts.map +1 -1
- package/lib/sdui/components.d.ts +1141 -132
- package/lib/sdui/components.d.ts.map +1 -1
- package/lib/sdui/components.js +834 -206
- package/lib/sdui/components.js.map +1 -1
- package/lib/sdui/components.mjs +830 -203
- package/lib/sdui/components.mjs.map +1 -1
- package/lib/sdui/directives.d.mts.map +1 -1
- package/lib/sdui/directives.d.ts.map +1 -1
- package/lib/sdui/directives.js +4 -1
- package/lib/sdui/directives.js.map +1 -1
- package/lib/sdui/directives.mjs +4 -1
- package/lib/sdui/directives.mjs.map +1 -1
- package/lib/sdui/index.d.mts +314 -261
- package/lib/sdui/index.d.mts.map +1 -1
- package/lib/sdui/index.d.ts +314 -261
- package/lib/sdui/index.d.ts.map +1 -1
- package/lib/sdui/index.js +255 -204
- package/lib/sdui/index.js.map +1 -1
- package/lib/sdui/index.mjs +128 -103
- package/lib/sdui/index.mjs.map +1 -1
- package/lib/sdui/propTypes.d.mts +6330 -0
- package/lib/sdui/propTypes.d.mts.map +1 -0
- package/lib/sdui/propTypes.d.ts +6330 -0
- package/lib/sdui/propTypes.d.ts.map +1 -0
- package/lib/sdui/propTypes.js +14 -0
- package/lib/sdui/propTypes.js.map +1 -0
- package/lib/sdui/propTypes.mjs +13 -0
- package/lib/sdui/propTypes.mjs.map +1 -0
- package/lib/sdui/render.d.mts +1 -1
- package/lib/sdui/render.d.mts.map +1 -1
- package/lib/sdui/render.d.ts +1 -1
- package/lib/sdui/render.d.ts.map +1 -1
- package/lib/sdui/render.js +11 -3
- package/lib/sdui/render.js.map +1 -1
- package/lib/sdui/render.mjs +11 -3
- package/lib/sdui/render.mjs.map +1 -1
- package/lib/sdui/state.d.mts.map +1 -1
- package/lib/sdui/state.d.ts.map +1 -1
- package/lib/sdui/state.js +3 -1
- package/lib/sdui/state.js.map +1 -1
- package/lib/sdui/state.mjs +3 -1
- package/lib/sdui/state.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/manifest/app.ts +46 -2
- package/src/lib/manifest/category.ts +35 -7
- package/src/lib/manifest/custom-object-field-section.ts +37 -1
- package/src/lib/manifest/custom-object-page-layout.ts +67 -2
- package/src/lib/manifest/custom-object.ts +88 -4
- package/src/lib/manifest/existing-manifest-context.ts +673 -0
- package/src/lib/manifest/field.ts +160 -3
- package/src/lib/manifest/index.ts +39 -4
- package/src/lib/manifest/list-view.ts +50 -1
- package/src/lib/manifest/manifest-builder.ts +115 -5
- package/src/lib/manifest/manifest-function.ts +44 -4
- package/src/lib/manifest/rule.ts +60 -1
- package/src/lib/manifest/sdui-page.ts +37 -2
- package/src/lib/manifest/validation.ts +48 -1
- package/src/lib/sdui/actions.ts +23 -10
- package/src/lib/sdui/component.ts +84 -44
- package/src/lib/sdui/components.ts +1627 -212
- package/src/lib/sdui/directives.ts +4 -1
- package/src/lib/sdui/index.ts +565 -200
- package/src/lib/sdui/propTypes.ts +8470 -0
- package/src/lib/sdui/render.ts +13 -5
- package/src/lib/sdui/state.ts +8 -2
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CustomObjectPageLayout = void 0;
|
|
4
4
|
const _helpers_1 = require("./_helpers.js");
|
|
5
5
|
const custom_object_field_section_1 = require("./custom-object-field-section.js");
|
|
6
|
+
const existing_manifest_context_1 = require("./existing-manifest-context.js");
|
|
6
7
|
function isField(value) {
|
|
7
8
|
const candidate = value;
|
|
8
9
|
return (candidate != null &&
|
|
@@ -55,12 +56,15 @@ function normalizeFieldsSection(customObject, input) {
|
|
|
55
56
|
assertSectionBelongsTo(customObject, input.section);
|
|
56
57
|
const key = input.key ?? input.section.getSectionId();
|
|
57
58
|
const name = input.name ?? input.section.getName();
|
|
58
|
-
|
|
59
|
+
const normalized = {
|
|
59
60
|
key,
|
|
60
61
|
name,
|
|
61
62
|
type: 'fields_section',
|
|
62
63
|
fields: input.fields.map((field) => normalizeSectionField(customObject, input.section, key, field)),
|
|
63
64
|
};
|
|
65
|
+
if (input.layout != null)
|
|
66
|
+
normalized.layout = input.layout;
|
|
67
|
+
return normalized;
|
|
64
68
|
}
|
|
65
69
|
function normalizeTab(customObject, tab) {
|
|
66
70
|
if (tab.type === 'custom_tab')
|
|
@@ -108,6 +112,11 @@ function normalizeTabEdits(customObject, tabEdits) {
|
|
|
108
112
|
}
|
|
109
113
|
return normalized;
|
|
110
114
|
}
|
|
115
|
+
function cloneJson(value) {
|
|
116
|
+
if (value == null)
|
|
117
|
+
return value;
|
|
118
|
+
return JSON.parse(JSON.stringify(value));
|
|
119
|
+
}
|
|
111
120
|
// ---------------------------------------------------------------------------
|
|
112
121
|
// Class
|
|
113
122
|
// ---------------------------------------------------------------------------
|
|
@@ -152,6 +161,13 @@ function normalizeTabEdits(customObject, tabEdits) {
|
|
|
152
161
|
* @see {@link CustomObjectPageLayout.basic} — factory for simple single-tab layouts.
|
|
153
162
|
*/
|
|
154
163
|
class CustomObjectPageLayout {
|
|
164
|
+
static toDeletionIdentifier(identifier) {
|
|
165
|
+
return {
|
|
166
|
+
type: CustomObjectPageLayout.componentType,
|
|
167
|
+
layout_id: identifier.layoutId,
|
|
168
|
+
object_rql_name: identifier.objectRqlName,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
155
171
|
/**
|
|
156
172
|
* @param customObject - The custom object this layout belongs to.
|
|
157
173
|
* @param props - Initialization properties.
|
|
@@ -172,6 +188,32 @@ class CustomObjectPageLayout {
|
|
|
172
188
|
this._blueprintKey = props.blueprintKey;
|
|
173
189
|
customObject._register(this);
|
|
174
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Loads this page layout from the active existing-manifest JSON context.
|
|
193
|
+
*
|
|
194
|
+
* `id` resolves against `layout_id` first, then `api_name`. When loading by
|
|
195
|
+
* api_name such as `'default'`, pass `customObjectApiName` if multiple objects
|
|
196
|
+
* have a layout with the same api_name.
|
|
197
|
+
*/
|
|
198
|
+
static loadFromExisting(layoutIdOrApiName, options = {}) {
|
|
199
|
+
return (0, existing_manifest_context_1.getExistingManifestContext)(options).loadPageLayout(layoutIdOrApiName, options);
|
|
200
|
+
}
|
|
201
|
+
/** @internal Hydrates a page layout from existing manifest wire JSON. */
|
|
202
|
+
static _fromExistingComponent(customObject, component) {
|
|
203
|
+
const layout = Object.create(CustomObjectPageLayout.prototype);
|
|
204
|
+
Object.assign(layout, {
|
|
205
|
+
_layoutId: component['layout_id'],
|
|
206
|
+
_apiName: component['api_name'],
|
|
207
|
+
_customObjectApiName: component['object_rql_name'],
|
|
208
|
+
_name: component['name'] ?? component['api_name'],
|
|
209
|
+
_tabEdits: cloneJson(component['tab_edits'] ?? {}),
|
|
210
|
+
_headerEdits: cloneJson(component['header_edits'] ?? {}),
|
|
211
|
+
_visibilityConditions: cloneJson(component['visibility_conditions'] ?? {}),
|
|
212
|
+
_blueprintKey: component['blueprint_key'],
|
|
213
|
+
});
|
|
214
|
+
customObject._register(layout);
|
|
215
|
+
return layout;
|
|
216
|
+
}
|
|
175
217
|
/**
|
|
176
218
|
* Returns the stable identifier for this layout record (e.g. `'layout_gym_member'`).
|
|
177
219
|
*/
|
|
@@ -197,7 +239,7 @@ class CustomObjectPageLayout {
|
|
|
197
239
|
*/
|
|
198
240
|
toDict() {
|
|
199
241
|
const d = {
|
|
200
|
-
type:
|
|
242
|
+
type: CustomObjectPageLayout.componentType,
|
|
201
243
|
layout_id: this._layoutId,
|
|
202
244
|
api_name: this._apiName,
|
|
203
245
|
object_rql_name: this._customObjectApiName,
|
|
@@ -265,4 +307,5 @@ class CustomObjectPageLayout {
|
|
|
265
307
|
}
|
|
266
308
|
}
|
|
267
309
|
exports.CustomObjectPageLayout = CustomObjectPageLayout;
|
|
310
|
+
CustomObjectPageLayout.componentType = 'CUSTOM_OBJECT_PAGE_LAYOUT';
|
|
268
311
|
//# sourceMappingURL=custom-object-page-layout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-object-page-layout.js","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":";;;AAAA,4CAAwC;AACxC,kFAAyE;
|
|
1
|
+
{"version":3,"file":"custom-object-page-layout.js","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { generateId } from "./_helpers.mjs";
|
|
2
2
|
import { CustomObjectFieldSection } from "./custom-object-field-section.mjs";
|
|
3
|
+
import { getExistingManifestContext } from "./existing-manifest-context.mjs";
|
|
3
4
|
function isField(value) {
|
|
4
5
|
const candidate = value;
|
|
5
6
|
return (candidate != null &&
|
|
@@ -52,12 +53,15 @@ function normalizeFieldsSection(customObject, input) {
|
|
|
52
53
|
assertSectionBelongsTo(customObject, input.section);
|
|
53
54
|
const key = input.key ?? input.section.getSectionId();
|
|
54
55
|
const name = input.name ?? input.section.getName();
|
|
55
|
-
|
|
56
|
+
const normalized = {
|
|
56
57
|
key,
|
|
57
58
|
name,
|
|
58
59
|
type: 'fields_section',
|
|
59
60
|
fields: input.fields.map((field) => normalizeSectionField(customObject, input.section, key, field)),
|
|
60
61
|
};
|
|
62
|
+
if (input.layout != null)
|
|
63
|
+
normalized.layout = input.layout;
|
|
64
|
+
return normalized;
|
|
61
65
|
}
|
|
62
66
|
function normalizeTab(customObject, tab) {
|
|
63
67
|
if (tab.type === 'custom_tab')
|
|
@@ -105,6 +109,11 @@ function normalizeTabEdits(customObject, tabEdits) {
|
|
|
105
109
|
}
|
|
106
110
|
return normalized;
|
|
107
111
|
}
|
|
112
|
+
function cloneJson(value) {
|
|
113
|
+
if (value == null)
|
|
114
|
+
return value;
|
|
115
|
+
return JSON.parse(JSON.stringify(value));
|
|
116
|
+
}
|
|
108
117
|
// ---------------------------------------------------------------------------
|
|
109
118
|
// Class
|
|
110
119
|
// ---------------------------------------------------------------------------
|
|
@@ -149,6 +158,13 @@ function normalizeTabEdits(customObject, tabEdits) {
|
|
|
149
158
|
* @see {@link CustomObjectPageLayout.basic} — factory for simple single-tab layouts.
|
|
150
159
|
*/
|
|
151
160
|
export class CustomObjectPageLayout {
|
|
161
|
+
static toDeletionIdentifier(identifier) {
|
|
162
|
+
return {
|
|
163
|
+
type: CustomObjectPageLayout.componentType,
|
|
164
|
+
layout_id: identifier.layoutId,
|
|
165
|
+
object_rql_name: identifier.objectRqlName,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
152
168
|
/**
|
|
153
169
|
* @param customObject - The custom object this layout belongs to.
|
|
154
170
|
* @param props - Initialization properties.
|
|
@@ -169,6 +185,32 @@ export class CustomObjectPageLayout {
|
|
|
169
185
|
this._blueprintKey = props.blueprintKey;
|
|
170
186
|
customObject._register(this);
|
|
171
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Loads this page layout from the active existing-manifest JSON context.
|
|
190
|
+
*
|
|
191
|
+
* `id` resolves against `layout_id` first, then `api_name`. When loading by
|
|
192
|
+
* api_name such as `'default'`, pass `customObjectApiName` if multiple objects
|
|
193
|
+
* have a layout with the same api_name.
|
|
194
|
+
*/
|
|
195
|
+
static loadFromExisting(layoutIdOrApiName, options = {}) {
|
|
196
|
+
return getExistingManifestContext(options).loadPageLayout(layoutIdOrApiName, options);
|
|
197
|
+
}
|
|
198
|
+
/** @internal Hydrates a page layout from existing manifest wire JSON. */
|
|
199
|
+
static _fromExistingComponent(customObject, component) {
|
|
200
|
+
const layout = Object.create(CustomObjectPageLayout.prototype);
|
|
201
|
+
Object.assign(layout, {
|
|
202
|
+
_layoutId: component['layout_id'],
|
|
203
|
+
_apiName: component['api_name'],
|
|
204
|
+
_customObjectApiName: component['object_rql_name'],
|
|
205
|
+
_name: component['name'] ?? component['api_name'],
|
|
206
|
+
_tabEdits: cloneJson(component['tab_edits'] ?? {}),
|
|
207
|
+
_headerEdits: cloneJson(component['header_edits'] ?? {}),
|
|
208
|
+
_visibilityConditions: cloneJson(component['visibility_conditions'] ?? {}),
|
|
209
|
+
_blueprintKey: component['blueprint_key'],
|
|
210
|
+
});
|
|
211
|
+
customObject._register(layout);
|
|
212
|
+
return layout;
|
|
213
|
+
}
|
|
172
214
|
/**
|
|
173
215
|
* Returns the stable identifier for this layout record (e.g. `'layout_gym_member'`).
|
|
174
216
|
*/
|
|
@@ -194,7 +236,7 @@ export class CustomObjectPageLayout {
|
|
|
194
236
|
*/
|
|
195
237
|
toDict() {
|
|
196
238
|
const d = {
|
|
197
|
-
type:
|
|
239
|
+
type: CustomObjectPageLayout.componentType,
|
|
198
240
|
layout_id: this._layoutId,
|
|
199
241
|
api_name: this._apiName,
|
|
200
242
|
object_rql_name: this._customObjectApiName,
|
|
@@ -261,4 +303,5 @@ export class CustomObjectPageLayout {
|
|
|
261
303
|
});
|
|
262
304
|
}
|
|
263
305
|
}
|
|
306
|
+
CustomObjectPageLayout.componentType = 'CUSTOM_OBJECT_PAGE_LAYOUT';
|
|
264
307
|
//# sourceMappingURL=custom-object-page-layout.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-object-page-layout.mjs","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE;OACd,EAAE,wBAAwB,EAAE;
|
|
1
|
+
{"version":3,"file":"custom-object-page-layout.mjs","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-page-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Category } from "./category.mjs";
|
|
2
|
-
import
|
|
2
|
+
import { type ExistingManifestContextOptions } from "./existing-manifest-context.mjs";
|
|
3
|
+
import type { ManifestComponent, ManifestComponentDeletion, ManifestScope } from "./manifest-builder.mjs";
|
|
3
4
|
/**
|
|
4
5
|
* Icon displayed next to the custom object name in the Rippling UI.
|
|
5
6
|
*/
|
|
@@ -75,6 +76,21 @@ export interface CustomObjectProps {
|
|
|
75
76
|
* Overrides for the auto-number name field — controls the format string and starting number.
|
|
76
77
|
* Leave `null` to use the default name field behavior.
|
|
77
78
|
*
|
|
79
|
+
* Example:
|
|
80
|
+
* ```ts
|
|
81
|
+
* nameFieldDetails: {
|
|
82
|
+
* is_autonumber_field: true,
|
|
83
|
+
* starting_number: 1,
|
|
84
|
+
* autonumber_format: 'EXP-{0000}',
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @remarks
|
|
89
|
+
* The backend auto-appends `{0000}` to `autonumber_format` if the format string
|
|
90
|
+
* doesn't already contain a sequence token — so `'EXP-'` becomes `'EXP-{0000}'`
|
|
91
|
+
* on the wire. Include the token explicitly when you want a different width
|
|
92
|
+
* (e.g. `'EXP-{00000}'`).
|
|
93
|
+
*
|
|
78
94
|
* Optional. @default null
|
|
79
95
|
*/
|
|
80
96
|
nameFieldDetails?: Record<string, any> | null;
|
|
@@ -100,7 +116,7 @@ export interface CustomObjectProps {
|
|
|
100
116
|
* name: 'Gym Membership Management',
|
|
101
117
|
* });
|
|
102
118
|
*
|
|
103
|
-
* const gymCategory = new Category(manifest, { apiName: 'gym__c', name: 'Gym' });
|
|
119
|
+
* const gymCategory = new Category(manifest, { apiName: 'gym__c', name: 'Gym', description: 'Gym domain' });
|
|
104
120
|
*
|
|
105
121
|
* const memberObj = new CustomObject(manifest, {
|
|
106
122
|
* apiName: 'gym_member__c',
|
|
@@ -125,8 +141,24 @@ export interface CustomObjectProps {
|
|
|
125
141
|
* with `DEPENDENCY_ERROR: Page layout config for CO (api_name=...) not found in package
|
|
126
142
|
* configs. CO requires at least one page layout in the package.`
|
|
127
143
|
* Use {@link CustomObjectPageLayout.basic} for a minimal single-tab layout.
|
|
144
|
+
*
|
|
145
|
+
* **Consider defining at least one {@link ListViewDef}.** Without a list view,
|
|
146
|
+
* the records page has nothing to display by default — users land on an empty grid.
|
|
147
|
+
* Consider shipping a "default" view with the columns most users want to see
|
|
148
|
+
* (typically `name`, the status / category field, owner, and `created_at`), sorted
|
|
149
|
+
* however the records are most commonly browsed.
|
|
150
|
+
*
|
|
151
|
+
* **Consider system fields before authoring new ones.** Every CO ships with
|
|
152
|
+
* `owner_role`, `created_by`, and `last_modified_by` (all `Employee` references),
|
|
153
|
+
* plus `name`, `created_at`, `updated_at`, `external_id`, and `id`. For any
|
|
154
|
+
* "the employee responsible for this record" semantics, consider using
|
|
155
|
+
* `owner_role` rather than adding a new {@link LookupField} targeting `'role'`.
|
|
156
|
+
* `owner_role` drives Rippling's record-level permissions, so a parallel field
|
|
157
|
+
* can fragment ownership and complicate the permission story.
|
|
128
158
|
*/
|
|
129
159
|
export declare class CustomObject implements ManifestScope {
|
|
160
|
+
static readonly componentType: "CUSTOM_OBJECT";
|
|
161
|
+
static toDeletionIdentifier(apiName: string): ManifestComponentDeletion;
|
|
130
162
|
private readonly _scope;
|
|
131
163
|
private readonly _apiName;
|
|
132
164
|
private readonly _name;
|
|
@@ -142,6 +174,13 @@ export declare class CustomObject implements ManifestScope {
|
|
|
142
174
|
* @throws {Error} If `props.apiName` does not end with `__c`.
|
|
143
175
|
*/
|
|
144
176
|
constructor(scope: ManifestScope, props: CustomObjectProps);
|
|
177
|
+
/**
|
|
178
|
+
* Loads this custom object from the active existing-manifest JSON context.
|
|
179
|
+
*/
|
|
180
|
+
static loadFromExisting(apiName: string, options?: ExistingManifestContextOptions): CustomObject;
|
|
181
|
+
/** @internal Hydrates a custom object from existing manifest wire JSON. */
|
|
182
|
+
static _fromExistingComponent(scope: ManifestScope, component: Record<string, any>, resolveCategory: (apiName: string) => Category | string): CustomObject;
|
|
183
|
+
private static iconFromExistingComponent;
|
|
145
184
|
/** @internal Scope hook — forwards child registration up to the root builder. */
|
|
146
185
|
_register(component: ManifestComponent): void;
|
|
147
186
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-object.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,EAAE;OACZ,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"custom-object.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,EAAE;OACZ,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,aAAa,EAAE;AA8I3E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9C;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,eAAe,CAAU;IAEzD,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;IAOvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,wBAAwB,CAA4B;IAE5D;;;;OAIG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB;IAqB1D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC,GAAG,YAAY;IAIpG,2EAA2E;IAC3E,MAAM,CAAC,sBAAsB,CAC3B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,QAAQ,GAAG,MAAM,GACtD,YAAY;IAoBf,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAWxC,iFAAiF;IACjF,SAAS,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAI7C;;;;OAIG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA0B9B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Category } from "./category.js";
|
|
2
|
-
import
|
|
2
|
+
import { type ExistingManifestContextOptions } from "./existing-manifest-context.js";
|
|
3
|
+
import type { ManifestComponent, ManifestComponentDeletion, ManifestScope } from "./manifest-builder.js";
|
|
3
4
|
/**
|
|
4
5
|
* Icon displayed next to the custom object name in the Rippling UI.
|
|
5
6
|
*/
|
|
@@ -75,6 +76,21 @@ export interface CustomObjectProps {
|
|
|
75
76
|
* Overrides for the auto-number name field — controls the format string and starting number.
|
|
76
77
|
* Leave `null` to use the default name field behavior.
|
|
77
78
|
*
|
|
79
|
+
* Example:
|
|
80
|
+
* ```ts
|
|
81
|
+
* nameFieldDetails: {
|
|
82
|
+
* is_autonumber_field: true,
|
|
83
|
+
* starting_number: 1,
|
|
84
|
+
* autonumber_format: 'EXP-{0000}',
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @remarks
|
|
89
|
+
* The backend auto-appends `{0000}` to `autonumber_format` if the format string
|
|
90
|
+
* doesn't already contain a sequence token — so `'EXP-'` becomes `'EXP-{0000}'`
|
|
91
|
+
* on the wire. Include the token explicitly when you want a different width
|
|
92
|
+
* (e.g. `'EXP-{00000}'`).
|
|
93
|
+
*
|
|
78
94
|
* Optional. @default null
|
|
79
95
|
*/
|
|
80
96
|
nameFieldDetails?: Record<string, any> | null;
|
|
@@ -100,7 +116,7 @@ export interface CustomObjectProps {
|
|
|
100
116
|
* name: 'Gym Membership Management',
|
|
101
117
|
* });
|
|
102
118
|
*
|
|
103
|
-
* const gymCategory = new Category(manifest, { apiName: 'gym__c', name: 'Gym' });
|
|
119
|
+
* const gymCategory = new Category(manifest, { apiName: 'gym__c', name: 'Gym', description: 'Gym domain' });
|
|
104
120
|
*
|
|
105
121
|
* const memberObj = new CustomObject(manifest, {
|
|
106
122
|
* apiName: 'gym_member__c',
|
|
@@ -125,8 +141,24 @@ export interface CustomObjectProps {
|
|
|
125
141
|
* with `DEPENDENCY_ERROR: Page layout config for CO (api_name=...) not found in package
|
|
126
142
|
* configs. CO requires at least one page layout in the package.`
|
|
127
143
|
* Use {@link CustomObjectPageLayout.basic} for a minimal single-tab layout.
|
|
144
|
+
*
|
|
145
|
+
* **Consider defining at least one {@link ListViewDef}.** Without a list view,
|
|
146
|
+
* the records page has nothing to display by default — users land on an empty grid.
|
|
147
|
+
* Consider shipping a "default" view with the columns most users want to see
|
|
148
|
+
* (typically `name`, the status / category field, owner, and `created_at`), sorted
|
|
149
|
+
* however the records are most commonly browsed.
|
|
150
|
+
*
|
|
151
|
+
* **Consider system fields before authoring new ones.** Every CO ships with
|
|
152
|
+
* `owner_role`, `created_by`, and `last_modified_by` (all `Employee` references),
|
|
153
|
+
* plus `name`, `created_at`, `updated_at`, `external_id`, and `id`. For any
|
|
154
|
+
* "the employee responsible for this record" semantics, consider using
|
|
155
|
+
* `owner_role` rather than adding a new {@link LookupField} targeting `'role'`.
|
|
156
|
+
* `owner_role` drives Rippling's record-level permissions, so a parallel field
|
|
157
|
+
* can fragment ownership and complicate the permission story.
|
|
128
158
|
*/
|
|
129
159
|
export declare class CustomObject implements ManifestScope {
|
|
160
|
+
static readonly componentType: "CUSTOM_OBJECT";
|
|
161
|
+
static toDeletionIdentifier(apiName: string): ManifestComponentDeletion;
|
|
130
162
|
private readonly _scope;
|
|
131
163
|
private readonly _apiName;
|
|
132
164
|
private readonly _name;
|
|
@@ -142,6 +174,13 @@ export declare class CustomObject implements ManifestScope {
|
|
|
142
174
|
* @throws {Error} If `props.apiName` does not end with `__c`.
|
|
143
175
|
*/
|
|
144
176
|
constructor(scope: ManifestScope, props: CustomObjectProps);
|
|
177
|
+
/**
|
|
178
|
+
* Loads this custom object from the active existing-manifest JSON context.
|
|
179
|
+
*/
|
|
180
|
+
static loadFromExisting(apiName: string, options?: ExistingManifestContextOptions): CustomObject;
|
|
181
|
+
/** @internal Hydrates a custom object from existing manifest wire JSON. */
|
|
182
|
+
static _fromExistingComponent(scope: ManifestScope, component: Record<string, any>, resolveCategory: (apiName: string) => Category | string): CustomObject;
|
|
183
|
+
private static iconFromExistingComponent;
|
|
145
184
|
/** @internal Scope hook — forwards child registration up to the root builder. */
|
|
146
185
|
_register(component: ManifestComponent): void;
|
|
147
186
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-object.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,EAAE;OACZ,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"custom-object.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,EAAE;OACZ,EAA8B,KAAK,8BAA8B,EAAE;OACnE,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,aAAa,EAAE;AA8I3E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9C;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAG,eAAe,CAAU;IAEzD,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;IAOvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,wBAAwB,CAA4B;IAE5D;;;;OAIG;gBACS,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB;IAqB1D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC,GAAG,YAAY;IAIpG,2EAA2E;IAC3E,MAAM,CAAC,sBAAsB,CAC3B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,QAAQ,GAAG,MAAM,GACtD,YAAY;IAoBf,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAWxC,iFAAiF;IACjF,SAAS,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAI7C;;;;OAIG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;;OAKG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA0B9B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CustomObject = void 0;
|
|
4
|
+
const existing_manifest_context_1 = require("./existing-manifest-context.js");
|
|
4
5
|
// ────────────────────────────────────────────────────────────────────────
|
|
5
6
|
// Platform-managed standard fields — mirrors
|
|
6
7
|
// `app/hub_platform/custom_objects/constants.py::STANDARD_FIELDS`.
|
|
@@ -109,7 +110,7 @@ class _StandardField {
|
|
|
109
110
|
}
|
|
110
111
|
toDict() {
|
|
111
112
|
return {
|
|
112
|
-
type:
|
|
113
|
+
type: _StandardField.componentType,
|
|
113
114
|
custom_object_api_name: this.customObjectApiName,
|
|
114
115
|
field_api_name: this.spec.apiName,
|
|
115
116
|
field_display_name: this.spec.displayName,
|
|
@@ -127,6 +128,7 @@ class _StandardField {
|
|
|
127
128
|
};
|
|
128
129
|
}
|
|
129
130
|
}
|
|
131
|
+
_StandardField.componentType = 'CUSTOM_OBJECT_FIELD';
|
|
130
132
|
/**
|
|
131
133
|
* Defines a custom object and registers it with the manifest.
|
|
132
134
|
*
|
|
@@ -142,7 +144,7 @@ class _StandardField {
|
|
|
142
144
|
* name: 'Gym Membership Management',
|
|
143
145
|
* });
|
|
144
146
|
*
|
|
145
|
-
* const gymCategory = new Category(manifest, { apiName: 'gym__c', name: 'Gym' });
|
|
147
|
+
* const gymCategory = new Category(manifest, { apiName: 'gym__c', name: 'Gym', description: 'Gym domain' });
|
|
146
148
|
*
|
|
147
149
|
* const memberObj = new CustomObject(manifest, {
|
|
148
150
|
* apiName: 'gym_member__c',
|
|
@@ -167,8 +169,28 @@ class _StandardField {
|
|
|
167
169
|
* with `DEPENDENCY_ERROR: Page layout config for CO (api_name=...) not found in package
|
|
168
170
|
* configs. CO requires at least one page layout in the package.`
|
|
169
171
|
* Use {@link CustomObjectPageLayout.basic} for a minimal single-tab layout.
|
|
172
|
+
*
|
|
173
|
+
* **Consider defining at least one {@link ListViewDef}.** Without a list view,
|
|
174
|
+
* the records page has nothing to display by default — users land on an empty grid.
|
|
175
|
+
* Consider shipping a "default" view with the columns most users want to see
|
|
176
|
+
* (typically `name`, the status / category field, owner, and `created_at`), sorted
|
|
177
|
+
* however the records are most commonly browsed.
|
|
178
|
+
*
|
|
179
|
+
* **Consider system fields before authoring new ones.** Every CO ships with
|
|
180
|
+
* `owner_role`, `created_by`, and `last_modified_by` (all `Employee` references),
|
|
181
|
+
* plus `name`, `created_at`, `updated_at`, `external_id`, and `id`. For any
|
|
182
|
+
* "the employee responsible for this record" semantics, consider using
|
|
183
|
+
* `owner_role` rather than adding a new {@link LookupField} targeting `'role'`.
|
|
184
|
+
* `owner_role` drives Rippling's record-level permissions, so a parallel field
|
|
185
|
+
* can fragment ownership and complicate the permission story.
|
|
170
186
|
*/
|
|
171
187
|
class CustomObject {
|
|
188
|
+
static toDeletionIdentifier(apiName) {
|
|
189
|
+
return {
|
|
190
|
+
type: CustomObject.componentType,
|
|
191
|
+
api_name: apiName,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
172
194
|
/**
|
|
173
195
|
* @param scope - The manifest or parent scope to register this object with.
|
|
174
196
|
* @param props - Initialization properties.
|
|
@@ -193,6 +215,50 @@ class CustomObject {
|
|
|
193
215
|
scope._register(new _StandardField(this._apiName, spec));
|
|
194
216
|
}
|
|
195
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Loads this custom object from the active existing-manifest JSON context.
|
|
220
|
+
*/
|
|
221
|
+
static loadFromExisting(apiName, options = {}) {
|
|
222
|
+
return (0, existing_manifest_context_1.getExistingManifestContext)(options).loadCustomObject(apiName);
|
|
223
|
+
}
|
|
224
|
+
/** @internal Hydrates a custom object from existing manifest wire JSON. */
|
|
225
|
+
static _fromExistingComponent(scope, component, resolveCategory) {
|
|
226
|
+
const categoryApiName = component['category_api_name'];
|
|
227
|
+
const props = {
|
|
228
|
+
apiName: component['api_name'],
|
|
229
|
+
name: component['name'] ?? component['api_name'],
|
|
230
|
+
category: typeof categoryApiName === 'string' ? resolveCategory(categoryApiName) : categoryApiName,
|
|
231
|
+
};
|
|
232
|
+
if (component['description'] !== undefined)
|
|
233
|
+
props.description = component['description'];
|
|
234
|
+
if (component['plural_label'] !== undefined)
|
|
235
|
+
props.pluralLabel = component['plural_label'];
|
|
236
|
+
if (component['name_field_details'] !== undefined) {
|
|
237
|
+
props.nameFieldDetails = component['name_field_details'];
|
|
238
|
+
}
|
|
239
|
+
if (component['default_field_section_name'] !== undefined) {
|
|
240
|
+
props.defaultFieldSectionName = component['default_field_section_name'];
|
|
241
|
+
}
|
|
242
|
+
const icon = CustomObject.iconFromExistingComponent(component['icon']);
|
|
243
|
+
if (icon != null)
|
|
244
|
+
props.icon = icon;
|
|
245
|
+
return new CustomObject(scope, props);
|
|
246
|
+
}
|
|
247
|
+
static iconFromExistingComponent(value) {
|
|
248
|
+
if (value == null || typeof value !== 'object')
|
|
249
|
+
return undefined;
|
|
250
|
+
const wire = value;
|
|
251
|
+
const icon = {};
|
|
252
|
+
if (wire['emoji'] !== undefined)
|
|
253
|
+
icon.emoji = wire['emoji'];
|
|
254
|
+
if (wire['rippling_icon'] !== undefined)
|
|
255
|
+
icon.ripplingIcon = wire['rippling_icon'];
|
|
256
|
+
if (wire['s3_bucket'] !== undefined)
|
|
257
|
+
icon.s3Bucket = wire['s3_bucket'];
|
|
258
|
+
if (wire['s3_key'] !== undefined)
|
|
259
|
+
icon.s3Key = wire['s3_key'];
|
|
260
|
+
return Object.keys(icon).length > 0 ? icon : undefined;
|
|
261
|
+
}
|
|
196
262
|
/** @internal Scope hook — forwards child registration up to the root builder. */
|
|
197
263
|
_register(component) {
|
|
198
264
|
this._scope._register(component);
|
|
@@ -219,7 +285,7 @@ class CustomObject {
|
|
|
219
285
|
*/
|
|
220
286
|
toDict() {
|
|
221
287
|
const component = {
|
|
222
|
-
type:
|
|
288
|
+
type: CustomObject.componentType,
|
|
223
289
|
api_name: this._apiName,
|
|
224
290
|
name: this._name,
|
|
225
291
|
description: this._description ?? null,
|
|
@@ -251,4 +317,5 @@ class CustomObject {
|
|
|
251
317
|
}
|
|
252
318
|
}
|
|
253
319
|
exports.CustomObject = CustomObject;
|
|
320
|
+
CustomObject.componentType = 'CUSTOM_OBJECT';
|
|
254
321
|
//# sourceMappingURL=custom-object.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-object.js","sourceRoot":"","sources":["../../src/lib/manifest/custom-object.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"custom-object.js","sourceRoot":"","sources":["../../src/lib/manifest/custom-object.ts"],"names":[],"mappings":";;;AACA,8EAA8G;AAG9G,2EAA2E;AAC3E,6CAA6C;AAC7C,mEAAmE;AACnE,sEAAsE;AACtE,mDAAmD;AACnD,2EAA2E;AAE3E,+FAA+F;AAC/F,MAAM,oBAAoB,GAOrB;IACH;QACE,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;QAChC,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;KACb;IACD;QACE,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;QACpC,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,6CAA6C;QAC1D,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;QACpC,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,2DAA2D;QACxE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;QACpC,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;QAChC,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,IAAI;KACb;IACD;QACE,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,yFAAyF;QACtG,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;QAChC,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,OAAO;QACpB,WAAW,EACT,kIAAkI;QACpI,QAAQ,EAAE;YACR,UAAU,EAAE,aAAa;YACzB,iBAAiB,EAAE,UAAU;YAC7B,aAAa,EAAE,iBAAiB;YAChC,6BAA6B,EAAE,QAAQ;SACxC;QACD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE;YACR,UAAU,EAAE,aAAa;YACzB,iBAAiB,EAAE,UAAU;YAC7B,aAAa,EAAE,iBAAiB;YAChC,6BAA6B,EAAE,QAAQ;SACxC;QACD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;KACd;IACD;QACE,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,qCAAqC;QAClD,QAAQ,EAAE;YACR,UAAU,EAAE,aAAa;YACzB,iBAAiB,EAAE,UAAU;YAC7B,aAAa,EAAE,iBAAiB;YAChC,6BAA6B,EAAE,QAAQ;SACxC;QACD,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;KACd;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,cAAc;IAGlB,YACmB,mBAA2B,EAC3B,IAA2C;QAD3C,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,SAAI,GAAJ,IAAI,CAAuC;IAC3D,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,sBAAsB,EAAE,IAAI,CAAC,mBAAmB;YAChD,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YACjC,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YACzC,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC3E,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC/B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YAC3B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,kBAAkB,EAAE,IAAI;YACxB,WAAW,EAAE,IAAI;YACjB,wBAAwB,EAAE,IAAI;YAC9B,qBAAqB,EAAE,IAAI;YAC3B,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;;AAzBe,4BAAa,GAAG,qBAA8B,CAAC;AAkIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAa,YAAY;IAGvB,MAAM,CAAC,oBAAoB,CAAC,OAAe;QACzC,OAAO;YACL,IAAI,EAAE,YAAY,CAAC,aAAa;YAChC,QAAQ,EAAE,OAAO;SAClB,CAAC;IACJ,CAAC;IAYD;;;;OAIG;IACH,YAAY,KAAoB,EAAE,KAAwB;QACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,uBAAuB,CAAC;QAC9D,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtB,6EAA6E;QAC7E,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;YACxC,KAAK,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAe,EAAE,UAA0C,EAAE;QACnF,OAAO,IAAA,sDAA0B,EAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,sBAAsB,CAC3B,KAAoB,EACpB,SAA8B,EAC9B,eAAuD;QAEvD,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACvD,MAAM,KAAK,GAAsB;YAC/B,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;YAC9B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC;YAChD,QAAQ,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe;SACnG,CAAC;QACF,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QACzF,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3F,IAAI,SAAS,CAAC,oBAAoB,CAAC,KAAK,SAAS,EAAE,CAAC;YAClD,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,SAAS,CAAC,4BAA4B,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1D,KAAK,CAAC,uBAAuB,GAAG,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,yBAAyB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,IAAI,IAAI,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QACpC,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,KAAc;QACrD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACjE,MAAM,IAAI,GAAG,KAA4B,CAAC;QAC1C,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAED,iFAAiF;IACjF,SAAS,CAAC,SAA4B;QACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,MAAM;QACJ,MAAM,SAAS,GAAwB;YACrC,IAAI,EAAE,YAAY,CAAC,aAAa;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;YACtC,iBAAiB,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;SACrG,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAwB,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI;gBAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACnE,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI;gBAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YACzF,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI;gBAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC7E,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI;gBAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACpE,yEAAyE;YACzE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI;YAAE,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7E,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI;YAAE,SAAS,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC7F,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,EAAE,CAAC;YAC1C,SAAS,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC1E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;;AA7IH,oCA8IC;AA7IiB,0BAAa,GAAG,eAAwB,CAAC"}
|