payload 1.2.0 → 1.2.2

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 (138) hide show
  1. package/CHANGELOG.md +161 -16
  2. package/components/fields/Array.ts +1 -2
  3. package/components/fields/Blocks.ts +1 -2
  4. package/components/fields/Cell.ts +1 -1
  5. package/components/fields/Checkbox.ts +1 -2
  6. package/components/fields/Code.ts +1 -2
  7. package/components/fields/DateTime.ts +1 -2
  8. package/components/fields/Email.ts +1 -2
  9. package/components/fields/Group.ts +1 -2
  10. package/components/fields/Number.ts +1 -2
  11. package/components/fields/Password.ts +1 -2
  12. package/components/fields/RadioGroup/RadioInput.ts +1 -2
  13. package/components/fields/RadioGroup/index.ts +1 -2
  14. package/components/fields/Relationship.ts +1 -2
  15. package/components/fields/RichText.ts +1 -2
  16. package/components/fields/Row.ts +1 -2
  17. package/components/fields/Select.ts +1 -2
  18. package/components/fields/Text.ts +1 -2
  19. package/components/fields/Textarea.ts +1 -2
  20. package/components/fields/Upload.ts +1 -2
  21. package/components/views/Cell.ts +1 -2
  22. package/components/views/Edit.ts +1 -2
  23. package/components/views/List.ts +1 -2
  24. package/dist/admin/components/elements/ReactSelect/index.js +4 -4
  25. package/dist/admin/components/elements/ReactSelect/types.d.ts +11 -10
  26. package/dist/admin/components/elements/Status/index.js +1 -1
  27. package/dist/admin/components/elements/VersionsCount/index.js +1 -1
  28. package/dist/admin/components/elements/WhereBuilder/Condition/Text/index.js +5 -1
  29. package/dist/admin/components/forms/Form/context.d.ts +15 -0
  30. package/dist/admin/components/forms/Form/context.js +16 -1
  31. package/dist/admin/components/forms/field-types/Blocks/SectionTitle/index.scss +3 -2
  32. package/dist/admin/components/forms/field-types/Blocks/index.js +1 -1
  33. package/dist/admin/components/forms/field-types/Code/Code.js +3 -4
  34. package/dist/admin/components/forms/field-types/Code/index.scss +177 -78
  35. package/dist/admin/components/forms/field-types/Relationship/AddNew/index.js +0 -1
  36. package/dist/admin/components/forms/field-types/Relationship/GetFilterOptions/index.d.ts +11 -0
  37. package/dist/admin/components/forms/field-types/Relationship/GetFilterOptions/index.js +37 -0
  38. package/dist/admin/components/forms/field-types/Relationship/findOptionsByValue.d.ts +8 -0
  39. package/dist/admin/components/forms/field-types/Relationship/findOptionsByValue.js +29 -0
  40. package/dist/admin/components/forms/field-types/Relationship/index.js +89 -139
  41. package/dist/admin/components/forms/field-types/Relationship/optionsReducer.d.ts +2 -2
  42. package/dist/admin/components/forms/field-types/Relationship/optionsReducer.js +2 -29
  43. package/dist/admin/components/forms/field-types/Relationship/types.d.ts +14 -2
  44. package/dist/admin/components/forms/field-types/RichText/elements/link/Element.js +3 -3
  45. package/dist/admin/components/forms/field-types/RichText/elements/link/index.scss +2 -1
  46. package/dist/admin/components/forms/field-types/RichText/elements/upload/Button/index.js +1 -1
  47. package/dist/admin/components/forms/field-types/Row/index.js +1 -1
  48. package/dist/admin/components/forms/field-types/Select/Input.d.ts +2 -2
  49. package/dist/admin/components/forms/field-types/Select/Input.js +13 -3
  50. package/dist/admin/components/forms/field-types/Textarea/Input.js +1 -1
  51. package/dist/admin/components/forms/field-types/Textarea/index.scss +3 -6
  52. package/dist/admin/components/forms/useField/index.d.ts +5 -0
  53. package/dist/admin/components/forms/useField/index.js +5 -0
  54. package/dist/admin/components/utilities/I18n/index.js +1 -1
  55. package/dist/admin/components/views/Account/index.js +6 -1
  56. package/dist/admin/components/views/Global/index.scss +31 -24
  57. package/dist/admin/components/views/Login/index.js +1 -1
  58. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +1 -1
  59. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Nested/index.js +15 -9
  60. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +5 -2
  61. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +5 -0
  62. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.js +34 -0
  63. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.scss +10 -0
  64. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.js +3 -2
  65. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
  66. package/dist/admin/components/views/Versions/index.js +1 -1
  67. package/dist/admin/components/views/collections/Edit/Default.js +2 -0
  68. package/dist/admin/components/views/collections/Edit/SetStepNav.d.ts +7 -0
  69. package/dist/admin/components/views/collections/Edit/SetStepNav.js +31 -0
  70. package/dist/admin/components/views/collections/Edit/index.js +2 -36
  71. package/dist/admin/components/views/collections/Edit/index.scss +19 -4
  72. package/dist/admin/hooks/usePayloadAPI.js +3 -1
  73. package/dist/collections/buildSchema.js +5 -1
  74. package/dist/collections/config/types.d.ts +16 -3
  75. package/dist/collections/operations/find.js +11 -6
  76. package/dist/collections/operations/findVersions.js +4 -5
  77. package/dist/collections/operations/update.js +8 -9
  78. package/dist/collections/requestHandlers/find.js +4 -3
  79. package/dist/collections/requestHandlers/update.js +3 -3
  80. package/dist/config/schema.js +2 -2
  81. package/dist/config/types.d.ts +269 -6
  82. package/dist/config/types.js +1 -1
  83. package/dist/email/build.js +2 -2
  84. package/dist/express/types.d.ts +26 -2
  85. package/dist/fields/config/sanitize.spec.js +5 -5
  86. package/dist/fields/config/types.d.ts +3 -3
  87. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +73 -21
  88. package/dist/fields/hooks/beforeChange/promise.js +7 -1
  89. package/dist/globals/operations/findVersions.js +4 -5
  90. package/dist/globals/operations/update.js +4 -4
  91. package/dist/globals/requestHandlers/update.js +3 -3
  92. package/dist/graphql/schema/fieldToWhereInputSchemaMap.js +7 -7
  93. package/dist/graphql/schema/operators.d.ts +1 -0
  94. package/dist/graphql/schema/operators.js +2 -1
  95. package/dist/mongoose/types.d.ts +3 -3
  96. package/dist/translations/de.json +100 -100
  97. package/dist/translations/en.json +3 -1
  98. package/dist/translations/es.json +1 -1
  99. package/dist/translations/fr.json +1 -1
  100. package/dist/translations/index.d.ts +5 -0
  101. package/dist/translations/it.json +19 -16
  102. package/dist/translations/my.json +1 -1
  103. package/dist/translations/nl.json +1 -1
  104. package/dist/translations/pl.json +1 -1
  105. package/dist/translations/pt.json +1 -1
  106. package/dist/translations/ru.json +1 -1
  107. package/dist/translations/sv.json +1 -1
  108. package/dist/translations/vi.json +1 -1
  109. package/dist/utilities/isNumber.d.ts +1 -0
  110. package/dist/utilities/isNumber.js +8 -0
  111. package/dist/versions/drafts/saveCollectionDraft.js +4 -3
  112. package/dist/versions/drafts/saveGlobalDraft.js +4 -3
  113. package/dist/versions/ensurePublishedCollectionVersion.js +2 -1
  114. package/dist/versions/ensurePublishedGlobalVersion.js +2 -1
  115. package/dist/versions/getLatestCollectionVersion.d.ts +10 -0
  116. package/dist/versions/getLatestCollectionVersion.js +27 -0
  117. package/dist/versions/getLatestGlobalVersion.d.ts +10 -0
  118. package/dist/versions/getLatestGlobalVersion.js +27 -0
  119. package/docs/admin/components.mdx +1 -5
  120. package/docs/authentication/config.mdx +1 -1
  121. package/docs/configuration/globals.mdx +12 -12
  122. package/docs/configuration/i18n.mdx +1 -1
  123. package/docs/fields/array.mdx +14 -14
  124. package/docs/fields/blocks.mdx +1 -1
  125. package/docs/fields/checkbox.mdx +2 -2
  126. package/docs/fields/code.mdx +1 -1
  127. package/docs/fields/date.mdx +1 -1
  128. package/docs/fields/email.mdx +1 -1
  129. package/docs/fields/number.mdx +1 -1
  130. package/docs/fields/radio.mdx +1 -1
  131. package/docs/fields/relationship.mdx +1 -1
  132. package/docs/fields/rich-text.mdx +1 -1
  133. package/docs/fields/select.mdx +2 -2
  134. package/docs/fields/text.mdx +2 -2
  135. package/docs/fields/textarea.mdx +1 -1
  136. package/docs/fields/upload.mdx +51 -17
  137. package/docs/production/preventing-abuse.mdx +6 -6
  138. package/package.json +3 -2
