payload 1.8.6 → 1.9.0
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/dist/bin/generateTypes.js +8 -12
- package/dist/bin/generateTypes.js.map +1 -1
- package/dist/fields/config/schema.js +4 -0
- package/dist/fields/config/schema.js.map +1 -1
- package/dist/fields/config/types.d.ts +33 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/graphql/registerSchema.js +3 -0
- package/dist/graphql/registerSchema.js.map +1 -1
- package/dist/graphql/schema/buildObjectType.js +54 -33
- package/dist/graphql/schema/buildObjectType.js.map +1 -1
- package/dist/payload.d.ts +3 -0
- package/dist/payload.js.map +1 -1
- package/dist/utilities/entityToJSONSchema.d.ts +2 -2
- package/dist/utilities/entityToJSONSchema.js +67 -57
- package/dist/utilities/entityToJSONSchema.js.map +1 -1
- package/docs/fields/array.mdx +49 -44
- package/docs/fields/blocks.mdx +68 -57
- package/docs/fields/group.mdx +34 -29
- package/docs/fields/tabs.mdx +42 -35
- package/docs/graphql/graphql-schema.mdx +45 -6
- package/docs/graphql/overview.mdx +47 -39
- package/docs/troubleshooting/troubleshooting.mdx +25 -0
- package/docs/typescript/generating-types.mdx +86 -23
- package/package.json +1 -1
- package/dist/graphql/schema/buildBlockType.d.ts +0 -9
- package/dist/graphql/schema/buildBlockType.js +0 -28
- package/dist/graphql/schema/buildBlockType.js.map +0 -1
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.generateEntitySchemas = exports.entityToJSONSchema = void 0;
|
|
7
7
|
const pluralize_1 = require("pluralize");
|
|
8
8
|
const types_1 = require("../fields/config/types");
|
|
9
9
|
const deepCopyObject_1 = __importDefault(require("./deepCopyObject"));
|
|
@@ -38,11 +38,11 @@ function returnOptionEnums(options) {
|
|
|
38
38
|
return option;
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
function
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
function entityFieldsToJSONSchema(config, fields, fieldDefinitionsMap) {
|
|
42
|
+
// required fields for a schema (could be for a nested schema)
|
|
43
|
+
const requiredFields = new Set(fields.filter(propertyIsRequired).map((field) => ((0, types_1.fieldAffectsData)(field) ? field.name : '')));
|
|
44
44
|
return {
|
|
45
|
-
properties: Object.fromEntries(fields.reduce((
|
|
45
|
+
properties: Object.fromEntries(fields.reduce((acc, field) => {
|
|
46
46
|
let fieldSchema;
|
|
47
47
|
switch (field.type) {
|
|
48
48
|
case 'text':
|
|
@@ -254,21 +254,28 @@ function generateFieldTypes(config, fields) {
|
|
|
254
254
|
type: 'array',
|
|
255
255
|
items: {
|
|
256
256
|
oneOf: field.blocks.map((block) => {
|
|
257
|
-
const
|
|
258
|
-
|
|
257
|
+
const blockFieldSchemas = entityFieldsToJSONSchema(config, block.fields, fieldDefinitionsMap);
|
|
258
|
+
const blockSchema = {
|
|
259
259
|
type: 'object',
|
|
260
260
|
additionalProperties: false,
|
|
261
261
|
properties: {
|
|
262
|
-
...
|
|
262
|
+
...blockFieldSchemas.properties,
|
|
263
263
|
blockType: {
|
|
264
264
|
const: block.slug,
|
|
265
265
|
},
|
|
266
266
|
},
|
|
267
267
|
required: [
|
|
268
268
|
'blockType',
|
|
269
|
-
...
|
|
269
|
+
...blockFieldSchemas.required,
|
|
270
270
|
],
|
|
271
271
|
};
|
|
272
|
+
if (block.interfaceName) {
|
|
273
|
+
fieldDefinitionsMap.set(block.interfaceName, blockSchema);
|
|
274
|
+
return {
|
|
275
|
+
$ref: `#/definitions/${block.interfaceName}`,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
return blockSchema;
|
|
272
279
|
}),
|
|
273
280
|
},
|
|
274
281
|
};
|
|
@@ -280,35 +287,47 @@ function generateFieldTypes(config, fields) {
|
|
|
280
287
|
items: {
|
|
281
288
|
type: 'object',
|
|
282
289
|
additionalProperties: false,
|
|
283
|
-
...
|
|
290
|
+
...entityFieldsToJSONSchema(config, field.fields, fieldDefinitionsMap),
|
|
284
291
|
},
|
|
285
292
|
};
|
|
293
|
+
if (field.interfaceName) {
|
|
294
|
+
fieldDefinitionsMap.set(field.interfaceName, fieldSchema);
|
|
295
|
+
fieldSchema = {
|
|
296
|
+
$ref: `#/definitions/${field.interfaceName}`,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
286
299
|
break;
|
|
287
300
|
}
|
|
288
301
|
case 'row':
|
|
289
302
|
case 'collapsible': {
|
|
290
|
-
const
|
|
291
|
-
|
|
292
|
-
|
|
303
|
+
const childSchema = entityFieldsToJSONSchema(config, field.fields, fieldDefinitionsMap);
|
|
304
|
+
Object.entries(childSchema.properties).forEach(([propName, propSchema]) => {
|
|
305
|
+
acc.set(propName, propSchema);
|
|
306
|
+
});
|
|
307
|
+
childSchema.required.forEach((propName) => {
|
|
308
|
+
requiredFields.add(propName);
|
|
309
|
+
});
|
|
293
310
|
break;
|
|
294
311
|
}
|
|
295
312
|
case 'tabs': {
|
|
296
313
|
field.tabs.forEach((tab) => {
|
|
314
|
+
const childSchema = entityFieldsToJSONSchema(config, tab.fields, fieldDefinitionsMap);
|
|
297
315
|
if ((0, types_1.tabHasName)(tab)) {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
},
|
|
306
|
-
]);
|
|
316
|
+
// could have interface
|
|
317
|
+
acc.set(tab.name, {
|
|
318
|
+
type: 'object',
|
|
319
|
+
additionalProperties: false,
|
|
320
|
+
...childSchema,
|
|
321
|
+
});
|
|
322
|
+
requiredFields.add(tab.name);
|
|
307
323
|
}
|
|
308
324
|
else {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
325
|
+
Object.entries(childSchema.properties).forEach(([propName, propSchema]) => {
|
|
326
|
+
acc.set(propName, propSchema);
|
|
327
|
+
});
|
|
328
|
+
childSchema.required.forEach((propName) => {
|
|
329
|
+
requiredFields.add(propName);
|
|
330
|
+
});
|
|
312
331
|
}
|
|
313
332
|
});
|
|
314
333
|
break;
|
|
@@ -317,8 +336,14 @@ function generateFieldTypes(config, fields) {
|
|
|
317
336
|
fieldSchema = {
|
|
318
337
|
type: 'object',
|
|
319
338
|
additionalProperties: false,
|
|
320
|
-
...
|
|
339
|
+
...entityFieldsToJSONSchema(config, field.fields, fieldDefinitionsMap),
|
|
321
340
|
};
|
|
341
|
+
if (field.interfaceName) {
|
|
342
|
+
fieldDefinitionsMap.set(field.interfaceName, fieldSchema);
|
|
343
|
+
fieldSchema = {
|
|
344
|
+
$ref: `#/definitions/${field.interfaceName}`,
|
|
345
|
+
};
|
|
346
|
+
}
|
|
322
347
|
break;
|
|
323
348
|
}
|
|
324
349
|
default: {
|
|
@@ -326,30 +351,14 @@ function generateFieldTypes(config, fields) {
|
|
|
326
351
|
}
|
|
327
352
|
}
|
|
328
353
|
if (fieldSchema && (0, types_1.fieldAffectsData)(field)) {
|
|
329
|
-
|
|
330
|
-
...properties,
|
|
331
|
-
[
|
|
332
|
-
field.name,
|
|
333
|
-
{
|
|
334
|
-
...fieldSchema,
|
|
335
|
-
},
|
|
336
|
-
],
|
|
337
|
-
];
|
|
354
|
+
acc.set(field.name, fieldSchema);
|
|
338
355
|
}
|
|
339
|
-
return
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
];
|
|
343
|
-
}, [])),
|
|
344
|
-
required: [
|
|
345
|
-
...fields
|
|
346
|
-
.filter(propertyIsRequired)
|
|
347
|
-
.map((field) => ((0, types_1.fieldAffectsData)(field) ? field.name : '')),
|
|
348
|
-
...requiredTopLevelProps,
|
|
349
|
-
],
|
|
356
|
+
return acc;
|
|
357
|
+
}, new Map())),
|
|
358
|
+
required: Array.from(requiredFields),
|
|
350
359
|
};
|
|
351
360
|
}
|
|
352
|
-
function entityToJSONSchema(config, incomingEntity) {
|
|
361
|
+
function entityToJSONSchema(config, incomingEntity, fieldDefinitionsMap) {
|
|
353
362
|
var _a, _b;
|
|
354
363
|
const entity = (0, deepCopyObject_1.default)(incomingEntity);
|
|
355
364
|
const title = ((_a = entity.typescript) === null || _a === void 0 ? void 0 : _a.interface) ? entity.typescript.interface : (0, pluralize_1.singular)((0, formatLabels_1.toWords)(entity.slug, true));
|
|
@@ -383,22 +392,23 @@ function entityToJSONSchema(config, incomingEntity) {
|
|
|
383
392
|
title,
|
|
384
393
|
type: 'object',
|
|
385
394
|
additionalProperties: false,
|
|
386
|
-
...
|
|
395
|
+
...entityFieldsToJSONSchema(config, entity.fields, fieldDefinitionsMap),
|
|
387
396
|
};
|
|
388
397
|
}
|
|
389
398
|
exports.entityToJSONSchema = entityToJSONSchema;
|
|
390
|
-
function
|
|
399
|
+
function generateEntitySchemas(entities) {
|
|
400
|
+
const properties = [...entities].reduce((acc, { slug }) => {
|
|
401
|
+
acc[slug] = {
|
|
402
|
+
$ref: `#/definitions/${slug}`,
|
|
403
|
+
};
|
|
404
|
+
return acc;
|
|
405
|
+
}, {});
|
|
391
406
|
return {
|
|
392
407
|
type: 'object',
|
|
393
|
-
properties
|
|
394
|
-
|
|
395
|
-
{
|
|
396
|
-
$ref: `#/definitions/${slug}`,
|
|
397
|
-
},
|
|
398
|
-
])),
|
|
399
|
-
required: config[type].map(({ slug }) => slug),
|
|
408
|
+
properties,
|
|
409
|
+
required: Object.keys(properties),
|
|
400
410
|
additionalProperties: false,
|
|
401
411
|
};
|
|
402
412
|
}
|
|
403
|
-
exports.
|
|
413
|
+
exports.generateEntitySchemas = generateEntitySchemas;
|
|
404
414
|
//# sourceMappingURL=entityToJSONSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityToJSONSchema.js","sourceRoot":"","sources":["../../src/utilities/entityToJSONSchema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entityToJSONSchema.js","sourceRoot":"","sources":["../../src/utilities/entityToJSONSchema.ts"],"names":[],"mappings":"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"}
|
package/docs/fields/array.mdx
CHANGED
|
@@ -6,8 +6,10 @@ desc: Array fields are intended for sets of repeating fields, that you define. L
|
|
|
6
6
|
keywords: array, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
<Banner
|
|
10
|
-
The Array field type is used when you need to have a set of "repeating"
|
|
9
|
+
<Banner>
|
|
10
|
+
The Array field type is used when you need to have a set of "repeating"
|
|
11
|
+
fields. It stores an array of objects containing the fields that you define.
|
|
12
|
+
Its uses can be simple or highly complex.
|
|
11
13
|
</Banner>
|
|
12
14
|
|
|
13
15
|
**Example uses:**
|
|
@@ -17,82 +19,85 @@ keywords: array, fields, config, configuration, documentation, Content Managemen
|
|
|
17
19
|
- Event agenda "timeslots" where you need to specify start & end time ([date field](/docs/fields/date)), label ([text field](/docs/fields/text)), and Learn More page [relationship](/docs/fields/relationship)
|
|
18
20
|
|
|
19
21
|

