@payloadcms/plugin-nested-docs 1.0.0 → 1.0.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.
- package/README.md +14 -14
- package/dist/formatBreadcrumb.d.ts +4 -0
- package/dist/formatBreadcrumb.js +25 -0
- package/dist/formatBreadcrumb.js.map +1 -0
- package/dist/getParents.d.ts +4 -0
- package/dist/getParents.js +89 -0
- package/dist/getParents.js.map +1 -0
- package/dist/hooks/resaveChildren.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/populateBreadcrumbs.d.ts +4 -0
- package/dist/populateBreadcrumbs.js +83 -0
- package/dist/populateBreadcrumbs.js.map +1 -0
- package/dist/utilities/deepMerge.d.ts +2 -0
- package/dist/utilities/deepMerge.js +44 -0
- package/dist/utilities/deepMerge.js.map +1 -0
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Payload Nested
|
|
1
|
+
# Payload Nested Pages Plugin
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/payload-plugin-nested-pages)
|
|
4
4
|
|
|
5
5
|
A plugin for [Payload CMS](https://github.com/payloadcms/payload) to easily allow for documents to be nested inside one another.
|
|
6
6
|
|
|
@@ -11,9 +11,9 @@ Core features:
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
yarn add
|
|
14
|
+
yarn add payload-plugin-nested-pages
|
|
15
15
|
# OR
|
|
16
|
-
npm i
|
|
16
|
+
npm i payload-plugin-nested-pages
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Basic Usage
|
|
@@ -22,7 +22,7 @@ In the `plugins` array of your [Payload config](https://payloadcms.com/docs/conf
|
|
|
22
22
|
|
|
23
23
|
```js
|
|
24
24
|
import { buildConfig } from 'payload/config';
|
|
25
|
-
import
|
|
25
|
+
import nestedPages from 'payload-plugin-nestedPages';
|
|
26
26
|
|
|
27
27
|
const config = buildConfig({
|
|
28
28
|
collections: [
|
|
@@ -41,7 +41,7 @@ const config = buildConfig({
|
|
|
41
41
|
}
|
|
42
42
|
],
|
|
43
43
|
plugins: [
|
|
44
|
-
|
|
44
|
+
nestedPages({
|
|
45
45
|
collections: ['pages'],
|
|
46
46
|
generateLabel: (_, doc) => doc.title,
|
|
47
47
|
generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ''),
|
|
@@ -76,7 +76,7 @@ The `breadcrumbs` array stores the following fields:
|
|
|
76
76
|
|
|
77
77
|
#### `collections`
|
|
78
78
|
|
|
79
|
-
An array of collections slugs to enable nested
|
|
79
|
+
An array of collections slugs to enable nested pages.
|
|
80
80
|
|
|
81
81
|
#### `generateLabel`
|
|
82
82
|
|
|
@@ -88,7 +88,7 @@ You can also pass a function to dynamically set the `label` of your breadcrumb.
|
|
|
88
88
|
{
|
|
89
89
|
plugins: [
|
|
90
90
|
...
|
|
91
|
-
|
|
91
|
+
nestedPages({
|
|
92
92
|
...
|
|
93
93
|
generateLabel: (_, doc) => doc.title // NOTE: 'title' is a hypothetical field
|
|
94
94
|
})
|
|
@@ -107,7 +107,7 @@ A function that allows you to dynamically generate each breadcrumb `url`. Each `
|
|
|
107
107
|
```js
|
|
108
108
|
plugins: [
|
|
109
109
|
...
|
|
110
|
-
|
|
110
|
+
nestedPages({
|
|
111
111
|
...
|
|
112
112
|
generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ''), // NOTE: 'slug' is a hypothetical field
|
|
113
113
|
})
|
|
@@ -135,8 +135,8 @@ You can also extend the built-in `parent` and `breadcrumbs` fields on a page-by-
|
|
|
135
135
|
|
|
136
136
|
```js
|
|
137
137
|
import { CollectionConfig } from 'payload/types';
|
|
138
|
-
import createParentField from '
|
|
139
|
-
import createBreadcrumbsField from '
|
|
138
|
+
import createParentField from 'payload-plugin-nested-pages/fields/parent';
|
|
139
|
+
import createBreadcrumbsField from 'payload-plugin-nested-pages/fields/breadcrumbs';
|
|
140
140
|
|
|
141
141
|
const examplePageConfig: CollectionConfig = {
|
|
142
142
|
slug: 'pages',
|
|
@@ -174,12 +174,12 @@ const examplePageConfig: CollectionConfig = {
|
|
|
174
174
|
All types can be directly imported:
|
|
175
175
|
```js
|
|
176
176
|
import {
|
|
177
|
-
|
|
177
|
+
NestedPagesConfig,
|
|
178
178
|
GenerateURL,
|
|
179
179
|
GenerateLabel
|
|
180
|
-
} from '
|
|
180
|
+
} from 'payload-plugin-nested-pages/dist/types';
|
|
181
181
|
```
|
|
182
182
|
|
|
183
183
|
## Screenshots
|
|
184
184
|
|
|
185
|
-
<!--  -->
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var formatBreadcrumb = function (options, collection, docs) {
|
|
4
|
+
var _a;
|
|
5
|
+
var url = undefined;
|
|
6
|
+
var label;
|
|
7
|
+
var lastDoc = docs[docs.length - 1];
|
|
8
|
+
if (typeof (options === null || options === void 0 ? void 0 : options.generateURL) === 'function') {
|
|
9
|
+
url = options.generateURL(docs, lastDoc);
|
|
10
|
+
}
|
|
11
|
+
if (typeof (options === null || options === void 0 ? void 0 : options.generateLabel) === 'function') {
|
|
12
|
+
label = options.generateLabel(docs, lastDoc);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
var useAsTitle = ((_a = collection === null || collection === void 0 ? void 0 : collection.admin) === null || _a === void 0 ? void 0 : _a.useAsTitle) || 'id';
|
|
16
|
+
label = lastDoc[useAsTitle];
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
label: label,
|
|
20
|
+
url: url,
|
|
21
|
+
doc: lastDoc.id,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
exports.default = formatBreadcrumb;
|
|
25
|
+
//# sourceMappingURL=formatBreadcrumb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatBreadcrumb.js","sourceRoot":"","sources":["../src/formatBreadcrumb.ts"],"names":[],"mappings":";;AAGA,IAAM,gBAAgB,GAAG,UACvB,OAAgB,EAChB,UAA4B,EAC5B,IAA+B;;IAE/B,IAAI,GAAG,GAAuB,SAAS,CAAC;IACxC,IAAI,KAAa,CAAC;IAElB,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,IAAI,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,KAAK,UAAU,EAAE;QAC9C,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC1C;IAED,IAAI,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAA,KAAK,UAAU,EAAE;QAChD,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC9C;SAAM;QACL,IAAM,UAAU,GAAG,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,UAAU,KAAI,IAAI,CAAC;QACzD,KAAK,GAAG,OAAO,CAAC,UAAU,CAAW,CAAC;KACvC;IAED,OAAO;QACL,KAAK,OAAA;QACL,GAAG,KAAA;QACH,GAAG,EAAE,OAAO,CAAC,EAAY;KAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CollectionConfig } from 'payload/types';
|
|
2
|
+
import { Options } from './types';
|
|
3
|
+
declare const getParents: (req: any, options: Options, collection: CollectionConfig, doc: Record<string, unknown>, docs?: Record<string, unknown>[]) => Promise<Record<string, unknown>[]>;
|
|
4
|
+
export default getParents;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
39
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
40
|
+
if (ar || !(i in from)) {
|
|
41
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
42
|
+
ar[i] = from[i];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
var getParents = function (req, options, collection, doc, docs) {
|
|
49
|
+
if (docs === void 0) { docs = []; }
|
|
50
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
51
|
+
var parent, retrievedParent;
|
|
52
|
+
return __generator(this, function (_a) {
|
|
53
|
+
switch (_a.label) {
|
|
54
|
+
case 0:
|
|
55
|
+
parent = doc[(options === null || options === void 0 ? void 0 : options.parentFieldSlug) || 'parent'];
|
|
56
|
+
if (!parent) return [3 /*break*/, 3];
|
|
57
|
+
if (!(typeof parent === 'string')) return [3 /*break*/, 2];
|
|
58
|
+
return [4 /*yield*/, req.payload.findByID({
|
|
59
|
+
req: req,
|
|
60
|
+
id: parent,
|
|
61
|
+
collection: collection.slug,
|
|
62
|
+
depth: 0,
|
|
63
|
+
})];
|
|
64
|
+
case 1:
|
|
65
|
+
retrievedParent = _a.sent();
|
|
66
|
+
_a.label = 2;
|
|
67
|
+
case 2:
|
|
68
|
+
// If auto-populated
|
|
69
|
+
if (typeof parent === 'object') {
|
|
70
|
+
retrievedParent = parent;
|
|
71
|
+
}
|
|
72
|
+
if (retrievedParent) {
|
|
73
|
+
if (retrievedParent.parent) {
|
|
74
|
+
return [2 /*return*/, getParents(req, options, collection, retrievedParent, __spreadArray([
|
|
75
|
+
retrievedParent
|
|
76
|
+
], docs, true))];
|
|
77
|
+
}
|
|
78
|
+
return [2 /*return*/, __spreadArray([
|
|
79
|
+
retrievedParent
|
|
80
|
+
], docs, true)];
|
|
81
|
+
}
|
|
82
|
+
_a.label = 3;
|
|
83
|
+
case 3: return [2 /*return*/, docs];
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
exports.default = getParents;
|
|
89
|
+
//# sourceMappingURL=getParents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getParents.js","sourceRoot":"","sources":["../src/getParents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,UAAU,GAAG,UACjB,GAAQ,EACR,OAAgB,EAChB,UAA4B,EAC5B,GAA4B,EAC5B,IAAoC;IAApC,qBAAA,EAAA,SAAoC;;;;;;oBAE9B,MAAM,GAAG,GAAG,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,KAAI,QAAQ,CAAC,CAAC;yBAGrD,MAAM,EAAN,wBAAM;yBAEJ,CAAA,OAAO,MAAM,KAAK,QAAQ,CAAA,EAA1B,wBAA0B;oBACV,qBAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;4BAC3C,GAAG,KAAA;4BACH,EAAE,EAAE,MAAM;4BACV,UAAU,EAAE,UAAU,CAAC,IAAI;4BAC3B,KAAK,EAAE,CAAC;yBACT,CAAC,EAAA;;oBALF,eAAe,GAAG,SAKhB,CAAC;;;oBAGL,oBAAoB;oBACpB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;wBAC9B,eAAe,GAAG,MAAM,CAAC;qBAC1B;oBAED,IAAI,eAAe,EAAE;wBACnB,IAAI,eAAe,CAAC,MAAM,EAAE;4BAC1B,sBAAO,UAAU,CACf,GAAG,EACH,OAAO,EACP,UAAU,EACV,eAAe;oCAEb,eAAe;mCACZ,IAAI,QAEV,EAAC;yBACH;wBAED;gCACE,eAAe;+BACZ,IAAI,SACP;qBACH;;wBAGH,sBAAO,IAAI,EAAC;;;;CACb,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resaveChildren.js","sourceRoot":"","sources":["../../src/hooks/resaveChildren.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yFAAmE;AAGnE,IAAM,cAAc,GAAG,UAAC,OAAgB,EAAE,UAA4B,IAAgC,OAAA,UAAC,EAA8B;QAArB,OAAO,iBAAA,EAAI,GAAG,SAAA,EAAE,GAAG,SAAA;IACjI,IAAM,mBAAmB,GAAG;;;;wBACT,qBAAM,OAAO,CAAC,IAAI,CAAC;wBAClC,UAAU,EAAE,UAAU,CAAC,IAAI;wBAC3B,KAAK,EAAE;4BACL,MAAM,EAAE;gCACN,MAAM,EAAE,GAAG,CAAC,EAAE;6BACf;yBACF;wBACD,KAAK,EAAE,CAAC;qBACT,CAAC,EAAA;;oBARI,QAAQ,GAAG,SAQf;oBAEF,IAAI;wBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,
|
|
1
|
+
{"version":3,"file":"resaveChildren.js","sourceRoot":"","sources":["../../src/hooks/resaveChildren.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yFAAmE;AAGnE,IAAM,cAAc,GAAG,UAAC,OAAgB,EAAE,UAA4B,IAAgC,OAAA,UAAC,EAA8B;QAArB,OAAO,iBAAA,EAAI,GAAG,SAAA,EAAE,GAAG,SAAA;IACjI,IAAM,mBAAmB,GAAG;;;;wBACT,qBAAM,OAAO,CAAC,IAAI,CAAC;wBAClC,UAAU,EAAE,UAAU,CAAC,IAAI;wBAC3B,KAAK,EAAE;4BACL,MAAM,EAAE;gCACN,MAAM,EAAE,GAAG,CAAC,EAAE;6BACf;yBACF;wBACD,KAAK,EAAE,CAAC;qBACT,CAAC,EAAA;;oBARI,QAAQ,GAAG,SAQf;oBAEF,IAAI;wBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,KAAU;4BAC/B,OAAO,CAAC,MAAM,CAAC;gCACb,EAAE,EAAE,KAAK,CAAC,EAAE;gCACZ,UAAU,EAAE,UAAU,CAAC,IAAI;gCAC3B,IAAI,wBACC,KAAK,KACR,WAAW,EAAE,IAAA,6BAAmB,EAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,GAClE;gCACD,KAAK,EAAE,CAAC;6BACT,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;qBACJ;oBAAC,OAAO,GAAG,EAAE;wBACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACpB;;;;SACF,CAAC;IAEF,eAAe;IACf,mBAAmB,EAAE,CAAC;IAEtB,OAAO,SAAS,CAAC;AACnB,CAAC,EAjCqG,CAiCrG,CAAC;AAEF,kBAAe,cAAc,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Config } from 'payload/config';
|
|
2
2
|
import { Options } from './types';
|
|
3
|
-
declare const
|
|
4
|
-
export default
|
|
3
|
+
declare const breadcrumbs: (options: Options) => (config: Config) => Config;
|
|
4
|
+
export default breadcrumbs;
|
package/dist/index.js
CHANGED
|
@@ -64,7 +64,7 @@ var parent_1 = __importDefault(require("./fields/parent"));
|
|
|
64
64
|
var populateBreadcrumbs_1 = __importDefault(require("./utilities/populateBreadcrumbs"));
|
|
65
65
|
var resaveChildren_1 = __importDefault(require("./hooks/resaveChildren"));
|
|
66
66
|
var resaveSelfAfterCreate_1 = __importDefault(require("./hooks/resaveSelfAfterCreate"));
|
|
67
|
-
var
|
|
67
|
+
var breadcrumbs = function (options) { return function (config) { return (__assign(__assign({}, config), { collections: (config.collections || []).map(function (collection) {
|
|
68
68
|
var _a, _b;
|
|
69
69
|
if (options.collections.indexOf(collection.slug) > -1) {
|
|
70
70
|
var fields = __spreadArray([], (collection === null || collection === void 0 ? void 0 : collection.fields) || [], true);
|
|
@@ -88,5 +88,5 @@ var nestedDocs = function (options) { return function (config) { return (__assig
|
|
|
88
88
|
}
|
|
89
89
|
return collection;
|
|
90
90
|
}) })); }; };
|
|
91
|
-
exports.default =
|
|
91
|
+
exports.default = breadcrumbs;
|
|
92
92
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qEAA0D;AAC1D,2DAAgD;AAChD,wFAAkE;AAClE,0EAAoD;AACpD,wFAAkE;AAElE,IAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qEAA0D;AAC1D,2DAAgD;AAChD,wFAAkE;AAClE,0EAAoD;AACpD,wFAAkE;AAElE,IAAM,WAAW,GAAG,UAAC,OAAgB,IAAK,OAAA,UAAC,MAAc,IAAa,OAAA,uBACjE,MAAM,KACT,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,UAAU;;QACrD,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACrD,IAAM,MAAM,qBAAO,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,KAAI,EAAE,OAAC,CAAC;YAE7C,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,IAAA,gBAAiB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;aACjD;YAED,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,IAAA,qBAAsB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;aACtD;YAED,6BACK,UAAU,KACb,KAAK,wBACA,UAAU,CAAC,KAAK,IAAI,EAAE,KACzB,YAAY;wBACV,UAAO,EAA0B;gCAAxB,GAAG,SAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAAA;;gCAAO,sBAAA,IAAA,6BAAmB,EAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,EAAA;;yBAAA;uBACnG,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,YAAY,KAAI,EAAE,SAE1C,WAAW;wBACT,IAAA,wBAAc,EAAC,OAAO,EAAE,UAAU,CAAC;wBACnC,IAAA,+BAAqB,EAAC,UAAU,CAAC;uBAC9B,CAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,WAAW,KAAI,EAAE,YAG3C,MAAM,QAAA,IACN;SACH;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,IACF,EAlCoE,CAkCpE,EAlCwC,CAkCxC,CAAC;AAEH,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
50
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
51
|
+
if (ar || !(i in from)) {
|
|
52
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
53
|
+
ar[i] = from[i];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
57
|
+
};
|
|
58
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
59
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
60
|
+
};
|
|
61
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
|
+
var getParents_1 = __importDefault(require("./getParents"));
|
|
63
|
+
var formatBreadcrumb_1 = __importDefault(require("./formatBreadcrumb"));
|
|
64
|
+
var populateBreadcrumbs = function (req, options, collection, data, originalDoc) { return __awaiter(void 0, void 0, void 0, function () {
|
|
65
|
+
var newData, breadcrumbDocs, _a, breadcrumbs;
|
|
66
|
+
var _b;
|
|
67
|
+
return __generator(this, function (_c) {
|
|
68
|
+
switch (_c.label) {
|
|
69
|
+
case 0:
|
|
70
|
+
newData = data;
|
|
71
|
+
_a = [[]];
|
|
72
|
+
return [4 /*yield*/, (0, getParents_1.default)(req, options, collection, __assign(__assign({}, originalDoc), data))];
|
|
73
|
+
case 1:
|
|
74
|
+
breadcrumbDocs = __spreadArray.apply(void 0, [__spreadArray.apply(void 0, _a.concat([_c.sent(), true])), [
|
|
75
|
+
__assign(__assign(__assign({}, originalDoc), data), { id: originalDoc === null || originalDoc === void 0 ? void 0 : originalDoc.id }),
|
|
76
|
+
], false]);
|
|
77
|
+
breadcrumbs = breadcrumbDocs.map(function (_, i) { return (0, formatBreadcrumb_1.default)(options, collection, breadcrumbDocs.slice(0, i + 1)); });
|
|
78
|
+
return [2 /*return*/, __assign(__assign({}, newData), (_b = {}, _b[(options === null || options === void 0 ? void 0 : options.breadcrumbsFieldSlug) || 'breadcrumbs'] = breadcrumbs, _b))];
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}); };
|
|
82
|
+
exports.default = populateBreadcrumbs;
|
|
83
|
+
//# sourceMappingURL=populateBreadcrumbs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populateBreadcrumbs.js","sourceRoot":"","sources":["../src/populateBreadcrumbs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,4DAAsC;AACtC,wEAAkD;AAElD,IAAM,mBAAmB,GAAG,UAAO,GAAQ,EAAE,OAAgB,EAAE,UAA4B,EAAE,IAAS,EAAE,WAAiB;;;;;;gBACjH,OAAO,GAAG,IAAI,CAAC;;gBAEhB,qBAAM,IAAA,oBAAU,EAAC,GAAG,EAAE,OAAO,EAAE,UAAU,wBACvC,WAAW,GACX,IAAI,EACP,EAAA;;gBAJE,cAAc,uEACf,SAGD;uDAEG,WAAW,GACX,IAAI,KACP,EAAE,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE;8BAEtB;gBAEK,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,IAAA,0BAAgB,EAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAArE,CAAqE,CAAC,CAAC;gBAExH,4CACK,OAAO,gBACT,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,KAAI,aAAa,IAAG,WAAW,QAC7D;;;KACH,CAAC;AAEF,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.isObject = void 0;
|
|
15
|
+
function isObject(item) {
|
|
16
|
+
return Boolean(item && typeof item === 'object' && !Array.isArray(item));
|
|
17
|
+
}
|
|
18
|
+
exports.isObject = isObject;
|
|
19
|
+
function deepMerge(target, source) {
|
|
20
|
+
var output = __assign({}, target);
|
|
21
|
+
if (isObject(target) && isObject(source)) {
|
|
22
|
+
Object.keys(source).forEach(function (key) {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
if (isObject(source[key])) {
|
|
26
|
+
if (!(key in target)) {
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
Object.assign(output, (_a = {}, _a[key] = source[key], _a));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
output[key] = deepMerge(target[key], source[key]);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// @ts-ignore
|
|
37
|
+
Object.assign(output, (_b = {}, _b[key] = source[key], _b));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return output;
|
|
42
|
+
}
|
|
43
|
+
exports.default = deepMerge;
|
|
44
|
+
//# sourceMappingURL=deepMerge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../src/utilities/deepMerge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,SAAgB,QAAQ,CAAC,IAAa;IACpC,OAAO,OAAO,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3E,CAAC;AAFD,4BAEC;AAED,SAAwB,SAAS,CAAO,MAAS,EAAE,MAAS;IAC1D,IAAM,MAAM,gBAAQ,MAAM,CAAE,CAAC;IAC7B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;;YAC9B,aAAa;YACb,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;gBACzB,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;oBACpB,aAAa;oBACb,MAAM,CAAC,MAAM,CAAC,MAAM,YAAI,GAAC,GAAG,IAAG,MAAM,CAAC,GAAG,CAAC,MAAG,CAAC;iBAC/C;qBAAM;oBACL,aAAa;oBACb,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;iBACnD;aACF;iBAAM;gBACL,aAAa;gBACb,MAAM,CAAC,MAAM,CAAC,MAAM,YAAI,GAAC,GAAG,IAAG,MAAM,CAAC,GAAG,CAAC,MAAG,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AArBD,4BAqBC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-nested-docs",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Nested
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Nested pages plugin for Payload CMS",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
"nested pages",
|
|
19
19
|
"parent pages"
|
|
20
20
|
],
|
|
21
|
-
"author": "dev@
|
|
21
|
+
"author": "dev@trbl.design",
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"payload": "^0.
|
|
25
|
-
"react": "^17.0.
|
|
24
|
+
"payload": "^0.18.5",
|
|
25
|
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"payload": "^0.
|
|
28
|
+
"payload": "^0.18.5",
|
|
29
29
|
"react": "^17.0.2",
|
|
30
30
|
"typescript": "^4.5.5"
|
|
31
31
|
},
|