@nascentdigital/funnel-editor-contentful 5.0.1 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EditorApp.js +11 -9
- package/dist/EditorPageRouter.d.ts +1 -0
- package/dist/EditorPageRouter.js +40 -0
- package/dist/EntryEditor.js +30 -29
- package/dist/EntrySidebar.js +1 -1
- package/dist/asset/index.d.ts +1 -0
- package/dist/{core/api → asset}/index.js +1 -3
- package/dist/{core → asset}/repository/AssetRepository.js +3 -3
- package/dist/asset/repository/index.d.ts +1 -0
- package/dist/asset/repository/index.js +17 -0
- package/dist/collection/controller/{LocalCollectionController.d.ts → ContentfulCollectionController.d.ts} +17 -11
- package/dist/collection/controller/ContentfulCollectionController.js +278 -0
- package/dist/collection/controller/ContentfulCollectionControllerContainer.d.ts +5 -0
- package/dist/collection/controller/ContentfulCollectionControllerContainer.js +28 -0
- package/dist/collection/controller/index.d.ts +3 -4
- package/dist/collection/controller/index.js +3 -4
- package/dist/collection/controller/useContentfulCollectionController.d.ts +2 -0
- package/dist/collection/controller/useContentfulCollectionController.js +8 -0
- package/dist/{core → collection}/domain/Collection.d.ts +11 -2
- package/dist/{core → collection}/domain/Collection.js +75 -0
- package/dist/{core → collection}/domain/index.d.ts +0 -1
- package/dist/{core → collection}/domain/index.js +0 -1
- package/dist/collection/index.d.ts +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/repository/CollectionRepository.d.ts +49 -0
- package/dist/collection/repository/CollectionRepository.js +210 -0
- package/dist/collection/repository/index.d.ts +1 -0
- package/dist/collection/repository/index.js +17 -0
- package/dist/collection/screens/CollectionEditor.js +23 -6
- package/dist/core/client/ContentfulClientContainer.d.ts +8 -0
- package/dist/core/client/ContentfulClientContainer.js +43 -0
- package/dist/core/client/ContentfulClientContext.d.ts +8 -0
- package/dist/core/client/ContentfulClientContext.js +8 -0
- package/dist/core/client/index.d.ts +3 -0
- package/dist/core/client/index.js +19 -0
- package/dist/core/client/useContentfulClient.d.ts +4 -0
- package/dist/core/client/useContentfulClient.js +24 -0
- package/dist/core/contentful/ContentfulAsset.d.ts +3 -3
- package/dist/core/contentful/ContentfulAsset.js +5 -4
- package/dist/core/contentful/ContentfulCollection.d.ts +1 -1
- package/dist/core/contentful/ContentfulRefs.js +9 -9
- package/dist/core/index.d.ts +1 -2
- package/dist/core/index.js +1 -2
- package/dist/core/repository/CollectionSerializer.d.ts +1 -1
- package/dist/core/repository/CollectionSerializer.js +1 -1
- package/dist/core/repository/LocalCollectionRepository.d.ts +2 -2
- package/dist/core/repository/LocalPageRepository.d.ts +1 -1
- package/dist/core/repository/PageSerializer.d.ts +1 -1
- package/dist/core/repository/PageSerializer.js +2 -1
- package/dist/core/repository/RemoteCollectionRepository.d.ts +2 -2
- package/dist/core/repository/index.d.ts +0 -1
- package/dist/core/repository/index.js +0 -1
- package/dist/explore/components/Header.d.ts +26 -0
- package/dist/explore/components/Header.js +31 -0
- package/dist/explore/components/index.d.ts +1 -0
- package/dist/explore/components/index.js +17 -0
- package/dist/explore/index.d.ts +1 -0
- package/dist/explore/index.js +17 -0
- package/dist/explore/screens/Dashboard.d.ts +1 -0
- package/dist/explore/screens/Dashboard.js +22 -0
- package/dist/explore/screens/PageExplorer.d.ts +1 -0
- package/dist/explore/screens/PageExplorer.js +9 -0
- package/dist/explore/screens/SiteExplorer.d.ts +1 -0
- package/dist/explore/screens/SiteExplorer.js +24 -0
- package/dist/explore/screens/index.d.ts +3 -0
- package/dist/explore/screens/index.js +19 -0
- package/dist/page/controller/{LocalPageController.d.ts → ContentfulPageController.d.ts} +15 -9
- package/dist/page/controller/ContentfulPageController.js +277 -0
- package/dist/page/controller/ContentfulPageControllerContainer.d.ts +5 -0
- package/dist/page/controller/ContentfulPageControllerContainer.js +28 -0
- package/dist/page/controller/index.d.ts +3 -3
- package/dist/page/controller/index.js +3 -3
- package/dist/page/controller/useContentfulPageController.d.ts +2 -0
- package/dist/page/controller/useContentfulPageController.js +8 -0
- package/dist/{core → page}/domain/Page.d.ts +22 -11
- package/dist/{core → page}/domain/Page.js +138 -0
- package/dist/page/domain/index.d.ts +1 -0
- package/dist/page/domain/index.js +17 -0
- package/dist/page/index.d.ts +2 -0
- package/dist/page/index.js +2 -0
- package/dist/page/repository/PageRepository.d.ts +45 -0
- package/dist/page/repository/PageRepository.js +224 -0
- package/dist/page/repository/index.d.ts +1 -0
- package/dist/page/repository/index.js +17 -0
- package/dist/page/screens/PageEditor.js +23 -7
- package/package.json +8 -4
- package/dist/collection/controller/LocalCollectionController.js +0 -200
- package/dist/collection/controller/LocalCollectionControllerContainer.d.ts +0 -8
- package/dist/collection/controller/LocalCollectionControllerContainer.js +0 -36
- package/dist/collection/controller/LocalCollectionControllerContext.d.ts +0 -7
- package/dist/collection/controller/LocalCollectionControllerContext.js +0 -6
- package/dist/collection/controller/useLocalCollectionController.d.ts +0 -2
- package/dist/collection/controller/useLocalCollectionController.js +0 -10
- package/dist/core/api/EditorApiClient.d.ts +0 -7
- package/dist/core/api/EditorApiClient.js +0 -29
- package/dist/core/api/EditorApiContainer.d.ts +0 -5
- package/dist/core/api/EditorApiContainer.js +0 -16
- package/dist/core/api/EditorApiContext.d.ts +0 -7
- package/dist/core/api/EditorApiContext.js +0 -6
- package/dist/core/api/index.d.ts +0 -3
- package/dist/core/api/useEditorApi.d.ts +0 -2
- package/dist/core/api/useEditorApi.js +0 -12
- package/dist/page/controller/LocalPageController.js +0 -190
- package/dist/page/controller/LocalPageControllerContainer.d.ts +0 -8
- package/dist/page/controller/LocalPageControllerContainer.js +0 -36
- package/dist/page/controller/LocalPageControllerContext.d.ts +0 -7
- package/dist/page/controller/LocalPageControllerContext.js +0 -6
- package/dist/page/controller/useLocalPageController.d.ts +0 -2
- package/dist/page/controller/useLocalPageController.js +0 -10
- /package/dist/{core → asset}/repository/AssetRepository.d.ts +0 -0
|
@@ -8,14 +8,14 @@ var ContentfulAsset;
|
|
|
8
8
|
ContentfulAsset.contentTypeId = 'asset';
|
|
9
9
|
// helpers
|
|
10
10
|
async function upload(args, sdk) {
|
|
11
|
-
var _a, _b, _c;
|
|
12
11
|
// setup
|
|
13
|
-
|
|
12
|
+
var _a, _b, _c;
|
|
14
13
|
// upload file
|
|
15
14
|
const uploadResult = await sdk.cma.upload.create({}, {
|
|
16
15
|
file: await args.file.arrayBuffer()
|
|
17
16
|
});
|
|
18
17
|
// create contentful asset
|
|
18
|
+
const locale = sdk.locales.default;
|
|
19
19
|
const contentfulAsset = await sdk.cma.asset.create({}, {
|
|
20
20
|
fields: {
|
|
21
21
|
title: { [locale]: args.name },
|
|
@@ -45,7 +45,7 @@ var ContentfulAsset;
|
|
|
45
45
|
brand: { [locale]: (_c = args.brand) !== null && _c !== void 0 ? _c : null },
|
|
46
46
|
type: { [locale]: args.type },
|
|
47
47
|
scope: { [locale]: args.scope },
|
|
48
|
-
tags: { [locale]:
|
|
48
|
+
tags: { [locale]: args.tags },
|
|
49
49
|
url: { [locale]: 'https:' + processedAsset.fields.file[locale].url },
|
|
50
50
|
size: { [locale]: args.size },
|
|
51
51
|
metadata: { [locale]: args.metadata },
|
|
@@ -64,6 +64,7 @@ var ContentfulAsset;
|
|
|
64
64
|
ContentfulAsset.upload = upload;
|
|
65
65
|
function serialize(entry, locale) {
|
|
66
66
|
var _a, _b;
|
|
67
|
+
console.debug('[ContentfulAsset] serializing asset', entry);
|
|
67
68
|
// extract fields
|
|
68
69
|
const { name, description, type, brand, metadata, scope, tags, url, size } = entry.fields;
|
|
69
70
|
// create asset
|
|
@@ -78,7 +79,7 @@ var ContentfulAsset;
|
|
|
78
79
|
brand: (_a = brand === null || brand === void 0 ? void 0 : brand[locale]) !== null && _a !== void 0 ? _a : undefined,
|
|
79
80
|
metadata: metadata[locale],
|
|
80
81
|
scope: scope[locale],
|
|
81
|
-
tags:
|
|
82
|
+
tags: (_b = tags === null || tags === void 0 ? void 0 : tags[locale]) !== null && _b !== void 0 ? _b : [],
|
|
82
83
|
url: url[locale],
|
|
83
84
|
size: size[locale]
|
|
84
85
|
}
|
|
@@ -11,11 +11,11 @@ export type ContentfulCollection = Contentful.Base & {
|
|
|
11
11
|
version: number;
|
|
12
12
|
tags?: string;
|
|
13
13
|
fields: object;
|
|
14
|
-
references?: Contentful.Link[];
|
|
15
14
|
pageRefIds?: string;
|
|
16
15
|
state: string;
|
|
17
16
|
errors: boolean;
|
|
18
17
|
publishedOn?: number;
|
|
18
|
+
references?: Contentful.Link[];
|
|
19
19
|
};
|
|
20
20
|
export declare namespace ContentfulCollection {
|
|
21
21
|
const contentTypeId: "collection";
|
|
@@ -81,7 +81,7 @@ var ContentfulRefs;
|
|
|
81
81
|
}
|
|
82
82
|
ContentfulRefs.find = find;
|
|
83
83
|
function serialize(refs, locale) {
|
|
84
|
-
var _a;
|
|
84
|
+
var _a, _b, _c, _d;
|
|
85
85
|
// create empty refs
|
|
86
86
|
const assets = [];
|
|
87
87
|
const pages = [];
|
|
@@ -98,21 +98,21 @@ var ContentfulRefs;
|
|
|
98
98
|
if (!file) {
|
|
99
99
|
throw new funnel_core_1.NotFoundError(`cannot find Contentful media "${fileId}" for asset "${entry.sys.id}"`);
|
|
100
100
|
}
|
|
101
|
+
console.debug('[ContentfulRefs/serialize] parsing asset', { entry, file });
|
|
101
102
|
assets.push({
|
|
102
103
|
__root: 'asset',
|
|
103
104
|
type: 'asset',
|
|
104
105
|
value: {
|
|
105
106
|
id: entry.sys.id,
|
|
106
107
|
name: entry.fields.name[locale],
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
brand:
|
|
108
|
+
description: (_d = (_b = entry.fields.description[locale]) !== null && _b !== void 0 ? _b : (_c = file.fields.description) === null || _c === void 0 ? void 0 : _c[locale]) !== null && _d !== void 0 ? _d : undefined,
|
|
109
|
+
type: entry.fields.type[locale],
|
|
110
|
+
brand: entry.fields.brand[locale],
|
|
111
|
+
scope: entry.fields.scope[locale],
|
|
110
112
|
tags: [],
|
|
111
|
-
scope: 'global',
|
|
112
|
-
type: 'image/png',
|
|
113
113
|
url: 'https:' + file.fields.file[locale].url,
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
size: entry.fields.size[locale],
|
|
115
|
+
metadata: entry.fields.metadata[locale]
|
|
116
116
|
}
|
|
117
117
|
});
|
|
118
118
|
break;
|
|
@@ -121,7 +121,7 @@ var ContentfulRefs;
|
|
|
121
121
|
case ContentfulPage_1.ContentfulPage.contentTypeId: {
|
|
122
122
|
// convert to link and get template
|
|
123
123
|
const pageEntry = entry;
|
|
124
|
-
const
|
|
124
|
+
const _e = ContentfulPage_1.ContentfulPage.serializeRemoteLink(pageEntry, locale), { type, tags } = _e, data = __rest(_e, ["type", "tags"]);
|
|
125
125
|
const template = funnel_core_1.Schema.Site.getPage(type, data.region);
|
|
126
126
|
// push link
|
|
127
127
|
pages.push(Object.assign({ template, tags: components_1.TagSerializer.deserializeTags({
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.js
CHANGED
|
@@ -14,8 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./api"), exports);
|
|
18
17
|
__exportStar(require("./bridge"), exports);
|
|
18
|
+
__exportStar(require("./client"), exports);
|
|
19
19
|
__exportStar(require("./contentful"), exports);
|
|
20
|
-
__exportStar(require("./domain"), exports);
|
|
21
20
|
__exportStar(require("./repository"), exports);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventBus, Schema } from '@nascentdigital/funnel-core';
|
|
2
|
-
import { Collection } from '
|
|
2
|
+
import { Collection } from '../../collection/domain';
|
|
3
3
|
export declare namespace CollectionSerializer {
|
|
4
4
|
type DeserializeCollectionArgs = {
|
|
5
5
|
flattenedCollection: Schema.Collection.FlattenedData;
|
|
@@ -14,7 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
exports.CollectionSerializer = void 0;
|
|
15
15
|
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
16
16
|
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
17
|
-
const domain_1 = require("
|
|
17
|
+
const domain_1 = require("../../collection/domain");
|
|
18
18
|
// namespace
|
|
19
19
|
var CollectionSerializer;
|
|
20
20
|
(function (CollectionSerializer) {
|
|
@@ -2,7 +2,7 @@ import { EditorAppSDK } from '@contentful/app-sdk';
|
|
|
2
2
|
import { CollectionClient } from '@nascentdigital/funnel-cms';
|
|
3
3
|
import { EventBus, Schema } from '@nascentdigital/funnel-core';
|
|
4
4
|
import { CollectionFieldProxy, ICollection, ICollectionRepository } from '@nascentdigital/funnel-editor/components';
|
|
5
|
-
import { Collection } from '
|
|
5
|
+
import { Collection } from '../../collection/domain';
|
|
6
6
|
export declare class LocalCollectionRepository implements ICollectionRepository {
|
|
7
7
|
readonly sdk: EditorAppSDK;
|
|
8
8
|
constructor(sdk: EditorAppSDK);
|
|
@@ -16,7 +16,7 @@ export declare class LocalCollectionRepository implements ICollectionRepository
|
|
|
16
16
|
getItems(args: ICollectionRepository.GetItems.Args): Promise<ICollectionRepository.GetItems.Result>;
|
|
17
17
|
get(args: ICollectionRepository.Get.Args): Promise<ICollectionRepository.Get.Result>;
|
|
18
18
|
update(args: ICollectionRepository.Update.Args): Promise<ICollectionRepository.Update.Result>;
|
|
19
|
-
serializeUpdate(collection: Collection | CollectionFieldProxy, savables:
|
|
19
|
+
serializeUpdate(collection: Collection | CollectionFieldProxy, savables: ICollection.Savable[]): ICollectionRepository.SerializeUpdates.Result;
|
|
20
20
|
private onSave;
|
|
21
21
|
}
|
|
22
22
|
export declare namespace LocalCollectionRepository {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EditorAppSDK } from '@contentful/app-sdk';
|
|
2
2
|
import { EventBus } from '@nascentdigital/funnel-core';
|
|
3
|
-
import { Page } from '
|
|
3
|
+
import { Page } from '../../page/domain';
|
|
4
4
|
export declare class LocalPageRepository {
|
|
5
5
|
readonly sdk: EditorAppSDK;
|
|
6
6
|
constructor(sdk: EditorAppSDK);
|
|
@@ -14,7 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
exports.PageSerializer = void 0;
|
|
15
15
|
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
16
16
|
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
17
|
-
const domain_1 = require("
|
|
17
|
+
const domain_1 = require("../../page/domain");
|
|
18
18
|
// namespace
|
|
19
19
|
var PageSerializer;
|
|
20
20
|
(function (PageSerializer) {
|
|
@@ -27,6 +27,7 @@ var PageSerializer;
|
|
|
27
27
|
const { discover: discoverSnapshot = {}, content: contentSnapshot = {} } = snapshot !== null && snapshot !== void 0 ? snapshot : {};
|
|
28
28
|
// get page schema
|
|
29
29
|
const template = funnel_core_1.Schema.Site.getPage(data.type, data.region);
|
|
30
|
+
console.debug('[PageSerializer.deserializePage] template', { template, data });
|
|
30
31
|
// create page
|
|
31
32
|
return new domain_1.Page(Object.assign(Object.assign({}, dataRest), { template, tags: components_1.TagSerializer.deserializeTags({
|
|
32
33
|
groups: template.tags,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EditorAppSDK } from '@contentful/app-sdk';
|
|
2
2
|
import { Schema } from '@nascentdigital/funnel-core';
|
|
3
3
|
import { CollectionFieldProxy, ICollection, ICollectionRepository } from '@nascentdigital/funnel-editor/components';
|
|
4
|
-
import { Collection } from '
|
|
4
|
+
import { Collection } from '../../collection/domain';
|
|
5
5
|
export declare class RemoteCollectionRepository implements ICollectionRepository {
|
|
6
6
|
readonly sdk: EditorAppSDK;
|
|
7
7
|
constructor(sdk: EditorAppSDK);
|
|
@@ -14,6 +14,6 @@ export declare class RemoteCollectionRepository implements ICollectionRepository
|
|
|
14
14
|
getItems({ type, tags, language }: ICollectionRepository.GetItems.Args): Promise<ICollectionRepository.GetItems.Result>;
|
|
15
15
|
get({ id }: ICollectionRepository.Get.Args): Promise<ICollectionRepository.Get.Result>;
|
|
16
16
|
update(args: ICollectionRepository.Update.Args): Promise<ICollectionRepository.Update.Result>;
|
|
17
|
-
serializeUpdate(collection: Collection | CollectionFieldProxy, savables:
|
|
17
|
+
serializeUpdate(collection: Collection | CollectionFieldProxy, savables: ICollection.Savable[]): ICollectionRepository.SerializeUpdates.Result;
|
|
18
18
|
getReferences(collectionId: Schema.Collection.Id): Promise<ICollection.References>;
|
|
19
19
|
}
|
|
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./AssetRepository"), exports);
|
|
18
17
|
__exportStar(require("./LocalCollectionRepository"), exports);
|
|
19
18
|
__exportStar(require("./LocalPageRepository"), exports);
|
|
20
19
|
__exportStar(require("./RemoteCollectionRepository"), exports);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Callback } from '@nascentdigital/funnel-core';
|
|
2
|
+
import { PropsWithChildren } from 'react';
|
|
3
|
+
export declare function Header({ className, title, breadcrumbs: breadcrumbsRaw, highlightBreadcrumb, back, onBack, disableBack, hideControls, children }: Header.Props): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare namespace Header {
|
|
5
|
+
type Breadcrumb = Breadcrumb.Label | Breadcrumb.Link;
|
|
6
|
+
namespace Breadcrumb {
|
|
7
|
+
type Label = string;
|
|
8
|
+
type Link = {
|
|
9
|
+
label: string;
|
|
10
|
+
url: string;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
type Props = PropsWithChildren & {
|
|
14
|
+
className?: string;
|
|
15
|
+
title?: string;
|
|
16
|
+
subtitle?: string;
|
|
17
|
+
label?: string;
|
|
18
|
+
breadcrumbs?: ReadonlyArray<Breadcrumb>;
|
|
19
|
+
highlightBreadcrumb?: boolean;
|
|
20
|
+
back: BackVariant;
|
|
21
|
+
onBack?: Callback.Void;
|
|
22
|
+
disableBack?: boolean;
|
|
23
|
+
hideControls?: boolean;
|
|
24
|
+
};
|
|
25
|
+
type BackVariant = 'back' | 'close' | 'none';
|
|
26
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Header = Header;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
9
|
+
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
10
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
11
|
+
const react_router_1 = require("react-router");
|
|
12
|
+
const react_1 = require("motion/react");
|
|
13
|
+
// component
|
|
14
|
+
function Header({ className, title, breadcrumbs: breadcrumbsRaw, highlightBreadcrumb = false, back, onBack = funnel_core_1.Fn.NoOp, disableBack = false, hideControls, children }) {
|
|
15
|
+
// bind props + hooks
|
|
16
|
+
const breadcrumbs = breadcrumbsRaw !== null && breadcrumbsRaw !== void 0 ? breadcrumbsRaw : [];
|
|
17
|
+
const breadcrumbsEndIndex = breadcrumbs.length - 1;
|
|
18
|
+
// render
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)("nav", { className: (0, classnames_1.default)(className, 'h-48 flex items-center gap-l4 px-l8', 'label-sm text-content-primary bg-background border-b border-solid border-border-l1'), children: [back === 'none'
|
|
20
|
+
// logo
|
|
21
|
+
?
|
|
22
|
+
(0, jsx_runtime_1.jsx)("span", { className: "w-36 h-36 flex justify-center items-center", children: (0, jsx_runtime_1.jsx)(components_1.Logo, { size: 28 }) })
|
|
23
|
+
// back/close
|
|
24
|
+
:
|
|
25
|
+
(0, jsx_runtime_1.jsx)(components_1.IconButton, { icon: back === 'back' ? 'ArrowLeft' : 'X', onClick: onBack, disabled: disableBack }), (0, jsx_runtime_1.jsx)("ul", { className: "flex-1 flex items-center gap-l5", children: (0, jsx_runtime_1.jsx)(react_1.AnimatePresence, { children: breadcrumbs.map((breadcrumb, index) => (0, jsx_runtime_1.jsxs)(react_1.motion.li, { className: "flex items-center gap-l5", variants: components_1.Animate.Variants.fade, initial: "initial", animate: "animate", exit: "exit", layout: true, children: [index > 0 &&
|
|
26
|
+
(0, jsx_runtime_1.jsx)("span", { children: "/" }), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)({ 'label-sm label-strong': highlightBreadcrumb && index === breadcrumbsEndIndex }), children: typeof breadcrumb === 'string'
|
|
27
|
+
?
|
|
28
|
+
(0, jsx_runtime_1.jsx)("span", { children: breadcrumb })
|
|
29
|
+
:
|
|
30
|
+
(0, jsx_runtime_1.jsx)(react_router_1.Link, { to: breadcrumb.url, children: breadcrumb.label }) })] }, index)) }) }), (0, jsx_runtime_1.jsx)("div", { className: "h-full flex items-center gap-l6", children: !hideControls && children })] }));
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Header';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Header"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './screens';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./screens"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Dashboard(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Dashboard = Dashboard;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
6
|
+
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const react_router_1 = require("react-router");
|
|
9
|
+
const components_2 = require("../components");
|
|
10
|
+
// screen
|
|
11
|
+
function Dashboard() {
|
|
12
|
+
// bind hooks
|
|
13
|
+
const brand = funnel_core_1.AppConfig.brandConfig();
|
|
14
|
+
const splash = (0, components_1.useSplash)();
|
|
15
|
+
const { collections } = funnel_core_1.Schema.Site.current();
|
|
16
|
+
// dismiss splash
|
|
17
|
+
(0, react_1.useEffect)(() => {
|
|
18
|
+
splash.dismiss();
|
|
19
|
+
}, [splash]);
|
|
20
|
+
// render
|
|
21
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(components_2.Header, { breadcrumbs: ['Dashboard'], back: "none" }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(react_router_1.Link, { to: "/contentful/pages", children: "Site Explorer" }) })] }));
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function PageExplorer(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PageExplorer = PageExplorer;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
// screen
|
|
6
|
+
function PageExplorer() {
|
|
7
|
+
// render
|
|
8
|
+
return ((0, jsx_runtime_1.jsx)("div", { children: "Page" }));
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function SiteExplorer(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SiteExplorer = SiteExplorer;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const components_1 = require("@nascentdigital/funnel-editor/components");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const react_router_1 = require("react-router");
|
|
8
|
+
const components_2 = require("../components");
|
|
9
|
+
// screen
|
|
10
|
+
function SiteExplorer() {
|
|
11
|
+
// bind hooks
|
|
12
|
+
const navigate = (0, react_router_1.useNavigate)();
|
|
13
|
+
const site = (0, components_1.useSite)();
|
|
14
|
+
const splash = (0, components_1.useSplash)();
|
|
15
|
+
const { ready } = site;
|
|
16
|
+
// dismiss splash
|
|
17
|
+
(0, react_1.useEffect)(() => {
|
|
18
|
+
if (ready) {
|
|
19
|
+
splash.dismiss();
|
|
20
|
+
}
|
|
21
|
+
}, [splash, ready]);
|
|
22
|
+
// render
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(components_2.Header, { breadcrumbs: ['Dashboard', 'Sites'], back: "back", onBack: () => navigate('/contentful') }), (0, jsx_runtime_1.jsx)(react_router_1.Link, { to: "/contentful", children: "Back to Dashboard" })] }));
|
|
24
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Dashboard"), exports);
|
|
18
|
+
__exportStar(require("./PageExplorer"), exports);
|
|
19
|
+
__exportStar(require("./SiteExplorer"), exports);
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
+
import { EntrySys } from '@contentful/app-sdk';
|
|
1
2
|
import { Language } from '@nascentdigital/funnel-core';
|
|
2
3
|
import { IPage, IPageController, PageSummary } from '@nascentdigital/funnel-editor/components';
|
|
3
|
-
import { Page
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
readonly
|
|
4
|
+
import { Page } from '../domain';
|
|
5
|
+
import { PageRepository } from '../repository';
|
|
6
|
+
export declare class ContentfulPageController implements IPageController {
|
|
7
|
+
readonly pageRepository: PageRepository;
|
|
7
8
|
private readonly _eventBus;
|
|
8
9
|
private _state;
|
|
9
10
|
private _pageSummary?;
|
|
10
11
|
private _page?;
|
|
12
|
+
private _pageSys?;
|
|
13
|
+
private _queuedSave?;
|
|
14
|
+
private _queuedSync?;
|
|
11
15
|
private _pageSubscription?;
|
|
12
|
-
constructor(
|
|
16
|
+
constructor(args: ContentfulPageController.ConstructorArgs);
|
|
13
17
|
get events$(): import("rxjs").Observable<IPage.Event | IPageController.Event>;
|
|
14
18
|
get saved$(): import("rxjs").Observable<[IPageController.StateChangedEvent, IPageController.StateChangedEvent]>;
|
|
15
19
|
get state(): IPageController.State;
|
|
@@ -20,17 +24,19 @@ export declare class LocalPageController implements IPageController {
|
|
|
20
24
|
private set pageSummary(value);
|
|
21
25
|
get page(): Page | undefined;
|
|
22
26
|
private set page(value);
|
|
23
|
-
|
|
27
|
+
get pageSys(): EntrySys | undefined;
|
|
28
|
+
private set pageSys(value);
|
|
29
|
+
sync(updatedSys: EntrySys): Promise<void>;
|
|
24
30
|
load(): Promise<void>;
|
|
25
31
|
create(target: IPageController.Target): Promise<void>;
|
|
26
32
|
save(page: Page): Promise<void>;
|
|
27
33
|
reload(): Promise<void>;
|
|
28
34
|
unpublish(): Promise<void>;
|
|
35
|
+
private processQueues;
|
|
29
36
|
private raiseEvent;
|
|
30
37
|
}
|
|
31
|
-
export declare namespace
|
|
38
|
+
export declare namespace ContentfulPageController {
|
|
32
39
|
type ConstructorArgs = {
|
|
33
|
-
|
|
34
|
-
remoteRepository: RemotePageRepository;
|
|
40
|
+
pageRepository: PageRepository;
|
|
35
41
|
};
|
|
36
42
|
}
|