payload 1.2.4 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -6
- package/dist/admin/components/Routes.js +4 -2
- package/dist/admin/components/elements/DatePicker/DatePicker.js +1 -1
- package/dist/admin/components/elements/SortComplex/index.js +4 -1
- package/dist/admin/components/elements/Status/index.js +7 -7
- package/dist/admin/components/forms/field-types/Relationship/GetFilterOptions/index.js +1 -1
- package/dist/admin/components/forms/field-types/Relationship/findOptionsByValue.js +16 -12
- package/dist/admin/components/forms/field-types/Relationship/index.js +6 -5
- package/dist/admin/components/forms/field-types/RichText/RichText.js +9 -5
- package/dist/admin/components/forms/field-types/getFilterOptionsQuery.d.ts +3 -1
- package/dist/admin/components/forms/field-types/getFilterOptionsQuery.js +1 -1
- package/dist/admin/components/views/collections/Edit/Upload/index.js +13 -3
- package/dist/admin/components/views/collections/Edit/Upload/index.scss +7 -0
- package/dist/collections/config/sanitize.js +1 -3
- package/dist/collections/init.js +2 -2
- package/dist/collections/requestHandlers/findVersions.js +4 -3
- package/dist/errors/FileUploadError.js +2 -2
- package/dist/fields/config/types.d.ts +1 -1
- package/dist/globals/operations/update.js +1 -1
- package/dist/globals/requestHandlers/findOne.js +4 -2
- package/dist/globals/requestHandlers/findVersionByID.js +4 -2
- package/dist/globals/requestHandlers/findVersions.js +4 -3
- package/dist/graphql/schema/buildObjectType.js +3 -3
- package/dist/init.js +3 -1
- package/dist/mongoose/buildSchema.js +2 -3
- package/dist/preferences/init.js +1 -3
- package/dist/translations/de.json +11 -1
- package/dist/translations/en.json +2 -0
- package/dist/translations/es.json +1 -0
- package/dist/translations/fr.json +1 -0
- package/dist/translations/index.d.ts +976 -32
- package/dist/translations/index.js +7 -1
- package/dist/translations/it.json +1 -0
- package/dist/translations/ja.json +1 -0
- package/dist/translations/my.json +1 -0
- package/dist/translations/nb.json +303 -0
- package/dist/translations/nl.json +1 -0
- package/dist/translations/pl.json +1 -0
- package/dist/translations/pt.json +1 -0
- package/dist/translations/ru.json +13 -0
- package/dist/translations/sv.json +1 -0
- package/dist/translations/th.json +304 -0
- package/dist/translations/tr.json +302 -0
- package/dist/translations/vi.json +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,19 +1,72 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# [1.3.0](https://github.com/payloadcms/payload/compare/v1.2.5...v1.3.0) (2022-12-09)
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
### Bug Fixes
|
|
7
7
|
|
|
8
|
-
*
|
|
8
|
+
* [#1547](https://github.com/payloadcms/payload/issues/1547), global afterChange hook not falling back to original global if nothing returned ([a72123d](https://github.com/payloadcms/payload/commit/a72123dd471e1032d832e409560bda9cf3058095))
|
|
9
|
+
* [#1632](https://github.com/payloadcms/payload/issues/1632) graphQL non-nullable relationship and upload fields ([#1633](https://github.com/payloadcms/payload/issues/1633)) ([eff3f18](https://github.com/payloadcms/payload/commit/eff3f18e7c184e5f82325e960b4cbe84b6377d82))
|
|
10
|
+
* change edit key to prevent richtext editor from crashing ([#1616](https://github.com/payloadcms/payload/issues/1616)) ([471d214](https://github.com/payloadcms/payload/commit/471d21410ac9ac852a8581a019dd6759f56cd8b2))
|
|
11
|
+
* filterOptions function argument relationTo is an array ([#1627](https://github.com/payloadcms/payload/issues/1627)) ([11b1c0e](https://github.com/payloadcms/payload/commit/11b1c0efc66acd32de2efcaf65bad504d2e2eb45))
|
|
12
|
+
* resets slate state when initialValue changes, fixes [#1600](https://github.com/payloadcms/payload/issues/1600), [#1546](https://github.com/payloadcms/payload/issues/1546) ([9558a22](https://github.com/payloadcms/payload/commit/9558a22ce6cdf9bc13215931b43bde0a7dd4bf50))
|
|
13
|
+
* sanitizes global find query params ([512bc1e](https://github.com/payloadcms/payload/commit/512bc1ebe636841f1dee6ce49c1d97db1810c4bd))
|
|
14
|
+
* Select with hasMany and localized ([#1636](https://github.com/payloadcms/payload/issues/1636)) ([756edb8](https://github.com/payloadcms/payload/commit/756edb858a1ca66c32e674770ddcdceae77bf349))
|
|
15
|
+
* translation key in revert published modal ([#1628](https://github.com/payloadcms/payload/issues/1628)) ([b6c597a](https://github.com/payloadcms/payload/commit/b6c597ab5c4fcd879496db5373155df48c657e28))
|
|
16
|
+
* unflattens fields in filterOptions callback ([acff46b](https://github.com/payloadcms/payload/commit/acff46b4a5b57f01fa0b14c1e9fd8330b4d787db))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
* feat!: no longer sanitize collection slugs to kebab case (#1607) ([ba2f2d6](https://github.com/payloadcms/payload/commit/ba2f2d6e9b66568b11632bacdd92cfdc8ddae300)), closes [#1607](https://github.com/payloadcms/payload/issues/1607)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* add Norwegian bokmål (nb) translation ([#1614](https://github.com/payloadcms/payload/issues/1614)) ([759f001](https://github.com/payloadcms/payload/commit/759f00168137ff1a0fd862796a5971a9ba0264cd))
|
|
25
|
+
* add Thai translation ([#1630](https://github.com/payloadcms/payload/issues/1630)) ([7777d11](https://github.com/payloadcms/payload/commit/7777d11b9ed458a6c64efc8c9572edb898f6ceed))
|
|
26
|
+
* upload support pasting file ([eb69b82](https://github.com/payloadcms/payload/commit/eb69b82adfb4e94c1ef36b219310c55afc7a1d4e))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### BREAKING CHANGES
|
|
30
|
+
|
|
31
|
+
* collection slugs are no longer automatically sanitized to be kebab case. This will only be an issue if your current slugs were in camel case. The upgrade path will be to change those slugs to the kebab case version that the slug was automatically being sanitized to on the backend.
|
|
32
|
+
|
|
33
|
+
If you only use kebab case or single word slugs: no action needed.
|
|
34
|
+
|
|
35
|
+
If you have existing slugs with camel case and populated data: you'll need to convert these to the kebab case version to match the previously sanitized value.
|
|
36
|
+
|
|
37
|
+
ie. myOldSlug is your slug, you should convert it to my-old-slug.
|
|
38
|
+
|
|
39
|
+
Any future slugs after updating will be used as-is.
|
|
9
40
|
|
|
41
|
+
## [1.2.5](https://github.com/payloadcms/payload/compare/v1.2.4...v1.2.5) (2022-12-06)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Bug Fixes
|
|
45
|
+
|
|
46
|
+
* exits findOptionsByValue when matchedOption is found ([881c067](https://github.com/payloadcms/payload/commit/881c067c40d7477fa2a56d9c700feab49410e1c1))
|
|
47
|
+
* mismatch language condition when rendering unpublish ([3ddd0ea](https://github.com/payloadcms/payload/commit/3ddd0ea3efbd4d673a943dbf63363c548ae5562c))
|
|
48
|
+
* safely coerces limit and depth to number or undefined ([dd04d78](https://github.com/payloadcms/payload/commit/dd04d7842efe9228e98271a878fd68a814042f41))
|
|
49
|
+
* uses pathOrName to pass to internal Relationship field components ([8874e87](https://github.com/payloadcms/payload/commit/8874e871d4a48d5d3fccb8233464437d8ea61ad4))
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Features
|
|
53
|
+
|
|
54
|
+
* add Turkish translations ([#1596](https://github.com/payloadcms/payload/issues/1596)) ([c8a6831](https://github.com/payloadcms/payload/commit/c8a683100f1ec663a2fdfd5c1ab82300d2618995))
|
|
55
|
+
|
|
56
|
+
## [1.2.4](https://github.com/payloadcms/payload/compare/v1.2.3...v1.2.4) (2022-12-03)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
### Bug Fixes
|
|
60
|
+
|
|
61
|
+
* missing translation richText link modal ([#1573](https://github.com/payloadcms/payload/issues/1573)) ([2dcada1](https://github.com/payloadcms/payload/commit/2dcada199c21bee97eca88aa6bc8ba1bc2b45e7c))
|
|
62
|
+
|
|
10
63
|
## [1.2.3](https://github.com/payloadcms/payload/compare/v1.2.2...v1.2.3) (2022-12-02)
|
|
11
64
|
|
|
12
65
|
|
|
13
66
|
### Bug Fixes
|
|
14
67
|
|
|
15
|
-
* reset password regression ([#1574](https://github.com/payloadcms/payload/issues/1574)) ([396ea0b](https://github.com/payloadcms/payload/commit/396ea0bd53dc9e1ae1e348d6fe1eb3c36232b35b))
|
|
16
|
-
|
|
68
|
+
* reset password regression ([#1574](https://github.com/payloadcms/payload/issues/1574)) ([396ea0b](https://github.com/payloadcms/payload/commit/396ea0bd53dc9e1ae1e348d6fe1eb3c36232b35b))
|
|
69
|
+
|
|
17
70
|
## [1.2.2](https://github.com/payloadcms/payload/compare/v1.2.1...v1.2.2) (2022-12-02)
|
|
18
71
|
|
|
19
72
|
|
|
@@ -50,8 +103,8 @@
|
|
|
50
103
|
* decouples limit from pagination, allows for no limit query ([f7ce0c6](https://github.com/payloadcms/payload/commit/f7ce0c615d76035ee48ef32047613ab1415deb44))
|
|
51
104
|
* improve typescript comments ([#1467](https://github.com/payloadcms/payload/issues/1467)) ([5bd8657](https://github.com/payloadcms/payload/commit/5bd86571cada5791003bbfa84183f5b300649533))
|
|
52
105
|
* log email transport error messages ([#1469](https://github.com/payloadcms/payload/issues/1469)) ([a90a1a9](https://github.com/payloadcms/payload/commit/a90a1a9e19bb54eb6d88129b5e2cb6483e22db61))
|
|
53
|
-
* removes theme provider and updates background for code fields ([1a6c9a3](https://github.com/payloadcms/payload/commit/1a6c9a3e181930a6f45027fecc5313e8d7228c71))
|
|
54
|
-
|
|
106
|
+
* removes theme provider and updates background for code fields ([1a6c9a3](https://github.com/payloadcms/payload/commit/1a6c9a3e181930a6f45027fecc5313e8d7228c71))
|
|
107
|
+
|
|
55
108
|
## [1.2.1](https://github.com/payloadcms/payload/compare/v1.2.0...v1.2.1) (2022-11-22)
|
|
56
109
|
|
|
57
110
|
|
|
@@ -11,6 +11,7 @@ import StayLoggedIn from './modals/StayLoggedIn';
|
|
|
11
11
|
import Versions from './views/Versions';
|
|
12
12
|
import Version from './views/Version';
|
|
13
13
|
import { DocumentInfoProvider } from './utilities/DocumentInfo';
|
|
14
|
+
import { useLocale } from './utilities/Locale';
|
|
14
15
|
const Dashboard = lazy(() => import('./views/Dashboard'));
|
|
15
16
|
const ForgotPassword = lazy(() => import('./views/ForgotPassword'));
|
|
16
17
|
const Login = lazy(() => import('./views/Login'));
|
|
@@ -27,6 +28,7 @@ const Routes = () => {
|
|
|
27
28
|
const [initialized, setInitialized] = useState(null);
|
|
28
29
|
const { user, permissions, refreshCookie } = useAuth();
|
|
29
30
|
const { i18n } = useTranslation();
|
|
31
|
+
const locale = useLocale();
|
|
30
32
|
const canAccessAdmin = permissions === null || permissions === void 0 ? void 0 : permissions.canAccessAdmin;
|
|
31
33
|
const config = useConfig();
|
|
32
34
|
const { admin: { user: userSlug, logoutRoute, inactivityRoute: logoutInactivityRoute, components: { routes: customRoutes, } = {}, }, routes, collections, globals, } = config;
|
|
@@ -114,7 +116,7 @@ const Routes = () => {
|
|
|
114
116
|
var _a, _b, _c;
|
|
115
117
|
const { match: { params: { id } } } = routeProps;
|
|
116
118
|
if ((_c = (_b = (_a = permissions === null || permissions === void 0 ? void 0 : permissions.collections) === null || _a === void 0 ? void 0 : _a[collection.slug]) === null || _b === void 0 ? void 0 : _b.read) === null || _c === void 0 ? void 0 : _c.permission) {
|
|
117
|
-
return (React.createElement(DocumentInfoProvider, { key: `${collection.slug}-edit-${id}`, collection: collection, id: id },
|
|
119
|
+
return (React.createElement(DocumentInfoProvider, { key: `${collection.slug}-edit-${id}-${locale}`, collection: collection, id: id },
|
|
118
120
|
React.createElement(Edit, { isEditing: true, ...routeProps, collection: collection })));
|
|
119
121
|
}
|
|
120
122
|
return React.createElement(Unauthorized, null);
|
|
@@ -144,7 +146,7 @@ const Routes = () => {
|
|
|
144
146
|
React.createElement(Route, { key: `${global.slug}`, path: `${match.url}/globals/${global.slug}`, exact: true, render: (routeProps) => {
|
|
145
147
|
var _a, _b, _c;
|
|
146
148
|
if ((_c = (_b = (_a = permissions === null || permissions === void 0 ? void 0 : permissions.globals) === null || _a === void 0 ? void 0 : _a[global.slug]) === null || _b === void 0 ? void 0 : _b.read) === null || _c === void 0 ? void 0 : _c.permission) {
|
|
147
|
-
return (React.createElement(DocumentInfoProvider, { global: global },
|
|
149
|
+
return (React.createElement(DocumentInfoProvider, { global: global, key: `${global.slug}-${locale}` },
|
|
148
150
|
React.createElement(EditGlobal, { ...routeProps, global: global })));
|
|
149
151
|
}
|
|
150
152
|
return React.createElement(Unauthorized, null);
|
|
@@ -46,7 +46,7 @@ const DateTime = (props) => {
|
|
|
46
46
|
React.createElement(XIcon, null))),
|
|
47
47
|
React.createElement(CalendarIcon, null)),
|
|
48
48
|
React.createElement("div", { className: `${baseClass}__input-wrapper` },
|
|
49
|
-
React.createElement(DatePicker, { ...dateTimePickerProps, popperModifiers: {
|
|
49
|
+
React.createElement(DatePicker, { ...dateTimePickerProps, onChange: (val) => onChange(val), popperModifiers: {
|
|
50
50
|
preventOverflow: {
|
|
51
51
|
enabled: true,
|
|
52
52
|
},
|
|
@@ -9,12 +9,12 @@ import { fieldAffectsData } from '../../../../fields/config/types';
|
|
|
9
9
|
import { getTranslation } from '../../../../utilities/getTranslation';
|
|
10
10
|
import './index.scss';
|
|
11
11
|
const baseClass = 'sort-complex';
|
|
12
|
-
const sortOptions = [{ label: 'Ascending', value: '' }, { label: 'Descending', value: '-' }];
|
|
13
12
|
const SortComplex = (props) => {
|
|
14
13
|
const { collection, modifySearchQuery = true, handleChange, } = props;
|
|
15
14
|
const history = useHistory();
|
|
16
15
|
const params = useSearchParams();
|
|
17
16
|
const { t, i18n } = useTranslation('general');
|
|
17
|
+
const [sortOptions, setSortOptions] = useState();
|
|
18
18
|
const [sortFields] = useState(() => collection.fields.reduce((fields, field) => {
|
|
19
19
|
if (fieldAffectsData(field) && sortableFieldTypes.indexOf(field.type) > -1) {
|
|
20
20
|
return [
|
|
@@ -41,6 +41,9 @@ const SortComplex = (props) => {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
}, [history, params, sortField, sortOrder, modifySearchQuery, handleChange]);
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
setSortOptions([{ label: t('ascending'), value: '' }, { label: t('descending'), value: '-' }]);
|
|
46
|
+
}, [i18n, t]);
|
|
44
47
|
return (React.createElement("div", { className: baseClass },
|
|
45
48
|
React.createElement(React.Fragment, null,
|
|
46
49
|
React.createElement("div", { className: `${baseClass}__wrap` },
|
|
@@ -24,13 +24,13 @@ const Status = () => {
|
|
|
24
24
|
const revertModalSlug = `confirm-revert-${id}`;
|
|
25
25
|
let statusToRender;
|
|
26
26
|
if (((_a = unpublishedVersions === null || unpublishedVersions === void 0 ? void 0 : unpublishedVersions.docs) === null || _a === void 0 ? void 0 : _a.length) > 0 && publishedDoc) {
|
|
27
|
-
statusToRender =
|
|
27
|
+
statusToRender = 'changed';
|
|
28
28
|
}
|
|
29
29
|
else if (!publishedDoc) {
|
|
30
|
-
statusToRender =
|
|
30
|
+
statusToRender = 'draft';
|
|
31
31
|
}
|
|
32
32
|
else if (publishedDoc && ((_b = unpublishedVersions === null || unpublishedVersions === void 0 ? void 0 : unpublishedVersions.docs) === null || _b === void 0 ? void 0 : _b.length) <= 1) {
|
|
33
|
-
statusToRender =
|
|
33
|
+
statusToRender = 'published';
|
|
34
34
|
}
|
|
35
35
|
const performAction = useCallback(async (action) => {
|
|
36
36
|
let url;
|
|
@@ -90,8 +90,8 @@ const Status = () => {
|
|
|
90
90
|
if (statusToRender) {
|
|
91
91
|
return (React.createElement("div", { className: baseClass },
|
|
92
92
|
React.createElement("div", { className: `${baseClass}__value-wrap` },
|
|
93
|
-
React.createElement("span", { className: `${baseClass}__value` }, statusToRender),
|
|
94
|
-
statusToRender === '
|
|
93
|
+
React.createElement("span", { className: `${baseClass}__value` }, t(statusToRender)),
|
|
94
|
+
statusToRender === 'published' && (React.createElement(React.Fragment, null,
|
|
95
95
|
"\u00A0\u2014\u00A0",
|
|
96
96
|
React.createElement(Button, { onClick: () => toggleModal(unPublishModalSlug), className: `${baseClass}__action`, buttonStyle: "none" }, t('unpublish')),
|
|
97
97
|
React.createElement(Modal, { slug: unPublishModalSlug, className: `${baseClass}__modal` },
|
|
@@ -100,14 +100,14 @@ const Status = () => {
|
|
|
100
100
|
React.createElement("p", null, t('aboutToUnpublish')),
|
|
101
101
|
React.createElement(Button, { buttonStyle: "secondary", type: "button", onClick: processing ? undefined : () => toggleModal(unPublishModalSlug) }, t('general:cancel')),
|
|
102
102
|
React.createElement(Button, { onClick: processing ? undefined : () => performAction('unpublish') }, t(processing ? 'unpublishing' : 'general:confirm')))))),
|
|
103
|
-
statusToRender === '
|
|
103
|
+
statusToRender === 'changed' && (React.createElement(React.Fragment, null,
|
|
104
104
|
"\u00A0\u2014\u00A0",
|
|
105
105
|
React.createElement(Button, { onClick: () => toggleModal(revertModalSlug), className: `${baseClass}__action`, buttonStyle: "none" }, t('revertToPublished')),
|
|
106
106
|
React.createElement(Modal, { slug: revertModalSlug, className: `${baseClass}__modal` },
|
|
107
107
|
React.createElement(MinimalTemplate, { className: `${baseClass}__modal-template` },
|
|
108
108
|
React.createElement("h1", null, t('confirmRevertToSaved')),
|
|
109
109
|
React.createElement("p", null, t('aboutToRevertToPublished')),
|
|
110
|
-
React.createElement(Button, { buttonStyle: "secondary", type: "button", onClick: processing ? undefined : () => toggleModal(revertModalSlug) }, t('general:
|
|
110
|
+
React.createElement(Button, { buttonStyle: "secondary", type: "button", onClick: processing ? undefined : () => toggleModal(revertModalSlug) }, t('general:cancel')),
|
|
111
111
|
React.createElement(Button, { onClick: processing ? undefined : () => performAction('revert') }, t(processing ? 'reverting' : 'general:confirm')))))))));
|
|
112
112
|
}
|
|
113
113
|
return null;
|
|
@@ -11,7 +11,7 @@ export const GetFilterOptions = ({ filterOptions, filterOptionsResult, setFilter
|
|
|
11
11
|
const { id } = useDocumentInfo();
|
|
12
12
|
const { user } = useAuth();
|
|
13
13
|
useEffect(() => {
|
|
14
|
-
const data = reduceFieldsToValues(fields);
|
|
14
|
+
const data = reduceFieldsToValues(fields, true);
|
|
15
15
|
const siblingData = getSiblingData(fields, path);
|
|
16
16
|
const newFilterOptionsResult = getFilterOptionsQuery(filterOptions, {
|
|
17
17
|
id,
|
|
@@ -4,24 +4,28 @@ export const findOptionsByValue = ({ value, options }) => {
|
|
|
4
4
|
return value.map((val) => {
|
|
5
5
|
let matchedOption;
|
|
6
6
|
options.forEach((optGroup) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
if (!matchedOption) {
|
|
8
|
+
matchedOption = optGroup.options.find((option) => {
|
|
9
|
+
if (typeof val === 'object') {
|
|
10
|
+
return option.value === val.value && option.relationTo === val.relationTo;
|
|
11
|
+
}
|
|
12
|
+
return val === option.value;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
13
15
|
});
|
|
14
16
|
return matchedOption;
|
|
15
17
|
});
|
|
16
18
|
}
|
|
17
19
|
let matchedOption;
|
|
18
20
|
options.forEach((optGroup) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
if (!matchedOption) {
|
|
22
|
+
matchedOption = optGroup.options.find((option) => {
|
|
23
|
+
if (typeof value === 'object') {
|
|
24
|
+
return option.value === value.value && option.relationTo === value.relationTo;
|
|
25
|
+
}
|
|
26
|
+
return value === option.value;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
25
29
|
});
|
|
26
30
|
return matchedOption;
|
|
27
31
|
}
|
|
@@ -38,11 +38,12 @@ const Relationship = (props) => {
|
|
|
38
38
|
const [hasLoadedFirstPage, setHasLoadedFirstPage] = useState(false);
|
|
39
39
|
const [enableWordBoundarySearch, setEnableWordBoundarySearch] = useState(false);
|
|
40
40
|
const firstRun = useRef(true);
|
|
41
|
+
const pathOrName = path || name;
|
|
41
42
|
const memoizedValidate = useCallback((value, validationOptions) => {
|
|
42
43
|
return validate(value, { ...validationOptions, required });
|
|
43
44
|
}, [validate, required]);
|
|
44
45
|
const { value, showError, errorMessage, setValue, initialValue, } = useField({
|
|
45
|
-
path:
|
|
46
|
+
path: pathOrName,
|
|
46
47
|
validate: memoizedValidate,
|
|
47
48
|
condition,
|
|
48
49
|
});
|
|
@@ -232,13 +233,13 @@ const Relationship = (props) => {
|
|
|
232
233
|
const valueToRender = findOptionsByValue({ value, options });
|
|
233
234
|
if (!Array.isArray(valueToRender) && (valueToRender === null || valueToRender === void 0 ? void 0 : valueToRender.value) === 'null')
|
|
234
235
|
valueToRender.value = null;
|
|
235
|
-
return (React.createElement("div", { id: `field-${(
|
|
236
|
+
return (React.createElement("div", { id: `field-${(pathOrName).replace(/\./gi, '__')}`, className: classes, style: {
|
|
236
237
|
...style,
|
|
237
238
|
width,
|
|
238
239
|
} },
|
|
239
240
|
React.createElement(Error, { showError: showError, message: errorMessage }),
|
|
240
|
-
React.createElement(Label, { htmlFor:
|
|
241
|
-
React.createElement(GetFilterOptions, { ...{ filterOptionsResult, setFilterOptionsResult, filterOptions, path, relationTo } }),
|
|
241
|
+
React.createElement(Label, { htmlFor: pathOrName, label: label, required: required }),
|
|
242
|
+
React.createElement(GetFilterOptions, { ...{ filterOptionsResult, setFilterOptionsResult, filterOptions, path: pathOrName, relationTo } }),
|
|
242
243
|
!errorLoading && (React.createElement("div", { className: `${baseClass}__wrap` },
|
|
243
244
|
React.createElement(ReactSelect, { isDisabled: readOnly, onInputChange: (newSearch) => handleInputChange(newSearch, value), onChange: !readOnly ? (selected) => {
|
|
244
245
|
if (selected === null) {
|
|
@@ -287,7 +288,7 @@ const Relationship = (props) => {
|
|
|
287
288
|
const r = wordBoundariesRegex(searchFilter || '');
|
|
288
289
|
return r.test(item.label);
|
|
289
290
|
} : undefined }),
|
|
290
|
-
!readOnly && (React.createElement(AddNewRelation, { ...{ path, hasMany, relationTo, value, setValue, dispatchOptions } })))),
|
|
291
|
+
!readOnly && (React.createElement(AddNewRelation, { ...{ path: pathOrName, hasMany, relationTo, value, setValue, dispatchOptions } })))),
|
|
291
292
|
errorLoading && (React.createElement("div", { className: `${baseClass}__error-loading` }, errorLoading)),
|
|
292
293
|
React.createElement(FieldDescription, { value: value, description: description })));
|
|
293
294
|
};
|
|
@@ -34,7 +34,6 @@ const RichText = (props) => {
|
|
|
34
34
|
const [loaded, setLoaded] = useState(false);
|
|
35
35
|
const [enabledElements, setEnabledElements] = useState({});
|
|
36
36
|
const [enabledLeaves, setEnabledLeaves] = useState({});
|
|
37
|
-
const [initialValueKey, setInitialValueKey] = useState('');
|
|
38
37
|
const editorRef = useRef(null);
|
|
39
38
|
const toolbarRef = useRef(null);
|
|
40
39
|
const renderElement = useCallback(({ attributes, children, element }) => {
|
|
@@ -92,9 +91,6 @@ const RichText = (props) => {
|
|
|
92
91
|
setLoaded(true);
|
|
93
92
|
}
|
|
94
93
|
}, [loaded, elements, leaves]);
|
|
95
|
-
useEffect(() => {
|
|
96
|
-
setInitialValueKey(JSON.stringify(initialValue || ''));
|
|
97
|
-
}, [initialValue]);
|
|
98
94
|
useEffect(() => {
|
|
99
95
|
function setClickableState(clickState) {
|
|
100
96
|
var _a, _b;
|
|
@@ -118,6 +114,14 @@ const RichText = (props) => {
|
|
|
118
114
|
}
|
|
119
115
|
};
|
|
120
116
|
}, [loaded, readOnly]);
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
if (Array.isArray(initialValue) && initialValue.length > 0) {
|
|
119
|
+
const point = { path: [0, 0], offset: 0 };
|
|
120
|
+
editor.selection = { anchor: point, focus: point };
|
|
121
|
+
editor.history = { redos: [], undos: [] };
|
|
122
|
+
editor.children = initialValue;
|
|
123
|
+
}
|
|
124
|
+
}, [initialValue, editor]);
|
|
121
125
|
if (!loaded) {
|
|
122
126
|
return null;
|
|
123
127
|
}
|
|
@@ -133,7 +137,7 @@ const RichText = (props) => {
|
|
|
133
137
|
}
|
|
134
138
|
if (!valueToRender)
|
|
135
139
|
valueToRender = defaultValue;
|
|
136
|
-
return (React.createElement("div", {
|
|
140
|
+
return (React.createElement("div", { className: classes, style: {
|
|
137
141
|
...style,
|
|
138
142
|
width,
|
|
139
143
|
} },
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Where } from '../../../../types';
|
|
2
2
|
import { FilterOptions, FilterOptionsProps } from '../../../../fields/config/types';
|
|
3
|
-
export declare const getFilterOptionsQuery: (filterOptions: FilterOptions, options: FilterOptionsProps
|
|
3
|
+
export declare const getFilterOptionsQuery: (filterOptions: FilterOptions, options: Omit<FilterOptionsProps, 'relationTo'> & {
|
|
4
|
+
relationTo: string | string[];
|
|
5
|
+
}) => {
|
|
4
6
|
[collection: string]: Where;
|
|
5
7
|
};
|
|
@@ -4,7 +4,7 @@ export const getFilterOptionsQuery = (filterOptions, options) => {
|
|
|
4
4
|
const query = {};
|
|
5
5
|
if (typeof filterOptions !== 'undefined') {
|
|
6
6
|
relations.forEach((relation) => {
|
|
7
|
-
query[relation] = typeof filterOptions === 'function' ? filterOptions(options) : filterOptions;
|
|
7
|
+
query[relation] = typeof filterOptions === 'function' ? filterOptions({ ...options, relationTo: relation }) : filterOptions;
|
|
8
8
|
});
|
|
9
9
|
}
|
|
10
10
|
return query;
|
|
@@ -112,9 +112,19 @@ const Upload = (props) => {
|
|
|
112
112
|
setValue(null);
|
|
113
113
|
} }))),
|
|
114
114
|
!value && (React.createElement(React.Fragment, null,
|
|
115
|
-
React.createElement("div", { className: `${baseClass}__drop-zone`, ref: dropRef
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
React.createElement("div", { className: `${baseClass}__drop-zone`, ref: dropRef, onPaste: (e) => {
|
|
116
|
+
var _a;
|
|
117
|
+
if ((_a = e === null || e === void 0 ? void 0 : e.clipboardData) === null || _a === void 0 ? void 0 : _a.files.length) {
|
|
118
|
+
const fileObject = e.clipboardData.files[0];
|
|
119
|
+
if (fileObject)
|
|
120
|
+
setValue(fileObject);
|
|
121
|
+
}
|
|
122
|
+
} },
|
|
123
|
+
React.createElement(Button, { size: "small", buttonStyle: "secondary", onClick: () => setSelectingFile(true), className: `${baseClass}__file-button` }, t('selectFile')),
|
|
124
|
+
React.createElement("p", { className: `${baseClass}__drag-label` },
|
|
125
|
+
t('general:or'),
|
|
126
|
+
' ',
|
|
127
|
+
t('dragAndDrop'))))),
|
|
118
128
|
React.createElement("input", { ref: inputRef, type: "file", accept: (_b = (_a = collection === null || collection === void 0 ? void 0 : collection.upload) === null || _a === void 0 ? void 0 : _a.mimeTypes) === null || _b === void 0 ? void 0 : _b.join(','), onChange: handleInputChange })))));
|
|
119
129
|
};
|
|
120
130
|
export default Upload;
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
bottom: calc(100% - #{base(.5)});
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
&__drag-label {
|
|
14
|
+
margin: 0;
|
|
15
|
+
text-transform: lowercase;
|
|
16
|
+
}
|
|
17
|
+
|
|
13
18
|
&__upload {
|
|
14
19
|
position: relative;
|
|
15
20
|
|
|
@@ -64,6 +69,8 @@
|
|
|
64
69
|
|
|
65
70
|
.btn {
|
|
66
71
|
margin: 0 auto;
|
|
72
|
+
width: 100%;
|
|
73
|
+
max-width: 200px;
|
|
67
74
|
}
|
|
68
75
|
|
|
69
76
|
.file-field__drag-label {
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const deepmerge_1 = __importDefault(require("deepmerge"));
|
|
7
7
|
const is_plain_object_1 = require("is-plain-object");
|
|
8
8
|
const sanitize_1 = __importDefault(require("../../fields/config/sanitize"));
|
|
9
|
-
const toKebabCase_1 = __importDefault(require("../../utilities/toKebabCase"));
|
|
10
9
|
const auth_1 = __importDefault(require("../../auth/baseFields/auth"));
|
|
11
10
|
const apiKey_1 = __importDefault(require("../../auth/baseFields/apiKey"));
|
|
12
11
|
const verification_1 = __importDefault(require("../../auth/baseFields/verification"));
|
|
@@ -25,7 +24,6 @@ const sanitizeCollection = (config, collection) => {
|
|
|
25
24
|
const sanitized = (0, deepmerge_1.default)(defaults_1.defaults, collection, {
|
|
26
25
|
isMergeableObject: is_plain_object_1.isPlainObject,
|
|
27
26
|
});
|
|
28
|
-
sanitized.slug = (0, toKebabCase_1.default)(sanitized.slug);
|
|
29
27
|
sanitized.labels = sanitized.labels || (0, formatLabels_1.formatLabels)(sanitized.slug);
|
|
30
28
|
if (sanitized.versions) {
|
|
31
29
|
if (sanitized.versions === true)
|
|
@@ -86,4 +84,4 @@ const sanitizeCollection = (config, collection) => {
|
|
|
86
84
|
return sanitized;
|
|
87
85
|
};
|
|
88
86
|
exports.default = sanitizeCollection;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuaXRpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29sbGVjdGlvbnMvY29uZmlnL3Nhbml0aXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQThCO0FBQzlCLHFEQUFnRDtBQUVoRCw0RUFBMEQ7QUFDMUQsc0VBQXdEO0FBQ3hELDBFQUE0RDtBQUM1RCxzRkFBd0U7QUFDeEUsb0ZBQXNFO0FBQ3RFLGdGQUE4RDtBQUM5RCwrREFBNEQ7QUFDNUQseUNBQW9EO0FBRXBELHNEQUFvRTtBQUNwRSwyRUFBMEQ7QUFDMUQseUZBQWlFO0FBQ2pFLG1GQUEyRDtBQUUzRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBYyxFQUFFLFVBQTRCLEVBQTZCLEVBQUU7SUFDckcsb0NBQW9DO0lBQ3BDLGlDQUFpQztJQUNqQyxvQ0FBb0M7SUFFcEMsTUFBTSxTQUFTLEdBQXFCLElBQUEsbUJBQUssRUFBQyxtQkFBUSxFQUFFLFVBQVUsRUFBRTtRQUM5RCxpQkFBaUIsRUFBRSwrQkFBYTtLQUNqQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBQSwyQkFBWSxFQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRSxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUU7UUFDdEIsSUFBSSxTQUFTLENBQUMsUUFBUSxLQUFLLElBQUk7WUFBRSxTQUFTLENBQUMsUUFBUSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRXhFLElBQUksU0FBUyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7WUFDbEMsTUFBTSxJQUFJLDRCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUM3QixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtn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
|
package/dist/collections/init.js
CHANGED
|
@@ -38,7 +38,7 @@ function registerCollections(ctx) {
|
|
|
38
38
|
}
|
|
39
39
|
const updates = { $inc: { loginAttempts: 1 } };
|
|
40
40
|
// Lock the account if at max attempts and not already locked
|
|
41
|
-
if (this.loginAttempts + 1 >= maxLoginAttempts
|
|
41
|
+
if (this.loginAttempts + 1 >= maxLoginAttempts) {
|
|
42
42
|
updates.$set = { lockUntil: Date.now() + lockTime };
|
|
43
43
|
}
|
|
44
44
|
return this.updateOne(updates, cb);
|
|
@@ -93,4 +93,4 @@ function registerCollections(ctx) {
|
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
exports.default = registerCollections;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2xsZWN0aW9ucy9pbml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0RBQXlFO0FBQ3pFLGdGQUE0QztBQUM1QyxzREFBOEI7QUFDOUIsd0RBQWdDO0FBQ2hDLHNGQUE0RDtBQUM1RCw2RUFBaUY7QUFDakYsd0VBQXNEO0FBQ3RELHVFQUF1RDtBQUN2RCxnRUFBa0Q7QUFDbEQsMEVBQWtEO0FBQ2xELHNFQUF3RDtBQUd4RCwyRUFBd0U7QUFDeEUsK0VBQXVEO0FBQ3ZELHNFQUE4QztBQUU5QyxTQUF3QixtQkFBbUIsQ0FBQyxHQUFZO0lBQ3RELEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQXFDLEVBQUUsRUFBRTtRQUM1RixNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztRQUV2QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFxQixFQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RSxJQUFJLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVELE1BQU0sQ0FBQyxNQUFNLENBQUMsaUNBQXFCLEVBQUU7Z0JBQ25DLGFBQWEsRUFBRSxPQUFPO2FBQ3ZCLENBQUMsQ0FBQztZQUdILE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBRXZELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFO2dCQU94QixzQ0FBc0M7Z0JBQ3RDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsVUFBaUQsRUFBRTtvQkFDbkYsbUNBQW1DO29CQUNuQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsR0FB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
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const http_status_1 = __importDefault(require("http-status"));
|
|
7
|
+
const isNumber_1 = require("../../utilities/isNumber");
|
|
7
8
|
const findVersions_1 = __importDefault(require("../operations/findVersions"));
|
|
8
9
|
async function findVersionsHandler(req, res, next) {
|
|
9
10
|
try {
|
|
@@ -19,9 +20,9 @@ async function findVersionsHandler(req, res, next) {
|
|
|
19
20
|
collection: req.collection,
|
|
20
21
|
where: req.query.where,
|
|
21
22
|
page,
|
|
22
|
-
limit:
|
|
23
|
+
limit: (0, isNumber_1.isNumber)(req.query.limit) ? Number(req.query.limit) : undefined,
|
|
23
24
|
sort: req.query.sort,
|
|
24
|
-
depth:
|
|
25
|
+
depth: (0, isNumber_1.isNumber)(req.query.depth) ? Number(req.query.depth) : undefined,
|
|
25
26
|
payload: req.payload,
|
|
26
27
|
};
|
|
27
28
|
const result = await (0, findVersions_1.default)(options);
|
|
@@ -32,4 +33,4 @@ async function findVersionsHandler(req, res, next) {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
exports.default = findVersionsHandler;
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZFZlcnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbGxlY3Rpb25zL3JlcXVlc3RIYW5kbGVycy9maW5kVmVyc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSw4REFBcUM7QUFLckMsdURBQW9EO0FBQ3BELDhFQUFzRDtBQUV2QyxLQUFLLFVBQVUsbUJBQW1CLENBQTZCLEdBQW1CLEVBQUUsR0FBYSxFQUFFLElBQWtCO0lBQ2xJLElBQUk7UUFDRixJQUFJLElBQUksQ0FBQztRQUVULElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDdEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRWhELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLEdBQUcsVUFBVSxDQUFDO2FBQ25CO1NBQ0Y7UUFFRCxNQUFNLE9BQU8sR0FBRztZQUNkLEdBQUc7WUFDSCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDMUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBYztZQUMvQixJQUFJO1lBQ0osS0FBSyxFQUFFLElBQUEsbUJBQVEsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN0RSxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFjO1lBQzlCLEtBQUssRUFBRSxJQUFBLG1CQUFRLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdEUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1NBQ3JCLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsc0JBQVksRUFBQyxPQUFPLENBQUMsQ0FBQztRQUUzQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMscUJBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDL0M7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQztBQTdCRCxzQ0E2QkMifQ==
|
|
@@ -7,8 +7,8 @@ const http_status_1 = __importDefault(require("http-status"));
|
|
|
7
7
|
const APIError_1 = __importDefault(require("./APIError"));
|
|
8
8
|
class FileUploadError extends APIError_1.default {
|
|
9
9
|
constructor(t) {
|
|
10
|
-
super(t ? t('problemUploadingFile') : 'There was a problem while uploading the file.', http_status_1.default.BAD_REQUEST);
|
|
10
|
+
super(t ? t('error:problemUploadingFile') : 'There was a problem while uploading the file.', http_status_1.default.BAD_REQUEST);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
exports.default = FileUploadError;
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZVVwbG9hZEVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9GaWxlVXBsb2FkRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4REFBcUM7QUFFckMsMERBQWtDO0FBRWxDLE1BQU0sZUFBZ0IsU0FBUSxrQkFBUTtJQUNwQyxZQUFZLENBQWE7UUFDdkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxDQUFDLCtDQUErQyxFQUFFLHFCQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkgsQ0FBQztDQUNGO0FBRUQsa0JBQWUsZUFBZSxDQUFDIn0=
|
|
@@ -44,7 +44,7 @@ export declare type FilterOptionsProps<T = any> = {
|
|
|
44
44
|
user: Partial<User>;
|
|
45
45
|
data: T;
|
|
46
46
|
siblingData: unknown;
|
|
47
|
-
relationTo: string
|
|
47
|
+
relationTo: string;
|
|
48
48
|
};
|
|
49
49
|
export declare type FilterOptions<T = any> = Where | ((options: FilterOptionsProps<T>) => Where);
|
|
50
50
|
declare type Admin = {
|
|
@@ -5,15 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const http_status_1 = __importDefault(require("http-status"));
|
|
7
7
|
const findOne_1 = __importDefault(require("../operations/findOne"));
|
|
8
|
+
const isNumber_1 = require("../../utilities/isNumber");
|
|
8
9
|
function findOneHandler(globalConfig) {
|
|
9
10
|
return async function handler(req, res, next) {
|
|
11
|
+
var _a;
|
|
10
12
|
try {
|
|
11
13
|
const { slug } = globalConfig;
|
|
12
14
|
const result = await (0, findOne_1.default)({
|
|
13
15
|
req,
|
|
14
16
|
globalConfig,
|
|
15
17
|
slug,
|
|
16
|
-
depth: Number(req.query.depth),
|
|
18
|
+
depth: (0, isNumber_1.isNumber)((_a = req.query) === null || _a === void 0 ? void 0 : _a.depth) ? Number(req.query.depth) : undefined,
|
|
17
19
|
draft: req.query.draft === 'true',
|
|
18
20
|
});
|
|
19
21
|
return res.status(http_status_1.default.OK).json(result);
|
|
@@ -24,4 +26,4 @@ function findOneHandler(globalConfig) {
|
|
|
24
26
|
};
|
|
25
27
|
}
|
|
26
28
|
exports.default = findOneHandler;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZE9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL3JlcXVlc3RIYW5kbGVycy9maW5kT25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsOERBQXFDO0FBSXJDLG9FQUE0QztBQUM1Qyx1REFBb0Q7QUFLcEQsU0FBd0IsY0FBYyxDQUFDLFlBQW1DO0lBQ3hFLE9BQU8sS0FBSyxVQUFVLE9BQU8sQ0FBQyxHQUFtQixFQUFFLEdBQWEsRUFBRSxJQUFrQjs7UUFDbEYsSUFBSTtZQUNGLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUM7WUFFOUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLGlCQUFPLEVBQUM7Z0JBQzNCLEdBQUc7Z0JBQ0gsWUFBWTtnQkFDWixJQUFJO2dCQUNKLEtBQUssRUFBRSxJQUFBLG1CQUFRLEVBQUMsTUFBQSxHQUFHLENBQUMsS0FBSywwQ0FBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3ZFLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxNQUFNO2FBQ2xDLENBQUMsQ0FBQztZQUVILE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEI7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBbEJELGlDQWtCQyJ9
|
|
@@ -3,14 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const isNumber_1 = require("../../utilities/isNumber");
|
|
6
7
|
const findVersionByID_1 = __importDefault(require("../operations/findVersionByID"));
|
|
7
8
|
function findVersionByIDHandler(globalConfig) {
|
|
8
9
|
return async function handler(req, res, next) {
|
|
10
|
+
var _a;
|
|
9
11
|
const options = {
|
|
10
12
|
req,
|
|
11
13
|
globalConfig,
|
|
12
14
|
id: req.params.id,
|
|
13
|
-
depth: Number(req.query.depth),
|
|
15
|
+
depth: (0, isNumber_1.isNumber)((_a = req.query) === null || _a === void 0 ? void 0 : _a.depth) ? Number(req.query.depth) : undefined,
|
|
14
16
|
};
|
|
15
17
|
try {
|
|
16
18
|
const doc = await (0, findVersionByID_1.default)(options);
|
|
@@ -22,4 +24,4 @@ function findVersionByIDHandler(globalConfig) {
|
|
|
22
24
|
};
|
|
23
25
|
}
|
|
24
26
|
exports.default = findVersionByIDHandler;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZFZlcnNpb25CeUlELmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvcmVxdWVzdEhhbmRsZXJzL2ZpbmRWZXJzaW9uQnlJRC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLHVEQUFvRDtBQUVwRCxvRkFBNEQ7QUFFNUQsU0FBd0Isc0JBQXNCLENBQUMsWUFBbUM7SUFDaEYsT0FBTyxLQUFLLFVBQVUsT0FBTyxDQUFDLEdBQW1CLEVBQUUsR0FBYSxFQUFFLElBQWtCOztRQUNsRixNQUFNLE9BQU8sR0FBRztZQUNkLEdBQUc7WUFDSCxZQUFZO1lBQ1osRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQixLQUFLLEVBQUUsSUFBQSxtQkFBUSxFQUFDLE1BQUEsR0FBRyxDQUFDLEtBQUssMENBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3hFLENBQUM7UUFFRixJQUFJO1lBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFBLHlCQUFlLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3RCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFoQkQseUNBZ0JDIn0=
|