@@ -103,7 +103,7 @@
103
103
  "itemsAndMore": "{{items}} i {{count}} więcej",
104
104
  "labelRelationship": "Relacja {{label}}",
105
105
  "latitude": "Szerokość",
106
- "linkedTo": "Połączony z <0>etykietą</0>",
106
+ "linkedTo": "Połączony z <0>{{etykietą}}</0>",
107
107
  "longitude": "Długość geograficzna",
108
108
  "newLabel": "Nowy {{label}}",
109
109
  "passwordsDoNotMatch": "Hasła nie pasują",
@@ -103,7 +103,7 @@
103
103
  "itemsAndMore": "{{items}} e mais {{count}}",
104
104
  "labelRelationship": "Relacionado a {{label}}",
105
105
  "latitude": "Latitude",
106
- "linkedTo": "Ligado a <0>label</0>",
106
+ "linkedTo": "Ligado a <0>{{label}}</0>",
107
107
  "longitude": "Longitude",
108
108
  "newLabel": "Novo(a) {{label}}",
109
109
  "passwordsDoNotMatch": "Senhas não coincidem.",
@@ -103,7 +103,7 @@
103
103
  "itemsAndMore": "{{items}} и ещё {{count}}",
104
104
  "labelRelationship": "{{label}} Отношения",
105
105
  "latitude": "Широта",
106
- "linkedTo": "Связано с <0>label</0>",
106
+ "linkedTo": "Связано с <0>{{label}}</0>",
107
107
  "longitude": "Долгота",
108
108
  "newLabel": "Новый {{label}}",
109
109
  "passwordsDoNotMatch": "Пароли не совпадают.",
@@ -104,7 +104,7 @@
104
104
  "itemsAndMore": "{{items}} och {{count}} mer",
105
105
  "labelRelationship": "{{label}} Relation",
106
106
  "latitude": "Latitud",
107
- "linkedTo": "Länkad till <0>etikett</0>",
107
+ "linkedTo": "Länkad till <0>{{label}}</0>",
108
108
  "longitude": "Longitud",
109
109
  "newLabel": "Ny {{label}}",
110
110
  "passwordsDoNotMatch": "Lösenorden matchar inte.",
@@ -104,7 +104,7 @@
104
104
  "itemsAndMore": "{{items}} và {{count}} món nữa",
105
105
  "labelRelationship": "Mối quan hệ của {{label}} (Relationship)",
106
106
  "latitude": "Vĩ độ",
107
- "linkedTo": "Được nối với <0>label</0>",
107
+ "linkedTo": "Được nối với <0>{{label}}</0>",
108
108
  "longitude": "Kinh độ",
109
109
  "newLabel": "Tạo {{label}} mới",
110
110
  "passwordsDoNotMatch": "Mật khẩu không trùng.",
@@ -0,0 +1 @@
1
+ export declare function isNumber(value: unknown): boolean;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNumber = void 0;
4
+ function isNumber(value) {
5
+ return !Number.isNaN(Number(value));
6
+ }
7
+ exports.isNumber = isNumber;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNOdW1iZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbGl0aWVzL2lzTnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFFBQVEsQ0FBQyxLQUFjO0lBQ3JDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFGRCw0QkFFQyJ9
@@ -4,6 +4,7 @@ exports.saveCollectionDraft = void 0;
4
4
  const enforceMaxVersions_1 = require("../enforceMaxVersions");
