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.
Files changed (290) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +9 -0
  3. package/dist/decap-cms-core.js +47 -0
  4. package/dist/decap-cms-core.js.LICENSE.txt +109 -0
  5. package/dist/decap-cms-core.js.map +1 -0
  6. package/dist/esm/actions/auth.js +118 -0
  7. package/dist/esm/actions/collections.js +23 -0
  8. package/dist/esm/actions/config.js +482 -0
  9. package/dist/esm/actions/deploys.js +89 -0
  10. package/dist/esm/actions/editorialWorkflow.js +511 -0
  11. package/dist/esm/actions/entries.js +940 -0
  12. package/dist/esm/actions/media.js +168 -0
  13. package/dist/esm/actions/mediaLibrary.js +606 -0
  14. package/dist/esm/actions/notifications.js +32 -0
  15. package/dist/esm/actions/search.js +156 -0
  16. package/dist/esm/actions/status.js +93 -0
  17. package/dist/esm/actions/waitUntil.js +39 -0
  18. package/dist/esm/backend.js +1073 -0
  19. package/dist/esm/bootstrap.js +107 -0
  20. package/dist/esm/components/App/App.js +301 -0
  21. package/dist/esm/components/App/Header.js +162 -0
  22. package/dist/esm/components/App/NotFoundPage.js +27 -0
  23. package/dist/esm/components/Collection/Collection.js +210 -0
  24. package/dist/esm/components/Collection/CollectionControls.js +54 -0
  25. package/dist/esm/components/Collection/CollectionSearch.js +235 -0
  26. package/dist/esm/components/Collection/CollectionTop.js +77 -0
  27. package/dist/esm/components/Collection/ControlButton.js +23 -0
  28. package/dist/esm/components/Collection/Entries/Entries.js +74 -0
  29. package/dist/esm/components/Collection/Entries/EntriesCollection.js +193 -0
  30. package/dist/esm/components/Collection/Entries/EntriesSearch.js +117 -0
  31. package/dist/esm/components/Collection/Entries/EntryCard.js +134 -0
  32. package/dist/esm/components/Collection/Entries/EntryListing.js +120 -0
  33. package/dist/esm/components/Collection/FilterControl.js +41 -0
  34. package/dist/esm/components/Collection/GroupControl.js +41 -0
  35. package/dist/esm/components/Collection/NestedCollection.js +311 -0
  36. package/dist/esm/components/Collection/Sidebar.js +102 -0
  37. package/dist/esm/components/Collection/SortControl.js +67 -0
  38. package/dist/esm/components/Collection/ViewStyleControl.js +47 -0
  39. package/dist/esm/components/Editor/Editor.js +479 -0
  40. package/dist/esm/components/Editor/EditorControlPane/EditorControl.js +393 -0
  41. package/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js +259 -0
  42. package/dist/esm/components/Editor/EditorControlPane/Widget.js +355 -0
  43. package/dist/esm/components/Editor/EditorInterface.js +401 -0
  44. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js +56 -0
  45. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js +34 -0
  46. package/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js +252 -0
  47. package/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js +39 -0
  48. package/dist/esm/components/Editor/EditorToolbar.js +551 -0
  49. package/dist/esm/components/Editor/withWorkflow.js +64 -0
  50. package/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js +26 -0
  51. package/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js +28 -0
  52. package/dist/esm/components/EditorWidgets/index.js +7 -0
  53. package/dist/esm/components/MediaLibrary/EmptyMessage.js +30 -0
  54. package/dist/esm/components/MediaLibrary/MediaLibrary.js +444 -0
  55. package/dist/esm/components/MediaLibrary/MediaLibraryButtons.js +110 -0
  56. package/dist/esm/components/MediaLibrary/MediaLibraryCard.js +108 -0
  57. package/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js +211 -0
  58. package/dist/esm/components/MediaLibrary/MediaLibraryHeader.js +40 -0
  59. package/dist/esm/components/MediaLibrary/MediaLibraryModal.js +163 -0
  60. package/dist/esm/components/MediaLibrary/MediaLibrarySearch.js +60 -0
  61. package/dist/esm/components/MediaLibrary/MediaLibraryTop.js +134 -0
  62. package/dist/esm/components/UI/DragDrop.js +84 -0
  63. package/dist/esm/components/UI/ErrorBoundary.js +184 -0
  64. package/dist/esm/components/UI/FileUploadButton.js +34 -0
  65. package/dist/esm/components/UI/Modal.js +113 -0
  66. package/dist/esm/components/UI/Notifications.js +74 -0
  67. package/dist/esm/components/UI/SettingsDropdown.js +118 -0
  68. package/dist/esm/components/UI/index.js +60 -0
  69. package/dist/esm/components/Workflow/Workflow.js +144 -0
  70. package/dist/esm/components/Workflow/WorkflowCard.js +137 -0
  71. package/dist/esm/components/Workflow/WorkflowList.js +219 -0
  72. package/dist/esm/constants/collectionTypes.js +10 -0
  73. package/dist/esm/constants/collectionViews.js +10 -0
  74. package/dist/esm/constants/commitProps.js +10 -0
  75. package/dist/esm/constants/configSchema.js +594 -0
  76. package/dist/esm/constants/fieldInference.js +67 -0
  77. package/dist/esm/constants/publishModes.js +28 -0
  78. package/dist/esm/constants/validationErrorTypes.js +13 -0
  79. package/dist/esm/formats/formats.js +82 -0
  80. package/dist/esm/formats/frontmatter.js +163 -0
  81. package/dist/esm/formats/helpers.js +18 -0
  82. package/dist/esm/formats/json.js +15 -0
  83. package/dist/esm/formats/toml.js +40 -0
  84. package/dist/esm/formats/yaml.js +63 -0
  85. package/dist/esm/index.js +20 -0
  86. package/dist/esm/integrations/index.js +37 -0
  87. package/dist/esm/integrations/providers/algolia/implementation.js +184 -0
  88. package/dist/esm/integrations/providers/assetStore/implementation.js +175 -0
  89. package/dist/esm/lib/consoleError.js +9 -0
  90. package/dist/esm/lib/formatters.js +204 -0
  91. package/dist/esm/lib/i18n.js +381 -0
  92. package/dist/esm/lib/phrases.js +13 -0
  93. package/dist/esm/lib/registry.js +322 -0
  94. package/dist/esm/lib/serializeEntryValues.js +74 -0
  95. package/dist/esm/lib/textHelper.js +15 -0
  96. package/dist/esm/lib/urlHelper.js +128 -0
  97. package/dist/esm/mediaLibrary.js +42 -0
  98. package/dist/esm/reducers/auth.js +35 -0
  99. package/dist/esm/reducers/collections.js +424 -0
  100. package/dist/esm/reducers/combinedReducer.js +19 -0
  101. package/dist/esm/reducers/config.js +42 -0
  102. package/dist/esm/reducers/cursors.js +38 -0
  103. package/dist/esm/reducers/deploys.js +53 -0
  104. package/dist/esm/reducers/editorialWorkflow.js +98 -0
  105. package/dist/esm/reducers/entries.js +591 -0
  106. package/dist/esm/reducers/entryDraft.js +184 -0
  107. package/dist/esm/reducers/globalUI.js +32 -0
  108. package/dist/esm/reducers/index.js +84 -0
  109. package/dist/esm/reducers/integrations.js +68 -0
  110. package/dist/esm/reducers/mediaLibrary.js +265 -0
  111. package/dist/esm/reducers/medias.js +76 -0
  112. package/dist/esm/reducers/notifications.js +36 -0
  113. package/dist/esm/reducers/search.js +89 -0
  114. package/dist/esm/reducers/status.js +37 -0
  115. package/dist/esm/redux/index.js +14 -0
  116. package/dist/esm/redux/middleware/waitUntilAction.js +56 -0
  117. package/dist/esm/routing/history.js +21 -0
  118. package/dist/esm/types/diacritics.d.js +1 -0
  119. package/dist/esm/types/global.d.js +5 -0
  120. package/dist/esm/types/immutable.js +5 -0
  121. package/dist/esm/types/redux.js +16 -0
  122. package/dist/esm/types/tomlify-j0.4.d.js +1 -0
  123. package/dist/esm/valueObjects/AssetProxy.js +60 -0
  124. package/dist/esm/valueObjects/EditorComponent.js +48 -0
  125. package/dist/esm/valueObjects/Entry.js +27 -0
  126. package/index.d.ts +587 -0
  127. package/package.json +102 -0
  128. package/src/__tests__/backend.spec.js +934 -0
  129. package/src/actions/__tests__/config.spec.js +1009 -0
  130. package/src/actions/__tests__/editorialWorkflow.spec.js +216 -0
  131. package/src/actions/__tests__/entries.spec.js +575 -0
  132. package/src/actions/__tests__/media.spec.ts +171 -0
  133. package/src/actions/__tests__/mediaLibrary.spec.js +327 -0
  134. package/src/actions/__tests__/search.spec.js +209 -0
  135. package/src/actions/auth.ts +127 -0
  136. package/src/actions/collections.ts +18 -0
  137. package/src/actions/config.ts +538 -0
  138. package/src/actions/deploys.ts +104 -0
  139. package/src/actions/editorialWorkflow.ts +567 -0
  140. package/src/actions/entries.ts +1041 -0
  141. package/src/actions/media.ts +139 -0
  142. package/src/actions/mediaLibrary.ts +574 -0
  143. package/src/actions/notifications.ts +36 -0
  144. package/src/actions/search.ts +194 -0
  145. package/src/actions/status.ts +99 -0
  146. package/src/actions/waitUntil.ts +49 -0
  147. package/src/backend.ts +1342 -0
  148. package/src/bootstrap.js +102 -0
  149. package/src/components/App/App.js +280 -0
  150. package/src/components/App/Header.js +236 -0
  151. package/src/components/App/NotFoundPage.js +23 -0
  152. package/src/components/Collection/Collection.js +205 -0
  153. package/src/components/Collection/CollectionControls.js +58 -0
  154. package/src/components/Collection/CollectionSearch.js +238 -0
  155. package/src/components/Collection/CollectionTop.js +81 -0
  156. package/src/components/Collection/ControlButton.js +27 -0
  157. package/src/components/Collection/Entries/Entries.js +73 -0
  158. package/src/components/Collection/Entries/EntriesCollection.js +165 -0
  159. package/src/components/Collection/Entries/EntriesSearch.js +91 -0
  160. package/src/components/Collection/Entries/EntryCard.js +167 -0
  161. package/src/components/Collection/Entries/EntryListing.js +86 -0
  162. package/src/components/Collection/Entries/__tests__/EntriesCollection.spec.js +155 -0
  163. package/src/components/Collection/Entries/__tests__/__snapshots__/EntriesCollection.spec.js.snap +49 -0
  164. package/src/components/Collection/FilterControl.js +39 -0
  165. package/src/components/Collection/GroupControl.js +39 -0
  166. package/src/components/Collection/NestedCollection.js +309 -0
  167. package/src/components/Collection/Sidebar.js +130 -0
  168. package/src/components/Collection/SortControl.js +68 -0
  169. package/src/components/Collection/ViewStyleControl.js +50 -0
  170. package/src/components/Collection/__tests__/Collection.spec.js +75 -0
  171. package/src/components/Collection/__tests__/NestedCollection.spec.js +442 -0
  172. package/src/components/Collection/__tests__/Sidebar.spec.js +87 -0
  173. package/src/components/Collection/__tests__/__snapshots__/Collection.spec.js.snap +144 -0
  174. package/src/components/Collection/__tests__/__snapshots__/NestedCollection.spec.js.snap +550 -0
  175. package/src/components/Collection/__tests__/__snapshots__/Sidebar.spec.js.snap +308 -0
  176. package/src/components/Editor/Editor.js +494 -0
  177. package/src/components/Editor/EditorControlPane/EditorControl.js +428 -0
  178. package/src/components/Editor/EditorControlPane/EditorControlPane.js +256 -0
  179. package/src/components/Editor/EditorControlPane/Widget.js +351 -0
  180. package/src/components/Editor/EditorInterface.js +434 -0
  181. package/src/components/Editor/EditorPreviewPane/EditorPreview.js +40 -0
  182. package/src/components/Editor/EditorPreviewPane/EditorPreviewContent.js +34 -0
  183. package/src/components/Editor/EditorPreviewPane/EditorPreviewPane.js +278 -0
  184. package/src/components/Editor/EditorPreviewPane/PreviewHOC.js +33 -0
  185. package/src/components/Editor/EditorToolbar.js +678 -0
  186. package/src/components/Editor/__tests__/Editor.spec.js +219 -0
  187. package/src/components/Editor/__tests__/EditorToolbar.spec.js +120 -0
  188. package/src/components/Editor/__tests__/__snapshots__/Editor.spec.js.snap +45 -0
  189. package/src/components/Editor/__tests__/__snapshots__/EditorToolbar.spec.js.snap +4020 -0
  190. package/src/components/Editor/withWorkflow.js +61 -0
  191. package/src/components/EditorWidgets/Unknown/UnknownControl.js +17 -0
  192. package/src/components/EditorWidgets/Unknown/UnknownPreview.js +19 -0
  193. package/src/components/EditorWidgets/index.js +5 -0
  194. package/src/components/MediaLibrary/EmptyMessage.js +28 -0
  195. package/src/components/MediaLibrary/MediaLibrary.js +407 -0
  196. package/src/components/MediaLibrary/MediaLibraryButtons.js +136 -0
  197. package/src/components/MediaLibrary/MediaLibraryCard.js +128 -0
  198. package/src/components/MediaLibrary/MediaLibraryCardGrid.js +199 -0
  199. package/src/components/MediaLibrary/MediaLibraryHeader.js +48 -0
  200. package/src/components/MediaLibrary/MediaLibraryModal.js +200 -0
  201. package/src/components/MediaLibrary/MediaLibrarySearch.js +61 -0
  202. package/src/components/MediaLibrary/MediaLibraryTop.js +143 -0
  203. package/src/components/MediaLibrary/__tests__/MediaLibraryButtons.spec.js +45 -0
  204. package/src/components/MediaLibrary/__tests__/MediaLibraryCard.spec.js +49 -0
  205. package/src/components/MediaLibrary/__tests__/__snapshots__/MediaLibraryCard.spec.js.snap +216 -0
  206. package/src/components/UI/DragDrop.js +66 -0
  207. package/src/components/UI/ErrorBoundary.js +209 -0
  208. package/src/components/UI/FileUploadButton.js +24 -0
  209. package/src/components/UI/Modal.js +109 -0
  210. package/src/components/UI/Notifications.tsx +83 -0
  211. package/src/components/UI/SettingsDropdown.js +103 -0
  212. package/src/components/UI/__tests__/ErrorBoundary.spec.js +57 -0
  213. package/src/components/UI/index.js +6 -0
  214. package/src/components/Workflow/Workflow.js +166 -0
  215. package/src/components/Workflow/WorkflowCard.js +177 -0
  216. package/src/components/Workflow/WorkflowList.js +269 -0
  217. package/src/constants/__tests__/configSchema.spec.js +511 -0
  218. package/src/constants/collectionTypes.ts +2 -0
  219. package/src/constants/collectionViews.js +2 -0
  220. package/src/constants/commitProps.ts +2 -0
  221. package/src/constants/configSchema.js +399 -0
  222. package/src/constants/fieldInference.tsx +78 -0
  223. package/src/constants/publishModes.ts +22 -0
  224. package/src/constants/validationErrorTypes.js +6 -0
  225. package/src/formats/__tests__/frontmatter.spec.js +429 -0
  226. package/src/formats/__tests__/toml.spec.js +9 -0
  227. package/src/formats/__tests__/yaml.spec.js +162 -0
  228. package/src/formats/formats.ts +86 -0
  229. package/src/formats/frontmatter.ts +150 -0
  230. package/src/formats/helpers.ts +14 -0
  231. package/src/formats/json.ts +9 -0
  232. package/src/formats/toml.ts +33 -0
  233. package/src/formats/yaml.ts +58 -0
  234. package/src/index.js +8 -0
  235. package/src/integrations/index.js +35 -0
  236. package/src/integrations/providers/algolia/implementation.js +176 -0
  237. package/src/integrations/providers/assetStore/implementation.js +147 -0
  238. package/src/lib/__tests__/formatters.spec.js +723 -0
  239. package/src/lib/__tests__/i18n.spec.js +792 -0
  240. package/src/lib/__tests__/phrases.spec.js +119 -0
  241. package/src/lib/__tests__/registry.spec.js +246 -0
  242. package/src/lib/__tests__/serializeEntryValues.spec.js +22 -0
  243. package/src/lib/__tests__/urlHelper.spec.js +138 -0
  244. package/src/lib/consoleError.js +7 -0
  245. package/src/lib/formatters.ts +267 -0
  246. package/src/lib/i18n.ts +427 -0
  247. package/src/lib/phrases.js +8 -0
  248. package/src/lib/registry.js +282 -0
  249. package/src/lib/serializeEntryValues.js +75 -0
  250. package/src/lib/textHelper.js +11 -0
  251. package/src/lib/urlHelper.ts +125 -0
  252. package/src/mediaLibrary.ts +51 -0
  253. package/src/reducers/__tests__/auth.spec.ts +38 -0
  254. package/src/reducers/__tests__/collections.spec.js +571 -0
  255. package/src/reducers/__tests__/config.spec.js +38 -0
  256. package/src/reducers/__tests__/entries.spec.js +694 -0
  257. package/src/reducers/__tests__/entryDraft.spec.js +198 -0
  258. package/src/reducers/__tests__/globalUI.js +43 -0
  259. package/src/reducers/__tests__/integrations.spec.ts +76 -0
  260. package/src/reducers/__tests__/mediaLibrary.spec.js +154 -0
  261. package/src/reducers/__tests__/medias.spec.ts +49 -0
  262. package/src/reducers/auth.ts +46 -0
  263. package/src/reducers/collections.ts +483 -0
  264. package/src/reducers/combinedReducer.ts +11 -0
  265. package/src/reducers/config.ts +38 -0
  266. package/src/reducers/cursors.js +36 -0
  267. package/src/reducers/deploys.ts +52 -0
  268. package/src/reducers/editorialWorkflow.ts +163 -0
  269. package/src/reducers/entries.ts +806 -0
  270. package/src/reducers/entryDraft.js +218 -0
  271. package/src/reducers/globalUI.ts +45 -0
  272. package/src/reducers/index.ts +82 -0
  273. package/src/reducers/integrations.ts +59 -0
  274. package/src/reducers/mediaLibrary.ts +296 -0
  275. package/src/reducers/medias.ts +66 -0
  276. package/src/reducers/notifications.ts +53 -0
  277. package/src/reducers/search.ts +89 -0
  278. package/src/reducers/status.ts +40 -0
  279. package/src/redux/index.ts +18 -0
  280. package/src/redux/middleware/waitUntilAction.ts +64 -0
  281. package/src/routing/__tests__/history.spec.ts +49 -0
  282. package/src/routing/history.ts +17 -0
  283. package/src/types/diacritics.d.ts +1 -0
  284. package/src/types/global.d.ts +8 -0
  285. package/src/types/immutable.ts +39 -0
  286. package/src/types/redux.ts +810 -0
  287. package/src/types/tomlify-j0.4.d.ts +13 -0
  288. package/src/valueObjects/AssetProxy.ts +48 -0
  289. package/src/valueObjects/EditorComponent.js +38 -0
  290. 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;