decap-cms-core 2.56.0-beta.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/LICENSE +22 -0
- package/README.md +9 -0
- package/dist/decap-cms-core.js +47 -0
- package/dist/decap-cms-core.js.LICENSE.txt +109 -0
- package/dist/decap-cms-core.js.map +1 -0
- package/dist/esm/actions/auth.js +118 -0
- package/dist/esm/actions/collections.js +23 -0
- package/dist/esm/actions/config.js +482 -0
- package/dist/esm/actions/deploys.js +89 -0
- package/dist/esm/actions/editorialWorkflow.js +511 -0
- package/dist/esm/actions/entries.js +940 -0
- package/dist/esm/actions/media.js +168 -0
- package/dist/esm/actions/mediaLibrary.js +606 -0
- package/dist/esm/actions/notifications.js +32 -0
- package/dist/esm/actions/search.js +156 -0
- package/dist/esm/actions/status.js +93 -0
- package/dist/esm/actions/waitUntil.js +39 -0
- package/dist/esm/backend.js +1073 -0
- package/dist/esm/bootstrap.js +107 -0
- package/dist/esm/components/App/App.js +301 -0
- package/dist/esm/components/App/Header.js +162 -0
- package/dist/esm/components/App/NotFoundPage.js +27 -0
- package/dist/esm/components/Collection/Collection.js +210 -0
- package/dist/esm/components/Collection/CollectionControls.js +54 -0
- package/dist/esm/components/Collection/CollectionSearch.js +235 -0
- package/dist/esm/components/Collection/CollectionTop.js +77 -0
- package/dist/esm/components/Collection/ControlButton.js +23 -0
- package/dist/esm/components/Collection/Entries/Entries.js +74 -0
- package/dist/esm/components/Collection/Entries/EntriesCollection.js +193 -0
- package/dist/esm/components/Collection/Entries/EntriesSearch.js +117 -0
- package/dist/esm/components/Collection/Entries/EntryCard.js +134 -0
- package/dist/esm/components/Collection/Entries/EntryListing.js +120 -0
- package/dist/esm/components/Collection/FilterControl.js +41 -0
- package/dist/esm/components/Collection/GroupControl.js +41 -0
- package/dist/esm/components/Collection/NestedCollection.js +311 -0
- package/dist/esm/components/Collection/Sidebar.js +102 -0
- package/dist/esm/components/Collection/SortControl.js +67 -0
- package/dist/esm/components/Collection/ViewStyleControl.js +47 -0
- package/dist/esm/components/Editor/Editor.js +479 -0
- package/dist/esm/components/Editor/EditorControlPane/EditorControl.js +393 -0
- package/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js +259 -0
- package/dist/esm/components/Editor/EditorControlPane/Widget.js +355 -0
- package/dist/esm/components/Editor/EditorInterface.js +401 -0
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js +56 -0
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js +34 -0
- package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js +252 -0
- package/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js +39 -0
- package/dist/esm/components/Editor/EditorToolbar.js +551 -0
- package/dist/esm/components/Editor/withWorkflow.js +64 -0
- package/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js +26 -0
- package/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js +28 -0
- package/dist/esm/components/EditorWidgets/index.js +7 -0
- package/dist/esm/components/MediaLibrary/EmptyMessage.js +30 -0
- package/dist/esm/components/MediaLibrary/MediaLibrary.js +444 -0
- package/dist/esm/components/MediaLibrary/MediaLibraryButtons.js +110 -0
- package/dist/esm/components/MediaLibrary/MediaLibraryCard.js +108 -0
- package/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js +211 -0
- package/dist/esm/components/MediaLibrary/MediaLibraryHeader.js +40 -0
- package/dist/esm/components/MediaLibrary/MediaLibraryModal.js +163 -0
- package/dist/esm/components/MediaLibrary/MediaLibrarySearch.js +60 -0
- package/dist/esm/components/MediaLibrary/MediaLibraryTop.js +134 -0
- package/dist/esm/components/UI/DragDrop.js +84 -0
- package/dist/esm/components/UI/ErrorBoundary.js +184 -0
- package/dist/esm/components/UI/FileUploadButton.js +34 -0
- package/dist/esm/components/UI/Modal.js +113 -0
- package/dist/esm/components/UI/Notifications.js +74 -0
- package/dist/esm/components/UI/SettingsDropdown.js +118 -0
- package/dist/esm/components/UI/index.js +60 -0
- package/dist/esm/components/Workflow/Workflow.js +144 -0
- package/dist/esm/components/Workflow/WorkflowCard.js +137 -0
- package/dist/esm/components/Workflow/WorkflowList.js +219 -0
- package/dist/esm/constants/collectionTypes.js +10 -0
- package/dist/esm/constants/collectionViews.js +10 -0
- package/dist/esm/constants/commitProps.js +10 -0
- package/dist/esm/constants/configSchema.js +594 -0
- package/dist/esm/constants/fieldInference.js +67 -0
- package/dist/esm/constants/publishModes.js +28 -0
- package/dist/esm/constants/validationErrorTypes.js +13 -0
- package/dist/esm/formats/formats.js +82 -0
- package/dist/esm/formats/frontmatter.js +163 -0
- package/dist/esm/formats/helpers.js +18 -0
- package/dist/esm/formats/json.js +15 -0
- package/dist/esm/formats/toml.js +40 -0
- package/dist/esm/formats/yaml.js +63 -0
- package/dist/esm/index.js +20 -0
- package/dist/esm/integrations/index.js +37 -0
- package/dist/esm/integrations/providers/algolia/implementation.js +184 -0
- package/dist/esm/integrations/providers/assetStore/implementation.js +175 -0
- package/dist/esm/lib/consoleError.js +9 -0
- package/dist/esm/lib/formatters.js +204 -0
- package/dist/esm/lib/i18n.js +381 -0
- package/dist/esm/lib/phrases.js +13 -0
- package/dist/esm/lib/registry.js +322 -0
- package/dist/esm/lib/serializeEntryValues.js +74 -0
- package/dist/esm/lib/textHelper.js +15 -0
- package/dist/esm/lib/urlHelper.js +128 -0
- package/dist/esm/mediaLibrary.js +42 -0
- package/dist/esm/reducers/auth.js +35 -0
- package/dist/esm/reducers/collections.js +424 -0
- package/dist/esm/reducers/combinedReducer.js +19 -0
- package/dist/esm/reducers/config.js +42 -0
- package/dist/esm/reducers/cursors.js +38 -0
- package/dist/esm/reducers/deploys.js +53 -0
- package/dist/esm/reducers/editorialWorkflow.js +98 -0
- package/dist/esm/reducers/entries.js +591 -0
- package/dist/esm/reducers/entryDraft.js +184 -0
- package/dist/esm/reducers/globalUI.js +32 -0
- package/dist/esm/reducers/index.js +84 -0
- package/dist/esm/reducers/integrations.js +68 -0
- package/dist/esm/reducers/mediaLibrary.js +265 -0
- package/dist/esm/reducers/medias.js +76 -0
- package/dist/esm/reducers/notifications.js +36 -0
- package/dist/esm/reducers/search.js +89 -0
- package/dist/esm/reducers/status.js +37 -0
- package/dist/esm/redux/index.js +14 -0
- package/dist/esm/redux/middleware/waitUntilAction.js +56 -0
- package/dist/esm/routing/history.js +21 -0
- package/dist/esm/types/diacritics.d.js +1 -0
- package/dist/esm/types/global.d.js +5 -0
- package/dist/esm/types/immutable.js +5 -0
- package/dist/esm/types/redux.js +16 -0
- package/dist/esm/types/tomlify-j0.4.d.js +1 -0
- package/dist/esm/valueObjects/AssetProxy.js +60 -0
- package/dist/esm/valueObjects/EditorComponent.js +48 -0
- package/dist/esm/valueObjects/Entry.js +27 -0
- package/index.d.ts +587 -0
- package/package.json +102 -0
- package/src/__tests__/backend.spec.js +934 -0
- package/src/actions/__tests__/config.spec.js +1009 -0
- package/src/actions/__tests__/editorialWorkflow.spec.js +216 -0
- package/src/actions/__tests__/entries.spec.js +575 -0
- package/src/actions/__tests__/media.spec.ts +171 -0
- package/src/actions/__tests__/mediaLibrary.spec.js +327 -0
- package/src/actions/__tests__/search.spec.js +209 -0
- package/src/actions/auth.ts +127 -0
- package/src/actions/collections.ts +18 -0
- package/src/actions/config.ts +538 -0
- package/src/actions/deploys.ts +104 -0
- package/src/actions/editorialWorkflow.ts +567 -0
- package/src/actions/entries.ts +1041 -0
- package/src/actions/media.ts +139 -0
- package/src/actions/mediaLibrary.ts +574 -0
- package/src/actions/notifications.ts +36 -0
- package/src/actions/search.ts +194 -0
- package/src/actions/status.ts +99 -0
- package/src/actions/waitUntil.ts +49 -0
- package/src/backend.ts +1342 -0
- package/src/bootstrap.js +102 -0
- package/src/components/App/App.js +280 -0
- package/src/components/App/Header.js +236 -0
- package/src/components/App/NotFoundPage.js +23 -0
- package/src/components/Collection/Collection.js +205 -0
- package/src/components/Collection/CollectionControls.js +58 -0
- package/src/components/Collection/CollectionSearch.js +238 -0
- package/src/components/Collection/CollectionTop.js +81 -0
- package/src/components/Collection/ControlButton.js +27 -0
- package/src/components/Collection/Entries/Entries.js +73 -0
- package/src/components/Collection/Entries/EntriesCollection.js +165 -0
- package/src/components/Collection/Entries/EntriesSearch.js +91 -0
- package/src/components/Collection/Entries/EntryCard.js +167 -0
- package/src/components/Collection/Entries/EntryListing.js +86 -0
- package/src/components/Collection/Entries/__tests__/EntriesCollection.spec.js +155 -0
- package/src/components/Collection/Entries/__tests__/__snapshots__/EntriesCollection.spec.js.snap +49 -0
- package/src/components/Collection/FilterControl.js +39 -0
- package/src/components/Collection/GroupControl.js +39 -0
- package/src/components/Collection/NestedCollection.js +309 -0
- package/src/components/Collection/Sidebar.js +130 -0
- package/src/components/Collection/SortControl.js +68 -0
- package/src/components/Collection/ViewStyleControl.js +50 -0
- package/src/components/Collection/__tests__/Collection.spec.js +75 -0
- package/src/components/Collection/__tests__/NestedCollection.spec.js +442 -0
- package/src/components/Collection/__tests__/Sidebar.spec.js +87 -0
- package/src/components/Collection/__tests__/__snapshots__/Collection.spec.js.snap +144 -0
- package/src/components/Collection/__tests__/__snapshots__/NestedCollection.spec.js.snap +550 -0
- package/src/components/Collection/__tests__/__snapshots__/Sidebar.spec.js.snap +308 -0
- package/src/components/Editor/Editor.js +494 -0
- package/src/components/Editor/EditorControlPane/EditorControl.js +428 -0
- package/src/components/Editor/EditorControlPane/EditorControlPane.js +256 -0
- package/src/components/Editor/EditorControlPane/Widget.js +351 -0
- package/src/components/Editor/EditorInterface.js +434 -0
- package/src/components/Editor/EditorPreviewPane/EditorPreview.js +40 -0
- package/src/components/Editor/EditorPreviewPane/EditorPreviewContent.js +34 -0
- package/src/components/Editor/EditorPreviewPane/EditorPreviewPane.js +278 -0
- package/src/components/Editor/EditorPreviewPane/PreviewHOC.js +33 -0
- package/src/components/Editor/EditorToolbar.js +678 -0
- package/src/components/Editor/__tests__/Editor.spec.js +219 -0
- package/src/components/Editor/__tests__/EditorToolbar.spec.js +120 -0
- package/src/components/Editor/__tests__/__snapshots__/Editor.spec.js.snap +45 -0
- package/src/components/Editor/__tests__/__snapshots__/EditorToolbar.spec.js.snap +4020 -0
- package/src/components/Editor/withWorkflow.js +61 -0
- package/src/components/EditorWidgets/Unknown/UnknownControl.js +17 -0
- package/src/components/EditorWidgets/Unknown/UnknownPreview.js +19 -0
- package/src/components/EditorWidgets/index.js +5 -0
- package/src/components/MediaLibrary/EmptyMessage.js +28 -0
- package/src/components/MediaLibrary/MediaLibrary.js +407 -0
- package/src/components/MediaLibrary/MediaLibraryButtons.js +136 -0
- package/src/components/MediaLibrary/MediaLibraryCard.js +128 -0
- package/src/components/MediaLibrary/MediaLibraryCardGrid.js +199 -0
- package/src/components/MediaLibrary/MediaLibraryHeader.js +48 -0
- package/src/components/MediaLibrary/MediaLibraryModal.js +200 -0
- package/src/components/MediaLibrary/MediaLibrarySearch.js +61 -0
- package/src/components/MediaLibrary/MediaLibraryTop.js +143 -0
- package/src/components/MediaLibrary/__tests__/MediaLibraryButtons.spec.js +45 -0
- package/src/components/MediaLibrary/__tests__/MediaLibraryCard.spec.js +49 -0
- package/src/components/MediaLibrary/__tests__/__snapshots__/MediaLibraryCard.spec.js.snap +216 -0
- package/src/components/UI/DragDrop.js +66 -0
- package/src/components/UI/ErrorBoundary.js +209 -0
- package/src/components/UI/FileUploadButton.js +24 -0
- package/src/components/UI/Modal.js +109 -0
- package/src/components/UI/Notifications.tsx +83 -0
- package/src/components/UI/SettingsDropdown.js +103 -0
- package/src/components/UI/__tests__/ErrorBoundary.spec.js +57 -0
- package/src/components/UI/index.js +6 -0
- package/src/components/Workflow/Workflow.js +166 -0
- package/src/components/Workflow/WorkflowCard.js +177 -0
- package/src/components/Workflow/WorkflowList.js +269 -0
- package/src/constants/__tests__/configSchema.spec.js +511 -0
- package/src/constants/collectionTypes.ts +2 -0
- package/src/constants/collectionViews.js +2 -0
- package/src/constants/commitProps.ts +2 -0
- package/src/constants/configSchema.js +399 -0
- package/src/constants/fieldInference.tsx +78 -0
- package/src/constants/publishModes.ts +22 -0
- package/src/constants/validationErrorTypes.js +6 -0
- package/src/formats/__tests__/frontmatter.spec.js +429 -0
- package/src/formats/__tests__/toml.spec.js +9 -0
- package/src/formats/__tests__/yaml.spec.js +162 -0
- package/src/formats/formats.ts +86 -0
- package/src/formats/frontmatter.ts +150 -0
- package/src/formats/helpers.ts +14 -0
- package/src/formats/json.ts +9 -0
- package/src/formats/toml.ts +33 -0
- package/src/formats/yaml.ts +58 -0
- package/src/index.js +8 -0
- package/src/integrations/index.js +35 -0
- package/src/integrations/providers/algolia/implementation.js +176 -0
- package/src/integrations/providers/assetStore/implementation.js +147 -0
- package/src/lib/__tests__/formatters.spec.js +723 -0
- package/src/lib/__tests__/i18n.spec.js +792 -0
- package/src/lib/__tests__/phrases.spec.js +119 -0
- package/src/lib/__tests__/registry.spec.js +246 -0
- package/src/lib/__tests__/serializeEntryValues.spec.js +22 -0
- package/src/lib/__tests__/urlHelper.spec.js +138 -0
- package/src/lib/consoleError.js +7 -0
- package/src/lib/formatters.ts +267 -0
- package/src/lib/i18n.ts +427 -0
- package/src/lib/phrases.js +8 -0
- package/src/lib/registry.js +282 -0
- package/src/lib/serializeEntryValues.js +75 -0
- package/src/lib/textHelper.js +11 -0
- package/src/lib/urlHelper.ts +125 -0
- package/src/mediaLibrary.ts +51 -0
- package/src/reducers/__tests__/auth.spec.ts +38 -0
- package/src/reducers/__tests__/collections.spec.js +571 -0
- package/src/reducers/__tests__/config.spec.js +38 -0
- package/src/reducers/__tests__/entries.spec.js +694 -0
- package/src/reducers/__tests__/entryDraft.spec.js +198 -0
- package/src/reducers/__tests__/globalUI.js +43 -0
- package/src/reducers/__tests__/integrations.spec.ts +76 -0
- package/src/reducers/__tests__/mediaLibrary.spec.js +154 -0
- package/src/reducers/__tests__/medias.spec.ts +49 -0
- package/src/reducers/auth.ts +46 -0
- package/src/reducers/collections.ts +483 -0
- package/src/reducers/combinedReducer.ts +11 -0
- package/src/reducers/config.ts +38 -0
- package/src/reducers/cursors.js +36 -0
- package/src/reducers/deploys.ts +52 -0
- package/src/reducers/editorialWorkflow.ts +163 -0
- package/src/reducers/entries.ts +806 -0
- package/src/reducers/entryDraft.js +218 -0
- package/src/reducers/globalUI.ts +45 -0
- package/src/reducers/index.ts +82 -0
- package/src/reducers/integrations.ts +59 -0
- package/src/reducers/mediaLibrary.ts +296 -0
- package/src/reducers/medias.ts +66 -0
- package/src/reducers/notifications.ts +53 -0
- package/src/reducers/search.ts +89 -0
- package/src/reducers/status.ts +40 -0
- package/src/redux/index.ts +18 -0
- package/src/redux/middleware/waitUntilAction.ts +64 -0
- package/src/routing/__tests__/history.spec.ts +49 -0
- package/src/routing/history.ts +17 -0
- package/src/types/diacritics.d.ts +1 -0
- package/src/types/global.d.ts +8 -0
- package/src/types/immutable.ts +39 -0
- package/src/types/redux.ts +810 -0
- package/src/types/tomlify-j0.4.d.ts +13 -0
- package/src/valueObjects/AssetProxy.ts +48 -0
- package/src/valueObjects/EditorComponent.js +38 -0
- package/src/valueObjects/Entry.ts +63 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
exports.selectCustomPath = selectCustomPath;
|
|
8
|
+
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
9
|
+
var _immutable = require("immutable");
|
|
10
|
+
var _v = _interopRequireDefault(require("uuid/v4"));
|
|
11
|
+
var _path = require("path");
|
|
12
|
+
var _entries = require("../actions/entries");
|
|
13
|
+
var _editorialWorkflow = require("../actions/editorialWorkflow");
|
|
14
|
+
var _collections = require("./collections");
|
|
15
|
+
var _i18n = require("../lib/i18n");
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
const initialState = (0, _immutable.Map)({
|
|
18
|
+
entry: (0, _immutable.Map)(),
|
|
19
|
+
fieldsMetaData: (0, _immutable.Map)(),
|
|
20
|
+
fieldsErrors: (0, _immutable.Map)(),
|
|
21
|
+
hasChanged: false,
|
|
22
|
+
key: ''
|
|
23
|
+
});
|
|
24
|
+
function entryDraftReducer(state = (0, _immutable.Map)(), action) {
|
|
25
|
+
switch (action.type) {
|
|
26
|
+
case _entries.DRAFT_CREATE_FROM_ENTRY:
|
|
27
|
+
// Existing Entry
|
|
28
|
+
return state.withMutations(state => {
|
|
29
|
+
state.set('entry', (0, _immutable.fromJS)(action.payload.entry));
|
|
30
|
+
state.setIn(['entry', 'newRecord'], false);
|
|
31
|
+
state.set('fieldsMetaData', (0, _immutable.Map)());
|
|
32
|
+
state.set('fieldsErrors', (0, _immutable.Map)());
|
|
33
|
+
state.set('hasChanged', false);
|
|
34
|
+
state.set('key', (0, _v.default)());
|
|
35
|
+
});
|
|
36
|
+
case _entries.DRAFT_CREATE_EMPTY:
|
|
37
|
+
// New Entry
|
|
38
|
+
return state.withMutations(state => {
|
|
39
|
+
state.set('entry', (0, _immutable.fromJS)(action.payload));
|
|
40
|
+
state.setIn(['entry', 'newRecord'], true);
|
|
41
|
+
state.set('fieldsMetaData', (0, _immutable.Map)());
|
|
42
|
+
state.set('fieldsErrors', (0, _immutable.Map)());
|
|
43
|
+
state.set('hasChanged', false);
|
|
44
|
+
state.set('key', (0, _v.default)());
|
|
45
|
+
});
|
|
46
|
+
case _entries.DRAFT_CREATE_FROM_LOCAL_BACKUP:
|
|
47
|
+
// Local Backup
|
|
48
|
+
return state.withMutations(state => {
|
|
49
|
+
const backupDraftEntry = state.get('localBackup');
|
|
50
|
+
const backupEntry = backupDraftEntry.get('entry');
|
|
51
|
+
state.delete('localBackup');
|
|
52
|
+
state.set('entry', backupEntry);
|
|
53
|
+
state.setIn(['entry', 'newRecord'], !backupEntry.get('path'));
|
|
54
|
+
state.set('fieldsMetaData', (0, _immutable.Map)());
|
|
55
|
+
state.set('fieldsErrors', (0, _immutable.Map)());
|
|
56
|
+
state.set('hasChanged', true);
|
|
57
|
+
state.set('key', (0, _v.default)());
|
|
58
|
+
});
|
|
59
|
+
case _entries.DRAFT_CREATE_DUPLICATE_FROM_ENTRY:
|
|
60
|
+
// Duplicate Entry
|
|
61
|
+
return state.withMutations(state => {
|
|
62
|
+
state.set('entry', (0, _immutable.fromJS)(action.payload));
|
|
63
|
+
state.setIn(['entry', 'newRecord'], true);
|
|
64
|
+
state.set('mediaFiles', (0, _immutable.List)());
|
|
65
|
+
state.set('fieldsMetaData', (0, _immutable.Map)());
|
|
66
|
+
state.set('fieldsErrors', (0, _immutable.Map)());
|
|
67
|
+
state.set('hasChanged', true);
|
|
68
|
+
});
|
|
69
|
+
case _entries.DRAFT_DISCARD:
|
|
70
|
+
return initialState;
|
|
71
|
+
case _entries.DRAFT_LOCAL_BACKUP_RETRIEVED:
|
|
72
|
+
{
|
|
73
|
+
const {
|
|
74
|
+
entry
|
|
75
|
+
} = action.payload;
|
|
76
|
+
const newState = new _immutable.Map({
|
|
77
|
+
entry: (0, _immutable.fromJS)(entry)
|
|
78
|
+
});
|
|
79
|
+
return state.set('localBackup', newState);
|
|
80
|
+
}
|
|
81
|
+
case _entries.DRAFT_CHANGE_FIELD:
|
|
82
|
+
{
|
|
83
|
+
return state.withMutations(state => {
|
|
84
|
+
const {
|
|
85
|
+
field,
|
|
86
|
+
value,
|
|
87
|
+
metadata,
|
|
88
|
+
entries,
|
|
89
|
+
i18n
|
|
90
|
+
} = action.payload;
|
|
91
|
+
const name = field.get('name');
|
|
92
|
+
const meta = field.get('meta');
|
|
93
|
+
const dataPath = i18n && (0, _i18n.getDataPath)(i18n.currentLocale, i18n.defaultLocale) || ['data'];
|
|
94
|
+
if (meta) {
|
|
95
|
+
state.setIn(['entry', 'meta', name], value);
|
|
96
|
+
} else {
|
|
97
|
+
state.setIn(['entry', ...dataPath, name], value);
|
|
98
|
+
if (i18n) {
|
|
99
|
+
state = (0, _i18n.duplicateI18nFields)(state, field, i18n.locales, i18n.defaultLocale);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
state.mergeDeepIn(['fieldsMetaData'], (0, _immutable.fromJS)(metadata));
|
|
103
|
+
const newData = state.getIn(['entry', ...dataPath]);
|
|
104
|
+
const newMeta = state.getIn(['entry', 'meta']);
|
|
105
|
+
state.set('hasChanged', !entries.some(e => newData.equals(e.get(...dataPath))) || !entries.some(e => newMeta.equals(e.get('meta'))));
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
case _entries.DRAFT_VALIDATION_ERRORS:
|
|
109
|
+
if (action.payload.errors.length === 0) {
|
|
110
|
+
return state.deleteIn(['fieldsErrors', action.payload.uniquefieldId]);
|
|
111
|
+
} else {
|
|
112
|
+
return state.setIn(['fieldsErrors', action.payload.uniquefieldId], action.payload.errors);
|
|
113
|
+
}
|
|
114
|
+
case _entries.DRAFT_CLEAR_ERRORS:
|
|
115
|
+
{
|
|
116
|
+
return state.set('fieldsErrors', (0, _immutable.Map)());
|
|
117
|
+
}
|
|
118
|
+
case _entries.ENTRY_PERSIST_REQUEST:
|
|
119
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_PERSIST_REQUEST:
|
|
120
|
+
{
|
|
121
|
+
return state.setIn(['entry', 'isPersisting'], true);
|
|
122
|
+
}
|
|
123
|
+
case _entries.ENTRY_PERSIST_FAILURE:
|
|
124
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_PERSIST_FAILURE:
|
|
125
|
+
{
|
|
126
|
+
return state.deleteIn(['entry', 'isPersisting']);
|
|
127
|
+
}
|
|
128
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_STATUS_CHANGE_REQUEST:
|
|
129
|
+
return state.setIn(['entry', 'isUpdatingStatus'], true);
|
|
130
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_STATUS_CHANGE_FAILURE:
|
|
131
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_STATUS_CHANGE_SUCCESS:
|
|
132
|
+
return state.deleteIn(['entry', 'isUpdatingStatus']);
|
|
133
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_PUBLISH_REQUEST:
|
|
134
|
+
return state.setIn(['entry', 'isPublishing'], true);
|
|
135
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_PUBLISH_SUCCESS:
|
|
136
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_PUBLISH_FAILURE:
|
|
137
|
+
return state.deleteIn(['entry', 'isPublishing']);
|
|
138
|
+
case _entries.ENTRY_PERSIST_SUCCESS:
|
|
139
|
+
case _editorialWorkflow.UNPUBLISHED_ENTRY_PERSIST_SUCCESS:
|
|
140
|
+
return state.withMutations(state => {
|
|
141
|
+
state.deleteIn(['entry', 'isPersisting']);
|
|
142
|
+
state.set('hasChanged', false);
|
|
143
|
+
if (!state.getIn(['entry', 'slug'])) {
|
|
144
|
+
state.setIn(['entry', 'slug'], action.payload.slug);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
case _entries.ENTRY_DELETE_SUCCESS:
|
|
148
|
+
return state.withMutations(state => {
|
|
149
|
+
state.deleteIn(['entry', 'isPersisting']);
|
|
150
|
+
state.set('hasChanged', false);
|
|
151
|
+
});
|
|
152
|
+
case _entries.ADD_DRAFT_ENTRY_MEDIA_FILE:
|
|
153
|
+
{
|
|
154
|
+
return state.withMutations(state => {
|
|
155
|
+
const mediaFiles = state.getIn(['entry', 'mediaFiles']);
|
|
156
|
+
state.setIn(['entry', 'mediaFiles'], mediaFiles.filterNot(file => file.get('id') === action.payload.id).insert(0, (0, _immutable.fromJS)(action.payload)));
|
|
157
|
+
state.set('hasChanged', true);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
case _entries.REMOVE_DRAFT_ENTRY_MEDIA_FILE:
|
|
161
|
+
{
|
|
162
|
+
return state.withMutations(state => {
|
|
163
|
+
const mediaFiles = state.getIn(['entry', 'mediaFiles']);
|
|
164
|
+
state.setIn(['entry', 'mediaFiles'], mediaFiles.filterNot(file => file.get('id') === action.payload.id));
|
|
165
|
+
state.set('hasChanged', true);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
default:
|
|
169
|
+
return state;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function selectCustomPath(collection, entryDraft) {
|
|
173
|
+
if (!(0, _collections.selectHasMetaPath)(collection)) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const meta = entryDraft.getIn(['entry', 'meta']);
|
|
177
|
+
const path = meta && meta.get('path');
|
|
178
|
+
const indexFile = (0, _get2.default)(collection.toJS(), ['meta', 'path', 'index_file']);
|
|
179
|
+
const extension = (0, _collections.selectFolderEntryExtension)(collection);
|
|
180
|
+
const customPath = path && (0, _path.join)(collection.get('folder'), path, `${indexFile}.${extension}`);
|
|
181
|
+
return customPath;
|
|
182
|
+
}
|
|
183
|
+
var _default = entryDraftReducer;
|
|
184
|
+
exports.default = _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _immer = require("immer");
|
|
8
|
+
var _auth = require("../actions/auth");
|
|
9
|
+
const LOADING_IGNORE_LIST = ['DEPLOY_PREVIEW', 'STATUS_REQUEST', 'STATUS_SUCCESS', 'STATUS_FAILURE'];
|
|
10
|
+
function ignoreWhenLoading(action) {
|
|
11
|
+
return LOADING_IGNORE_LIST.some(type => action.type.includes(type));
|
|
12
|
+
}
|
|
13
|
+
const defaultState = {
|
|
14
|
+
isFetching: false,
|
|
15
|
+
useOpenAuthoring: false
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Reducer for some global UI state that we want to share between components
|
|
20
|
+
*/
|
|
21
|
+
const globalUI = (0, _immer.produce)((state, action) => {
|
|
22
|
+
// Generic, global loading indicator
|
|
23
|
+
if (!ignoreWhenLoading(action) && action.type.includes('REQUEST')) {
|
|
24
|
+
state.isFetching = true;
|
|
25
|
+
} else if (!ignoreWhenLoading(action) && (action.type.includes('SUCCESS') || action.type.includes('FAILURE'))) {
|
|
26
|
+
state.isFetching = false;
|
|
27
|
+
} else if (action.type === _auth.USE_OPEN_AUTHORING) {
|
|
28
|
+
state.useOpenAuthoring = true;
|
|
29
|
+
}
|
|
30
|
+
}, defaultState);
|
|
31
|
+
var _default = globalUI;
|
|
32
|
+
exports.default = _default;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
exports.selectDeployPreview = selectDeployPreview;
|
|
8
|
+
exports.selectEntries = selectEntries;
|
|
9
|
+
exports.selectEntry = selectEntry;
|
|
10
|
+
exports.selectIntegration = selectIntegration;
|
|
11
|
+
exports.selectPublishedSlugs = selectPublishedSlugs;
|
|
12
|
+
exports.selectSearchedEntries = selectSearchedEntries;
|
|
13
|
+
exports.selectUnpublishedEntriesByStatus = selectUnpublishedEntriesByStatus;
|
|
14
|
+
exports.selectUnpublishedEntry = selectUnpublishedEntry;
|
|
15
|
+
exports.selectUnpublishedSlugs = selectUnpublishedSlugs;
|
|
16
|
+
var _immutable = require("immutable");
|
|
17
|
+
var _auth = _interopRequireDefault(require("./auth"));
|
|
18
|
+
var _config = _interopRequireDefault(require("./config"));
|
|
19
|
+
var fromIntegrations = _interopRequireWildcard(require("./integrations"));
|
|
20
|
+
var fromEntries = _interopRequireWildcard(require("./entries"));
|
|
21
|
+
var _cursors = _interopRequireDefault(require("./cursors"));
|
|
22
|
+
var fromEditorialWorkflow = _interopRequireWildcard(require("./editorialWorkflow"));
|
|
23
|
+
var _entryDraft = _interopRequireDefault(require("./entryDraft"));
|
|
24
|
+
var _collections = _interopRequireDefault(require("./collections"));
|
|
25
|
+
var _search = _interopRequireDefault(require("./search"));
|
|
26
|
+
var _medias = _interopRequireDefault(require("./medias"));
|
|
27
|
+
var _mediaLibrary = _interopRequireDefault(require("./mediaLibrary"));
|
|
28
|
+
var fromDeploys = _interopRequireWildcard(require("./deploys"));
|
|
29
|
+
var _globalUI = _interopRequireDefault(require("./globalUI"));
|
|
30
|
+
var _status = _interopRequireDefault(require("./status"));
|
|
31
|
+
var _notifications = _interopRequireDefault(require("./notifications"));
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
34
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
+
const reducers = {
|
|
36
|
+
auth: _auth.default,
|
|
37
|
+
config: _config.default,
|
|
38
|
+
collections: _collections.default,
|
|
39
|
+
search: _search.default,
|
|
40
|
+
integrations: fromIntegrations.default,
|
|
41
|
+
entries: fromEntries.default,
|
|
42
|
+
cursors: _cursors.default,
|
|
43
|
+
editorialWorkflow: fromEditorialWorkflow.default,
|
|
44
|
+
entryDraft: _entryDraft.default,
|
|
45
|
+
medias: _medias.default,
|
|
46
|
+
mediaLibrary: _mediaLibrary.default,
|
|
47
|
+
deploys: fromDeploys.default,
|
|
48
|
+
globalUI: _globalUI.default,
|
|
49
|
+
status: _status.default,
|
|
50
|
+
notifications: _notifications.default
|
|
51
|
+
};
|
|
52
|
+
var _default = reducers;
|
|
53
|
+
/*
|
|
54
|
+
* Selectors
|
|
55
|
+
*/
|
|
56
|
+
exports.default = _default;
|
|
57
|
+
function selectEntry(state, collection, slug) {
|
|
58
|
+
return fromEntries.selectEntry(state.entries, collection, slug);
|
|
59
|
+
}
|
|
60
|
+
function selectEntries(state, collection) {
|
|
61
|
+
return fromEntries.selectEntries(state.entries, collection);
|
|
62
|
+
}
|
|
63
|
+
function selectPublishedSlugs(state, collection) {
|
|
64
|
+
return fromEntries.selectPublishedSlugs(state.entries, collection);
|
|
65
|
+
}
|
|
66
|
+
function selectSearchedEntries(state, availableCollections) {
|
|
67
|
+
// only return search results for actually available collections
|
|
68
|
+
return (0, _immutable.List)(state.search.entryIds).filter(entryId => availableCollections.indexOf(entryId.collection) !== -1).map(entryId => fromEntries.selectEntry(state.entries, entryId.collection, entryId.slug));
|
|
69
|
+
}
|
|
70
|
+
function selectDeployPreview(state, collection, slug) {
|
|
71
|
+
return fromDeploys.selectDeployPreview(state.deploys, collection, slug);
|
|
72
|
+
}
|
|
73
|
+
function selectUnpublishedEntry(state, collection, slug) {
|
|
74
|
+
return fromEditorialWorkflow.selectUnpublishedEntry(state.editorialWorkflow, collection, slug);
|
|
75
|
+
}
|
|
76
|
+
function selectUnpublishedEntriesByStatus(state, status) {
|
|
77
|
+
return fromEditorialWorkflow.selectUnpublishedEntriesByStatus(state.editorialWorkflow, status);
|
|
78
|
+
}
|
|
79
|
+
function selectUnpublishedSlugs(state, collection) {
|
|
80
|
+
return fromEditorialWorkflow.selectUnpublishedSlugs(state.editorialWorkflow, collection);
|
|
81
|
+
}
|
|
82
|
+
function selectIntegration(state, collection, hook) {
|
|
83
|
+
return fromIntegrations.selectIntegration(state.integrations, collection, hook);
|
|
84
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
exports.getIntegrations = getIntegrations;
|
|
8
|
+
exports.selectIntegration = selectIntegration;
|
|
9
|
+
var _immutable = require("immutable");
|
|
10
|
+
var _config = require("../actions/config");
|
|
11
|
+
const _excluded = ["hooks", "collections", "provider"];
|
|
12
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
16
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
17
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
18
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
19
|
+
function getIntegrations(config) {
|
|
20
|
+
const integrations = config.integrations || [];
|
|
21
|
+
const newState = integrations.reduce((acc, integration) => {
|
|
22
|
+
const {
|
|
23
|
+
hooks,
|
|
24
|
+
collections,
|
|
25
|
+
provider
|
|
26
|
+
} = integration,
|
|
27
|
+
providerData = _objectWithoutProperties(integration, _excluded);
|
|
28
|
+
acc.providers[provider] = _objectSpread({}, providerData);
|
|
29
|
+
if (!collections) {
|
|
30
|
+
hooks.forEach(hook => {
|
|
31
|
+
acc.hooks[hook] = provider;
|
|
32
|
+
});
|
|
33
|
+
return acc;
|
|
34
|
+
}
|
|
35
|
+
const integrationCollections = collections === '*' ? config.collections.map(collection => collection.name) : collections;
|
|
36
|
+
integrationCollections.forEach(collection => {
|
|
37
|
+
hooks.forEach(hook => {
|
|
38
|
+
acc.hooks[collection] ? acc.hooks[collection][hook] = provider : acc.hooks[collection] = {
|
|
39
|
+
[hook]: provider
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
return acc;
|
|
44
|
+
}, {
|
|
45
|
+
providers: {},
|
|
46
|
+
hooks: {}
|
|
47
|
+
});
|
|
48
|
+
return (0, _immutable.fromJS)(newState);
|
|
49
|
+
}
|
|
50
|
+
const defaultState = (0, _immutable.fromJS)({
|
|
51
|
+
providers: {},
|
|
52
|
+
hooks: {}
|
|
53
|
+
});
|
|
54
|
+
function integrations(state = defaultState, action) {
|
|
55
|
+
switch (action.type) {
|
|
56
|
+
case _config.CONFIG_SUCCESS:
|
|
57
|
+
{
|
|
58
|
+
return getIntegrations(action.payload);
|
|
59
|
+
}
|
|
60
|
+
default:
|
|
61
|
+
return state;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function selectIntegration(state, collection, hook) {
|
|
65
|
+
return collection ? state.getIn(['hooks', collection, hook], false) : state.getIn(['hooks', hook], false);
|
|
66
|
+
}
|
|
67
|
+
var _default = integrations;
|
|
68
|
+
exports.default = _default;
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
exports.selectMediaDisplayURL = selectMediaDisplayURL;
|
|
8
|
+
exports.selectMediaFileByPath = selectMediaFileByPath;
|
|
9
|
+
exports.selectMediaFiles = selectMediaFiles;
|
|
10
|
+
var _immutable = require("immutable");
|
|
11
|
+
var _v = _interopRequireDefault(require("uuid/v4"));
|
|
12
|
+
var _path = require("path");
|
|
13
|
+
var _mediaLibrary = require("../actions/mediaLibrary");
|
|
14
|
+
var _entries = require("./entries");
|
|
15
|
+
var _ = require("./");
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
21
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
22
|
+
const defaultState = {
|
|
23
|
+
isVisible: false,
|
|
24
|
+
showMediaButton: true,
|
|
25
|
+
controlMedia: (0, _immutable.Map)(),
|
|
26
|
+
displayURLs: (0, _immutable.Map)(),
|
|
27
|
+
config: (0, _immutable.Map)()
|
|
28
|
+
};
|
|
29
|
+
function mediaLibrary(state = (0, _immutable.Map)(defaultState), action) {
|
|
30
|
+
switch (action.type) {
|
|
31
|
+
case _mediaLibrary.MEDIA_LIBRARY_CREATE:
|
|
32
|
+
return state.withMutations(map => {
|
|
33
|
+
map.set('externalLibrary', action.payload);
|
|
34
|
+
map.set('showMediaButton', action.payload.enableStandalone());
|
|
35
|
+
});
|
|
36
|
+
case _mediaLibrary.MEDIA_LIBRARY_OPEN:
|
|
37
|
+
{
|
|
38
|
+
const {
|
|
39
|
+
controlID,
|
|
40
|
+
forImage,
|
|
41
|
+
privateUpload,
|
|
42
|
+
config,
|
|
43
|
+
field,
|
|
44
|
+
value,
|
|
45
|
+
replaceIndex
|
|
46
|
+
} = action.payload;
|
|
47
|
+
const libConfig = config || (0, _immutable.Map)();
|
|
48
|
+
const privateUploadChanged = state.get('privateUpload') !== privateUpload;
|
|
49
|
+
if (privateUploadChanged) {
|
|
50
|
+
return (0, _immutable.Map)({
|
|
51
|
+
isVisible: true,
|
|
52
|
+
forImage,
|
|
53
|
+
controlID,
|
|
54
|
+
canInsert: !!controlID,
|
|
55
|
+
privateUpload,
|
|
56
|
+
config: libConfig,
|
|
57
|
+
controlMedia: (0, _immutable.Map)(),
|
|
58
|
+
displayURLs: (0, _immutable.Map)(),
|
|
59
|
+
field,
|
|
60
|
+
value,
|
|
61
|
+
replaceIndex
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return state.withMutations(map => {
|
|
65
|
+
map.set('isVisible', true);
|
|
66
|
+
map.set('forImage', forImage !== null && forImage !== void 0 ? forImage : false);
|
|
67
|
+
map.set('controlID', controlID !== null && controlID !== void 0 ? controlID : '');
|
|
68
|
+
map.set('canInsert', !!controlID);
|
|
69
|
+
map.set('privateUpload', privateUpload);
|
|
70
|
+
map.set('config', libConfig);
|
|
71
|
+
map.set('field', field !== null && field !== void 0 ? field : '');
|
|
72
|
+
map.set('value', value !== null && value !== void 0 ? value : '');
|
|
73
|
+
map.set('replaceIndex', replaceIndex !== null && replaceIndex !== void 0 ? replaceIndex : 0);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
case _mediaLibrary.MEDIA_LIBRARY_CLOSE:
|
|
77
|
+
return state.set('isVisible', false);
|
|
78
|
+
case _mediaLibrary.MEDIA_INSERT:
|
|
79
|
+
{
|
|
80
|
+
const {
|
|
81
|
+
mediaPath
|
|
82
|
+
} = action.payload;
|
|
83
|
+
const controlID = state.get('controlID');
|
|
84
|
+
const value = state.get('value');
|
|
85
|
+
if (!Array.isArray(value)) {
|
|
86
|
+
return state.withMutations(map => {
|
|
87
|
+
map.setIn(['controlMedia', controlID], mediaPath);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const replaceIndex = state.get('replaceIndex');
|
|
91
|
+
const mediaArray = Array.isArray(mediaPath) ? mediaPath : [mediaPath];
|
|
92
|
+
const valueArray = value;
|
|
93
|
+
if (typeof replaceIndex == 'number') {
|
|
94
|
+
valueArray[replaceIndex] = mediaArray[0];
|
|
95
|
+
} else {
|
|
96
|
+
valueArray.push(...mediaArray);
|
|
97
|
+
}
|
|
98
|
+
return state.withMutations(map => {
|
|
99
|
+
map.setIn(['controlMedia', controlID], valueArray);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
case _mediaLibrary.MEDIA_REMOVE_INSERTED:
|
|
103
|
+
{
|
|
104
|
+
const controlID = action.payload.controlID;
|
|
105
|
+
return state.setIn(['controlMedia', controlID], '');
|
|
106
|
+
}
|
|
107
|
+
case _mediaLibrary.MEDIA_LOAD_REQUEST:
|
|
108
|
+
return state.withMutations(map => {
|
|
109
|
+
map.set('isLoading', true);
|
|
110
|
+
map.set('isPaginating', action.payload.page > 1);
|
|
111
|
+
});
|
|
112
|
+
case _mediaLibrary.MEDIA_LOAD_SUCCESS:
|
|
113
|
+
{
|
|
114
|
+
const {
|
|
115
|
+
files = [],
|
|
116
|
+
page,
|
|
117
|
+
canPaginate,
|
|
118
|
+
dynamicSearch,
|
|
119
|
+
dynamicSearchQuery,
|
|
120
|
+
privateUpload
|
|
121
|
+
} = action.payload;
|
|
122
|
+
const privateUploadChanged = state.get('privateUpload') !== privateUpload;
|
|
123
|
+
if (privateUploadChanged) {
|
|
124
|
+
return state;
|
|
125
|
+
}
|
|
126
|
+
const filesWithKeys = files.map(file => _objectSpread(_objectSpread({}, file), {}, {
|
|
127
|
+
key: (0, _v.default)()
|
|
128
|
+
}));
|
|
129
|
+
return state.withMutations(map => {
|
|
130
|
+
map.set('isLoading', false);
|
|
131
|
+
map.set('isPaginating', false);
|
|
132
|
+
map.set('page', page !== null && page !== void 0 ? page : 1);
|
|
133
|
+
map.set('hasNextPage', !!(canPaginate && files.length > 0));
|
|
134
|
+
map.set('dynamicSearch', dynamicSearch !== null && dynamicSearch !== void 0 ? dynamicSearch : false);
|
|
135
|
+
map.set('dynamicSearchQuery', dynamicSearchQuery !== null && dynamicSearchQuery !== void 0 ? dynamicSearchQuery : '');
|
|
136
|
+
map.set('dynamicSearchActive', !!dynamicSearchQuery);
|
|
137
|
+
if (page && page > 1) {
|
|
138
|
+
const updatedFiles = map.get('files').concat(filesWithKeys);
|
|
139
|
+
map.set('files', updatedFiles);
|
|
140
|
+
} else {
|
|
141
|
+
map.set('files', filesWithKeys);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
case _mediaLibrary.MEDIA_LOAD_FAILURE:
|
|
146
|
+
{
|
|
147
|
+
const privateUploadChanged = state.get('privateUpload') !== action.payload.privateUpload;
|
|
148
|
+
if (privateUploadChanged) {
|
|
149
|
+
return state;
|
|
150
|
+
}
|
|
151
|
+
return state.set('isLoading', false);
|
|
152
|
+
}
|
|
153
|
+
case _mediaLibrary.MEDIA_PERSIST_REQUEST:
|
|
154
|
+
return state.set('isPersisting', true);
|
|
155
|
+
case _mediaLibrary.MEDIA_PERSIST_SUCCESS:
|
|
156
|
+
{
|
|
157
|
+
const {
|
|
158
|
+
file,
|
|
159
|
+
privateUpload
|
|
160
|
+
} = action.payload;
|
|
161
|
+
const privateUploadChanged = state.get('privateUpload') !== privateUpload;
|
|
162
|
+
if (privateUploadChanged) {
|
|
163
|
+
return state;
|
|
164
|
+
}
|
|
165
|
+
return state.withMutations(map => {
|
|
166
|
+
const fileWithKey = _objectSpread(_objectSpread({}, file), {}, {
|
|
167
|
+
key: (0, _v.default)()
|
|
168
|
+
});
|
|
169
|
+
const files = map.get('files');
|
|
170
|
+
const updatedFiles = [fileWithKey, ...files];
|
|
171
|
+
map.set('files', updatedFiles);
|
|
172
|
+
map.set('isPersisting', false);
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
case _mediaLibrary.MEDIA_PERSIST_FAILURE:
|
|
176
|
+
{
|
|
177
|
+
const privateUploadChanged = state.get('privateUpload') !== action.payload.privateUpload;
|
|
178
|
+
if (privateUploadChanged) {
|
|
179
|
+
return state;
|
|
180
|
+
}
|
|
181
|
+
return state.set('isPersisting', false);
|
|
182
|
+
}
|
|
183
|
+
case _mediaLibrary.MEDIA_DELETE_REQUEST:
|
|
184
|
+
return state.set('isDeleting', true);
|
|
185
|
+
case _mediaLibrary.MEDIA_DELETE_SUCCESS:
|
|
186
|
+
{
|
|
187
|
+
const {
|
|
188
|
+
file,
|
|
189
|
+
privateUpload
|
|
190
|
+
} = action.payload;
|
|
191
|
+
const {
|
|
192
|
+
key,
|
|
193
|
+
id
|
|
194
|
+
} = file;
|
|
195
|
+
const privateUploadChanged = state.get('privateUpload') !== privateUpload;
|
|
196
|
+
if (privateUploadChanged) {
|
|
197
|
+
return state;
|
|
198
|
+
}
|
|
199
|
+
return state.withMutations(map => {
|
|
200
|
+
const files = map.get('files');
|
|
201
|
+
const updatedFiles = files.filter(file => key ? file.key !== key : file.id !== id);
|
|
202
|
+
map.set('files', updatedFiles);
|
|
203
|
+
map.deleteIn(['displayURLs', id]);
|
|
204
|
+
map.set('isDeleting', false);
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
case _mediaLibrary.MEDIA_DELETE_FAILURE:
|
|
208
|
+
{
|
|
209
|
+
const privateUploadChanged = state.get('privateUpload') !== action.payload.privateUpload;
|
|
210
|
+
if (privateUploadChanged) {
|
|
211
|
+
return state;
|
|
212
|
+
}
|
|
213
|
+
return state.set('isDeleting', false);
|
|
214
|
+
}
|
|
215
|
+
case _mediaLibrary.MEDIA_DISPLAY_URL_REQUEST:
|
|
216
|
+
return state.setIn(['displayURLs', action.payload.key, 'isFetching'], true);
|
|
217
|
+
case _mediaLibrary.MEDIA_DISPLAY_URL_SUCCESS:
|
|
218
|
+
{
|
|
219
|
+
const displayURLPath = ['displayURLs', action.payload.key];
|
|
220
|
+
return state.setIn([...displayURLPath, 'isFetching'], false).setIn([...displayURLPath, 'url'], action.payload.url);
|
|
221
|
+
}
|
|
222
|
+
case _mediaLibrary.MEDIA_DISPLAY_URL_FAILURE:
|
|
223
|
+
{
|
|
224
|
+
const displayURLPath = ['displayURLs', action.payload.key];
|
|
225
|
+
return state.setIn([...displayURLPath, 'isFetching'], false)
|
|
226
|
+
// make sure that err is set so the CMS won't attempt to load
|
|
227
|
+
// the image again
|
|
228
|
+
.setIn([...displayURLPath, 'err'], action.payload.err || true).deleteIn([...displayURLPath, 'url']);
|
|
229
|
+
}
|
|
230
|
+
default:
|
|
231
|
+
return state;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
function selectMediaFiles(state, field) {
|
|
235
|
+
const {
|
|
236
|
+
mediaLibrary,
|
|
237
|
+
entryDraft
|
|
238
|
+
} = state;
|
|
239
|
+
const editingDraft = (0, _entries.selectEditingDraft)(state.entryDraft);
|
|
240
|
+
const integration = (0, _.selectIntegration)(state, null, 'assetStore');
|
|
241
|
+
let files;
|
|
242
|
+
if (editingDraft && !integration) {
|
|
243
|
+
const entryFiles = entryDraft.getIn(['entry', 'mediaFiles'], (0, _immutable.List)()).toJS();
|
|
244
|
+
const entry = entryDraft.get('entry');
|
|
245
|
+
const collection = state.collections.get(entry === null || entry === void 0 ? void 0 : entry.get('collection'));
|
|
246
|
+
const mediaFolder = (0, _entries.selectMediaFolder)(state.config, collection, entry, field);
|
|
247
|
+
files = entryFiles.filter(f => (0, _path.dirname)(f.path) === mediaFolder).map(file => _objectSpread({
|
|
248
|
+
key: file.id
|
|
249
|
+
}, file));
|
|
250
|
+
} else {
|
|
251
|
+
files = mediaLibrary.get('files') || [];
|
|
252
|
+
}
|
|
253
|
+
return files;
|
|
254
|
+
}
|
|
255
|
+
function selectMediaFileByPath(state, path) {
|
|
256
|
+
const files = selectMediaFiles(state);
|
|
257
|
+
const file = files.find(file => file.path === path);
|
|
258
|
+
return file;
|
|
259
|
+
}
|
|
260
|
+
function selectMediaDisplayURL(state, id) {
|
|
261
|
+
const displayUrlState = state.mediaLibrary.getIn(['displayURLs', id], (0, _immutable.Map)());
|
|
262
|
+
return displayUrlState;
|
|
263
|
+
}
|
|
264
|
+
var _default = mediaLibrary;
|
|
265
|
+
exports.default = _default;
|