payload 1.2.0 → 1.2.1

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 (37) hide show
  1. package/CHANGELOG.md +123 -16
  2. package/components/fields/Select.ts +1 -1
  3. package/dist/admin/components/elements/ReactSelect/index.js +2 -2
  4. package/dist/admin/components/elements/VersionsCount/index.js +1 -1
  5. package/dist/admin/components/elements/WhereBuilder/Condition/Text/index.js +5 -1
  6. package/dist/admin/components/forms/field-types/Select/Input.js +13 -3
  7. package/dist/admin/components/forms/field-types/Textarea/Input.js +1 -1
  8. package/dist/admin/components/forms/field-types/Textarea/index.scss +3 -6
  9. package/dist/admin/components/views/Account/index.js +6 -1
  10. package/dist/admin/components/views/Login/index.js +1 -1
  11. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +1 -1
  12. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Nested/index.js +15 -9
  13. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +5 -2
  14. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +5 -0
  15. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.js +34 -0
  16. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Select/index.scss +10 -0
  17. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/Text/index.js +3 -2
  18. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
  19. package/dist/admin/components/views/Versions/index.js +1 -1
  20. package/dist/admin/components/views/collections/Edit/Default.js +2 -0
  21. package/dist/admin/components/views/collections/Edit/SetStepNav.d.ts +7 -0
  22. package/dist/admin/components/views/collections/Edit/SetStepNav.js +31 -0
  23. package/dist/admin/components/views/collections/Edit/index.js +2 -36
  24. package/dist/admin/hooks/usePayloadAPI.js +3 -1
  25. package/dist/collections/requestHandlers/update.js +3 -3
  26. package/dist/fields/hooks/beforeChange/promise.js +7 -1
  27. package/dist/globals/requestHandlers/update.js +3 -3
  28. package/dist/translations/en.json +2 -0
  29. package/dist/translations/index.d.ts +5 -0
  30. package/dist/translations/it.json +18 -15
  31. package/dist/versions/drafts/saveCollectionDraft.js +4 -3
  32. package/dist/versions/drafts/saveGlobalDraft.js +4 -3
  33. package/dist/versions/ensurePublishedCollectionVersion.js +2 -1
  34. package/dist/versions/ensurePublishedGlobalVersion.js +2 -1
  35. package/docs/authentication/config.mdx +1 -1
  36. package/docs/configuration/i18n.mdx +1 -1
  37. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,10 +1,36 @@
1
1
 
2
2
 
3
- # [1.2.0](https://github.com/payloadcms/payload/compare/v1.1.26...v1.2.0) (2022-11-18)
3
+ ## [1.2.1](https://github.com/payloadcms/payload/compare/v1.2.0...v1.2.1) (2022-11-22)
4
4
 
5
5
 
6
6
  ### Bug Fixes
7
7
 