5
5
  const saveCollectionDraft = async ({ payload, config, id, data, autosave, }) => {
6
6
  const VersionsModel = payload.versions[config.slug];
7
+ const dataAsDraft = { ...data, _status: 'draft' };
7
8
  let existingAutosaveVersion;
8
9
  if (autosave) {
9
10
  existingAutosaveVersion = await VersionsModel.findOne({
@@ -18,14 +19,14 @@ const saveCollectionDraft = async ({ payload, config, id, data, autosave, }) =>
18
19
  result = await VersionsModel.findByIdAndUpdate({
19
20
  _id: existingAutosaveVersion._id,
20
21
  }, {
21
- version: data,
22
+ version: dataAsDraft,
22
23
  }, { new: true, lean: true });
23
24
  // Otherwise, create a new one
24
25
  }
25
26
  else {
26
27
  result = await VersionsModel.create({
27
28
  parent: id,
28
- version: data,
29
+ version: dataAsDraft,
29
30
  autosave: Boolean(autosave),
30
31
  });
31
32
  }
@@ -51,4 +52,4 @@ const saveCollectionDraft = async ({ payload, config, id, data, autosave, }) =>
51
52
  return result;
52
53
  };
53
54
  exports.saveCollectionDraft = saveCollectionDraft;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZUNvbGxlY3Rpb25EcmFmdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9ucy9kcmFmdHMvc2F2ZUNvbGxlY3Rpb25EcmFmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw4REFBMkQ7QUFZcEQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsRUFDeEMsT0FBTyxFQUNQLE1BQU0sRUFDTixFQUFFLEVBQ0YsSUFBSSxFQUNKLFFBQVEsR0FDSCxFQUFvQyxFQUFFO0lBQzNDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBELElBQUksdUJBQXVCLENBQUM7SUFFNUIsSUFBSSxRQUFRLEVBQUU7UUFDWix1QkFBdUIsR0FBRyxNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDcEQsTUFBTSxFQUFFLEVBQUU7U0FDWCxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDekM7SUFFRCxJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUk7UUFDRiw2Q0FBNkM7UUFDN0MsWUFBWTtRQUNaLElBQUksUUFBUSxJQUFJLENBQUEsdUJBQXVCLGFBQXZCLHVCQUF1Qix1QkFBdkIsdUJBQXVCLENBQUUsUUFBUSxNQUFLLElBQUksRUFBRTtZQUMxRCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQzVDO2dCQUNFLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO2FBQ2pDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLElBQUk7YUFDZCxFQUNELEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQzFCLENBQUM7WUFDSiw4QkFBOEI7U0FDN0I7YUFBTTtZQUNMLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLE1BQU0sRUFBRSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQzVCLENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzNCO0lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUM3QixJQUFBLHVDQUFrQixFQUFDO1lBQ2pCLEVBQUU7WUFDRixPQUFPO1lBQ1AsS0FBSyxFQUFFLGFBQWE7WUFDcEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVM7U0FDL0IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN4QixNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUVmLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQTlEVyxRQUFBLG1CQUFtQix1QkE4RDlCIn0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZUNvbGxlY3Rpb25EcmFmdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9ucy9kcmFmdHMvc2F2ZUNvbGxlY3Rpb25EcmFmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw4REFBMkQ7QUFZcEQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsRUFDeEMsT0FBTyxFQUNQLE1BQU0sRUFDTixFQUFFLEVBQ0YsSUFBSSxFQUNKLFFBQVEsR0FDSCxFQUFvQyxFQUFFO0lBQzNDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBELE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRWxELElBQUksdUJBQXVCLENBQUM7SUFFNUIsSUFBSSxRQUFRLEVBQUU7UUFDWix1QkFBdUIsR0FBRyxNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDcEQsTUFBTSxFQUFFLEVBQUU7U0FDWCxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDekM7SUFFRCxJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUk7UUFDRiw2Q0FBNkM7UUFDN0MsWUFBWTtRQUNaLElBQUksUUFBUSxJQUFJLENBQUEsdUJBQXVCLGFBQXZCLHVCQUF1Qix1QkFBdkIsdUJBQXVCLENBQUUsUUFBUSxNQUFLLElBQUksRUFBRTtZQUMxRCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQzVDO2dCQUNFLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO2FBQ2pDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7YUFDckIsRUFDRCxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUMxQixDQUFDO1lBQ0osOEJBQThCO1NBQzdCO2FBQU07WUFDTCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsTUFBTSxDQUFDO2dCQUNsQyxNQUFNLEVBQUUsRUFBRTtnQkFDVixPQUFPLEVBQUUsV0FBVztnQkFDcEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFDNUIsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0csT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDM0I7SUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1FBQzdCLElBQUEsdUNBQWtCLEVBQUM7WUFDakIsRUFBRTtZQUNGLE9BQU87WUFDUCxLQUFLLEVBQUUsYUFBYTtZQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsVUFBVSxFQUFFLFlBQVk7WUFDeEIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUztTQUMvQixDQUFDLENBQUM7S0FDSjtJQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3hCLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRWYsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBaEVXLFFBQUEsbUJBQW1CLHVCQWdFOUIifQ==
@@ -4,6 +4,7 @@ exports.saveGlobalDraft = void 0;
4
4
  const enforceMaxVersions_1 = require("../enforceMaxVersions");
5
5
  const saveGlobalDraft = async ({ payload, config, data, autosave, }) => {
6
6
  const VersionsModel = payload.versions[config.slug];
7
+ const dataAsDraft = { ...data, _status: 'draft' };
7
8
  let existingAutosaveVersion;
8
9
  if (autosave) {
9
10
  existingAutosaveVersion = await VersionsModel.findOne();
@@ -16,13 +17,13 @@ const saveGlobalDraft = async ({ payload, config, data, autosave, }) => {
16
17
  result = await VersionsModel.findByIdAndUpdate({
17
18
  _id: existingAutosaveVersion._id,
18
19
  }, {
19
- version: data,
20
+ version: dataAsDraft,
20
21
  }, { new: true, lean: true });
21
22
  // Otherwise, create a new one
22
23
  }
23
24
  else {
24
25
  result = await VersionsModel.create({
25
- version: data,
26
+ version: dataAsDraft,
26
27
  autosave: Boolean(autosave),
27
28
  });
28
29
  }
@@ -46,4 +47,4 @@ const saveGlobalDraft = async ({ payload, config, data, autosave, }) => {
46
47
  return result;
47
48
  };
48
49
  exports.saveGlobalDraft = saveGlobalDraft;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZUdsb2JhbERyYWZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZlcnNpb25zL2RyYWZ0cy9zYXZlR2xvYmFsRHJhZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOERBQTJEO0FBVXBELE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxFQUNwQyxPQUFPLEVBQ1AsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEdBQ0gsRUFBaUIsRUFBRTtJQUN4QixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRCxJQUFJLHVCQUF1QixDQUFDO0lBRTVCLElBQUksUUFBUSxFQUFFO1FBQ1osdUJBQXVCLEdBQUcsTUFBTSxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDekQ7SUFFRCxJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUk7UUFDRiw2Q0FBNkM7UUFDN0MsWUFBWTtRQUNaLElBQUksUUFBUSxJQUFJLENBQUEsdUJBQXVCLGFBQXZCLHVCQUF1Qix1QkFBdkIsdUJBQXVCLENBQUUsUUFBUSxNQUFLLElBQUksRUFBRTtZQUMxRCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQzVDO2dCQUNFLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO2FBQ2pDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLElBQUk7YUFDZCxFQUNELEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQzFCLENBQUM7WUFDSiw4QkFBOEI7U0FDN0I7YUFBTTtZQUNMLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQzVCLENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUMvRixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMzQjtJQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDdkIsSUFBQSx1Q0FBa0IsRUFBQztZQUNqQixPQUFPLEVBQUUsSUFBSTtZQUNiLEtBQUssRUFBRSxhQUFhO1lBQ3BCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixVQUFVLEVBQUUsUUFBUTtZQUNwQixHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHO1NBQ3pCLENBQUMsQ0FBQztLQUNKO0lBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDeEIsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFNUIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBeERXLFFBQUEsZUFBZSxtQkF3RDFCIn0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZUdsb2JhbERyYWZ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZlcnNpb25zL2RyYWZ0cy9zYXZlR2xvYmFsRHJhZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOERBQTJEO0FBVXBELE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxFQUNwQyxPQUFPLEVBQ1AsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLEdBQ0gsRUFBaUIsRUFBRTtJQUN4QixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRCxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUVsRCxJQUFJLHVCQUF1QixDQUFDO0lBRTVCLElBQUksUUFBUSxFQUFFO1FBQ1osdUJBQXVCLEdBQUcsTUFBTSxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDekQ7SUFFRCxJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUk7UUFDRiw2Q0FBNkM7UUFDN0MsWUFBWTtRQUNaLElBQUksUUFBUSxJQUFJLENBQUEsdUJBQXVCLGFBQXZCLHVCQUF1Qix1QkFBdkIsdUJBQXVCLENBQUUsUUFBUSxNQUFLLElBQUksRUFBRTtZQUMxRCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQzVDO2dCQUNFLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHO2FBQ2pDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7YUFDckIsRUFDRCxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUMxQixDQUFDO1lBQ0osOEJBQThCO1NBQzdCO2FBQU07WUFDTCxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsTUFBTSxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsV0FBVztnQkFDcEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFDNUIsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMERBQTBELE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQy9GLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzNCO0lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN2QixJQUFBLHVDQUFrQixFQUFDO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLGFBQWE7WUFDcEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUc7U0FDekIsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN4QixNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUExRFcsUUFBQSxlQUFlLG1CQTBEMUIifQ==
@@ -31,6 +31,7 @@ const ensurePublishedCollectionVersion = async ({ payload, config, req, id, docW
31
31
  req,
32
32
  overrideAccess: true,
33
33
  showHiddenFields: true,
34
+ flattenLocales: false,
34
35
  });
35
36
  try {
36
37
  await VersionModel.create({
@@ -57,4 +58,4 @@ const ensurePublishedCollectionVersion = async ({ payload, config, req, id, docW
57
58
  }
58
59
  };
59
60
  exports.ensurePublishedCollectionVersion = ensurePublishedCollectionVersion;
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlUHVibGlzaGVkQ29sbGVjdGlvblZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbnMvZW5zdXJlUHVibGlzaGVkQ29sbGVjdGlvblZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkRBQTBEO0FBRTFELHlEQUFzRDtBQVUvQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFBRSxFQUNyRCxPQUFPLEVBQ1AsTUFBTSxFQUNOLEdBQUcsRUFDSCxFQUFFLEVBQ0YsY0FBYyxHQUNULEVBQWlCLEVBQUU7SUFDeEIsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxzREFBc0Q7SUFFdEQsSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxPQUFPLE1BQUssV0FBVyxFQUFFO1FBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixHQUFHLEVBQUUsY0FBYyxDQUFDLEVBQUU7YUFDdkI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxFQUFFLGNBQWMsQ0FBQyxTQUFTO2FBQzlCO1NBQ0YsRUFDRCxFQUFFLEVBQ0Y7WUFDRSxJQUFJLEVBQUUsSUFBSTtZQUNWLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsTUFBTTthQUNsQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQSxnQkFBZ0IsYUFBaEIsZ0JBQWdCLHVCQUFoQixnQkFBZ0IsQ0FBRSxNQUFNLE1BQUssQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSxxQkFBUyxFQUFDO2dCQUM5QixLQUFLLEVBQUUsQ0FBQztnQkFDUixHQUFHLEVBQUUsY0FBYztnQkFDbkIsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLEdBQUc7Z0JBQ0gsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLGdCQUFnQixFQUFFLElBQUk7YUFDdkIsQ0FBQyxDQUFDO1lBRUgsSUFBSTtnQkFDRixNQUFNLFlBQVksQ0FBQyxNQUFNLENBQUM7b0JBQ3hCLE1BQU0sRUFBRSxFQUFFO29CQUNWLE9BQU87b0JBQ1AsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCLENBQUMsQ0FBQzthQUNKO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscURBQXFELE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDeEcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDM0I7WUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO2dCQUM3QixJQUFBLHVDQUFrQixFQUFDO29CQUNqQixFQUFFO29CQUNGLE9BQU87b0JBQ1AsS0FBSyxFQUFFLFlBQVk7b0JBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDakIsVUFBVSxFQUFFLFlBQVk7b0JBQ3hCLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVM7aUJBQy9CLENBQUMsQ0FBQzthQUNKO1NBQ0Y7S0FDRjtBQUNILENBQUMsQ0FBQztBQWhFVyxRQUFBLGdDQUFnQyxvQ0FnRTNDIn0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlUHVibGlzaGVkQ29sbGVjdGlvblZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbnMvZW5zdXJlUHVibGlzaGVkQ29sbGVjdGlvblZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkRBQTBEO0FBRTFELHlEQUFzRDtBQVUvQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFBRSxFQUNyRCxPQUFPLEVBQ1AsTUFBTSxFQUNOLEdBQUcsRUFDSCxFQUFFLEVBQ0YsY0FBYyxHQUNULEVBQWlCLEVBQUU7SUFDeEIsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxzREFBc0Q7SUFFdEQsSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxPQUFPLE1BQUssV0FBVyxFQUFFO1FBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQy9DLE1BQU0sRUFBRTtnQkFDTixHQUFHLEVBQUUsY0FBYyxDQUFDLEVBQUU7YUFDdkI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxFQUFFLGNBQWMsQ0FBQyxTQUFTO2FBQzlCO1NBQ0YsRUFDRCxFQUFFLEVBQ0Y7WUFDRSxJQUFJLEVBQUUsSUFBSTtZQUNWLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRTtnQkFDSixTQUFTLEVBQUUsTUFBTTthQUNsQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQSxnQkFBZ0IsYUFBaEIsZ0JBQWdCLHVCQUFoQixnQkFBZ0IsQ0FBRSxNQUFNLE1BQUssQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSxxQkFBUyxFQUFDO2dCQUM5QixLQUFLLEVBQUUsQ0FBQztnQkFDUixHQUFHLEVBQUUsY0FBYztnQkFDbkIsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLEdBQUc7Z0JBQ0gsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLGNBQWMsRUFBRSxLQUFLO2FBQ3RCLENBQUMsQ0FBQztZQUVILElBQUk7Z0JBQ0YsTUFBTSxZQUFZLENBQUMsTUFBTSxDQUFDO29CQUN4QixNQUFNLEVBQUUsRUFBRTtvQkFDVixPQUFPO29CQUNQLFFBQVEsRUFBRSxLQUFLO2lCQUNoQixDQUFDLENBQUM7YUFDSjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3hHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzNCO1lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDN0IsSUFBQSx1Q0FBa0IsRUFBQztvQkFDakIsRUFBRTtvQkFDRixPQUFPO29CQUNQLEtBQUssRUFBRSxZQUFZO29CQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLFVBQVUsRUFBRSxZQUFZO29CQUN4QixHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2lCQUMvQixDQUFDLENBQUM7YUFDSjtTQUNGO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUFqRVcsUUFBQSxnQ0FBZ0Msb0NBaUUzQyJ9
@@ -28,6 +28,7 @@ const ensurePublishedGlobalVersion = async ({ payload, config, req, docWithLocal
28
28
  req,
29
29
  overrideAccess: true,
30
30
  showHiddenFields: true,
31
+ flattenLocales: false,
31
32
  });
32
33
  try {
33
34
  await VersionModel.create({
@@ -52,4 +53,4 @@ const ensurePublishedGlobalVersion = async ({ payload, config, req, docWithLocal
52
53
  }
53
54
  };
54
55
  exports.ensurePublishedGlobalVersion = ensurePublishedGlobalVersion;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlUHVibGlzaGVkR2xvYmFsVmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9lbnN1cmVQdWJsaXNoZWRHbG9iYWxWZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZEQUEwRDtBQUcxRCx5REFBc0Q7QUFTL0MsTUFBTSw0QkFBNEIsR0FBRyxLQUFLLEVBQUUsRUFDakQsT0FBTyxFQUNQLE1BQU0sRUFDTixHQUFHLEVBQ0gsY0FBYyxHQUNULEVBQWlCLEVBQUU7SUFDeEIsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxzREFBc0Q7SUFFdEQsSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxPQUFPLE1BQUssV0FBVyxFQUFFO1FBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQy9DLFNBQVMsRUFBRTtnQkFDVCxHQUFHLEVBQUUsY0FBYyxDQUFDLFNBQVM7YUFDOUI7U0FDRixFQUNELEVBQUUsRUFDRjtZQUNFLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxNQUFNO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFFLE1BQU0sTUFBSyxDQUFDLEVBQUU7WUFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLHFCQUFTLEVBQUM7Z0JBQzlCLEtBQUssRUFBRSxDQUFDO2dCQUNSLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsR0FBRztnQkFDSCxjQUFjLEVBQUUsSUFBSTtnQkFDcEIsZ0JBQWdCLEVBQUUsSUFBSTthQUN2QixDQUFDLENBQUM7WUFFSCxJQUFJO2dCQUNGLE1BQU0sWUFBWSxDQUFDLE1BQU0sQ0FBQztvQkFDeEIsT0FBTztvQkFDUCxRQUFRLEVBQUUsS0FBSztpQkFDaEIsQ0FBQyxDQUFDO2FBQ0o7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0REFBNEQsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2xHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzNCO1lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDdkIsSUFBQSx1Q0FBa0IsRUFBQztvQkFDakIsT0FBTyxFQUFFLElBQUk7b0JBQ2IsS0FBSyxFQUFFLFlBQVk7b0JBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDakIsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUc7aUJBQ3pCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7S0FDRjtBQUNILENBQUMsQ0FBQztBQTFEVyxRQUFBLDRCQUE0QixnQ0EwRHZDIn0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlUHVibGlzaGVkR2xvYmFsVmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9lbnN1cmVQdWJsaXNoZWRHbG9iYWxWZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZEQUEwRDtBQUcxRCx5REFBc0Q7QUFTL0MsTUFBTSw0QkFBNEIsR0FBRyxLQUFLLEVBQUUsRUFDakQsT0FBTyxFQUNQLE1BQU0sRUFDTixHQUFHLEVBQ0gsY0FBYyxHQUNULEVBQWlCLEVBQUU7SUFDeEIsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxzREFBc0Q7SUFFdEQsSUFBSSxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxPQUFPLE1BQUssV0FBVyxFQUFFO1FBQzNDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQy9DLFNBQVMsRUFBRTtnQkFDVCxHQUFHLEVBQUUsY0FBYyxDQUFDLFNBQVM7YUFDOUI7U0FDRixFQUNELEVBQUUsRUFDRjtZQUNFLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxNQUFNO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFFLE1BQU0sTUFBSyxDQUFDLEVBQUU7WUFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLHFCQUFTLEVBQUM7Z0JBQzlCLEtBQUssRUFBRSxDQUFDO2dCQUNSLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsR0FBRztnQkFDSCxjQUFjLEVBQUUsSUFBSTtnQkFDcEIsZ0JBQWdCLEVBQUUsSUFBSTtnQkFDdEIsY0FBYyxFQUFFLEtBQUs7YUFDdEIsQ0FBQyxDQUFDO1lBRUgsSUFBSTtnQkFDRixNQUFNLFlBQVksQ0FBQyxNQUFNLENBQUM7b0JBQ3hCLE9BQU87b0JBQ1AsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCLENBQUMsQ0FBQzthQUNKO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNERBQTRELE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMzQjtZQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZCLElBQUEsdUNBQWtCLEVBQUM7b0JBQ2pCLE9BQU8sRUFBRSxJQUFJO29CQUNiLEtBQUssRUFBRSxZQUFZO29CQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLFVBQVUsRUFBRSxRQUFRO29CQUNwQixHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHO2lCQUN6QixDQUFDLENBQUM7YUFDSjtTQUNGO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUEzRFcsUUFBQSw0QkFBNEIsZ0NBMkR2QyJ9
@@ -0,0 +1,10 @@
1
+ import { Payload } from '..';
2
+ import { Collection, TypeWithID } from '../collections/config/types';
3
+ declare type Args = {
4
+ payload: Payload;
5
+ collection: Collection;
6
+ query: Record<string, unknown>;
7
+ id: string | number;
8
+ };
9
+ export declare const getLatestCollectionVersion: <T extends TypeWithID = any>({ payload, collection: { config, Model, }, query, id, }: Args) => Promise<T>;
10
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLatestCollectionVersion = void 0;
4
+ const getLatestCollectionVersion = async ({ payload, collection: { config, Model, }, query, id, }) => {
5
+ var _a;
6
+ let version;
7
+ if ((_a = config.versions) === null || _a === void 0 ? void 0 : _a.drafts) {
8
+ version = payload.versions[config.slug].findOne({
9
+ parent: id,
10
+ }, {}, {
11
+ sort: { updatedAt: 'desc' },
12
+ lean: true,
13
+ });
14
+ }
15
+ const collection = await Model.findOne(query).lean();
16
+ version = await version;
17
+ if (!version || version.updatedAt < collection.updatedAt) {
18
+ return collection;
19
+ }
20
+ return {
21
+ ...version.version,
22
+ updatedAt: version.updatedAt,
23
+ createdAt: version.createdAt,
24
+ };
25
+ };
26
+ exports.getLatestCollectionVersion = getLatestCollectionVersion;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyc2lvbnMvZ2V0TGF0ZXN0Q29sbGVjdGlvblZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV08sTUFBTSwwQkFBMEIsR0FBRyxLQUFLLEVBQThCLEVBQzNFLE9BQU8sRUFDUCxVQUFVLEVBQUUsRUFDVixNQUFNLEVBQ04sS0FBSyxHQUNOLEVBQ0QsS0FBSyxFQUNMLEVBQUUsR0FDRyxFQUFjLEVBQUU7O0lBQ3JCLElBQUksT0FBTyxDQUFDO0lBQ1osSUFBSSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLE1BQU0sRUFBRTtRQUMzQixPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzlDLE1BQU0sRUFBRSxFQUFFO1NBQ1gsRUFBRSxFQUFFLEVBQUU7WUFDTCxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQzNCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxNQUFNLFVBQVUsR0FBRyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFjLENBQUM7SUFDakUsT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDO0lBQ3hCLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFO1FBQ3hELE9BQU8sVUFBVSxDQUFDO0tBQ25CO0lBQ0QsT0FBTztRQUNMLEdBQUcsT0FBTyxDQUFDLE9BQU87UUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1FBQzVCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztLQUM3QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBNUJXLFFBQUEsMEJBQTBCLDhCQTRCckMifQ==
@@ -0,0 +1,10 @@
1
+ import { Payload } from '..';
2
+ import { TypeWithID } from '../collections/config/types';
3
+ import { SanitizedGlobalConfig } from '../globals/config/types';
4
+ declare type Args = {
5
+ payload: Payload;
6
+ config: SanitizedGlobalConfig;
7
+ query: Record<string, unknown>;
8
+ };
9
+ export declare const getLatestGlobalVersion: <T extends TypeWithID = any>({ payload, config, query, }: Args) => Promise<T>;
10
+ export {};
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLatestGlobalVersion = void 0;
4
+ const getLatestGlobalVersion = async ({ payload, config, query, }) => {
5
+ var _a;
6
+ let version;
7
+ if ((_a = config.versions) === null || _a === void 0 ? void 0 : _a.drafts) {
8
+ version = payload.versions[config.slug].findOne({}, {}, {
9
+ sort: {
10
+ updatedAt: 'desc',
11
+ },
12
+ lean: true,
13
+ });
14
+ }
15
+ const global = await payload.globals.Model.findOne(query).lean();
16
+ version = await version;
17
+ if (!version || version.updatedAt < global.updatedAt) {
18
+ return global;
19
+ }
20
+ return {
21
+ ...version.version,
22
+ updatedAt: version.updatedAt,
23
+ createdAt: version.createdAt,
24
+ };
25
+ };
26
+ exports.getLatestGlobalVersion = getLatestGlobalVersion;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0TGF0ZXN0R2xvYmFsVmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9nZXRMYXRlc3RHbG9iYWxWZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdPLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxFQUE4QixFQUN2RSxPQUFPLEVBQ1AsTUFBTSxFQUNOLEtBQUssR0FDQSxFQUFjLEVBQUU7O0lBQ3JCLElBQUksT0FBTyxDQUFDO0lBQ1osSUFBSSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLE1BQU0sRUFBRTtRQUMzQixPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdEQsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxNQUFNO2FBQ2xCO1lBQ0QsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7S0FDSjtJQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBYyxDQUFDO0lBQzdFLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQztJQUN4QixJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNwRCxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQ0QsT0FBTztRQUNMLEdBQUcsT0FBTyxDQUFDLE9BQU87UUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1FBQzVCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztLQUM3QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBeEJXLFFBQUEsc0JBQXNCLDBCQXdCakMifQ==
@@ -163,11 +163,7 @@ const CustomTextField: React.FC<Props> = ({ path }) => {
163
163
 
164
164
  <Banner type="success">
165
165
  For more information regarding the hooks that are available to you while you
166
- build custom components, including the <strong>useField</strong> hook,{" "}
167
- <a href="/docs/admin/hooks" style={{ color: "black" }}>
168
- click here
169
- </a>
170
- .
166
+ build custom components, including the <strong>useField</strong> hook, <a href="/docs/admin/hooks" style={{ color: "black" }}>click here</a>.
171
167
  </Banner>
172
168
 
173
169
  ## Custom routes
@@ -17,7 +17,7 @@ To enable Authentication on a collection, define an `auth` property and set it t
17
17
  | **`useAPIKey`** | Payload Authentication provides for API keys to be set on each user within an Authentication-enabled Collection. [More](/docs/authentication/config#api-keys) |
18
18
  | **`tokenExpiration`** | How long (in seconds) to keep the user logged in. JWTs and HTTP-only cookies will both expire at the same time. |
19
19
  | **`maxLoginAttempts`** | Only allow a user to attempt logging in X amount of times. Automatically locks out a user from authenticating if this limit is passed. Set to `0` to disable. |
20
- | **`lockTime`** | Set the time that a user should be locked out if they fail authentication more times than `maxLoginAttempts` allows for. |
20
+ | **`lockTime`** | Set the time (in milliseconds) that a user should be locked out if they fail authentication more times than `maxLoginAttempts` allows for. |
21
21
  | **`depth`** | How many levels deep a `user` document should be populated when creating the JWT and binding the `user` to the express `req`. Defaults to `0` and should only be modified if absolutely necessary, as this will affect performance. |
22
22
  | **`cookies`** | Set cookie options, including `secure`, `sameSite`, and `domain`. For advanced users. |
23
23
  | **`forgotPassword`** | Customize the way that the `forgotPassword` operation functions. [More](/docs/authentication/config#forgot-password) |
@@ -12,19 +12,19 @@ As with Collection configs, it's often best practice to write your Globals in se
12
12
 
13
13
  ## Options
14
14
 
15
- | Option | Description |
16
- |--------------------| -------------|
17
- | **`slug`** * | Unique, URL-friendly string that will act as an identifier for this Global. |
15
+ | Option | Description |
16
+ |--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
17
+ | **`slug`** * | Unique, URL-friendly string that will act as an identifier for this Global. |
18
18
  | **`fields`** * | Array of field types that will determine the structure and functionality of the data stored within this Global. [Click here](/docs/fields/overview) for a full list of field types as well as how to configure them. |
19
- | **`label`** | Singular label for use in identifying this Global throughout Payload. Auto-generated from slug if not defined. |
20
- | **`description`** | Text or React component to display below the Global header to give editors more information. |
21
- | **`admin`** | Admin-specific configuration. See below for [more detail](/docs/configuration/globals#admin-options). |
22
- | **`hooks`** | Entry points to "tie in" to collection actions at specific points. [More](/docs/hooks/overview#global-hooks) |
23
- | **`access`** | Provide access control functions to define exactly who should be able to do what with this Global. [More](/docs/access-control/overview/#globals) |
24
- | **`versions`** | Set to true to enable default options, or configure with object properties. [More](/docs/versions/overview#globals-config)|
25
- | **`endpoints`** | Add custom routes to the REST API. [More](/docs/rest-api/overview#custom-endpoints)|
26
- | **`graphQL.name`** | Text used in schema generation. Auto-generated from slug if not defined. |
27
- | **`typescript`** | An object with property `interface` as the text used in schema generation. Auto-generated from slug if not defined. |
19
+ | **`label`** | Text for the name in the Admin panel or an object with keys for each language. Auto-generated from slug if not defined. |
20
+ | **`description`** | Text or React component to display below the Global header to give editors more information. |
21
+ | **`admin`** | Admin-specific configuration. See below for [more detail](/docs/configuration/globals#admin-options). |
22
+ | **`hooks`** | Entry points to "tie in" to collection actions at specific points. [More](/docs/hooks/overview#global-hooks) |
23
+ | **`access`** | Provide access control functions to define exactly who should be able to do what with this Global. [More](/docs/access-control/overview/#globals) |
24
+ | **`versions`** | Set to true to enable default options, or configure with object properties. [More](/docs/versions/overview#globals-config) |
25
+ | **`endpoints`** | Add custom routes to the REST API. [More](/docs/rest-api/overview#custom-endpoints) |
26
+ | **`graphQL.name`** | Text used in schema generation. Auto-generated from slug if not defined. |
27
+ | **`typescript`** | An object with property `interface` as the text used in schema generation. Auto-generated from slug if not defined. |
28
28
 
29
29
  *\* An asterisk denotes that a property is required.*
30
30
 
@@ -19,7 +19,7 @@ const Articles: CollectionConfig = {
19
19
  en: 'Article', es: 'Artículo',
20
20
  },
21
21
  plural: {
22
- en: 'Articles', es: 'Artículo',
22
+ en: 'Articles', es: 'Artículos',
23
23
  },
24
24
  },
25
25
  admin: {
@@ -21,21 +21,21 @@ keywords: array, fields, config, configuration, documentation, Content Managemen
21
21
 
22
22
  ### Config
23
23
 
24
- | Option | Description |
25
- | ---------------- | ----------- |
26
- | **`name`** * | To be used as the property name when stored and retrieved from the database. |
27
- | **`label`** | Used as a heading in the Admin panel and to name the generated GraphQL type. Auto-generated from name if not defined. |
28
- | **`fields`** * | Array of field types to correspond to each row of the Array. |
29
- | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
30
- | **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
31
- | **`hooks`** | Provide field-based hooks to control logic for this field. [More](/docs/fields/overview#field-level-hooks) |
32
- | **`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) |
33
- | **`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. |
34
- | **`defaultValue`** | Provide an array of row data to be used for this field's default value. [More](/docs/fields/overview#default-values) |
24
+ | Option | Description |
25
+ | ---------------- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
26
+ | **`name`** * | To be used as the property name when stored and retrieved from the database. |
27
+ | **`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. |
28
+ | **`fields`** * | Array of field types to correspond to each row of the Array. |
29
+ | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
30
+ | **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
31
+ | **`hooks`** | Provide field-based hooks to control logic for this field. [More](/docs/fields/overview#field-level-hooks) |
32
+ | **`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) |
33
+ | **`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. |
34
+ | **`defaultValue`** | Provide an array of row data to be used for this field's default value. [More](/docs/fields/overview#default-values) |
35
35
  | **`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`. |
36
- | **`required`** | Require this field to have a value. |
37
- | **`labels`** | Customize the row labels appearing in the Admin dashboard. |
38
- | **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
36
+ | **`required`** | Require this field to have a value. |
37
+ | **`labels`** | Customize the row labels appearing in the Admin dashboard. |
38
+ | **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
39
39
 
40
40
  *\* An asterisk denotes that a property is required.*
41
41
 
@@ -25,7 +25,7 @@ keywords: blocks, fields, config, configuration, documentation, Content Manageme
25
25
  | Option | Description |
26
26
  |-------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
27
27
  | **`name`** * | To be used as the property name when stored and retrieved from the database. |
28
- | **`label`** | Used as a heading in the Admin panel. |
28
+ | **`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. |
29
29
  | **`blocks`** * | Array of [block configs](/docs/fields/blocks#block-configs) to be made available to this field. |
30
30
  | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
31
31
  | **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
@@ -14,8 +14,8 @@ keywords: checkbox, fields, config, configuration, documentation, Content Manage
14
14
 
15
15
  | Option | Description |
16
16
  | ---------------- | ----------- |
17
- | **`name`** * | To be used as the property name when stored and retrieved from the database. |
18
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
17
+ | **`name`** * | To be used as the property name when stored and retrieved from the database. |
18
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
19
19
  | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
20
20
  | **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. |
21
21
  | **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
@@ -18,7 +18,7 @@ This field uses `prismjs` for syntax highlighting and `react-simple-code-editor`
18
18
  | Option | Description |
19
19
  | ---------------- | ----------- |
20
20
  | **`name`** * | To be used as the property name when stored and retrieved from the database. |
21
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
21
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
22
22
  | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
23
23
  | **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. |
24
24
  | **`minLength`** | Used by the default validation function to ensure values are of a minimum character length. |
@@ -18,7 +18,7 @@ This field uses [`react-datepicker`](https://www.npmjs.com/package/react-datepic
18
18
  | Option | Description |
19
19
  | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
20
20
  | **`name`** \* | To be used as the property name when stored and retrieved from the database. |
21
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
21
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
22
22
  | **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. |
23
23
  | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
24
24
  | **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
@@ -15,7 +15,7 @@ keywords: email, fields, config, configuration, documentation, Content Managemen
15
15
  | Option | Description |
16
16
  | ---------------- | ----------- |
17
17
  | **`name`** * | To be used as the property name when stored and retrieved from the database. |
18
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
18
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
19
19
  | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
20
20
  | **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. |
21
21
  | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
@@ -15,7 +15,7 @@ keywords: number, fields, config, configuration, documentation, Content Manageme
15
15
  | Option | Description |
16
16
  | ---------------- | ----------- |
17
17
  | **`name`** * | To be used as the property name when stored and retrieved from the database. |
18
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
18
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
19
19
  | **`min`** | Minimum value accepted. Used in the default `validation` function. |
20
20
  | **`max`** | Maximum value accepted. Used in the default `validation` function. |
21
21
  | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
@@ -16,7 +16,7 @@ keywords: radio, fields, config, configuration, documentation, Content Managemen
16
16
  | ---------------- | ----------- |
17
17
  | **`name`** * | To be used as the property name when stored and retrieved from the database. |
18
18
  | **`options`** * | Array of options to allow the field to store. Can either be an array of strings, or an array of objects containing an `label` string and a `value` string. |
19
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
19
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
20
20
  | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
21
21
  | **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. |
22
22
  | **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
@@ -25,7 +25,7 @@ keywords: relationship, fields, config, configuration, documentation, Content Ma
25
25
  | **`filterOptions`** | A query to filter which options appear in the UI and validate against. [More](#filtering-relationship-options). |
26
26
  | **`hasMany`** | Boolean when, if set to `true`, allows this field to have many relations instead of only one. |
27
27
  | **`maxDepth`** | Sets a number limit on iterations of related documents to populate when queried. [Depth](/docs/getting-started/concepts#depth) |
28
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
28
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
29
29
  | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
30
30
  | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
31
31
  | **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. |
@@ -21,7 +21,7 @@ The Admin component is built on the powerful [`slatejs`](https://docs.slatejs.or
21
21
  | Option | Description |
22
22
  | ---------------- | ----------- |
23
23
  | **`name`** * | To be used as the property name when stored and retrieved from the database. |
24
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
24
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
25
25
  | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
26
26
  | **`saveToJWT`** | If this field is top-level and nested in a config supporting [Authentication](/docs/authentication/config), include its data in the user JWT. |
27
27
  | **`hooks`** | Provide field-based hooks to control logic for this field. [More](/docs/fields/overview#field-level-hooks) |
@@ -14,11 +14,11 @@ keywords: select, multi-select, fields, config, configuration, documentation, Co
14
14
  ### Config
15
15
 
16
16
  | Option | Description |
17
- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
17
+ | ------------------ |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
18
18
  | **`name`** \* | To be used as the property name when stored and retrieved from the database. |
19
19
  | **`options`** \* | Array of options to allow the field to store. Can either be an array of strings, or an array of objects containing a `label` string and a `value` string. |
20
20
  | **`hasMany`** | Boolean when, if set to `true`, allows this field to have many selections instead of only one. |
21
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
21
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
22
22
  | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
23
23
  | **`validate`** | Provide a custom validation function that will be executed on both the Admin panel and the backend. [More](/docs/fields/overview#validation) |
24
24
  | **`index`** | Build a [MongoDB index](https://docs.mongodb.com/manual/indexes/) for this field to produce faster queries. Set this field to `true` if your users will perform queries on this field's data often. |
@@ -14,8 +14,8 @@ keywords: text, fields, config, configuration, documentation, Content Management
14
14
 
15
15
  | Option | Description |
16
16
  | ---------------- | ----------- |
17
- | **`name`** * | To be used as the property name when stored and retrieved from the database. |
18
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
17
+ | **`name`** * | To be used as the property name when stored and retrieved from the database. |
18
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
19
19
  | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
20
20
  | **`minLength`** | Used by the default validation function to ensure values are of a minimum character length. |
21
21
  | **`maxLength`** | Used by the default validation function to ensure values are of a maximum character length. |
@@ -15,7 +15,7 @@ keywords: textarea, fields, config, configuration, documentation, Content Manage
15
15
  | Option | Description |
16
16
  | ---------------- | ----------- |
17
17
  | **`name`** * | To be used as the property name when stored and retrieved from the database. |
18
- | **`label`** | Used as a field label in the Admin panel and to name the generated GraphQL type. |
18
+ | **`label`** | Text used as a field label in the Admin panel or an object with keys for each language. |
19
19
  | **`unique`** | Enforce that each entry in the Collection has a unique value for this field. |
20
20
  | **`minLength`** | Used by the default validation function to ensure values are of a minimum character length. |
21
21
  | **`maxLength`** | Used by the default validation function to ensure values are of a maximum character length. |