|
|
20
|
-
|
|
22
|
+
_Admin panel screenshot of an Array field with a Row containing two text fields, a read-only text field and a checkbox_
|
|
21
23
|
|
|
22
24
|
### Config
|
|
23
25
|
|
|
24
|
-
| Option
|
|
25
|
-
|
|
|
26
|
-
| **`name`**
|
|
27
|
-
| **`label`**
|
|
28
|
-
| **`fields`**
|
|
29
|
-
| **`validate`**
|
|
30
|
-
| **`saveToJWT`**
|
|
31
|
-
| **`hooks`**
|
|
32
|
-
| **`access`**
|
|
33
|
-
| **`hidden`**
|
|
34
|
-
| **`defaultValue`**
|
|
35
|
-
| **`localized`**
|
|
36
|
-
| **`required`**
|
|
37
|
-
| **`labels`**
|
|
38
|
-
| **`admin`**
|
|
39
|
-
| **`custom`**
|
|
26
|
+
| Option | Description |
|
|
27
|
+
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
28
|
+
| **`name`** \* | To be used as the property name when stored and retrieved from the database. [More](/docs/fields/overview#field-names) |
|
|
29
|
+
| **`label`** | Text used as the heading in the Admin panel or an object with keys for each language. Auto-generated from name if not defined. |
|
|
30
|
+
| **`fields`** \* | Array of field types to correspond to each row of the Array. |
|
|
31
|
+
| **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
|
|
32
|
+
| **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
|
|
33
|
+
| **`hooks`** | Provide field-based hooks to control logic for this field. [More](/docs/fields/overview#field-level-hooks) |
|
|
34
|
+
| **`access`** | Provide field-based access control to denote what users can see and do with this field's data. [More](/docs/fields/overview#field-level-access-control) |
|
|
35
|
+
| **`hidden`** | Restrict this field's visibility from all APIs entirely. Will still be saved to the database, but will not appear in any API or the Admin panel. |
|
|
36
|
+
| **`defaultValue`** | Provide an array of row data to be used for this field's default value. [More](/docs/fields/overview#default-values) |
|
|
37
|
+
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. If enabled, a separate, localized set of all data within this Array will be kept, so there is no need to specify each nested field as `localized`. |
|
|
38
|
+
| **`required`** | Require this field to have a value. |
|
|
39
|
+
| **`labels`** | Customize the row labels appearing in the Admin dashboard. |
|
|
40
|
+
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
41
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
42
|
+
| **`interfaceName`** | Create a top level, reusable [Typescript interface](/docs/typescript/generating-types#custom-field-interfaces) & [GraphQL type](/docs/graphql/graphql-schema#custom-field-schemas). |
|
|
40
43
|
|
|
41
|
-
|
|
44
|
+
_\* An asterisk denotes that a property is required._
|
|
42
45
|
|
|
43
46
|
### Admin Config
|
|
44
47
|
|
|
45
48
|
In addition to the default [field admin config](/docs/fields/overview#admin-config), you can adjust the following properties:
|
|
46
49
|
|
|
47
|
-
| Option
|
|
48
|
-
|
|
|
49
|
-
| **`initCollapsed`**
|
|
50
|
-
| **`components.RowLabel`**
|
|
51
|
-
|
|
50
|
+
| Option | Description |
|
|
51
|
+
| ------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
52
|
+
| **`initCollapsed`** | Set the initial collapsed state |
|
|
53
|
+
| **`components.RowLabel`** | Function or React component to be rendered as the label on the array row. Receives `({ data, index, path })` as args |
|
|
52
54
|
|
|
53
55
|
### Example
|
|
54
56
|
|
|
55
57
|
`collections/ExampleCollection.ts`
|
|
58
|
+
|
|
56
59
|
```ts
|
|
57
|
-
import { CollectionConfig } from
|
|
60
|
+
import { CollectionConfig } from "payload/types";
|
|
58
61
|
|
|
59
62
|
export const ExampleCollection: CollectionConfig = {
|
|
60
|
-
slug:
|
|
63
|
+
slug: "example-collection",
|
|
61
64
|
fields: [
|
|
62
65
|
{
|
|
63
|
-
name:
|
|
64
|
-
type:
|
|
65
|
-
label:
|
|
66
|
+
name: "slider", // required
|
|
67
|
+
type: "array", // required
|
|
68
|
+
label: "Image Slider",
|
|
66
69
|
minRows: 2,
|
|
67
70
|
maxRows: 10,
|
|
71
|
+
interfaceName: "CardSlider", // optional
|
|
68
72
|
labels: {
|
|
69
|
-
singular:
|
|
70
|
-
plural:
|
|
73
|
+
singular: "Slide",
|
|
74
|
+
plural: "Slides",
|
|
71
75
|
},
|
|
72
|
-
fields: [
|
|
76
|
+
fields: [
|
|
77
|
+
// required
|
|
73
78
|
{
|
|
74
|
-
name:
|
|
75
|
-
type:
|
|
79
|
+
name: "title",
|
|
80
|
+
type: "text",
|
|
76
81
|
},
|
|
77
82
|
{
|
|
78
|
-
name:
|
|
79
|
-
type:
|
|
80
|
-
relationTo:
|
|
83
|
+
name: "image",
|
|
84
|
+
type: "upload",
|
|
85
|
+
relationTo: "media",
|
|
81
86
|
required: true,
|
|
82
87
|
},
|
|
83
88
|
{
|
|
84
|
-
name:
|
|
85
|
-
type:
|
|
86
|
-
}
|
|
89
|
+
name: "caption",
|
|
90
|
+
type: "text",
|
|
91
|
+
},
|
|
87
92
|
],
|
|
88
93
|
admin: {
|
|
89
94
|
components: {
|
|
90
95
|
RowLabel: ({ data, index }) => {
|
|
91
|
-
return data?.title || `Slide ${String(index).padStart(2,
|
|
96
|
+
return data?.title || `Slide ${String(index).padStart(2, "0")}`;
|
|
92
97
|
},
|
|
93
98
|
},
|
|
94
99
|
},
|
|
95
|
-
}
|
|
96
|
-
]
|
|
100
|
+
},
|
|
101
|
+
],
|
|
97
102
|
};
|
|
98
103
|
```
|
package/docs/fields/blocks.mdx
CHANGED
|
@@ -6,8 +6,11 @@ desc: The Blocks field type is a great layout build and can be used to construct
|
|
|
6
6
|
keywords: blocks, fields, config, configuration, documentation, Content Management System, cms, headless, javascript, node, react, express
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
<Banner
|
|
10
|
-
The Blocks field type is <strong>incredibly powerful</strong> and can be used
|
|
9
|
+
<Banner>
|
|
10
|
+
The Blocks field type is <strong>incredibly powerful</strong> and can be used
|
|
11
|
+
as a <em>layout builder</em> as well as to define any other flexible content
|
|
12
|
+
model you can think of. It stores an array of objects, where each object must
|
|
13
|
+
match the shape of one of your provided block configs.
|
|
11
14
|
</Banner>
|
|
12
15
|
|
|
13
16
|
**Example uses:**
|
|
@@ -17,55 +20,61 @@ keywords: blocks, fields, config, configuration, documentation, Content Manageme
|
|
|
17
20
|
- Virtual event agenda "timeslots" where a timeslot could either be a `Break`, a `Presentation`, or a `BreakoutSession`.
|
|
18
21
|
|
|
19
22
|

|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
_Admin panel screenshot of a Blocks field type with Call to Action and Number block examples_
|
|
22
24
|
|
|
23
25
|
### Field config
|
|
24
26
|
|
|
25
|
-
| Option
|
|
26
|
-
|
|
27
|
-
| **`name`**
|
|
28
|
-
| **`label`**
|
|
29
|
-
| **`blocks`**
|
|
30
|
-
| **`validate`**
|
|
31
|
-
| **`saveToJWT`**
|
|
32
|
-
| **`hooks`**
|
|
33
|
-
| **`access`**
|
|
34
|
-
| **`hidden`**
|
|
35
|
-
| **`defaultValue`**
|
|
36
|
-
| **`localized`**
|
|
37
|
-
| **`unique`**
|
|
38
|
-
| **`labels`**
|
|
39
|
-
| **`admin`**
|
|
40
|
-
| **`custom`**
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
| Option | Description |
|
|
28
|
+
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | -------------- | ----------------------------------- |
|
|
29
|
+
| **`name`** \* | To be used as the property name when stored and retrieved from the database. [More](/docs/fields/overview#field-names) |
|
|
30
|
+
| **`label`** | Text used as the heading in the Admin panel or an object with keys for each language. Auto-generated from name if not defined. |
|
|
31
|
+
| **`blocks`** \* | Array of [block configs](/docs/fields/blocks#block-configs) to be made available to this field. |
|
|
32
|
+
| **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
|
|
33
|
+
| **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
|
|
34
|
+
| **`hooks`** | Provide field-level hooks to control logic for this field. [More](/docs/fields/overview#field-level-hooks) |
|
|
35
|
+
| **`access`** | Provide field-level access control to denote what users can see and do with this field's data. [More](/docs/fields/overview#field-level-access-control) |
|
|
36
|
+
| **`hidden`** | Restrict this field's visibility from all APIs entirely. Will still be saved to the database, but will not appear in any API response or the Admin panel. |
|
|
37
|
+
| **`defaultValue`** | Provide an array of block data to be used for this field's default value. [More](/docs/fields/overview#default-values) |
|
|
38
|
+
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. If enabled, a separate, localized set of all data within this field will be kept, so there is no need to specify each nested field as `localized`. | | **`required`** | Require this field to have a value. |
|
|
39
|
+
| **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
|
|
40
|
+
| **`labels`** | Customize the block row labels appearing in the Admin dashboard. |
|
|
41
|
+
| **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
|
|
42
|
+
| **`custom`** | Extension point for adding custom data (e.g. for plugins) |
|
|
43
|
+
|
|
44
|
+
_\* An asterisk denotes that a property is required._
|
|
43
45
|
|
|
44
46
|
### Admin Config
|
|
45
47
|
|
|
46
48
|
In addition to the default [field admin config](/docs/fields/overview#admin-config), you can adjust the following properties:
|
|
47
49
|
|
|
48
|
-
| Option
|
|
49
|
-
|
|
|
50
|
-
| **`initCollapsed`**
|
|
50
|
+
| Option | Description |
|
|
51
|
+
| ------------------- | ------------------------------- |
|
|
52
|
+
| **`initCollapsed`** | Set the initial collapsed state |
|
|
51
53
|
|
|
52
54
|
### Block configs
|
|
53
55
|
|
|
54
56
|
Blocks are defined as separate configs of their own.
|
|
55
57
|
|
|
56
58
|
<Banner type="success">
|
|
57
|
-
<strong>Tip:</strong
|
|
58
|
-
|
|
59
|
+
<strong>Tip:</strong>
|
|
60
|
+
<br />
|
|
61
|
+
Best practice is to define each block config in its own file, and then import
|
|
62
|
+
them into your Blocks field as necessary. This way each block config can be
|
|
63
|
+
easily shared between fields. For instance, using the "layout builder"
|
|
64
|
+
example, you might want to feature a few of the same blocks in a Post
|
|
65
|
+
collection as well as a Page collection. Abstracting into their own files
|
|
66
|
+
trivializes their reusability.
|
|
59
67
|
</Banner>
|
|
60
68
|
|
|
61
|
-
| Option | Description
|
|
62
|
-
|
|
63
|
-
| **`slug`**
|
|
64
|
-
| **`fields`**
|
|
65
|
-
| **`labels`** | Customize the block labels that appear in the Admin dashboard. Auto-generated from slug if not defined.
|
|
66
|
-
| **`imageURL`** | Provide a custom image thumbnail to help editors identify this block in the Admin UI.
|
|
67
|
-
| **`imageAltText`** | Customize this block's image thumbnail alt text.
|
|
68
|
-
| **`
|
|
69
|
+
| Option | Description |
|
|
70
|
+
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
71
|
+
| **`slug`** \* | Identifier for this block type. Will be saved on each block as the `blockType` property. |
|
|
72
|
+
| **`fields`** \* | Array of fields to be stored in this block. |
|
|
73
|
+
| **`labels`** | Customize the block labels that appear in the Admin dashboard. Auto-generated from slug if not defined. |
|
|
74
|
+
| **`imageURL`** | Provide a custom image thumbnail to help editors identify this block in the Admin UI. |
|
|
75
|
+
| **`imageAltText`** | Customize this block's image thumbnail alt text. |
|
|
76
|
+
| **`interfaceName`** | Create a top level, reusable [Typescript interface](/docs/typescript/generating-types#custom-field-interfaces) & [GraphQL type](/docs/graphql/graphql-schema#custom-field-schemas). |
|
|
77
|
+
| **`graphQL.singularName`** | Text to use for the GraphQL schema name. Auto-generated from slug if not defined. NOTE: this is set for deprecation, prefer `interfaceName`. |
|
|
69
78
|
|
|
70
79
|
#### Auto-generated data per block
|
|
71
80
|
|
|
@@ -82,41 +91,44 @@ The Admin panel provides each block with a `blockName` field which optionally al
|
|
|
82
91
|
### Example
|
|
83
92
|
|
|
84
93
|
`collections/ExampleCollection.js`
|
|
94
|
+
|
|
85
95
|
```ts
|
|
86
|
-
import { Block, CollectionConfig } from
|
|
96
|
+
import { Block, CollectionConfig } from "payload/types";
|
|
87
97
|
|
|
88
98
|
const QuoteBlock: Block = {
|
|
89
|
-
slug:
|
|
90
|
-
imageURL:
|
|
91
|
-
imageAltText:
|
|
92
|
-
|
|
99
|
+
slug: "Quote", // required
|
|
100
|
+
imageURL: "https://google.com/path/to/image.jpg",
|
|
101
|
+
imageAltText: "A nice thumbnail image to show what this block looks like",
|
|
102
|
+
interfaceName: "QuoteBlock", // optional
|
|
103
|
+
fields: [
|
|
104
|
+
// required
|
|
93
105
|
{
|
|
94
|
-
name:
|
|
95
|
-
type:
|
|
106
|
+
name: "quoteHeader",
|
|
107
|
+
type: "text",
|
|
96
108
|
required: true,
|
|
97
109
|
},
|
|
98
110
|
{
|
|
99
|
-
name:
|
|
100
|
-
type:
|
|
111
|
+
name: "quoteText",
|
|
112
|
+
type: "text",
|
|
101
113
|
},
|
|
102
|
-
]
|
|
114
|
+
],
|
|
103
115
|
};
|
|
104
116
|
|
|
105
117
|
export const ExampleCollection: CollectionConfig = {
|
|
106
|
-
slug:
|
|
118
|
+
slug: "example-collection",
|
|
107
119
|
fields: [
|
|
108
120
|
{
|
|
109
|
-
name:
|
|
110
|
-
type:
|
|
121
|
+
name: "layout", // required
|
|
122
|
+
type: "blocks", // required
|
|
111
123
|
minRows: 1,
|
|
112
124
|
maxRows: 20,
|
|
113
|
-
blocks: [
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
125
|
+
blocks: [
|
|
126
|
+
// required
|
|
127
|
+
QuoteBlock,
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
};
|
|
120
132
|
```
|
|
121
133
|
|
|
122
134
|
### TypeScript
|
|
@@ -124,6 +136,5 @@ export const ExampleCollection: CollectionConfig = {
|
|
|
124
136
|
As you build your own Block configs, you might want to store them in separate files but retain typing accordingly. To do so, you can import and use Payload's `Block` type:
|
|
125
137
|
|
|
126
138
|
```ts
|
|
127
|
-
import type { Block } from
|
|
128
|
-
|
|
139
|
+
import type { Block } from "payload/types";
|
|
129
140
|
```
|