8
+ * adjusts styles to allow error bg to fill textarea ([2e57b76](https://github.com/payloadcms/payload/commit/2e57b76df01acf7ed1ce5fcb824ef5f96d11621d))
9
+ * allows patching global drafts [#1415](https://github.com/payloadcms/payload/issues/1415) ([25822a9](https://github.com/payloadcms/payload/commit/25822a91b1e4f2bf4804f15947d211138d696219))
10
+ * dynamically sets stepnav from default edit view ([40c8778](https://github.com/payloadcms/payload/commit/40c87784b0c6281c599b6d2a46a27b70b0568c30))
11
+ * ensures drafts operations saves as draft [#1415](https://github.com/payloadcms/payload/issues/1415) ([fc16ffe](https://github.com/payloadcms/payload/commit/fc16ffefdb354ea023462d784cdac7ab6fcc26d3))
12
+ * flattens locales before versioning published docs [#1415](https://github.com/payloadcms/payload/issues/1415) ([f700f51](https://github.com/payloadcms/payload/commit/f700f51f2bcdd657d1fab6b6d83ac00a11ed870d))
13
+ * **i18n:** version count ([#1465](https://github.com/payloadcms/payload/issues/1465)) ([075b7e9](https://github.com/payloadcms/payload/commit/075b7e9f02498ea253cf270654dcce0f11ec1f93))
14
+ * Increase textarea click area ([c303913](https://github.com/payloadcms/payload/commit/c303913e61881a3b0d90615dda905b20347d6f1e))
15
+ * invalid query string user account request ([#1478](https://github.com/payloadcms/payload/issues/1478)) ([400cb9b](https://github.com/payloadcms/payload/commit/400cb9b6bcfd09c39cb6aa438daad876d12e8e13))
16
+ * removes incorrectly import/export option type - [#1441](https://github.com/payloadcms/payload/issues/1441) ([ed01a17](https://github.com/payloadcms/payload/commit/ed01a176210a02a32874f4d0d1c5206d9a772e7e))
17
+ * rendering of localized select value ([1d1d249](https://github.com/payloadcms/payload/commit/1d1d2493aa08db4c300c01e72ccb6c11e03f9e09))
18
+ * sanitizes select values on the server, allowing isClearable selects to be cleared without error ([699ca14](https://github.com/payloadcms/payload/commit/699ca14434eeff3025cffd3f6e00efada80e021f))
19
+ * translate version comparison view field labels ([#1470](https://github.com/payloadcms/payload/issues/1470)) ([8123585](https://github.com/payloadcms/payload/commit/8123585592b9a53ef746f17476b36a2661cca025))
20
+ * versionCount was broken & other i18n improvements ([#1450](https://github.com/payloadcms/payload/issues/1450)) ([078c28b](https://github.com/payloadcms/payload/commit/078c28bd5fd08fd17a0b0b360e904f51fe8a2e98))
21
+ * versions tests ([af6a7aa](https://github.com/payloadcms/payload/commit/af6a7aa9e850c0817ea40d755f51255ccf0938c2))
22
+
23
+
24
+ ### Features
25
+
26
+ * add i18n to option labels in version comparison ([#1477](https://github.com/payloadcms/payload/issues/1477)) ([7b6a9ed](https://github.com/payloadcms/payload/commit/7b6a9ede6e3a72e7e64358cb88946b16153d8dc6))
27
+ * exports field types properly ([7c6d6fd](https://github.com/payloadcms/payload/commit/7c6d6fd1caeb25e1a871fa1b9cecc53be8a2a7a1))
28
+
29
+ # [1.2.0](https://github.com/payloadcms/payload/compare/v1.1.26...v1.2.0) (2022-11-18)
30
+
31
+
32
+ ### 🐛 Bug Fixes
33
+
8
34
  * build errors ([65f0e1c](https://github.com/payloadcms/payload/commit/65f0e1caace193f034139e331883d01d8eb92d2c))
9
35
  * components optional chaining ([d5e725c](https://github.com/payloadcms/payload/commit/d5e725c608588e96b974291fa86d5e89dea9060d))
10
36
  * corrects exported custom component type ([2878b4b](https://github.com/payloadcms/payload/commit/2878b4b1bec5c0c9997c1ba2a080640d4d3f8e5f))
@@ -12,7 +38,7 @@
12
38
  * sets pointer-events to none so the entire label bar is clickable ([e458087](https://github.com/payloadcms/payload/commit/e458087a55cbbad29ca3568ca4c089aaee49693a))
13
39
 
14
40
 
15
- ### Features
41
+ ### ✨ Features
16
42
 
17
43
  * add i18n to admin panel ([#1326](https://github.com/payloadcms/payload/issues/1326)) ([bab34d8](https://github.com/payloadcms/payload/commit/bab34d82f5fddad32ceafd116ad97e87cab4c862))
18
44
  * adds docs example ([2bf0fff](https://github.com/payloadcms/payload/commit/2bf0fffa0dd83f395aa3318b3baba1e22dd58b51))
@@ -23,21 +49,102 @@
23
49
  * specifies component names for arrays/collapsibles, simplifies threaded data ([b74ea21](https://github.com/payloadcms/payload/commit/b74ea218ca47ce9db9d20586dbbce73e4ce0f917))
24
50
 
25
51
 
26
- ### BREAKING CHANGES
27
-
28
- * If you assigned labels to collections, globals or block names, you need to update your config! Your GraphQL schema and generated Typescript interfaces may have changed. Payload no longer uses labels for code based naming. To prevent breaking changes to your GraphQL API and typescript types in your project, you can assign the below properties to match what Payload previously generated for you from labels.
29
-
30
- On Collections
31
- Use `graphQL.singularName`, `graphQL.pluralName` for GraphQL schema names.
32
- Use `typescript.interface` for typescript generation name.
52
+ ### 🚨 BREAKING CHANGES
53
+
54
+ * You ***might*** need to update your config. This change affects `collections`, `globals` and `block fields` with custom labeling.
55
+ * **Collections:** are affected if you have a custom `labels.singular` defined that differs from your collection slug.
56
+ ```typescript
57
+ // ExampleCollection.ts
58
+
59
+ // Before
60
+ const ExampleCollection: CollectionConfig = {
61
+ slug: 'case-studies',
62
+ labels: {
63
+ // Before Payload used `labels.singular` to generate types/graphQL schema
64
+ singular: 'Project',
65
+ plural: 'Projects',
66
+ },
67
+ }
68
+
69
+ // After
70
+ const ExampleCollection: CollectionConfig = {
71
+ // Now Payload uses `slug` to generate types/graphQL schema
72
+ slug: 'case-studies',
73
+ labels: {
74
+ singular: 'Project',
75
+ plural: 'Projects',
76
+ },
77
+ // To override the usage of slug in graphQL schema generation
78
+ graphQL: {
79
+ singularName: 'Project',
80
+ pluralName: 'Projects',
81
+ },
82
+ // To override the usage of slug in type file generation
83
+ typescript: {
84
+ interface: 'Project',
85
+ }
86
+ }
87
+ ```
88
+ * **Globals:** are affected if you have a `label` defined that differs from your global slug.
89
+ ```typescript
90
+ // ExampleGlobal.ts
91
+
92
+ // Before
93
+ const ExampleGlobal: GlobalConfig = {
94
+ slug: 'footer',
95
+ // Before Payload used `label` to generate types/graphQL schema
96
+ label: 'Page Footer',
97
+ }
98
+
99
+ // After
100
+ const ExampleGlobal: GlobalConfig = {
101
+ // Now Payload uses `slug` to generate types/graphQL schema
102
+ slug: 'footer',
103
+ label: 'Page Footer',
104
+ // To override the usage of slug in graphQL schema generation
105
+ graphQL: {
106
+ name: 'PageFooter',
107
+ },
108
+ // To override the usage of slug in type file generation
109
+ typescript: {
110
+ interface: 'PageFooter',
111
+ },
112
+ }
113
+ ```
114
+ * **Block Fields:** are affected if you have a `label` defined that differs from your block slug.
115
+ ```typescript
116
+ // ExampleBlock.ts
117
+
118
+ // Before
119
+ const ExampleBlock: Block = {
120
+ slug: 'content',
121
+ // Before Payload used `label` to generate graphQL schema
122
+ label: 'Content Block',
123
+ }
124
+
125
+ // After
126
+ const ExampleBlock: Block = {
127
+ // Now Payload uses `slug` to generate graphQL schema
128
+ slug: 'content',
129
+ label: 'Content Block',
130
+ // To override the usage of slug in graphQL schema generation
131
+ graphQL: {
132
+ singularName: 'ContentBlock',
133
+ },
134
+ }
135
+ ```
136
+ **Breaking changes recap**:
137
+ - On Collections
138
+ - Use `graphQL.singularName`, `graphQL.pluralName` for GraphQL schema names.
139
+ - Use `typescript.interface` for typescript generation name.
140
+
141
+ - On Globals
142
+ - Use `graphQL.name` for GraphQL Schema name.
143
+ - Use `typescript.interface` for typescript generation name.
144
+
145
+ - On Blocks (within Block fields)
146
+ - Use `graphQL.singularName` for graphQL schema names.
33
147
 
34
- On Globals
35
- Use `graphQL.name` for GraphQL Schema name.
36
- Use `typescript.interface` for typescript generation name.
37
-
38
- On Blocks (within Block fields)
39
- Use `graphQL.singularName` for graphQL schema names.
40
-
41
148
  ## [1.1.26](https://github.com/payloadcms/payload/compare/v1.1.25...v1.1.26) (2022-11-15)
42
149
 
43
150
 
@@ -1,2 +1,2 @@
1
1
  // eslint-disable-next-line import/named
2
- export { Props, Option } from '../../dist/admin/components/forms/field-types/Select/types';
2
+ export { Props } from '../../dist/admin/components/forms/field-types/Select/types';
@@ -24,8 +24,8 @@ const SortableMultiValue = SortableElement((props) => {
24
24
  const SortableMultiValueLabel = SortableHandle((props) => React.createElement(components.MultiValueLabel, { ...props }));
25
25
  const SortableSelect = SortableContainer(Select);
26
26
  const ReactSelect = (props) => {
27
- const { className, showError = false, options, onChange, value, disabled = false, placeholder, isSearchable = true, isClearable, isMulti, isSortable, filterOption = undefined, } = props;
28
- const { i18n } = useTranslation();
27
+ const { t, i18n } = useTranslation();
28
+ const { className, showError = false, options, onChange, value, disabled = false, placeholder = t('general:selectValue'), isSearchable = true, isClearable, isMulti, isSortable, filterOption = undefined, } = props;
29
29
  const classes = [
30
30
  className,
31
31
  'react-select',
@@ -33,6 +33,6 @@ const VersionsCount = ({ collection, global, id }) => {
33
33
  const versionCount = ((versions === null || versions === void 0 ? void 0 : versions.totalDocs) || 0) + initialVersionsCount;
34
34
  return (React.createElement("div", { className: baseClass },
35
35
  versionCount === 0 && t('versionCount_none'),
36
- versionCount > 0 && (React.createElement(Button, { className: `${baseClass}__button`, buttonStyle: "none", el: "link", to: versionsURL }, t('versionCount', { count: versionCount })))));
36
+ versionCount > 0 && (React.createElement(Button, { className: `${baseClass}__button`, buttonStyle: "none", el: "link", to: versionsURL }, t(versionCount === 1 ? 'versionCount_one' : 'versionCount_many', { count: versionCount })))));
37
37
  };
38
38
  export default VersionsCount;
@@ -1,5 +1,9 @@
1
1
  import React from 'react';
2
+ import { useTranslation } from 'react-i18next';
2
3
  import './index.scss';
3
4
  const baseClass = 'condition-value-text';
4
- const Text = ({ onChange, value }) => (React.createElement("input", { placeholder: "Enter a value", className: baseClass, type: "text", onChange: (e) => onChange(e.target.value), value: value || '' }));
5
+ const Text = ({ onChange, value }) => {
6
+ const { t } = useTranslation('general');
7
+ return (React.createElement("input", { placeholder: t('enterAValue'), className: baseClass, type: "text", onChange: (e) => onChange(e.target.value), value: value || '' }));
8
+ };
5
9
  export default Text;
@@ -18,10 +18,20 @@ const SelectInput = (props) => {
18
18
  ].filter(Boolean).join(' ');
19
19
  let valueToRender;
20
20
  if (hasMany && Array.isArray(value)) {
21
- valueToRender = value.map((val) => options.find((option) => option.value === val));
21
+ valueToRender = value.map((val) => {
22
+ const matchingOption = options.find((option) => option.value === val);
23
+ return {
24
+ label: getTranslation(matchingOption.label, i18n),
25
+ value: matchingOption.value,
26
+ };
27
+ });
22
28
  }
23
- else {
24
- valueToRender = options.find((option) => option.value === value);
29
+ else if (value) {
30
+ const matchingOption = options.find((option) => option.value === value);
31
+ valueToRender = {
32
+ label: getTranslation(matchingOption.label, i18n),
33
+ value: matchingOption.value,
34
+ };
25
35
  }
26
36
  return (React.createElement("div", { id: `field-${path.replace(/\./gi, '__')}`, className: classes, style: {
27
37
  ...style,
@@ -21,7 +21,7 @@ const TextareaInput = (props) => {
21
21
  } },
22
22
  React.createElement(Error, { showError: showError, message: errorMessage }),
23
23
  React.createElement(Label, { htmlFor: `field-${path.replace(/\./gi, '__')}`, label: label, required: required }),
24
- React.createElement("div", { className: "textarea-outer" },
24
+ React.createElement("label", { className: "textarea-outer", htmlFor: `field-${path.replace(/\./gi, '__')}` },
25
25
  React.createElement("div", { className: "textarea-inner" },
26
26
  React.createElement("div", { className: "textarea-clone", "data-value": value || placeholder || '' }),
27
27
  React.createElement("textarea", { className: "textarea-element", id: `field-${path.replace(/\./gi, '__')}`, value: value || '', onChange: onChange, disabled: readOnly, placeholder: getTranslation(placeholder, i18n), name: path, rows: rows }))),
@@ -6,12 +6,13 @@
6
6
 
7
7
  .textarea-outer {
8
8
  @include formInput();
9
+ display: flex;
9
10
  resize: vertical;
10
- height: auto;
11
11
  min-height: base(3);
12
+ height: 100%;
12
13
 
13
14
  // Scrollbar for giant content
14
- max-height: 90vh;
15
+ max-height: calc(100vh - $top-header-offset - calc(#{base(5)}));
15
16
  overflow: auto;
16
17
 
17
18
  @include mid-break {
@@ -31,7 +32,6 @@
31
32
  position: relative;
32
33
  line-height: inherit;
33
34
  flex-grow: 1;
34
- box-sizing: border-box;
35
35
  background: none;
36
36
  outline: none;
37
37
  }
@@ -49,7 +49,6 @@
49
49
  line-height: inherit;
50
50
  color: inherit;
51
51
  background: none;
52
- box-sizing: border-box;
53
52
  overflow: auto;
54
53
  resize: none;
55
54
  outline: none;
@@ -65,8 +64,6 @@
65
64
  vertical-align: top;
66
65
  display: inline-block;
67
66
  flex-grow: 1;
68
- white-space: pre;
69
- box-sizing: border-box;
70
67
  overflow: hidden;
71
68
  text-overflow: ellipsis;
72
69
  white-space: pre-wrap;
@@ -29,7 +29,12 @@ const AccountView = () => {
29
29
  const collection = collections.find((coll) => coll.slug === adminUser);
30
30
  const { fields } = collection;
31
31
  const collectionPermissions = (_a = permissions === null || permissions === void 0 ? void 0 : permissions.collections) === null || _a === void 0 ? void 0 : _a[adminUser];
32
- const [{ data }] = usePayloadAPI(`${serverURL}${api}/${collection === null || collection === void 0 ? void 0 : collection.slug}/${user === null || user === void 0 ? void 0 : user.id}?depth=0`, { initialParams: { 'fallback-locale': 'null' } });
32
+ const [{ data }] = usePayloadAPI(`${serverURL}${api}/${collection === null || collection === void 0 ? void 0 : collection.slug}/${user === null || user === void 0 ? void 0 : user.id}`, {
33
+ initialParams: {
34
+ 'fallback-locale': 'null',
35
+ depth: 0,
36
+ },
37
+ });
33
38
  const hasSavePermission = (_b = collectionPermissions === null || collectionPermissions === void 0 ? void 0 : collectionPermissions.update) === null || _b === void 0 ? void 0 : _b.permission;
34
39
  const dataToRender = (locationState === null || locationState === void 0 ? void 0 : locationState.data) || data;
35
40
  const apiURL = `${serverURL}${api}/${user.collection}/${data === null || data === void 0 ? void 0 : data.id}`;
@@ -45,7 +45,7 @@ const Login = () => {
45
45
  !collection.auth.disableLocalStrategy && (React.createElement(Form, { disableSuccessStatus: true, waitForAutocomplete: true, onSuccess: onSuccess, method: "post", action: `${serverURL}${api}/${userSlug}/login` },
46
46
  React.createElement(Email, { label: t('general:email'), name: "email", admin: { autoComplete: 'email' }, required: true }),
47
47
  React.createElement(Password, { label: t('general:password'), name: "password", autoComplete: "off", required: true }),
48
- React.createElement(Link, { to: `${admin}/forgot` }, t('forgotPassword')),
48
+ React.createElement(Link, { to: `${admin}/forgot` }, t('forgotPasswordQuestion')),
49
49
  React.createElement(FormSubmit, null, t('login')))),
50
50
  Array.isArray(afterLogin) && afterLogin.map((Component, i) => React.createElement(Component, { key: i }))));
51
51
  };
@@ -16,7 +16,7 @@ const Iterable = ({ version, comparison, permissions, field, locale, locales, fi
16
16
  return (React.createElement("div", { className: baseClass },
17
17
  field.label && (React.createElement(Label, null,
18
18
  locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
19
- field.label)),
19
+ getTranslation(field.label, i18n))),
20
20
  maxRows > 0 && (React.createElement(React.Fragment, null, Array.from(Array(maxRows).keys()).map((row, i) => {
21
21
  const versionRow = (version === null || version === void 0 ? void 0 : version[i]) || {};
22
22
  const comparisonRow = (comparison === null || comparison === void 0 ? void 0 : comparison[i]) || {};
@@ -1,15 +1,21 @@
1
1
  import React from 'react';
2
+ import { useTranslation } from 'react-i18next';
2
3
  import RenderFieldsToDiff from '../..';
3
4
  import Label from '../../Label';
5
+ import { getTranslation } from '../../../../../../../utilities/getTranslation';
4
6
  import './index.scss';
5
7
  const baseClass = 'nested-diff';
6
- const Nested = ({ version, comparison, permissions, field, locale, locales, fieldComponents, disableGutter = false, }) => (React.createElement("div", { className: baseClass },
7
- field.label && (React.createElement(Label, null,
8
- locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
9
- field.label)),
10
- React.createElement("div", { className: [
11
- `${baseClass}__wrap`,
12
- !disableGutter && `${baseClass}__wrap--gutter`,
13
- ].filter(Boolean).join(' ') },
14
- React.createElement(RenderFieldsToDiff, { locales: locales, version: version, comparison: comparison, fieldPermissions: permissions, fields: field.fields, fieldComponents: fieldComponents }))));
8
+ const Nested = ({ version, comparison, permissions, field, locale, locales, fieldComponents, disableGutter = false, }) => {
9
+ const { i18n } = useTranslation();
10
+ return (React.createElement("div", { className: baseClass },
11
+ field.label && (React.createElement(Label, null,
12
+ locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
13
+ getTranslation(field.label, i18n))),
14
+ React.createElement("div", { className: [
15
+ `${baseClass}__wrap`,
16
+ !disableGutter && `${baseClass}__wrap--gutter`,
17
+ ].filter(Boolean)
18
+ .join(' ') },
19
+ React.createElement(RenderFieldsToDiff, { locales: locales, version: version, comparison: comparison, fieldPermissions: permissions, fields: field.fields, fieldComponents: fieldComponents }))));
20
+ };
15
21
  export default Nested;
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
2
  import ReactDiffViewer from 'react-diff-viewer';
3
+ import { useTranslation } from 'react-i18next';
3
4
  import { useConfig } from '../../../../../utilities/Config';
4
5
  import { useLocale } from '../../../../../utilities/Locale';
5
6
  import { fieldAffectsData, fieldIsPresentationalOnly } from '../../../../../../../fields/config/types';
6
7
  import Label from '../../Label';
7
8
  import { diffStyles } from '../styles';
9
+ import { getTranslation } from '../../../../../../../utilities/getTranslation';
8
10
  import './index.scss';
9
11
  const baseClass = 'relationship-diff';
10
12
  const generateLabelFromValue = (collections, field, locale, value) => {
@@ -43,10 +45,11 @@ const generateLabelFromValue = (collections, field, locale, value) => {
43
45
  };
44
46
  const Relationship = ({ field, version, comparison }) => {
45
47
  const { collections } = useConfig();
48
+ const { t, i18n } = useTranslation('general');
46
49
  const locale = useLocale();
47
50
  let placeholder = '';
48
51
  if (version === comparison)
49
- placeholder = '[no value]';
52
+ placeholder = `[${t('noValue')}]`;
50
53
  let versionToRender = version;
51
54
  let comparisonToRender = comparison;
52
55
  if (field.hasMany) {
@@ -62,7 +65,7 @@ const Relationship = ({ field, version, comparison }) => {
62
65
  return (React.createElement("div", { className: baseClass },
63
66
  React.createElement(Label, null,
64
67
  locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
65
- field.label),
68
+ getTranslation(field.label, i18n)),
66
69
  React.createElement(ReactDiffViewer, { styles: diffStyles, oldValue: typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder, newValue: typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder, splitView: true, hideLineNumbers: true, showDiffOnly: false })));
67
70
  return null;
68
71
  };
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { Props } from '../types';
3
+ import './index.scss';
4
+ declare const Select: React.FC<Props>;
5
+ export default Select;
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import ReactDiffViewer, { DiffMethod } from 'react-diff-viewer';
3
+ import { useTranslation } from 'react-i18next';
4
+ import Label from '../../Label';
5
+ import { diffStyles } from '../styles';
6
+ import { getTranslation } from '../../../../../../../utilities/getTranslation';
7
+ import './index.scss';
8
+ const baseClass = 'select-diff';
9
+ const getOptionsToRender = (value, options, hasMany) => {
10
+ if (hasMany && Array.isArray(value)) {
11
+ return value.map((val) => options.find((option) => (typeof option === 'string' ? option : option.value) === val));
12
+ }
13
+ return options.find((option) => (typeof option === 'string' ? option : option.value) === value);
14
+ };
15
+ const getTranslatedOptions = (options, i18n) => {
16
+ if (Array.isArray(options)) {
17
+ return options.map((option) => (typeof option === 'string' ? option : getTranslation(option.label, i18n))).join(', ');
18
+ }
19
+ return typeof options === 'string' ? options : getTranslation(options.label, i18n);
20
+ };
21
+ const Select = ({ field, locale, version, comparison, diffMethod }) => {
22
+ let placeholder = '';
23
+ const { t, i18n } = useTranslation('general');
24
+ if (version === comparison)
25
+ placeholder = `[${t('noValue')}]`;
26
+ const comparisonToRender = typeof comparison !== 'undefined' ? getTranslatedOptions(getOptionsToRender(comparison, field.options, field.hasMany), i18n) : placeholder;
27
+ const versionToRender = typeof version !== 'undefined' ? getTranslatedOptions(getOptionsToRender(version, field.options, field.hasMany), i18n) : placeholder;
28
+ return (React.createElement("div", { className: baseClass },
29
+ React.createElement(Label, null,
30
+ locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
31
+ getTranslation(field.label, i18n)),
32
+ React.createElement(ReactDiffViewer, { styles: diffStyles, compareMethod: DiffMethod[diffMethod], oldValue: comparisonToRender, newValue: typeof versionToRender !== 'undefined' ? versionToRender : placeholder, splitView: true, hideLineNumbers: true, showDiffOnly: false })));
33
+ };
34
+ export default Select;
@@ -0,0 +1,10 @@
1
+ @import '../../../../../../scss/styles.scss';
2
+
3
+ .select-diff {
4
+ &__locale-label {
5
+ margin-right: base(.25);
6
+ background: var(--theme-elevation-100);
7
+ padding: base(.25);
8
+ border-radius: $style-radius-m;
9
+ }
10
+ }
@@ -3,11 +3,12 @@ import ReactDiffViewer, { DiffMethod } from 'react-diff-viewer';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import Label from '../../Label';
5
5
  import { diffStyles } from '../styles';
6
+ import { getTranslation } from '../../../../../../../utilities/getTranslation';
6
7
  import './index.scss';
7
8
  const baseClass = 'text-diff';
8
9
  const Text = ({ field, locale, version, comparison, isRichText = false, diffMethod }) => {
9
10
  let placeholder = '';
10
- const { t } = useTranslation('general');
11
+ const { t, i18n } = useTranslation('general');
11
12
  if (version === comparison)
12
13
  placeholder = `[${t('noValue')}]`;
13
14
  let versionToRender = version;
@@ -21,7 +22,7 @@ const Text = ({ field, locale, version, comparison, isRichText = false, diffMeth
21
22
  return (React.createElement("div", { className: baseClass },
22
23
  React.createElement(Label, null,
23
24
  locale && (React.createElement("span", { className: `${baseClass}__locale-label` }, locale)),
24
- field.label),
25
+ getTranslation(field.label, i18n)),
25
26
  React.createElement(ReactDiffViewer, { styles: diffStyles, compareMethod: DiffMethod[diffMethod], oldValue: typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder, newValue: typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder, splitView: true, hideLineNumbers: true, showDiffOnly: false })));
26
27
  };
27
28
  export default Text;
@@ -3,6 +3,7 @@ import Nested from './Nested';
3
3
  import Iterable from './Iterable';
4
4
  import Relationship from './Relationship';
5
5
  import Tabs from './Tabs';
6
+ import Select from './Select';
6
7
  export default {
7
8
  text: Text,
8
9
  textarea: Text,
@@ -10,14 +11,14 @@ export default {
10
11
  email: Text,
11
12
  code: Text,
12
13
  checkbox: Text,
13
- radio: Text,
14
+ radio: Select,
14
15
  row: Nested,
15
16
  collapsible: Nested,
16
17
  group: Nested,
17
18
  array: Iterable,
18
19
  blocks: Iterable,
19
20
  date: Text,
20
- select: Text,
21
+ select: Select,
21
22
  richText: Text,
22
23
  relationship: Relationship,
23
24
  upload: Relationship,
@@ -148,7 +148,7 @@ const Versions = ({ collection, global }) => {
148
148
  React.createElement(Eyebrow, null),
149
149
  React.createElement(Gutter, { className: `${baseClass}__wrap` },
150
150
  React.createElement("header", { className: `${baseClass}__header` },
151
- React.createElement("div", { className: `${baseClass}__intro` }, "Showing versions for:"),
151
+ React.createElement("div", { className: `${baseClass}__intro` }, t('showingVersionsFor')),
152
152
  useIDLabel && (React.createElement(IDLabel, { id: doc === null || doc === void 0 ? void 0 : doc.id })),
153
153
  !useIDLabel && (React.createElement("h1", null, heading))),
154
154
  isLoadingVersions && (React.createElement(Loading, null)),
@@ -27,6 +27,7 @@ import { useDocumentInfo } from '../../../utilities/DocumentInfo';
27
27
  import { OperationContext } from '../../../utilities/OperationProvider';
28
28
  import { Gutter } from '../../../elements/Gutter';
29
29
  import { getTranslation } from '../../../../../utilities/getTranslation';
30
+ import { SetStepNav } from './SetStepNav';
30
31
  import './index.scss';
31
32
  const baseClass = 'collection-edit';
32
33
  const DefaultEditView = (props) => {
@@ -45,6 +46,7 @@ const DefaultEditView = (props) => {
45
46
  isLoading && (React.createElement(Loading, null)),
46
47
  !isLoading && (React.createElement(OperationContext.Provider, { value: operation },
47
48
  React.createElement(Form, { className: `${baseClass}__form`, method: id ? 'patch' : 'post', action: action, onSuccess: onSave, disabled: !hasSavePermission, initialState: initialState },
49
+ React.createElement(SetStepNav, { collection: collection, isEditing: isEditing, id: data.id }),
48
50
  React.createElement("div", { className: `${baseClass}__main` },
49
51
  React.createElement(Meta, { title: `${isEditing ? t('editing') : t('creating')} - ${getTranslation(collection.labels.singular, i18n)}`, description: `${isEditing ? t('editing') : t('creating')} - ${getTranslation(collection.labels.singular, i18n)}`, keywords: `${getTranslation(collection.labels.singular, i18n)}, Payload, CMS` }),
50
52
  !disableEyebrow && (React.createElement(Eyebrow, null)),
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { SanitizedCollectionConfig } from '../../../../../collections/config/types';
3
+ export declare const SetStepNav: React.FC<{
4
+ collection: SanitizedCollectionConfig;
5
+ isEditing: boolean;
6
+ id: string;
7
+ }>;
@@ -0,0 +1,31 @@
1
+ import { useEffect } from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { getTranslation } from '../../../../../utilities/getTranslation';
4
+ import useTitle from '../../../../hooks/useTitle';
5
+ import { useStepNav } from '../../../elements/StepNav';
6
+ import { useConfig } from '../../../utilities/Config';
7
+ export const SetStepNav = ({ collection, isEditing, id }) => {
8
+ const { slug, labels: { plural: pluralLabel, }, admin: { useAsTitle, }, } = collection;
9
+ const { setStepNav } = useStepNav();
10
+ const { t, i18n } = useTranslation('general');
11
+ const { routes: { admin } } = useConfig();
12
+ const title = useTitle(useAsTitle);
13
+ useEffect(() => {
14
+ const nav = [{
15
+ url: `${admin}/collections/${slug}`,
16
+ label: getTranslation(pluralLabel, i18n),
17
+ }];
18
+ if (isEditing) {
19
+ nav.push({
20
+ label: (useAsTitle && useAsTitle !== 'id') ? title || `[${t('untitled')}]` : id,
21
+ });
22
+ }
23
+ else {
24
+ nav.push({
25
+ label: t('createNew'),
26
+ });
27
+ }
28
+ setStepNav(nav);
29
+ }, [setStepNav, isEditing, pluralLabel, id, slug, useAsTitle, admin, t, i18n, title]);
30
+ return null;
31
+ };
@@ -3,7 +3,6 @@ import { Redirect, useRouteMatch, useHistory, useLocation } from 'react-router-d
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { useConfig } from '../../../utilities/Config';
5
5
  import { useAuth } from '../../../utilities/Auth';
6
- import { useStepNav } from '../../../elements/StepNav';
7
6
  import usePayloadAPI from '../../../../hooks/usePayloadAPI';
8
7
  import RenderCustomComponent from '../../../utilities/RenderCustomComponent';
9
8
  import DefaultEdit from './Default';
@@ -13,11 +12,10 @@ import { useLocale } from '../../../utilities/Locale';
13
12
  import { useDocumentInfo } from '../../../utilities/DocumentInfo';
14
13
  import { usePreferences } from '../../../utilities/Preferences';
15
14
  import { EditDepthContext } from '../../../utilities/EditDepth';
16
- import { getTranslation } from '../../../../../utilities/getTranslation';
17
15
  const EditView = (props) => {
18
16
  var _a, _b, _c;
19
17
  const { collection: incomingCollection, isEditing } = props;
20
- const { slug, labels: { plural: pluralLabel, }, admin: { useAsTitle, components: { views: { Edit: CustomEdit, } = {}, } = {}, } = {}, } = incomingCollection;
18
+ const { slug, admin: { components: { views: { Edit: CustomEdit, } = {}, } = {}, } = {}, } = incomingCollection;
21
19
  const [fields] = useState(() => formatFields(incomingCollection, isEditing));
22
20
  const [collection] = useState(() => ({ ...incomingCollection, fields }));
23
21
  const [redirect, setRedirect] = useState();
@@ -26,12 +24,11 @@ const EditView = (props) => {
26
24
  const { params: { id } = {} } = useRouteMatch();
27
25
  const { state: locationState } = useLocation();
28
26
  const history = useHistory();
29
- const { setStepNav } = useStepNav();
30
27
  const [initialState, setInitialState] = useState();
31
28
  const { permissions, user } = useAuth();
32
29
  const { getVersions, preferencesKey } = useDocumentInfo();
33
30
  const { getPreference } = usePreferences();
34
- const { t, i18n } = useTranslation('general');
31
+ const { t } = useTranslation('general');
35
32
  const onSave = useCallback(async (json) => {
36
33
  var _a;
37
34
  getVersions();
@@ -45,37 +42,6 @@ const EditView = (props) => {
45
42
  }, [admin, collection, isEditing, getVersions, user, id, t, locale]);
46
43
  const [{ data, isLoading: isLoadingDocument, isError }] = usePayloadAPI((isEditing ? `${serverURL}${api}/${slug}/${id}` : null), { initialParams: { 'fallback-locale': 'null', depth: 0, draft: 'true' } });
47
44
  const dataToRender = (locationState === null || locationState === void 0 ? void 0 : locationState.data) || data;
48
- useEffect(() => {
49
- const nav = [{
50
- url: `${admin}/collections/${slug}`,
51
- label: getTranslation(pluralLabel, i18n),
52
- }];
53
- if (isEditing) {
54
- let label = '';
55
- if (dataToRender) {
56
- if (useAsTitle) {
57
- if (dataToRender[useAsTitle]) {
58
- label = dataToRender[useAsTitle];
59
- }
60
- else {
61
- label = `[${t('untitled')}]`;
62
- }
63
- }
64
- else {
65
- label = dataToRender.id;
66
- }
67
- }
68
- nav.push({
69
- label,
70
- });
71
- }
72
- else {
73
- nav.push({
74
- label: t('createNew'),
75
- });
76
- }
77
- setStepNav(nav);
78
- }, [setStepNav, isEditing, pluralLabel, dataToRender, slug, useAsTitle, admin, t, i18n]);
79
45
  useEffect(() => {
80
46
  if (isLoadingDocument) {
81
47
  return;
@@ -14,13 +14,15 @@ const usePayloadAPI = (url, options = {}) => {
14
14
  const search = queryString.stringify({
15
15
  locale,
16
16
  ...(typeof params === 'object' ? params : {}),
17
+ }, {
18
+ addQueryPrefix: true,
17
19
  });
18
20
  useEffect(() => {
19
21
  const fetchData = async () => {
20
22
  setIsError(false);
21
23
  setIsLoading(true);
22
24
  try {
23
- const response = await requests.get(`${url}?${search}`, {
25
+ const response = await requests.get(`${url}${search}`, {
24
26
  headers: {
25
27
  'Accept-Language': i18n.language,
26
28
  },
@@ -27,9 +27,9 @@ async function updateHandler(req, res, next) {
27
27
  });
28
28
  let message = req.t('general:updatedSuccessfully');
29
29
  if (draft)
30
- message = req.t('versions:draftSavedSuccessfully');
30
+ message = req.t('version:draftSavedSuccessfully');
31
31
  if (autosave)
32
- message = req.t('versions:autosavedSuccessfully');
32
+ message = req.t('version:autosavedSuccessfully');
33
33
  return res.status(http_status_1.default.OK).json({
34
34
  ...(0, formatSuccess_1.default)(message, 'message'),
35
35
  doc,
@@ -40,4 +40,4 @@ async function updateHandler(req, res, next) {
40
40
  }
41
41
  }
42
42
  exports.default = updateHandler;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbGxlY3Rpb25zL3JlcXVlc3RIYW5kbGVycy91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOERBQXFDO0FBRXJDLDBGQUEwRTtBQUMxRSxrRUFBMEM7QUFPbkMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLEdBQW1CLEVBQUUsR0FBYSxFQUFFLElBQWtCO0lBQzNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvSUFBb0ksQ0FBQyxDQUFDO0lBRTlKLE9BQU8sYUFBYSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUpELDRDQUlDO0FBRWMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFtQixFQUFFLEdBQWEsRUFBRSxJQUFrQjtJQUNoRyxJQUFJO1FBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztRQUUvQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsZ0JBQU0sRUFBQztZQUN2QixHQUFHO1lBQ0gsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQzFCLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ2QsS0FBSyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUMsS0FBSztZQUNMLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFbkQsSUFBSSxLQUFLO1lBQUUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUM5RCxJQUFJLFFBQVE7WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwQyxHQUFHLElBQUEsdUJBQXFCLEVBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztZQUM1QyxHQUFHO1NBQ0osQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQztBQTNCRCxnQ0EyQkMifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbGxlY3Rpb25zL3JlcXVlc3RIYW5kbGVycy91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOERBQXFDO0FBRXJDLDBGQUEwRTtBQUMxRSxrRUFBMEM7QUFPbkMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLEdBQW1CLEVBQUUsR0FBYSxFQUFFLElBQWtCO0lBQzNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvSUFBb0ksQ0FBQyxDQUFDO0lBRTlKLE9BQU8sYUFBYSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUpELDRDQUlDO0FBRWMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFtQixFQUFFLEdBQWEsRUFBRSxJQUFrQjtJQUNoRyxJQUFJO1FBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQztRQUUvQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsZ0JBQU0sRUFBQztZQUN2QixHQUFHO1lBQ0gsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1lBQzFCLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ2QsS0FBSyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUMsS0FBSztZQUNMLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFbkQsSUFBSSxLQUFLO1lBQUUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUM3RCxJQUFJLFFBQVE7WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRS9ELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwQyxHQUFHLElBQUEsdUJBQXFCLEVBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztZQUM1QyxHQUFHO1NBQ0osQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQztBQTNCRCxnQ0EyQkMifQ==
@@ -114,6 +114,12 @@ const promise = async ({ data, doc, docWithLocales, errors, field, id, mergeLoca
114
114
  }
115
115
  }
116
116
  switch (field.type) {
117
+ case 'select': {
118
+ if (siblingData[field.name] === null) {
119
+ siblingData[field.name] = undefined;
120
+ }
121
+ break;
122
+ }
117
123
  case 'point': {
118
124
  // Transform point data for storage
119
125
  if (Array.isArray(siblingData[field.name]) && siblingData[field.name][0] !== null && siblingData[field.name][1] !== null) {
@@ -289,4 +295,4 @@ const promise = async ({ data, doc, docWithLocales, errors, field, id, mergeLoca
289
295
  }
290
296
  };
291
297
  exports.promise = promise;
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0NBQXNDO0FBQ3RDLDBEQUE4QjtBQUM5Qiw4Q0FBcUY7QUFHckYsNEVBQXdEO0FBQ3hELHFEQUFrRDtBQUNsRCwyREFBd0Q7QUFtQnhELG9FQUFvRTtBQUNwRSxrQkFBa0I7QUFDbEIsb0RBQW9EO0FBQ3BELGdEQUFnRDtBQUNoRCx3QkFBd0I7QUFDeEIsa0JBQWtCO0FBQ2xCLCtCQUErQjtBQUMvQixzQkFBc0I7QUFFZixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFDNUIsSUFBSSxFQUNKLEdBQUcsRUFDSCxjQUFjLEVBQ2QsTUFBTSxFQUNOLEtBQUssRUFDTCxFQUFFLEVBQ0Ysa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLGNBQWMsR0FDVCxFQUFpQixFQUFFOztJQUN4QixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQUEsS0FBSyxDQUFDLEtBQUssMENBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25HLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBRWxFLElBQUksSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsRUFBRTtRQUMzQixJQUFJLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDbEQsd0VBQXdFO1lBQ3hFLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFdBQVcsRUFBRTtn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
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0NBQXNDO0FBQ3RDLDBEQUE4QjtBQUM5Qiw4Q0FBcUY7QUFHckYsNEVBQXdEO0FBQ3hELHFEQUFrRDtBQUNsRCwyREFBd0Q7QUFtQnhELG9FQUFvRTtBQUNwRSxrQkFBa0I7QUFDbEIsb0RBQW9EO0FBQ3BELGdEQUFnRDtBQUNoRCx3QkFBd0I7QUFDeEIsa0JBQWtCO0FBQ2xCLCtCQUErQjtBQUMvQixzQkFBc0I7QUFFZixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsRUFDNUIsSUFBSSxFQUNKLEdBQUcsRUFDSCxjQUFjLEVBQ2QsTUFBTSxFQUNOLEtBQUssRUFDTCxFQUFFLEVBQ0Ysa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLGNBQWMsR0FDVCxFQUFpQixFQUFFOztJQUN4QixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQUEsS0FBSyxDQUFDLEtBQUssMENBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25HLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBRWxFLElBQUksSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsRUFBRTtRQUMzQixJQUFJLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDbEQsd0VBQXdFO1lBQ3hFLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFdBQVcsRUFBRTtnQkFDakQsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUMxSCxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3pFO3FCQUFNO29CQUNMLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDbEQ7Z0JBRUQsa0NBQWtDO2FBQ25DO2lCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtnQkFDcEQsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLElBQUEseUJBQW1CLEVBQUM7b0JBQ2xELEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO29CQUNoQyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07b0JBQ2xCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtpQkFDZixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsZ0JBQWdCO1FBQ2hCLElBQUksTUFBQSxLQUFLLENBQUMsS0FBSywwQ0FBRSxZQUFZLEVBQUU7WUFDN0IsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFBRTtnQkFDckUsTUFBTSxTQUFTLENBQUM7Z0JBRWhCLE1BQU0sV0FBVyxHQUFHLE1BQU0sV0FBVyxDQUFDO29CQUNwQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQzlCLFdBQVcsRUFBRSxHQUFHO29CQUNoQixJQUFJO29CQUNKLFdBQVc7b0JBQ1gsU0FBUztvQkFDVCxHQUFHO2lCQUNKLENBQUMsQ0FBQztnQkFFSCxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7b0JBQzdCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDO2lCQUN2QztZQUNILENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN2QjtRQUVELFdBQVc7UUFDWCxJQUFJLENBQUMsc0JBQXNCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUM3QyxJQUFJLGVBQWUsQ0FBQztZQUVwQixJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekQ7aUJBQU07Z0JBQ0wsZUFBZSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0M7WUFFRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUU7Z0JBQzdELEdBQUcsS0FBSztnQkFDUixJQUFJLEVBQUUsSUFBQSxtQkFBSyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0QsV0FBVyxFQUFFLElBQUEsbUJBQUssRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xGLEVBQUU7Z0JBQ0YsU0FBUztnQkFDVCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2dCQUNwQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDVCxDQUFDLENBQUM7WUFFSCxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFO2dCQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNWLE9BQU8sRUFBRSxnQkFBZ0I7b0JBQ3pCLEtBQUssRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFO2lCQUM5QixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQseUNBQXlDO1FBQ3pDLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNuQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUMzQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtvQkFDbkMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7O3dCQUN0RixJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUV6QyxJQUFJLFFBQVEsS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFOzRCQUMzQixVQUFVLEdBQUcsTUFBQSxxQkFBcUIsYUFBckIscUJBQXFCLHVCQUFyQixxQkFBcUIsQ0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLDBDQUFHLFFBQVEsQ0FBQyxDQUFDO3lCQUM5RDt3QkFFRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRTs0QkFDckMsT0FBTztnQ0FDTCxHQUFHLE9BQU87Z0NBQ1YsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVOzZCQUN2QixDQUFDO3lCQUNIO3dCQUVELE9BQU8sT0FBTyxDQUFDO29CQUNqQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBRVAsK0NBQStDO29CQUMvQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDdEMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7cUJBQ3RDO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtLQUNGO0lBRUQsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ2xCLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDYixJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNwQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQzthQUNyQztZQUVELE1BQU07U0FDUDtRQUVELEtBQUssT0FBTyxDQUFDLENBQUM7WUFDWixtQ0FBbUM7WUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDeEgsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRztvQkFDeEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsV0FBVyxFQUFFO3dCQUNYLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN0QyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDdkM7aUJBQ0YsQ0FBQzthQUNIO1lBRUQsTUFBTTtTQUNQO1FBRUQsS0FBSyxPQUFPLENBQUMsQ0FBQztZQUNaLElBQUksT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7Z0JBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDOUUsSUFBSSxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUTtnQkFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1RSxJQUFJLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7Z0JBQUUscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVsRyxNQUFNLElBQUEsK0JBQWMsRUFBQztnQkFDbkIsSUFBSTtnQkFDSixHQUFHO2dCQUNILGNBQWM7Z0JBQ2QsTUFBTTtnQkFDTixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLEVBQUU7Z0JBQ0Ysa0JBQWtCO2dCQUNsQixTQUFTO2dCQUNULElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHO2dCQUM3QixHQUFHO2dCQUNILFdBQVcsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNEI7Z0JBQy9ELFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNEI7Z0JBQzdELHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQTRCO2dCQUNuRixjQUFjLEVBQUUsc0JBQXNCO2FBQ3ZDLENBQUMsQ0FBQztZQUVILE1BQU07U0FDUDtRQUVELEtBQUssT0FBTyxDQUFDLENBQUM7WUFDWixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXJDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFOztvQkFDdEIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFBLCtCQUFjLEVBQUM7d0JBQzNCLElBQUk7d0JBQ0osR0FBRzt3QkFDSCxjQUFjO3dCQUNkLE1BQU07d0JBQ04sTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO3dCQUNwQixFQUFFO3dCQUNGLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUc7d0JBQ2xDLEdBQUc7d0JBQ0gsV0FBVyxFQUFFLEdBQUc7d0JBQ2hCLFVBQVUsRUFBRSxJQUFBLHFDQUFpQixFQUFDLEdBQUcsRUFBRSxNQUFBLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLDBDQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUMvRCxxQkFBcUIsRUFBRSxJQUFBLHFDQUFpQixFQUFDLEdBQUcsRUFBRSxNQUFBLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsMENBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ3JGLGNBQWMsRUFBRSxzQkFBc0I7cUJBQ3ZDLENBQUMsQ0FBQyxDQUFDO2dCQUNOLENBQUMsQ0FBQyxDQUFDO2dCQUVILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM3QjtZQUdELE1BQU07U0FDUDtRQUVELEtBQUssUUFBUSxDQUFDLENBQUM7WUFDYixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXJDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFOztvQkFDdEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUVqRixJQUFJLEtBQUssRUFBRTt3QkFDVCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUEsK0JBQWMsRUFBQzs0QkFDM0IsSUFBSTs0QkFDSixHQUFHOzRCQUNILGNBQWM7NEJBQ2QsTUFBTTs0QkFDTixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07NEJBQ3BCLEVBQUU7NEJBQ0Ysa0JBQWtCOzRCQUNsQixTQUFTOzRCQUNULElBQUksRUFBRSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRzs0QkFDbEMsR0FBRzs0QkFDSCxXQUFXLEVBQUUsR0FBRzs0QkFDaEIsVUFBVSxFQUFFLElBQUEscUNBQWlCLEVBQUMsR0FBRyxFQUFFLE1BQUEsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsMENBQUcsQ0FBQyxDQUFDLENBQUM7NEJBQy9ELHFCQUFxQixFQUFFLElBQUEscUNBQWlCLEVBQUMsR0FBRyxFQUFFLE1BQUEscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQzs0QkFDckYsY0FBYyxFQUFFLHNCQUFzQjt5QkFDdkMsQ0FBQyxDQUFDLENBQUM7cUJBQ0w7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzdCO1lBR0QsTUFBTTtTQUNQO1FBRUQsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2xCLE1BQU0sSUFBQSwrQkFBYyxFQUFDO2dCQUNuQixJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsY0FBYztnQkFDZCxNQUFNO2dCQUNOLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsRUFBRTtnQkFDRixrQkFBa0I7Z0JBQ2xCLFNBQVM7Z0JBQ1QsSUFBSTtnQkFDSixHQUFHO2dCQUNILFdBQVc7Z0JBQ1gsVUFBVTtnQkFDVixxQkFBcUI7Z0JBQ3JCLGNBQWMsRUFBRSxzQkFBc0I7YUFDdkMsQ0FBQyxDQUFDO1lBRUgsTUFBTTtTQUNQO1FBRUQsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNWLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDakMsSUFBSSxhQUFhLEdBQUcsVUFBVSxDQUFDO1lBQy9CLElBQUksd0JBQXdCLEdBQUcscUJBQXFCLENBQUM7WUFFckQsSUFBSSxJQUFBLGtCQUFVLEVBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7b0JBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzlFLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7b0JBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzVFLElBQUksT0FBTyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUTtvQkFBRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUVsRyxjQUFjLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQTRCLENBQUM7Z0JBQ3BFLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNEIsQ0FBQztnQkFDbEUsd0JBQXdCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBNEIsQ0FBQzthQUN6RjtZQUVELE1BQU0sSUFBQSwrQkFBYyxFQUFDO2dCQUNuQixJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsY0FBYztnQkFDZCxNQUFNO2dCQUNOLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsRUFBRTtnQkFDRixrQkFBa0I7Z0JBQ2xCLFNBQVM7Z0JBQ1QsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsR0FBRztnQkFDSCxXQUFXLEVBQUUsY0FBYztnQkFDM0IsVUFBVSxFQUFFLGFBQWE7Z0JBQ3pCLHFCQUFxQixFQUFFLHdCQUF3QjtnQkFDL0MsY0FBYyxFQUFFLHNCQUFzQjthQUN2QyxDQUFDLENBQUM7WUFFSCxNQUFNO1NBQ1A7UUFFRCxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ1gsTUFBTSxJQUFBLCtCQUFjLEVBQUM7Z0JBQ25CLElBQUk7Z0JBQ0osR0FBRztnQkFDSCxjQUFjO2dCQUNkLE1BQU07Z0JBQ04sTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzFELEVBQUU7Z0JBQ0Ysa0JBQWtCO2dCQUNsQixTQUFTO2dCQUNULElBQUk7Z0JBQ0osR0FBRztnQkFDSCxXQUFXO2dCQUNYLFVBQVU7Z0JBQ1YscUJBQXFCO2dCQUNyQixjQUFjLEVBQUUsc0JBQXNCO2FBQ3ZDLENBQUMsQ0FBQztZQUVILE1BQU07U0FDUDtRQUVELE9BQU8sQ0FBQyxDQUFDO1lBQ1AsTUFBTTtTQUNQO0tBQ0Y7QUFDSCxDQUFDLENBQUM7QUEvVFcsUUFBQSxPQUFPLFdBK1RsQiJ9
@@ -22,9 +22,9 @@ function updateHandler(globalConfig) {
22
22
  });
23
23
  let message = req.t('general:updatedSuccessfully');
24
24
  if (draft)
25
- message = req.t('versions:draftSavedSuccessfully');
25
+ message = req.t('version:draftSavedSuccessfully');
26
26
  if (autosave)
27
- message = req.t('versions:autosavedSuccessfully');
27
+ message = req.t('version:autosavedSuccessfully');
28
28
  return res.status(http_status_1.default.OK).json({ message, result });
29
29
  }
30
30
  catch (error) {
@@ -33,4 +33,4 @@ function updateHandler(globalConfig) {
33
33
  };
34
34
  }
35
35
  exports.default = updateHandler;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvcmVxdWVzdEhhbmRsZXJzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDhEQUFxQztBQUlyQyxrRUFBMEM7QUFLMUMsU0FBd0IsYUFBYSxDQUFDLFlBQW1DO0lBQ3ZFLE9BQU8sS0FBSyxVQUFVLE9BQU8sQ0FBQyxHQUFtQixFQUFFLEdBQWEsRUFBRSxJQUFrQjtRQUNsRixJQUFJO1lBQ0YsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQztZQUM5QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDO1lBRS9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxnQkFBTSxFQUFDO2dCQUMxQixHQUFHO2dCQUNILFlBQVk7Z0JBQ1osSUFBSTtnQkFDSixLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsS0FBSztnQkFDTCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1lBRUgsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBRW5ELElBQUksS0FBSztnQkFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQzlELElBQUksUUFBUTtnQkFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBRWhFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzVEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUEzQkQsZ0NBMkJDIn0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvcmVxdWVzdEhhbmRsZXJzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDhEQUFxQztBQUlyQyxrRUFBMEM7QUFLMUMsU0FBd0IsYUFBYSxDQUFDLFlBQW1DO0lBQ3ZFLE9BQU8sS0FBSyxVQUFVLE9BQU8sQ0FBQyxHQUFtQixFQUFFLEdBQWEsRUFBRSxJQUFrQjtRQUNsRixJQUFJO1lBQ0YsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQztZQUM5QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUM7WUFDekMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDO1lBRS9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxnQkFBTSxFQUFDO2dCQUMxQixHQUFHO2dCQUNILFlBQVk7Z0JBQ1osSUFBSTtnQkFDSixLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsS0FBSztnQkFDTCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1lBRUgsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBRW5ELElBQUksS0FBSztnQkFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQzdELElBQUksUUFBUTtnQkFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1lBRS9ELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzVEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUEzQkQsZ0NBMkJDIn0=
@@ -271,6 +271,7 @@
271
271
  "saveDraft": "Save Draft",
272
272
  "selectLocales": "Select locales to display",
273
273
  "selectVersionToCompare": "Select a version to compare",
274
+ "showingVersionsFor": "Showing versions for:",
274
275
  "showLocales": "Show locales:",
275
276
  "status": "Status",
276
277
  "type": "Type",
@@ -280,6 +281,7 @@
280
281
  "versionCount_many": "{{count}} versions found",
281
282
  "versionCount_none": "No versions found",
282
283
  "versionCount_one": "{{count}} version found",
284
+ "versionCount_other": "{{count}} versions found",
283
285
  "versionCreatedOn": "{{version}} created on:",
284
286
  "versionID": "Version ID",
285
287
  "versions": "Versions",
@@ -562,6 +562,7 @@ declare const _default: {
562
562
  saveDraft: string;
563
563
  selectLocales: string;
564
564
  selectVersionToCompare: string;
565
+ showingVersionsFor: string;
565
566
  showLocales: string;
566
567
  status: string;
567
568
  type: string;
@@ -571,6 +572,7 @@ declare const _default: {
571
572
  versionCount_many: string;
572
573
  versionCount_none: string;
573
574
  versionCount_one: string;
575
+ versionCount_other: string;
574
576
  versionCreatedOn: string;
575
577
  versionID: string;
576
578
  versions: string;
@@ -1223,6 +1225,7 @@ declare const _default: {
1223
1225
  accountAlreadyActivated: string;
1224
1226
  autosaving: string;
1225
1227
  correctInvalidFields: string;
1228
+ deletingFile: string;
1226
1229
  deletingTitle: string;
1227
1230
  emailOrPasswordIncorrect: string;
1228
1231
  followingFieldsInvalid_many: string;
@@ -1433,6 +1436,7 @@ declare const _default: {
1433
1436
  saveDraft: string;
1434
1437
  selectLocales: string;
1435
1438
  selectVersionToCompare: string;
1439
+ showingVersionsFor: string;
1436
1440
  showLocales: string;
1437
1441
  status: string;
1438
1442
  type: string;
@@ -1442,6 +1446,7 @@ declare const _default: {
1442
1446
  versionCount_many: string;
1443
1447
  versionCount_none: string;
1444
1448
  versionCount_one: string;
1449
+ versionCount_other: string;
1445
1450
  versionCreatedOn: string;
1446
1451
  versionID: string;
1447
1452
  versions: string;
@@ -4,7 +4,7 @@
4
4
  "account": "Account",
5
5
  "accountOfCurrentUser": "Account dell'utente corrente",
6
6
  "alreadyActivated": "Già Attivato",
7
- "alreadyLoggedIn": "Già loggato",
7
+ "alreadyLoggedIn": "Sei già loggato",
8
8
  "apiKey": "Chiave API",
9
9
  "backToLogin": "Torna al login",
10
10
  "beginCreateFirstUser": "Per iniziare, crea il tuo primo utente.",
@@ -18,7 +18,7 @@
18
18
  "enableAPIKey": "Abilita la Chiave API",
19
19
  "failedToUnlock": "Lo sblocco è fallito",
20
20
  "forceUnlock": "Forza Sblocco",
21
- "forgotPassword": "Password dimenticata",
21
+ "forgotPassword": "Cambia Password",
22
22
  "forgotPasswordEmailInstructions": "Inserisci la tua mail qui sotto. Riceverai un messaggio email con le istruzioni su come cambiare la tua password.",
23
23
  "forgotPasswordQuestion": "Password dimenticata?",
24
24
  "generate": "Genera",
@@ -60,6 +60,7 @@
60
60
  "accountAlreadyActivated": "Questo account è già stato attivato.",
61
61
  "autosaving": "Si è verificato un problema durante il salvataggio automatico di questo documento.",
62
62
  "correctInvalidFields": "Per favore correggi i campi non validi.",
63
+ "deletingFile": "Si è verificato un errore durante l'eleminazione del file.",
63
64
  "deletingTitle": "Si è verificato un errore durante l'eliminazione di {{title}}. Per favore controlla la tua connessione e riprova.",
64
65
  "emailOrPasswordIncorrect": "L'email o la password fornita non è corretta.",
65
66
  "followingFieldsInvalid_many": "I seguenti campi non sono validi:",
@@ -127,7 +128,7 @@
127
128
  "automatic": "Automatico",
128
129
  "backToDashboard": "Torna alla Dashboard",
129
130
  "cancel": "Cancella",
130
- "changesNotSaved": "Le tue modifiche non sono state salvate. Se esci ora, perderai le modifiche.",
131
+ "changesNotSaved": "Le tue modifiche non sono state salvate. Se esci ora, verranno perse.",
131
132
  "collections": "Collezioni",
132
133
  "columnToSort": "Colonna da Ordinare",
133
134
  "columns": "Colonne",
@@ -139,19 +140,19 @@
139
140
  "create": "Crea",
140
141
  "createNew": "Crea Nuovo",
141
142
  "createNewLabel": "Crea nuovo {{label}}",
142
- "created": "Data Creazione",
143
+ "created": "Data di creazione",
143
144
  "createdAt": "Creato il",
144
- "creating": "Sto creando",
145
+ "creating": "Crea nuovo",
145
146
  "dark": "Scuro",
146
147
  "dashboard": "Dashboard",
147
148
  "delete": "Elimina",
148
149
  "deletedSuccessfully": "Eliminato con successo.",
149
- "deleting": "Eliminando...",
150
+ "deleting": "Sto eliminando...",
150
151
  "descending": "Decrescente",
151
152
  "duplicate": "Duplica",
152
153
  "duplicateWithoutSaving": "Duplica senza salvare le modifiche",
153
154
  "editLabel": "Modifica {{label}}",
154
- "editing": "Editando",
155
+ "editing": "Modifica",
155
156
  "email": "Email",
156
157
  "emailAddress": "Indirizzo Email",
157
158
  "enterAValue": "Inserisci un valore",
@@ -160,7 +161,7 @@
160
161
  "filters": "Filtri",
161
162
  "globals": "Globali",
162
163
  "language": "Lingua",
163
- "lastModified": "Ultima Modifica",
164
+ "lastModified": "Ultima modifica",
164
165
  "leaveAnyway": "Esci comunque",
165
166
  "leaveWithoutSaving": "Esci senza salvare",
166
167
  "light": "Chiaro",
@@ -171,24 +172,24 @@
171
172
  "newPassword": "Nuova Password",
172
173
  "noFiltersSet": "Nessun filtro impostato",
173
174
  "noLabel": "<No {{label}}>",
174
- "noResults": "Nessun {{label}} trovato. O non esiste ancora nessun {{label}} oppure nessuno corrisponde ai filtri che hai specificato sopra.",
175
+ "noResults": "Nessun {{label}} trovato. Non esiste ancora nessun {{label}} oppure nessuno corrisponde ai filtri che hai specificato sopra.",
175
176
  "noValue": "Nessun valore",
176
177
  "none": "Nessuno",
177
178
  "notFound": "Non Trovato",
178
179
  "nothingFound": "Non è stato trovato nulla",
179
180
  "of": "di",
180
- "or": "O",
181
+ "or": "Oppure",
181
182
  "order": "Ordine",
182
183
  "pageNotFound": "Pagina non trovata",
183
184
  "password": "Password",
184
- "payloadSettings": "Impostazioni Payload",
185
+ "payloadSettings": "Impostazioni di Payload",
185
186
  "perPage": "Per Pagina: {{limit}}",
186
187
  "remove": "Rimuovi",
187
188
  "row": "Riga",
188
189
  "rows": "Righe",
189
190
  "save": "Salva",
190
191
  "saving": "Salvo...",
191
- "searchBy": "Cercato da",
192
+ "searchBy": "Cerca per {{label}}",
192
193
  "selectValue": "Seleziona un valore",
193
194
  "sorryNotFound": "Siamo spiacenti, non c'è nulla che corrisponda alla tua richiesta.",
194
195
  "sort": "Ordina",
@@ -204,8 +205,8 @@
204
205
  "untitled": "Senza titolo",
205
206
  "updatedAt": "Aggiornato il",
206
207
  "updatedSuccessfully": "Aggiornato con successo.",
207
- "user": "utente",
208
- "users": "utenti",
208
+ "user": "Utente",
209
+ "users": "Utenti",
209
210
  "welcome": "Benvenuto"
210
211
  },
211
212
  "upload": {
@@ -263,13 +264,14 @@
263
264
  "publishChanges": "Pubblica modifiche",
264
265
  "published": "Pubblicato",
265
266
  "restoreThisVersion": "Ripristina questa versione",
266
- "restoredSuccessfully": "Restaurato successo.",
267
+ "restoredSuccessfully": "Ripristinato con successo.",
267
268
  "restoring": "Ripristino...",
268
269
  "revertToPublished": "Ritorna alla versione pubblicata",
269
270
  "reverting": "Ritorno...",
270
271
  "saveDraft": "Salva Bozza",
271
272
  "selectLocales": "Seleziona le lingue da visualizzare",
272
273
  "selectVersionToCompare": "Seleziona una versione da confrontare",
274
+ "showingVersionsFor": "Mostra le versioni per:",
273
275
  "showLocales": "Mostra localizzazioni:",
274
276
  "status": "Stato",
275
277
  "type": "Tipo",
@@ -279,6 +281,7 @@
279
281
  "versionCount_many": "{{count}} versioni trovate",
280
282
  "versionCount_none": "Nessuna versione trovata",
281
283
  "versionCount_one": "{{count}} versione trovata",
284
+ "versionCount_other": "{{count}} versioni trovate",
282
285
  "versionCreatedOn": "{{version}} creata il:",
283
286
  "versionID": "ID Versione",
284
287
  "versions": "Versioni",
@@ -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
@@ -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) |
@@ -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: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "engines": {